通讯帧格式
字段名称 |
说明 |
站号 |
每个模块的唯一地址标识 |
功能码 |
表示具体的通讯功能 |
数据长度高 |
数据区长度的高字节 |
数据长度低 |
数据区长度的低字节 |
子模块类型 |
子模块的类型(某些协议中可忽略) |
数据区 |
包含具体的操作数据或状态信息 |
CRC16 校验高 |
CRC 校验的高字节 |
CRC16 校验低 |
CRC 校验的低字节 |
说明:数据长度字段仅包含数据区长度,不包括站号、功能码、子模块类型(某些协议中不含此字段)和 CRC 校验。
功能码及协议说明
1. 主站请求/子模块响应的协议
功能码 |
描述 |
数据区内容说明 |
0x00 |
主站请求子模块报告软元件资源列表 |
无数据区 |
0x02 |
子模块报告软元件资源列表 |
包含子模块类型、输入/输出点数等信息 |
0x03 |
主站请求子模块报告动态信息并下发操作 |
包含软元件类型、触发事件等 |
0x04 |
子模块报告软元件动态信息 |
包含软元件状态、事件类型等 |
2. 模块数量及信息相关协议
功能码 |
描述 |
数据区内容说明 |
0x05 |
子模块报告扩展模块数量 |
数据区包含扩展模块数量信息 |
0x55 |
上位机请求获取总模块信息 |
无数据区 |
0x56 |
子模块发送模块信息数据 |
包含总模块数及各模块识别码 |
3. 主模块下发子模块配置参数
功能码 |
描述 |
数据区内容说明 |
0x06 |
主模块下发子模块配置参数 |
包含数字量/模拟量的具体配置参数 |
4. 校准模块相关协议
功能码 |
描述 |
数据区内容说明 |
0x85 |
校准模块请求被校准模块设置低值 |
无数据区 |
0x87 |
校准模块请求被校准模块设置高值 |
无数据区 |
0x86 |
校准模块写入低值实际测得值 |
包含 1~8 通道数据 |
0x88 |
校准模块写入高值实际测得值 |
包含 1~8 通道数据 |
0x89 |
校准结束,固化数据到 Flash |
无数据区 |
数据区排列格式
数字量数据区
字段名称 |
说明 |
软元件类型 |
软元件的具体类型 |
触发事件类型 |
事件类型(如布尔值改变、模拟量改变等) |
触发事件的元件编号 |
元件编号(高字节、低字节) |
元件状态 |
包括旧状态和新状态(高字节、低字节) |
模拟量数据区
字段名称 |
说明 |
软元件类型 |
软元件的具体类型 |
触发事件类型 |
事件类型 |
通道数据 |
包括通道数据高字节和低字节 |
通道设置参数 |
包括参数 1 和参数 2 |
通讯模块数据区
字段名称 |
说明 |
包号 |
数据包号(0 或 1) |
输入/输出数据 |
包含具体的输入或输出数据 |
附录:软元件类型和触发事件类型
软元件类型
类型值 |
描述 |
0x01 |
模拟量输入电压 |
0x02 |
模拟量输入电流 |
0x03 |
IO 输入 |
0x04 |
IO 输出 |
0x05 |
模拟量输出电压 |
0x06 |
模拟量输出电流 |
0x07 |
模拟量输入热电阻 |
0x08 |
模拟量输入热电偶 |
0x09 |
网关通讯数据 |
0xFE |
事务 |