Pereiti prie turinio

OCPP 2.0.1 ir 2.1 protokolo žinynas.

Visi 91 OCPP 2.0.1 ir 2.1 pranešimai su laukais ir pavyzdžiu, kuriuos pridėjo 2.1, įrenginio modelis, pakeitęs 1.6 konfigūracijos raktus, ir trys saugumo profiliai.

PranešimaiĮrenginio modelisSaugumo profiliaiPereinant nuo 1.6Klausimai

Kas yra OCPP 2.0.1 ir 2.1?

Tai naujesnės Open Charge Point Protocol versijos, atviro Open Charge Alliance standarto, nustatančio, kaip įkrovimo stotelė bendrauja su ją valdančia programine įranga: specifikacijoje tai CSMS, rinkoje vadinama valdymo sistema (back office). Kaip ir 1.6J, stotelė atidaro WebSocket ryšį su valdymo sistema, ir abi pusės juo siunčia JSON pranešimus.

OCPP 2.0.1 nėra atgaliniu būdu suderinamas su 1.6. Jis aprašo stotelę kaip įrenginio modelį iš komponentų ir kintamųjų, turi tris integruotus saugumo profilius, praneša įkrovimo sesiją vienu pranešimu TransactionEvent ir palaiko ISO 15118, skirtą Plug and Charge ir išmaniajam įkrovimui su automobilio duomenimis.

OCPP 2.1 remiasi 2.0.1. Jo schemos yra 2.0.1 schemos su pridėtais neprivalomais laukais, ir jis prideda 27 pranešimus dvikrypčiam įkrovimui, DER valdymui, tarifams stotelėje, kuri pati skaičiuoja kainą, mokėjimui prie stotelės, periodiniams įvykių srautams ir akumuliatorių keitimui. Stotelė ir jos valdymo sistema, atidarydamos WebSocket ryšį, susitaria dėl vienos versijos.

  • Atviras standartasDiegti nemokama, prižiūri Open Charge Alliance. OCPP 2.1 taip pat paskelbtas kaip IEC 63584-210.
  • WebSocket ir JSONVienas ryšys, kurį stotelė laiko atvirą. 2.1 prideda SEND, pranešimą, į kurį neatsakoma.
  • 91 pranešimas64 versijoje 2.0.1 ir dar 27 versijoje 2.1, 19 funkcinių blokų.
  • Abiem kryptimisStotelė ir valdymo sistema kiekviena inicijuoja savo pranešimus.

Visi 91 OCPP 2.0.1 ir 2.1 pranešimai

Kiekvienas pranešimas yra vienos pusės užklausa ir kitos pusės atsakymas, susieti pranešimo ID. Vienintelė išimtis yra NotifyPeriodicEventStream: 2.1 versijos SEND pranešimas, į kurį neatsakoma.

Saugumas

Stotelės ir valdymo sistemos sertifikatai bei saugumo įvykiai, kuriuos praneša stotelė.

Parengimas

Paleidimas, registracija valdymo sistemoje, įrenginio modelio nuskaitymas ir nustatymas bei paleidimai iš naujo.

Autorizacija

ID žetono tikrinimas prieš įkrovimą, autorizacijos podėlis, o 2.1 versijoje ir vienkartinis mokėjimas.

Vietinis autorizacijos sąrašas

ID žetonų sąrašas, kurį valdymo sistema saugo stotelėje, kad ši galėtų autorizuoti pati.

Įkrovimo sesijos

Vienas pranešimas, TransactionEvent, kiekvienos įkrovimo sesijos pradžiai, atnaujinimams ir pabaigai.

Nuotolinis valdymas

Sesijos pradėjimas ir sustabdymas iš valdymo sistemos, jungties atrakinimas ir pranešimo iškvietimas.

Pasiekiamumas

Kiekvienos jungties būsena, Heartbeat ir stotelės ar EVSE išjungimas iš eksploatacijos.

Rezervacija

EVSE rezervavimas ID žetonui ir tos rezervacijos atšaukimas.

Tarifai ir kaina

Kainos ir einamoji kaina vairuotojui; 2.1 versijoje taip pat tarifai stotelėje, kuri pati skaičiuoja kainą.

Skaitiklio rodmenys

Skaitiklio rodmenys ne sesijos metu; sesijos metu jie keliauja TransactionEvent pranešime.

