S71200 MODBUS轮询时间

S71200485通讯口上挂20个多功能仪表,走modbus通讯协议。轮询一遍需要每台仪表读一次数据,写一次数据,按照官网例子来编一个轮询差不多要2分钟,能否在几秒钟之内完成上述功能,如何实现比较快?

问题补充:
能否使用循环中断來实现轮询功能?

最佳答案

轮询可以考虑两种方式:
1、定时轮询,比如第1秒读1#表,第2秒读2#表以此类推
2、通过通讯成功标志位轮询,即与读1#表成功后,读2#表;读2#表成功后,读3#表。以此类推。
对通信实时性要求比较高的话,推荐采用第2种方式。
具体实现方法:
1、用一个计数器对通信功能块的DONE和ERROR位进行计数,
2、通过该计数器的值来触发读写功能块,比如计数器=1,读1#表;计数器=2,读2#表。
3、可以多试几次,确定一个比较合适的通信超时时间(超时时间太长的话,影响通信速度)。
4、1200MODBUS指令的背景数据块里有个“RETRY重试次数”的变量,默认为2,可以把该变量改为0。

提问者对于答案的评价:
谢谢。

专家置评

已阅,最佳答案正确。

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

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2017年8月18日
下一篇 2017年8月18日

相关推荐