模拟器Server设置
Connection -> Connect
Setup -> Slave Definition
代码实现
Test0X0F.java
Request解析
000100000009010F0000000A025503
传输标志(2) |
协议标志(2) |
长度(2) |
单元标志(1) |
功能码(1) |
开始地址(2) |
Quantity of Outputs(2) |
字节个数(1) |
输出值(2) |
0001 |
0000 |
0009 |
01 |
0F |
0000 |
000A |
02 |
5503 |
其中输出值5503
转换为2进制为0101010100000011
,代表的意思为
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
15 |
14 |
13 |
12 |
11 |
10 |
9 |
8 |
0 |
1 |
0 |
1 |
0 |
1 |
0 |
1 |
0 |
0 |
0 |
0 |
0 |
0 |
1 |
1 |
Response解析
返回字节数组解析为16进制为000100000006010F0000000A
传输标志(2) |
协议标志(2) |
长度(2) |
单元标志(1) |
功能码(1) |
开始地址(2) |
Quantity of Outputs(2) |
0001 |
0000 |
0006 |
01 |
0F |
0000 |
000A |
模拟器Server控制结果
官方文档
Request
*N = Quantity of Outputs / 8, if the remainder is different of 0 N = N+1
Response
Error
Example
State Diagram
参考资料
Modbus官方文档:《Modbus_Application_Protocol_V1_1b3》
Modbus RTU和ASCII 协议解析 : http://www.modbustools.com/modbus.html