Open Charge Point Protocol 1.5
Open Charge Point Protocol (hereafter OCPP) is an open standard initiated by E-laad (now ElaadNL) which describes a method enabling electrical vehicles to communicate with a central system. This document describes the functionalities of OCPP 1.5.
The standard makes use of Simple Object Access Protocol (hereafter SOAP). SOAP is a framework which makes it possible to send messages between components over the internet. The advantage of SOAP is that the facilities for sending and receiving messages are covered by the standard. This makes rapid implementation possible.
The content of a SOAP message is drawn up according to the Extensible Markup Language (XML) standard. This language is related to the HTML we know from the Internet. In addition to written text, XML messages may also contain images and executable code. The big advantage is that the messages are sent in legible text.
25 operations are described within OCPP 1.5. Of these 10 are initiated by the charge point and 15 by the Central system.
Initiated by the charge point: Authorize, Boot Notification, Data Transfer, Diagnostics Status Notification, Firmware Status Notification, Heartbeat, Meter Values, Start Transaction, Status Notification and Stop Transaction.
Initiated by the central system: Cancel Reservation, Change Availability, Change Configuration, Clear Cache, Data Transfer, Get Configuration, Get Diagnostics, Get Local List Version, Remote Start Transaction, Remote Stop Transaction, Reserve Now, Reset, Send Local List, Unlock Connector and Update Firmware.
When communication takes place between a charge point and the central system it always begins with a request. In the OCPP specification this is described with operationname.req(). The recipient of the message will always reply with a confirmation. In the OCPP specification a confirmation is described as operationname.conf().
The figure below shows the communication flow for the operation Authorize. It shows that the charge point sends a message to the central system, Authorization.req() and gets an answer in the form of Authorization.conf(). For the sake of clarity the message names and the rest of the communication flows in this figure have been omitted.
There follows a functional description of the data which are exchanged between a charge point and the central system during various operations.
Download OCPP 1.5