Skip to content

DTU-PA · 上报协议详表 ​

DTU-PA · 本机适用范围

设备类型 11(HEX),采集接口 RS232、RS485,16 条用户独立脚本,每条最多 40 字节。

采集流程与标准型共用,但类型码、固件和射频规格按 PA 本机确认,不能直接照抄标准型解析代码。

本章用于平台接入和报文核对。FPort 用十进制,报文字节用十六进制;多字节数值除另有说明外均为高字节在前。以下样例是按当前格式构造的教学数据,不是现场抓包。

1. 按端口选择解析规则 ​

FPort消息应用载荷结构
1~16本机用户独立脚本结果仪表原始回复,或失败文本
33合并采集四字节报告头+选中的状态/寄存器数据
40心跳CE DE+34+15 字节心跳参数+XOR+EC ED
41链路/脚本测试相关消息测试协议数据,不作为周期采集业务解析
42配置读取回复配置协议帧
43配置写入回复配置协议帧;需核对返回内容
51 / 52UART1 / UART2 透明上传,物理接口见下文串口收到的原始数据
214重启原因1 字节复位原因位图
215启动信息(上电包)本机当前为 9 字节
218配置异常或故障信息按实际内容区分配置错误帧与故障文本

不是所有上行都有 CE DE 包头。 心跳、配置回复、合并采集和原始仪表报文各用自己的结构,不能只根据首字节套用同一个解析器。

2. 重启原因:FPort 214 ​

此包载荷为 1 字节。当前原因按位组合:

位值(HEX)含义
01检测到外部复位引脚标志
02检测到软件复位标志
04检测到看门狗复位标志
00未记录到以上标志

例如 03 是 01 OR 02,05 是 01 OR 04。应逐位判断;不能把 05 固定命名为“软件看门狗重启”。具体组合也受引导程序传递的复位标志影响。

重启原因和启动信息是在设备进入网络业务启动流程后排队发送,不是在断电瞬间发送。平台暂时未收到重启包,不足以判断设备没有重启。

3. 启动信息:FPort 215 ​

本机采用以下载荷结构,偏移从 0 开始:

偏移长度内容解析
01设备类型本机 11
11配置协议版本当前格式对应版本值 07;实际以收到值为准
2~32应用固件版本主/次版本,例如 01 07 表示 1.7
4~74脚本启用位图bit0 为心跳;本机用户脚本为 bit1~16
81电量等级0~4 的分档值,不是电压或百分比
text
11 07 01 07 00 00 00 03 04

该构造示例的型号为 DTU-PA,协议版本为 7,固件字段示意为 1.7,心跳与用户脚本 1 启用,末尾电量等级为 4。版本号只是教学值,不代表本机当前版本;以实际接收值为准。启动包电量等级与心跳供电字段分别解释。

两种采集模式下保留的脚本配置可以不同于实际执行方式。启动包的脚本位图不包含合并任务列表,不能据此恢复合并采集映射。

4. 心跳:FPort 40 ​

当前完整心跳帧为 21 字节:

偏移长度内容解析
0~12帧头CE DE
21消息类型34
3~53心跳周期无符号整数,单位秒
6~72内部温度有符号 16 位整数,通常除以 100 得 ℃
8~92电源采样字段按型号解释:外部电压、内部电压或电量等级,见下文
10~134脚本启用位图bit0 为心跳;本机用户脚本为 bit1~16
14~174独立脚本执行状态位图本机 bit1~16 对应用户脚本;bit0 为 0
181XOR 校验从偏移 2 到 17 逐字节异或
19~202帧尾EC ED

心跳示例 ​

text
CE DE | 34 | 00 00 3C | 0A 82 | 04 D2 | 00 00 00 03 | 00 00 00 02 | 57 | EC ED

