SMART 用MODBUS RTU跟2个仪表和2个变频器进行通信,正常情况下,只对2台仪表和2台变频器进行写操作,进行轮询,不断循环,例如输入设定温度和设定频率,这些操作都正常,稳定。但在某些情况下,需增加写入仪表一些参数值,例如仪表的PID参数等,这些参数只是在需要的时候写一次,平时为了不增加通信负荷,并不需要写进去。但是进行“写一次”的操作时,有时能写得进,有时会发生通信错误。请问通信时序如何处理会比较稳妥?是否有标准的例程?
钻石用户推荐最佳答案
我的建议就是当你检测到这地址的值有变化时就去执行对这个地址的读写。你用比较法去比较,比较原则是将比较指令放在这些通讯的后面,当检测到这个地址的数据有变化时,就轮训中要去轮训这个地址位,当下一个扫描周期执行完后再去停止这个位置的读写。以前也经常看到有人提到这样的问题,一般都是用比较法去做法处理。这个做法好,但是对编程序的逻辑要求高,如果程序逻辑不合理就出现你这样的情况。这就要充分利用扫描周期的原理去做,当你第一触发时在通讯指令的下面,当再次扫面到这个读写地址时就轮训执行读写后,再在下一个周期不去执行对这个地址读写。
MODBUS RTU通信_S7-200 SMART:
http://www.ad.siemens.com.cn/productportal/prods/s7-200-smart-portal/200smarttop/smartsms/020.html
提问者对于答案的评价:
原创文章,作者:more0621,如若转载,请注明出处:https://www.zhaoplc.com/plc281880.html