汽车充电桩通讯文档-设备
目录
总则
协议概述
本通讯协议定义汽车充电桩通讯模块与汽车充电桩的通讯流程、格式和内容。
通讯接口
该通讯文档采用ASCII形式通讯,服务端下发两条指令间隔不小于100ms。
协议结构
命令结构
定义:服务器发送,通讯模块接收的数据报文。
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)
业务接口
查询设备状态
描述:服务器读取设备每个端口当前的状态。
数据方向:服务端->设备
服务端命令:QCX
会话ID:服务端下发
服务器请求命令帧:
字段 | 字节说明 | 意义 | 备注 |
---|---|---|---|
METHOD | 1字节 | 固定值"1" |
设备响应命令帧:
字段 | 字节说明 | 意义 | 备注 |
---|---|---|---|
PORT_NUM | 1-2,#分割 | 端口数量 | |
PORT1_STATUS | 数字1-8,#分割 | 端口1状态 | 1-未使用;2-使用中;3-枪被禁用;4-枪故障;5-无计费模型,6-枪未连接,7-对时尚未完成,8-急停被按下 |
PORT1_STATUS | 数字1-8,该参数可能省略 | 端口2状态 | 1-未使用;2-使用中;3-枪被禁用;4-枪故障;5-无计费模型,6-枪未连接,7-对时尚未完成,8-急停被按下 |
启动充电
描述:当用户付款以后,通知主设付款的信息。
数据方向:服务端->设备
服务端命令:QRN
会话ID:服务端下发
服务器请求命令帧:
字段 | 字节说明 | 意义 | 备注 |
---|---|---|---|
PORT | 1字节 | 用户选择的充电枪号 | |
BILL_NO | ASCII,23字节 | 订单号 | ASCII形式 |
FEE_MODEL | 1字节 | 充电计费方式 | 1-时间计费,2-电量计费,3-金额计费,4-刷卡充电 |
POWER_TIME_LIMIT | 数字8字节,不足在前面补0 | 电量或时间限制,0表示无限制 | 0.01kWh或秒 |
AMT_LIMIT | 数字8字节,不足在前面补0 | 用户账户剩余金额或电费限制 | 0.01元 |
UNIX_TIME | 数字10字节,不足在前面补0 | UNIX时间戳 | 秒为单位 |
设备响应命令帧:
字段 | 字节说明 | 意义 | 备注 |
---|---|---|---|
BILL_NO | ASCII,23位,#分割 | 订单号 | ASCII形式 |
RESULT | 数字1-7 | 结果 | 1-成功,2-充电桩故障,3-端口已经被使用,4-计费模型不存在,5-充电桩不支持,6-时间尚未校准,7-急停被按下 |
充电结束
描述:当某个枪的电动车已经充电结束,调用了该接口,该次交易即已经结束,用户再插上线路,肯定是不能再充电的。
数据方向:设备->服务端
服务端命令:QWC
会话ID:A10001
服务器请求命令帧:
字段 | 字节说明 | 意义 | 备注 |
---|---|---|---|
PORT | 数字1-2,#分割 | 枪号 | |
BILL_NO | ASCII,23位,#分割 | 订单号 | ASCII形式 |
RESULT | 数字0-9,#分割 | 结束原因 | 1-电量或时间用完,2-余额不足,3-远程停止充电,4-长时间未连接充电枪,5-车辆引导信息要求停止(充满或车载BMS故障),6-用户手动停止,7-急停开关被按下停止,8-车辆引导信号异常停止(汽车车载充电机或BMSBMS状态异常或充电插头被拔出松动),9-刷卡停止,10-超过最大单次充电电量,11-超过单次最大充电时间,12-车载充电机不匹配(模式、性能、功率等)停止 |
JIAN_PRICE | 数字0-9999,#分割 | 尖单价 | 0.01元/KWh为单位 |
JIAN_POWER | 数字0-99999999,#分割 | 尖电量 | 0.001KWh |
JIAN_AMT | 数字0-99999999,#分割 | 尖金额 | 0.001元 |
FENG_PRICE | 数字0-9999,#分割 | 峰单价 | 0.01元/KWh为单位 |
FENG_POWER | 数字0-99999999,#分割 | 峰电量 | 0.001KWh |
FENG_AMT | 数字0-99999999,#分割 | 峰金额 | 0.001元 |
PING_PRICE | 数字0-9999,#分割 | 平单价 | 0.01元/KWh为单位 |
PING_POWER | 数字0-99999999,#分割 | 平电量 | 0.001KWh |
PING_AMT | 数字0-99999999,#分割 | 平金额 | 0.001元 |
PING_PRICE | 数字0-9999,#分割 | 谷单价 | 0.01元/KWh为单位 |
PING_POWER | 数字0-99999999,#分割 | 谷电量 | 0.001KWh |
PING_AMT | 数字0-99999999,#分割 | 谷金额 | 0.001元 |
SERVER_AMT | 数字0-99999999,#分割 | 时间服务费 | 0.001元 |
POWER_AMT | 数字0-99999999,#分割 | 电量服务费 | 0.001元 |
AREA_AMT | 数字0-99999999,#分割 | 场地服务费 | 0.01元 |
STOP_PERCENT | 数字1-100,255,#分割 | 中止荷电状态(BSD) | 1% ,255为无法获取充电荷电状态 |
ERROR | 数字0-999,#分割 | 异常停止状态 | 0x00-无异常,400-启动失败,充电桩系统故障;401-启动失败,CP引导信号未检测到超时;402-启动失败,CP控制引导信号不能进入充电模式;403-启动失败,计量模块异常;404-启动失败,充电模块故障;405-启动失败,急停开路;406-启动失败,防雷器异常;407-启动失败,漏电保护异常;408-启动失败,温度异常;409-启动失败,供电电压异常;410-启动失败,供电电流过小异常;411-启动失败,供电电流过大异常;412-启动失败,合闸失败;413-启动失败,绝缘异常;414-启动失败,浸水传感器检测异常停止,415-启动失败,接地异常;600-充电异常终止,系统闭锁;601-充电异常终止,CP导引信号断开;602-充电异常终止,CP导引要求停止充电;603-充电异常终止,计量数据异常;604-充电异常终止,输出电压异常;605-充电异常终止,输出电流过小;606-充电异常终止,输出电流过大;607-充电异常终止,充电模块故障;608-充电异常终止,急停开路;609-充电异常终止,漏电保护异常;610-充电异常终止,温度异常;800-未知原因异常 |
TIME | UNIX时间戳,#分割 | 充电开始时间 | 秒为单位 |
TIME | UNIX时间戳,#分割 | 充电结束时间 | 秒为单位 |
RE_SEQ | 重传序列,该指令需要DLB回复 |
实时状态上报
描述:电桩充电时需要每分钟上报一次当前状态数据。
数据方向:设备→模块
服务端命令:QSB
会话ID:A10002
设备上报命令帧:
字段 | 字节长度 | 意义 | 备注 |
---|---|---|---|
PORT | 数字1-2,#分割 | 枪号 | |
BILL_NO | ASCII23byte,#分割 | 订单号 | |
RESULT | 数字1-3,#分割 | 状态 | 1-充电, 2-故障, 3-空闲 |
POWERTYPE | 数字1-2,#分割 | 输出类型 | 1-直流,2-交流 |
CURRENT_TYPE | 数字1-4,#分割 | 当前计费类型 | 1-尖计费,2-峰计费,3-平计费,4-谷计费 |
ACTIVE_QEC | 数字0-99999999,#分割 | 当前计费类型有功电量 | 0.001KWh为单位 |
REACTIVE_QEC | 数字0-99999999,#分割 | 当前计费类型无功电量 | 0.001KVar为单位 |
CURRENT_AMT | 数字0-99999999,#分割 | 当前计费类型充电金额 | 0.001元 |
CURRENT_TIME | 数字0-999999,#分割 | 当前计费类型充电时间 | 秒为单位 |
ACTIVE_POWER | 数字0-999999,#分割 | 当前有功功率 | W为单位 |
REACTIVE_POWER | 数字0-999999,#分割 | 无功功率 | Var为单位 |
PF | 数字0-300,#分割 | 当前功率因素 | 0.01 |
VOLTAGE | 数字0-4000,#分割 | 输出电压(三相电压用-分割) | 0.1V |
CURRENT | 数字0-400,#分割 | 输出电流(三相电流用-分割) | 0.1A |
SOC_PERCENT | 数字0-100,#分割 | 当前荷电状态 | 分辨率1%,0%偏移量,0-100%,0表示一般不支持 |
TEMPERATURE | 数字0-150,#分割 | 设备温度 | 偏移量-50℃,单位1℃, 即实际0℃上报为50 |
TIME | 数字0-999999,#分割 | 累计充电时间 | 秒为单位 |
CHARGE_POWER | 数字0-99999999,#分割 | 充电电量 | 0.001KWh为单位 |
AMT | 数字0-99999999 | 已充金额 | 0.001元 |
计费模型下发
描述:服务器下发计费模型。
数据方向:服务端->设备
服务器请求命令帧:QKM
字段 | 字节长度 | 意义 | 备注 |
---|---|---|---|
JIAN_PRICE | 4byte | 尖单价 | 0.01元/KWh |
FENG_PRICE | 4byte | 峰单价 | 0.01元/KWh |
PING_PRICE | 4byte | 平单价 | 0.01元/KWh |
GU_PRICE | 4byte | 谷单价 | 0.01元/KWh |
SERVER_PRICE | 4byte | 电量服务费率 | 0.001元/KWh |
TIME_PRICE | 4byte | 时间服务费率 | 0.001元/分钟 |
AREA_PRICE | 4byte | 场地服务费 | 0.01元 |
P01 | 1byte | 0:00-1:00时段计费方式 | 0x00-尖费率,0x01-峰费率,0x02-平费率,0x03-谷费率 |
P02 | 1byte | 1:00-2:00时段计费方式 | 0x00-尖费率,0x01-峰费率,0x02-平费率,0x03-谷费率 |
P03 | 1byte | 2:00-3:00时段计费方式 | 0x00-尖费率,0x01-峰费率,0x02-平费率,0x03-谷费率 |
P04 | 1byte | 3:00-4:00时段计费方式 | 0x00-尖费率,0x01-峰费率,0x02-平费率,0x03-谷费率 |
P05 | 1byte | 4:00-5:00时段计费方式 | 0x00-尖费率,0x01-峰费率,0x02-平费率,0x03-谷费率 |
P06 | 1byte | 5:00-6:00时段计费方式 | 0x00-尖费率,0x01-峰费率,0x02-平费率,0x03-谷费率 |
P07 | 1byte | 6:00-7:00时段计费方式 | 0x00-尖费率,0x01-峰费率,0x02-平费率,0x03-谷费率 |
P08 | 1byte | 7:00-8:00时段计费方式 | 0x00-尖费率,0x01-峰费率,0x02-平费率,0x03-谷费率 |
P09 | 1byte | 8:00-9:00时段计费方式 | 0x00-尖费率,0x01-峰费率,0x02-平费率,0x03-谷费率 |
P10 | 1byte | 9:00-10:00时段计费方式 | 0x00-尖费率,0x01-峰费率,0x02-平费率,0x03-谷费率 |
P11 | 1byte | 10:00-11:00时段计费方式 | 0x00-尖费率,0x01-峰费率,0x02-平费率,0x03-谷费率 |
P12 | 1byte | 11:00-12:00时段计费方式 | 0x00-尖费率,0x01-峰费率,0x02-平费率,0x03-谷费率 |
P13 | 1byte | 12:00-13:00时段计费方式 | 0x00-尖费率,0x01-峰费率,0x02-平费率,0x03-谷费率 |
P14 | 1byte | 13:00-14:00时段计费方式 | 0x00-尖费率,0x01-峰费率,0x02-平费率,0x03-谷费率 |
P15 | 1byte | 14:00-15:00时段计费方式 | 0x00-尖费率,0x01-峰费率,0x02-平费率,0x03-谷费率 |
P16 | 1byte | 15:00-16:00时段计费方式 | 0x00-尖费率,0x01-峰费率,0x02-平费率,0x03-谷费率 |
P17 | 1byte | 16:00-17:00时段计费方式 | 0x00-尖费率,0x01-峰费率,0x02-平费率,0x03-谷费率 |
P18 | 1byte | 17:00-18:00时段计费方式 | 0x00-尖费率,0x01-峰费率,0x02-平费率,0x03-谷费率 |
P19 | 1byte | 18:00-19:00时段计费方式 | 0x00-尖费率,0x01-峰费率,0x02-平费率,0x03-谷费率 |
P20 | 1byte | 19:00-20:00时段计费方式 | 0x00-尖费率,0x01-峰费率,0x02-平费率,0x03-谷费率 |
P21 | 1byte | 20:00-21:00时段计费方式 | 0x00-尖费率,0x01-峰费率,0x02-平费率,0x03-谷费率 |
P22 | 1byte | 21:00-22:00时段计费方式 | 0x00-尖费率,0x01-峰费率,0x02-平费率,0x03-谷费率 |
P23 | 1byte | 22:00-23:00时段计费方式 | 0x00-尖费率,0x01-峰费率,0x02-平费率,0x03-谷费率 |
P24 | 1byte | 23:00-0:00时段计费方式 | 0x00-尖费率,0x01-峰费率,0x02-平费率,0x03-谷费率 |
设备响应命令帧:
字段 | 字节长度 | 意义 | 备注 |
---|---|---|---|
RESULT | 1byte | 下发结果 | 0x01-下发成功,0x02-下发失败,0x03-下发成功,但不存储,0x04-使用过程中不可更改计费模型 |
服务端请求设备计费模型
描述:设备请求服务端计费模型。
数据方向:服务端->设备
服务端指令:QSM
字段 | 字节长度 | 意义 | 备注 |
---|---|---|---|
MODEL_NUM | 1byte | 充电模型编码 | 1-固定值 |
设备响应命令帧:
字段 | 字节长度 | 意义 | 备注 |
---|---|---|---|
JIAN_PRICE | 4byte | 尖单价 | 0.01元/KWh |
FENG_PRICE | 4byte | 峰单价 | 0.01元/KWh |
PING_PRICE | 4byte | 平单价 | 0.01元/KWh |
GU_PRICE | 4byte | 谷单价 | 0.01元/KWh |
SERVER_PRICE | 4byte | 电量服务费率 | 0.001元/KWh |
TIME_PRICE | 4byte | 时间服务费率 | 0.001元/分钟 |
AREA_PRICE | 4byte | 场地服务费 | 0.01元 |
P01 | 1byte | 0:00-1:00时段计费方式 | 0x00-尖费率,0x01-峰费率,0x02-平费率,0x03-谷费率 |
P02 | 1byte | 1:00-2:00时段计费方式 | 0x00-尖费率,0x01-峰费率,0x02-平费率,0x03-谷费率 |
P03 | 1byte | 2:00-3:00时段计费方式 | 0x00-尖费率,0x01-峰费率,0x02-平费率,0x03-谷费率 |
P04 | 1byte | 3:00-4:00时段计费方式 | 0x00-尖费率,0x01-峰费率,0x02-平费率,0x03-谷费率 |
P05 | 1byte | 4:00-5:00时段计费方式 | 0x00-尖费率,0x01-峰费率,0x02-平费率,0x03-谷费率 |
P06 | 1byte | 5:00-6:00时段计费方式 | 0x00-尖费率,0x01-峰费率,0x02-平费率,0x03-谷费率 |
P07 | 1byte | 6:00-7:00时段计费方式 | 0x00-尖费率,0x01-峰费率,0x02-平费率,0x03-谷费率 |
P08 | 1byte | 7:00-8:00时段计费方式 | 0x00-尖费率,0x01-峰费率,0x02-平费率,0x03-谷费率 |
P09 | 1byte | 8:00-9:00时段计费方式 | 0x00-尖费率,0x01-峰费率,0x02-平费率,0x03-谷费率 |
P10 | 1byte | 9:00-10:00时段计费方式 | 0x00-尖费率,0x01-峰费率,0x02-平费率,0x03-谷费率 |
P11 | 1byte | 10:00-11:00时段计费方式 | 0x00-尖费率,0x01-峰费率,0x02-平费率,0x03-谷费率 |
P12 | 1byte | 11:00-12:00时段计费方式 | 0x00-尖费率,0x01-峰费率,0x02-平费率,0x03-谷费率 |
P13 | 1byte | 12:00-13:00时段计费方式 | 0x00-尖费率,0x01-峰费率,0x02-平费率,0x03-谷费率 |
P14 | 1byte | 13:00-14:00时段计费方式 | 0x00-尖费率,0x01-峰费率,0x02-平费率,0x03-谷费率 |
P15 | 1byte | 14:00-15:00时段计费方式 | 0x00-尖费率,0x01-峰费率,0x02-平费率,0x03-谷费率 |
P16 | 1byte | 15:00-16:00时段计费方式 | 0x00-尖费率,0x01-峰费率,0x02-平费率,0x03-谷费率 |
P17 | 1byte | 16:00-17:00时段计费方式 | 0x00-尖费率,0x01-峰费率,0x02-平费率,0x03-谷费率 |
P18 | 1byte | 17:00-18:00时段计费方式 | 0x00-尖费率,0x01-峰费率,0x02-平费率,0x03-谷费率 |
P19 | 1byte | 18:00-19:00时段计费方式 | 0x00-尖费率,0x01-峰费率,0x02-平费率,0x03-谷费率 |
P20 | 1byte | 19:00-20:00时段计费方式 | 0x00-尖费率,0x01-峰费率,0x02-平费率,0x03-谷费率 |
P21 | 1byte | 20:00-21:00时段计费方式 | 0x00-尖费率,0x01-峰费率,0x02-平费率,0x03-谷费率 |
P22 | 1byte | 21:00-22:00时段计费方式 | 0x00-尖费率,0x01-峰费率,0x02-平费率,0x03-谷费率 |
P23 | 1byte | 22:00-23:00时段计费方式 | 0x00-尖费率,0x01-峰费率,0x02-平费率,0x03-谷费率 |
P24 | 1byte | 23:00-0:00时段计费方式 | 0x00-尖费率,0x01-峰费率,0x02-平费率,0x03-谷费率 |
刷卡充电
描述:设备上报刷卡卡号
数据方向:设备->服务端
服务端指令:QSK
字段 | 字节长度 | 意义 | 备注 |
---|---|---|---|
PORT | 数字1-2,#分割 | 抢号 | |
CARD_NO | 十六进制ASCII,#分割 | 卡号 | 十六进制的物理卡号 |
CARD_CHECK | 不定长度ASCII | 校验信息 |
设备响应命令帧:
字段 | 字节长度 | 意义 | 备注 |
---|---|---|---|
CARD_AMT | 8字节数字,不足在前面补0 | 卡内余额 | 0.01元,没有余额为0 |
RESULT | 1byte | 刷卡结果 | 0-成功,1-卡号或账号不存在,2-卡号或账号冻结,3-余额不足,4-存在未结账记录,5-账户未绑定该桩,6-服务器其他失败 |
注意:刷卡成功后,服务端除了应答刷卡结果外,1秒钟之后需要下发充电指令。
远程停止充电
描述:设备请求服务端计费模型。
数据方向:模块→设备
服务端指令:QTZ
字段 | 字节长度 | 意义 | 备注 |
---|---|---|---|
PORT | 1byte | 抢号 | 需要停止的充电枪枪号 |
BILL_NO | 23byte | 订单号 | 需要停止的订单号 |
设备响应命令帧:
字段 | 字节长度 | 意义 | 备注 |
---|---|---|---|
BILL_NO | 23byte | 订单号 | 需要停止的订单号 |
RESULT | 1byte | 停止结果 | 1-停止成功,2-枪号不匹配,3-订单不匹配,4-枪未处于充电状态,5-其他原因失败 |
注意:远程停止应答后,设备应主动上报0x05,并且0x05“充电结束”的RESULT字段应该为5-远程停止充电。如果远程停止后服务端5分钟之内没有收到上报QWC,但收到QTZ的响应,则服务端结束状态为“远程停止无账单”,并且通过实时订单上报的数据计算用户账单;如果及时收到QWC则为“远程停止结束”,并根据QWC上报的账单计算最终账单。
主板对时
描述:主板和服务端对时, 如果主板和服务端时间戳的误差大于5分钟, 则服务端会发送新的时间戳给主板。
数据方向:主板→模块
服务端指令:QDS
SESSION_ID:"000000"
DATA:
字段 | 字节长度 | 意义 | 备注 |
---|---|---|---|
METHOD | 1byte | 固定值1 |
模块响应命令帧:
服务端指令:QDS
SESSION_ID:"服务器生成的会话id"
DATA:
字段 | 字节长度 | 意义 | 备注 |
---|---|---|---|
TIMESTAMP | 4byte | 服务器当前时间戳 | UNIX时间戳,单位为秒 |