Skip to content

扫码充设备私有通信协议 V2.0.7

当前版本:V2.0.7 上一版本:私有协议 V2.0.6

1 协议基础

1.1 通信链路

设备先连接注册平台并发送注册登录报文,注册平台通过 #LOGIN#LOGIN-RETURN 下发业务 MQTT 服务器、Topic、productCategory、商户信息、桩编号和业务密钥。

productCategory != 5 时,NCS 模板选择私有协议适配器。业务 MQTT 链路使用注册平台下发的 chargerKey 做 AES-128-CBC/PKCS7 加解密,IV 为 16 字节全 0。本文所有业务报文均指解密后的明文协议文本。

1.2 数据结构

起始标志指令类型指令序号消息体
#数字、短指令或语义化指令idx使用逗号分隔的字段列表

示例数据:#<指令类型>,<指令序号>,<消息体>

  1. 指令以 # 开头,字段以英文逗号 , 分隔。
  2. 私有协议设备上行指令序号不持久化,每次启动从 0 开始,超过 999 后归 0。
  3. 端口号 chn 从 1 开始。
  4. 金额单位为分,电量单位为 Wh,充电运行时长按字段说明使用秒或分钟。
  5. 私有协议保留历史字段 deviceNo,当前固件解析时不使用该字段做设备选择。
  6. orderId 扩展以当前代码字段位置为准,空字符串或 0 表示不校验订单。

1.3 数据类型

类型参数名说明
数值型Number十进制数字,用于金额、功率、端口、状态、时间等
字符型String以字符形式传输的数据
列表型List使用 -|, 连接的数据组,按字段说明解析

2 注册与绑定

2.1 注册平台阶段

私有协议与开放协议共用注册平台阶段。设备登录 #LOGIN、注册平台响应 #LOGIN、业务参数下发 #LOGIN-RETURN、设备保存结果 #LOGIN-RETURN 的字段定义见 注册平台

私有协议业务链路仅在 productCategory != 5 时启用;业务链路建立后,从下方 #REGISTER 开始进入私有协议业务指令。


2.2 业务注册 #REGISTER

设备 → 业务平台:业务 MQTT 就绪后,设备发送一次业务注册报文。

示例报文:#REGISTER,1,123456789012345,864710071234567,460047661234567,89860846123456789000,0.0.5,1,12,0,1,10,10,16800,16800,900,4

序号字段名类型示例值说明
1指令类型String#REGISTER固定为 #REGISTER;业务注册指令
2指令序号Number1取值 0~999;设备生成的私有协议序号
3充电桩注册码String123456789012345长度 15 字节;优先使用桩编号,无桩编号时使用 IMEI,不足补 0,超长截取
4IMEIString864710071234567长度 15 字节;设备 IMEI
5IMSIString460047661234567长度 15 字节;SIM 卡 IMSI
6ICCIDString89860846123456789000长度 20 字节;SIM 卡 ICCID
7固件版本String0.0.5固件版本,唯一事实来源为项目入口常量封装
8注册类型Number1固定为 1;充电桩类型,当前固定为电动自行车充电桩
9端口数量Number121~项目端口数;设备端口数量
10计费模型编号Number0固定为 0;私有协议注册报文计费模型 ID 固定为 0
11充满自停开关Number1取值 01;充满自停开关
12充满功率阈值Number10取值 >=0;充满自停功率阈值,单位 W
13充满自停延时Number10取值 >=0;充满自停延时,单位分钟;核心层换算为秒
14单端口过载阈值Number16800取值 >0;单端口过载阈值,单位 W
15整桩过载阈值Number16800取值 >0;私有协议当前整桩阈值使用同一过载值
16最长充电时间Number900取值 >0;最长充电时间,单位分钟
17心跳间隔Number4固定为 4;注册报文心跳间隔字段固定为 4 分钟

业务平台 → 设备:当前固件还解析业务平台下发的注册状态报文。

示例报文:#REGISTER,1,0,1,1,1234

序号字段名类型示例值说明
1指令类型String#REGISTER固定为 #REGISTER;业务注册状态指令
2指令序号Number1取值 0~999;平台回传序号
3设备序号Number0历史保留;当前固件不使用该字段做设备选择
4端口号Number1历史保留;当前固件不使用该字段控制端口
5登录状态Number1平台定义;固件读取该字段更新显示登录状态
6显示编号String1234平台定义;固件读取该字段更新显示验证码或提示编号

