Skip to content

DTU-D2 · 上报协议详表 ​

DTU-D2 · 本机适用范围

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

仅使用 RS485 与脚本 1~8,不套用 RS232 接线。电源等待编辑项隐藏;合并任务数量仍以读取到的能力为准。

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

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

FPort消息应用载荷结构
1~8本机用户独立脚本结果仪表原始回复,或失败文本
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设备类型本机 17
11配置协议版本当前格式对应版本值 07;实际以收到值为准
2~32应用固件版本主/次版本,例如 01 07 表示 1.7
4~74脚本启用位图bit0 为心跳;本机用户脚本为 bit1~8
81电量等级0~4 的分档值,不是电压或百分比
text
17 07 01 07 00 00 00 03 04

该构造示例的型号为 DTU-D2,协议版本为 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~8
14~174独立脚本执行状态位图本机 bit1~8 对应用户脚本;bit0 为 0
181XOR 校验从偏移 2 到 17 逐字节异或
19~202帧尾EC ED

心跳示例 ​

text
CE DE | 34 | 00 00 3C | 0A 82 | 01 4A | 00 00 00 03 | 00 00 00 02 | CA | EC ED

竖线不属于实际数据。本机构造示例:心跳周期 60 秒,内部温度 26.90℃;电源字段 01 4A 表示内部供电 3.30V,不是外部输入电压。启用位图 00000003 表示心跳与脚本 1 启用,执行位图 00000002 表示脚本 1 最近记录采集成功。

位图不是成功数量 ​

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

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

电源字段的换算边界 ​

型号两字节原始字段的含义处理方法
DTU-D2芯片内部供电电压原始值 ÷ 100 得 V;不能当作外部电源输入电压

本机字段 01 4A 的原始值为 330,对应内部 3.30V,不能用来推断外部输入或仪表供电电压。

平台建议同时保留原始字段与换算结果,匹配现场固件后再用于告警。不要套用旧手册“所有型号均为内部 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

先识别失败文本,再按仪表协议解析正常结果。DTU-D2 的独立和合并采集仅开放 RS485。当前透明下行仍向内部两路 UART 发送,不能因为页面隐藏 RS232 就认为透传已隔离到单口。只使用本机资料确认的外部接口,不从协议通道推断存在 RS232 端子。合并模式暂停透传。详见本机透明转发边界。

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

6. 合并采集:FPort 33 ​

固定格式为:

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

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

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

text
17 10 00 00 12 34 56 78

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

text
17 10 00 01 00 00 00 00

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

与旧版手册的主要区别 ​

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

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

设备使用指南