Skip to content

4G充电桩开放协议 V0.9

1 协议基础

1.1 通信方式

充电桩和充电运营管理系统之间采用MQTT-3.1.1。MQTT服务器连接参数格式如下:

连接参数示例数据说明
MQTT服务器域名mqtt.xxxxx.com可自定义
MQTT服务器端口1883可自定义
MQTT服务器用户名Username可自定义
MQTT服务器密码Password可自定义
MQTT服务器上行Topicgm/open/up/<IMEI>可自定义,充电桩上报数据Topic
MQTT服务器下行Topicgm/open/dn/<IMEI>可自定义,平台下发数据Topic
Client IDIMEI

1.2 数据结构

起始标志指令类型指令序号消息体
示例数据:#<指令类型>,<指令序号>,<消息体>
  1. 指令序号默认值为0,顺序增加,数据溢出(指令序号>0xFFFF)后归0。
  2. 数据采用AES128-CBC-PKCS7加密,加密内容为数据全文,加密参数联系厂商获取。

1.3 数据类型

类型参数名说明
数值型Number可线性调节类型的数据
字符型String以字符形式传输的数据
列表型List使用|分隔的数据组

2 充电桩业务通信指令

2.1 登录验证

充电桩→平台:充电桩上电后上报参数和出厂设置

示例报文:#LOGIN,1,123456789012345,864710071234567,460047661234567,898608461234567890,0.0.5,1,1,0,1,10,60,15000,15000,720

序号参数名称数据类型示例数据备注
1起始标识+指令类型String#LOGIN
2指令序号数值型10-65535,持久化存储
3充电桩注册码编号字符型12345678901234515字节出厂二维码编号
4IMEIString86471007123456715字节设备标识
5ISMIString46004766123456715字节
6ICCIDString89860846123456789020字节
7充电桩固件版本号String0.0.5按照"X.X.X"定义,X表示1位数字
8充电桩类型Number11=电动自行车充电桩
9充电桩端口数量Number1支持1~12个端口
10*计费模型编号String0预设值0,计费模型唯一标识
11充电自停开关Number1预设值1=开启;0=关闭
12充电自停触发功率Number10预设值10W,功率低于10W触发自停计时
13充电自停时延Number60触发并持续60S后充电桩停止充电
14端口最大功率Number15000预设值15KW,端口超载保护功率
15充电桩最大功率Number15000预设值15KW,充电桩超载保护功率
16最大单次充电时长Number720预设值720分钟

平台→充电桩:平台接收并创建充电桩档案

示例报文:#LOGIN,1,1,1735704000

序号参数名称数据类型示例数据备注
1起始标识+指令类型String#LOGIN
2指令序号数值型10-65535,持久化存储
3执行结果Number10=验证失败;1=验证成功
4时间戳Number1735704000UTC时间戳

2.2 心跳

充电桩→平台:上报充电桩运行数据,校验联网状态,充电桩多次未收到响应会尝试重连MQTT服务器。

示例报文:#HEARTBEAT,1,12345678,30,0,2,1|1234|5|100,2|0|0|0

序号参数名称数据类型示例数据备注
1起始标识+指令类型String#HEARTBEAT
2指令序号数值型10-65535,持久化存储
3充电桩注册码编号String123456789012345
4信号强度Number300~31,数值越大信号越好
5计费模型编号String0充电桩当前计费模型编号
6充电端口数量Number1支持最多12个端口
7*端口1数据组List1|1|1234|64端口号|工作状态|有功功率|剩余金额
............端口号|工作状态|有功功率|剩余金额

*端口数据为字符'|'分隔的字符串,格式如下:

序号参数名称数据类型示例数据备注
1端口号Number11~12
2工作状态Number10=空闲;1=占用(充电中)
3有功功率Number1234123.4W
4剩余金额Number64剩余金额0.64元

平台→充电桩:平台确认心跳数据,更新在线状态。

示例报文:#HEARTBEAT,1

序号参数名称数据类型示例数据备注
1起始标识+指令类型String#HEARTBEAT
2指令序号数值型10-65535,持久化存储

2.3 查询充电桩

平台→充电桩:查询充电桩端口运行状态与计费模板

示例报文:#DEVICE-QUERY,1

序号参数名称数据类型示例数据备注
1起始标识+指令类型String#DEVICE-QUERY
2指令序号数值型10-65535,持久化存储

*建议每次扫码开启充电之前进行状态查询,计费模型不一致时需要同步计费模型。

充电桩→平台:返回校验结果,一致则可直接开启充电,否则需同步计费模板。

示例报文:#DEVICE-QUERY,1,101,1,0

