MBUS_MSG指令读写程序

因MBUS_MSG指令读写一次要多个扫描循环才能完成,把它放在子程序或中断程序可以吗,要怎样做程序(试了放在中断程序里不行)。如果不行,用什么方法解决很多MBUS_MSG指令读写使程序扫描时间过长的问题?

最佳答案

modbus RTU Master 协议库的 MBUS_CTRL 指令不需要很长的执行时间。MBUS_需要 1.11 ms用于初始化,在后续的每个扫描周期中只占用 0.41 ms。
 调用 MBUS_MSG 子程序会加长处理时间。大部分时间都用于 CRC 校验的计算。每读、写一个字的数据就需要 1.85 ms扫描时间。数据最多的情况下(读、写 120 字的数据),扫描时间大概会扩增加 222ms。读操作的时间主要消耗在接收数据上;写操作的时间主要消耗在发送数据上。

 建议每一个读写功能(即 MBUS_MSG)都用上一个 MBUS_MSG 指令的Done 完成位来激活,以保证所有读写指令循环进行。

 
 见《S7 200 modbus 协议使用详解》:
 http://www.gongkong001.com/News/5025.html

提问者对于答案的评价:
谢谢,回答的较详细!

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

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2021年7月4日 下午10:42
下一篇 2021年7月4日 下午10:42

相关推荐

发表回复

登录后才能评论