Išmanusis įkrovimas

Įkrovimo profiliai su galios arba srovės ribomis, išorinės ribos ir automobilio poreikiai.

Mikroprogramos valdymas

Stotelės mikroprogramos atnaujinimas ir jos paskelbimas per vietinį valdiklį.

Sertifikatų valdymas

Sertifikatų diegimas ir tikrinimas, įskaitant Plug and Charge sutarčių sertifikatus.

Diagnostika

Žurnalai, įrenginio modelio stebėsena, įvykiai, kliento duomenys ir, 2.1 versijoje, periodiniai įvykių srautai.

Pranešimai ekrane

Pranešimai, kuriuos valdymo sistema nustato, kad stotelė rodytų vairuotojams.

Duomenų perdavimas

Gamintojo duomenys funkcijoms, kurių standartas neapima.

Dvikryptis galios perdavimas

Nauja 2.1 versijoje: įkrovimo ir iškrovimo (V2X) valdymas per įkrovimo profilius.

DER valdymas

Nauja 2.1 versijoje: tinklo palaikymo nustatymai stotelei ir automobiliui, veikiantiems kaip paskirstytasis energijos išteklius.

Akumuliatorių keitimas

Nauja 2.1 versijoje: akumuliatorių keitimo stotys.

OCPP 2.0.1 įrenginio modelis

OCPP 1.6 versijoje stotelė turi plokščią konfigūracijos raktų sąrašą. 2.0.1 ir 2.1 versijose ji aprašo save komponentais, pavyzdžiui, įkrovimo stotele, EVSE, jungtimi arba valdikliu, tokiu kaip OCPPCommCtrlr, ir kiekvienas komponentas turi kintamųjų. Kintamasis gali turėti keturias reikšmes: Actual, Target, MinSet ir MaxSet. Tai, kas anksčiau buvo konfigūracijos raktas, dabar yra valdiklio komponento kintamasis.

Kaip su juo dirbti

  • GetVariables ir SetVariablesVienu pranešimu nuskaitykite arba nustatykite kelis kintamuosius. Stotelė atsako dėl kiekvieno kintamojo atskirai.
  • GetBaseReport ir GetReportPaprašykite viso įrenginio modelio arba jo dalies. Stotelė jį grąžina NotifyReport pranešimais.
  • StebėsenaSetVariableMonitoring stebi kintamąjį pagal slenkstį, pokytį arba fiksuotą intervalą, o stotelė praneša per NotifyEvent.
  • Enabled, kiekvienai funkcijaiNeprivalomos funkcijos valdiklis, pavyzdžiui, AuthCacheCtrlr arba ReservationCtrlr, turi kintamąjį Enabled, kuris tą funkciją įjungia arba išjungia.

Atsakymai į SetVariables

Priimta
Reikšmė nustatyta.
Rejected
Kintamasis yra, bet reikšmė atmesta.
UnknownComponent
Stotelė tokio komponento neturi.
UnknownVariable
Komponentas tokio kintamojo neturi.
NotSupportedAttributeType
Kintamasis neturi tokio tipo reikšmės, pavyzdžiui, Target.
RebootRequired
Reikšmė išsaugota ir įsigalios po paleidimo iš naujo.

Kintamieji, pakeitę žinomiausius 1.6 raktus

Specifikacija standartizuoja daug daugiau, jie išvardyti jos prieduose. Stotelė, atsakydama į GetBaseReport, praneša tuos, kuriuos turi.

