The control chain
From the grid operator through an aggregator and the charging network’s back office to the charger and the car: who sends what to whom, and the interconnection rules at the end.
- OCPP 2.1
- IEEE 2030.5
- OpenADR
- IEEE 1547
Utility or grid operator
Sends grid-code settings, power limits, prices and events
Utility to back office
Aggregator or charging operator’s back office
Builds a timeline from the utility’s events and sends OCPP messages
Back office to charger
Charger
Holds the limits; in DC it holds the inverter
Charger to car
Car
Linked to the charger by ISO 15118-20 or CHAdeMO
Interconnection layer
Under the whole chain sits the rule set for anything that can feed power into the grid. It attaches to the inverter, which is in the charger for DC and in the car for AC.OCPP 2.1 Part 2: Part R, chapter 1 and sections 2.2 to 2.3, pp. 540-542
IEEE 1547 and 1547.1
The interconnection and interoperability standard for distributed energy resources, and the tests that show equipment conforms. The 2018 edition is active, with a revision project open on interoperability and information exchange.
IEEE 1547-2018: Catalogue page; IEEE 1547.1-2020 catalogue pageUL 1741
The certification standard for inverters, converters and interconnection equipment. For interactive equipment it is used with IEEE 1547 and 1547.1.
UL 1741: Scope, sections 1.1 and 1.2SAE J3072
Secondary sources: the SAE catalogue could not be opened.
For the car’s own inverter in US AC V2G. The CPUC describes it as the AC standard for the car, equivalent to IEEE 1547-2018 and UL 1741 SB, and says a revised edition was published on 10 June 2024.
CPUC VGI forum, 2025: Slide 5
What each party does
- Utility or grid operator. A grid operator, a distribution or transmission utility, sends distributed-resource controls (grid-code curves, trip settings, power limits).OCPP 2.1 Part 2: Part R, chapter 1 and section 2.1, pp. 540-541OpenADR standardises the messages for automated demand response and distributed-resource management, so that price and reliability signals pass in a uniform way among utilities, system operators and energy management systems.OpenADR overview: Overview
- Aggregator or charging operator’s back office. In OCPP’s model the charging station operator acts as the aggregator. Its back office turns the prioritised utility events into a timeline and sends the matching OCPP messages.OCPP 2.1 Part 2: Part R, chapter 1 and section 2.1, pp. 540-541
- Charger. The charger caps a setpoint at the charge and discharge limits and can run some modes on its own. In DC it holds the inverter, so it is the resource to configure.OCPP 2.1 Part 2: Part Q, section 2.5, p. 506; Part R, section 2.2, pp. 541-542
- Car. OCPP’s bidirectional block covers charger-to-car links using either CHAdeMO or ISO 15118-20. In AC the inverter is in the car, and Amendment 1 of ISO 15118-20 can carry grid-code settings on to it.OCPP 2.1 Part 2: Part Q, chapter 1, p. 499; Part R, sections 2.3 to 2.5, pp. 542-543
OCPP 2.1: The back office to charger link, now with discharge
Back office to charger
OCPP 2.1: The back office to charger link, now with discharge
The specification, a free download, was read where cited.
Edition 2, 2025-12-03 (Edition 1 released 2025-01-23). Approved as IEC 63584-210.
Who talks to whom
OCPP is the open protocol between a charging station and its charging station management system.OCA: OCPP: Introduction
From the spec
- Each schedule period carries three fields in watts or amps. The setpoint is the target and is signed: positive charges, negative discharges. The limit is the maximum charge and is positive only. The discharge limit is the maximum discharge and is negative only.
setpointlimitdischargeLimitOCPP 2.1 Part 2: Part Q, section 2.1, p. 500 - The charger caps a positive setpoint at the limit and a negative one at the discharge limit. It rejects a profile whose setpoint lies outside the range from the discharge limit to the limit.
RejectedInvalidScheduleOCPP 2.1 Part 2: Part Q, section 2.5, p. 506 (requirements V2X.03 to V2X.05) - The bidirectional block has use cases Q01 to Q12: authorising V2X, charging only before V2X starts, central control with a schedule or a dynamic setpoint, external control, frequency support (central and local), local load balancing, idle, and going offline and resuming. The DER block has R01 to R05: starting a V2X session with DER control in the charger, in the car or hybrid across both, configuring DER settings at the charger, and reporting a DER event. Part 0 labels the same five U01 to U05 in its overview; the use-case table says R.OCPP 2.1 Part 0: Section 3.3, pp. 13-14; chapter 2, p. 7
- DER settings travel in messages to set, get and clear a control and to notify an alarm, with control types that include volt-var, frequency droop and ride-through trips. Combined charger and car capabilities are known only after ISO 15118-20 charge-parameter discovery.
SetDERControlGetDERControlClearDERControlNotifyDERAlarmNotifyEVChargingNeedsRequestOCPP 2.1 Part 2: Part R, section 2.6, p. 543; section 3.33, pp. 689-690 - Release 2.1 adds a functional block for bidirectional power transfer and one for controlling stations and cars as distributed energy resources.OCA: OCPP 2.1 released: Release news
The operation modes
Central setpointCentralSetpointThe back office sets it
The back office sets the setpoint. With a dynamic profile it can change the setpoint in the middle of a period with an update message, without sending a new profile.
UpdateDynamicScheduleRequestOCPP 2.1 Part 2: Part Q, section 2.2, p. 501The mode is set per schedule period, so different hours can run different modes; an unplanned change needs a new profile. Bidirectional operation requires a transaction or default transaction profile.TxProfileTxDefaultProfileOCPP 2.1 Part 2: Part Q, section 2.3, p. 505; use case Q05 prerequisites, p. 520
One quantity is written two ways in two links of the chain. OCPP 2.1 signs it: each schedule period has a setpoint that is positive to charge and negative to discharge, held within a limit that is positive only and a discharge limit that is negative only. ISO 15118-20, one link down, does not use a sign: direction is a named choice between Charge and Discharge in the power delivery request, and the limits come as separate maximum charge and maximum discharge fields. Its schema allows a negative number but does not say what one means. The sources describe no translation rule between the two; the one sign convention they show is Josev’s, an open-source implementation, which reads a negative last entry in the car’s power profile as Discharge.
The chain above that is longer than it looks, and the key fact is who is missing from it. OCPP 2.1 assumes the utility does not talk to stations or cars directly. The charging operator acts as the aggregator: it takes the utility’s controls, schedules them and passes them to the stations over OCPP. The IEA says commercial aggregators mostly run those back offices as a packaged service. The diagram therefore has no line from the utility to the car, and a chip on each link opens what that protocol carries.
On the utility side OCPP prescribes nothing. It names IEC 61850, mostly in Europe and Asia, and IEEE 2030.5, mostly in the USA, and notes that DNP3 and SunSpec Modbus are also listed. In California the IEEE 2030.5 profile is CSIP, which requires a defined set of grid functions of a smart inverter, from ride-through to volt-var, but says nothing about electric vehicles. OpenADR sits a layer above: it sends programme objectives, prices and events to systems that decide for themselves how to respond, and an aggregator can be a client of the utility and a server for its own fleet.
The link between the back office and the charger is where OCPP 2.1 differs most from 2.0.1. The earlier release has smart charging only: a text search of its specification finds no discharge or bidirectional use beyond a single parenthetical. The new one adds an operation mode to each schedule period, and the eight modes decide who sets the number: the back office, an outside system such as a site energy management system, or the charger itself from the grid frequency or the building’s meter. A mode can change from one period to the next.
At the last link a car speaks ISO 15118-20 or CHAdeMO. For CHAdeMO the page shows what one open-source charger-side implementation reads: a discharge-compatible bit in a status frame from each side, and four further frames for discharge limits, capability and estimates. That is a reading of code, not of the specification, and which CHAdeMO version first added discharge is not stated. In AC the inverter is in the car, which OCPP cannot reach directly. ISO 15118-20 Amendment 1 adds a service with two architectures to carry grid-code settings to it.
Under the whole chain sit the interconnection rules, which attach to the inverter wherever it is. IEEE 1547 and its test standard 1547.1 are the base, UL 1741 is how inverters are certified against them, and SAE J3072 is the US standard for a car’s own inverter, described here from the CPUC’s account because SAE’s catalogue could not be opened.
Sources
OCPP 2.1 Part 2 OCPP 2.1 Part 2: Specification, 803 pages. Edition 2, 2025-12-03; CC BY-ND 4.0 (in the free download set).
- Part Q, sections 2.1 and 2.5, pp. 500 and 506
- Part R, chapter 1, p. 540
- Part R, section 2.1, p. 541
- Part Q, sections 2.2 and 2.3, pp. 500-505
- Part R, sections 2.3 to 2.5, pp. 542-543
- Part R, chapter 1 and section 2.1, pp. 540-541
- Part Q, section 2.5, p. 506; Part R, section 2.2, pp. 541-542
- Part Q, chapter 1, p. 499; Part R, sections 2.3 to 2.5, pp. 542-543
- Part Q, section 2.3, p. 505; use case Q05 prerequisites, p. 520
- Part R, chapter 1 and sections 2.2 to 2.3, pp. 540-542
- Part Q, section 2.1, p. 500
- Part Q, section 2.5, p. 506 (requirements V2X.03 to V2X.05)
- Part R, section 2.6, p. 543; section 3.33, pp. 689-690
- Part Q, chapter 1, p. 499
- Part Q, section 2.2, p. 501; field table, p. 505
- Part Q, section 2.2, p. 501
- Part Q, section 2.2, p. 501; use case Q05, p. 520
- Part Q, section 2.2, p. 502
- Part Q, section 2.2, pp. 501-502
- Part Q, section 2.2, pp. 502-503
- Part Q, section 2.2, p. 505
ISO 15118-20 common messages (XSD) V2G_CI_CommonMessages.xsd, ISO’s openly published schema. Ed. 1, last modified 2021-10-12.
The schema carries no annotations: no units, no message order and no service numbers.
- Power delivery request and channel selection type
ISO 15118-20 common types (XSD) V2G_CI_CommonTypes.xsd, ISO’s openly published schema. Ed. 1, last modified 2021-10-12.
The schema carries no annotations: no units, no message order and no service numbers.
- Rational number type
Josev Open-source ISO 15118 implementation in Python (SwitchEV iso15118): the order of the messages in a session. Version 0.31.2, commit 1d29f53982d3, 2026-10-13.
One implementation’s state machine, not ISO text.
- iso15118_20_states.py, lines 851-859 and 1094-1103
IEA: vehicle-to-grid technology IEA, “Vehicle-to-grid technology” (part of Global EV Outlook 2026). 2026-05-20, CC BY 4.0.
- The charging station management system paragraph
CSIP 2.1 Common Smart Inverter Profile: IEEE 2030.5 Implementation Guide for Smart Inverters (CSIP Working Group). Version 2.1, March 2018.
- Table 1, pp. 8-9; text search of the whole guide
- Section 1; section 2 principles 7-8; sections 3.1 and 3.2, pp. 1-4
- Table 1, pp. 8-9
- Sections 4.4.1, 4.5 and 5.2, pp. 8-20
- Text search of the whole guide
OpenADR on DER and V2G OpenADR Alliance, “DER, V2G, and how it relates to OpenADR”. As fetched 2026-10-24; mentions a February 2026 white paper.
The Alliance describing its own role.
- DER, V2G and how it relates to OpenADR
OpenADR FAQ OpenADR Alliance, FAQ. As fetched 2026-10-24.
- Questions 17 to 19
OCPP 2.0.1 Part 2 OCPP 2.0.1 Part 2: Specification, 491 pages. Edition 4, 2025-12-03; CC BY-ND 4.0 (in the free download set).
- Part K, chapter 1, p. 238 (text search)
- Part K, chapters 1 and 2, pp. 238-240
- Part K, section 2.4, p. 240; table of contents, pp. 278-283
Battery-Emulator Open-source battery emulator, CHAdeMO “V2X mode” (CHADEMO-BATTERY.h and .cpp). Commit 7d03ad5d07a5, 2026-10-23.
One project’s reading of the protocol, not the specification.
- CHADEMO-BATTERY.h and .cpp, the discharge frames
- CHADEMO-BATTERY.h lines 132 and 166; .cpp lines 118 and 468
- CHADEMO-BATTERY.h lines 196-232 and 361-372
CHAdeMO protocol CHAdeMO Association, protocol development page. As fetched 2026-10-24; version numbers read from the image file names.
The Association describing its own protocol.
- Overview of CHAdeMO protocol versions
IEEE 1547-2018 IEEE 1547-2018, Interconnection and Interoperability of Distributed Energy Resources with Associated Electric Power Systems Interfaces (catalogue page). Approved 2018-02-15, published 2018-04-06, active; amendment 1547a-2020; revision project P1547 open.
- Catalogue page
- Catalogue page; IEEE 1547.1-2020 catalogue page
IEEE 1547.1-2020 IEEE 1547.1-2020, the test procedures that confirm equipment conforms to IEEE 1547 (catalogue page). Approved 2020-03-05, published 2020-05-21, active; amendment P1547.1a proposed.
- Catalogue page
UL 1741 UL Standards & Engagement catalogue entry for UL 1741. Edition 3, published 2021-09-28, last revised 2026-08-14.
Scope text only; the catalogue page does not show the text of the supplements.
- Scope, sections 1.1 and 1.2
CPUC VGI forum, 2025 CPUC Energy Division, “Vehicle-Grid Integration Forum: Interconnection”, 8 slides. 2025-04-16.
A regulator’s slide deck; it calls its own dates approximate. It is also where the SAE J3072 facts on this page come from, since the SAE catalogue could not be opened.
- Slide 5
OpenADR 3 OpenADR Alliance, OpenADR 3 Introduction and Certification Program. As fetched 2026-10-24.
The OpenADR 3 specification itself sits behind an email form and was not read.
- Sections 1 and 2
OCA: OCPP Open Charge Alliance, Open Charge Point Protocol page. As fetched 2026-10-24.
- Introduction
OCPP 2.1 Part 0 OCPP 2.1 Part 0: Introduction. Edition 2, 2025-12-03; CC BY-ND 4.0 (in the free download set).
- Section 3.3, pp. 13-14; chapter 2, p. 7
- Section 1.1, p. 3
- Chapter 2, p. 6
OCA: OCPP 2.1 released Open Charge Alliance news, “OCPP 2.1 is now available!”. 2025-01-23.
- Release news
ISO 15118-20 ISO 15118-20:2022, Part 20: 2nd generation network layer and application layer requirements. Ed. 1, 2022-04 (catalogue abstract).
- Abstract
ISO 15118-20 DC messages (XSD) V2G_CI_DC.xsd, ISO’s openly published schema. Ed. 1, last modified 2021-08-23.
The schema carries no annotations: no units, no message order and no service numbers.
- Charge parameter discovery and charge loop, with discharge variants
furdog/chademo Open-source CHAdeMO charger implementation (furdog/chademo). Commit d3c33bf83c7825e19cd856f40bededfb1da9ab24, 2026-05-25.
One project’s code, searched for discharge; not the specification. It is the second open-source project in the dossier’s chademoOpen reading.
- Repository, searched at the pinned commit
Everything here is paraphrased from the pinned sources, not quoted. The SAE entries rest on secondary sources, because SAE’s own catalogue could not be opened; an industry body’s reading is labelled as one. Anything illustrative is labelled as such. Where a source is silent the page says so instead of filling the gap.
