s7 200 smart MODBUS通讯 读写仪表的多个参数如何编程;
读写仪表单个参数好办,但读写单个仪表的多个参数是否需要每个参数的读写都编写一条MSG指令,然后一直轮询。这种方法对于多个仪表通讯感觉通讯延时就多。
请教各位还有更优方法吗??
最佳答案
读写单个仪表的多个参数是否需要每个参数的读写都编写一条 MSG 指令,然后一直轮询?
多仪表读写,轮询的方式是必须的。
单个仪表的多个参数如果类型及存储空间连续,并且不超过仪表允许一次性读写的个数限制,则可以用一个 MSG 主站指令来读写。这样可以减少 MSG 主站指令的个数。
单个如果类型一样,存储空间又不连续,在不超过仪表允许一次性读写的个数限制时,则可以用一个 MSG 主站指令来读写。这样可以减少 MSG 主站指令的个数,只是要浪费一些通讯的效率,这要根据实际评估。
轮询的方式即使通讯正常也是会产生延时的。
1、减少掉站重试的次数
MBUS_MSG 指令被激活时将发送 Modbus 请求报文帧,如果在Timeout 参数定义的时间间隔内主站未接收到从站应答,Modbus RTU 主站协议库默认的情况下还会再发送 2 次 Modbus 请求报文帧;在最后一次请求报文帧发送后,经过 Timeout 参数定义的时间间隔后还未收到应答时, MBUS_MSG 指令的 Done 完成位才被设置为 1 。将 mModbusRetries 变量的数值由 2 改为 0 ,即可取消 Modbus 请求报文帧的重试次数。mModbusRetries 变量的绝对地址可通过查询Modbus RTU 主站协议库的符号表获取。
2、采用质量可靠的器件、规范布通讯线、系统的接地、EMC 防护做好,尽可能提高通讯波特率。
3、按最上的方法减少MSG 主站指令的个数。
http://www.ad.siemens.com.cn/productportal/Prods/s7-200-smart-portal/200SmartTop/SmartSMS/020.html
提问者对于答案的评价:
通过这次提问,收获很多,也得到满意的答案。感谢各位专家。
原创文章,作者:ximenziask,如若转载,请注明出处:https://www.zhaoplc.com/plc366446.html