序号参数名称数据类型示例数据备注
1起始标识+指令类型String#DEVICE-QUERY
2指令序号数值型10-65535,持久化存储
3计费模型编号String101计费模型唯一标识
4充电端口数量Number1支持1~12个端口
5端口1工作状态Number00=空闲;1=充电中;2=故障

2.4 开启充电

平台→充电桩:平台下发开启充电指令,启动指定端口的充电订单。

示例报文:#CHARGE-START,1,1,20250101120000123456,100

序号参数名称数据类型示例数据备注
1起始标识+指令类型String#CHARGE-START
2指令序号数值型10-65535,持久化存储
3端口号Number11~12
4订单编号String20250101120000123456长度<=30字节,每笔订单编号不可重复
5充电金额Number1001元

充电桩→平台:返回开启充电结果及剩余订单剩余金额。

示例报文:#CHARGE-START,1,1,20250101120000123456,1

序号参数名称数据类型示例数据备注
1起始标识+指令类型String#CHARGE-START
2指令序号数值型10-65535,持久化存储
3端口号Number11~12
4订单编号String20250101120000123456长度<=30字节,每笔订单编号不可重复
5执行结果Number11=开启充电成功 2=开启充电失败,充电金额无效 3=开启充电失败,充电编号重复 4=开启充电失败,充电编号无效

2.5 终止充电

平台→充电桩:平台下发终止充电指令,结束指定端口的充电订单。

示例报文:#CHARGE-STOP,1,1,20250101120000123456

序号参数名称数据类型示例数据备注
1起始标识+指令类型String#CHARGE-STOP
2指令序号数值型10-65535,持久化存储
3端口号Number11~12
4订单编号String20250101120000123456订单开启时传入的编号

充电桩→平台:返回终止充电结果及费用明细。

示例报文:#CHARGE-STOP,1,1,1,20250101120000123456,30,150,100,24,12,64

序号参数名称数据类型示例数据备注
1起始标识+指令类型String#CHARGE-STOP
2指令序号数值型10-65535,持久化存储
3执行结果Number11=结束充电成功 4=结束充电失败,充电编号无效 5=结束充电失败,充电编号未找到
4端口号Number11~12
5订单编号String20250101120000123456
6充电时长Number30充电时长30分钟
7充电量Number150充入电量0.15度
8订单预付金额Number100用户支付1元
9电费Number24电费0.24元
10服务费Number12服务费0.12元
11订单剩余金额Number64剩余金额0.64元

2.6 充电自停

充电桩→平台:充电桩上报自停事件及费用明细。

示例报文:#AUTO-STOP,1,2,1,20250101120000123456,30,150,100,24,12,64

序号参数名称数据类型示例数据备注
1起始标识+指令类型String#AUTO-STOP
2指令序号数值型10-65535,持久化存储
3自停类型Number21=充满自停 2=充电完成(充电金额用完) 3=超载保护
4端口号Number11~12
5订单编号String20250101120000123456订单开启时传入的编号
6充电时长Number30充电时长30分钟
7充电量Number150充入电量0.15度
8订单预付金额Number100用户支付1元
9电费Number24电费0.24元
10服务费Number12服务费0.12元
11订单剩余金额Number64剩余金额0.64元

平台→充电桩:平台确认自停事件并结束订单

示例报文:#AUTO-STOP,1,1,20250101120000123456,1

序号参数名称数据类型示例数据备注
1起始标识+指令类型String#AUTO-STOP
2指令序号数值型10-65535,持久化存储
3端口号Number11~12
4订单编号String20250101120000123456长度<=30字节,每笔订单编号不可重复
5执行结果Number11=充电自停成功

2.7 查询充电端口

平台→充电桩:查询充电端口工作状态。

示例报文:#PORT-QUERY,1,1

序号参数名称数据类型示例数据备注
1起始标识+指令类型String#PORT-QUERY
2指令序号数值型10-65535,持久化存储
3端口号Number11~12

充电桩→平台:返回充电端口工作状态。

示例报文:#PORT-QUERY,1,1,0,1234,5,100

序号参数名称数据类型示例数据备注
1起始标识+指令类型String#PORT-QUERY
2指令序号数值型10-65535,持久化存储
3端口号Number11~12
4工作状态Number00=空闲;1=充电中;2=故障
5有功功率Number1234123.4W
6充电时长Number5充电时长5分钟
7剩余金额Number100剩余金额1元

2.8 查询计费模型

平台→充电桩:查询充电桩当前计费模型。

示例报文:#BILLING-QUERY,1

序号参数名称数据类型示例数据备注
1起始标识+指令类型String#BILLING-QUERY
2指令序号数值型10-65535,持久化存储

充电桩→平台:返回当前计费模型数据。

