# Modbus 协议寄存器定义文档
## 一、协议基本配置
- **协议类型**:Modbus RTU
- **从机地址**:1
- **串口配置**:
- 波特率:115200
- 数据位:8
- 校验位:无
- 停止位:1
---
## 二、读数据(功能码:04)
### 1. 实时显示数据
- **寄存器类型**:输入寄存器
- **功能码**:0x04
- **数据格式**:单精度浮点数(32位,占2个寄存器)
#### 线路 #1
- **寄存器地址范围**:0x0000 ~ 0x0032
| 寄存器地址 | 参数名 | 寄存器地址 | 参数名 | 寄存器地址 | 参数名 |
| ---------- | ------ | ---------- | ------ | ---------- | ------ |
| 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 | - | - |
#### 线路 #2
- **起始地址**:0x0034
- **结束地址**:0x0066
- **参数顺序**:同线路 #1
#### 线路 #3
- **起始地址**:0x0068
- **结束地址**:0x009A
- **参数顺序**:同线路 #1
#### 线路 #4
- **起始地址**:0x009C
- **结束地址**:0x00CE
- **参数顺序**:同线路 #1
---
### 2. 模拟量输入(AI)
- **寄存器类型**:输入寄存器
- **功能码**:0x04
- **数据格式**:单精度浮点数(32位)
| 寄存器地址 | 输入编号 |
| ---------- | -------- |
| 0x00D0 | Ai1 |
| 0x00D2 | Ai2 |
| 0x00D4 | Ai3 |
| 0x00D6 | Ai4 |
| 0x00D8 | Ai5 |
| 0x00DA | Ai6 |
| 0x00DC | Ai7 |
| 0x00DE | Ai8 |
---
### 3. B码对时
- **寄存器类型**:输入寄存器
- **功能码**:0x04
- **数据格式**:无符号16位整型
| 寄存器地址 | 位分配 | 内容 |
| ---------- | ------------------------- | ----- |
| 0x00E0 | [15:8] = 秒
[7:0] = 分 | 秒/分 |
| 0x00E1 | [15:8] = 时
[7:0] = 日 | 时/日 |
| 0x00E2 | [15:8] = 月
[7:0] = 年 | 月/年 |
---
### 4. 数字量输入(开入)
- **寄存器类型**:输入寄存器
- **功能码**:0x04
- **寄存器地址**:0x00E3
- **说明**:共16路,每个bit位表示一路开入量
---
### 5. 事件总标记
- **寄存器类型**:输入寄存器
- **功能码**:0x04
- **寄存器地址**:0x00E4
- **说明**:当该位被置位时,表示有新事件,需要读取事件内容
---
## 三、读事件(功能码:03)
- **触发条件**:事件总标记(0x00E4)被置位
- **寄存器类型**:保持寄存器
- **功能码**:0x03
- **寄存器地址范围**:0x0000 ~ 0x0003
| 寄存器地址 | 数据名 | 格式 | 说明 |
| ---------- | ---------------- | ---------- | ---------------------------- |
| 0x0000 | 时间戳(低16位) | 32位无符号 | 占用0x0000~0x0001 |
| 0x0001 | 时间戳(高16位) | | |
| 0x0002 | 毫秒计时 | 16位无符号 | |
| 0x0003 | 线路号+事件类型 | 16位无符号 | 高字节线路号,低字节事件类型 |
---
## 四、读输入数字量(开入)(功能码:02)
- **寄存器类型**:离散输入
- **功能码**:0x02
| 寄存器地址 | 说明 |
| ---------- | --------------------- |
| 0x0000 | 16路开入量,每bit一路 |
| 0x0001 | 保留(16路) |
---
## 五、写数据(功能码:10,写多个保持寄存器)
### 1. 时间设置
- **寄存器类型**:保持寄存器
- **功能码**:0x10
- **起始地址**:0x0000
- **寄存器长度**:2
- **说明**:写入时间戳(32位)
---
### 2. 串口设置
- **寄存器类型**:保持寄存器
- **功能码**:0x10
- **起始地址**:0x0004
- **寄存器长度**:16
- **说明**:4路 × 4(8字节数据/2) = 16个寄存器
---
### 3. 线路定值设置
- **寄存器类型**:保持寄存器
- **功能码**:0x10
- **起始地址**:0x0014
- **寄存器长度**:56
- **说明**:4路 × 7类别 × 2(4字节数据/2) = 56个寄存器
---
### 4. AI通道设置
- **寄存器类型**:保持寄存器
- **功能码**:0x10
- **起始地址**:0x004C
- **寄存器长度**:30
- **说明**:12路 × 5字节数据 / 2 = 30个寄存器(整体下发)
---
### 5. AO通道设置
- **寄存器类型**:保持寄存器
- **功能码**:0x10
- **起始地址**:0x006A
- **寄存器长度**:30
- **说明**:12路 × 5字节数据 / 2 = 30个寄存器(整体下发)
---
### 6. AI报警设置
- **寄存器类型**:保持寄存器
- **功能码**:0x10
- **起始地址**:0x0088
- **寄存器长度**:30
- **说明**:12路 × 5字节数据 / 2 = 30个寄存器(整体下发)
---
### 7. 开出(写继电器输出)
- **寄存器类型**:保持寄存器
- **功能码**:0x10
- **起始地址**:0x00A6
- **寄存器长度**:1
- **数据格式**:16位,每一位表示一路开出量
---
## 六、写开出(线圈)(功能码:05)
- **寄存器类型**:线圈
- **功能码**:0x05
- **起始地址**:0x0000
- **寄存器长度**:12
- **说明**:单路线圈写操作(12路分别操作)