0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

聊聊Modbus协议的短板:是时候寻求替代了吗?

达泰电子 ? 来源:达泰电子 ? 作者:达泰电子 ? 2025-02-26 17:01 ? 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

Modbus协议,作为工业物联网领域中的重要协议之一,以其显著的特点赢得了广泛的认可与应用。

wKgZO2e-2ICAE5W1AAAqcbAkusw75.jpeg

然而,正如任何技术都有其局限性和改进空间一样,今天我们将打破常规,采取一种‘倒反天罡’的视角,不再专注其优点,而是 深入剖析并探讨Modbus协议在实际应用中可能遇到的一些不足之处 ,以期能更系统地理解这一协议,并为未来的技术选型与优化提供参考依据。

1.数据读取限制

读个数据还得分批来?你需要有点儿耐心。

下面这张图是ModbusRTU协议03功能码读取保持型寄存器的报文格式:

wKgZPGe-2ICAXESdAACaZhaehRk50.jpeg

从这张图上,我们可以看到从站返回数据中有一个选项叫做数据个数,这个数据个数就是我们之前说的字节计数,它所占用的字节数是1。 那么意味着字节计数的最大值是255,返回报文中的字节计数是读取寄存器数量的2倍,因此读取寄存器的数量最大值是255/2=127。如果超过127个,就得通过分组的方式来多次读取。这个就会导致在一些数据量较大的场合,需要多次报文交互,才能完成所有的数据读取,从而导致通信效率的降低。

如果当初设计时,字节计数为2个字节,是不是意味着一次性可以读取更多的数据?

2.不支持寄存器位级写入

这个问题也是很多人比较头疼的。

Modbus协议常用的8个功能码中,并没有直接支持寄存器的位写入。当需要对某个寄存器的特定位进行置位或复位时,操作会变得非常繁琐。一种方法是先读取整个寄存器的值,对需要修改的位进行位操作后,再写回寄存器。这种方法需要两次通信,不仅增加了通信量,还可能引发数据一致性和安全性问题。另一种方法是用一个寄存器代替一个位,写入1表示True,写入0表示False。虽然这种方法可以在一次写操作中完成,但会浪费大量的寄存器空间,降低了资源利用率。

不仅是Modbus,其他很多协议也有同样的问题。

但是西门子S7协议是支持单个位写入的,对于那些需要频繁操作单个IO点或内部状态位的场景,西门子S7协议可能是一个更加合适的选择,它能够大幅提升系统的整体性能和响应速度。下面以S7协议无线以太网通信方案为例,介绍触摸屏与两台 PLC的无线S7协议通信实现过程。

wKgZO2e-2ICAA6TzAAI1OKPOswk345.png

当然,每种协议都有其适用的场景和优势,综合考量通信效率、设备兼容性、开发成本等因素,选择适合项目需求的协议才是关键。

4.不支持随机读写

下面这张图是三菱MC协议中的一段报文帧。

wKgZO2e-2ICAT-jJAACvN7oFNvg84.jpeg

这段报文的含义是一次性读取出D0、T0、M100-M115、X20-X2F、D1500-D1501、 Y160-Y17F、M1111-M1142。

Modbus协议不支持这样的读取操作,如果地址比较零散,就需要分很多批,这样必然会导致通信效率的降低。

4.安全性堪忧

安全性?不存在的!

Modbus的安全措施几乎为零,对黑客几乎不设防,没有加密、没有认证,简直是网络安全的“反面教材”。

这个其实和Modbus协议的使用场景有关。Modbus协议主要应用在设备层的一些仪表及控制层的一些PLC控制器中,所以大部分情况下都是局域网的应用,因此基本上不会出现黑客攻击或者数据篡改之类的问题。

Modbus协议作为工业现场应用,它的目的是实现数据交互,在不联网的环境下,没有攻击就没有伤害。所以你得自己想办法采取额外的安全措施来保障数据的安全性,如使用VPN、防火墙等网络安全设备,或者采用加密通信协议来替代Modbus协议。

总结

为了适应现代工业自动化的需求,许多新的通信协议和技术正在被开发和采用,以弥补Modbus的局限性。

总之,尽管存在这些不足,Modbus协议因其简单、易于实现和广泛的支持,仍然在许多工业场合中发挥着重要作用,作为“工业老兵”Modbus协议依然很能打!

审核编辑 黄宇

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • ModBus协议
    +关注

    关注

    3

    文章

    185

    浏览量

    34573
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    Modbus协议中文版

    modbus协议中文版
    发表于 09-18 10:58

    什么是Modbus协议?如何写稳定的Modbus代码?

    什么是Modbus协议Modbus协议有哪些分类?使用Modbus时有哪些注意事项?如何写稳定的Modbus代码?
    发表于 07-02 06:54

    modbus协议笔记

    1 Modbus协议概要? Modbus通信协议由Modicon公司(现在的施耐德电气Schneider Electric)于1979年为可编程逻辑控制(即PLC)通信而发表。目前,Modbu
    发表于 07-02 07:17

    Modbus协议是什么?Modbus协议主要有哪些应用?

    请问一下Modbus协议是什么?Modbus协议主要有哪些应用?
    发表于 07-15 12:04

    Modbus协议的特点是什么

    Modbus协议的特点是什么?Modbus协议有哪几类功能码?
    发表于 09-26 08:13

    Modbus协议是怎样进行通信的

    Modbus协议的原理是什么?Modbus协议是怎样进行通信的?
    发表于 09-28 06:48

    Modbus协议地址与协议层次

    Modbus协议地址是什么意思?Modbus协议层次有何优势?
    发表于 09-28 06:27

    Modbus协议是什么

    Modbus协议是什么?MODBUS功能码有哪些?MODBUS协议有哪几种传输模式?
    发表于 09-29 07:06

    Modbus是什么?Modbus协议有哪些优点

    Modbus是什么?Modbus协议有哪些优点?Modbus协议包括哪些?
    发表于 09-30 08:40

    Modbus协议的理解

    系统的兼容,最好采用通用的通讯协议。   我们可以Modbus协议进行修改,使之能使用在自己的系统中。Modbus协议包括ASCII、RTU、TCP等,并没有规定物理层。此协议定义了控
    发表于 05-05 16:47

    Modbus协议简介及其特点

    Modbus协议是什么,Modbus协议的特点,本文针对Modbus协议的概况加以阐述。
    发表于 11-02 15:00 ?4871次阅读

    modbus协议应用指南

    modbus协议
    发表于 12-04 09:45 ?7次下载

    使用MODBUS协议时候可以不用设置数据帧格式了吗

    在使用MODBUS协议进行串口通讯时,通常需要设置数据帧格式。
    的头像 发表于 01-30 09:32 ?1263次阅读

    Modbus协议网关是什么?Modbus协议网关的功能

    Modbus协议网关是一种专门用于工业自动化环境中的网络设备,其主要功能是实现不同通信协议之间的转换,尤其是将基于Modbus协议的设备或系统与使用其他协议的设备、控制系统或信息系统连
    的头像 发表于 04-11 15:51 ?1275次阅读

    DJN Modbus协议

    DJN Modbus协议
    的头像 发表于 11-27 13:52 ?1632次阅读
    DJN <b class='flag-5'>Modbus协议</b>