Modbus协议是一种常用于工业自动化和物联网领域的通信协议,以下是对Modbus协议的详细介绍。
已经更新系列文章包括104、61850、单片机等,欢迎关注+星标,后续好文章持续更新。
Modbus poll slave工具下载: https://pan.baidu.com/s/1Q19HJEgSTcepPhIvc0E93Q 提取码: qi2e
一、概述
Modbus协议最初由Modicon公司(现为施耐德电气公司的一部分)于1979年开发,旨在实现自动化设备之间的通信。它已经成为工业领域通信协议的业界标准,并广泛应用于工业电子设备之间的连接。
二、主要特点
- 简单易懂
:Modbus协议采用了简单的通信格式,易于理解和实现。
- 灵活性
:Modbus协议支持多种物理层和传输介质,包括串口(如RS232、RS485和RS422)和以太网等,可以适应不同的通信需求。
- 易于扩展
:Modbus协议支持主从结构和多点通信,可以轻松地扩展到多个设备。
- 开放性
:Modbus协议是一个开放的协议,各种厂商都可以使用和实现,促进了其在工业自动化领域的广泛应用。
- 可靠性
:Modbus协议具有良好的容错性和可靠性,适用于工业环境中的数据通信和控制。
三、工作原理
Modbus协议采用主从通讯技术,即由主设备主动查询和操作从设备。主设备(如工控机和工业控制器等)负责发起每次交互,从设备(如PLC可编程控制器、传感器等)则接收主机发送的数据来进行响应。通信过程中,主设备发送请求,从设备应答,主设备不发送时,总线上没有数据通信。从设备不会自己发送消息给主设备,只能回复主设备发送的消息请求。
四、协议分类
Modbus协议存在多种版本和变种,以适应不同的通信需求和传输介质。其中最常见的有:
- Modbus ASCII
:当设备设置为使用ASCII模式在Modbus串行线上进行通信时,消息中的每个8位字节将作为两个ASCII 4位字符发送。此模式的效率不如Modbus RTU,因为每个字节需要两个字符。
- Modbus RTU
:是一种紧凑的二进制表示数据的方式,因为使用二进制编码和CRC错误检查的结合,使得Modbus RTU适用于工业应用,比ASCII字符的替代方案更有效地传输。
- Modbus TCP
:是在TCP/IP网络上运行的Modbus的实现,旨在允许Modbus ASCII/RTU协议在基于TCP/IP的网络上传输。它将Modbus消息嵌入TCP/IP帧内,实现了Modbus协议在以太网上的传输。
五、Modbus RTU帧结构
Modbus RTU(Remote Terminal Unit)是Modbus通信协议的一种变种,用于串行通信。它是一种常见的工业控制系统通信协议,通常用于采集传感器数据、控制执行器和监控设备状态。
报文结构
地址:取值范围是0-247,如果是0,就是主站广播报文;如果是1-247,则有可能是主站请求或者从站应答。
功能码:也就是报文命令,代表主站对从站的操作,读或者写
数据:数据字段,主请求报文,从应答报文会有所差异。也就是说假设抓取总线报文,如何区分是主站请求还是从站应答,则需要通过数据字段进行区分了。
CRC校验:采用CRC16,16位循环冗余校验。
Modbus RTU 帧总长度最大为 256 字节(即数据部分最多252字节)。
六、Modbus TCP帧结构
ModbusTCP的数据帧可分为两部分:MBAP+PDU,如下图所示。
MBAP(报文头)
(1)事务标识符:可以解释为报文的序列号,客户端发送数据,每发送一次数据标识符就加一。服务器接收时会把这个数据原封返回。
(2)协议表示:00 00代表TCP协议。 (3)长度:表示从单元标识符开始后面数据的长度。如:00 06表示后面有0X06个字节长度的数据。 (4)单元标识符:相当于设备的地址。一般为01。
PDU(帧结构)
PDU=功能码+数据。
功能码:
(1)modbus的操作对象有四种:线圈、离散输入、输入寄存器、保持寄存器。线圈:相当于开关,在MODBUS中可读可写,数据只有00和01。离散量:输入位,开关量,在MODBUS中只读。输入寄存器:只能从模拟量输入端改变的寄存器,在MODBUS中只读。保持寄存器:用于输出模拟量信号的寄存器,在MODBUS中可读可写。
(2)根据对象的不同,modbus的功能码有:
0x01:读线圈
0x05:写单个线圈
0x0F:写多个线圈
0x02:读离散量输入
0x04:读输入寄存器
0x03:读保持寄存器
0x06:写单个保持寄存器
0x10:写多个保持寄存器
六、Modbus常用工具
最常用、功能最强大的工具莫如 Modbus Poll、Modbus slave, Modbus Poll 可模拟rtu和tcp两种模式下的主机,Modbus slave可模拟rtu和tcp两种模式下的从机。是了解协议和开发协议的好助手。
Modbus Poll 如下
Modbus slave如下
工具下载: https://pan.baidu.com/s/1Q19HJEgSTcepPhIvc0E93Q 提取码: qi2e