Просмотр исходного кода

上传用户Modbus通信协议

liyuezong лет назад: 2
Родитель
Сommit
a5e54a2d94

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

@@ -0,0 +1,158 @@
+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中写入寄存器起始地址为4500,详细的PDU状态数据段定义详见《寄存器地址表》中写寄存器数据定义。
+
+
+
+5.4 通讯协议示例以及解释
+5.4.1 读取设备地址 1的通道1 的电压值
+问询帧
+地址码 
+功能码 
+起始地址 
+数据长度 
+校验码高位 
+校验码低位
+0x01 
+0x03 
+0x0F 0xAB 
+0x00 0x02 
+0XB6
+0xFF
+应答帧(例如读到电压为220V)
+地址码 
+功能码 
+字节数 
+寄存器1
+寄存器2 
+校验码高位
+校验码低位
+0x01 
+0x03 
+0x04 
+0x00 0x03 
+0x5B 0x60 
+0x31 
+0x2B
+起始地址:4011,即0x0FAB,读取2个寄存器4字节
+电压: 220.000V(保留三位小数),实际对应两个寄存器4字节存储int值220000,因此读取的寄存器中实际值需要除以1000。
+
+5.4.1 写入设备地址 1的所有通道的开关状态
+问询帧(设置所有通道打开)
+地址码 
+功能码 
+寄存器地址 
+数据位
+校验码高位 
+校验码低位
+0x01 
+0x06 
+0x12 0x0A 
+0x00 0x01 
+0X6D
+0x70
+应答帧
+地址码 
+功能码 
+寄存器地址 
+数据位
+校验码高位 
+校验码低位
+0x01 
+0x06 
+0x12 0x0A 
+0x00 0x01 
+0X6D
+0x70
+
+寄存器地址:4618,即0x120A,写1个寄存器2字节
+所有通道打开数据位:0x0001。
+

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