技术论坛

 关于Modbus-RTU轮询通讯的一些看法

返回主题列表
作者 主题
Zane
至圣

经验值:76180
发帖数:19322
精华帖:377
楼主    2019-01-09 13:28:14
主题:关于Modbus-RTU轮询通讯的一些看法 精华帖 

        最近MODBUS-RTU通讯在论坛里讨论得火热,各种问题的焦点在于如何实现可靠的轮询通讯,我提出的观点是用一个MSG指令(200SMART)实现轮询通讯,因为这种方法的实现在技术上有不可替代的优越性:

 

对多个相同站相同的通讯任务:

        举个例子,我有30颗子弹(这里好比30个一样的通讯任务,只是站地址不同),我要30支枪(MSG功能块)来发射这30颗子弹吗?难道不能使用一支枪(一个MSG功能块)来发射这30颗子弹吗?(这就是只用1个MSG指令)。

        这个MSG是汉阳造栓动单发,还是56式半自动,还是95式全自动,这就是相关轮询通讯程序编写的层次高低了。

        解决了自动发射(自动轮询)的问题,我可以在弹匣(通讯任务列表)里,间隔地压上普通弹(读任务)与曳光弹(写任务),就可以实现对多个站的连续的读写任务了。

对不同站的不同通讯任务:

        再举个例子,坦克只有一门炮,可以发射穿甲弹(读 40001开始2个数据),破甲弹(写40005开始3个数据),榴弹(读 40010开始1个数据),炮射导弹(写41000开始的10个数据),坦克根据作战目标的不同,决定了发射的弹种与数量,以及发射次序。这就好比在实际项目中的一个热水锅炉房的控制系统,SMART200 PLC是主控制器,通过Modbus-RTU实现对循环泵变频的调速控制,通过Modbus-RTU读回系统温度/压力变送器及流量传感器的数值,不同的锅炉房,可能变频有两台,温度/压力/流量的仪表数量也会不同,你是说不行要援兵(增加通讯口)还是说一夫档关呢?

最后归结到

如何适应通讯任务类型与数量的变化,而轮询通讯的程序部分不需要随之修改呢?所有的变化应该在哪里?


Zane 注册自动化系统工程师 Always save before download
您收到0封站内信:
×
×
信息提示
很抱歉!您所访问的页面不存在,或网址发生了变化,请稍后再试。