求教:smart在进行modbus通信时,smart做主站读取多个从站的数据,数据不稳定!

smart用做modbus 主站,读取多个从站(电表),且从站中数据寄存器不连续,需要分段、分站读取,出现一个问题:
第一种情况,一个分站读两段数据,分别是三相电压值41000-41011和频率值41026-41029,如果将数据保存在VB1000-VB1011和VB1012-VB1015,(后续从站类型相同,数据从VB1016往后排),结果发现从VB1012往后的数据值会出现闪烁,频率在50和0之间跳动,电压在220.000和0之间跳动。
第二种情况,如果拉大V寄存器间隔,将数据保存在VB1000-VB1011、VB1100-VB1103、VB1200-VB1211、VB1300-VB1303,。。。,则数据稳定。
第三种情况,后又将V寄存器间隔再次缩小至VB1000-VB1011,VB1040,VB1050-1061,VB1090,数据也能稳定。

请教各位,这是什么原因造成的?

还有一个问题,在第一种情况中,相邻存储的模拟量采集值稳定不受影响,请教,这种多从站、分段通信中,用于存储采集数据的寄存器应该怎样分配才能保证通信稳定??

最佳答案

你的问题主要是地址区域重叠造成的。就说你的第一种情况:
三相电压值41000-41011 是 12 个字的存储空间,读到 200 的V区那要占用 VB1000-VB1023这24个字节的存储空间。
频率值在V区中的存放位置与上面的区域有冲突。地址冲突的问题解决了,程序的问题就解决了。

提问者对于答案的评价:
非常感谢,解决了我对modbus通信的一个盲点,谢谢!

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

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2020年10月31日
下一篇 2020年10月31日

相关推荐