一、MODBUS简介
①Modbus协议是一种请求/应答的串行链路协议,是一种工业现场总线协议标准。是一项应用层报文传输协议,用于在通过不同类型的总线或网络连接的设备之间的客户机/服务器通信。
②Modbus协议是一项应用层报文传输协议,包括ASCII、RTU、TCP三种报文类型。
③标准的Modbus协议物理层接口有RS232、RS422、RS485和以太网接口,采用master/slave方式通信。
④MODBUS 是一项应用层报文传输协议,用于在通过不同类型的总线或网络连接的设备之间的客户机/服务器通信。
MODBUS 通用帧如图:
二、MODBUS功能码详解
1. 寄存器分类
Modbus寄存器分为四种,如表
| 寄存器种类 | 数据类型 | 访问类型 | 功能码 | PLC地址 | 寄存器地址 |
|---|---|---|---|---|---|
| 线圈寄存器 | 位 | 读写 | 01H 05H 0FH | 00001-09999 | 0000H-FFFFH |
| 离散输入寄存器 | 位 | 只写 | 02H | 10001-19999 | 0000H-FFFFH |
| 输入寄存器 | 字 | 只写 | 04H | 30001-39999 | 0000H-FFFFH |
| 保持寄存器 | 字 | 读写 | 03H 06H 10H | 40001-49999 | 0000H-FFFFH |
2. 常用功能码
Modbus中常用功能码有8个,可以分为位操作和字操作两类,如表所示:
| 功能码 | 描述 | PLC地址 | 寄存器地址 | 位/字操作 | 操作数量 |
|---|---|---|---|---|---|
| 01H | 读线圈寄存器 | 00001-09999 | 0000H-FFFFH | 位操作 | 单个或多个 |
| 02H | 读离散输入寄存器 | 10001-19999 | 0000H-FFFFH | 位操作 | 单个或多个 |
| 03H | 读保持寄存器 | 40001-49999 | 0000H-FFFFH | 字操作 | 单个或多个 |
| 04H | 读输入寄存器 | 30001-39999 | 0000H-FFFFH | 字操作 | 单个或多个 |
| 05H | 写单个线圈寄存器 | 00001-09999 | 0000H-FFFFH | 位操作 | 单个 |
| 06H | 写单个保持寄存器 | 40001-49999 | 0000H-FFFFH | 字操作 | 单个 |
| 0FH | 写多个线圈寄存器 | 00001-09999 | 0000H-FFFFH | 位操作 | 多个 |
| 10H | 写多个保持寄存器 | 40001-49999 | 0000H-FFFFH | 字操作 | 多个 |
2. 常用功能码说明
①读线圈寄存器——01H
●功能码01H读取Modbus从机中线圈寄存器的状态,可以是单个寄存器,或者多个连续的寄存器。
●假设从机地址为01H,读取的线圈寄存器的起始地址为0017H,读取38个寄存器,指令如表所示:
发送读线圈寄存器指令:
| 从机地址 | 功能码 | 起始地址高位 | 起始地址低位 | 寄存器数量高位 | 寄存器数量低位 | CRC高位 | CRC低位 |
|---|---|---|---|---|---|---|---|
| 01 | 01 | 00 | 17 | 00 | 26 | 0D | D4 |
●响应:各线圈的状态与数据内容的每个bit对应,1代表ON,0代表OFF。如果查询的线圈数量不是8的倍数,则在最后一个字节的高位补0。
读线圈寄存器状态响应:
| 从机地址 | 功能码 | 返回字节数 | 数据1 | 数据2 | 数据3 | 数据4 | 数据5 | CRC高位 | CRC低位 |
|---|---|---|---|---|---|---|---|---|---|
| 01 | 01 | 05 | CD | 6B | B2 | 0E | 1B | 44 | EA |
●其中,第一个字节CDH对应线圈0017H到001E的状态,转为二进制是11001101,其中bit0对应0017H,bit7对应001E,如表所示:
线圈0017H到001EH的状态:
| 001EH | 001DH | 001CH | 001BH | 001AH | 0019H | 0018H | 0017H |
|---|---|---|---|---|---|---|---|
| ON | ON | OFF | OFF | ON | ON | OFF | ON |
●最后一个字节为1BH,对应线圈0037H到003CH的状态,转为二进制是00011011,其中bit0对应0037H,bit5对应003CH,其余两位用0填充,如表所示:
线圈0037H到003CH的状态:
| 001EH | 001DH | 001CH |
|---|

最低0.47元/天 解锁文章
6402

被折叠的 条评论
为什么被折叠?