2.3 设备绑定 #A

业务平台 → 设备:设置设备绑定状态。

示例报文:#A,2,0,1

序号字段名类型示例值说明
1指令类型String#A固定为 #A;绑定状态指令
2指令序号Number2取值 0~999;平台生成的指令序号
3设备序号Number0历史保留;当前固件不使用该字段做设备选择
4状态Number1取值 010 解绑,设备结束所有端口充电;1 已绑定,设备更新显示登录状态

设备 → 业务平台:绑定响应。

示例报文:#A,0,0,NCS12

序号字段名类型示例值说明
1指令类型String#A固定为 #A;绑定响应指令
2指令序号Number0固定为 0;当前固件响应序号固定为 0
3执行结果Number0固定为 00 表示已处理
4项目名称StringNCS12项目名称,来自项目入口常量封装

3 状态上报

3.1 心跳 #0

设备 → 业务平台:上报信号、端口数量和各端口运行费用摘要。

示例报文:#0,3,25,55,2,1800-200-50-12-38-100,0-0-0-0-0-0

序号字段名类型示例值说明
1指令类型String#0固定为 #0;私有协议心跳指令
2指令序号Number3取值 0~999;设备生成的私有协议序号
3信号强度Number25取值 0~31;信号强度
4信号接收功率Number55设备模块返回值;信号接收功率
5端口数量Number21~项目端口数;插孔/端口数量
6端口摘要List1800-200-50-12-38-100数量等于端口数;每个端口一个摘要组,多个端口用逗号连接,组内用 - 分隔

端口摘要组格式:chargeValue-meteringPower-elecFee-servFee-balance-chargeEnergyWh

序号字段名类型示例值说明
1剩余充电值Number1800取值 >=0;剩余充电时长/电量
2当前功率Number200取值 >=0;当前功率
3电费Number50取值 >=0;电费,单位分
4服务费Number12取值 >=0;服务费,单位分
5余额Number38取值 >=0;余额,单位分
6充电电量Number100取值 >=0;已充电量,单位 Wh

业务平台心跳响应当前固件不解析。


3.2 掉电提醒 #DROP

设备 → 业务平台:设备检测掉电时上报订单摘要。

示例报文:#DROP,4,25,55,2,1800-200-50-12-38-100,0-0-0-0-0-0

序号字段名类型示例值说明
1指令类型String#DROP固定为 #DROP;掉电提醒指令
2指令序号Number4取值 0~999;设备生成的私有协议序号
3信号强度Number25取值 0~31;信号强度
4信号接收功率Number55设备模块返回值;信号接收功率
5端口数量Number21~项目端口数;插孔/端口数量
6端口摘要List1800-200-50-12-38-100数量等于端口数;字段含义与 #0 心跳摘要一致;当前掉电提醒不携带 orderId

3.3 设备自停 #5

设备 → 业务平台:设备达到停止条件后上报自停事件及费用明细。

示例报文:#5,5,0,1,2,1800,200,0,210,1,90,50,12,38,100,20250101120000123456

序号字段名类型示例值说明
1指令类型String#5固定为 #5;自停上报指令
2指令序号Number5取值 0~999;设备生成的私有协议序号
3设备序号Number0历史保留,固定 0;当前固件固定填 0
4端口号Number11~端口数量;自停端口号
5自停类型Number2核心自停类型;由核心充电引擎产生
6剩余充电值Number1800取值 >=0;停止前剩余充电值
7当前功率Number200取值 >=0;当前功率
8充电类型Number0取值 0~3;充电类型
9平均功率Number210取值 >=0;平均功率
10服务费类型Number1取值 12;服务费类型,取当前会话值
11已充时长Number90取值 >=0;充电时长,单位秒
12电费Number50取值 >=0;电费,单位分
13服务费Number12取值 >=0;服务费,单位分
14余额Number38取值 >=0;余额,单位分
15充电电量Number100取值 >=0;已充电量,单位 Wh
16订单编号String20250101120000123456空或 0 表示无订单;当前订单编号

业务平台 → 设备:自停确认。

示例报文:#5,5,0,1

