技成培训网 技成学习APP 技成工具箱 技成企业服务

欢迎回到技成培训网

技成培训网

电工题库宝典

技成电工课堂

PLC练习题

技成PLC课堂

变频器故障查询

技成PLC学吧

伺服驱动故障查询

技成PLC网校

当前位置:技成首页 > 文章中心 > 西门子PLC > 如何实现S7-200SMART自由口通讯

如何实现S7-200SMART自由口通讯

卢思敏 发布于2017-08-25 20:06 30 0 标签:S7-200SMART

学工控技术,拿10万年薪

点下面注册
马上注册,免费学习plc视频教程
马上注册,免费学习超过100课时视频教程,免费下载海量学习资料


自由口通讯协议的关键条件

定义开始接收消息和停止接收消息的条件。


1、空闲线检测:设置il=1sc=0bk=0smw90/smw190>0

空闲线条件定义为传输线路上的安静或者空闲的时间。SMW90/SMW190中是以ms为单位的空闲时间。在该方式下,从执行接收指令开始起动空闲时间检测。在传输线空闲的时间大于等于SMW90/SMW190中设定的时间之后接收的个字符作为新信息的起始字符。接收消息功能将会忽略在空闲时间到达之前接收到的任何字符,并会在每个字符后面重新启动空闲线定时器。

空闲线时间应大于以指定波特率传送一个字符所需要的时间。空闲线时间的典型为以指定的波特率传送3个字符所需要的时间。传输速率为19200bit/s时候,可设置空闲时间为2ms

对于二进制协议,没有特定起始字符的协议或指定了消息之间小时间间隔的协议,可以将空闲线检测用作开始条件。


2、起始字符检测:设置il=0sc=1bk=0,忽略smw90/smw190

起始字符是消息的个字符,以SMB88/SMB188中的起始字符作为接收到的消息开始的标志。接收消息功能忽略起始字符之前收到的字符,起始字符和起始字符之后收到的所有字符都存储在消息缓冲区中。起始字符检测一般用于ASCII协议。


3、空闲线和起始字符:设置il=1sc=1bk=0SMW90/SMW190大于0

满足空闲线条件之后,接收消息功能查找指定的起始字符。如果接收到的字符不是smB88/smb188指定的起始字符,将开始重新检测空闲线条件。在满足空闲线条件之前接收到的以及起始字符之前接收到的字符都将会被忽略。这种方式尤其适合用于通讯链路上有多台设备的情况。


4 、break检测:设置il=0sc=0bk=1,检测smw90/smw190smb88/smb188

以接收到的break(断开)作为接收消息的开始。当接收到的数据保持为0的时间大于完整字符(包含起始位,数据位,奇偶校验位和停止位)传输的时间,表示检测到break。断开条件之前接收到的字符将忽略,断开条件之后接收到的任意字符都会存储在消息缓冲区中。


5、break和起始字符:il=0sc=1bk=1,忽略smw90/smw190

断开条件满足后,接收消息功能将查找指定的起始字符。如果接收到的字符不是起始字符,将重新搜索断开条件。所有在断开条件满足之前在接收到起始字符之前接收的字符都会忽略。起始字符和所有后续字符一起存入消息缓冲区


6、任何字符开始接受:设置il=1sc=0bk=0smw90/smw190=0

忽略smb88/smb188中的起始字符。应为smw90/smw190中的空闲线时间为0,接收指令已经执行,便将立即开始强制接收所有的任意字符,并将存入消息缓冲区。


7、任意字符开始,消息定时器超过则结束接收消息il = 1sc = 0bk = 0smw90/smw190 = 0,忽略smb88/smb188中的起始字符。以上设置用于实现从任意字符开始接收消息。

此外设置c/m = 1tmr =1,用smw92/smw192设置以ms为单位的消息超时时间,用消息定时器监视接收是否超时。如果未满足其他结束条件,在消息定时器超时的时候,将会终止接收消息功能。这对自由口协议的主站是非常有用的。


1.SMB30定义


定义通讯的传输速度和模式

SMB30=16#05=2# 00 0 001 01

其中从高位到低位依次:

00:表示无校验

0:表示8个数据位

001:表示波特率19200

01:表示自由口通讯


2.SMB87定义


定义接收消息控制字节

SMB87=16#FC = 2#1111 1100

其中从高位到低位依次:

en=1:启用接受消息功能

sc=1:使用SMB88 的值监测数据的起始

ec=1:使用SMB89 的值监测数据的终止

il=1:使用SMW90 的值监测空闲条件

c/m=1:定时器为消息定时器

tmr=1:超过SMW92 中的时间段,则终止接收

bk=0:忽略中断条件

SM87.0=0 (无效)


3.定义SMB88SMB89SMW90SMW92SMB94


SMB88:定义开始字符为 2A

SMB89:定义结束字符为 0A

SMW90:空闲线时间段,单位:MS

SMW92:消息定时器的超时值(单位:MS),若超过该时间段,则停止接受消息

SMB94:要接受的大字符数(1--255个字节);即使未使用字符计数消息终止,此范围也必须设置为所需的大数据交换区

l SMW90=1000000us/19200 *11*3

其中:1000000/19200得到传输1个位需要多长时间,一个字符11个位,检测空闲3.5个字符,约等于3个字符

l SMW92=1000000us/19200 *11*20*1.5

其中:20表示字节接收大的字节数,SMB94有关,1.5倍表示整个消息长度的倍数


4.执行接受指令

TBL:


5.连接接受完成中断和发送完成中断,并且开放中断


6.接收完成中断

由于我们使用的RS485USB的线缆是半双工,发送和接收需要间隔至少5ms的时间。所以接 收完成后先延时5ms在发送。



7.SMB34定时中断:

延时时间到,执行发送指令,把先期接收到的数据再发送给PC



8.发送完成中断:


推荐学习相关视频:

西门子S7-300使用指南

西门子s7-300中高级应用技术

西门子S7-200PLC从入门到精通

西门子S7-200 SMART PLC编程应用入门


若有收获,就点个赞吧!

文章来源于网络及文献如有侵权请联系站长
分享到:

微信扫一扫分享

阅读与本文标签相同的文章

S7-200SMART

相关推荐

最新文章 热门文章
最新课程 免费课程
PLC资料下载 电工电气资料下载
应用新秀
变频器故障代码查询APP
伺服故障代码查询APP
技成
手机APP
热门标签