示例报文:#BILLING-QUERY,1,101,1,100,4,800-1200-1800-2400,500-587-687-287,1,4,300-500-800-2200,120-150-220-270

序号参数名称数据类型示例数据备注
1起始标识+指令类型String#BILLING-QUERY
2指令序号数值型10-65535,持久化存储
3计费模型编号String101计费模型唯一标识
4充电类型Number11=按电量收费
5支付金额Number100100=1元
6电费数量Number4
7电费分段List800-1200-1800-2400按时间分段计费:默认00:00~24:00
8电费费率List500-587-687-2870:00~8:00电费0.500元/度,8:00~12:00电费0.587元/度,12:00~18:00电费0.687元/度,18:00~24:00电费0.287元/度
9服务费单位Number11=元/小时 2=元/度
10服务费数量Number4
11服务费分段List300-500-800-2200按功率分段计费:默认2200W
12服务费费率List120-150-220-2700~300W服务费0.12元/小时(或元/度)

2.9 设置计费模型

平台→充电桩:平台下发计费模型配置指令。

示例报文:#BILLING-SET,1,101,1,100,4,800-1200-1800-2400,500-587-687-287,1,4,300-500-800-2200,120-150-220-270

序号参数名称数据类型示例数据备注
1起始标识+指令类型String#BILLING-SET
2指令序号数值型10-65535,持久化存储
3计费模型编号String101计费模型唯一标识
4充电类型Number11=按电量收费
5支付金额Number100100=1元
6电费数量Number4
7电费分段List800-1200-1800-2400按时间分段计费:默认00:00~24:00
8电费费率List500-587-687-287
9服务费单位Number11=元/小时 2=元/度
10服务费数量Number4
11服务费分段List300-500-800-2200按功率分段计费:默认2200W
12服务费费率List120-150-220-270

充电桩→平台:返回计费模型配置执行结果。

示例报文:#BILLING-SET,1,1

序号参数名称数据类型示例数据备注
1起始标识+指令类型String#BILLING-SET
2指令序号数值型10-65535,持久化存储
3执行结果Number11=计费模型设置成功 2=计费模型设置失败

2.10 查询工作参数

平台→充电桩:查询充电桩运行参数。

示例报文:#PARAM-QUERY,1

序号参数名称数据类型示例数据备注
1起始标识+指令类型String#PARAM-QUERY
2指令序号数值型10-65535,持久化存储

充电桩→平台:返回执行结果。

示例报文:#PARAM-QUERY,1,1,10,60,9000,9000,720

序号参数名称数据类型示例数据备注
1起始标识+指令类型String#PARAM-QUERY
2指令序号数值型10-65535,持久化存储
3充电自停开关Number1默认值1=开启;0=关闭
4充电自停触发功率Number10默认值10W,功率低于10W触发自停计时
5充电自停触发时延Number60触发并持续60S后充电桩停止充电
6端口最大功率Number9000预设值9000W,端口超载保护功率
7充电桩最大功率Number9000预设值9000W,充电桩超载保护功率
8最大单次充电时长Number720默认值720分钟
9心跳间隔Number1010分钟

2.11 设置工作参数

平台→充电桩:在线修改充电桩运行参数,无特定需求可不做修改。

示例报文:#PARAM-SET,1,0,10,60,8000,8000,900

序号参数名称数据类型示例数据备注
1起始标识+指令类型String#PARAM-SET
2指令序号数值型10-65535,持久化存储
3充电自停开关Number00=关闭,充电端口无功率时不再自停
4充电自停触发功率Number10功率低于10W触发充电自停计时
5充电自停触发时延Number60自停计时60S后充电桩停止充电
6端口最大功率Number80008KW,端口超载保护功率
7充电桩最大功率Number80008KW,充电桩超载保护功率
8最大单次充电时长Number900充电时长900分钟后充电自停
9心跳间隔Number1010分钟

充电桩→平台:返回参数配置执行结果。

示例报文:#PARAM-SET,1,1

序号参数名称数据类型示例数据备注
1起始标识+指令类型String#PARAM-SET
2指令序号数值型10-65535,持久化存储
3执行结果Number11=参数设置成功 2=参数设置失败,参数异常

2.12 远程重启

平台→充电桩:充电桩接收到指令3秒以后重新启动。

示例报文:#REBOOT,1

序号参数名称数据类型示例数据备注
1起始标识+指令类型String#REBOOT
2指令序号数值型10-65535,持久化存储

充电桩→平台:返回执行结果。

示例报文:#REBOOT,1,1

序号参数名称数据类型示例数据备注
1起始标识+指令类型String#REBOOT
2指令序号数值型10-65535,持久化存储
3执行结果Number10=重启失败;1=重启成功