序号字段名类型示例值说明
1指令类型String#5固定为 #5;自停确认指令
2指令序号Number5取值 0~999;等同设备上行自停序号
3执行结果Number0取值 0 表示成功;当 result = 0 时,设备确认平台已收到自停事件
4端口号Number11~端口数量;自停端口号

4 启停充电

4.1 开启或续费 #1

计时类请求

chargeType = 02 时,当前代码按计时类处理,value 单位为分钟,设备内部转换为秒。

示例报文:#1,6,0,1,0,30,1,10,10,16800,10,45,900,1,20250101120000123456

序号字段名类型示例值说明
1指令类型String#1固定为 #1;开启或续费指令
2指令序号Number6取值 0~999;平台生成的指令序号
3设备序号Number0历史保留;当前固件不使用该字段做设备选择
4端口号Number11~端口数量;目标端口号
5充电类型Number0取值 02;计时类按分钟开启;2 当前也按计时类处理
6充电值Number30取值 >0;计时类为分钟,设备内部转换为秒
7充满自停开关Number1取值 01;充满自停开关
8充满功率阈值Number10取值 >=0;充满功率阈值,单位 W
9充满自停延时Number10取值 >=0;充满延时,单位分钟,核心层转换为秒
10单端口过载阈值Number16800取值 >0;过载功率阈值,单位 W
11空载功率阈值Number10取值 >=0;空载功率阈值
12空载延时Number45取值 >=0;空载延时,单位秒
13最长充电时间Number900取值 >0;最长充电时间,单位分钟,核心层转换为秒
14空载自停开关Number1取值 01;空载自停开关
15订单编号String20250101120000123456空或 0 表示不校验;V2.0.7 扩展字段;计时类位于第 15 字段

金额/计量类请求

chargeType = 13 时,当前代码按金额/费率字段处理;chargeType = 3 会转换为内部计量类处理。

示例报文:#1,7,0,1,1,1000,1,10,10,16800,10,45,900,1,100,1,2400,478,1,1,2200,0,20250101120000123456

序号字段名类型示例值说明
1指令类型String#1固定为 #1;开启或续费指令
2指令序号Number7取值 0~999;平台生成的指令序号
3设备序号Number0历史保留;当前固件不使用该字段做设备选择
4端口号Number11~端口数量;目标端口号
5充电类型Number1取值 13;金额/计量类;3 转为内部计量类
6充电值Number1000取值 >0;目标电量值或等效充电值
7充满自停开关Number1取值 01;充满自停开关
8充满功率阈值Number10取值 >=0;充满功率阈值,单位 W
9充满自停延时Number10取值 >=0;充满延时,单位分钟
10单端口过载阈值Number16800取值 >0;过载功率阈值,单位 W
11空载功率阈值Number10取值 >=0;空载功率阈值
12空载延时Number45取值 >=0;空载延时,单位秒
13最长充电时间Number900取值 >0;最长充电时间,单位分钟
14空载自停开关Number1取值 01;空载自停开关
15预付金额Number100取值 >=0;预付金额,单位分;计量类必填
16电费分组数Number1取值 >=1;电费分组数量
17电费时间阈值List2400数字列表;电费时间阈值列表,代码从字段中提取数字列表
18电费费率List478数字列表,每项 >0;电费费率列表,单位厘
19服务费类型Number1取值 121 按时间服务费,2 按电量服务费
20服务费分组数Number1取值 >=1;服务费分组数量
21服务费功率阈值List2200数字列表;服务费功率阈值列表
22服务费费率List0数字列表,每项 >=0;服务费费率列表,单位厘
23订单编号String20250101120000123456空或 0 表示不校验;V2.0.7 扩展字段;金额/计量类位于第 23 字段

设备 → 业务平台:开启或续费响应。

示例报文:#1,7,0,1,1000,200,1,20250101120000123456

序号字段名类型示例值说明
1指令类型String#1固定为 #1;开启或续费响应指令
2指令序号Number7取值 0~999;等同平台下发序号
3执行结果Number0取值 010 成功,1 端口忙、参数不一致或启动失败
4端口号Number11~端口数量;端口号
5剩余充电值Number1000取值 >=0;当前剩余充电值
6当前功率Number200取值 >=0;当前功率
7充电类型Number1取值 0~3;当前充电类型
8订单编号String20250101120000123456空或 0 表示无订单;当前端口订单编号

