常州机器视觉培训

常州上位机软件开发

常州工业机器人编程设计培训

常州PLC培训

常州PLC

常州PLC编程培训

常州电工培训

常州和讯plc培训中心欢迎您!
热门课程
联系方式
  • 常州和讯自动化培训中心
  • 常州市新北区府琛商务广场2号楼1409室
  • 电话:0519-85602926
  • 手机:15861139266 13401342299
当前位置:网站首页 > 新闻中心 新闻中心
终于有人把Modbus协议说明白了-常州上位机培训,常州机器视觉培训,常州工业机器人培训
日期:2024-1-24 14:11:24人气:  标签:常州上位机培训 常州机器视觉培训 常州工业机器人培训

在很多人眼里,可能认为我就是Modbus的“死忠粉”,今天我要“反骨”一下,“揭露”一下Modbus协议的缺点。

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


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


10年工程师的Modbus总结

Modbus协议的优点我觉得不用多说,一个四十多年前的协议,能够广泛应用到今天,必然有它的道理,这比一个公司存活40多年可能还要不容易。

但是这篇文章,主要是想跟大家聊聊Modbus协议的缺点。

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


1、读取数据量的限制

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

1.png

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

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


2、不支持分区读区和同时读写

Modbus只能一次性读取连续的地址,如果地址不连续,就可能需要分批来读取。当然如果地址间隔不大,在一次性读取的长度范围内,也应该一次性连续读取。

另外,Modbus协议不允许同时进行读写操作,必须分时操作。 例如03H是读寄存器,06H是写寄存器,这两个指令必须通过两个通讯帧分开执行,而且不能连续执行,必须等待各自的回应之后才可以执行下一条指令。


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

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


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


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

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

Modbus协议是1979年诞生,现在已经应用在成千上万个设备当中了,我们都能想到,专家们肯定也知道这样的问题,但是无法统一去更改。


最后还是强调一点:

凡事都有双面性,Modbus有缺点,但并不妨碍它是工业里应用最广泛的协议之一,希望大家理性看待。

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

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

本文网址:
下一篇:没有资料

相关信息:
版权所有 CopyRight 2006-2017 江苏和讯自动化设备有限公司 常州自动化培训中心 电话:0519-85602926 地址:常州市新北区府琛商务广场2号楼1409室
苏ICP备14016686号-2 技术支持:常州山水网络
本站关键词:常州PLC培训 常州PLC编程培训 常州PLC编程 常州PLC培训班 网站地图 网站标签
在线与我们取得联系