You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

206 lines
9.1 KiB
Markdown

3 months ago
**RKKC1604-N2型动力环境监控一体机.上行通讯协议**
**1.终端主动发送登录指令0x21/0xA1**
终端发起有效登录指令后,上位机软件才能对终端发送的数据进行解析和存库。
| 类别 | 数据内容 | 数据长度 | 备注 |
| --- | --- | --- | --- |
| 帧开始 | 0x68 | 1个字节 | |
| 采集器类型 | 0x45 | 1个字节 | 0x45-采集终端类型 |
| 采集器地址 | 0x0001~0x9999 | 2个字节 | 高位在前低位在后BCD码形式 |
| 命令序列号 | | 2个字节 | 高位在前低位在后,命令帧的序列号 |
| 起始符 | 0x68 | 1个字节 | |
| 控制码 | 0x21 | 1个字节 | 登录指令标识码 |
| 数据长度 | 0x00 0x03 | 2个字节 | 固定为0x00,0x03 |
| 数据域 | 0x12 0x34 0x56 | 3个字节 | 固定为 0x12 0x34 0x56 |
| 校验码 | CS | 1个字节 | 从帧开始到数据域最后一位的数据累加CS校验 |
| 结束符 | 0x16 | 1个字节 | 1个字节 |
举例:
终端发送指令:
68 45 01 02 00 BF 68 21 00 03 12 34 56 97 16
上位机返回指令:
68 45 01 02 00 BF 68 A1 00 00 78 16
**2.上位机对采集终端设备校时指令(0x08/0x88)**
为保证现场采集设备与服务器之间的时间同步,采集终端登录服务器成功后服务器需要对采集设备进行校时。在后续正常工作时,为纠正设备之间的时间偏差,建议每隔一段时间(比如8个小时)对现场终端进行一次校时。
| 类别 | 数据内容 | 数据长度 | 备注 |
| --- | --- | --- | --- |
| 帧开始 | 0x68 | 1个字节 | |
| 采集器类型 | 0x45 | 1个字节 | 0x45-采集终端类型 |
| 采集器地址 | 0x0001~0x9999 | 2个字节 | 高位在前低位在后BCD码形式 |
| 命令序列号 | | 2个字节 | 高位在前低位在后,命令帧的序列号 |
| 起始符 | 0x68 | 1个字节 | |
| 控制码 | 0x08 | 1个字节 | 设置终端参数标识码 |
| 数据长度 | 0x00 0x0D | 2个字节 | 固定为0x00,0x0D |
| 数据域 | 0x00 | 1个字节 | 固定为0x00 |
| | 0x00 | 1个字节 | 固定为0x00 |
| | 0x31 0x32 0x33 | 3个字节 | 密码固定为0x31 0x32 0x33 |
| | 0x80 0x30 | 2个字节 | 时间标识码固定为0x80 0x30 |
| | 秒-分-时-日-月-年 | 6个字节 | 具体时间:秒-分-时-日-月-年 |
| 校验码 | CS | 1个字节 | 从帧开始到数据长度数据累加CS校验 |
| 结束符 | 0x16 | 1个字节 | 1个字节 |
举例:
上位机发送指令:
68 45 01 02 40 00 68 08 00 0D 00 00 31 32 33 80 30 22 39 14 16 09 15 56 16
终端返回指令:
68 45 01 02 40 00 68 88 00 04 00 80 30 00 94 16
**3.终端主动发送心跳指令(0x24/0xA4)**
通过心跳指令判断采集设备与上位机直接的通讯连接状态,采集设备通过定时发送心跳指令,在有效时间内若得到上位机的响应,则判断出终端与上位机之间处于有效连接中,否则若在有效时间捏没有得到上位机的响应,则判断出终端没有连接上上位机,终端则发起登录上位机服务器的流程和指令。
| 类别 | 数据内容 | 数据长度 | 备注 |
| --- | --- | --- | --- |
| 帧开始 | 0x68 | 1个字节 | |
| 采集器类型 | 0x45 | 1个字节 | 0x45-采集终端类型 |
| 采集器地址 | 0x0001~0x9999 | 2个字节 | 高位在前低位在后BCD码形式 |
| 命令序列号 | | 2个字节 | 高位在前低位在后,命令帧的序列号 |
| 起始符 | 0x68 | 1个字节 | |
| 控制码 | 0x24 | 1个字节 | 心跳指令标识码 |
| 数据长度 | | 2个字节 | 固定为0x00,0x00 |
| 校验码 | CS | 1个字节 | 从帧开始到数据长度数据累加CS校验 |
| 结束符 | 0x16 | 1个字节 | 1个字节 |
举例:
终端发送指令:
68 45 00 01 00 01 68 24 00 00 3B 16
上位机返回指令:
68 45 00 01 00 01 68 A4 00 00 BB 16
**4.终端主动上传实时数据指令**
采集设备根据设定的时间间隔,定时对现场仪表进行数据采集,并将采集到的数据综合处理后主动上传到上位机平台。
| 类别 | 数据内容 | 数据长度 | 备注 |
| --- | --- | --- | --- |
| 帧开始 | 0x68 | 1个字节 | |
| 采集器类型 | 0x45 | 1个字节 | 0x45-采集终端类型 |
| 采集器地址 | 0x0001~0x9999 | 2个字节 | 高位在前低位在后BCD码形式 |
| 命令序列号 | | 2个字节 | 高位在前低位在后,命令帧的序列号 |
| 起始符 | 0x68 | 1个字节 | |
| 控制码 | 0x83/0x84/0x85/0x86/0x87 | 1个字节 | 0x83-电力0x84-压缩空气、水0x85-温湿度、照度0x86-开关量IO状态0x87-蒸汽 |
| 数据长度 | N个仪表*1个仪表的长度 | 2个字节 | 1条仪表数据数据长度L
0x83L=2(表序号)+8*6(8项数据项)+8采集时间 = 58个字节
0x84L=2(表序号)+8*6(8项数据项)+8采集时间 = 58个字节
0x85: L=2(表序号)+4*6(8项数据项)+8采集时间 = 34个字节
0x86: L=2(表序号)+16(16路IO输入)+8采集时间 = 26个字节N=1
0x87L=2(表序号)+8*6(8项数据项)+8采集时间 = 58个字节 |
| 数据域 | 0x00 | N*L个字节 | |
| 校验码 | CS | 1个字节 | 从帧开始到数据长度数据累加CS校验 |
| 结束符 | 0x16 | 1个字节 | 1个字节 |
控制码:
| 序号 | 终端主动发送数据控制码 | 上位机返回对应控制码 | 备注 |
| --- | --- | --- | --- |
| 1 | 0x83 | 0xB3 | |
| 2 | 0x84 | 0xB4 | |
| 3 | 0x85 | 0xB5 | |
| 3 | 0x85 | 0xB6 | |
电力采集数据域举例:
![](attachment:fecb539a-3dd8-4e4e-8761-046c06386784:image1.png)
举例:
终端发生命令帧:
68 45 00 01 01 FF 68 83 00 3A 01 00 8E 11 61 4E 4B 3C 8E 12 61 4E 4B 3C 8E 13 61 4E 4B 3C 8E 21 61 4E 4B 3C 8E 22 61 4E 4B 3C 8E 23 61 4E 4B 3C B6 50 3F 7C AC 08 90 10 61 4E 4B 3C 80 30 50 40 16 28 04 20 F5 16
上位机返回:
68 45 00 01 0A 3F 68 B3 00 00 12 16
**5.终端主动上传历史数据指令**
在采集设备与上位机有效连接的期间内,采集设备对存储在内部存储区内的历史数据进行批量上传工作。
| 类别 | 数据内容 | 数据长度 | 备注 |
| --- | --- | --- | --- |
| 帧开始 | 0x68 | 1个字节 | |
| 采集器类型 | 0x45 | 1个字节 | 0x45-采集终端类型 |
| 采集器地址 | 0x0001~0x9999 | 2个字节 | 高位在前低位在后BCD码形式 |
| 命令序列号 | | 2个字节 | 高位在前低位在后,命令帧的序列号 |
| 起始符 | 0x68 | 1个字节 | |
| 控制码 | 0x83/0x84/0x85/0x86/0x87 | 1个字节 | 0x83-电力0x84-压缩空气、水0x85-温湿度、照度0x86-开关量IO状态0x87-蒸汽 |
| 数据长度 | N个仪表*1个仪表的长度 | 2个字节 | 1条仪表数据数据长度L
0x93L=2(表序号)+8*6(8项数据项)+8采集时间 = 58个字节
0x94L=2(表序号)+8*6(8项数据项)+8采集时间 = 58个字节
0x95: L=2(表序号)+4*6(4项数据项)+8采集时间 = 34个字节
0x96: L=2(表序号)+16(16路IO输入)+8采集时间 = 26个字节N=1
0x97L=2(表序号)+8*6(8项数据项)+8采集时间 = 58个字节 |
| 数据域 | 0x00 | N*L个字节 | |
| 校验码 | CS | 1个字节 | 从帧开始到数据长度数据累加CS校验 |
| 结束符 | 0x16 | 1个字节 | 1个字节 |
控制码:
| 序号 | 终端主动发送数据控制码 | 上位机返回对应控制码 | 备注 |
| --- | --- | --- | --- |
| 1 | 0x93 | 0xC3 | |
| 2 | 0x94 | 0xC4 | |
| 3 | 0x95 | 0xC5 | |
| 4 | 0x96 | 0xC6 | |
| 5 | 0x97 | 0xC7 | |
电力采集数据域举例:
![](attachment:fecb539a-3dd8-4e4e-8761-046c06386784:image1.png)
举例:
终端发生命令帧:
68 45 00 01 01 FF 68 93 00 3A 01 00 8E 11 61 4E 4B 3C 8E 12 61 4E 4B 3C 8E 13 61 4E 4B 3C 8E 21 61 4E 4B 3C 8E 22 61 4E 4B 3C 8E 23 61 4E 4B 3C B6 50 3F 7C AC 08 90 10 61 4E 4B 3C 80 30 50 40 16 28 04 20 05 16
上位机返回:
68 45 00 01 0A 3F 68 C3 00 00 22 16
# 附录:上传数据标识码(部分)
| 标识符类型 | 说明 | 标识符类型 | 说明 |
| --- | --- | --- | --- |
| 0x8E11 | A相电压 | 0x9B00 | 仪表压力值 |
| 0x8E12 | B相电压 | 0x9B01 | 仪表温度值 |
| 0x8E13 | C相电压 | 0x9B02 | 仪表频率值 |
| 0x8E21 | A相电流 | 0x9B03 | 仪表瞬时流值 |
| 0x8E22 | B相电流 | 0x9B05 | 仪表累积流量值 |
| 0x8E23 | C相电流 | 0x9B06 | 仪表瞬时热量 |
| 0xB650 | 总功率因数 | 0x9B07 | 仪表累积热量值 |
| 0x9010 | 正向有功总电能 | 0x9B0E | 仪表密度值 |
| 0x8030 | 仪表数据采集时间 | | |
| 标识符类型 | 说明 | 标识符类型 | 说明 |
| --- | --- | --- | --- |
| 0x8E50 | 温湿度.温度 | 0x8E51 | 照度.流明 |
| 0x8E52 | 温湿度.湿度 | 0x8E53 | 噪声.分贝 |
| 0x8E54 | 振动-速度 | 0x8E55 | 振动-位移 |
| 0x8E56 | 振动-加速度 | 0x8E57 | 振动-温度 |
| 0x8030 | 仪表数据采集时间 | | |
指令样例:
`温度指令68 54 00 02 0E 7F 68 85 00 28 01 01 8E 50 70 A4 41 DD 8E 51 00 00 00 00 8E 52 00 00 00 00 8E 53 00 00 00 00 8E 54 00 00 00 00 80 30 06 47 04 03 09 24 25 16`
`湿度指令68 54 00 01 18 3F 68 85 00 28 01 01 8E 50 7A E1 41 FC 8E 51 00 00 00 00 8E 52 0A 3D 42 2E 8E 53 00 00 00 00 8E 54 00 00 00 00 80 30 34 47 04 03 09 24 39 16`
`噪音指令68 54 00 03 1B 3F 68 85 00 28 01 01 8E 50 00 00 00 00 8E 51 00 00 00 00 8E 52 00 00 00 00 8E 53 66 66 42 93 8E 54 00 00 00 00 80 30 36 53 09 14 03 25 AF 16`