Komponentas ir kintamasisTipasKą jis nustatoOCPP 1.6 versijoje
OCPPCommCtrlr.HeartbeatIntervalsveikasis skaičius sekundėmisSekundės be kitų pranešimų, po kurių stotelė siunčia Heartbeat.HeartbeatInterval
OCPPCommCtrlr.MessageAttemptsEgzempliorius TransactionEventintegerKiek kartų stotelė bando pristatyti TransactionEvent, kurio valdymo sistema negalėjo apdoroti.TransactionMessageAttempts
OCPPCommCtrlr.MessageAttemptIntervalEgzempliorius TransactionEventintegerKiek sekundžių stotelė laukia prieš bandydama dar kartą.TransactionMessageRetryInterval
OCPPCommCtrlr.WebSocketPingIntervalsveikasis skaičius sekundėmisSekundės tarp WebSocket ping signalų; 0 išjungia pačios stotelės ping signalus.WebSocketPingInterval
OCPPCommCtrlr.ResetRetriesintegerKiek kartų stotelė kartoja nepavykusį paleidimą iš naujo.ResetRetries
OCPPCommCtrlr.UnlockOnEVSideDisconnectbooleanAtrakinti kabelį stotelėje, kai jis atjungiamas automobilio pusėje.UnlockConnectorOnEVSideDisconnect
SampledDataCtrlr.TxUpdatedMeasurandssąrašasKą stotelė matuoja sesijos metu, siunčiama TransactionEvent pranešime su eventType Updated.MeterValuesSampledData
SampledDataCtrlr.TxUpdatedIntervalsveikasis skaičius sekundėmisSekundės tarp tų rodmenų; 0 sesijos metu jų nesiunčia.MeterValueSampleInterval
SampledDataCtrlr.TxEndedMeasurandssąrašasKas įtraukiama į TransactionEvent, kuriuo sesija baigiama.StopTxnSampledData
AlignedDataCtrlr.Intervalsveikasis skaičius sekundėmisSekundės tarp laikrodžiu sulygiuotų rodmenų.ClockAlignedDataInterval
AlignedDataCtrlr.MeasurandssąrašasKą apima laikrodžiu sulygiuoti rodmenys.MeterValuesAlignedData
AlignedDataCtrlr.TxEndedMeasurandssąrašasLaikrodžiu sulygiuoti rodmenys, įtraukiami į TransactionEvent, kuriuo sesija baigiama.StopTxnAlignedData
TxCtrlr.EVConnectionTimeOutsveikasis skaičius sekundėmisKiek sekundžių vairuotojas turi prijungti kabelį po sesijos pradžios, kol ji neatšaukta.ConnectionTimeOut
TxCtrlr.StopTxOnEVSideDisconnectbooleanBaigti sesiją, kai kabelis atjungiamas automobilio pusėje.StopTransactionOnEVSideDisconnect
TxCtrlr.StopTxOnInvalidIdbooleanSustabdyti vykstančią sesiją, kai paaiškėja, kad jos ID žetonas nepriimtas.StopTransactionOnInvalidId
TxCtrlr.MaxEnergyOnInvalidIdintegerEnergija Wh, kurią stotelė dar gali patiekti valdymo sistemai atmetus ID žetoną.MaxEnergyOnInvalidId
TxCtrlr.TxStartPointsąrašasKada sesija prasideda: autorizavus, prijungus kabelį, pradėjus tekėti energijai ir pan.Nauja 2.0.1 versijoje
TxCtrlr.TxStopPointsąrašasKada sesija baigiasi, pasirenkama iš to paties sąrašo.Nauja 2.0.1 versijoje
AuthCtrlr.AuthorizeRemoteStartbooleanAr stotelė nuotolinio paleidimo ID žetoną pirma patikrina Authorize užklausa.AuthorizeRemoteTxRequests
AuthCtrlr.LocalAuthorizeOfflinebooleanBūdama be ryšio, pradėti sesijas jau žinomiems ID žetonams.LocalAuthorizeOffline
AuthCtrlr.LocalPreAuthorizebooleanPradėti jau žinomiems ID žetonams nelaukiant valdymo sistemos.LocalPreAuthorize
AuthCtrlr.OfflineTxForUnknownIdEnabledbooleanBūdama be ryšio, pradėti sesijas nežinomiems ID žetonams.AllowOfflineTxForUnknownId
AuthCacheCtrlr.EnabledbooleanNaudoti autorizacijos podėlį.AuthorizationCacheEnabled
LocalAuthListCtrlr.EnabledbooleanNaudoti vietinį autorizacijos sąrašą.LocalAuthListEnabled
LocalAuthListCtrlr.ItemsPerMessageEgzempliorius SendLocalListintegerDaugiausia ID žetonų viename SendLocalList.SendLocalListMaxLength
SmartChargingCtrlr.ProfileStackLevelintegerAukščiausias steko lygis, kurį gali turėti įkrovimo profilis.ChargeProfileMaxStackLevel
SmartChargingCtrlr.RateUnitsąrašasAr grafikai gali būti amperais, vatais ar abiem.ChargingScheduleAllowedChargingRateUnit
SmartChargingCtrlr.PeriodsPerScheduleintegerDaugiausia laikotarpių viename įkrovimo grafike.ChargingScheduleMaxPeriods
SmartChargingCtrlr.Phases3to1booleanAr stotelė sesijos metu gali persijungti iš trijų fazių į vieną.ConnectorSwitch3to1PhaseSupported
ReservationCtrlr.NonEvseSpecificbooleanAr rezervacija gali būti visai stotelei, o ne vienam EVSE.ReserveConnectorZeroSupported

