Modbus 功能
概述
Modbus 协议提供了在 Modbus 网络上读写数据的众多功能。Modbus 协议还提供了诊断和网络管理功能。
此处仅介绍由 VigiPacT 继电器处理的 Modbus 功能。
功能
以下为可供使用的功能:
功能代码 |
子功能代码 |
名称 |
说明 |
---|---|---|---|
1 (0x01) |
– |
读取线圈 |
读取输出位 |
2 (0x02) |
– |
读取离散量输入 |
读取输入位 |
3 (0x03) |
– |
读保持寄存器 |
读取 n 个寄存器 |
5 (0x05) |
– |
写入单个线圈 |
写入 1 个位 |
6 (0x06) |
– |
写入单个寄存器 |
写入 1 个寄存器 |
16 (0x10) |
– |
写入多个寄存器 |
写入 n 个寄存器 |
43 (0x2B) |
14 (0x0E) |
读设备标识 |
读取服务器的标识数据 |
读寄存器的示例
下表显示了如何在寄存器 1005 中读取测得的电流。寄存器 1005 的地址为 1005-1 = 1004 = 0x03EC。Modbus 服务器的 Modbus 地址为 247 = 0xF7。
客户端请求 |
服务器应答 |
||
---|---|---|---|
字段名称 |
示例 |
字段名称 |
示例 |
Modbus 服务器地址 |
0xF7 |
Modbus 服务器地址 |
0xF7 |
功能代码 |
0x03 |
功能代码 |
0x03 |
要读取的寄存器地址(最高有效位) |
0x03 |
数据长度(字节) |
0x02 |
要读取的寄存器地址(最低有效位) |
0xEC |
寄存器数值(最高有效位) |
0x12 |
寄存器数量(最高有效位) |
0x00 |
寄存器数值(最低有效位) |
0x34 |
寄存器数量(最低有效位) |
0x01 |
CRC(最高有效位) |
0xXX |
CRC(最高有效位) |
0xXX |
CRC(最低有效位) |
0xXX |
CRC(最低有效位) |
0xXX |
– |
寄存器 1005(地址 0x03EC)的内容为 0x1234 = 4660。因此,测得的电流为 4660 mA。