S7 200 SMART modbus rtu 通信问题,数量多会不会延时?S7-200 MODBUS-RTU通信延迟
之前也就5,6个通信,这次数量比较多,心里没底,立马上来问问,总共20个变频器,需要设定频率和读取输出电流和报警状态,以及15个温控器设定温度和读取当前温度,这样读写的变量就是20*3+15*2=90个了,通信上会不会延时?如果有延时的话有办法消除或改善吗?
我脑袋里想到的是如果加个信号板走2个通道是不是会好点?
问题补充:
有个不明朗的地方:我增加一个通道,那还不是用轮询的方式在读写?是不是两个通道同时轮询的,这样相对于一个通道的轮询来说就相当于本来一条路上一辆车开,现在是2辆车同时在开?那些程序的时候是交错着写(写完0通道下来写1通道再下来写0通道再下来写1通道?)还是写完一个通道所有的程序再写另外个通道?
答:1、modbus rtu 通信的从站数多了,调用的主站读写指令也会多,并且只有用轮循的方式写通讯程序,有延迟是正常现象,只要符合工艺控制要求就是可以的。
2、加一个485通讯板分成二组是一个好的主意,并且是可行的。
3、在写通讯程序的时候尽可能地读连续地区域,目的是减少读指令的个数。写可能做不到连续。
4、布线一定要规范,并注意通讯线路的端头终端电阻的使用。线路的端头变频吕怎样加端电阻是一个要参考下面资料的。这样要求的目的是增大通讯的成功率,减少重试的次数。
5、减少看试的次数。见下面的链接《Modbus RTU常见问题》的问题 5 说明
MBUS_MSG 指令被激活时将发送 Modbus 请求报文帧,如果在Timeout 参数定义的时间间隔内主站未接收到从站应答,Modbus RTU 主站协议库默认的情况下还会再发送 2 次 Modbus 请求报文帧;在最后一次请求报文帧发送后,经过 Timeout 参数定义的时间间隔后还未收到应答时, MBUS_MSG 指令的 Done 完成位才被设置为 1 。将 mModbusRetries 变量的数值由 2 改为 0 ,即可取消 Modbus 请求报文帧的重试次数。mModbusRetries 变量的绝对地址可通过查询Modbus RTU 主站协议库的符号表获取。
6、资料链接
http://www.ad.siemens.com.cn/productportal/Prods/s7-200-smart-portal/200SmartTop/SmartSMS/020.html
补充:
是两个通道各跑各的车,相互之间是独立的,互不影响,各写各的轮循程序、各分配各的库存储区。