Java小强个人技术博客站点    手机版
当前位置: 首页 >> 理论 >> Modbus协议基本概念

Modbus协议基本概念

110 理论 | 2025-7-4

Modbus是由Modicon公司(现为施耐德电气)在1979年开发的工业通信协议,是世界上最早用于工业电子设备之间通信的协议之一。它是一个**主从式(Master-Slave)**通信协议,广泛应用于工业自动化领域。

modbus.jpg

Modbus的特点

开放性:协议规范公开,任何厂商都可以使用

简单性:协议结构简单,易于实现和理解

可靠性:内置错误检测机制

灵活性:支持多种物理层和数据链路层


Modbus四大存储区详解‌

‌线圈寄存器(1区 | Coils)‌

‌地址范围‌:00001-09999(实际协议地址0x0000起)

‌读写权限‌:‌可读可写‌

‌数据类型‌:1位二进制值(ON/OFF)

‌用途‌:控制设备开关量输出(如继电器启停、电机控制)

‌功能码‌:

读:0x01

写单点:0x05

写多点:0x0F

‌离散输入寄存器(2区 | Discrete Inputs)‌

‌地址范围‌:10001-19999

‌读写权限‌:‌只读‌

‌数据类型‌:1位二进制值

‌用途‌:采集开关量输入信号(如按钮状态、传感器触点)

‌功能码‌:

读:0x02

‌输入寄存器(3区 | Input Registers)‌

‌地址范围‌:30001-39999

‌读写权限‌:‌只读‌

‌数据类型‌:16位整数或浮点数

‌用途‌:存储模拟量输入数据(如温度、压力传感器值)

‌功能码‌:

读:0x04

‌保持寄存器(4区 | Holding Registers)‌

‌地址范围‌:40001-49999

‌读写权限‌:‌可读可写‌

‌数据类型‌:16位整数、浮点数或自定义数据

‌用途‌:存储设备参数或控制数据(如设定值、运行参数)

‌功能码‌:

读:0x03

写单点:0x06

写多点:0x10


数据类型地址范围访问权限数据大小功能码
线圈(Coils)00001-09999读/写1位01,05,15
离散输入(Discrete Inputs)10001-19999只读1位02
输入寄存器(Input Registers)30001-39999只读16位(2个字节)04
保持寄存器(Holding Registers)40001-49999读/写16位(2个字节)03,06,16


主要功能码详解

0x01 (1) - 读取线圈状态:从服务器获取一组线圈(离散输出)的当前状态。

0x02 (2) - 读取输入状态:从服务器获取一组离散输入的当前状态。

0x03 (3) - 读取保持寄存器:从服务器获取一组保持寄存器的内容。

0x04 (4) - 读取输入寄存器:从服务器获取一组输入寄存器的内容。

0x05 (5) - 写入单个线圈:设定服务器上某个线圈的状态。

0x06 (6) - 写入单个保存寄存器:设定服务器上某个保持寄存器的内容。

0x0F (15) - 写入多个线圈:设定服务器上一组线圈的状态。

0x10 (16) - 写入多个保存寄存器:设定服务器上一组保持寄存器的内容。


Modbus变体

Modbus RTU(远程终端单元)

特点:

使用二进制数据传输

数据紧凑,传输效率高

使用CRC校验

常用于RS-485/RS-232串口通信

[从站地址][功能码][数据][CRC校验]
   1字节    1字节   N字节   2字节

Modbus ASCII

特点:

使用ASCII字符传输

数据可读性好,易于调试

使用LRC校验

传输效率相对较低

[起始符][地址][功能码][数据][LRC校验][结束符]
   :     2字节   2字节   N字节   2字节   CR LF

Modbus TCP/IP

特点:

基于以太网传输

使用TCP协议,无需额外校验

支持并发连接

传输距离远,速度快

[MBAP头部][功能码][数据]
  7字节     1字节   N字节

MBAP头部结构:

事务处理标识符(2字节)

协议标识符(2字节,固定为0000)

长度字段(2字节)

单元标识符(1字节)


Modbus的应用场景

Modbus协议广泛应用于工业控制系统中,尤其是在以下场景中:

设备间数据采集和监控(如PLC与传感器、HMI的连接)。

过程自动化中的数据传输。

远程监控和控制系统(如SCADA系统)。

Modbus的开放性和简单性,使其成为工业物联网(IIoT)中广泛使用的协议之一。

推荐您阅读更多有关于“ tcp Modbus RTU ASCII ”的文章

下一篇:Win10、Win11上如何配置开机启动程序、脚本

猜你喜欢

发表评论: