S7-200自由口通讯程序疑问

在使用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

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2021年7月4日 下午10:52
下一篇 2021年7月4日

相关推荐

发表回复

登录后才能评论