同一端口相同 idx + 完整报文签名 的重复请求会被忽略,不再返回响应。运行中的续费必须保持 chargeType、orderId、会话自停配置、费率配置和服务费类型一致,否则固件拒绝本次请求。

#1 中的金额/计量类费率字段是会话费率,只影响当前订单和该订单的续费一致性校验,不写入设备级费率配置。设备级费率应使用 #RATE_SET 设置,只影响后续新订单;已经运行中的订单继续使用启动时锁定的会话费率快照。


4.2 终止充电 #2

业务平台 → 设备:平台请求终止指定端口充电。

示例报文:#2,8,0,1,20250101120000123456

序号字段名类型示例值说明
1指令类型String#2固定为 #2;终止充电指令
2指令序号Number8取值 0~999;平台生成的指令序号
3设备序号Number0历史保留;当前固件不使用该字段做设备选择
4端口号Number11~端口数量;目标端口号
5订单编号String20250101120000123456空或 0 表示不校验;携带非 0 值时,必须与当前端口订单一致;可选字段

设备 → 业务平台:返回终止结果和费用明细;成功响应组包后设备结束充电。

示例报文:#2,8,0,1,1000,1,200,1,90,50,12,38,100,20250101120000123456

序号字段名类型示例值说明
1指令类型String#2固定为 #2;终止充电响应指令
2指令序号Number8取值 0~999;等同平台下发序号
3执行结果Number0取值 020 成功,2 orderId 与当前端口订单不一致
4端口号Number11~端口数量;端口号
5剩余充电值Number1000取值 >=0;当前剩余充电值
6充电类型Number1取值 0~3;当前充电类型
7当前功率Number200取值 >=0;当前功率
8服务费类型Number1取值 12;服务费类型
9已充时长Number90取值 >=0;充电时长,单位秒
10电费Number50取值 >=0;电费,单位分
11服务费Number12取值 >=0;服务费,单位分
12余额Number38取值 >=0;余额,单位分
13充电电量Number100取值 >=0;已充电量,单位 Wh
14订单编号String20250101120000123456空或 0 表示无订单;当前端口订单编号

端口号无效时当前固件不返回响应。


5 查询指令

5.1 查询端口状态 #3

业务平台 → 设备:查询单个端口状态。

示例报文:#3,9,0,1

序号字段名类型示例值说明
1指令类型String#3固定为 #3;查询端口状态指令
2指令序号Number9取值 0~999;平台生成的指令序号
3设备序号Number0历史保留;当前固件不使用该字段做设备选择
4端口号Number11~端口数量;目标端口号

设备 → 业务平台:返回端口状态、费用、电量和订单编号。

示例报文:#3,9,0,1,1,1000,200,90,210,1,210,50,12,38,100,20250101120000123456

序号字段名类型示例值说明
1指令类型String#3固定为 #3;查询端口状态响应指令
2指令序号Number9取值 0~999;等同平台下发序号
3执行结果Number0固定为 00 表示查询成功
4端口号Number11~端口数量;端口号
5充电类型Number1取值 0~3;当前充电类型
6剩余充电值Number1000取值 >=0;当前剩余充电值
7当前功率Number200取值 >=0;当前功率
8已充时长Number90取值 >=0;已充时长,单位秒
9平均功率Number210取值 >=0;平均功率
10服务费类型Number1取值 12;服务费类型
11计费功率Number210取值 >=0;计费功率,当前等同平均功率
12电费Number50取值 >=0;电费,单位分
13服务费Number12取值 >=0;服务费,单位分
14余额Number38取值 >=0;余额,单位分
15充电电量Number100取值 >=0;已充电量,单位 Wh
16订单编号String20250101120000123456空或 0 表示无订单;当前端口订单编号

5.2 查询设备状态 #4

业务平台 → 设备:查询所有端口状态。

示例报文:#4,10

序号字段名类型示例值说明
1指令类型String#4固定为 #4;查询设备状态指令
2指令序号Number10取值 0~999;平台生成的指令序号

设备 → 业务平台:返回所有端口费用摘要。

示例报文:#4,10,0,2,1000-200-50-12-38-100-20250101120000123456,0-0-0-0-0-0-0

