目录
1 总则
1.1 协议概述
1.2 通信接口
1.3 接入流程
2 通信协议结构
3 应用层报文帧格式
3.1 应用层数据结构
3.2 数据格式定义
3.3 名词解释
4 帧类型定义一缆表
5 通信协议流程
5.1 上电流程
5.2 app充电流程
5.3 刷卡充电
5.4 离线充电模式
6 注册心跳帧类型码数据定义
6.1 充电桩登录认证
6.2 登录认证应答
6.3 充电桩心跳包
6.4 心跳包应答
6.5 计费模型验证请求
6.6 计费模型验证请求应答
6.7 充电桩计费模型请求
6.8 计费模型请求应答
7 实时数据帧类型码数据定义
7.1 读取实时监测数据
7.2 上传实时监测数据
7.3 充电握手
7.4 参数配置
7.5 充电结束
7.6 错误报文
7.7 充电阶段BMS中止
7.8 充电阶段充电机中止
7.9 充电过程BMS需求与充电机输出
7.10 充电过程BMS信息
8 运营交互帧类型码数据定义
8.1 充电桩主动申请启动充电
8.2 运营平台确认启动充电
8.3 运营平台远程控制启机
8.4 远程启动充电命令回复
8.5 运营平台远程停机
8.6 远程停机命令回复
8.7 交易记录
8.8 交易记录确认
8.9 远程账户余额更新
8.10 余额更新应答
8.11 离线卡数据同步
8.12 离线卡数据同步应答
8.13 离线卡数据清除
8.14 离线卡数据清除应答
8.15 离线卡数据查询
8.16 离线卡数据查询应答
9 运营平台设置帧类型码数据定义
9.1 充电桩工作参数设置
9.2 充电桩工作参数设置应答
9.3 对时设置
9.4 对时设置应答
9.5 计费模型设置
9.6 计费模型应答
10 车位锁通信协议定义
10.1 地锁数据上送
10.2 遥控地锁升锁与降锁命令
10.3 充电桩返回数据(上行)
11 电桩远程维护帧类型码数据定义
11.1 远程重启
11.2 远程重启应答
11.3 远程更新
11.4 远程更新应答
12 并充模式帧类型码数据定义
12.1 充电桩主动申请并充充电
12.2 运营平台确认并充启动充电
12.3 运营平台远程控制并充启机
12.4 远程并充启机命令回复
13 附录
13.1 充电停止原因代码表
13.2 CRC16 校验的计算方法
13.3 协议需知
1 总则
1.1 协议概述
本协议规定了充电桩与新能源管理信息系统之间数据交互的流程、格式和内容。协议整体依据国网104充电桩规约,新增数据部分协议参照GBT-27930对充电桩充电过程中与新能源管理信息系统的交互数据进行了补充,本协议适用于交直流,交流在本协议中部分数据无需上送数据项在下面协议部分均有标注。
1.2 通信接口
充电桩和新能源管理信息系统之间的通信接口采用基于 TCP/IP Socket 的通信方式实现,按照长连接工作模式。两个系统可部署在同一个或者不同的企业网络环境中,可以通过局域网或者互联网实现互相连接通信。
充电桩通信联接方式支持有线网络接口、无线 GPRS 连接运营平台服务器或者多个充电桩经过集中器与运营平台连接。
充电桩支持服务器的直接 IP 地址与网络域名解析,地址与连接端口均为可设置参数,测试服务器地址为121.199.192.223,端口号为8768。
1.3 接入流程
桩企按照协议内容开发完成后,首先平台会分配测试桩的设备编号以及平台登陆账户,桩企可以登陆测试平台查看测试桩与平台的上行下数据帧以及上行数据解析内容,在数据帧解析通过后,平台会提供充电app测试版本(只支持安卓手机)以及充电卡来对整个充电流程进行调试,最后在测试环境测试通过后,由平台提供正式环境的相关配置信息。
2 通信协议结构
本协议的通信协议结构如图1所示。本协议采用的TCP/IP传输定义与标准定义一致。
3 应用层报文帧格式
3.1 应用层报文帧格式
数据结构定义说明:
- 起始标识符代表一帧数据的开始,固定为0x68。
- 数据域字节数,数据域长度不超过200字节。不加密时为原数据长度,加密时,为加密后数据长度。其值为“序列号域+加密标志+帧类型标志+消息体”字节数之和。
- 序列号域即为数据包的发送顺序号,从 0开始顺序增加,如是应答数据包,则与询问数据包序号保持一致,当桩与平台网络断开重新建立连接或者溢出后归0。
- 加密标志只针对消息体(数据单元)。0x00:不加密,0x01:3DES
- 帧类型标志定义了上下行数据帧。
- 帧校验域:从序列号域到数据域的
- CRC 校验,校验多项式为 0x180D,低字节在前,高字节在后,计算方式见附录。
3.2 数据格式定义
数据格式包括BCD码、BIN码、ASCII,BIN码均为低位在前高位在后。协议中小数值均乘倍率(保留小数点位数)上送平台(例如:电压为225.1,保留一位小数,上送到平台值为2251,即0x8CB)。CP56Time2a格式如下:
3.3 名词解释
- 充电卡:平台默认充电卡为M1卡(不带储值),读卡器读取到的卡号为“物理卡号”,卡号储存在第0扇区0块,卡面印刷的卡号为“逻辑卡号”,物理卡号用于充电桩与服务器数据交互,逻辑卡号用于显示在桩屏幕上便于用户核对卡信息。IC卡或者CPU卡均采用平台M1卡的鉴权模式,不使用数据储存与写入功能。
- 交易流水号:交易流水号为一次充电操作过程的统一标记,从远程启动充电或者卡鉴权回复时产生到最后桩结束充电的交易记录均使用同一个流水号,由平台产生(离线模式由桩按此规则生成),生成规则为 格式桩号(7bytes)+枪号(1byte)+年月日时分秒(6bytes)+自增序号(2bytes);示例:32010600019236012001061803423060。
- 计损比例:计损比例定义在费率帧中,此项非零时,充电桩需要对上送平台充电量加上此比例,如<实时监测数据>中“计损电度”,则为“电度”基础上加上此比例得到的值。同理见<交易记录>中“计损尖电量”、“计损峰电量”、 “计损平电量”、 “计损谷电量”、 “计损总电量”;(目前平台不支持计损功能,计损比例置0)。
- 桩编号:由平台生成提供给桩使用,不支持桩企自行生成的桩编号。示例:3201060001923601
- 枪号:由7个字节桩编号+1个字节的枪号生成。示例:3201060001923601/3201060001923602
4 帧类型定义一缆表
充电桩定义的帧类型码为奇数,运营平台定义的帧类型码为偶数;帧类型码分段定义,已定义的帧类型码不可重定义为其他定义;
5 通信协议流程
5.1 上电流程
充电桩在上电或者离线恢复后连接到新能源管理信息系统,首先上送充电桩登陆认证,平台对桩的信息进行校验,并回复登陆认证应答,如果不符合则会断开当前建立的连接,如果验证通过,则桩先检查是否有离线状态下本地储存的实时监测数据或者交易数据,如果有则先上送到平台进行处理,随后充电桩发起充电计费模型的请求,平台检测计费模型与当前运营费率是否一致,并回复计费模型请求应答,如果不一致,桩需要向平台请求新的计费模型。
5.2 app充电流程
app充电流程与刷卡充电流程互通,即app充电可以用卡结束,app鉴权时会将用户绑定的卡信息下发到充电桩,用于卡结束验证,卡充电可以用app结束充电。
5.3 刷卡充电
5.4 离线充电模式
6 注册心跳帧类型码数据定义
6.1 充电桩登录认证
6.2 登录认证应答
6.3 充电桩心跳包
6.4 心跳包应答
6.5 计费模型验证请求
6.6 计费模型验证请求应答
6.7 充电桩计费模型请求
6.8 计费模型请求应答
7 实时数据帧类型码数据定义
7.1 读取实时监测数据
7.2 上传实时监测数据
7.3 充电握手
7.4 参数配置
7.5 充电结束
7.6 错误报文
7.7 充电阶段BMS中止
7.8 充电阶段充电机中止
7.9 充电过程BMS需求与充电机输出
7.10 充电过程BMS信息
8 运营交互帧类型码数据定义
8.1 充电桩主动申请启动充电
8.2 运营平台确认启动充电
8.3 运营平台远程控制启机
8.4 远程启动充电命令回复
8.5 运营平台远程停机
8.6 远程停机命令回复
8.7 交易记录
8.8 交易记录确认
8.9 远程账户余额更新
8.10 余额更新应答
8.11 离线卡数据同步
8.12 离线卡数据同步应答
8.13 离线卡数据清除
8.14 离线卡数据清除应答
8.15 离线卡数据查询
8.16 离线卡数据查询应答
9 运营平台设置帧类型码数据定义
9.1 充电桩工作参数设置
9.2 充电桩工作参数设置应答
9.3 对时设置
9.4 对时设置应答
9.5 计费模型设置
9.6 计费模型应答
10 车位锁通信协议定义
地锁状态变化需要传输给平台,若地锁出现故障,则传输故障码至平台,若检测出现故障则,默认地锁为降下状态;若为升降出现故障,则保持现有状态
10.1 地锁数据上送
10.2 遥控地锁升锁与降锁命令
10.3 充电桩返回数据(上行)
11 电桩远程维护帧类型码数据定义
11.1 远程重启
11.2 远程重启应答
11.3 远程更新
11.4 远程更新应答
12 并充模式帧类型码数据定义
12.1 充电桩主动申请并充充电(并充模式卡鉴权)
12.2 运营平台确认并充启动充电
12.3 运营平台远程控制并充启机
12.4 远程并充启机命令回复
13 附录
13.1 充电停止原因代码表
13.2 CRC16 校验的计算方法
CRC(Cyclical Redundancy Check)由两字节组成,生成函数如下:
1、CRC计算函数
WORD ModbusCRC(BYTE * pData, BYTE len)
{
BYTE byCRCHi = 0xff;
BYTE byCRCLo = 0xff;
BYTE byIdx;
WORD crc;
while(len--)
{
byIdx = byCRCHi ^* pData++;
byCRCHi = byCRCLo ^ gabyCRCHi[byIdx];
byCRCLo = gabyCRCLo[byIdx];
}
crc = byCRCHi;
crc <<= 8;
crc += byCRCLo;
return crc;
}
CRC 码表高字节
BYTE gabyCRCHi[] =
{
0x00,0xc1,0x81,0x40,0x01,0xc0,0x80,0x41,0x01,0xc0,
0x80,0x41,0x00,0xc1,0x81,0x40,0x01,0xc0,0x80,0x41,
0x00,0xc1,0x81,0x40,0x00,0xc1,0x81,0x40,0x01,0xc0,
0x80,0x41,0x01,0xc0,0x80,0x41,0x00,0xc1,0x81,0x40,
0x00,0xc1,0x81,0x40,0x01,0xc0,0x80,0x41,0x00,0xc1,
0x81,0x40,0x01,0xc0,0x80,0x41,0x01,0xc0,0x80,0x41,
0x00,0xc1,0x81,0x40,0x01,0xc0,0x80,0x41,0x00,0xc1,
0x81,0x40,0x00,0xc1,0x81,0x40,0x01,0xc0,0x80,0x41,
0x00,0xc1,0x81,0x40,0x01,0xc0,0x80,0x41,0x01,0xc0,
0x80,0x41,0x00,0xc1,0x81,0x40,0x00,0xc1,0x81,0x40,
0x01,0xc0,0x80,0x41,0x01,0xc0,0x80,0x41,0x00,0xc1,
0x81,0x40,0x01,0xc0,0x80,0x41,0x00,0xc1,0x81,0x40,
0x00,0xc1,0x81,0x40,0x01,0xc0,0x80,0x41,0x01,0xc0,
0x80,0x41,0x00,0xc1,0x81,0x40,0x00,0xc1,0x81,0x40,
0x01,0xc0,0x80,0x41,0x00,0xc1,0x81,0x40,0x01,0xc0,
0x80,0x41,0x01,0xc0,0x80,0x41,0x00,0xc1,0x81,0x40,
0x00,0xc1,0x81,0x40,0x01,0xc0,0x80,0x41,0x01,0xc0,
0x80,0x41,0x00,0xc1,0x81,0x40,0x01,0xc0,0x80,0x41,
0x00,0xc1,0x81,0x40,0x00,0xc1,0x81,0x40,0x01,0xc0,
0x80,0x41,0x00,0xc1,0x81,0x40,0x01,0xc0,0x80,0x41,
0x01,0xc0,0x80,0x41,0x00,0xc1,0x81,0x40,0x01,0xc0,
0x80,0x41,0x00,0xc1,0x81,0x40,0x00,0xc1,0x81,0x40,
0x01,0xc0,0x80,0x41,0x01,0xc0,0x80,0x41,0x00,0xc1,
0x81,0x40,0x00,0xc1,0x81,0x40,0x01,0xc0,0x80,0x41,
0x00,0xc1,0x81,0x40,0x01,0xc0,0x80,0x41,0x01,0xc0,
0x80,0x41,0x00,0xc1,0x81,0x40
};
CRC 码表高字节
BYTE gabyCRCLo[] =
{
0x00,0xc0,0xc1,0x01,0xc3,0x03,0x02,0xc2,0xc6,0x06,
0x07,0xc7,0x05,0xc5,0xc4,0x04,0xcc,0x0c,0x0d,0xcd,
0x0f,0xcf,0xce,0x0e,0x0a,0xca,0xcb,0x0b,0xc9,0x09,
0x08,0xc8,0xd8,0x18,0x19,0xd9,0x1b,0xdb,0xda,0x1a,
0x1e,0xde,0xdf,0x1f,0xdd,0x1d,0x1c,0xdc,0x14,0xd4,
0xd5,0x15,0xd7,0x17,0x16,0xd6,0xd2,0x12,0x13,0xd3,
0x11,0xd1,0xd0,0x10,0xf0,0x30,0x31,0xf1,0x33,0xf3,
0xf2,0x32,0x36,0xf6,0xf7,0x37,0xf5,0x35,0x34,0xf4,
0x3c,0xfc,0xfd,0x3d,0xff,0x3f,0x3e,0xfe,0xfa,0x3a,
0x3b,0xfb,0x39,0xf9,0xf8,0x38,0x28,0xe8,0xe9,0x29,
0xeb,0x2b,0x2a,0xea,0xee,0x2e,0x2f,0xef,0x2d,0xed,
0xec,0x2c,0xe4,0x24,0x25,0xe5,0x27,0xe7,0xe6,0x26,
0x22,0xe2,0xe3,0x23,0xe1,0x21,0x20,0xe0,0xa0,0x60,
0x61,0xa1,0x63,0xa3,0xa2,0x62,0x66,0xa6,0xa7,0x67,
0xa5,0x65,0x64,0xa4,0x6c,0xac,0xad,0x6d,0xaf,0x6f,
0x6e,0xae,0xaa,0x6a,0x6b,0xab,0x69,0xa9,0xa8,0x68,
0x78,0xb8,0xb9,0x79,0xbb,0x7b,0x7a,0xba,0xbe,0x7e,
0x7f,0xbf,0x7d,0xbd,0xbc,0x7c,0xb4,0x74,0x75,0xb5,
0x77,0xb7,0xb6,0x76,0x72,0xb2,0xb3,0x73,0xb1,0x71,
0x70,0xb0,0x50,0x90,0x91,0x51,0x93,0x53,0x52,0x92,
0x96,0x56,0x57,0x97,0x55,0x95,0x94,0x54,0x9c,0x5c,
0x5d,0x9d,0x5f,0x9f,0x9e,0x5e,0x5a,0x9a,0x9b,0x5b,
0x99,0x59,0x58,0x98,0x88,0x48,0x49,0x89,0x4b,0x8b,
0x8a,0x4a,0x4e,0x8e,0x8f,0x4f,0x8d,0x4d,0x4c,0x8c,
0x44,0x84,0x85,0x45,0x87,0x47,0x46,0x86,0x82,0x42,
0x43,0x83,0x41,0x81,0x80,0x40
};
13.3 协议需知
© 版权声明