Kaynağa Gözat

上传modbus接口定义表及接口协议说明

liyuezong 2 yıl önce
ebeveyn
işleme
d2ce6c98d8

+ 161 - 0
04-软件设计及源码/03-核心板/V1.0/01.doc/02-设计文档/ModbusRTU协议及级联地址设计/PDU Modbus通信协议.docx

@@ -0,0 +1,161 @@
+5. 通信协议
+5.1 通讯基本参数
+编 码 
+8 位二进制
+数据位 
+8 位
+奇偶校验位 
+无
+停止位 
+1 位
+错误校验 
+CRC(冗余循环码)
+波特率 
+4800bit/s、 9600 bit/s 、115200 bit/s可设, 出厂默认为 115200 bit/s
+
+5.2 读取数据帧格式定义
+采用 Modbus-RTU 通讯规约, 格式如下:
+初始结构 >=4 字节的时间
+地址码 = 1 字节
+功能码 = 1 字节
+寄存器起始地址=2字节
+寄存器长度=2字节
+有效字节数=1字节
+数据区 = 2*N 字节(N为读取寄存器个数)
+错误校验 = 16 位 CRC 码
+结束结构 >=4 字节的时间
+地址码: 为PDU RS485串口的地址, 在通讯网络中是唯一的(出厂默认 0x01)。
+功能码: 主机所发指令功能指示, 本PDU对应的功能码 0x03(读取保持寄存器数据)。
+数据区: 数据区是具体通讯数据, 注意 16bits 数据低字节在前!
+CRC 码: 二字节的校验码,多项式X16+X15+X2+1,即0x8005。
+对应的帧结构如下:
+主机问询帧结构:
+地址码 
+功能码 
+寄存器起始地址 
+寄存器长度 
+校验码低位 
+校验码高位
+1 字节 
+1 字节 
+2 字节 
+2 字节 
+1 字节 
+1 字节
+从机应答帧结构:
+地址码 
+功能码 
+有效字节数 
+数据一区 
+第二数据区 
+第 N 数据区 
+校验码
+1 字节 
+1 字节 
+1 字节 
+2 字节 
+2 字节 
+2 字节 
+2 字节
+本PDU中读取寄存器起始地址为4000,详细的PDU状态数据段定义详见《寄存器地址表》中读寄存器数据定义。
+
+5.2 写入数据帧格式定义
+采用 Modbus-RTU 通讯规约, 格式如下:
+初始结构 >=4 字节的时间
+地址码 = 1 字节
+功能码 = 1 字节
+寄存器地址=2字节
+数据位 = 2 字节
+错误校验 = 16 位 CRC 码
+结束结构 >=4 字节的时间
+地址码: 为PDU RS485串口的地址, 在通讯网络中是唯一的(出厂默认 0x01)。
+功能码: 主机所发指令功能指示, 本PDU对应的功能码 0x06(写入保持寄存器数据)。
+数据位: 数据区是具体写入数据, 注意 16bits 数据低字节在前!
+CRC 码: 二字节的校验码,多项式X16+X15+X2+1,即0x8005。
+对应的帧结构如下:
+主机问询帧结构:
+地址码 
+功能码 
+寄存器地址 
+数据位
+校验码低位 
+校验码高位
+1 字节 
+1 字节 
+2 字节 
+2 字节 
+1 字节 
+1 字节
+从机应答帧结构:
+写入成功,返回应答帧结构与问询帧结构一致。
+本PDU中写入寄存器起始地址为5000,详细的PDU状态数据段定义详见《寄存器地址表》中写寄存器数据定义。
+
+
+
+5.4 通讯协议示例以及解释
+5.4.1 读取设备地址 1的通道1 的电压值
+问询帧
+地址码 
+功能码 
+起始地址 
+数据长度 
+校验码低位
+校验码高位
+0x01 
+0x03 
+0x0F 0xA0 
+0x00 0x02 
+0xFF
+0XB6
+应答帧(例如读到电压为220V)
+地址码 
+功能码 
+字节数 
+寄存器1
+寄存器2 
+校验码低位
+校验码高位
+0x01 
+0x03 
+0x04 
+0x5B 0x60
+0x00 0x03
+0x2B
+0x31
+起始地址:4000,即0x0FA0,读取2个寄存器4字节
+电压: 220.000V(保留三位小数),实际对应两个寄存器4字节存储int值 涉及到大小端的问题,当前应答帧的为小端,所以:
+电压220.000V = ((寄存器2) << 16 | (寄存器1)) / 1000.0
+
+
+5.4.1 写入设备地址 1的所有通道的开关状态
+问询帧(设置所有通道打开)
+地址码 
+功能码 
+寄存器地址 
+数据位
+校验码高位 
+校验码低位
+0x01 
+0x06 
+0x14 0x48 
+0x00 0x01 
+0xCD
+0xEC
+应答帧
+地址码 
+功能码 
+寄存器地址 
+数据位
+校验码高位 
+校验码低位
+0x01 
+0x06 
+0x14 0x48 
+0x00 0x01 
+0xCD
+0xEC
+
+寄存器地址:5192,即0x1448,写1个寄存器2字节
+所有通道打开数据位:0x0001。
+5.4.2 详细寄存器地址:
+

BIN
04-软件设计及源码/03-核心板/V1.0/01.doc/02-设计文档/ModbusRTU协议及级联地址设计/级联从机地址表20240703.xlsx


+ 26 - 23
04-软件设计及源码/03-核心板/V1.0/01.doc/04-用户文档/PDU Modbus通信协议.docx

@@ -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 详细寄存器地址:
 

BIN
04-软件设计及源码/03-核心板/V1.0/01.doc/04-用户文档/PDU Modbus通信协议寄存器定义表.xlsx


BIN
04-软件设计及源码/03-核心板/V1.0/01.doc/04-用户文档/寄存器地址表(单相).xlsx