序号字段名类型示例值说明
1指令类型String#4固定为 #4;查询设备状态响应指令
2指令序号Number10取值 0~999;等同平台下发序号
3执行结果Number0固定为 00 表示查询成功
4端口数量Number21~项目端口数;端口数量
5端口摘要List1000-200-50-12-38-100-20250101120000123456数量等于端口数;每端口一个摘要组,多个端口用逗号连接,组内用 - 分隔

端口摘要组格式:chargeValue-meteringPower-elecFee-servFee-balance-chargeEnergyWh-orderId

序号字段名类型示例值说明
1剩余充电值Number1000取值 >=0;当前剩余充电值
2当前功率Number200取值 >=0;当前功率
3电费Number50取值 >=0;电费,单位分
4服务费Number12取值 >=0;服务费,单位分
5余额Number38取值 >=0;余额,单位分
6充电电量Number100取值 >=0;已充电量,单位 Wh
7订单编号String20250101120000123456空或 0 表示无订单;当前端口订单编号

5.3 废弃指令 #7

#7 功能与端口状态查询存在重复,已从正式一对一指令映射中移出,进入废弃/迁移期兼容状态。迁移期内若平台仍发送 #7,设备侧可按兼容策略保留解析,但新平台不得继续依赖该指令建立正式能力映射。

历史 #7 返回内容与 #3 的端口状态响应基本一致,但比 #3fullTimeridleTimeroverTimer 三个设备运行计时器字段。端口状态查询应迁移到 #3;如果后端仍依赖上述三个计时器,应迁移到 #PORT_RUNTIME_QUERY 或具备等价语义的运行时查询指令,不应继续扩展 #7


6 刷卡与维护

6.1 刷卡请求 #B

设备 → 业务平台:刷卡后请求平台校验。

示例报文:#B,12,0,1,AABB1122

序号字段名类型示例值说明
1指令类型String#B固定为 #B;刷卡请求指令
2指令序号Number12取值 0~999;设备生成的私有协议序号
3设备序号Number0固定为 0;当前固件固定填 0
4端口号Number11~端口数量;刷卡端口
5卡 UIDStringAABB1122十六进制字符串;卡 UID

业务平台 → 设备:刷卡校验结果。

示例报文:#B,12,0,1,1

序号字段名类型示例值说明
1指令类型String#B固定为 #B;刷卡响应指令
2指令序号Number12取值 0~999;等同设备刷卡请求序号
3返回数据Number/String0平台定义;历史返回数据字段;当前固件不解析业务含义
4校验结果Number1取值 0~2;当前固件读取该字段:0 卡片无效,1 校验成功,2 余额不足
5端口号Number11~端口数量;当前固件读取该字段作为端口号

6.2 远程重启 #REBOOT

业务平台 → 设备:远程重启设备。

示例报文:#REBOOT,13

序号字段名类型示例值说明
1指令类型String#REBOOT固定为 #REBOOT;远程重启指令
2指令序号Number13取值 0~999;平台生成的指令序号;当前响应不回显该值

设备 → 业务平台:远程重启响应。

示例报文:#REBOOT,0,0

序号字段名类型示例值说明
1指令类型String#REBOOT固定为 #REBOOT;当前固件远程重启响应指令
2指令序号Number0固定为 0;当前固件固定返回 0
3执行结果Number0固定为 00 表示已处理,设备随后立即调用重启流程

6.3 远程升级 #UPGRADE

业务平台 → 设备:远程升级设备。

示例报文:#UPGRADE,14

序号字段名类型示例值说明
1指令类型String#UPGRADE固定为 #UPGRADE;远程升级指令
2指令序号Number14取值 0~999;平台生成的指令序号

设备 → 业务平台:远程升级响应。

示例报文:#UPGRADE,14,0

序号字段名类型示例值说明
1指令类型String#UPGRADE固定为 #UPGRADE;远程升级响应指令
2指令序号Number14取值 0~999;等同平台下发序号
3执行结果Number0固定为 00 表示已处理,设备返回后进入升级流程

7 新增语义化补齐指令

本节只定义私有协议新增指令。除 #7 进入废弃/迁移期兼容外,私有协议现有旧指令不在本节重定义,也不得因一对一映射而改名、删除或调整字段。

新增指令采用 #* 命名;落地时应在私有适配器中增加新的处理器,并复用现有底层业务逻辑。

7.1 查询设备级费率 #RATE-QUERY

业务平台 → 设备:查询设备当前保存的设备级费率配置。

