在使用S7-200自由口进行通讯时,若想只使用起始字节判断作为报文开始依据,以字符间超时判断和报文最大字符长度判断为报文结束依据,应该怎样设置SM存储器以决定报文开始和结束,在通讯过程中应该注意什么?
最佳答案
特殊存储器SMB30(对端口0)、SMB130(对端口1)控制通信口的工作模式。
SMB87(187)按照你的要求设置成11010000
SM88(188)开始字符
SMW90(190)空闲时间
根据你需要的设置最大字符长度SMB94(194)
至于发送区域,根据你要发送的内容而定,你看下发送指令就行了,这个简单。
往下就是去做发送和接收指令了:
这个根据你个人的习惯去做,你要是习惯用中断的话,在主程序下执行发送指令,发送结束开中断,在中断下去执行接收指令。
你要是和我一样不习惯用中断,我给你写了段,你看下
LD SM4.6 发送空闲
EU 这就是你要注意的,上升沿
LD SM186.6 缺少起始或结束字符,重新接收
EU
OLD
RCV VB100, 1
LD SM186.2 接收超时
EU
XMT VB200, 1
我给你写的这段,我也没测试,有一点我不肯定,就是最后这段SM186.2,你可以从两方面去修改这,第一用定时器去给SM187.7置位或者复位,再用接收发送。第二,你可以不用开始字符,直接用结束字符,这样你就可以使用SM186.5了。如有疑问可以给我发邮件啊
提问者对于答案的评价:
在增加了接收超时判断,重新启动接收的方式之后,通讯就正常了.状态使用信息间超时判断。
原创文章,作者:ximenziask,如若转载,请注明出处:https://www.zhaoplc.com/plc346061.html