300与200 DP通讯,分时分批传送的问题?

有一工程,DP通讯量大于128字节,无法一次传送。为验证分时分批传送,做了下面的实验程序,可发现有问题。尽管设置了标志位,但数据有时还会读错。程序运行14小时,300数据接收错误,出现100多次,200数据接收错误,出现几十次。这个问题,如何解决啊?请高手分析下为何出现问题?程序请看图片。

图片说明:

300与200 DP通讯,分时分批传送的问题?    300与200 DP通讯,分时分批传送的问题?   

最佳答案

我认为这种情况的原因是数据一致性引起的,也就是说接收的数据不是同时收到,如果你用CP342-5来做可能就没有这个问题,因为数据是打包发送的,也就是说一包数据是同一时刻的。
    针对这种情况,我觉得可以像串口通讯的协议一样加一个校验位,比如可以用最简单的异或校验或和校验(即所以发送的数据进行异或运算或加法运算),接收端根据数据标志位和校验位确定数据是否正确。
    还有一个方案,发送时,首先更新其他要发送的数据,标志位最后更新输出,接收方只在标志位符合的上升沿读取数据。

提问者对于答案的评价:
谢谢你提供的解决方法。我采用异或校验,观察了两天,数据正常。应该没问题了

原创文章,作者:more0621,如若转载,请注明出处:https://www.zhaoplc.com/plc248937.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2018年12月2日 下午4:30
下一篇 2018年12月2日

相关推荐