|
|
@@ -26,7 +26,7 @@ CRC(冗余循环码)
|
|
|
结束结构 >=4 字节的时间
|
|
|
地址码: 为PDU RS485串口的地址, 在通讯网络中是唯一的(出厂默认 0x01)。
|
|
|
功能码: 主机所发指令功能指示, 本PDU对应的功能码 0x03(读取保持寄存器数据)。
|
|
|
-数据区: 数据区是具体通讯数据, 注意 16bits 数据高字节在前!
|
|
|
+数据区: 数据区是具体通讯数据, 注意 16bits 数据低字节在前!
|
|
|
CRC 码: 二字节的校验码,多项式X16+X15+X2+1,即0x8005。
|
|
|
对应的帧结构如下:
|
|
|
主机问询帧结构:
|
|
|
@@ -34,8 +34,8 @@ CRC 码: 二字节的校验码,多项式X16+X15+X2+1,即0x8005。
|
|
|
功能码
|
|
|
寄存器起始地址
|
|
|
寄存器长度
|
|
|
-校验码高位
|
|
|
-校验码低位
|
|
|
+校验码低位
|
|
|
+校验码高位
|
|
|
1 字节
|
|
|
1 字节
|
|
|
2 字节
|
|
|
@@ -70,7 +70,7 @@ CRC 码: 二字节的校验码,多项式X16+X15+X2+1,即0x8005。
|
|
|
结束结构 >=4 字节的时间
|
|
|
地址码: 为PDU RS485串口的地址, 在通讯网络中是唯一的(出厂默认 0x01)。
|
|
|
功能码: 主机所发指令功能指示, 本PDU对应的功能码 0x06(写入保持寄存器数据)。
|
|
|
-数据位: 数据区是具体写入数据, 注意 16bits 数据高字节在前!
|
|
|
+数据位: 数据区是具体写入数据, 注意 16bits 数据低字节在前!
|
|
|
CRC 码: 二字节的校验码,多项式X16+X15+X2+1,即0x8005。
|
|
|
对应的帧结构如下:
|
|
|
主机问询帧结构:
|
|
|
@@ -78,8 +78,8 @@ CRC 码: 二字节的校验码,多项式X16+X15+X2+1,即0x8005。
|
|
|
功能码
|
|
|
寄存器地址
|
|
|
数据位
|
|
|
-校验码高位
|
|
|
-校验码低位
|
|
|
+校验码低位
|
|
|
+校验码高位
|
|
|
1 字节
|
|
|
1 字节
|
|
|
2 字节
|
|
|
@@ -88,7 +88,7 @@ CRC 码: 二字节的校验码,多项式X16+X15+X2+1,即0x8005。
|
|
|
1 字节
|
|
|
从机应答帧结构:
|
|
|
写入成功,返回应答帧结构与问询帧结构一致。
|
|
|
-本PDU中写入寄存器起始地址为4500,详细的PDU状态数据段定义详见《寄存器地址表》中写寄存器数据定义。
|
|
|
+本PDU中写入寄存器起始地址为5000,详细的PDU状态数据段定义详见《寄存器地址表》中写寄存器数据定义。
|
|
|
|
|
|
|
|
|
|
|
|
@@ -99,31 +99,33 @@ CRC 码: 二字节的校验码,多项式X16+X15+X2+1,即0x8005。
|
|
|
功能码
|
|
|
起始地址
|
|
|
数据长度
|
|
|
-校验码高位
|
|
|
校验码低位
|
|
|
+校验码高位
|
|
|
0x01
|
|
|
0x03
|
|
|
-0x0F 0xAB
|
|
|
+0x0F 0xA0
|
|
|
0x00 0x02
|
|
|
-0XB6
|
|
|
0xFF
|
|
|
+0XB6
|
|
|
应答帧(例如读到电压为220V)
|
|
|
地址码
|
|
|
功能码
|
|
|
字节数
|
|
|
寄存器1
|
|
|
寄存器2
|
|
|
-校验码高位
|
|
|
校验码低位
|
|
|
+校验码高位
|
|
|
0x01
|
|
|
0x03
|
|
|
0x04
|
|
|
-0x00 0x03
|
|
|
-0x5B 0x60
|
|
|
-0x31
|
|
|
+0x5B 0x60
|
|
|
+0x00 0x03
|
|
|
0x2B
|
|
|
-起始地址:4011,即0x0FAB,读取2个寄存器4字节
|
|
|
-电压: 220.000V(保留三位小数),实际对应两个寄存器4字节存储int值220000,因此读取的寄存器中实际值需要除以1000。
|
|
|
+0x31
|
|
|
+起始地址:4000,即0x0FA0,读取2个寄存器4字节
|
|
|
+电压: 220.000V(保留三位小数),实际对应两个寄存器4字节存储int值 涉及到大小端的问题,当前应答帧的为小端,所以:
|
|
|
+电压220.000V = ((寄存器2) << 16 | (寄存器1)) / 1000.0
|
|
|
+
|
|
|
|
|
|
5.4.1 写入设备地址 1的所有通道的开关状态
|
|
|
问询帧(设置所有通道打开)
|
|
|
@@ -135,10 +137,10 @@ CRC 码: 二字节的校验码,多项式X16+X15+X2+1,即0x8005。
|
|
|
校验码低位
|
|
|
0x01
|
|
|
0x06
|
|
|
-0x12 0x0A
|
|
|
+0x14 0x48
|
|
|
0x00 0x01
|
|
|
-0X6D
|
|
|
-0x70
|
|
|
+0xCD
|
|
|
+0xEC
|
|
|
应答帧
|
|
|
地址码
|
|
|
功能码
|
|
|
@@ -148,11 +150,12 @@ CRC 码: 二字节的校验码,多项式X16+X15+X2+1,即0x8005。
|
|
|
校验码低位
|
|
|
0x01
|
|
|
0x06
|
|
|
-0x12 0x0A
|
|
|
+0x14 0x48
|
|
|
0x00 0x01
|
|
|
-0X6D
|
|
|
-0x70
|
|
|
+0xCD
|
|
|
+0xEC
|
|
|
|
|
|
-寄存器地址:4618,即0x120A,写1个寄存器2字节
|
|
|
+寄存器地址:5192,即0x1448,写1个寄存器2字节
|
|
|
所有通道打开数据位:0x0001。
|
|
|
+5.4.2 详细寄存器地址:
|
|
|
|