示例报文:#RATE-QUERY,15

序号字段名类型示例值说明
1指令类型String#RATE-QUERY固定为 #RATE-QUERY;查询设备级费率
2指令序号Number15取值 0~999;平台生成的指令序号

设备 → 业务平台:返回设备级费率配置和配置摘要。

示例报文:#RATE-QUERY,15,0,101,A94F21C8,3,1200|1830|2359,E,850|850|850,E,150|150|150

序号字段名类型示例值说明
1指令类型String#RATE-QUERY固定为 #RATE-QUERY;查询设备级费率响应
2指令序号Number15取值 0~999;等同平台下发序号
3执行结果Number0返回码,见下表
4费率模型编号Number101rateModelId,取值 >=0;设备当前费率模型编号
5费率摘要StringA94F21C8rateHash 或等价配置摘要;由完整费率配置按平台约定算法生成
6计费分组数Number3取值 1~10;计费分组数量
7时间阈值列表List1200|1830|2359HHMM,数量等于分组数;使用 | 分隔
8电费模式StringE取值 ETE 按电量,T 按时间
9电费费率列表List850|850|850数量等于分组数,每项 >0;单位厘
10服务费模式StringE取值 ETE 按电量,T 按时间
11服务费费率列表List150|150|150数量等于分组数,每项 >=0;单位厘
result说明
0成功
1设备尚无有效设备级费率配置
2内部读取失败或配置校验失败

异常处理:请求字段缺失或指令序号非法时,设备返回 result=2;当前设备级费率缺失时返回 result=1,不得用静默默认费率拼装成功响应。

业务影响:该指令只读取设备级费率,不影响正在运行的订单。运行中订单仍使用启动时锁定的会话费率快照。


7.2 设置设备级费率 #RATE_SET

业务平台 → 设备:设置设备级费率配置。该配置只影响后续新订单,不影响当前运行订单。

示例报文:#RATE_SET,16,101,A94F21C8,3,1200|1830|2359,E,850|850|850,E,150|150|150

序号字段名类型示例值说明
1指令类型String#RATE_SET固定为 #RATE_SET;设置设备级费率
2指令序号Number16取值 0~999;平台生成的指令序号
3费率模型编号Number101rateModelId,取值 >=0;平台下发的费率模型编号
4费率摘要StringA94F21C8rateHash 或等价配置摘要;设备保存后应回传同一摘要
5计费分组数Number3取值 1~10;计费分组数量
6时间阈值列表List1200|1830|2359HHMM,数量等于分组数;最后一项应覆盖全天结束点
7电费模式StringE取值 ET;电费计费模式
8电费费率列表List850|850|850数量等于分组数,每项 >0;单位厘
9服务费模式StringE取值 ET;服务费计费模式
10服务费费率列表List150|150|150数量等于分组数,每项 >=0;单位厘

设备 → 业务平台:返回费率设置结果和实际保存摘要。

示例报文:#RATE_SET,16,0,101,A94F21C8

序号字段名类型示例值说明
1指令类型String#RATE_SET固定为 #RATE_SET;设置设备级费率响应
2指令序号Number16取值 0~999;等同平台下发序号
3执行结果Number0返回码,见下表
4费率模型编号Number101实际保存的 rateModelId;失败时回传请求值或 0
5费率摘要StringA94F21C8实际保存的 rateHash 或等价配置摘要;失败时可为空
result说明
0成功
1参数无效
2分组数无效
3摘要校验失败或保存后摘要不一致
4当前存在运行订单,配置已拒绝或需平台稍后重试

异常处理:设备必须校验分组数、时间阈值、计费模式、费率列表长度和费率取值;rateHash 与设备计算摘要不一致时返回 3,不得保存半成品配置。若实现策略要求无运行订单才能修改设备级费率,应返回 4

业务影响:成功后仅影响后续新订单。#1 金额/计量类请求携带的会话费率仍只作用于当前订单,不回写、不覆盖 #RATE_SET 保存的设备级费率。


7.3 查询工作参数 #PARAM_QUERY

业务平台 → 设备:查询设备级工作参数。

示例报文:#PARAM_QUERY,17

序号字段名类型示例值说明
1指令类型String#PARAM_QUERY固定为 #PARAM_QUERY;查询设备级工作参数
2指令序号Number17取值 0~999;平台生成的指令序号