OCPP 2.0.1 ir 2.1 saugumo profiliai

Abi versijos apibrėžia tris saugumo profilius. Stotelė ir jos valdymo sistema vienu metu naudoja vieną, ir jis nustatomas prieš pirmąjį OCPP pranešimą. Valdymo sistema jį nustato kiekvienam ryšio lizdui pranešimu SetNetworkProfile, o stotelė naudojamą profilį praneša per SecurityCtrlr.SecurityProfile.

ProfilisKaip stotelė įrodo, kas ji yraKaip valdymo sistema įrodo, kas ji yraRyšys
1. Neapsaugotas perdavimas su paprastąja autentifikacijaHTTP Basic autentifikacija su slaptažodžiuNeįrodoNešifruojamas. Tik patikimiems tinklams, pavyzdžiui, VPN tarp stotelės ir valdymo sistemos.
2. TLS su paprastąja autentifikacijaHTTP Basic autentifikacija su slaptažodžiuSavo TLS serverio sertifikatuTLS 1.2 arba naujesnis
3. TLS su kliento sertifikataisSavo TLS kliento sertifikatuSavo TLS serverio sertifikatuTLS 1.2 arba naujesnis
  • Profilio žeminimasStotelė gali pereiti tik iš 3 profilio į 2 profilį ir tik tada, kai AllowSecurityProfileDowngrade nustatytas true. Per OCPP ji niekada nepereina į 1 profilį.
  • Slaptažodžiai ir sertifikataiSlaptažodis yra SecurityCtrlr.BasicAuthPassword. Stotelė naujo sertifikato prašo pranešimu SignCertificate, o valdymo sistema jį pristato pranešimu CertificateSigned.
  • Saugumo įvykiaiStotelė pranešimu SecurityEventNotification praneša, kas nutiko, pavyzdžiui, paleidimą iš naujo, mikroprogramos atnaujinimą arba valdymo sistemos atmestus prisijungimo duomenis.

Nuo OCPP 1.6 iki 2.0.1, pranešimas po pranešimo

OCPP 2.0.1 išlaikė daug 1.6 pranešimų pavadinimų, o kitus pervadino arba sujungė. Nuoroda atidaro pranešimą šiame žinyne arba 1.6J žinyne.

OCPP 1.6OCPP 2.0.1 ir 2.1Kas pasikeitė
StartTransaction, StopTransactionTransactionEventVienas pranešimas su eventType Started, Updated arba Ended. Sesijos ID nustato stotelė, tai eilutė.
MeterValuesTransactionEvent, MeterValuesRodmenys sesijos metu keliauja TransactionEvent pranešime; MeterValues perduoda rodmenis ne sesijos metu.
StatusNotificationStatusNotification, NotifyEventStatusNotification praneša tik jungties būseną su evseId ir connectorId. Klaidų kodai keliauja NotifyEvent pranešime, o 2.1 versija ir pasiekiamumui teikia pirmenybę NotifyEvent.
RemoteStartTransactionRequestStartTransactionPerduoda idToken objektą ir remoteStartId, kuris grįžta TransactionEvent pranešime, pradedančiame sesiją.
RemoteStopTransactionRequestStopTransactionSustabdo sesiją pagal jos ID, kuris dabar yra eilutė.
ChangeConfigurationSetVariablesVienu pranešimu nustato kelis įrenginio modelio kintamuosius.
GetConfigurationGetVariables, GetBaseReport, GetReportNuskaito pasirinktus kintamuosius arba prašo ataskaitos, kuri ateina NotifyReport pranešimais.
GetDiagnosticsGetLogPrašo diagnostikos arba saugumo žurnalo.
DiagnosticsStatusNotificationLogStatusNotificationPraneša to įkėlimo eigą.
ResetResetImmediate arba OnIdle vietoj Hard arba Soft, ir gali paleisti iš naujo vieną EVSE.
ChangeAvailabilityChangeAvailabilityPer evse lauką nukreipiamas į stotelę, EVSE arba jungtį.
AuthorizeAuthorizeidToken objektas su tipu vietoj idTag eilutės.
BootNotificationBootNotificationPrideda paleidimo priežastį; stotelės duomenys yra chargingStation objekte.
Heartbeat, UnlockConnector, ClearCache, DataTransfer, ReserveNow, CancelReservation, SendLocalList, GetLocalListVersion, SetChargingProfile, ClearChargingProfile, GetCompositeSchedule, TriggerMessage, UpdateFirmware, FirmwareStatusNotificationTie patys pavadinimaiTie patys pranešimai, su laukais EVSE ir naujesniais duomenų tipais.

