Techに戻る

OCPPの概要とバージョン比較

OCPP 各バージョンの特徴と移行ポイントを 5〜10 分で解説

1. OCPPとは

本記事では歴史的経緯にならい、充電器本体を CP(Charge Point)と表記します
OCPP 2.x 仕様書で使われる CS = Charging Station は、CP と同義です。

OCPP(Open Charge Point Protocol)は、EV 充電器(Charge Point)と充電器管理システム(CSMS/バックエンド)の通信標準です。充電インフラの相互運用を目的に、オランダの Open Charge Alliance が策定・管理しています。

  • 充電器メーカーと運営事業者が異なっても「共通言語」で接続できる
  • イーサネット/LTE など transport を問わない
  • JSON または SOAP(バージョンにより異なる)でメッセージを交換

2. バージョンの変遷

バージョン主な特徴メッセージ形式セキュリティ現状の普及度
1.22010初版。基本的な充電制御のみSOAP 1.1TLS 任意ほぼ置換済み
1.52012外部リレー制御、スマート充電の基礎SOAP 1.2TLS 任意一部残存
1.6 J2015JSON 版追加(1.6J)、ハートビート導入JSON over WebSocketTLS 推奨現在主流
2.02020大幅拡張(RFID、トランザクション、ISO 15118 連携)JSON over WebSocketJWS 署名、TLS 必須パイロット導入
2.0.120212.0 のフィードバック反映、後方互換JSON over WebSocketJWS 署名、TLS 必須今後本命

2.0.1 からは 「セキュリティ標準(OCPP Security Whitepaper)」の遵守が事実上必須 です。TLS 1.2+クライアント認証、JWS 署名、鍵更新手順などが定義されます。

3. 主要コンポーネントと通信フロー

上図は OCPP 1.6J/2.0.1 共通 の代表的なシーケンスです。2.0.1 では AuthorizeAuthorize+SecurityEventNotification に分割されるなど、メッセージ粒度が細かくなります。

4. バージョン別の機能差分

4.1 スマート充電

  • 1.6J: SetChargingProfile で電流・電力制御
  • 2.0.1: 上記に加え 複数 EVSE優先度車両側プロファイル統合 をサポート

4.2 認証方式

機能1.6J2.0.1
RFID (ISO 14443)
プラグ&チャージ (ISO 15118)×
トークン型 (ソフト認証)

4.3 セキュリティ

1.6J では TLS 任意 だったため実装依存でしたが、2.0.1 では以下が必須になります。

  • TLS 1.2 以上(クライアント証明書推奨)
  • 署名付きメッセージ(JWS)
  • 鍵更新フロー (GetCertificate, ReplaceCertificate)
  • セキュリティログのアップロード (SecurityEventNotification)

5. 移行時の注意点

  1. 後方互換なし
    2.0.1 は 1.6J とメッセージ ID が異なるため、ゲートウェイ変換プロキシ が必要。
  2. 証明書運用
    2.0.1 では「CSMS 側の CA で署名された充電器証明書」が必須。証明書の配布・更新手順をあらかじめ整備する。
  3. ペイロードサイズ
    スマート充電プロファイルや ISO 15118 データによりペイロードが大型化。WebSocket フレームサイズ制限に注意。
  4. エッジ処理
    充電器に直接実装が難しい場合、エッジゲートウェイ で 1.6J→2.0.1 変換+セキュリティ強化を行うことが現実的。

6. どのバージョンを選ぶべきか

利用シーン推奨バージョン理由
既存 1.6J 充電器を運用1.6J 継続 or ゲートウェイ併用ハード交換コストを抑える
新規 AC 普及充電器2.0.1 (必須機能のみ)将来の ISO 15118 連携が視野
DC 急速+車両連携2.0.1 フル実装プラグ&チャージ / スマートグリッド連携

7. まとめ

  • 1.6J が現在も主流 だが、セキュリティ要件・車両連携機能の観点で 2.0.1 へシフト が加速
  • 2.0.1 はメッセージ数が約 2 倍。設計段階でモデル化(クラス設計・型定義)しておくと保守が容易
  • 移行には 証明書運用とゲートウェイ設計 がキーポイント

次回記事では、OCPP 2.0.1 の「主要メッセージタイプ」を詳しく掘り下げ、実際の JSON 例を使って解説します。