竖线不属于实际数据。本机构造示例:心跳周期 60 秒,内部温度 26.90℃;电源字段 04 D2 在常规缩放范围内表示外部供电 12.34V。启用位图 00000003 表示心跳与脚本 1 启用,执行位图 00000002 表示脚本 1 最近记录采集成功。

位图不是成功数量 ​

执行状态的位为 1 表示该条独立脚本最近记录的收集结果为成功;位为 0 可能是失败或尚未执行,需结合启用状态和运行过程判断。脚本 1、2、3 均成功时,执行位图为 0000000E,不是 00000003。

这不是本轮采集成功次数或累计次数。合并采集任务的失败情况应读 FPort 33 的失败任务位图,不能用心跳中的独立脚本状态代替。

电源字段的换算边界 ​

型号两字节原始字段的含义处理方法
DTU-PA外部供电采样常规范围按原始值 ÷ 100 得 V;存在下述缩放边界

本机外部供电采样不等于 AV 测量或实际负载输出电压。

标准 DTU/PA 常规路径按 0.01V/单位 保存外部采样结果。当前处理还会在中间结果小于 170 或大于 2800 时再缩小十倍,报文没有另外标记这次缩放。因此异常供电或越界读数不能仅靠最终两字节可靠还原,需结合实测输入电压核查。

平台建议同时保留原始字段与换算结果,匹配现场固件后再用于告警。不要套用旧手册“所有型号均为内部 3.3V”或把该字段解释成电池百分比。

5. 独立采集与透明上传 ​

独立采集的正常载荷就是仪表原始回复。例如 Modbus RTU 仪表自身的地址、功能码、字节数及 CRC 都属于仪表帧,DTU 不额外加心跳协议头。

未收到数据时,当前独立采集发送 ASCII 文本 collection failed,对应 17 字节:

text
63 6F 6C 6C 65 63 74 69 6F 6E 20 66 61 69 6C 65 64

先识别失败文本,再按仪表协议解析正常结果。本机 RS232 的主动数据透明上传使用 FPort 51,RS485 使用 FPort 52。被识别为透明转发的无线下行向两路串口发送,不能按上行端口推定只去其中一路;下行命令和目标按项目约定核对。合并模式暂停透传。详见本机透明转发边界。

过长的独立回复或透传数据可能被分段发送,但不携带 FPort 33 的分包头。接收端不能据此保证自动重组完整仪表帧,项目应控制回复长度或另行约定接收处理。

6. 合并采集:FPort 33 ​

固定格式为:

text
设备类型(1B) | 总包数与索引(1B) | 失败任务位图(2B) | 本片数据

它 没有 CE DE / EC ED、配置帧 XOR 或仪表原始 CRC。01/02 的选中状态各占一字节,03/04 的选中寄存器各占两字节;失败任务的字段原位填零,但这些零值无效。

以下为本机类型 11 的构造单包成功示例,失败位图与数据排列按本机方案解释:

text
11 10 00 00 12 34 56 78

单包中任务列表第一条失败的示例:

text
11 10 00 01 00 00 00 00

完整分包规则、失败判定、解析函数和平台缓存要求见数据上报与解析。

与旧版手册的主要区别 ​

旧资料中的写法当前应怎样理解
心跳 00000001 表示脚本 1 开启bit0 是心跳;脚本 1 用 bit1,心跳与脚本 1 同时启用为 00000003
最后四字节是采集成功数量实际为独立脚本执行状态位图
重启值 03、05 各对应一个固定原因当前按复位原因位图解释组合值
电源字段统一解释为模组电压心跳电源字段为 外部供电采样,常规原始值 ÷ 100 得 V,需注意缩放边界。
独立脚本最小周期 10 秒当前上位机编辑范围 1~86400 秒;实际周期应满足采集及发送耗时
只有原脚本上报端口支持合并采集的固件增加 FPort 33 与四字节报告头

旧手册的设备示例和协议版本不能当作当前设备的实际版本或参数;平台按收到的类型、版本和现场保存的采集配置选择解析规则。

设备使用指南