如何实现 S7-200SMART自由口通讯自由口通讯协议的关键条件定义开始接收消息和停止接收消息的条件
1、空闲线检测:设置il=1 ,sc=0,bk=0,smw90/smw190>0空闲线条件定义为传输线路上的安静或者空闲的时间
SMW90/SMW190中是以 ms为单位的空闲时间
在该方式下, 从执行接收指令开始起动空闲时间检测
在传输线空闲的时间大于等于 SMW90/SMW190中设定的时间之后接收的第一个字符作为新信息的起始字符
接收消息功能将会忽略在空闲时间到达之前接收到的任何字符,并会在每个字符后面重新启动空闲线定时器
空闲线时间应大于以指定波特率传送一个字符所需要的时间
空闲线时间的典型为以指定的波特率传送3 个字符所需要的时间
传输速率为19200bit/s时候,可设置空闲时间为2ms
对于二进制协议, 没有特定起始字符的协议或指定了消息之间最小时间间隔的协议,可以将空闲线检测用作开始条件
2、起始字符检测:设置il=0 ,sc=1,bk=0,忽略 smw90/smw190起始字符是消息的第一个字符,以SMB88/SMB188中的起始字符作为接收到的消息开始的标志
接收消息功能忽略起始字符之前收到的字符,起始字符和起始字符之后收到的所有字符都存储在消息缓冲区中
起始字符检测一般用于ASCII 协议
3、空闲线和起始字符:设置il=1 ,sc=1,bk=0,SMW90/SMW190大于 0满足空闲线条件之后,接收消息功能查找指定的起始字符
如果接收到的字符不是smB88/smb188指定的起始字符,将开始重新检测空闲线条件
在满足空闲线条件之前接收到的以及起始字符之前接收到的字符都将会被忽略
这种方式尤其适合用于通讯链路上有多台设备的情况
4 、break 检测:设置 il=0 ,sc=0,bk=1,检测 smw90/smw190和 smb88/smb188