Modbus协议的两个缺点

[复制链接]
查看30227 | 回复0 | 2024-1-31 15:53:19 | 显示全部楼层 |阅读模式


-Begin-

大家好!我是付工。

作为工控人,Modbus通讯协议想必都不陌生,Modbus通讯协议可以说是工业自动化领域应用最为广泛的通讯协议,因为它的开放性、可扩充性和标准化,使它成为通用工业标准。

大家如果对Modbus协议不熟悉的,可以看下这篇文章:

10年工程师的Modbus总结

Modbus协议的优点我觉得不用多说,这篇文章,主要是想跟大家聊聊Modbus协议的缺点。

凡事都有双面性,任何协议都有自身的不足之处,Modbus有缺点,并不意味它就是一个不好的协议,希望大家理性看待。


1、读取数据量的限制

下面这张图表示的是ModbusRTU协议03功能码的数据格式:



从图中我们可以看到从站返回数据的数据个数(字节计数)只占了一个字节。

由于字节计数只占用1个字节,导致读取输入/保持寄存器时,一次性最多只能读取127个寄存器,这个对于某些数据量非常大的场合,就需要读取多次,才能读取到所有的数据,这样通信效率必然会降低。

2、不支持寄存器位的写入

Modbus常用的8个功能码当中,是没有针对寄存器的位写入的。所以当我们需要给某个寄存器的某个位置位或者复位时,就会变得非常麻烦。

我们一般的处理方式有两种:

第一种方式:我们需要先读取这个寄存器的值,然后再将这个值的某个位处理之后,将处理后的值进行写入,相当于需要交互两次才可以实现,并且这种方式从某种角度上来说是不安全的。

第二种方式:我们可以用一个寄存器代替一个位,写入1表示为True,写入0表示为False,这种方式可以单次交互实现,但是会浪费很多内存空间。

Modbus协议是1979年诞生,现在已经应用在成千上万个设备当中了,我相信发明者肯定也知道这样的问题,但是无法统一去更改。

也许某一天Modbus协议可以解决这两个问题......

也许有的人会说Modbus协议存在安全漏洞,我觉得Modbus协议作为工业现场应用,它的目的是实现数据交互,在不联网的环境下,没有攻击就没有伤害。


-END-

后台回复『软件』『文章』,可以获取更多软件和相关原创技术文章。

欢迎关注我的公众号,回复『加群』按规则加入技术交流群。

点击『阅读原文』,获取更多优质课程,欢迎点赞、在看、分享、收藏。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册哦

x
您需要登录后才可以回帖 登录 | 注册哦

本版积分规则