“全悠清洗机通讯文档”的版本间的差异
第54行: | 第54行: | ||
== 业务协议 == | == 业务协议 == | ||
− | === | + | === 上报工作组件的工作状态及工作模式 === |
− | ==== | + | ==== 工作模式上报请求 ==== |
关联设备命令:0x01 | 关联设备命令:0x01 | ||
第62行: | 第62行: | ||
{| class="wikitable" | {| class="wikitable" | ||
|- | |- | ||
− | | '''发送方''' || | + | | style="width:70px" | '''发送方''' || 通信模块 |
+ | |- | ||
+ | | '''说明''' || 设备主动上报工作模式(状态改变时上报) | ||
+ | |- | ||
+ | | '''开始标志''' || 1byte,“_” | ||
+ | |- | ||
+ | | '''响应类型''' || 2byte,RP | ||
+ | |- | ||
+ | | '''命令''' || 3byte,WKM | ||
+ | |- | ||
+ | | '''会话ID''' || 6byte,A21001 | ||
+ | |- | ||
+ | | '''内容长度''' || 3byte,表示内容长度,ASCII数字表示 | ||
+ | |- | ||
+ | | '''内容''' || 工作状态(2byte,01-自动模式开启,02-制氧机开启,04 抽水泵开启) | ||
+ | |||
+ | |- | ||
+ | | '''结束标志''' || 2byte,\r\n(0x0D 0x0A) | ||
+ | |} | ||
+ | |||
+ | '''示例:''' | ||
+ | |||
+ | _RP WKM A21001 002 01<0x0D> <0x0A> | ||
+ | |||
+ | ==== 工作模式上报响应 ==== | ||
+ | |||
+ | 关联设备命令:0x01 | ||
+ | |||
+ | {| class="wikitable" | ||
+ | |- | ||
+ | | '''发送方''' || 通信模块 | ||
+ | |- | ||
+ | | '''说明''' || 返回服务端请求接收状态 | ||
+ | |- | ||
+ | | '''开始标志''' || 1byte,“_” | ||
+ | |- | ||
+ | | '''响应类型''' || 2byte,RS | ||
+ | |- | ||
+ | | '''命令''' || 3byte,WKM | ||
+ | |- | ||
+ | | '''会话ID''' || 6byte,A21001 | ||
+ | |- | ||
+ | | '''内容长度''' || 3byte,表示内容长度,ASCII数字表示 | ||
+ | |- | ||
+ | | '''内容''' || 无 | ||
+ | |||
+ | |- | ||
+ | | '''结束标志''' || 2byte,\r\n(0x0D 0x0A) | ||
+ | |} | ||
+ | |||
+ | '''示例:''' | ||
+ | |||
+ | _RS WKM A21001 000 <0x0D> <0x0A> | ||
+ | |||
+ | === 上报传感器参数 === | ||
+ | |||
+ | ==== 各项传感器参数上报请求 ==== | ||
+ | |||
+ | 关联设备命令:0x02 | ||
+ | |||
+ | {| class="wikitable" | ||
+ | |- | ||
+ | | style="width:70px" | '''发送方''' || 通信模块 | ||
+ | |- | ||
+ | | '''说明''' || 设备主动上报传感器参数(实时上报,约1s一次) | ||
+ | |- | ||
+ | | '''开始标志''' || 1byte,“_” | ||
+ | |- | ||
+ | | '''响应类型''' || 2byte,RP | ||
+ | |- | ||
+ | | '''命令''' || 3byte,WKD | ||
+ | |- | ||
+ | | '''会话ID''' || 6byte,A21002 | ||
+ | |- | ||
+ | | '''内容长度''' || 3byte,表示内容长度,ASCII数字表示 | ||
+ | |- | ||
+ | | '''内容''' || 进水口阀门输入电压(4bytes,0234 表示电压 2.34V)#/# | ||
+ | |||
+ | 进水口阀门输出(反馈)电压(4bytes,同上)#/# | ||
+ | |||
+ | 出水口阀门输入电压(4bytes,同上)#/# | ||
+ | |||
+ | 出水口阀门输出(反馈)电压(4bytes,同上)#/# | ||
+ | |||
+ | 进水口检测压力(4bytes,0~1250 映射范围 0.0250~(-0.1000MPa))#/# | ||
+ | |||
+ | 出水口检测压力(4bytes,0~7500 映射范围(-0.1500MPa)~0.6000MPa)#/# | ||
+ | |||
+ | 水泵的工作电流(4bytes,1000 表示 1000mA)#/# | ||
+ | |||
+ | 气泵的工作电流(4bytes,1000 表示 1000mA)#/# | ||
+ | |||
+ | 箱体内温度参数(2bytes,25 表示 25 摄氏度) | ||
+ | |||
+ | |- | ||
+ | | '''结束标志''' || 2byte,\r\n(0x0D 0x0A) | ||
+ | |} | ||
+ | |||
+ | '''示例:''' | ||
+ | |||
+ | _ RP WKD A21002 058 0234#/#0234#/#0234#/#0234#/#1250#/#7500#/#1000#/#1000#/#25<0x0D> <0x0A> | ||
+ | |||
+ | ==== 传感器参数上报响应 ==== | ||
+ | |||
+ | 关联设备命令:0x02 | ||
+ | |||
+ | {| class="wikitable" | ||
+ | |- | ||
+ | | '''发送方''' || 通信模块 | ||
+ | |- | ||
+ | | '''说明''' || 返回服务端请求接收状态 | ||
+ | |- | ||
+ | | '''开始标志''' || 1byte,“_” | ||
+ | |- | ||
+ | | '''响应类型''' || 2byte,RS | ||
+ | |- | ||
+ | | '''命令''' || 3byte,WKD | ||
+ | |- | ||
+ | | '''会话ID''' || 6byte,A21002 | ||
+ | |- | ||
+ | | '''内容长度''' || 3byte,表示内容长度,ASCII数字表示 | ||
+ | |- | ||
+ | | '''内容''' || 无 | ||
+ | |||
+ | |- | ||
+ | | '''结束标志''' || 2byte,\r\n(0x0D 0x0A) | ||
+ | |} | ||
+ | |||
+ | '''示例:''' | ||
+ | |||
+ | _RS WKD A21002 000 <0x0D> <0x0A> | ||
+ | |||
+ | === 上报工作参数设定值(报警上限值) === | ||
+ | |||
+ | ==== 工作参数设定值上报请求 ==== | ||
+ | |||
+ | 关联设备命令:0x03 | ||
+ | |||
+ | {| class="wikitable" | ||
+ | |- | ||
+ | | style="width:70px" | '''发送方''' || 通信模块 | ||
+ | |- | ||
+ | | '''说明''' || 设备主动上报各类参数的设定值或报警上限值(有改变时发送) | ||
+ | |- | ||
+ | | '''开始标志''' || 1byte,“_” | ||
+ | |- | ||
+ | | '''响应类型''' || 2byte,RP | ||
+ | |- | ||
+ | | '''命令''' || 3byte,LMT | ||
+ | |- | ||
+ | | '''会话ID''' || 6byte,A21003 | ||
+ | |- | ||
+ | | '''内容长度''' || 3byte,表示内容长度,ASCII数字表示 | ||
+ | |- | ||
+ | | '''内容''' || 进水口压力设定值(4bytes,0~1250 映射范围 0.0250~(-0.1000MPa))#/# | ||
+ | |||
+ | 出水口压力设定值(4bytes,0~7500 映射范围(-0.1500MPa)~0.6000MPa)#/# | ||
+ | |||
+ | 水泵的工作电流上限参数(4bytes,1000 表示 1000mA)#/# | ||
+ | |||
+ | 气泵的工作电流上限参数(4bytes,1000 表示 1000mA)#/# | ||
+ | |||
+ | 箱体内温度上限参数(2bytes,25 表示 25 摄氏度) | ||
+ | |||
+ | |- | ||
+ | | '''结束标志''' || 2byte,\r\n(0x0D 0x0A) | ||
+ | |} | ||
+ | |||
+ | '''示例:''' | ||
+ | |||
+ | _ RP LMT A21003 030 1250#/#7500#/#1000#/#1000#/#25<0x0D> <0x0A> | ||
+ | |||
+ | ==== 工作参数设定值上报响应 ==== | ||
+ | |||
+ | 关联设备命令:0x03 | ||
+ | |||
+ | {| class="wikitable" | ||
+ | |- | ||
+ | | '''发送方''' || 通信模块 | ||
|- | |- | ||
− | | '''说明''' || | + | | '''说明''' || 返回服务端请求接收状态 |
|- | |- | ||
| '''开始标志''' || 1byte,“_” | | '''开始标志''' || 1byte,“_” | ||
|- | |- | ||
− | | ''' | + | | '''响应类型''' || 2byte,RS |
+ | |- | ||
+ | | '''命令''' || 3byte,LMT | ||
|- | |- | ||
− | | ''' | + | | '''会话ID''' || 6byte,A21003 |
|- | |- | ||
− | | ''' | + | | '''内容长度''' || 3byte,表示内容长度,ASCII数字表示 |
|- | |- | ||
− | | ''' | + | | '''内容''' || 无 |
+ | |||
|- | |- | ||
− | | ''' | + | | '''结束标志''' || 2byte,\r\n(0x0D 0x0A) |
+ | |} | ||
+ | |||
+ | '''示例:''' | ||
− | + | _RS LMT A21003 000 <0x0D> <0x0A> | |
− | + | === 上报自动工作设定的定时值 === | |
+ | |||
+ | ==== 自动工作设定的定时值上报请求 ==== | ||
+ | |||
+ | 关联设备命令:0x04 | ||
+ | |||
+ | {| class="wikitable" | ||
+ | |- | ||
+ | | style="width:70px" | '''发送方''' || 通信模块 | ||
+ | |- | ||
+ | | '''说明''' || 设备主动上报自动工作设定的定时值(有改变时上报) | ||
+ | |- | ||
+ | | '''开始标志''' || 1byte,“_” | ||
+ | |- | ||
+ | | '''响应类型''' || 2byte,RP | ||
+ | |- | ||
+ | | '''命令''' || 3byte,TIM | ||
+ | |- | ||
+ | | '''会话ID''' || 6byte,A21004 | ||
+ | |- | ||
+ | | '''内容长度''' || 3byte,表示内容长度,ASCII数字表示 | ||
+ | |- | ||
+ | | '''内容''' || 定时时间(2byte,10 表示 10 分钟) | ||
− | |||
|- | |- | ||
| '''结束标志''' || 2byte,\r\n(0x0D 0x0A) | | '''结束标志''' || 2byte,\r\n(0x0D 0x0A) | ||
第89行: | 第294行: | ||
'''示例:''' | '''示例:''' | ||
− | + | _ RP TIM A21004 002 10<0x0D> <0x0A> | |
− | ==== | + | ==== 自动工作设定的定时值上上报响应 ==== |
− | + | 关联设备命令:0x04 | |
{| class="wikitable" | {| class="wikitable" | ||
第99行: | 第304行: | ||
| '''发送方''' || 通信模块 | | '''发送方''' || 通信模块 | ||
|- | |- | ||
− | | '''说明''' || | + | | '''说明''' || 返回服务端请求接收状态 |
|- | |- | ||
| '''开始标志''' || 1byte,“_” | | '''开始标志''' || 1byte,“_” | ||
第105行: | 第310行: | ||
| '''响应类型''' || 2byte,RS | | '''响应类型''' || 2byte,RS | ||
|- | |- | ||
− | | '''命令''' || | + | | '''命令''' || 3byte,TIM |
+ | |- | ||
+ | | '''会话ID''' || 6byte,A21004 | ||
+ | |- | ||
+ | | '''内容长度''' || 3byte,表示内容长度,ASCII数字表示 | ||
+ | |- | ||
+ | | '''内容''' || 无 | ||
+ | |||
|- | |- | ||
− | | '''会话ID''' || | + | | '''结束标志''' || 2byte,\r\n(0x0D 0x0A) |
+ | |} | ||
+ | |||
+ | '''示例:''' | ||
+ | |||
+ | _RS TIM A21004 000 <0x0D> <0x0A> | ||
+ | |||
+ | === 上报报警信息 === | ||
+ | |||
+ | ==== 报警信号上报请求 ==== | ||
+ | |||
+ | 关联设备命令:0x05 | ||
+ | |||
+ | {| class="wikitable" | ||
+ | |- | ||
+ | | style="width:70px" | '''发送方''' || 通信模块 | ||
+ | |- | ||
+ | | '''说明''' || 设备主动上报报警信号(有报警时发送) | ||
+ | |- | ||
+ | | '''开始标志''' || 1byte,“_” | ||
+ | |- | ||
+ | | '''响应类型''' || 2byte,RP | ||
+ | |- | ||
+ | | '''命令''' || 3byte,ERR | ||
+ | |- | ||
+ | | '''会话ID''' || 6byte,A21005 | ||
|- | |- | ||
| '''内容长度''' || 3byte,表示内容长度,ASCII数字表示 | | '''内容长度''' || 3byte,表示内容长度,ASCII数字表示 | ||
|- | |- | ||
− | | '''内容''' || | + | | '''内容''' || 警报值(2bytes): |
+ | |||
+ | 01 - 出水口压力超监测上限(出水口压力传感器检测的上限压力 0.6MPa) | ||
+ | 02 - 进水口压力超监测上限(进水口压力传感器检测的上限压力-0.1MPa) | ||
+ | 05 - 出水口压力超出设定值范围报警 | ||
+ | 06 - 进水口压力超出设定值范围报警 | ||
+ | 07 - 初始出水压力报警(定时工作前检测到不是初始传感器 0MPa 左右参数) | ||
+ | 08 - 初始进水压力报警(定时工作前检测到不是初始传感器 0MPa 左右参数) | ||
+ | 09 - 水泵过流保护报警(超过设定水泵工作电流上限值) | ||
+ | 0A - 气泵过流保护报警(超过设定气泵工作电流上限值) | ||
+ | 0B - 超温报警(箱体内温度超过设定温度上限值) | ||
+ | 0C - 出水阀门反馈信号故障(超时没有接收到阀门反馈电压信号) | ||
+ | 0D - 出水阀门反馈信号故障(超时没有接收到阀门反馈电压信号) | ||
+ | |||
+ | '''注:当警报值为 05/06 时,参数会增加最多 15 条的报警时出/进水口压力数值,长度为 4bytes,以#/#分 隔。 | ||
+ | |||
+ | (暂不确定设备是否会不停的发送报警信息,后面看情况加入重传序号)''' | ||
+ | |||
+ | |- | ||
+ | | '''结束标志''' || 2byte,\r\n(0x0D 0x0A) | ||
+ | |} | ||
+ | |||
+ | '''示例:''' | ||
+ | |||
+ | _ RP ERR A21005 002 01<0x0D> <0x0A> | ||
+ | |||
+ | _ RP ERR A21005 009 05#/#7500<0x0D> <0x0A> | ||
+ | |||
+ | _ RP ERR A21005 107 06#/#1250#/#1250#/#1250#/#1250#/#1250#/#1250#/#1250#/#1250#/#1250#/#1250#/#1250#/#1250#/#1250#/#1250#/#1250<0x0D> <0x0A> | ||
+ | |||
+ | ==== 报警信号上报响应 ==== | ||
+ | |||
+ | 关联设备命令:0x05 | ||
− | + | {| class="wikitable" | |
+ | |- | ||
+ | | '''发送方''' || 通信模块 | ||
+ | |- | ||
+ | | '''说明''' || 返回服务端请求接收状态 | ||
+ | |- | ||
+ | | '''开始标志''' || 1byte,“_” | ||
+ | |- | ||
+ | | '''响应类型''' || 2byte,RS | ||
+ | |- | ||
+ | | '''命令''' || 3byte,ERR | ||
+ | |- | ||
+ | | '''会话ID''' || 6byte,A21005 | ||
+ | |- | ||
+ | | '''内容长度''' || 3byte,表示内容长度,ASCII数字表示 | ||
+ | |- | ||
+ | | '''内容''' || 无 | ||
− | |||
|- | |- | ||
| '''结束标志''' || 2byte,\r\n(0x0D 0x0A) | | '''结束标志''' || 2byte,\r\n(0x0D 0x0A) | ||
第122行: | 第406行: | ||
'''示例:''' | '''示例:''' | ||
− | _RS | + | _RS ERR A21005 000 <0x0D> <0x0A> |
− | === | + | === 上报报警信号解除 === |
− | ==== | + | ==== 报警信号解除上报请求 ==== |
+ | |||
+ | 关联设备命令:0x06 | ||
{| class="wikitable" | {| class="wikitable" | ||
第132行: | 第418行: | ||
| style="width:70px" | '''发送方''' || 通信模块 | | style="width:70px" | '''发送方''' || 通信模块 | ||
|- | |- | ||
− | | '''说明''' || | + | | '''说明''' || 设设备主动上报解除报警信号(报警解除时上报) |
|- | |- | ||
| '''开始标志''' || 1byte,“_” | | '''开始标志''' || 1byte,“_” | ||
第138行: | 第424行: | ||
| '''响应类型''' || 2byte,RP | | '''响应类型''' || 2byte,RP | ||
|- | |- | ||
− | | '''命令''' || | + | | '''命令''' || 3byte,EOK |
+ | |- | ||
+ | | '''会话ID''' || 6byte,A21006 | ||
+ | |- | ||
+ | | '''内容长度''' || 3byte,表示内容长度,ASCII数字表示 | ||
+ | |- | ||
+ | | '''内容''' || 无 | ||
+ | |||
+ | |- | ||
+ | | '''结束标志''' || 2byte,\r\n(0x0D 0x0A) | ||
+ | |} | ||
+ | |||
+ | '''示例:''' | ||
+ | |||
+ | _ RP EOK A21006 000<0x0D> <0x0A> | ||
+ | |||
+ | ==== 报警信号解除上报响应 ==== | ||
+ | |||
+ | 关联设备命令:0x06 | ||
+ | |||
+ | {| class="wikitable" | ||
+ | |- | ||
+ | | '''发送方''' || 通信模块 | ||
+ | |- | ||
+ | | '''说明''' || 返回服务端请求接收状态 | ||
+ | |- | ||
+ | | '''开始标志''' || 1byte,“_” | ||
+ | |- | ||
+ | | '''响应类型''' || 2byte,RS | ||
+ | |- | ||
+ | | '''命令''' || 3byte,EOK | ||
+ | |- | ||
+ | | '''会话ID''' || 6byte,A21006 | ||
+ | |- | ||
+ | | '''内容长度''' || 3byte,表示内容长度,ASCII数字表示 | ||
+ | |- | ||
+ | | '''内容''' || 无 | ||
+ | |||
+ | |- | ||
+ | | '''结束标志''' || 2byte,\r\n(0x0D 0x0A) | ||
+ | |} | ||
+ | |||
+ | '''示例:''' | ||
+ | |||
+ | _RS EOK A21006 000 <0x0D> <0x0A> | ||
+ | |||
+ | === 下发设置 === | ||
+ | |||
+ | ==== 下发参数设置请求 ==== | ||
+ | |||
+ | 关联设备命令:0x02 | ||
+ | |||
+ | {| class="wikitable" | ||
+ | |- | ||
+ | | '''发送方''' || 服务器 | ||
+ | |- | ||
+ | | '''说明''' || 服务端下发设置指令 | ||
+ | |- | ||
+ | | '''开始标志''' || 1byte,“_” | ||
+ | |- | ||
+ | | '''报文长度''' || 3byte,表示整个报文的总长度,ASCII数字表示 | ||
+ | |- | ||
+ | | '''命令''' || 3byte,SET | ||
+ | |- | ||
+ | | '''会话ID''' || 6byte,服务器生成 | ||
+ | |- | ||
+ | | '''分隔符''' || 1byte,“/” | ||
+ | |- | ||
+ | | '''参数''' || 操作命令码(2bytes): | ||
+ | 01:设置工作组件或设置工作模式 | ||
+ | 01:打开自动工作模式(2bytes) | ||
+ | 02:关闭自动工作模式(切换为手动模式) | ||
+ | 03:打开制氧机 | ||
+ | 04:关闭制氧机 | ||
+ | 05:打开抽水泵 | ||
+ | 06:关闭抽水泵 | ||
+ | '''注:自动模式下抽水泵及制氧机由 MCU 控制,其他设备无法操控''' | ||
+ | |||
+ | 02:设置进水阀门调控参数 | ||
+ | 0500:进水阀门输入值(4bytes,参数值为 500 表示把出水阀门输入电压调为 5V,即阀门开 50%, 参数范围 300~1000) | ||
+ | |||
+ | 03:设置出水阀门调控参数 | ||
+ | 0500:出水阀门输入值(4bytes,意义同上,参数范围 30~1000) | ||
+ | |||
+ | 04:设置进水压力设定参数 | ||
+ | 0500:进水压力设定值(4bytes,参数范围 0~1250 映射 0.0250~(-0.1000MPA)) | ||
+ | |||
+ | 05:设置出水压力设定参数 | ||
+ | 0500:出水压力设定值(4bytes,参数范围 0~7500 映射(-0.150MPa)~0.6000MPa) | ||
+ | |||
+ | 06:设置水泵工作的上限电流 | ||
+ | 00500:水泵的上限电流参数(5bytes,参数范围 0~10000) | ||
+ | |||
+ | 07:设置气泵(制氧机)工作的上限电流 | ||
+ | 00500:气泵的上限电流参数(5bytes,参数范围 0~10000) | ||
+ | |||
+ | 08:设置温度的上限参数 | ||
+ | 0100:温度上限参数(4bytes,参数范围 0~100) | ||
+ | |||
+ | 09:设置工作定时设定参数 | ||
+ | 0240:工作定时参数(4bytes,参数范围 10~240(暂定)调控刻度为 5) | ||
+ | |||
+ | 0A:发送解除报警信号 | ||
+ | 无参数 | ||
+ | |- | ||
+ | | '''结束标志''' || 2byte,\r\n(0x0D 0x0A) | ||
+ | |} | ||
+ | |||
+ | '''示例:''' | ||
+ | |||
+ | _014 SET KX7l9t/0101<0x0D> <0x0A> 解析:打开自动工作模式 | ||
+ | |||
+ | _014 SET KX7l9t/0105<0x0D> <0x0A> 解析:打开抽水泵 | ||
+ | |||
+ | _016 SET KX7l9t/020700<0x0D> <0x0A> 解析:进水阀门打开 70% | ||
+ | |||
+ | _016 SET KX7l9t/040250<0x0D> <0x0A> 解析:设置进水压力为 0MPa | ||
+ | |||
+ | _017 SET KX7l9t/0610000<0x0D> <0x0A> 解析:设置水泵工作的上限电流为 10000mA | ||
+ | |||
+ | _016 SET KX7l9t/080100<0x0D> <0x0A> 解析:设置箱体内温度上限为 100℃ | ||
+ | |||
+ | _016 SET KX7l9t/090200<0x0D> <0x0A> 解析:设置自动工作的定时时间为 200 分钟 | ||
+ | |||
+ | _012 SET KX7l9t/0A<0x0D> <0x0A> 解析:解除报警信号 | ||
+ | |||
+ | ==== 下发参数设置响应 ==== | ||
+ | |||
+ | 关联设备命令:0x02 | ||
+ | |||
+ | {| class="wikitable" | ||
+ | |- | ||
+ | | '''发送方''' || 通信模块 | ||
+ | |- | ||
+ | | '''说明''' || 返回服务端查询内容 | ||
+ | |- | ||
+ | | '''开始标志''' || 1byte,“_” | ||
|- | |- | ||
− | | '''会话ID''' || | + | | '''响应类型''' || 2byte,RS |
+ | |- | ||
+ | | '''命令''' || 3byte,SET | ||
+ | |- | ||
+ | | '''会话ID''' || 6byte,服务器生成 | ||
|- | |- | ||
| '''内容长度''' || 3byte,表示内容长度,ASCII数字表示 | | '''内容长度''' || 3byte,表示内容长度,ASCII数字表示 | ||
|- | |- | ||
− | | '''内容''' || | + | | '''内容''' || 操作命令码(2bytes)#/# |
− | + | 接收结果(1-接收成功,2-参数错误) | |
− | + | |- | |
+ | | '''结束标志''' || 2byte,\r\n(0x0D 0x0A) | ||
+ | |} | ||
+ | |||
+ | '''示例:''' | ||
− | + | _RS SET KX7l9t 006 01#/#1 <0x0D> <0x0A> | |
− | + | === 删除重传队列 === | |
+ | {| class="wikitable" | ||
+ | |- | ||
+ | | '''发送方''' || 服务器 | ||
+ | |- | ||
+ | | '''说明''' || 服务端收到设备上报带有重传序号的请求后后,回应设备让设备删除重传列表中的该条数据。 | ||
+ | |- | ||
+ | | '''开始标志''' || 1byte,“_” | ||
+ | |- | ||
+ | | '''报文长度''' || 3byte,表示整个报文的总长度,ASCII数字表示 | ||
+ | |- | ||
+ | | '''命令''' || 3byte,DLB | ||
+ | |- | ||
+ | | '''会话ID''' || 6byte,服务器生成 | ||
+ | |- | ||
+ | | '''分隔符''' || 1byte,“/” | ||
+ | |- | ||
+ | | '''参数''' || 重传序号(通讯模块生成) | ||
|- | |- | ||
| '''结束标志''' || 2byte,\r\n(0x0D 0x0A) | | '''结束标志''' || 2byte,\r\n(0x0D 0x0A) | ||
第160行: | 第607行: | ||
'''示例:''' | '''示例:''' | ||
− | + | _ 018 DLB 123456 / 56 <0x0D> <0x0A> |
2021年2月7日 (日) 11:14的最新版本
目录
协议结构
命令结构
定义:服务器发送,通讯模块接收的数据报文。
1 | 2 | 3 | 4 | 5 | 6 | 7 |
1:开始标识(1byte) “_”
2:报文长度(3byte)(ASCII数字)
3:命令(3byte)(英文大写,第一字节A为保留字段)
4:会话ID(6byte)(每一字节0x00-0x3D之间数字+偏移量0x31,当然如果使用A-Za-z0-9就一定再这个范围之内了,也就满足要求了),每次不同的通讯的会话ID都需要不一样(服务器发起的通讯至少连续的20次通讯不一样,除了特殊说明以外,当然我们的建议还是让每次通讯的会话ID尽可能的不一样),通常设备会在获取到服务器指令执行以后需要回复结果的会返回相同的会话ID给服务器,服务端可以通过会话ID获得设备当前回应的数据是哪一个会话的。同一个会话ID设备会认为是同一次通讯的重复发送,如果设备已经处理了相关的指令,就会丢弃之后相同会话ID的指令。设备由于内存限制,比对的会话ID是之前10次通讯的会话ID,为了可靠期间服务端只要保证连续的20次服务器发起的通讯会话ID不一致就可以了确保设备不会触发丢弃操作而影响指令的执行。另外如果有些命令服务器为了使设备一定收到,但设备只需要执行一次的,这样的命令多次发送用同一会话ID发送就可以了
5:分隔符(1byte) “/”
6:参数(如果没有参数则没有该部分)
7:结束标识(2byte) (0x0D 0x0A)
响应结构
定义:通讯模块发送,服务器接收的报文。
1 | 2 | 3 | 4 | 5 | 6 | 7 |
1:开始标识(1byte) “_”
2:响应类型(2byte) PG-ping,DV-设备号(IMEI),ID-SIM卡ICCID号,CM-客户端命令,RP-数据上报,RS-命令响应, RJ-Json数据上报
3:命令(3byte)(大写英文,回传服务器请求的命令,如果没有服务器请求则为AAA)
4:会话ID(6byte)(无服务器会话ID则返回”000000”,文档中指令的会话ID有特殊定义的,已定义为准)
5:内容长度(3byte)(ASCII数字)6的长度
6:内容(内容长度可以为空)
7:结束标识(2byte) (0x0D 0x0A)
命令限制
- ADV(设备号IMEI号) AID(SIM卡ICCID号) AXT(心跳) AAA(空指令) 为系统内置命令不能用于其他接口
- 业务级别的接口命令不得用 A 开头
业务协议
上报工作组件的工作状态及工作模式
工作模式上报请求
关联设备命令:0x01
发送方 | 通信模块 |
说明 | 设备主动上报工作模式(状态改变时上报) |
开始标志 | 1byte,“_” |
响应类型 | 2byte,RP |
命令 | 3byte,WKM |
会话ID | 6byte,A21001 |
内容长度 | 3byte,表示内容长度,ASCII数字表示 |
内容 | 工作状态(2byte,01-自动模式开启,02-制氧机开启,04 抽水泵开启) |
结束标志 | 2byte,\r\n(0x0D 0x0A) |
示例:
_RP WKM A21001 002 01<0x0D> <0x0A>
工作模式上报响应
关联设备命令:0x01
发送方 | 通信模块 |
说明 | 返回服务端请求接收状态 |
开始标志 | 1byte,“_” |
响应类型 | 2byte,RS |
命令 | 3byte,WKM |
会话ID | 6byte,A21001 |
内容长度 | 3byte,表示内容长度,ASCII数字表示 |
内容 | 无 |
结束标志 | 2byte,\r\n(0x0D 0x0A) |
示例:
_RS WKM A21001 000 <0x0D> <0x0A>
上报传感器参数
各项传感器参数上报请求
关联设备命令:0x02
发送方 | 通信模块 |
说明 | 设备主动上报传感器参数(实时上报,约1s一次) |
开始标志 | 1byte,“_” |
响应类型 | 2byte,RP |
命令 | 3byte,WKD |
会话ID | 6byte,A21002 |
内容长度 | 3byte,表示内容长度,ASCII数字表示 |
内容 | 进水口阀门输入电压(4bytes,0234 表示电压 2.34V)#/#
进水口阀门输出(反馈)电压(4bytes,同上)#/# 出水口阀门输入电压(4bytes,同上)#/# 出水口阀门输出(反馈)电压(4bytes,同上)#/# 进水口检测压力(4bytes,0~1250 映射范围 0.0250~(-0.1000MPa))#/# 出水口检测压力(4bytes,0~7500 映射范围(-0.1500MPa)~0.6000MPa)#/# 水泵的工作电流(4bytes,1000 表示 1000mA)#/# 气泵的工作电流(4bytes,1000 表示 1000mA)#/# 箱体内温度参数(2bytes,25 表示 25 摄氏度) |
结束标志 | 2byte,\r\n(0x0D 0x0A) |
示例:
_ RP WKD A21002 058 0234#/#0234#/#0234#/#0234#/#1250#/#7500#/#1000#/#1000#/#25<0x0D> <0x0A>
传感器参数上报响应
关联设备命令:0x02
发送方 | 通信模块 |
说明 | 返回服务端请求接收状态 |
开始标志 | 1byte,“_” |
响应类型 | 2byte,RS |
命令 | 3byte,WKD |
会话ID | 6byte,A21002 |
内容长度 | 3byte,表示内容长度,ASCII数字表示 |
内容 | 无 |
结束标志 | 2byte,\r\n(0x0D 0x0A) |
示例:
_RS WKD A21002 000 <0x0D> <0x0A>
上报工作参数设定值(报警上限值)
工作参数设定值上报请求
关联设备命令:0x03
发送方 | 通信模块 |
说明 | 设备主动上报各类参数的设定值或报警上限值(有改变时发送) |
开始标志 | 1byte,“_” |
响应类型 | 2byte,RP |
命令 | 3byte,LMT |
会话ID | 6byte,A21003 |
内容长度 | 3byte,表示内容长度,ASCII数字表示 |
内容 | 进水口压力设定值(4bytes,0~1250 映射范围 0.0250~(-0.1000MPa))#/#
出水口压力设定值(4bytes,0~7500 映射范围(-0.1500MPa)~0.6000MPa)#/# 水泵的工作电流上限参数(4bytes,1000 表示 1000mA)#/# 气泵的工作电流上限参数(4bytes,1000 表示 1000mA)#/# 箱体内温度上限参数(2bytes,25 表示 25 摄氏度) |
结束标志 | 2byte,\r\n(0x0D 0x0A) |
示例:
_ RP LMT A21003 030 1250#/#7500#/#1000#/#1000#/#25<0x0D> <0x0A>
工作参数设定值上报响应
关联设备命令:0x03
发送方 | 通信模块 |
说明 | 返回服务端请求接收状态 |
开始标志 | 1byte,“_” |
响应类型 | 2byte,RS |
命令 | 3byte,LMT |
会话ID | 6byte,A21003 |
内容长度 | 3byte,表示内容长度,ASCII数字表示 |
内容 | 无 |
结束标志 | 2byte,\r\n(0x0D 0x0A) |
示例:
_RS LMT A21003 000 <0x0D> <0x0A>
上报自动工作设定的定时值
自动工作设定的定时值上报请求
关联设备命令:0x04
发送方 | 通信模块 |
说明 | 设备主动上报自动工作设定的定时值(有改变时上报) |
开始标志 | 1byte,“_” |
响应类型 | 2byte,RP |
命令 | 3byte,TIM |
会话ID | 6byte,A21004 |
内容长度 | 3byte,表示内容长度,ASCII数字表示 |
内容 | 定时时间(2byte,10 表示 10 分钟) |
结束标志 | 2byte,\r\n(0x0D 0x0A) |
示例:
_ RP TIM A21004 002 10<0x0D> <0x0A>
自动工作设定的定时值上上报响应
关联设备命令:0x04
发送方 | 通信模块 |
说明 | 返回服务端请求接收状态 |
开始标志 | 1byte,“_” |
响应类型 | 2byte,RS |
命令 | 3byte,TIM |
会话ID | 6byte,A21004 |
内容长度 | 3byte,表示内容长度,ASCII数字表示 |
内容 | 无 |
结束标志 | 2byte,\r\n(0x0D 0x0A) |
示例:
_RS TIM A21004 000 <0x0D> <0x0A>
上报报警信息
报警信号上报请求
关联设备命令:0x05
发送方 | 通信模块 |
说明 | 设备主动上报报警信号(有报警时发送) |
开始标志 | 1byte,“_” |
响应类型 | 2byte,RP |
命令 | 3byte,ERR |
会话ID | 6byte,A21005 |
内容长度 | 3byte,表示内容长度,ASCII数字表示 |
内容 | 警报值(2bytes):
01 - 出水口压力超监测上限(出水口压力传感器检测的上限压力 0.6MPa) 02 - 进水口压力超监测上限(进水口压力传感器检测的上限压力-0.1MPa) 05 - 出水口压力超出设定值范围报警 06 - 进水口压力超出设定值范围报警 07 - 初始出水压力报警(定时工作前检测到不是初始传感器 0MPa 左右参数) 08 - 初始进水压力报警(定时工作前检测到不是初始传感器 0MPa 左右参数) 09 - 水泵过流保护报警(超过设定水泵工作电流上限值) 0A - 气泵过流保护报警(超过设定气泵工作电流上限值) 0B - 超温报警(箱体内温度超过设定温度上限值) 0C - 出水阀门反馈信号故障(超时没有接收到阀门反馈电压信号) 0D - 出水阀门反馈信号故障(超时没有接收到阀门反馈电压信号) 注:当警报值为 05/06 时,参数会增加最多 15 条的报警时出/进水口压力数值,长度为 4bytes,以#/#分 隔。 (暂不确定设备是否会不停的发送报警信息,后面看情况加入重传序号) |
结束标志 | 2byte,\r\n(0x0D 0x0A) |
示例:
_ RP ERR A21005 002 01<0x0D> <0x0A>
_ RP ERR A21005 009 05#/#7500<0x0D> <0x0A>
_ RP ERR A21005 107 06#/#1250#/#1250#/#1250#/#1250#/#1250#/#1250#/#1250#/#1250#/#1250#/#1250#/#1250#/#1250#/#1250#/#1250#/#1250<0x0D> <0x0A>
报警信号上报响应
关联设备命令:0x05
发送方 | 通信模块 |
说明 | 返回服务端请求接收状态 |
开始标志 | 1byte,“_” |
响应类型 | 2byte,RS |
命令 | 3byte,ERR |
会话ID | 6byte,A21005 |
内容长度 | 3byte,表示内容长度,ASCII数字表示 |
内容 | 无 |
结束标志 | 2byte,\r\n(0x0D 0x0A) |
示例:
_RS ERR A21005 000 <0x0D> <0x0A>
上报报警信号解除
报警信号解除上报请求
关联设备命令:0x06
发送方 | 通信模块 |
说明 | 设设备主动上报解除报警信号(报警解除时上报) |
开始标志 | 1byte,“_” |
响应类型 | 2byte,RP |
命令 | 3byte,EOK |
会话ID | 6byte,A21006 |
内容长度 | 3byte,表示内容长度,ASCII数字表示 |
内容 | 无 |
结束标志 | 2byte,\r\n(0x0D 0x0A) |
示例:
_ RP EOK A21006 000<0x0D> <0x0A>
报警信号解除上报响应
关联设备命令:0x06
发送方 | 通信模块 |
说明 | 返回服务端请求接收状态 |
开始标志 | 1byte,“_” |
响应类型 | 2byte,RS |
命令 | 3byte,EOK |
会话ID | 6byte,A21006 |
内容长度 | 3byte,表示内容长度,ASCII数字表示 |
内容 | 无 |
结束标志 | 2byte,\r\n(0x0D 0x0A) |
示例:
_RS EOK A21006 000 <0x0D> <0x0A>
下发设置
下发参数设置请求
关联设备命令:0x02
发送方 | 服务器 |
说明 | 服务端下发设置指令 |
开始标志 | 1byte,“_” |
报文长度 | 3byte,表示整个报文的总长度,ASCII数字表示 |
命令 | 3byte,SET |
会话ID | 6byte,服务器生成 |
分隔符 | 1byte,“/” |
参数 | 操作命令码(2bytes):
01:设置工作组件或设置工作模式 01:打开自动工作模式(2bytes) 02:关闭自动工作模式(切换为手动模式) 03:打开制氧机 04:关闭制氧机 05:打开抽水泵 06:关闭抽水泵 注:自动模式下抽水泵及制氧机由 MCU 控制,其他设备无法操控 02:设置进水阀门调控参数 0500:进水阀门输入值(4bytes,参数值为 500 表示把出水阀门输入电压调为 5V,即阀门开 50%, 参数范围 300~1000) 03:设置出水阀门调控参数 0500:出水阀门输入值(4bytes,意义同上,参数范围 30~1000) 04:设置进水压力设定参数 0500:进水压力设定值(4bytes,参数范围 0~1250 映射 0.0250~(-0.1000MPA)) 05:设置出水压力设定参数 0500:出水压力设定值(4bytes,参数范围 0~7500 映射(-0.150MPa)~0.6000MPa) 06:设置水泵工作的上限电流 00500:水泵的上限电流参数(5bytes,参数范围 0~10000) 07:设置气泵(制氧机)工作的上限电流 00500:气泵的上限电流参数(5bytes,参数范围 0~10000) 08:设置温度的上限参数 0100:温度上限参数(4bytes,参数范围 0~100) 09:设置工作定时设定参数 0240:工作定时参数(4bytes,参数范围 10~240(暂定)调控刻度为 5) 0A:发送解除报警信号 无参数 |
结束标志 | 2byte,\r\n(0x0D 0x0A) |
示例:
_014 SET KX7l9t/0101<0x0D> <0x0A> 解析:打开自动工作模式
_014 SET KX7l9t/0105<0x0D> <0x0A> 解析:打开抽水泵
_016 SET KX7l9t/020700<0x0D> <0x0A> 解析:进水阀门打开 70%
_016 SET KX7l9t/040250<0x0D> <0x0A> 解析:设置进水压力为 0MPa
_017 SET KX7l9t/0610000<0x0D> <0x0A> 解析:设置水泵工作的上限电流为 10000mA
_016 SET KX7l9t/080100<0x0D> <0x0A> 解析:设置箱体内温度上限为 100℃
_016 SET KX7l9t/090200<0x0D> <0x0A> 解析:设置自动工作的定时时间为 200 分钟
_012 SET KX7l9t/0A<0x0D> <0x0A> 解析:解除报警信号
下发参数设置响应
关联设备命令:0x02
发送方 | 通信模块 |
说明 | 返回服务端查询内容 |
开始标志 | 1byte,“_” |
响应类型 | 2byte,RS |
命令 | 3byte,SET |
会话ID | 6byte,服务器生成 |
内容长度 | 3byte,表示内容长度,ASCII数字表示 |
内容 | 操作命令码(2bytes)#/#
接收结果(1-接收成功,2-参数错误) |
结束标志 | 2byte,\r\n(0x0D 0x0A) |
示例:
_RS SET KX7l9t 006 01#/#1 <0x0D> <0x0A>
删除重传队列
发送方 | 服务器 |
说明 | 服务端收到设备上报带有重传序号的请求后后,回应设备让设备删除重传列表中的该条数据。 |
开始标志 | 1byte,“_” |
报文长度 | 3byte,表示整个报文的总长度,ASCII数字表示 |
命令 | 3byte,DLB |
会话ID | 6byte,服务器生成 |
分隔符 | 1byte,“/” |
参数 | 重传序号(通讯模块生成) |
结束标志 | 2byte,\r\n(0x0D 0x0A) |
示例:
_ 018 DLB 123456 / 56 <0x0D> <0x0A>