OCPP 2.0.1 充電通訊協議
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中新增的功能,主要包括
·運營商設置顯示消息
·充電站上傳顯示消息
設置顯示消息時序圖:
獲取顯示消息時序圖: