什么是Modbus通讯协议?
扫描二维码
随时随地手机看文章
Modbus是由Modicon(现为施耐德电气公司的一个品牌)在1979年发明的一种工业控制总线协议,是全球第一个真正用于工业现场的总线协议。Modbus以其简单、健壮、开放而且不需要特许授权的特点,成为通用通信协议。为了适应以太网环境,Modbus被封装在TCP包中,并且在默认情况下通过TCP协议的502端口进行传输。
基于Modbus协议的系统由带智能终端的可编程逻辑控制器和计算机通过公用线路或局部专用线路连接而成。其系统结构既包括硬件,又包括软件。可应用于各种数据采集和过程监控。
Modbus协议采用主-从结构,为客户机和服务器之间提供通信连接。
Modbus协议定义了一个与基础通信无关的协议数据单元(Protocol Description Unit,PDU),描述协议的基本功能。PDU属于应用数据单元(Application Data Unit,ADU)的一部分,除此之外,ADU还包括附加地址域和差错校验域及实际传输的数据,这个数据可能是业务数据,也可能是指令、响应信息或报警信息等。
Modbus协议包括ASCII、RTU、TCP三种报文类型,可以使用串口传输数据和指令。
Modbus协议的安全性介绍如下。
Modbus协议在传输数据时以明文方式传输,不进行任何安全处理。因此,Modbus协议存在明显的安全缺陷。攻击者一旦进入Modbus线路获得数据包,就可以伪造、篡改数据包,还可以恶意篡改功能码。
由于Modbus没有安全认证功能,因此攻击者只要找到一个工业控制设备的合法地址,就可以随意建立一个Modbus通信会话,从而造成控制混乱。由于Modbus没有数据加密功能,因此攻击者可以观察到系统之间的控制关系和控制过程。由于Modbus缺乏授权和入侵访问安全功能,因此任何用户都有权执行任意功能,为攻击者提供了方便,同时也加大了内部误操作和内部攻击造成的危害。另外,攻击者对功能码的非法篡改和利用可导致拒绝服务攻击等问题。Modbus协议的标准代码还存在缓冲区溢出漏洞,一旦被攻击者利用,可导致入侵,带来严重的后果。运行在TCP/IP之上的Modbus协议还会继承由TCP/IP协议的安全缺陷带来的安全风险。
Modbus 协议是:
Modbus是由Modicon(现为施耐德电气公司的一个品牌)在1979年发明的一种工业控制总线协议,是全球第一个真正用于工业现场的总线协议。Modbus以其简单、健壮、开放而且不需要特许授权的特点,成为通用通信协议。为了适应以太网环境,Modbus被封装在TCP包中,并且在默认情况下通过TCP协议的502端口进行传输。
基于Modbus协议的系统由带智能终端的可编程逻辑控制器和计算机通过公用线路或局部专用线路连接而成。其系统结构既包括硬件,又包括软件。可应用于各种数据采集和过程监控。
Modbus协议采用主-从结构,为客户机和服务器之间提供通信连接。
Modbus协议定义了一个与基础通信无关的协议数据单元(Protocol Description Unit,PDU),描述协议的基本功能。PDU属于应用数据单元(Application Data Unit,ADU)的一部分,除此之外,ADU还包括附加地址域和差错校验域及实际传输的数据,这个数据可能是业务数据,也可能是指令、响应信息或报警信息等。
Modbus协议包括ASCII、RTU、TCP三种报文类型,可以使用串口传输数据和指令。
1、 Modbus简介
Modbus 是由 Modicon(现为施耐德电气公司的一个品牌)在 1979 年发明的,是全球第一个真正 用于工业现场的总线协议。
ModBus 网络是一个工业通信系统,由带智能终端的可编程序控制器和计算机通过公用线路或局部专 用线路连接而成。其系统结构既包括硬件、亦包括软件。它可应用于各种数据采集和过程监控。
为更好地普及和推动 Modbus 在基于以太网上的分布式应用,目前施耐德公司已将 Modbus 协议的 所有权移交给 IDA(Interface for Distributed Automation,分布式自动化接口)组织,并成立了 Modbus-IDA 组织,为 Modbus 今后的发展奠定了基础。
在中国,Modbus 已经成为国家标准,并有专业的规范文档,感兴趣的可以去查阅相关的文件,详情如下:
标准编号为:GB/T19582-2008
文件名称:《基于 Modbus 协议的工业自动化网络规范》
主要有三部分的内容,分别如下:
《GB/T 19582.1-2008 第 1 部分:Modbus 应用协议》
《GB/T 19582.2-2008 第 2 部分:Modbus 协议在串行链路上的实现指南》
《GB/T 19582.3-2008 第 3 部分: Modbus 协议在 TCP/IP 上的实现指南》
2、Modbus协议概述
Modbus是一个主-从模式的通信协议,属于数据链路层上的协议,协议本身不涉及具体的硬件要求。
常见的应用Modbus协议的物理接口有RS-485、RS232、USART等的通信链路中。
Modbus协议中,一个时刻内只允许有一个主机连接于总线,多个从机连接于总线上,通信都是只能由主机发起,从机进行响应。不能从从机主动发起通信。
3、Modbus 主从机通信模式
主机和从机之间的通信,可以用两种模式进行:广播通知模式、单播点对点模式。
3.1、单播点对点模式
主机按照从机的明确地址访问相应的从机,从机接到来自主机的请求并处理完请求后,从机会向主机返回一个应答,完成一个通信。
在这种模式,一个 Modbus 事务处理包含 2 个报文:一个来自主机的请求,一个来自从机的应答。
在总线上,每个从机都必须有唯一的从机地址 (1 到 247),这样才能区别于其它节点被独立的寻址。
3.2、广播通知模式
主机向所总线通过广播指令发送请求,所有的从机都要接收来自主机的广播信息。
对于主机广播的请求,从机是没有应答返回的。所有的从机必须要接受主机的广播写功能。
地址 0 是专门用于主机向各个从机广播数据的。
4、Modbus 地址规则
Modbus 寻址空间可以有 256 个不同地址。如下图所示:
地址 0 为广播地址。所有的从机必须识别广播地址。
Modbus 主机本身是没有地址的,只有从机必须要有一个地址。该地址必须在 Modbus 串行总线上唯一。
248~255作为预留使用的地址。
5、Modbus 的帧格式
Modbus的帧格式按照选择的模式不同帧格式也是有所区别的。
5.1、RTU模式
RTU 模式下的帧格式如下图:Modbus RTU 帧总长度最大为 256 字节。
RTU 模式每个字节 ( 11 位 ) 的格式为** :**
8–位二进制,报文中每个 8 位字节含有两个 4 位十六进制字符(0–9, A–F)
每字节的 bit 流:
1 起始位
8 数据位, 首先发送最低有效位
1 位作为奇偶校验
1 停止位
偶校验是要求的, 其它模式 ( 奇校验, 无校验 ) 也可以使用。为了保证与其它产品的最大兼容性, 同时支持无校验模式是建议的。默认校验模式模式 必须为偶校验。
注 : 使用无校验要求 2 个停止位。
RTU模式时,每个字符或字节均由此顺序发送(从左到右):
最低有效位 (LSB) . . . 最高有效位 (MSB)
MODBUS通讯协议是工业自动化领域中广泛使用的一种串行通信协议。它由美国Modicon公司于1979年开发,现在已经成为工业电子设备之间通信的标准。MODBUS协议支持主从结构,允许多个设备通过串行线缆进行通信。根据不同的传输方式和数据格式,MODBUS协议可以分为多种类型。
一、MODBUS RTU(MODBUS Real-time Unit)
MODBUS RTU是MODBUS协议的一种形式,它采用二进制数据格式进行通信。在RTU模式下,数据帧中的每个字节之间没有分隔符,字节之间通过停止位进行区分。MODBUS RTU支持半双工通信,即在一个方向上的数据传输完成后,需要切换到另一个方向进行数据传输。它适用于长距离、低速率的通信场合。
二、MODBUS ASCII(MODBUS ASCII)
MODBUS ASCII是MODBUS协议的另一种形式,它采用ASCII字符格式进行通信。在ASCII模式下,数据帧中的每个字节之间有一个分隔符,字节之间通过空格进行区分。MODBUS ASCII支持半双工通信,它适用于需要传输文本信息或者需要查看通信数据的场合。
三、MODBUS TCP/IP(MODBUS over TCP/IP)
MODBUS TCP/IP是MODBUS协议在以太网上的实现,它采用TCP/IP协议进行通信。在TCP/IP模式下,MODBUS设备通过IP地址和端口号进行标识,主机设备可以通过网络接口与MODBUS设备进行通信。MODBUS TCP/IP支持全双工通信,即两个方向上的数据传输可以同时进行。它适用于需要远程控制和监控的场合。
四、MODBUS串行(MODBUS Serial)
MODBUS串行是MODBUS协议的基本形式,它采用串行线缆进行通信。在串行模式下,数据帧中的每个字节之间有一个起始位和一个停止位,字节之间通过电平的跳变进行区分。MODBUS串行支持半双工通信,它适用于近距离、高速率的通信场合。根据传输线的类型和电平的不同,MODBUS串行可以分为多种不同的物理层接口,如RS-485、RS-422、RS-232等。
五、其他类型
除了上述四种类型外,还有一些其他类型的MODBUS协议。例如,MODBUS Plus是一种适用于以太网的MODBUS协议,它采用令牌环方式进行通信;MODBUS ProfiNet是一种适用于工业以太网的MODBUS协议,它采用TCP/IP协议进行通信;MODBUS-IDA是一种适用于工业自动化的MODBUS协议,它支持多种不同的总线接口和数据格式。