Custom Implementation of the Central Station

Guidelines for implementing custom OCPP Central Station functionality and handling incoming requests from Charge Points.

Overview

An OCPP 1.6 Central Station has to handle the incoming requests from the Charge Points. The WinCC OA OCPP 1.6 sub-project provides a framework with which a customer can handle the incoming requests depending on their requirements.

Using the CTRL Interface, the customer can either use the base implementation as is or use it as a starting point for handling the received requests from the Charge Point.

Important:
After changing the implementation of CTRL scripts, the JavaScript Manager with the script ocpp/index.js must be restarted.

Customizable Request Handlers

The following requests can be handled with custom implementations:

Authorize

Default implementation: Accept every user.

Before the owner of an electric vehicle can start or stop charging, the Charge Point has to authorize the operation. The base implementation will accept every ID tag which is received.

StartTransaction

Default implementation: Accept the start of the transaction and increment the transaction ID.

The Charge Point sends a StartTransaction to the Central System to inform about a transaction that has been started. The base implementation will accept every StartTransaction request and write the received information to _OCPP_1_6_Connector.Transaction.Start.*.

StopTransaction

Default implementation: Accept the stop of the transaction and update the transaction information on the connector.

When a transaction is stopped, the Charge Point sends a StopTransaction, notifying the Central System that the transaction has stopped. The base implementation will accept every StopTransaction request and write the received information to _OCPP_1_6_Connector.Transaction.Stop.*.

DataTransfer

Default implementation: Reply with UnknownVendorId.

If a Charge Point / Central System needs to send information to the connection partner for a function not supported by OCPP, it uses DataTransfer. The base implementation will respond to the data transfer telegram using UnknownVendorId and write it to the log, no further action is taken.

Example Implementation

An example for changing the default implementation can be found in the OCPP_3.21/scripts/libs/examples/classes/ocpp/1.6/Ocpp16RequestHandler.ctl.

Available Commands

The following commands can be triggered using the UI or the corresponding CTRL class:

Core Profile Commands
  • ChangeAvailability: Central System can request a Charge Point to change its availability.
  • ChangeConfiguration: Central System can request a Charge Point to change configuration parameters.
  • ClearCache: Central System can request a Charge Point to clear its Authorization Cache.
  • GetConfiguration: To retrieve the value of configuration settings, the Central System sends a GetConfiguration to the Charge Point.
  • RemoteStartTransaction: Central System can request a Charge Point to start a transaction by sending a RemoteStartTransaction.
  • RemoteStopTransaction: Central System can request a Charge Point to stop a transaction by sending a RemoteStopTransaction to Charge Point with the identifier of the transaction.
  • Reset: The Central System sends a Reset to request a Charge Point to reset itself. The Central System can request a hard or a soft reset.
  • UnlockConnector: Central System can request a Charge Point to unlock a connector.
Smart Charging Profile Commands
  • ClearChargingProfile: If the Central System wishes to clear some or all of the charging profiles that were previously sent the Charge Point, it uses the ClearChargingProfile.
  • GetCompositeSchedule: The Central System may request the Charge Point to report the Composite Charging Schedule by sending a GetCompositeSchedule.
  • SetChargingProfile: A Central System can send a SetChargingProfile to a Charge Point, to set a charging profile in various situations.
Remote Trigger Profile Commands
  • TriggerMessage: The TriggerMessage makes it possible for the Central System, to request the Charge Point, to send Charge Point-initiated messages.
Local Auth List Management Profile Commands
  • GetLocalListVersion: In order to support synchronization of the Local Authorization List, Central System can request a Charge Point for the version number of the Local Authorization List.
  • SendLocalList: Central System can send a Local Authorization List that a Charge Point can use for authorization of ID tags.
Reservation Profile Commands
  • CancelReservation: To cancel a reservation the Central System sends a CancelReservation to the Charge Point.
  • ReserveNow: A Central System can issue a ReserveNow to a Charge Point to reserve a connector for use by a specific ID tag.
Firmware Management Profile Commands
  • GetDiagnostics: Central System can request a Charge Point for diagnostic information.
  • UpdateFirmware: Central System can notify a Charge Point that it needs to update its firmware.

Automatic Response Handling

The following messages are automatically handled by the OCPP manager:

  • BootNotification: The manager will automatically respond to this message using the ChargePoint Registration state, which can be set in the application.
  • Heartbeat: To let the Central System know that a Charge Point is still connected, a Charge Point sends a heartbeat after a configurable time interval. The timestamp of the last heartbeat can be seen on _OCPP_1_6_ChargePoint.State.Connected:_online.._stime.
  • MeterValues: A Charge Point may sample the electrical meter or other sensor/transducer hardware to provide extra information about its meter values. The contents of the telegram are written to the DPE _OCPP_1_6_Connector.MeterValues for the connector indicated by the connectorId field of the meter values telegram.
  • StatusNotification: A Charge Point sends a notification to the Central System to inform the Central System about a status change or an error within the Charge Point. The received status data is written to the DPEs underneath _OCPP_1_6_Connector.Status.
  • DiagnosticsStatusNotification: Charge Point sends a notification to inform the Central System about the status of a diagnostics upload. The received status is written to the _OCPP_1_6_ChargePoint.State.DiagnosticsStatusNotification DPE.
  • FirmwareStatusNotification: A Charge Point sends notifications to inform the Central System about the progress of the firmware update. The received status is written to the _OCPP_1_6_ChargePoint.State.FirmwareStatusNotification DPE.