模拟器Server设置
Connection -> Connect
Setup -> Slave Definition
Display -> Signed
代码实现
Test0X10.java
Request解析
发送字节数组解析为16进制为00010000000F011000000004080000000A0014001E
传输标志(2) |
协议标志(2) |
长度(2) |
单元标志(1) |
功能码(1) |
开始地址(2) |
寄存器个数(2) |
字节个数(1) |
输出值(8) |
0001 |
0000 |
000F |
01 |
10 |
0000 |
0004 |
08 |
00 00 00 0A 00 14 00 1E |
其中输出值0000000A0014001E
转换为十进制为0 10 20 30
Response解析
返回字节数组解析为16进制为000100000006011000000004
传输标志(2) |
协议标志(2) |
长度(2) |
单元标志(1) |
功能码(1) |
开始地址(2) |
寄存器个数(2) |
0001 |
0000 |
0006 |
01 |
10 |
0000 |
0004 |
模拟器Server控制结果
官方文档
Request
*N = Quantity of Registers
Response
Error
Example
State Diagram
参考资料
Modbus官方文档:《Modbus_Application_Protocol_V1_1b3》
Modbus RTU和ASCII 协议解析 : http://www.modbustools.com/modbus.html