嘎嘎快充开源充电桩平台 源码下载地址https://gitee.com/itholiday
充电桩与后台服务器
通讯协议
V2.28
目录
1 网络拓扑
1.1 功能界定:
1.1.1 充电机智能终端
1.1.2 智能中心管理系统
1.2 接口定义:
1.3 通讯方式:
1.4 通信规约
1.5 报文格式
1.6 关键命令
2 应用层
2.1 数据格式
2.2 心跳包机制
3 协议格式
3.1命令参数约定
3.2 服务器向充电桩设置/査询工作参数和命令
3.2.1 (CMD=1)后台服务器下发充电桩整形工作参数
3.2.2 (CMD=2)充电桩参数整形设置/查询应答
3.2.3 (CMD=3)后台服务器下发充电桩字符型工作参数
3.2.4 (CMD=4)充电桩参数字符形设置/查询应答
3.2.5 (CMD=5)后台服务器下发充电桩控制命令
3.2.6 (CMD=6)充电桩对后台控制命令应答
3.2.7 (CMD=7)后台服务器下发充电桩开启充电控制命令
3.2.8 (CMD=8)充电桩对后台下发的充电桩开启充电控制应答
3.2.9 (CMD=9)后台服务器下发充电桩充电策略更新
3.2.10 (CMD=10)充电桩应答充电桩充电策略更新
3.2.11 (CMD=11)后台服务器下发充电桩白名单设置
3.2.12 (CMD=12)充电桩应答充电桩白名单设置
3.2.13 (CMD=13)后台服务器下发充电桩白名单清空
3.2.14 (CMD=14)充电桩应答充电桩白名单清空
3.3充电桩主动上传数据
3.3.1 (CMD=101) 服务器应答心跳包信息
3.3.2 (CMD=102) 充电桩上传心跳包信息
3.3.3 (CMD=103)服务器应答充电桩状态信息包
3.3.4 (CMD=104)充电桩状态信息包上报
3.3.5 (CMD=105)服务器应答充电桩签到命令
3.3.6 (CMD=106) 充电桩签到信息上报
3.3.7 (CMD=107)服务器应答充电桩告警信息(服务器暂时不用回复)
3.3.8 (CMD=108)充电桩告警信息上报(预留)
3.3.9 (CMD=109)服务器应答充电桩模块告警信息(服务器暂时不用回复)
3.3.10 (CMD=110)充电桩整流模块信息上报(直流桩有效)
3.3.11 (CMD=111)服务器应答充电桩状态信息包(电量三位小数)
3.3.12 (CMD=112)充电桩状态信息包上报(电量三位小数)
3.4 充电信息数据
3.4.1 (CMD=201)服务器应答充电桩充电上报最新一次充电信息报文
3.4.2 (CMD=202)充电桩上报充电记录信息
3.4.3 (CMD=203)服务器应答帐户查询信息
3.4.4 (CMD=204)充电桩充电上传用户帐户查询报文
3.4.5 (CMD=205)服务器应答VIN验证充电
3.4.6 (CMD=206)充电桩充电上传VIN验证充电报文
3.4.7 (CMD=207)服务器应答充电桩充电上报最新一次充电信息报文(电量三位小数)
3.4.8 (CMD=208)充电桩上报充电记录信息(电量三位小数)
3.4.7 (CMD=1103) 后台服务器设置 24 时电费计价策略信息
3.4.8 (CMD=1104)充电桩回复 24 时电费计价策略信息设置结果
3.4.9 (CMD=1105) 后台服务器设置 48 段电费计价策略信息
3.4.10 (CMD=1106)充电桩回复 48段电费计价策略信息设置结果
3.4.11(CMD=301)服务器应答充电桩上报BMS信息-删除
3.4.12(CMD=302)充电桩上报BMS信息
3.4.13(CMD=303)服务器应答充电桩位置信息
3.4.14(CMD=304)充电桩上报位置信息
3.5 远程升级指令
3.5.1 (CMD=501)服务器下发远程升级指令
3.5.2 (CMD=502)充电桩应答远程升级指令
3.5.3 (CMD=503)服务器应答远程升级执行结果指令
3.5.4 (CMD=504)充电桩上报远程升级命令执行结果
3.6 移动储能车控制
3.6.1 (CMD=10001)服务器下发移动储能车控制命令
3.6.2 (CMD=10002)充电桩回复服务器下发移动储能车控制命令
附录1告警编码定义
附录2结束原因编码定义
附录3充电启动失败编码定义(CMD8)
附录 4 通信报文交互参考流程
附录5通信报文校验C参考实现
1 网络拓扑
1.1 功能界定:
本接口协议用于界定了充电机智能终端与智能中心管理系统之间的通信协议规范。
1.1.1 充电机智能终端
内置于现场无人值守充电机,或者安装于场站充电机内,负责充电机设备通信接入和充电调度管理,同时收集充电机各个模块的实时状态、充电状态、交易状态、环境状态等信息,并将这些信息存储并转发到智能中心管理平台。
1.1.2 智能中心管理系统
实时获取充电机设备信息和电池管理系统BMS等相关信息,完成数据的接收,解析,存储和展示。
1.2 接口定义:
充电机智能终端和智能中心管理系统之间的通信接口采用基于TCP/IP Socket的通信方式实现,按照长连接工作模式。两个系统可部署在同一个或者不同的企业网络环境中,可以通过局域网或者互联网实现互相连接通信。
1.3 通讯方式:
本接口采用Server/Client的通讯方式
充电机智能终端作为客户端Client方;
智能中心管理系统作为服务器Server方;
所有协议中除去特别说明以外,低字节在前,高字节在后。
1.4 通信规约
1.通信数据报文采用二进制格式;
2.客户端Client方自动向服务器Server方提出连接请求,连接成功后,采用推送方式,向服务器方发送协议数据包。
3.—律采用单包传输方式,不采用多包传输方式;
4.客户端Client方的发送模式和频率可以设置。
5.对接收的数据包需进行合法性校验,包括通信长度、校验和计算,命令代码等多个属性的合法性校验。
6.客户端需要自动维护通信连接状态的有效性,在初始化和断链以后,自动进行连接尝试,直到连接恢复。
7.应答模式心跳和状态报文信息要后台查询才发送
8.正常充电桩与后台通信的报文时序是:
步骤1:充电桩连接后台成功,要先发送102心跳报文进行连接检测,后台用101回应充电桩
步骤2:充电桩上报完102心跳报文后,先发送106签到报文进行签到,后台用105回应充电桩
步骤3:充电桩上报完106签到报文后,然后才发送104状态、 202充电记录等报文给后台服务器
步骤4:充电桩执行后台的相应控制指令
9.后台、充电桩在收到报文帧头时,3秒内没有收到完整的报文,自动丢掉此次的帧头数据,然后继续处理下一帧报文。
10.发送端下发给接收端的数据或命令,接收端要在5S内回复,若发送端在5S内没有收到回复,则应重发或其他逻辑处理。
11.协议在升级中会一些报文上增加字段,为了保持软件兼容性,应用层实现时不要做“接收到报文与协议定义长度一致才判断为有效报文”的检测。如当前版本 104 报文字段共42字段, 后续根据需要升级到45个字段 (之前42字段保持不变),这里即使服务器软件还是用旧版本42字段的软件, 也应该正确处理桩上报的新104报文。
12.协议中预留或没有实现的报文字段,建议默认用 0 进行填充。
1.5 报文格式
本通信协议中使用到的报文格式见表一。
表一报文格式
起始域 长度域 版本域 序列号域 命令代CMD 数据域 校验和域
2 (字节) 2 (字节) 1 (字节) 1 (字节) 2 (字节) N (字节) 1 (字节)
0xAA 0xF5 0〜0x8000 0x10 0 〜0xFF 消息类型 参考说明 后8位
备注:
本协中,所有数值类型的多字节段,均是低位在前,高位在后,其它数据均是十六进制顺序表示。
起始域:固定为0xAA 0xF5
长度域:起始域到校验和域整个报文长度
版本域:0x10-电量小数位为2位小数,0x11-电量小数位为3位小数。
序列号域:报文的流水号
命令代码:即消息类型,代表不同功能要求,命令代码为奇数表示服务器下发的数据, 命令代码为偶数表示充电桩上传给服务器的数据包
数据域:具体的信息数据区域,不同的命令代码对应的内容不同。
校验和域:采用累计和计算校验值,并取校验和的低 8 位,计算范围包含从命令代码和数据域,参考附录5
1.6 关键命令
本协议内容比较全面,后台可以按需求实现相关的指令,但以下指令是必要实现的命令
序号 命令 说明
1 CMD=1 服务器下发服务费功能
2 CMD=3 服务器下发时钟同步
2 CMD=5 服务器下发停止充电功能
3 CMD=7 服务器下发远程开启指令
4 CMD=101 服务器心跳应答
5 CMD=103 服务器应答充电桩状态信息包
6 CMD=105 服务器应答充电桩签到命令
7 CMD=201 服务器应答充电桩账单帧命令
8 CMD=203 服务器应答充电桩账户查询命令
9 CMD=1103 服务器下发 24 时电费计价策略信息
10 CMD=501 服务器下发 远程升级命令
11 CMD=503 服务器应答 远程升级命令
2 应用层
2.1 数据格式
通信协议中数据格式定义如表二所示。
表二报文格式
数据类型 比例因子 范围(实际量程) 偏移量 字节数
容量/电量 1AH/bit 0 - 65535 0 2 BYTE
电压 0.1V/bit 0-10000 0 2 BYTE
电流 0.1A/bit -32768 - 32768(-3276.8 - 3276.8) 0 2 BYTE
单体电池电压 0.01V/bit 0-4095 ( 0-40.95) 0 2 BYTE
电池SOC 1%/bit 0-100 ( 0-100%) 0 2 BYTE
温度 1〇C/bit 偏移量-50,-50 - 200 0 2 BYTE
箱号(组号) 1/bit 0-255 0 1 BYTE
箱内位置 1/bit 0-255 0 1 BYTE
电度数 0.01kWh/bit
0.001kWh/bit 0 – 6553565535 0 4 BYTE
功率 0.1KW/bit 0-65535 (0-6000) 0 2 BYTE
金额 0.01元/bit 0 – 6553565535 0 4 BYTE
费率 0.01元/度 0 – 65535*65535 0 4 BYTE
2.2 心跳包机制
充电机终端在成功连接到服务器后,需要设置单独任务机制检测通信连接的稳定可靠性,定期向服务器发送心跳包,服务器正常情况下给出应答,如果多次没有应答,任务服务器的连接失效,充电机终端必须复位连接重新向中心服务器申请连接请求。心跳间隔时间和超时次数可以通过远程设置修改。
心跳包实现功能如下:
1.充电机终端定时向服务器发送心跳包,中心服务器按照要求返回心跳响应给充电机终端。
2充电机终端发送心跳包后,开始计数,计数达到超时次数(可配置),认为心跳超时,关闭当前连接,恢复连接工作状态,自动重新发起TCP连接,在获得响应后,向中心服务器发送注册签到报文
3 协议格式
3.1命令参数约定
说明:在该部分通信协议中涉及的每一条命令代码,都具备下面两个信息字段:
1.服务器向充电桩设置的工作参数,充电桩是要对参数要永久保存
2.桩编码、用户卡号/用户识别号是32字节的字段,但有效可用只有31个,最后一个字符必须填0,不足最大长度在尾部都用0填充。桩编码按ASSIC发送,有效数据最大 31 字节,不足会补‘\0’,如桩编码为“112233”,则桩发送的编码数据为 0x31 0x31 0x32 0x32 0x33 0x33 0x00 后面 25 字节的桩编码无效不用管,即按字符串方式处理,遇到’\0’就代表结束了
3.充电模块位置编号:从1开始,1-N代表N个充电模块位置编号,充电模块位置编号0代表所有。
4.标准时钟时间,格式:xxxx-xx-xx-xx-xx-xx年-月-日-时-分-秒,用 BCD码表示,最后一位是保留位0xff。如 2015-07-22-13-16-15,为:0x20 0x15 0x07 0x22 0x13 0x16 0x15 0xff
5.表示必填字段,非必填字段置 0。表示充电或预约时必填字段,这些字段 非充电非预约时置 0。
3.2 服务器向充电桩设置/査询工作参数和命令
3.2.1 (CMD=1)后台服务器下发充电桩整形工作参数
报文功能:后台服务器向充电桩下发充电桩整形工作参数命令。
序号 字段定义 长度(字节) 说明
1 预留 2 预留
2 预留 1 预留
3 充电枪口 1 1-N
4 类型 1 0-查询1-设置
5 设置/查询参数 启始地址 4 参见”参数地址列表1”
6* 设置/查询个数 1 注:字符串类型一次只能设置一个
7* 设置参数字节数 2
8* 设置数据 N 当类型为设置时才有此字段
参数列表1
参数地址 字段定义 长度(字节) 说明
1 签到时间间隔 4 按照分钟为单位(默认30分)
2 充电桩项目类型 4 内部参数,一般用于查询
3 充电枪个数 4 内部参数,一般用于查询
4 通道号 4 内部参数,一般用于查询
5 最高充电电压 4
6 最大充电电流 4
7 读卡器类型 4 1:MT622
2:ID读卡器
硬件决定的,运营的后台不需要设置或查询此项
8 读卡器波特率 4 硬件决定的,运营的后台不需要设置或查询此项
9 充电卡片协议编号 4
10 后台验证 4 0-不验证 1-验证
11 车牌验证 4 0-不验证 1-验证
12 车卡VIN绑定 4 0-不绑定1-绑定
13 BMS单体保护电压 4
14 BMS充电保护温度 4
15 调试地址1 4 0保持不变
16 调试地址2 4 0保持不变
17 调试地址3 4 0保持不变
18 调试地址4 4 0保持不变
19 调试地址5 4 0保持不变
20 定时上报间隔 4 上报模式,定时上报的间隔
单位:秒;缺省:15秒
21 心跳上报周期 4 0保持不变 缺省=3秒
22 心跳包检测超时次数 4 0保持不变 缺省=3秒
23 充电桩状态信息报上报周期 4 0保持不变 缺省=3秒
24 通信模式 4 1:应答模式
2:主动上报模式
25* 中心服务器地址 4 按照字节顺序-注3
26* 中心服务器端口 4 低字节在前-注4
27 服务费价格 4 服务费单段,全天统一一个服务费单价(下发服务器在1103命令之前)
28 全时段电费费率 4
29 广告灯开启起始小时 4
30 广告灯开启起始分钟 4
31 广告灯关闭起始小时 4
32 广告灯关闭起始分钟 4
33 调试控制地址 4 内部调试用,运营平台不需实现
34 调试控制数据 4 要与调试控制地址一起发送
35 过压值 4 放大10倍
36 欠压值 4 放大10倍
37 过流值 4 放大10倍
39 BMS辅源类型 4 1-12V 2-24V
40 充电枪类型 4
41 电价折算系数 4 两位小数
42 低于电流值结束充电 4 42.43.44同时满足可结束充电
43 高于SOC结束充电 4 42.43.44同时满足可结束充电
44 达到要求持续时间结束充电 4 42.43.44同时满足可结束充电
45 触发设备上送签到报文 4 透传模块重连使用
46 充电桩位置信息上报周期 4 0保持不变 缺省=30秒
47 实时功率限制 4 放大10倍
注:
1.中心服务器地址,例:IP 16.80.1.20 指令为:0x10 0x50 0x01 0x14
2.中心服务器端口,例:端口 10001,指令为:0x11 0x27
3.—次设置/查询的个数要求不超过10个且整个报文小于规约规定最大报文长度。
4.非字符号类型的长度全部设置为4是为方便程序统一接口
5.这些参数设置完后,充电桩要能掉电保存
6.后台根据可实际需要开发相应的设置/查询功能,以上有些参数是生产时进行设置的出厂参数,运营后台不一定要全部实现以上参数的查询和设置,而且若没有需要都可以不实现这条设备指令。
3.2.2 (CMD=2)充电桩参数整形设置/查询应答
报文功能:充电桩对后台服务器的充电桩整形参数设置报文应答
序号 字段定义 长度(字节) 说明
1 预留 2 预留
2 预留 1 预留
3* 充电枪口 1 1-N
4* 充电桩编码 32 ASSIC编码
5* 类型 1 0-查询 1-设置
6* 设置/查询参数
启始地址 4 同设置命令地址
7* 设置/查询个数 1 同设置命令地址
8* 设置/查询结果 1 0表示成功,其它失败
9* 查询参数信息 N
3.2.3 (CMD=3)后台服务器下发充电桩字符型工作参数
报文功能:后台服务器向充电桩下发充电桩字符形工作参数命令。
序号 字段定义 长度(字节) 说明
1 预留 2 预留
2 预留 1 预留
3* 充电枪口 1 1-N
4* 类型 1 0-查询1-设置
5* 设置/查询参数启始地址 4 参见“参数地址列表2”
6* 设置参数字节数 2
7* 设置数据 N 类型为设置时才有此字段
参数列表2
参数地址 字段定义 长度(字节) 说明
1* 充电桩编码 32 assic 码
2* 标准时钟时间 8 同步充电桩时间
3 管理员密码 8 assic 码
4 操作员密码 8 assic 码
5 MAC地址 6 预留
6 桩登入服务器密码 16 阿拉伯数字,不足最后补‘\0’
7 桩主界面二维码 256* assic码,预留
8 客户服务热线1 16* assic码,预留
9 客户服务热线2 16* assic码,预留
10 用户支付二维码 256* assic码,预留
11*
桩主界面二维码前缀 128* 最大 128 字节,assic 码 一般加的前缀如 :http://www.xxx.com/charger/, 若其值第一个字节为数字表示前缀无效,二维码按桩编码直接显示,
12 DLT645-2007电表地址 12
注:
1.参数字符串类型,一次只能设置一个参数
2.一次设置/查询的整个报文小于规约规定最大报文长度。
3.上表中的字符类型长度是指最大设置长度,若比最大允许的字符短,最后一个字节以’ \0’结束。长度字段带“”号的,表示其长度可根据实际长度发送。
4.上述参数设置完后,充电桩要能掉电保存
5.运营的后台,根据需要进行开发相应的设置\查询项,不需要全部都实现。
6.电桩上传106签到报文时,会上传当前桩的系统时间,若上传的系统时间与后台服务器时间差异大时,需要下发同步时间命令。
3.2.4 (CMD=4)充电桩参数字符形设置/查询应答
报文功能:充电桩对后台服务器的充电桩字符型参数设置报文应答
序号 字段定义 长度(字节) 说明
1 预留 2 预留
2 预留 1 预留
3 充电枪口 1 1-N
4* 充电桩编码 32 ASSIC编码
5* 类型 1 0-查询1-设置
6* 设置/查询参数 启始地址 4 同设置命令地址
7* 设置/查询结果 1 0表示成功,其它失败
8* 设置参数信息 N
3.2.5 (CMD=5)后台服务器下发充电桩控制命令
报文功能:后台服务器向充电桩控制命令
序号 字段定义 长度(字节) 说明
1 预留 2 预留
2 预留 2 预留
3* 充电枪口 1 1-N
4 命令启始标志 4 参见“命令列表3”
5 命令个数 1
6 命令参数长度 2 命令个数4(字节)
7 命令参数 n
参数列表3
命令地址 字段定义 长度(字节) 说明
1 预留 4 预留
2** 停止充电 4 0x55有效 后台用这个 指令下发远程停止充电,APP 和后台停止全部用此命令
3 预留 4
4 充电控制方式 4 0:BMS控制充电
1:盲充
5 预留 4
6 预留 4
7 电阻模式输出电压 4 用于生产测试
8 电阻模式输出电流 4 用于生产测试
9 充电模式 4 0-恒流1-恒压
10** 取消预约充电 4 0x55有效
11 设备重启 4 0x55有效
12 进入升级模式 4 0x55有效
13 进入正常应用模式 4 0x55有效
14 立即上报一次签到 106报文 4 预留
15 立即上报一次桩状 态信息104报文 4 预留
16 扫描支付成功 4 0x55有效
17 限制最大充电功率 4 0表示无限制
18 负载类型 4 0-电池 1-电阻
19 绝缘检测 4 1-启动一次绝缘检测动作
20 模块类型 4 1-500V 2-750V
21 本地计费 4 0-不启用 1-启用
22 刷卡密码输入流程 4 0不验证密码
1先输入密码再刷卡
2先刷卡再输入密码
23 充电暂停服务 4 0x55-暂停服务
其他-恢复充电服务
24 地锁控制 4 0x01 降地锁 0x00升地锁
25 后台下发余额不足停机 4 00x55有效。后台余额不足时,使用此命令停机。
注:
1.一次设置的命令个数要求不超过10个且整个报文小于规约规定最大报文长度。
2.非字符号类型的命令长度全部设置为4是为方便程序统一接口,上表中的字符类型长度是指最大设置长度,若比最大允许的字符短,最后一个字节以’ \0’ 结束。
3.这些参数设置完后,充电桩掉电不保存
4.以带“”为后台必须要实现的命令,不带“”可根据业务需要再实现
3.2.6 (CMD=6)充