1.配置Setup-->Poll Definition
Slave :表示从机的地址。(范围1-255,要与自己的从机的地址一致)
Function:功能码的选择。(read coil 的功能码为 01)
Address:表示线圈的起始地址。(线圈的地址并不一定非要是物理地址(即单片机中p2.0~p2.7的在单片机中的实际地址),可以使用逻辑地址,比如为0~7
length :表示读取开关量的数量。
Scan Rate:可以先不管,按照默认设置。
Enable Poll 如图设置(打上勾)。
图示变化:
从机地址(Slave设置):
线圈的起始地址设置:
读取开关量的数量设置:
03:读取寄存器(功能码).
2.Connection-->Connection
左边的5个选项和“串口调试助手”设置一样。‘port4’即‘com4’
其他选项按默认设置。
3.查看是否通讯成功。
4.Communication Traffic 可以查看通讯数据帧
5.TX,RX字符解析
示例1:
示例2:
示例1中以下为例:
000616-Tx:01 03 00 00 00 04 44 09
000617-Rx:01 03 08 41 C8 00 00 43 FA 00 00 2C 52
示例2中以下为例:
000628-Tx:01 03 00 00 00 02 C4 0B
000629-Rx:01 03 04 41 C8 00 00 6F F1
注:
TX 发送每个字节的数据格式都以16进制形式表示,例如:01 在10进制中对应的值是 1
RX接收的数据格式为:前三个字节和最后两个字节为16进制数(例如01、03、08、04),后两个字节为16进制数(例如2C 52、6F F1),中间部分为32位16进制数(即四字节单精度),例如41 C8 00 00、43 FA 00 00。
5.1 TX
01 03 00 00 00 04 44 09
01:从站地址
03:功能码,代表读取保持寄存器
00 00:起始寄存器地址,代表要读取的第一个保持寄存器的地址,这里为 0000
00 04:数据字节数,代表要读取的保持寄存器数量,这里为 4
44 09:CRC 校验码,用于检查报文是否有误
发送01 03 00 00 00 04 44 09指令给设备,该指令的含义为读取设备地址为01的寄存器数据,要读取的寄存器地址从00 00开始,读取的数据长度为04(4)个字节。44 09为CRC校验码。
01 03 00 00 00 02 C4 0B
01:从站地址
03:功能码,代表读取保持寄存器
00 00:起始寄存器地址,代表要读取的第一个保持寄存器的地址,这里为 0000
00 02:数据字节数,代表要读取的保持寄存器数量,这里为 2
C4 0B:CRC 校验码,用于检查报文是否有误
发送01 03 00 00 00 02 C4 0B指令给设备,该指令的含义为读取设备地址为01的寄存器数据,要读取的寄存器地址从00 00开始,读取的数据长度为02(2)个字节。C4 0B为CRC校验码。
5.2 RX
01 03 08 41 C8 00 00 43 FA 00 00 2C 52
01:从站地址
03:功能码,代表读取保持寄存器
08:数据字节数,代表要读取的保持寄存器数量
41 C8 00 00 :第一个保持寄存器的值,即地址为 41 C8 00 00 的保持寄存器的值,转换成十进制为25
43 FA 00 00:第二个保持寄存器的值,即地址为 43 FA 00 00 的保持寄存器的值,转换成十进制为 500
2C 52:CRC 校验码,用于检查报文是否有误
01 03 04 41 C8 00 00 6F F1
01:从站地址
03:功能码,代表读取保持寄存器
04:数据字节数,代表要读取的保持寄存器数量
41 C8 00 00:第一个保持寄存器的值,即地址为 41 C8 00 00 的保持寄存器的值,转换成十进制为 25
6F F1:校验码,用于检查报文是否有误
报文转换成十进制(在线进制转换-IEE754浮点数16进制转换):
01 03 08(16进制转10进制)
01 03 04(16进制转10进制)
41 C8 00 00, 43 FA 00 00(32位16进制的数[32位 四字节 单精度])
41 C8 00 00(32位16进制的数[32位 四字节 单精度])
发送数据 | 收到的校验码 |
---|---|
44 09 | 2C 52 |
C4 0B | 6F F1 |
注:配置Setup-->Poll Definition,Length不同长度会导致校验码不同。