Klausimai apie OCPP 2.0.1 ir 2.1

Open Charge Point Protocol 2.0.1 versija, kurią Open Charge Alliance paskelbė 2020 m. Ji pakeitė OCPP 2.0 ir, palyginti su 1.6, prideda įrenginio modelį, saugumo profilius, ISO 15118 palaikymą ir TransactionEvent. Ji nėra atgaliniu būdu suderinama su 1.6.

OCPP 2.1 paskelbtas 2025 m. sausį ir taip pat yra standartas IEC 63584-210. Jis prideda 27 pranešimus ir nė vieno nepašalina: dvikryptis įkrovimas (V2X) ir DER valdymas, ISO 15118-20, tarifai stotelėje, kuri pati skaičiuoja kainą, mokėjimas prie stotelės kortelių terminalu arba QR kodu, prioritetinis įkrovimas, dinaminiai įkrovimo profiliai, periodiniai įvykių srautai ir akumuliatorių keitimas. Virš pranešimų pasirinkite „Nauja 2.1 versijoje“, kad juos pamatytumėte.

2.1 schemos yra 2.0.1 schemos su pridėtais neprivalomais laukais, ir, pasak Open Charge Alliance, 2.0.1 versijai parašyta logika toliau veikia su dviem nedideliais pakeitimais: SignCertificate gali perduoti requestId, kurį CertificateSigned tada pakartoja, o NotifyMonitoringReport turi vieną naują privalomą lauką. Versija vis tiek suderinama kiekvienam ryšiui: WebSocket užmezgimo metu stotelė pasiūlo, pavyzdžiui, ocpp2.1, ocpp2.0.1 ir ocpp1.6, o valdymo sistema pasirenka vieną.

2.0.1 turi savo pranešimų rinkinį: įrenginio modelį vietoj konfigūracijos raktų, saugumo profilius, TransactionEvent vietoj StartTransaction ir StopTransaction, EVSE kaip lygmenį tarp stotelės ir jos jungčių bei pranešimus ISO 15118. Stotelė ir jos valdymo sistema, užmezgdamos ryšį, susitaria dėl vienos versijos. Lentelėje aukščiau pranešimai sugretinti, o OCPP 1.6J žinyne yra kiekvienas 1.6 pranešimas.

Išleidus OCPP 2.0, išryškėjo problemų, kurias buvo galima ištaisyti tik pakeitus pranešimų schemas, o 2.0 įgyvendinimas to negalėjo perimti. Open Charge Alliance pataisytai versijai suteikė atskirą numerį, 2.0.1, ir pataria įgyvendinti tik 2.0.1. Specifikacijoje OCPP 2.0 reiškia 2.0.1, nebent nurodyta kitaip.

Open Charge Alliance abi nemokamai skelbia savo svetainėje su JSON schema kiekvienam pranešimui ir klaidų sąrašu. Šis žinynas remiasi JSON schemomis ir 2 specifikacijos dalimi. Jei jie skiriasi, teisi specifikacija ir jos klaidų sąrašas.

Patikrinkite stotelių duomenų bazėje: 102 stotelės joje nurodo OCPP 2.0.1, o 4 nurodo 2.1. Tai paprastai nurodyta ir duomenų lape. Kelias versijas palaikanti stotelė, jungdamasi pasiūlo jas visas, o valdymo sistema pasirenka vieną.

OCPP 1.6J su Plugchoice

Plugchoice jau dabar prijungia OCPP 1.6J stoteles, priklausomai nuo modelio, mikroprogramos ir konfigūracijos.