Hi,大家好,我是编程小6,很荣幸遇见你,我把这些年在开发过程中遇到的问题或想法写出来,今天说一说
modbus读取寄存器数据_modbus地址对照表,希望能够帮助你!!!。
该功能码用于从远程设备读取连续输入寄存器的内容. 主设备在请求PDU中指定起始寄存器的地址以及需要读取的寄存器数量. PDU中输入寄存器的地址是从0开始的. 因此,地址0-15对应输入寄存器1-16.
在从设备返回的消息中, 每个输入寄存器的内容用两个字节进行编码, 寄存器的内容是右对齐的. 第1个字节包含寄存器的高位内容, 第2个字节包含寄存器的低位内容.
域 |
字节数 |
描述 |
功能码 |
1 |
0x04 |
起始地始 |
2 |
0x0000-0xFFFF |
寄存器数 |
2 |
1-125(0x7D) |
域 |
字节数 |
描述 |
功能码 |
1 |
0x04 |
字节总数 |
1 |
2xN |
寄存器值 |
2xN |
N为寄存器数量.
域 |
字节数 |
描述 |
功能码 |
1 |
0x84 |
异常代码 |
1 |
01或02或03或04 |
读输入寄存器0.
请求PDU |
响应PDU |
||
域 |
值(HEX) |
域 |
值(HEX) |
功能 |
04 |
功能 |
04 |
起始地址高8位 |
00 |
字节总数 |
02 |
起始地址低8位 |
08 |
寄存器值高8位(9) |
00 |
寄存器数高8位 |
00 |
寄存器值低8位(9) |
0A |
寄存器数低8位 |
01 |
在请求报文中, 输入寄存器9对应的地址为8, 用十六进制表示为0x0008.
输入寄存器9的值为0x000A.
从设备读输入寄存器流程图如下图所示.
读线圈输入功能可阅读
https://www.toutiao.com/i/
MODBUS读离散输入功能可阅读
https://www.toutiao.com/i0/
MODBUS读保持寄存器功能可阅读
https://www.toutiao.com/i/
[1] Modbus Application Protocol(V1.1b). http://www.modbus.org/docs/Modbus_Application_Protocol_V1_1b.pdf
转载或者引用本文内容请注明来源及原作者。
今天的分享到此就结束了,感谢您的阅读,如果确实帮到您,您可以动动手指转发给其他人。
上一篇
已是最后文章
下一篇
已是最新文章