切换深色模式
R12 协议详表
本章只适用于 R12,类型 13(HEX)。FPort 用十进制;报文字节与命令号用十六进制。多字节状态数值均为高字节在前。以下样例为构造的教学数据,不是本次现场抓包。
1. 上行端口
| FPort | 内容 | 解析方法 |
|---|---|---|
| 1~4 | 用户脚本结果 | 按仪表原始协议,不能套用状态包 |
| 33 | 事件状态 | 18 字节,包类型 01 |
| 34 | 周期+事件状态 | 18 字节,包类型 03 |
| 40 | 系统/兼容心跳 | 与本章正式周期状态不同,保留实际协议信息后处理 |
| 42、43 | 配置读取/写入回复 | 配置协议帧,不按状态包解释 |
| 51、52 | 串口透明上行 | 原始串口字节,按项目约定处理 |
| 214 | 重启原因 | 1 字节原因位图 |
| 215 | 启动信息 | 当前为 9 字节 |
| 220 | 周期状态 | 18 字节,包类型 00 |
R12 的 FPort 33 与 DTU 合并采集结构不同。状态包没有配置帧 CE DE / EC ED 包头尾,没有 DTU 四字节分包头,也不带仪表 Modbus CRC。
脚本采集失败与原始回复
脚本本轮没有收到字节时,当前固件在对应 FPort 1~4 上发送 ASCII 文本 collection failed,共 17 字节:
text
63 6F 6C 6C 65 63 74 69 6F 6E 20 66 61 69 6C 65 64这不是仪表测量数据,也不带 R12 状态头。配套解析示例会保留原始字节并标记 collection_failed: true。其他脚本结果也只是原始接收字节:收到非空数据不等于 Modbus 地址、功能码、长度、CRC 或业务数值已经正确,仍需按仪表协议验证。
2. 状态包逐字节格式
| 偏移(从 0 开始) | 长度 | 内容 | 解释 |
|---|---|---|---|
| 0 | 1 | 设备类型 | 13 |
| 1 | 1 | 包类型 | 00 周期、01 事件、03 周期+事件 |
| 2 | 1 | AI1 事件 | 按模拟量事件位解析 |
| 3~4 | 2 | AI1 值 | 无符号整数,μA |
| 5 | 1 | AV1 事件 | 按模拟量事件位解析 |
| 6~7 | 2 | AV1 值 | 无符号整数,mV |
| 8 | 1 | DI1 事件 | 按数字输入事件位解析 |
| 9 | 1 | DI1 状态 | 0 低、1 高 |
| 10 | 1 | DI2 事件 | 按数字输入事件位解析 |
| 11 | 1 | DI2 状态 | 0 低、1 高 |
| 12 | 1 | DO1 事件 | 按输出事件位解析 |
| 13 | 1 | DO1 状态 | 0 无输出、1 有输出 |
| 14 | 1 | DO2 事件 | 按输出事件位解析 |
| 15 | 1 | DO2 状态 | 0 无输出、1 有输出 |
| 16~17 | 2 | 电源采样字段 | 常规路径原始值 ÷ 100 得 V,见下文 |
长度是 18 字节,不是 HEX 文本的字符数。R12 不能套用其他型号 32 字节布局;关闭某通道也不应自行改变字段偏移。
3. 事件位
| 事件字节类型 | bit0 / 01 | bit1 / 02 | bit2 / 04 | bit3 / 08 |
|---|---|---|---|---|
| AI1、AV1 | 超过上限 | 低于下限 | 变化超过阈值 | 恢复正常 |
| DI1、DI2 | 低到高 | 高到低 | 未定义 | 未定义 |
| DO1、DO2 | 无输出→有输出 | 有输出→无输出 | 未定义 | 未定义 |
按位组合,不按互斥枚举解释。比如 DI 事件 03 表示本包累计有两个方向的变化,不是“状态 3”。当前状态仍从后面的单独字段读取;事件位为零也不表示数值一定为零。
当前模拟量主动上报界面只有超上限、低下限、变化阈值三种选择;协议含恢复位不代表界面存在独立的第四个勾选项。触发原因与包内最近值的时间关系见上报节奏。
4. 状态示例
周期包,FPort 220:
text
13 00 00 2E E0 00 13 88 00 00 00 01 00 00 00 01 04 B0表示 AI1 为 12000μA(12mA)、AV1 为 5000mV(5V)、DI1 低、DI2 高、DO1 无输出、DO2 有输出;常规换算下电源字段为 12.00V。通道是否启用仍需结合配置。
DI1 低到高事件,FPort 33:
text
13 01 00 2E E0 00 13 88 01 01 00 01 00 00 00 01 04 B0偏移 8 的 01 是 DI1 低到高事件,偏移 9 的 01 是当前高电平。若同一数据作为周期+事件合并包,FPort 用 34,偏移 1 用 03,不能只改其中一个。
电源字段的换算边界
原手册称末尾字段为内部电压;R12 当前读取外部供电采样并应用比例,常规按 0.01V/单位编码。处理还会在中间结果小于 170 或大于 2800 时再缩小十倍,报文没有缩放标志,异常或越界值不能仅靠两字节可靠还原。
保留原始值,按现场固件和实测输入电压核对后使用。该字段不等于 AV1,不是输出电压实测,不是电池百分比。
5. 启动信息和重启原因
FPort 214 的原因位:01 外部复位引脚标志、02 软件复位标志、04 看门狗标志,允许组合;00 表示未记录以上标志。不能把 03 或 05 当成唯一固定原因名称。
FPort 215 当前为:设备类型 1B、配置协议版本 1B、固件主次版本 2B、脚本启用位图 4B、电量等级 1B。脚本 bit0 为保留/系统用途,bit1~4 对应用户脚本;末尾等级 0~4 不是电压或精确百分比。启动位图不等于本地联动或脚本事件配置。
远程控制 DO
平台集成人员按当前配置协议构造控制帧,普通用户优先使用 AWTools 表单。控制会真实改变输出,执行前确认设备和负载;仅当输出启用并允许无线远程控制时使用。
text
CE DE | B5 | 输出索引 | 动作 | 00 | 00 | XOR | EC ED输出索引 00 为 DO1、01 为 DO2。动作 00 关、01 开、02 翻转、03 脉冲开、04 脉冲关、05 脉冲翻转。XOR 对 B5 及四字节参数异或,不含帧头尾。
DO1 开启示例:CE DE B5 00 01 00 00 B4 EC ED。正常回复参数为“输出索引、00、实际状态、00”,例如 CE DE B5 00 00 01 00 B4 EC ED;不能把回复第二字节当作回显动作。
按平台与设备约定的下行通道发送,核对 FPort 43 回复及现场状态;下行队列成功不等于输出动作成功。R12 的 B5 不套用声光报警器等其他设备的通道和动作范围。