emcp/document/显示界面modbus协议寄存器定义.md

524 lines
19 KiB
Markdown
Raw Normal View History

2026-06-12 10:37:57 +08:00
# Modbus 协议寄存器定义文档
## 一、协议概览
2026-06-12 10:37:57 +08:00
| 项目 | 配置 |
| ---- | ---- |
| 协议类型 | Modbus RTU |
| 从机地址 | 1 |
| 波特率 | 115200 |
| 数据位 | 8 |
| 校验位 | 无 |
| 停止位 | 1 |
2026-06-12 10:37:57 +08:00
---
## 二、寄存器总览
2026-06-12 10:37:57 +08:00
### 2.1 读数据区
2026-06-12 10:37:57 +08:00
| 功能 | 功能码 | 寄存器类型 | 起始地址 | 长度/范围 | 说明 |
| ---- | ------ | ---------- | -------- | --------- | ---- |
| 实时显示数据-线路1 | `0x04` | 输入寄存器 | `0x0000` | `0x0000 ~ 0x0032` | 单精度浮点数32bit2寄存器/点 |
| 实时显示数据-线路2 | `0x04` | 输入寄存器 | `0x0034` | `0x0034 ~ 0x0066` | 参数顺序同线路1 |
| 实时显示数据-线路3 | `0x04` | 输入寄存器 | `0x0068` | `0x0068 ~ 0x009A` | 参数顺序同线路1 |
| 实时显示数据-线路4 | `0x04` | 输入寄存器 | `0x009C` | `0x009C ~ 0x00CE` | 参数顺序同线路1 |
| AI输入 | `0x04` | 输入寄存器 | `0x00D0` | `0x00D0 ~ 0x00DE` | 8路 AI单精度浮点数 |
| B码对时 | `0x04` | 输入寄存器 | `0x00E0` | `0x00E0 ~ 0x00E2` | 秒/分、时/日、月/年 |
| 开入状态 | `0x04` | 输入寄存器 | `0x00E3` | 1寄存器 | 16路每 bit 一路 |
| 开出状态 | `0x04` | 输入寄存器 | `0x00E4` | 1寄存器 | 16路每 bit 一路 |
| 事件总寄存器 | `0x04` | 输入寄存器 | `0x00E5` | 1寄存器 | 内容为 `n` 时表示有 `n` 个事件待读取 |
| 自检 / 串口 / 网口状态 | `0x04` | 输入寄存器 | `0x00E6` | 1寄存器 | `bit15` 自检状态,`bit11 ~ bit8` 为网口1~4状态`bit3 ~ bit0` 为串口1~4状态 |
| 遥信状态 | `0x04` | 输入寄存器 | `0x00E7` | 1寄存器 | `bit3` 频率越限,`bit2` CT断线`bit1` PT断线 |
| 读事件内容 | `0x04` | 输入寄存器 | `0x0100` | `5 * n` | 当 `0x00E5 != 0` 时读取 |
2026-06-12 10:37:57 +08:00
### 2.2 读/写参数区
2026-06-12 10:37:57 +08:00
| 功能 | 功能码 | 寄存器类型 | 起始地址 | 寄存器长度 | 说明 |
| ---- | ------ | ---------- | -------- | ---------- | ---- |
| 时间设置 | `0x03 / 0x10` | 保持寄存器 | `0x0000` | 2 | 时间戳32bit |
| 串口设置 | `0x03 / 0x10` | 保持寄存器 | `0x0004` | 16 | 4路 × 8字节 |
| 线路定值设置 | `0x03 / 0x10` | 保持寄存器 | `0x0014` | 64 | 4路 × (7类定值 + 2个变比参数) |
| AI通道设置 | `0x03 / 0x10` | 保持寄存器 | `0x0054` | 30 | 12路整体下发 |
| AO通道设置 | `0x03 / 0x10` | 保持寄存器 | `0x0072` | 30 | 12路整体下发 |
| AI报警设置 | `0x03 / 0x10` | 保持寄存器 | `0x0090` | 30 | 12路整体下发 |
| 读事件成功回复 | `0x03` | 保持寄存器 | `0x0100` | 1 | 内容为本次成功读取的事件个数 `n` |
2026-06-12 10:37:57 +08:00
### 2.3 线圈区
2026-06-12 10:37:57 +08:00
| 功能 | 功能码 | 寄存器类型 | 起始地址 | 长度 | 说明 |
| ---- | ------ | ---------- | -------- | ---- | ---- |
| 写开出(批量) | `0x0F` | 线圈 | `0x0000` | 12 | 写多个线圈控制12路开出 |
2026-06-12 10:37:57 +08:00
## 三、实时数据寄存器表
2026-06-12 10:37:57 +08:00
### 3.1 线路1实时量
2026-06-12 10:37:57 +08:00
| 寄存器地址 | 参数名 | 寄存器地址 | 参数名 | 寄存器地址 | 参数名 |
| ---------- | ------ | ---------- | ------ | ---------- | ------ |
| `0x0000` | Ua | `0x0012` | Pt | `0x0024` | PFa |
| `0x0002` | Ub | `0x0014` | Qa | `0x0026` | PFb |
| `0x0004` | Uc | `0x0016` | Qb | `0x0028` | PFc |
| `0x0006` | Ia | `0x0018` | Qc | `0x002A` | PFt |
| `0x0008` | Ib | `0x001A` | Qt | `0x002C` | Uab |
| `0x000A` | Ic | `0x001C` | Sa | `0x002E` | Ubc |
| `0x000C` | Pa | `0x001E` | Sb | `0x0030` | Uca |
| `0x000E` | Pb | `0x0020` | Sc | `0x0032` | Frq |
| `0x0010` | Pc | `0x0022` | St | - | - |
### 3.2 线路2~线路4地址范围
| 线路 | 地址范围 | 说明 |
| ---- | -------- | ---- |
| 线路2 | `0x0034 ~ 0x0066` | 参数顺序同线路1 |
| 线路3 | `0x0068 ~ 0x009A` | 参数顺序同线路1 |
| 线路4 | `0x009C ~ 0x00CE` | 参数顺序同线路1 |
### 3.3 AI输入寄存器表
2026-06-12 10:37:57 +08:00
| 寄存器地址 | 输入编号 |
| ---------- | -------- |
| `0x00D0` | Ai1 |
| `0x00D2` | Ai2 |
| `0x00D4` | Ai3 |
| `0x00D6` | Ai4 |
| `0x00D8` | Ai5 |
| `0x00DA` | Ai6 |
| `0x00DC` | Ai7 |
| `0x00DE` | Ai8 |
### 3.4 B码对时寄存器表
| 寄存器地址 | 位分配 | 内容 |
| ---------- | ------ | ---- |
| `0x00E0` | `[15:8] = 秒``[7:0] = 分` | 秒/分 |
| `0x00E1` | `[15:8] = 时``[7:0] = 日` | 时/日 |
| `0x00E2` | `[15:8] = 月``[7:0] = 年` | 月/年 |
### 3.5 状态寄存器表
| 寄存器地址 | 含义 | 说明 |
| ---------- | ---- | ---- |
| `0x00E3` | 开入状态 | 16路输入每 bit 一路 |
| `0x00E4` | 开出状态 | 16路输出每 bit 一路 |
| `0x00E5` | 事件总寄存器 | 值为 `n` 表示有 `n` 个事件待读取 |
| `0x00E6` | 自检 / 串口 / 网口状态 | `bit15` 表示自检状态,`bit11 ~ bit8` 表示网口1~4状态`bit3 ~ bit0` 表示串口1~4状态 |
| `0x00E7` | 遥信状态 | `bit3` 频率越限,`bit2` CT断线`bit1` PT断线其余位保留 |
### 3.6 自检 / 串口 / 网口状态寄存器
#### 3.6.1 寄存器 `0x00E6`
| 项目 | 定义 |
| ---- | ---- |
| 寄存器类型 | 输入寄存器 |
| 功能码 | `0x04` |
| 地址 | `0x00E6` |
| 说明 | 用于监控设备开机自检、4路串口、4路网口状态 |
| 位位置 | 功能 | 含义说明 |
| ------ | ---- | -------- |
| `Bit15` | 自检状态 | `1 = 自检异常 / 未完成``0 = 自检正常完成` |
| `Bit11` | Net4 网口状态 | `1 = 网口4异常 / 断开``0 = 网口4正常连接` |
| `Bit10` | Net3 网口状态 | `1 = 网口3异常 / 断开``0 = 网口3正常连接` |
| `Bit9` | Net2 网口状态 | `1 = 网口2异常 / 断开``0 = 网口2正常连接` |
| `Bit8` | Net1 网口状态 | `1 = 网口1异常 / 断开``0 = 网口1正常连接` |
| `Bit3` | Com4 串口状态 | `1 = 串口4异常 / 无数据``0 = 串口4正常` |
| `Bit2` | Com3 串口状态 | `1 = 串口3异常 / 无数据``0 = 串口3正常` |
| `Bit1` | Com2 串口状态 | `1 = 串口2异常 / 无数据``0 = 串口2正常` |
| `Bit0` | Com1 串口状态 | `1 = 串口1异常 / 无数据``0 = 串口1正常` |
| 其余位 | 保留 | 未使用,读为 `0` |
#### 3.6.2 寄存器 `0x00E7`
| 项目 | 定义 |
| ---- | ---- |
| 寄存器类型 | 输入寄存器 |
| 功能码 | `0x04` |
| 地址 | `0x00E7` |
| 说明 | 用于反馈开机自检及运行过程中的遥信类异常状态 |
| 位位置 | 功能 | 含义说明 |
| ------ | ---- | -------- |
| `Bit3` | 频率越限 | `1 = 频率超出阈值``0 = 频率正常` |
| `Bit2` | CT 断线 | `1 = CT电流互感器回路断线``0 = CT 回路正常` |
| `Bit1` | PT 断线 | `1 = PT电压互感器回路断线``0 = PT 回路正常` |
| 其余位 | 保留 | 未使用,读为 `0` |
#### 3.6.3 使用场景与解读示例
- 事件总寄存器 `0x00E5` 用于表示当前待处理事件个数,值非 `0` 时表示存在待读取事件,值为 `0` 表示无事件。
- 状态寄存器 `0x00E6`、`0x00E7` 用于快速反馈开机自检、通信链路和遥信告警状态,便于上位机快速诊断设备健康状况。
读取 `0x00E6` 时,若返回值为 `0x800F`(二进制 `1000 0000 0000 1111`),表示:
- `Bit15 = 1`,自检异常或未完成
- `Bit3 ~ Bit0 = 1111``Com1 ~ Com4` 全部异常
读取 `0x00E7` 时,若返回值为 `0x0006`(二进制 `0000 0000 0000 0110`),表示:
- `Bit3 = 0`,频率正常
- `Bit2 = 1`CT 断线
- `Bit1 = 1`PT 断线
读取 `0x00E5 ~ 0x00E7``3` 个寄存器的 Modbus RTU 报文示例:
- 主机请求:`[从站地址] 04 00 E5 00 03 [CRC16]`
- 从站响应:`[从站地址] 04 06 [00E5值] [00E6值] [00E7值] [CRC16]`
2026-06-12 10:37:57 +08:00
---
## 四、事件寄存器定义
### 4.1 读事件内容
| 项目 | 定义 |
| ---- | ---- |
| 触发条件 | 事件总寄存器 `0x00E5 != 0` |
| 功能码 | `0x04` |
| 寄存器类型 | 输入寄存器 |
| 起始地址 | `0x0100` |
| 读取长度 | `5 * n` |
| 数据名 | 数据寄存器 | 格式 | 说明 |
| ------ | ---------- | ---- | ---- |
| 时间戳 | `0x0100 ~ 0x0101` | 32位无符号 | 事件发生时间戳 |
| 毫秒计时 | `0x0102` | 16位无符号 | 事件发生毫秒值 |
| 线路号 + 事件类型 | `0x0103` | 16位无符号 | 高4位为线路号低4位为事件类型 |
| 事件代码 | `0x0103` 低8位扩展语义 | 8位无符号 | 按事件类型解释具体代码 |
| 动作值 | `0x0104` | 16位无符号 | 监测值或动作状态值 |
### 4.2 字段取值说明
#### 线路号
| 值 | 含义 |
| -- | ---- |
| `0` | 装置 |
| `1` | 线路1 |
| `2` | 线路2 |
| `3` | 线路3 |
| `4` | 线路4 |
#### 事件类型
| 值 | 含义 |
| -- | ---- |
| `1` | 保护类 |
| `2` | 动作类 |
| `3` | 报警类 |
| `4` | 操作类 |
| `5` | AI越限类 |
#### 事件代码
| 类别 | 代码定义 |
| ---- | -------- |
| 保护类 | `1 = PT断线``2 = CT断线`,其余依次编号 |
| 报警类 | `1 = 过压``2 = 过流``3 = 频率越限` 等 |
| 动作类 | 开入序号,表示第 `n` 路发生状态变化 |
| AI越限类 | AI通道号表示第 `n` 通道发生越限 |
| 操作类 | 由主站界面操作直接生成记录 |
#### 动作值
| 类别 | 含义 |
| ---- | ---- |
| 保护类 / 报警类 | 越限时的监测值 |
| 动作类 | 开入/开出状态,`0 -> 分`,非 `0 -> 合` |
### 4.3 读事件成功回复
| 项目 | 定义 |
| ---- | ---- |
| 功能码 | `0x03` |
| 寄存器类型 | 保持寄存器 |
| 起始地址 | `0x0100` |
| 数据长度 | 1 |
| 内容 | 本次成功读取的事件个数 `n` |
2026-06-12 10:37:57 +08:00
---
## 五、参数区寄存器说明
2026-06-12 10:37:57 +08:00
### 5.1 参数页读写规则
2026-06-12 10:37:57 +08:00
- 参数页在开机及切换到参数类页面时,应先发送 `03H` 读取参数。
- 参数发生修改后,应发送 `10H` 下发更新。
- 主站应在参数修改成功后生成对应“参数修改”事件,并实时显示、存盘。
- 对时功能除可在系统设置页统一下发外,也可通过上位机独立“对时设置”接口单独触发,底层仍写时间设置寄存器 `0x0000`
2026-06-12 10:37:57 +08:00
### 5.2 参数区表格
| 参数类别 | 功能码 | 寄存器类型 | 起始地址 | 长度 | 说明 |
| -------- | ------ | ---------- | -------- | ---- | ---- |
| 时间设置 | `0x03 / 0x10` | 保持寄存器 | `0x0000` | 2 | 时间戳32bit |
| 串口设置 | `0x03 / 0x10` | 保持寄存器 | `0x0004` | 16 | 4路 × 8字节 |
| 线路定值设置 | `0x03 / 0x10` | 保持寄存器 | `0x0014` | 64 | 含7类定值与2个变比参数 |
| AI通道设置 | `0x03 / 0x10` | 保持寄存器 | `0x0054` | 30 | 12路整体下发 |
| AO通道设置 | `0x03 / 0x10` | 保持寄存器 | `0x0072` | 30 | 12路整体下发 |
| AI报警设置 | `0x03 / 0x10` | 保持寄存器 | `0x0090` | 30 | 12路整体下发 |
| 开出状态字写入 | `0x10` | 保持寄存器 | `0x00A6` | 1 | 16位状态字每 bit 一路开出 |
2026-06-26 17:48:42 +08:00
| 网口设置 | `0x03 / 0x10` | 保持寄存器 | `0x00AE` | 28 | 4路 × 14字节 / 2 = 28 |
2026-06-12 10:37:57 +08:00
### 5.2.1 时间设置 / 独立对时说明
| 项目 | 定义 |
| ---- | ---- |
| 寄存器类型 | 保持寄存器 |
| 功能码 | `0x03 / 0x10` |
| 起始地址 | `0x0000` |
| 寄存器长度 | 2 |
| 数据格式 | 32 位时间戳,低 16 位在前,高 16 位在后 |
说明:
- 主站可在系统设置页统一读取/下发该寄存器。
- 主站也可通过独立“对时设置”功能,单独向该寄存器写入目标时间。
- 上位机后端可额外开放独立对时接口,例如:
- `GET /api/config/time-sync`
- `POST /api/config/time-sync`
- 以上接口属于上位机软件封装,底层协议仍然只对应本节 `0x0000` 时间设置寄存器。
### 5.3 通讯设置
#### 5.3.1 基本定义
| 项目 | 定义 |
| ---- | ---- |
| 寄存器类型 | 保持寄存器 |
| 功能码 | `0x03 / 0x10` |
| 起始地址 | `0x0004` |
| 寄存器长度 | `16` |
| 长度说明 | `4(路) × 4(8byte数据/2) = 16` |
说明:
- 对应界面中的“串口设置”区域。
- 共支持 `4` 路串口参数读写。
- 每一路串口参数占用 `8` 字节,即 `4` 个保持寄存器。
- 主站进入参数页面时应先使用 `03H` 回读当前串口参数,界面修改后再使用 `10H` 整组下发。
#### 5.3.2 单路串口参数组成
单路串口参数结构对应 `com_param_t`,总长度 `8` 字节:
| 字段 | 类型 | 字节数 | 说明 |
| ---- | ---- | ------ | ---- |
| `baud_rate` | `uint32_t` | 4 | 波特率 |
| `parity` | `uint8_t` | 1 | 校验位 |
| `data` | `uint8_t` | 1 | 数据位 |
| `stop` | `uint8_t` | 1 | 停止位 |
| `protocol` | `uint8_t` | 1 | 通讯协议 |
#### 5.3.3 寄存器分配
| 串口 | 寄存器范围 | 长度 | 说明 |
| ---- | ---------- | ---- | ---- |
| 串口1 | `0x0004 ~ 0x0007` | 4 | 对应界面中的一组串口参数 |
| 串口2 | `0x0008 ~ 0x000B` | 4 | 对应界面中的一组串口参数 |
| 串口3 | `0x000C ~ 0x000F` | 4 | 预留/扩展串口参数 |
| 串口4 | `0x0010 ~ 0x0013` | 4 | 预留/扩展串口参数 |
#### 5.3.4 界面字段对应关系
对应界面中的典型字段如下:
| 界面字段 | 协议字段 |
| -------- | -------- |
| 串口号 | 由寄存器块位置区分,不单独占用字段 |
| 波特率 | `baud_rate` |
| 校验位 | `parity` |
| 数据位 | `data` |
| 停止位 | `stop` |
| 通讯协议 | `protocol` |
2026-06-26 17:48:42 +08:00
### 5.4 常规配置 / 网口设置
2026-06-26 17:48:42 +08:00
#### 5.4.1 基本定义
| 项目 | 定义 |
| ---- | ---- |
2026-06-26 17:48:42 +08:00
| 寄存器类型 | 保持寄存器 |
| 功能码 | `0x03 / 0x10` |
| 起始地址 | `0x00AE` |
| 寄存器长度 | `28` |
| 长度说明 | `(4(路) × 14byte数据) / 2 = 28` |
说明:
2026-06-26 17:48:42 +08:00
- 对应界面中的“常规配置 / 网口设置”区域。
- 共支持 `4` 路网口参数读写。
- 每一路网口参数占用 `14` 字节,即 `7` 个保持寄存器。
- 主站进入参数页面时应先使用 `03H` 回读当前网口参数,界面修改后再使用 `10H` 整组下发。
#### 5.4.2 单路网口参数组成
单路网口参数结构对应 `net_t`,总长度 `14` 字节:
2026-06-26 17:48:42 +08:00
```c
typedef struct
{
uint8_t id[4];
uint8_t mask[4];
uint8_t gateway[4];
uint8_t protocol;
uint8_t rev;
} net_t;
```
| 字段 | 类型 | 字节数 | 说明 |
| ---- | ---- | ------ | ---- |
| `id` | `uint8_t[4]` | 4 | IP 地址4 个字节 |
| `mask` | `uint8_t[4]` | 4 | 子网掩码4 个字节 |
| `gateway` | `uint8_t[4]` | 4 | 默认网关4 个字节 |
| `protocol` | `uint8_t` | 1 | 通讯协议 |
| `rev` | `uint8_t` | 1 | 保留 |
#### 5.4.3 寄存器分配
| 网口 | 寄存器范围 | 长度 | 说明 |
| ---- | ---------- | ---- | ---- |
| 网口1 | `0x00AE ~ 0x00B4` | 7 | 对应界面中的一组网口参数 |
| 网口2 | `0x00B5 ~ 0x00BB` | 7 | 对应界面中的一组网口参数 |
| 网口3 | `0x00BC ~ 0x00C2` | 7 | 预留/扩展网口参数 |
| 网口4 | `0x00C3 ~ 0x00C9` | 7 | 预留/扩展网口参数 |
#### 5.4.4 界面字段对应关系
对应界面中的典型字段如下:
2026-06-26 17:48:42 +08:00
| 界面字段 | 协议字段 |
| -------- | -------- |
| 网卡号 | 由寄存器块位置区分,不单独占用字段 |
| IP地址 | `id[4]` |
| 子网掩码 | `mask[4]` |
| 默认网关 | `gateway[4]` |
| 通讯协议 | `protocol` |
2026-06-12 10:37:57 +08:00
---
## 六、开出控制说明
2026-06-12 10:37:57 +08:00
### 6.1 写保持寄存器方式
2026-06-12 10:37:57 +08:00
| 项目 | 定义 |
| ---- | ---- |
| 功能码 | `0x10` |
| 寄存器类型 | 保持寄存器 |
| 起始地址 | `0x00A6` |
| 长度 | 1 |
| 说明 | 16位状态字每 bit 表示一路开出 |
2026-06-12 10:37:57 +08:00
### 6.2 写线圈方式
2026-06-12 10:37:57 +08:00
| 项目 | 定义 |
| ---- | ---- |
| 功能码 | `0x0F` |
| 寄存器类型 | 线圈 |
| 起始地址 | `0x0000` |
| 长度 | 12 |
| 说明 | 写多个线圈控制12路开出 |
2026-06-12 10:37:57 +08:00
---
2026-06-12 10:37:57 +08:00
## 七、通讯时序说明
2026-06-12 10:37:57 +08:00
### 7.1 开机初始化时序
2026-06-12 10:37:57 +08:00
1. 主站开机后,先通过 `03H` 读取参数区。
2. 参数读取成功后,主站应通过 `04H` 读取状态寄存器 `0x00E6`、`0x00E7`,确认开机自检、串口、网口及遥信异常状态。
3.`0x00E6.Bit15 = 1`,表示设备自检异常或尚未完成;若对应串口 / 网口状态位为 `1`,表示对应通信接口异常。
4.`0x00E7``Bit3 / Bit2 / Bit1` 置位则表示频率越限、CT断线、PT断线等遥信异常已出现。
5. 若参数读取失败,或开机自检状态异常,主站生成报警事件,可归类为“开机自检(通讯链路)”异常。
6. 开机自检结束后,进入周期轮询阶段。
2026-06-12 10:37:57 +08:00
### 7.2 周期轮询时序
2026-06-12 10:37:57 +08:00
1. 主站周期发送 `04H`,读取实时输入寄存器。
2. 收到从站 `04H` 应答后,更新实时数据、状态数据。
3. 状态数据至少应覆盖 `0x00E3 ~ 0x00E7`,其中:
- `0x00E3` 表示开入状态
- `0x00E4` 表示开出状态
- `0x00E5` 表示事件总数
- `0x00E6` 表示自检 / 串口 / 网口状态
- `0x00E7` 表示遥信异常状态
4.`0x00E5 = 0`,继续下一轮周期轮询。
5.`0x00E5 = n``n > 0`,立即进入读事件流程。
2026-06-12 10:37:57 +08:00
补充说明:
2026-06-12 10:37:57 +08:00
- 若上位机需要在页面上动态显示设备当前时间,可额外按固定周期读取时间设置寄存器 `0x0000`
- 推荐上位机软件每 `1` 秒轮询一次,并通过独立时间推送通道发送给前端页面。
- 推荐的软件推送通道示例:`/ws/time-sync`
- 若需快速巡检设备状态,主站可直接读取 `0x00E5 ~ 0x00E7``3` 个寄存器,以同时获得事件数量、自检 / 通信链路状态及遥信告警状态。
2026-06-12 10:37:57 +08:00
### 7.3 读事件时序
2026-06-12 10:37:57 +08:00
1. 主站发送“读事件”指令:
- 功能码:`04H`
- 输入寄存器地址:`0x0100`
- 读取长度:`5 * n`
2. 主站收到正确应答后,解析本批事件内容。
3. 主站发送“读事件成功回复”:
- 功能码:`03H`
- 保持寄存器地址:`0x0100`
- 长度:`1`
- 内容:本次成功读取的事件个数 `n`
4. 从站收到回复后,应将事件总寄存器 `0x00E5` 中的事件个数扣减 `n`
5. 若扣减后 `0x00E5` 仍非 0主站应继续重复读事件流程直到 `0x00E5 = 0`
2026-06-12 10:37:57 +08:00
### 7.4 事件生成与保存
2026-06-12 10:37:57 +08:00
- 从站负责生成并暂存:
- 报警类事件
- 保护类事件
- 动作类事件
- 主站负责生成:
- 操作类事件
2026-06-12 10:37:57 +08:00
主站侧操作类事件至少包括:
2026-06-12 10:37:57 +08:00
| 代码 | 含义 |
| ---- | ---- |
| `1` | 控制分/合 |
| `2` | 读定值失败 |
| `3` | 线路定值修改 |
| `4` | AI报警参数修改 |
| `5` | AI通道参数修改 |
| `6` | AO通道参数修改 |
| `7` | 通讯参数修改 |
| `8` | 密码修改 |
2026-06-12 10:37:57 +08:00
统一要求:
2026-06-12 10:37:57 +08:00
- 从站生成的事件与主站生成的事件,均保存在主站端。
- 主站应形成历史事件记录文件。
- 历史事件应支持按分类、时间段、线路号等条件检索。
2026-06-12 10:37:57 +08:00
### 7.5 时间推送建议
2026-06-12 10:37:57 +08:00
为便于上位机页面显示设备当前时间,建议增加独立时间推送链路:
2026-06-12 10:37:57 +08:00
1. 后台服务每 `1` 秒读取一次时间设置寄存器 `0x0000`
2. 将回读结果转换为标准时间字符串。
3. 通过独立 WebSocket 通道推送给页面。
2026-06-12 10:37:57 +08:00
推荐推送报文格式:
2026-06-12 10:37:57 +08:00
```json
{
"type": "time_sync",
"data": {
"time_sync": "2026-05-25 14:30:01"
}
}
```
2026-06-12 10:37:57 +08:00
说明:
2026-06-12 10:37:57 +08:00
- 该推送属于上位机软件实现建议,不新增下位机寄存器。
- 底层时间真值仍以 `0x0000` 时间设置寄存器为准。