行业知识

OCPP 2.0.1 充电通讯协议

2024-02-02 12:09:41 Gopower

OCPP 2.0.1 充电通讯协议

      OCPP协议为充电站点与任何中央管理系统之间提供统⼀的通讯方案,这个协议架构支持任何充电服务供应商的中央管理系统与所有的充电桩互相连接。

      一、OCPP协议

      1、OCPP的全称是 Open Charge Point Protocol 即开放充电点协议, 它是免费开放的协议,该协议由位于荷兰的组织 OCA(开放充电联盟)进行制定。 Open Charge Point Protocol (OCPP) 开放充电点协议用于充电站(CS)和任何充电站管理系统(CSMS)之间的统一通信。这个协议架构支持任何充电服务供应商的中央管理系统与所有的充电桩互相连接,OCPP协议的优点:开放免费使用、防止锁定单个供应商(充电平台)、减少集成时间/工作量和IT问题。

      2、OCPP协议的主要版本

      OCPP1.2(SOAP)  OCPP1.5(SOAP)  OCPP1.6(SOAP/JSON)

      OCPP2.0.1(JSON)

      SOAP受限于本身协议的约束, 无法大范围快速推广;JSON版本是通过WebSocket通信, 可在任何网络环境下互发数据,目前市场上使用最多的协议是1.6J 版本, OCPP2.0.1是2018年出的协议, 正在推广使用,是未来的方向。

      3、各个OCPP版本的差异

      OCPP1.*是向低版本兼容, OCPP1.6兼容OCPP1.5, OCPP1.5兼容OCPP1.2。

      OCPP2.0.1不兼容OCPP1.6,OCPP2.0.1中虽然有些内容在OCPP1.6也有, 但是发送的数据帧格式已经完全不同,OCPP2.0.1新增了很多OCPP1.6没有的功能,例如:

(1) OCPP1.6中的StartTransaction和StopTransaction在OCPP2.0.1中使用TransactionEvent代替,

(2) OCPP2.0.1中固件更新增加了数字签名, 防止固件下载不完整, 导致固件更新失败,

(3)transactionId在OCPP1.6是由平台保证唯一, 在OCPP2.0.1由充电桩保证唯一,

(4)在OCPP1.6中有缺陷的地方做了优化和升级,比如: OCPP1.6中StartTransaction 里面的transactionId数据是由平台决定的, 在OCPP2.0.1中由桩去决定transactionId值,这样做的好处是当发生网络故障, 需要重新发送StartTransaction数据时, 如果是OCPP1.6版本,平台很有可能对一条同样的Transaction数据保存两份, 导致扣了客户两次钱;

(5)OCPP2.0.1细节和功能比1.6版本多了很多, 开发的难度也增大了。

      二、OCPP 2.0.1协议

      OCPP2.0.1支持使用JSON格式数据的websockets通信,OCPP2.0.1不能兼容OCPP1.6,

支持多种安全授权方式,支持ISO15118,支持智能充电、设备管理、充电管理等。具有兼容性高、安全性高和扩展性高等特点。

                          OCPP网络拓扑

      1、OCPP2.0.1软件架构

      主要包括数据传输、授权、安全、配置、诊断、固件管理、设备管理和充电管理等模块。OCPP2.0.1协议中功能模块划分(部分):

      2、数据传输(DataTransfer)模块

      使用第三方库libwebsockets通过网络与远端CSMS建立websockets连接进行数据交互;使用第三方库rapidjson进行数据的JSON打包和解包;消息管理器用于处理原始数据。以心跳包数据传输为示例:

心跳时序图:

心跳请求内容(JSON):

     

心跳处理函数

 

      3、授权(Authorization)模块

      授权方式包括RFID、启动按钮、借记卡/信用卡、PIN码、CSMS、本地idToken、ISO15118、离线授权等。

示例:CSMS授权时序图

      4、安全(Security)模块

      安全模块使用第三方库mbedtls的RSA,ECC(椭圆曲线)模块对数据进行加密和解密,使用X509模块对证书进行管理。

示例:更新充电站证书时序图

      5、交易(Transactions)模块

      交易(Transactions)是指充电设备给电动车辆充电的过程。

OCPP2.0中所有的事务相关消息都集成在消息<TransactionEvent>中,取代了OCPP1.6中的<StartTransaction>,<StopTransaction>,<StatusNotification >,<MeterValue >等消息。

时序图:启动交易-即插即充

      6、计量( MeterValues)模块

      在交易过程中,需要周期性地向CSMS发送本地仪表数据,以便CSMS和用户能实时了解交易进度。

时序图:交易相关仪表数据

      7、计费(Cost)模块

计费模块是OCPP2.0中新增的软件模块,用于向用户提供价目和计费信息。主要包括: 

    ·充电前,提供充电站的详细价格信息。

    ·充电中,提供实时费用信息。

    ·充电后,提供最终收费信息。

(1)充电前价格信息时序图:

(2)充电中计费信息时序图

(3)充电后收费信息时序图

      8、预约(Reservation)模块

      预约是一个保留功能,可由运营商设置。由于充电站并不多,电动汽车的行驶里程也有限,用户需要提前保证充电设备的所有权。

预约充电站的指定充电设备时序图:

      9、智能充电(SmartCharging)模块

      智能充电是指在充电过程中根据需要动态地调整充电功率的行为。主要包括:

    ·充电站内部负载平衡    ·中央系统控制

    ·本地智能充电    ·能源管理系统控制

在OCPP中智能充电控制主要体现在Charging profiles中,Charging profiles中包含了充电站特定时间点的能量传输限制。

Charging profiles报文内容(JSON):

      10、诊断( Diagnostics)模块

      用于远程诊断充电站的问题,通过充电站上传包含诊断信息的文件实现。

上传诊断信息文件时序图:

诊断文件相关代码(部分):

      11、固件管理(FirmwareManagement)模块

      当充电站需要更新固件时,CSMS会通知充电站可以开始下载新固件的时间,充电站应在下载和安装新固件的每一步后通知CSMS。

示例:固件更新时序图(部分)

固件更新相关代码(部分):

      12、显示(DisplayMessage)模块

      显示消息模块用于充电站运营商(CSO)向用户展示充电相关信息,显示消息模块是OCPP 2.0中新增的功能,主要包括

    ·运营商设置显示消息

    ·充电站上传显示消息

设置显示消息时序图:

获取显示消息时序图:


首页
产品
新闻
联系及下单