设备 → 业务平台:返回设备级工作参数。

示例报文:#PARAM_QUERY,17,0,1,10,60,15000,15000,900,4

序号字段名类型示例值说明
1指令类型String#PARAM_QUERY固定为 #PARAM_QUERY;查询工作参数响应
2指令序号Number17取值 0~999;等同平台下发序号
3执行结果Number0返回码,见下表
4充满自停开关Number1取值 01;充满自停开关
5充满功率阈值Number10取值 >=0;单位 W
6充满自停延时Number60取值 >=0;单位秒
7单端口过载阈值Number15000取值 >0;单位 W
8整桩过载阈值Number15000取值 >0;单位 W
9最长充电时间Number900取值 >0;单位分钟
10心跳间隔Number4固定为 4;业务心跳周期字段
result说明
0成功
1参数未初始化或读取失败

异常处理:读取到的工作参数不完整或越界时返回 1,不得用入口常量之外的第二份默认值拼装响应。

业务影响:该指令只查询设备级参数,不改变运行中订单的会话自停配置。需要查询 #7 历史额外计时器时,应使用 #PORT_RUNTIME_QUERY 或等价语义指令。


7.4 设置工作参数 #PARAM_SET

业务平台 → 设备:设置设备级工作参数。旧 #1 中的会话自停字段保持原语义。

示例报文:#PARAM_SET,18,1,10,60,15000,15000,900,4

序号字段名类型示例值说明
1指令类型String#PARAM_SET固定为 #PARAM_SET;设置设备级工作参数
2指令序号Number18取值 0~999;平台生成的指令序号
3充满自停开关Number1取值 01;充满自停开关
4充满功率阈值Number10取值 >=0;单位 W
5充满自停延时Number60取值 >=0;单位秒
6单端口过载阈值Number15000取值 >0;单位 W
7整桩过载阈值Number15000取值 >0;单位 W
8最长充电时间Number900取值 >0;单位分钟
9心跳间隔Number4固定为 4;可选字段,如携带必须为 4

设备 → 业务平台:返回工作参数设置结果。

示例报文:#PARAM_SET,18,0

序号字段名类型示例值说明
1指令类型String#PARAM_SET固定为 #PARAM_SET;设置工作参数响应
2指令序号Number18取值 0~999;等同平台下发序号
3执行结果Number0返回码,见下表
result说明
0成功
1参数无效
2保存失败
3当前运行状态不允许修改

异常处理:设备必须校验所有字段完整性、单位和取值范围;心跳间隔携带非 4 时返回 1。保存失败不得更新部分字段。

业务影响:成功后影响后续新订单和设备级默认行为。已经运行中的订单继续使用启动时确定的会话参数,旧 #1 的会话自停字段不因本指令被改名或改字段顺序。


8 未实现或仅保留常量的指令

当前代码仅保留以下指令常量,未实现业务解析流程:

指令状态说明
#6保留当前未实现业务解析流程
#7废弃/迁移期兼容已从正式一对一映射中移出;端口状态查询迁移到 #3,额外运行计时器迁移到 #PORT_RUNTIME_QUERY 或等价语义指令
#8保留当前未实现业务解析流程
#9保留当前未实现业务解析流程
#C保留当前未实现业务解析流程
#TIME保留当前未实现业务解析流程
#REGISTER-RETURN忽略私有协议业务适配器收到后直接忽略

9 兼容说明

  • 私有协议 V2.0.7 已将 orderId 扩展合入主协议文本。
  • #1 的 orderId 字段位置以充电类型决定:计时类在第 15 字段,金额/计量类在第 23 字段。
  • #2 第 5 字段为可选 orderId,不再作为充电时长/功率同步值使用。
  • #3 当前响应第 11 字段为 billingPower,不是历史文档中重复出现的 chargeTime
  • #7 已从正式一对一映射中移出,进入废弃/迁移期兼容;端口查询统一使用 #3,若依赖 fullTimer/idleTimer/overTimer,应迁移到 #PORT_RUNTIME_QUERY 或等价语义指令。
  • #B 返回字段以当前固件解析位置为准:第 4 字段为错误码,第 5 字段为端口号。
  • 新增语义化指令只补充旧指令缺失的能力,不替代、不修改任何现有旧指令。