首页 > 其他分享 >OCPP1.6 v2 之 ocpp-1.6 edition 2 (中文翻译)

OCPP1.6 v2 之 ocpp-1.6 edition 2 (中文翻译)

时间:2024-06-05 12:05:13浏览次数:7  
标签:1.6 中文翻译 conf 配置文件 PDU req edition 连接器 充电

开放充电点协议 1.6

第二版 最终版,2017年9月28日

目录

1.范围.................................................................................................4

2.术语和约定..........................................................................................5

2.1. 约定.....................................................................................................5

2.2. 定义.................................................................................................5

2.3. 缩写...................................................................................................6

2.4. 参考文献...........................................................................................7

3.引言.................................................................................................8

3.1. 第二版.........................................................................................8

3.2. 文档结构........................................................................................8

3.3. 功能特性概要...............................................................................8

3.4. 总体操作视图...............................................................................10

3.5. 本地授权和离线行为....................................................................................12

3.6. 与能量传输周期相关的交易...............................................................15

3.7. 与交易相关的消息...............................................................................17

3.8. 连接器编号.........................................................................................18

3.9. ID令牌............................................................................................18

3.10. 父级idTag....................................................................................19

3.11. 预约...............................................................................................19

3.12. 供应商特定数据传输......................................................................19

3.13. 智能充电...................................................................................20

3.14. 时区..........................................................................................29

3.15. 时间表示法....................................................................................29

3.16. 计量数据..................................................................................(此处未给出具体页码)

4.充电点发起的操作..........................................................................................................32

4.1. 授权(Authorize)..............................................................................................32

4.2. 启动通知(BootNotification)..................................................................................32

4.3. 数据传输(DataTransfer)....................................................................................34

4.4. 诊断状态通知(DiagnosticsStatus Notification)...............................................34

4.5. 固件状态通知(FirmwareStatus Notification)...................................................34

4.6. 心跳(Heartbeat)..............................................................................................35

4.7. 计量值(MeterValues)........................................................................................35

4.8. 开始交易(StartTransaction)................................................................................37

4.9. 状态通知(StatusNotification)............................................................................38

4.10. 结束交易(StopTransaction).........................................................................43

5.中央系统发起的操作........................................................................................................45

5.1. 取消预约(CancelReservation).............................................................................45

5.2. 更改可用性(ChangeAvailability)............................................................................45

5.3. 更改配置(ChangeConfiguration)............................................................................45

5.4. 清除缓存(ClearCache).........................................................................................46

5.5. 清除充电配置文件(ClearCharging Profile)...........................................................47

5.6. 数据传输(DataTransfer)........................................................................................47

5.7. 获取复合时间表(GetComposite Schedule)........................................................47

5.8. 获取配置(GetConfiguration)...................................................................................48

5.9. 获取诊断信息(GetDiagnostics)..............................................................................48

5.10. 获取本地列表版本(GetLocal List Version)............................................................49

5.11. 远程启动交易(RemoteStart Transaction)...............................................................49

5.12. 远程停止交易(RemoteStop Transaction).............................................................50

5.13. 立即预约(ReserveNow).........................................................................................51

5.14. 重置(Reset).........................................................................................................52

5.15. 发送本地列表(SendLocal List)...............................................................................52

5.16. 设置充电配置文件(SetCharging Profile)...............................................................53

5.17. 触发消息(TriggerMessage)...............................................................................55

5.18. 解锁充电接口(UnlockConnector)..........................................................................56

5.19. 更新固件(UpdateFirmware)...........................................................................57

6.消息(Messages).............................................................................................60

6.1. 授权请求(Authorize.req).................................................................................60

6.2. 授权确认(Authorize.conf)..............................................................................60

6.3. 引导通知请求(BootNotification.req)..................................................................60

6.4. 引导通知确认(BootNotification.conf)................................................................. 61

6.5. 取消预约请求(CancelReservation.req).............................................................. 61

6.6. 取消预约确认(CancelReservation.conf).............................................................. 61

6.7. 更改可用性请求(ChangeAvailability.req)............................................................ 61

6.8. 更改可用性确认(ChangeAvailability.conf)........................................................... 62

6.9. 更改配置请求(ChangeConfiguration.req)......................................................... 62

6.10. 更改配置确认(ChangeConfiguration.conf)........................................................ 62

6.11. 清除缓存请求(ClearCache.req)...........................................................................626.12. 清除缓存确认(ClearCache.conf).........................................................................636.13. 清除充电配置文件请求(ClearChargingProfile.req).............................................. 636.14. 清除充电配置文件确认(ClearChargingProfile.conf)............................................. 636.15. 数据传输请求(DataTransfer.req).............................................................................636.16. 数据传输确认(DataTransfer.conf)...................................................................646.17. 诊断状态通知请求(DiagnosticsStatusNotification.req)........................................ 646.18. 诊断状态通知确认(DiagnosticsStatusNotification.conf)...................................... 646.19. 固件状态通知请求(FirmwareStatusNotification.req)......................................... 646.20. 固件状态通知确认(FirmwareStatusNotification.conf).......................................... 65

6.21. 获取复合时间表请求(GetCompositeSchedule.req)....................................................... 656.22. 获取复合时间表确认(GetCompositeSchedule.conf)............................................... 656.23. 获取配置请求(GetConfiguration.req)....................................................................656.24. 获取配置确认(GetConfiguration.conf)................................................................. 666.25. 获取诊断信息请求(GetDiagnostics.req).............................................................. 666.26. 获取诊断信息确认(GetDiagnostics.conf)............................................................. 666.27. 获取本地列表版本请求(GetLocalListVersion.req)............................................... 666.28. 获取本地列表版本确认(GetLocalListVersion.conf)............................................. 676.29. 心跳请求(Heartbeat.req)..................................................................................676.30. 心跳确认(Heartbeat.conf)....................................................................................67

6.31. 电表值请求(MeterValues.req)..........................................................................676.32. 电表值确认(MeterValues.conf)........................................................................676.33. 远程启动交易请求(RemoteStartTransaction.req)................................................ 686.34. 远程启动交易确认(RemoteStartTransaction.conf)............................................. 686.35. 远程停止交易请求(RemoteStopTransaction.req)................................................... 686.36. 远程停止交易确认(RemoteStopTransaction.conf)............................................. 686.37. 立即预约请求(ReserveNow.req)......................................................................686.38. 立即预约确认(ReserveNow.conf)...................................................................696.39. 重置请求(Reset.req)......................................................................................696.40. 重置确认(Reset.conf)...................................................................................69

6.41. 发送本地列表请求(SendLocalList.req)................................................................. 696.42. 发送本地列表确认(SendLocalList.conf)............................................................. 706.43. 设置充电配置文件请求(SetChargingProfile.req)............................................... 706.44. 设置充电配置文件确认(SetChargingProfile.conf).............................................. 706.45. 开始交易请求(StartTransaction.req)................................................................. 716.46. 开始交易确认(StartTransaction.conf)................................................................ 716.47. 状态通知请求(StatusNotification.req).............................................................. 716.48. 状态通知确认(StatusNotification.conf)...................................................... 726.49. 停止交易请求(StopTransaction.req)............................................................... 726.50. 停止交易确认(StopTransaction.conf)........................................................... 72

6.51. 触发消息请求(TriggerMessage.req)....................................................................736.52. 触发消息确认(TriggerMessage.conf)..................................................................736.53. 解锁连接器请求(UnlockConnector.req)............................................................... 736.54. 解锁连接器确认(UnlockConnector.conf)........................................................ 736.55. 更新固件请求(UpdateFirmware.req)..................................................................736.56. 更新固件确认(UpdateFirmware.conf)........................................................... 74

7.类型(Types)..............................................................................................75

7.1. 授权数据(AuthorizationData)............................................................... 75

7.2. 授权状态(AuthorizationStatus).............................................................. 75

7.3. 可用性状态(AvailabilityStatus)......................................................... 75

7.4. 可用性类型(AvailabilityType)........................................................... 76

7.5. 取消预约状态(CancelReservationStatus)............................................... 76

7.6. 充电点错误代码(ChargePointErrorCode)............................................. 76

7.7. 充电点状态(ChargePointStatus)............................................................ 77

7.8. 充电配置文件(ChargingProfile)............................................................ 78

7.9. 充电配置文件类型(ChargingProfileKindType)...................................... 79

7.10. 充电配置文件目的类型(ChargingProfilePurposeType)............................ 79

7.11. 充电配置文件状态(ChargingProfileStatus)................................................ 807.12. 充电速率单位类型(ChargingRateUnitType)............................................... 807.13. 充电计划(ChargingSchedule)................................................................807.14. 充电计划周期(ChargingSchedulePeriod)............................................... 817.15. CiString20类型(CiString20Type)........................................................... 817.16. CiString25类型(CiString25Type).......................................................... 817.17. CiString50类型(CiString50Type)..................................................... 827.18. CiString255类型(CiString255Type)................................................. 827.19. CiString500类型(CiString500Type)................................................. 827.20. 清除缓存状态(ClearCacheStatus)........................................................82

7.21. 清除充电配置文件状态(ClearChargingProfileStatus)................................ 837.22. 配置状态(ConfigurationStatus)..........................................................837.23. 数据传输状态(DataTransferStatus).................................................. 837.24. 诊断状态(DiagnosticsStatus)............................................................847.25. 固件状态(FirmwareStatus)...............................................................847.26. 获取复合计划状态(GetCompositeScheduleStatus)................................ 847.27. ID标签信息(IdTagInfo).................................................................857.28. ID令牌(IdToken).............................................................................857.29. 键值(KeyValue)........................................................................857.30. 位置(Location)......................................................................

7.31. 测量量(Measurand)...................................................................867.32. 消息触发器(MessageTrigger)........................................................887.33. 计量值(MeterValue)....................................................................887.34. 相位(Phase)............................................................................897.35. 读取上下文(ReadingContext).........................................................897.36. 原因(Reason)............................................................................907.37. 递归类型(RecurrencyKindType)..................................................907.38. 注册状态(RegistrationStatus)...................................................917.39. 远程启动/停止状态(RemoteStartStopStatus).................................... 917.40. 预约状态(ReservationStatus)........................................................91

7.41. 重置状态(ResetStatus)................................................................. 927.42. 重置类型(ResetType)...............................................................927.43. 采样值(SampledValue).................................................................927.44. 触发消息状态(TriggerMessageStatus)............................................... 937.45. 计量单位(UnitOfMeasure)........................................................937.46. 解锁状态(UnlockStatus)...............................................................947.47. 更新状态(UpdateStatus)............................................................947.48. 更新类型(UpdateType)..............................................................957.49. 值格式(ValueFormat)...............................................................95

8.固件和诊断文件传输(Firmwareand Diagnostics File Transfer)..........................96

8.1. 下载固件(DownloadFirmware)........................................................96

8.2. 上传诊断(UploadDiagnostics).....................................................96

标准配置键名与值(Standard Configuration Key Names& Values)................. 97

9.1. 核心配置文件(CoreProfile)..........................................................97

9.2. 本地授权列表管理配置文件(LocalAuth List Management Profile).............. 106

9.3. 预约配置文件(ReservationProfile)................................................106

9.4. 智能充电配置文件(SmartCharging Profile)........................................107

附录A:OCPP 1.6新增内容(Appendix A: New in OCPP 1.6)............................109

A.1. 更新/新增消息(Updated/New Messages):....................................109

充电点和中央系统之间的接口描述(Interface descriptionbetween Charge Point and Central System)

文档版本

1.6 第2版

文档状态

最终版

文档发布日期

2017-09-28

版权所有 © 2010 – 2017 Open Charge Alliance。所有权利保留。

本文档在创意共享署名-禁止演绎 4.0国际公共许可证(CC BY-ND 4.0 Legal Code | Attribution-NoDerivs 4.0 International | Creative Commons)下提供。

版本历史记录

版本

日期

作者

描述

1.6 第2版

2017-09-28

Robert de Leeuw

IHomer

Brendan McMahon

ESB ecars

Klaas van Zuuren

ElaadNL

OCPP 1.6 第2版最终发布版。包含所有已知勘误(包括v3.0)和改进的样式。

1.6

2015-10-08

Robert de Leeuw

IHomer

Reinier Lamers

The New Motion

Brendan McMahon

ESB ecars

Lambert Muhlenberg

Alfen

Patrick Rademakers

IHomer

Sergiu Tcaciuc

smartlab

Klaas van Zuuren

ElaadNL

1.6 最终发布版。

相对于1.5版本的更改,请参阅附录“OCPP 1.6新增内容”。

1.5

2012-06-01

Franc Buve

规格说明已准备发布。包括以下内容:

CR-01 身份验证/授权列表

CR-02 间隔计量读数

CR-03 充电点预约

CR-04 通用数据传输

CR-05 更详细的状态通知

CR-06 查询配置参数

CR-07 在BootNotification中强制包含时间戳

CR-08 对StartTransaction.req请求的响应,除“已接受”外的其他状态并未明确定义

CR-09 增加BootNotification中firmwareVersion的大小

1.2

2011-02-21

Franc Buve

1.0

2010-10-19

Franc Buve

最终版本已获e-laad.nl批准。与0.12版本相同。

1.范围

本文档定义了充电点与中央系统之间使用的协议。如果协议要求某一方执行特定的动作或响应,则这些要求将在本文档中说明。

本规范不定义通信技术。只要支持TCP/IP连接,任何技术都可以使用。

2.术语和约定

2.1. 约定

本文档中的关键词“MUST”、“MUSTNOT”、“REQUIRED”、“SHALL”、“SHALL NOT”、“SHOULD”、“SHOULD NOT”、“RECOMMENDED”、“MAY”和“OPTIONAL”应解释为[RFC2119]中所述的含义,但须遵守以下额外的澄清条款:

与“SHOULD”、“SHOULDNOT”、“RECOMMENDED”和“NOTRECOMMENDED”的使用相关的短语“特定情况下的有效原因”应理解为技术上的有效原因,例如由于充电点设计不支持某功能的必要硬件的缺失:在本规范中,它特别排除了基于商业或其他非技术理由的决策,如实施成本或使用可能性。

除“范围”和“术语和约定”部分外,所有章节和附录都是规范性的,除非它们明确标记为信息性的。

2.2. 定义

本节包含本文档中使用的术语。

中央系统充电点管理系统(Central System Charge PointManagement System):管理充电点并具备授权用户使用其充电点信息的中央系统。

CiString(大小写不敏感字符串):仅允许可打印的ASCII字符。

充电点(Charge Point):充电点是电动汽车可以充电的物理系统。一个充电点有一个或多个连接器。

充电配置文件(Charging Profile):通用充电配置文件,用于不同类型的配置文件。包含关于配置文件的信息并持有充电计划。在OCPP的未来版本中,它可能包含超过一个的充电计划。

充电计划(Charging Schedule):充电配置文件的一部分。定义了一组充电功率或电流限制。可以包含开始时间和长度。

充电会话(Charging Session):当与用户或电动汽车首次交互时开始充电会话。这可能是一次刷卡、远程启动交易、连接电缆和/或电动汽车、停车位占用检测器等。

复合充电计划(Composite Charging Schedule):由充电点计算的充电计划。它是所有活动计划和充电点中可能存在的本地限制的计算结果。可能会考虑本地限制。

连接器(Connector):在本规范中使用的“连接器”一词,是指充电点上独立操作和管理的电源插座。这通常对应于单个物理连接器,但在某些情况下,单个插座可能有多个物理插座类型和/或绑定的电缆/连接器配置,以适应不同类型的车辆(例如四轮电动汽车和电动滑板车)。

控制导引信号(Control Pilot signal):充电点用于通知电动汽车由[IEC61851-1]定义的最大充电功率或电流限制的信号。

供电时段(Energy Offer Period):当电动汽车供电设备(EVSE)准备就绪并愿意供电时,供电时段开始。

供电暂停时段(Energy Offer SuspendPeriod): 在交易过程中,可能存在EVSE暂停向电动汽车发送能源提供的时段,例如,由于智能充电或本地平衡需求。

能量传输时段(Energy Transfer Period):电动汽车选择接受或退回所供能量的时间段。在一次交易中可能存在多个能量传输时段。

本地控制器(Local Controller):智能充电基础设施中的可选设备。它位于具有多个与之相连的充电点的场所内。它位于充电点和中央系统之间。理解并发送OCPP消息。通过使用OCPP智能充电消息控制其他充电点的功率或电流。它本身也可以是一个充电点。

OCPP-J:通过WebSocket上的JSON进行的OCPP

OCPP-S:通过SOAP进行的OCPP

相位旋转(Phase Rotation):定义电表(如果电表不存在,则为电网连接)与充电点连接器之间的相位接线顺序。

交易(Transaction):充电过程的一部分,从满足所有相关先决条件(例如,授权、插入插头)时开始,到充电点不可撤销地离开此状态时结束。

字符串(String):大小写敏感的字符串。仅允许可打印的ASCII字符。除非另有明确说明,否则消息和枚举中的所有字符串都是大小写敏感的。

2.3. 缩写词

CSL:逗号分隔列表 (CommaSeparated List)CPO:充电点运营商 (Charge Point Operator)DNS:域名系统 (Domain Name System)DST:夏令时 (Daylight Saving Time)EV:电动汽车,可以是BEV(纯电动汽车)或PHEV(插电式混合动力汽车) (Electrical Vehicle)EVSE:电动汽车供电设备 [IEC61851-1] (Electric Vehicle SupplyEquipment)FTP(S) :文件传输协议(安全) (File Transport Protocol (Secure))HTTP(S) :超文本传输协议(安全) (HyperText Transport Protocol(Secure))ICCID:集成电路卡标识符 (Integrated Circuit Card Identifier)IMSI:国际移动用户识别码 (International Mobile SubscriptionIdentity)JSON:JavaScript对象表示法(JavaScript Object Notation)NAT:本地地址转换 (Native Address Translation)PDU:协议数据单元 (Protocol Data Unit)SC:智能充电 (Smart Charging)SOAP:简单对象访问协议 (Simple Object Access Protocol)URL:统一资源定位符 (Uniform Resource Locator)RST:三相电源连接,标准参考相位 (Standard Reference Phasing)RTS:三相电源连接,反向参考相位 (Reversed Reference Phasing)SRT:三相电源连接,反向240度旋转 (Reversed240 degree rotation)STR:三相电源连接,标准120度旋转 (Standard120 degree rotation)TRS:三相电源连接,标准240度旋转 (Standard240 degree rotation)TSR:三相电源连接,反向120度旋转 (Reversed120 degree rotation)UTC:协调世界时 (Coordinated Universal Time)

2.4. 参考文献

[IEC61851-1]

“IEC 61851-1 2010: 电动汽车传导充电系统 - 第1部分:

一般要求” (Electric vehicle conductive chargingsystem - Part 1: General requirements)IEC 61851-1:2010 | IEC Webstore

[OCPP1.5]

“OCPP 1.5:开放充电点协议1.5”

(Open Charge Point Protocol 1.5)  Download OCPP - Open Charge Alliance

[OCPP_1.6CT]

“OCPP 1.6 合规性测试”

(OCPP 1.6 Compliance testing) Download OCPP - Open Charge Alliance

[OCPP_IMP_J]

“OCPP JSON规范”

(OCPP JSON Specification)  Download OCPP - Open Charge Alliance

[OCPP_IMP_S]

“OCPP SOAP规范”

(OCPP SOAP Specification)  Download OCPP - Open Charge Alliance

[RFC2119]

“RFC中使用来表示要求级别的关键词”

(Key words for use in RFCs to IndicateRequirement Levels). S. Bradner.

1997年3月. http://www.ietf.org/rfc/rfc2119.txt

3.引言

本规范是OCPP(开放充电点协议)版本1.6的规范。

OCPP是一个标准的开放协议,用于充电点与中央系统之间的通信,并设计为兼容任何类型的充电技术。

OCPP 1.6引入了新功能以适应市场需求:智能充电、通过Websockets使用JSON的OCPP、更好的诊断功能(原因)、更多的充电点状态和触发消息。OCPP 1.6基于OCPP 1.5,加入了一些新功能,并对所有已知的不明确之处进行了大量的文本改进、澄清和修复。由于这些改进和新功能,OCPP 1.6与OCPP 1.5不兼容。

要了解完整的变更列表,请参阅:OCPP 1.6中的新增功能。

以下引言章节中的部分将解释一些基本概念。章节“由充电点发起的操作”和“由中央系统发起的操作”描述了协议支持的操作。确切的消息及其参数在“消息和数据类型”章节中详细描述。在“类型”章节中描述了类型。在“标准配置键名称和值”章节中描述了定义的配置键。

3.1. 版本2

本文档是OCPP 1.6的版本2。本文档仍描述相同的协议:OCPP 1.6,只是文档得到了改进。与2015年10月发布的OCPP 1.6原始版本相比,在消息级别上没有变化。所有已知的错误(之前在一个单独的文件中发布)都已合并到本文档中,使实现者更容易使用此规范。当对OCPP 1.6的实现方式有疑问时,本文档优先于原始文档。

3.2. 文档结构

随着OCPP 1.6的引入,OCPP有两种不同的版本;除了基于SOAP的实现外,还可以使用更加紧凑的JSON替代方案。为了避免在通信中混淆实现类型,我们建议使用不同的后缀-J和-S来表示JSON或SOAP。一般来说,JSON版本称为OCPP-J,SOAP版本称为OCPP-S。

为了支持不同的版本,OCPP标准被分为多个文档。基础文档(即您当前正在阅读的文档)包含了技术协议规范。技术协议规范必须与其中一个传输协议规范一起使用。OCPP SOAP规范包含了实现OCPP-S所需的实现规范。对于OCPP-J,必须使用OCPP JSON规范。

为了改善中央系统和充电点之间的互操作性,建议满足OCPP 1.6合规性测试文档中所述的要求。

3.3. 功能概要文件

本节是规范性的。

在OCPP 1.6中,功能和相关的消息被分组到概要文件中。根据所需的功能,实现者可以选择实现以下一个或多个概要文件。

概要文件名称

描述

Core

基本充电点功能,与OCPP 1.5 [OCPP1.5] 相当,但不支持固件更新、本地授权列表管理和预约。

Firmware Management

支持固件更新管理和诊断日志文件下载。

Local Auth List Management

功能用于管理充电点中的本地授权列表。

Reservation

支持对充电点的预约。

Smart Charging

支持基本的智能充电功能,例如使用控制信号。

Remote Trigger

支持远程触发由充电点发起的消息。

这些概要文件可以被客户用来确定一个OCPP 1.6产品是否具备其业务案例所需的功能。合规性测试将按照每个概要文件来测试产品是否符合OCPP 1.6规范。

必须实现Core概要文件。其他概要文件是可选的。

如果实现了Core、FirmwareManagement、Local Auth List Management和Reservation概要文件,那么所有源自OCPP 1.5 [OCPP1.5]的功能都将被覆盖。

所有消息在其概要文件中的分组可以在下面的表格中找到。

MESSAGE 消息

CORE

核心

FIRMWARE

MANAGEMENT

固件管理

LOCAL AUTH LIST

MANAGEMENT 本地授权列表管理

REMOTE TRIGGER 远程触发

RESERVATION 预约

SMART CHARGING 智能充电

Authorize

x

BootNotification

x

ChangeAvailability

x

ChangeConfiguration

x

ClearCache

x

DataTransfer

x

GetConfiguration

x

Heartbeat

x

MeterValues

x

RemoteStartTransaction

x

RemoteStopTransaction

x

Reset

x

StartTransaction

x

StatusNotification

x

StopTransaction

x

UnlockConnector

x

GetDiagnostics

x

DiagnosticsStatusNotification

x

FirmwareStatusNotification

x

UpdateFirmware

x

GetLocalListVersion

x

SendLocalList

x

CancelReservation

x

ReserveNow

x

ClearChargingProfile

x

GetCompositeSchedule

x

SetChargingProfile

x

TriggerMessage

x

对特定功能概要文件的支持情况通过SupportedFeatureProfiles配置键进行报告。

3.4. 操作的一般视图

本节为信息性内容。

以下图表描述了充电点与中央系统之间操作的一般视图,针对两种情况:

充电点请求对卡的认证并发送充电交易状态,

中央系统请求充电点更新其固件。

以下图表中的箭头标签指示了在操作调用期间交换的PDU(协议数据单元)。这些PDU在“消息”部分中进行了详细定义。

图1. 序列图:启动和停止交易示例

当一个充电点需要给电动汽车充电时,它需要先验证用户身份,然后才能开始充电。如果用户被授权,充电点会通知中央系统它已经开始充电。

当用户希望从充电点拔掉电动汽车时,充电点需要验证用户是否是发起充电的人,或者用户是否属于同一组,因此被允许结束充电。一旦得到授权,充电点会通知中央系统充电已经停止。

如果一个充电点在停止交易前没有发送Authorize.req(授权请求),它不应该(MUST NOT)发送此请求。

图 2. 序列图:固件更新示例

当充电点需要更新为新固件时,中央系统会通知充电点可以开始下载新固件的时间。充电点在下载和安装新固件的每一步之后都应通知中央系统。

3.5 本地授权与离线行为

本节是规范性的。

在通信甚至中央系统不可用的情况下,充电点被设计为独立运行。在这种情况下,充电点被称为离线状态。

为了提升用户体验,充电点可以支持使用授权缓存和/或本地授权列表对标识符进行本地授权。

这允许(a)在离线状态下授权用户,以及(b)当充电点与中央系统之间的通信缓慢时,提供更快的(表面上的)授权响应时间。

LocalAuthorizeOffline 配置键控制充电点是否会在离线状态下使用授权缓存和/或本地授权列表来授权用户。

LocalPreAuthorize 配置键控制充电点是否会在不等待中央系统授权响应的情况下,使用授权缓存和/或本地授权列表来启动交易。

为了避免对无法通过本地授权列表/授权缓存条目明确授权的善意用户拒绝充电,充电点可以支持在离线状态下对任何呈现的标识符进行(自动)授权。关于未知离线授权的更多详细信息,请参见下文。

3.5.1. 授权缓存

充电点可以实施一个授权缓存,该缓存自主维护先前已由中央系统成功授权的标识符的记录。(成功意味着:在包含idTag的消息上收到了响应)

如果实施了授权缓存,那么它应遵循以下语义:

• 缓存包含所有最新接收的标识符(即有效和无效)。

• 缓存使用所有接收到的IdTagInfo(来自Authorize.conf、StartTransaction.conf和StopTransaction.conf)进行更新。

• 当缓存条目的有效期过期时,它应在缓存中标记为已过期。

• 当接收到缓存中标识符的IdTagInfo时,应更新该条目。

• 如果接收到新的标识符授权数据,并且授权缓存已满,充电点应删除任何无效的条目,然后(如有必要)删除最旧的有效条目,以便为新条目腾出空间。

• 缓存值应存储在非易失性存储器中,并应在重启和断电时持续存在。

• 当呈现存储在缓存中标记为无效的标识符,且充电点在线时:应向中央系统发送Authorize.req以检查标识符的当前状态。

如果存在授权缓存,其操作情况(以及可能的话,控制情况)将通过AuthorizationCacheEnabled配置键进行报告(和控制)。

3.5.2. 本地授权列表

本地授权列表是一个可以与中央系统同步的标识符列表。

该列表包含所有(或选定)标识符的授权状态以及授权状态/到期日期。

本地授权列表中的标识符可以标记为有效、已过期、(暂时)被阻止或列入黑名单,分别对应于IdTagInfo状态值Accepted/ConcurrentTx、Expired、Blocked和Invalid。

这些值可用于在本地授权期间为用户提供更详细的信息(例如,通过显示消息)。

本地授权列表应由充电点在非易失性存储器中维护,并在重启和断电时持续存在。

支持本地授权列表的充电点应实现配置键:LocalAuthListMaxLength。这允许中央系统知道充电点中本地授权列表元素的最大可能数量。

充电点通过SupportedFeatureProfiles配置键的值中是否存在LocalAuthListManagement元素来指示是否支持本地授权列表。

本地授权列表是否启用由LocalAuthListEnabled配置键进行报告和控制。

中央系统可以通过以下两种方式来同步此列表:(1)发送完整的标识符列表以替换本地授权列表,或(2)发送应用于本地授权列表的更改列表(添加、更新、删除)。支持此功能的操作包括获取本地列表版本(GetLocalListVersion)和发送本地列表(SendLocalList)。

图4. 序列图:差分本地授权列表更新的示例

充电点不应通过除接收来自中央系统的SendLocalList PDU之外的任何其他方式修改授权列表的内容。

本地授权列表与例如StartTransaction.conf消息中报告的有效性之间可能会发生冲突。当发生这种情况时,充电点应通过发送一个ConnectorId设置为0且ErrorCode设置为'LocalListConflict'的StatusNotification来通知中央系统。

3.5.3. 授权缓存与本地授权列表之间的关系

授权缓存和本地授权列表是两种不同的逻辑数据结构。在本地授权列表中已知的标识符不应添加到授权缓存中。

当同时支持授权缓存和本地授权列表时,充电点应对本地授权列表条目优先于相同标识符的授权缓存条目进行处理。

3.5.4. 未知的离线授权

在离线状态下,充电点可以允许自动授权任何“未知”的标识符,这些标识符无法通过本地授权列表或授权缓存条目进行明确授权。在本地授权列表中存在但状态不是“已接受”(无效、被阻止、已过期)的标识符必须被拒绝。因时间流逝而显然过期的有效标识符也必须被拒绝。

当支持未知离线授权功能时,其操作情况(以及在可能的情况下进行控制)由AllowOfflineTxForUnknownId配置键进行报告(和控制)。

当与中央服务器的连接恢复时,充电点应根据与交易相关的消息处理要求,为任何离线授权的交易发送开始交易请求。如果StartTransaction.conf中的授权状态不是“已接受”,且交易仍在进行中,充电点应该:

• 当StopTransactionOnInvalidId设置为true时:按照Stop Transaction中所述正常停止交易。Stop Transaction请求中的Reason字段应设置为DeAuthorized。如果充电点有能力锁定充电电缆,它应该保持充电电缆锁定状态,直到车主出示其标识符。

• 当StopTransactionOnInvalidId设置为false时:仅停止向车辆输送能量。

在标识符无效的情况下,运营商可以选择为电动汽车充电以使其能够驶离,但仅收取最低额度的能量费用。这一额度由可选的配置键MaxEnergyOnInvalidId控制。

3.6. 交易与能量传输周期的关系

本节为信息性内容。

能量传输周期是指在电动汽车(EV)和电动汽车供电设备(EVSE)之间传输能量的时间段。在一个交易过程中,可能存在多个能量传输周期。

多个能量传输周期可以通过以下方式分隔:

• EVSE发起的传输暂停,在此期间EVSE不提供能量传输

• EV发起的传输暂停,在此期间EV仍保持与EVSE的电连接

• EV发起的传输暂停,在此期间EV未与EVSE电连接

中央系统可能通过以下方式推断能量传输周期的开始和结束:在交易过程中发送的MeterValues(电量值),状态通知:Charging(充电中)、SuspendedEV(EV暂停)和/或SuspendedEVSE(EVSE暂停)等。

中央系统的实现需要考虑以下因素:一些EV不会进入SuspendedEV状态,它们可能会继续涓流充电。一些充电点甚至没有电表。

图5. OCPP充电会话和交易定义

3.7. 与交易相关的消息

本节为规范性内容。

充电点应尽快按时间顺序向中央系统发送与交易相关的消息。与交易相关的消息包括StartTransaction.req、StopTransaction.req以及定期或时钟同步的MeterValues.req消息。

当处于离线状态时,充电点必须将在线时应发送给中央系统的任何与交易相关的消息进行排队。

如果充电点有与交易相关的消息排队等待发送给中央系统,新的非与交易相关的消息可以在不等待队列清空的情况下立即发送。因此,允许在清空与交易相关的消息队列之前发送例如Authorize请求或Notifications请求,以确保客户不会等待太久,紧急通知也不会被延迟。

新的与交易相关的消息的发送应等待队列清空。这是为了确保与交易相关的消息始终按时间顺序发送。

当中央系统接收到在充电点排队了一段时间的与交易相关的消息时,除了根据时间戳显著过去来推断外,中央系统不会意识到这是一条历史消息。它应像处理其他任何消息一样处理此类消息。

3.7.1. 对与交易相关消息的错误响应

如果中央系统反复报告“无法处理消息”,则充电点可以跳过与交易相关的消息。这样的规定是必要的,因为否则要求按时间顺序发送每条与交易相关的消息将意味着,在软件错误导致中央系统不确认充电点的某条与交易相关的消息后,充电点无法向中央系统发送任何与交易相关的消息。

什么样的响应或未响应构成“无法处理消息”在OCPP JSON规范和OCPP SOAP规范中有定义。

充电点应该重试失败的与交易相关消息的次数和间隔可以使用TransactionMessageAttempts和TransactionMessageRetryInterval配置键进行配置。

当充电点遇到首次无法发送某条与交易相关的消息时,只要该消息继续导致无法处理消息,并且尚未遇到与其TransactionMessageAttempts配置键中指定的针对此消息的失败处理次数一样多的情况,它就应该继续发送此消息。在每次重传之前,它应该等待其TransactionMessageRetryInterval键中指定的秒数,乘以该相同消息之前传输的次数。

作为示例,考虑一个充电点,其TransactionMessageAttempts配置键的值为“3”,TransactionMessageRetryInterval配置键的值为“60”。它发送了一个StopTransaction消息,并检测到中央系统无法处理该消息。充电点应等待60秒,然后重新发送该消息。如果第二次尝试仍然失败,充电点应在重发消息之前等待120秒。如果最后一次尝试仍然失败,充电点应丢弃该消息,并继续处理下一个与交易相关的消息(如果有的话)。

3.8. 充电连接器编号

本节为规范性内容。

为了使中央系统能够定位到充电点的所有连接器,ConnectorIds(连接器ID)必须始终按照相同的方式进行编号。

连接器编号(ConnectorIds)必须遵循以下规则:

• 第一个连接器的ID必须为1

• 其他连接器必须按顺序编号(不得跳过任何数字)

• ConnectorIds不得超过充电点连接器总数

• 对于由中央系统发起的操作,ConnectorId 0保留用于定位整个充电点。

• 对于由充电点发起的操作(在报告时),ConnectorId 0保留用于充电点主控制器。

示例:一个具有3个连接器的充电点:所有连接器必须编号为ID:1、2和3。建议以逻辑方式编号充电点的连接器:从左到右,从上到下递增。

3.9. ID令牌

本节为规范性内容。

在大多数情况下,通过本地令牌读取器硬件获取的IdToken数据通常是物理RFID卡的(4或7字节)UID值,通常表示为8/14个十六进制数字字符。

然而,中央系统发送给充电点用于远程启动充电会话的IdTokens通常可能是(一次性使用的)虚拟交易授权码,或者是故意使用非标准UID格式的虚拟RFID令牌,以避免与真实UID值产生可能的冲突。

此外,用作ParentId的IdToken数据通常会使用共享的中心账户标识符作为ParentId,而不是账户中第一个/主RFID卡的UID。

因此,IdToken类(包括ParentId)的消息数据元素可能包含任何数据,这些数据受到数据类型(CiString20Type)的限制,并且对于中央系统是有意义的(例如,用于识别充电活动的发起者),而充电点不得对这类数据的格式或内容做出任何假设(例如,假设它必须是仅包含十六进制字符的类似UID的值和/或偶数位数)。

为了促进互操作性,基于到目前为止在IdToken数据表示物理ISO 14443兼容RFID卡UID的普遍做法,建议将此类UID表示为UID字节的十六进制表示形式。根据ISO 14443-3,十六进制字符串中的第一个字节应为字节0。

3.10. 父级idTag

本节为规范性内容。

中央系统有能力将一组身份令牌视为一个“组”,从而允许该组中的任何一个令牌启动交易,并且允许相同的令牌或该组中的另一个令牌停止该交易。这支持了家庭或企业等常见用例,它们有多个驾驶员使用一份充电合同账户共享一辆或多辆电动汽车。

为了授权目的,通过在IdTagInfo的可选ParentId元素中指定一个共同的组标识符,将令牌(idTags)进行分组:如果两个idTags的ParentId标记匹配,则认为它们属于同一组。

尽管ParentId与idTag具有相同的标称数据类型(IdToken),但该元素的值可能不符合IdTokens的常见格式,或者可能不代表一个实际有效的IdToken(例如,它可能是一个共享的“账户号码”):因此,ParentId值不应与呈现的令牌值进行比较(除非它同时也作为idTag值出现)。

3.11. 预约

本节为信息性内容。

可以使用“立即预约”操作来预约充电点。此操作将为特定idTag的充电点预约至某个到期时间。可以在预约中包含父级idTag以支持“组”预约。可以预约充电点上的特定连接器或预约充电点上的任何连接器。当在预留的连接器(如果指定)或任何连接器(如果未指定)上使用预留的idTag时,或者当到达到期时间时,或者当明确取消预约时,预约将被释放。

3.12. 供应商特定数据传输

本节为信息性内容。

供应商特定数据传输机制允许在OCPP中交换未标准化的数据或消息。因此,它为OCPP中的实验功能提供了一个框架,这些功能可能会成为未来OCPP版本的一部分。实验可以在不创建新的(可能不兼容的)OCPP方言的情况下进行。其次,它提供了在特定中央系统和充电点供应商之间实施额外功能的可能性。

“供应商特定数据”操作可以由中央系统或充电点发起。

请在使用时极其谨慎,并且仅用于可选功能,因为它会影响您与不使用此选项的其他系统的兼容性。我们建议您在文档和/或通信中明确提及该用法。在采用此选项添加功能之前,请考虑咨询开放充电联盟(OpenCharge Alliance)。

3.13. 智能充电

本节为规范性内容。

智能充电使得中央系统能够影响特定电动汽车的充电功率或电流,或者影响整个充电点/一组充电点的总允许能耗,例如,这可以基于电网连接、电网上的能量可用性或建筑物的布线情况。影响充电功率或电流是基于特定时间点的能量传输限制。这些限制被组合在一个充电配置文件中。

3.13.1. 充电配置文件的目的

充电配置文件包含一个充电计划,该计划基本上是一个包含时间间隔及其最大充电功率或电流的列表,以及一些用于指定计划的时间段和重复性的值。

根据用途的不同,有三种不同类型的充电配置文件:

• ChargePointMaxProfile

在负载均衡场景中,充电点有一个或多个本地充电配置文件,这些配置文件限制充电点所有连接器共享的功率或电流。中央系统应使用将 ChargingProfilePurpose 设置为“ChargePointMaxProfile”的配置文件来配置此类配置文件。ChargePointMaxProfile 只能设置在充电点 ConnectorId 为 0 的位置。

• TxDefaultProfile

新的交易可以使用默认计划来实施充电策略。例如,一个策略可能是防止白天充电。对于此类目的的计划,应将 ChargingProfilePurpose 设置为 TxDefaultProfile。

如果 TxDefaultProfile 设置为 ConnectorId 0,则 TxDefaultProfile 适用于所有连接器。

如果 ConnectorId 设置为>0,则它仅适用于该特定连接器。

如果为连接器 0 安装了TxDefaultProfile,而中央系统发送了一个具有 ConnectorId >0 的新配置文件,则 TxDefaultProfile 仅针对该特定连接器进行替换。

• TxProfile

如果存在具有 TxProfile 目的的特定于交易的配置文件,则在当前交易期间,它应仅覆盖具有 TxDefaultProfile 目的的默认充电配置文件。在交易停止后,配置文件应被删除。如果在类型为 TxProfile 的充电配置文件中指定的连接器上没有活动交易,则充电点应丢弃该配置文件,并在 SetChargingProfile.conf 中返回错误状态。

最终应用于交易的计划约束是通过合并具有 ChargePointMaxProfile 目的的配置文件和具有 TxProfile 或(如果没有提供 TxProfile 目的的配置文件)TxDefaultProfile 目的的配置文件来确定的。TxProfile 仅应在充电点 ConnectorId >0 的位置设置。

3.13.2. 叠加充电配置文件

为了描述复杂的日历安排,允许叠加相同充电配置文件目的的配置文件。例如,可以定义一个目的为 TxDefaultProfile 的充电配置文件,其持续时间和重复周期为一周,该配置文件允许在工作日的 23:00h 至 06:00h 和周末的 00:00h 至 24:00h 以全功率或电流进行充电,并在其他时间以较低功率或电流进行充电。此外,还可以定义其他 TxDefaultProfile 来定义此规则的例外情况,例如节假日。

充电配置文件的优先级由其 StackLevel 参数的值确定。在任何时间点,当前有效的充电配置文件都应是当时有效的配置文件中 StackLevel 最高的配置文件,这由它们的 validFrom 和 validTo 参数确定。

为避免冲突,不允许在充电点中存在具有相同 StackLevel 和目的的多个充电配置文件。每当充电点接收到一个具有已在充电点中存在的 StackLevel 和目的的充电配置文件时,充电点应替换现有配置文件。

如果发送了更新的充电配置文件(具有相同的 StackLevel 和目的),但其 validFrom 日期时间为未来时间,充电点应替换已安装的配置文件,并在达到validFrom 时间之前恢复默认行为。建议提供过去的开始时间以防止出现间隙。

如果在最高 StackLevel 上使用叠加但不设置持续时间,充电点将永远不会回退到较低 StackLevel 的配置文件。

3.13.3. 结合充电配置文件目的

指导充电水平的复合计划(Composite Schedule)是不同充电配置文件目的(chargingProfilePurposes)的当前有效充电配置文件的组合。

这个复合计划是通过取每个时间间隔的最小值来计算的。请注意,时间间隔不需要是固定长度,也不需要每个充电配置文件目的都相同。这意味着生成的复合计划可能包含长度不同的间隔。

在任何时间点,复合计划中可用的功率或电流(这是合并ChargePointMaxProfile 和 TxDefaultProfile(或 TxProfile)的充电配置文件计划的结果)应小于或等于合并计划中任何一项的可用功率或电流的最低值。

如果充电点配备有多个连接器,ChargePointMaxProfile 的限制值是所有连接器组合的总限制。所有连接器的组合能量流不得大于 ChargePointMaxProfile 设置的限制。

3.13.4. 智能充电应用案例

本节为信息性内容。

智能充电可能有多种不同的用途。以下三种典型的智能充电方式将用于说明智能充电的可能行为:

• 负载均衡• 中央智能充电• 本地智能充电

还有更复杂的用例,其中两个或更多上述用例被组合成一个更复杂的系统。

负载均衡

本节为信息性内容。

负载均衡用例涉及充电点内部的负载均衡,充电点控制每个连接器的充电计划。充电点被配置有一个固定限制,例如连接到电网的最大电流。

充电点可以使用可选的充电计划字段minChargingRate来优化连接器之间的功率分配。该参数通知充电点,低于minChargingRate的充电效率较低,从而可以选择另一种平衡策略。

图6. 负载均衡智能充电拓扑结构

中央智能充电

本节为信息性内容。

在中央智能充电中,每次交易的充电计划约束由中央系统确定。中央系统使用这些计划来保持在任何外部系统所施加的限制范围内。

中央系统直接控制充电点连接器的限制。

图7. 中央智能充电拓扑结构

中央智能充电假定充电限制由中央系统控制。中央系统从电网运营商(DSO)或其他来源以某种形式接收容量预测,并为部分或所有充电交易计算充电计划,这些细节超出了本规范的范围。

中央系统对连接器施加充电限制。在接收到StartTransaction.req PDU后,中央系统可以选择使用TxProfile为交易设置充电限制。

尽管存在一些限制,但中央智能充电可以通过控制导频信号来完成,因为电动汽车无法通过控制导频信号进行充电通信。与本地智能充电用例类似,连接器可以通过控制导频信号执行充电计划。这在以下图中有所说明:

图8. 序列图:中央智能充电

上述图表的解释:

• 在授权后,连接器将通过控制导频信号设置要使用的最大电流。这个限制基于连接器之前从中央系统接收到的(默认)充电配置文件。电动汽车开始充电,并向中央系统发送StartTransaction.req。

• 在充电过程中,连接器将根据充电配置文件连续调整最大电流或功率。此外,中央系统可以在任何时候选择性地为连接器发送新的充电配置文件,该文件应作为电动汽车的限制计划使用。

本地智能充电

本地智能充电用例描述了一种智能充电启用的充电点,其充电限制由本地控制器而非中央系统本地控制的情况。本地智能充电的用例是关于将一组充电点可以使用的电量限制在某一最大值。一个典型的应用场景是停车库中的一组充电点,其连接到电网的额定值小于所有充电点额定值的总和。另一个应用可能是本地控制器从配电系统运营商(DSO)或本地智能电网节点接收关于可用电量的信息。

图9. 本地智能充电拓扑结构

本地智能充电假设存在一个本地控制器来控制一组充电点。本地控制器是一个逻辑组件。它可以作为一个单独的物理组件实现,也可以作为控制多个其他充电点的“主”充电点的一部分实现。本地控制器实现了OCPP协议,是组成员OCPP消息的代理,并且可能拥有或不拥有任何自己的连接器。

在本地智能充电的情况下,本地控制器对充电点施加充电限制。为了在充电过程中保持充电点组的总功耗在组限制范围内,这些限制可能会在充电过程中动态更改。组限制可能在本地控制器中预先配置,或者由中央系统配置。

可选的充电计划字段minChargingRate可以被本地控制器用于优化连接器之间的功率分配。该参数通知本地控制器,低于minChargingRate的充电是低效的,从而可以选择另一种平衡策略。

以下图表说明了在本地智能充电组中设置充电点充电限制的消息序列。这些限制可以以某种方式在本地控制器中预先配置,或者由中央系统设置。本地控制器包含根据需要将此容量分配给已连接连接器的逻辑,通过调整它们的限制来实现。

图10. 预设本地组限制

下面的图表描述了一个典型的本地智能充电情况的消息序列。为了简化起见,此情况仅涉及一个连接器。

图11. 序列图:本地智能充电

上述图表的解释:

• 授权后,连接器将通过控制导频信号设置要使用的最大电流。这个限制基于连接器之前从本地控制器接收的(默认)充电配置文件。电动汽车开始充电并发送StartTransaction.req。

• StartTransaction.req通过本地控制器发送到中央系统,这样本地控制器也知道已经开始了一个交易。本地控制器只是传递充电点和中央系统之间的消息,以便中央系统可以单独地处理所有本地智能充电组的成员。

• 在充电过程中,连接器将根据充电配置文件持续调整最大电流。

可选地,在任何时候,本地控制器都可以向连接器发送一个新的充电配置文件,该文件应作为电动汽车的限制计划使用。

3.13.5. 充电点能力的发现

本节是规范性的。

定义的智能充电选项可以在多种方式中使用。由于充电点之间可能存在的限制和能力的差异,中央系统需要能够发现充电点的特定能力。这是通过本章定义的标准化配置键来确保的。一个支持智能充电的充电点应该实现并支持通过GetConfiguration.req PDU报告以下配置键:

SMART CHARGING CONFIGURATION KEYS

ChargeProfileMaxStackLevel

ChargingScheduleAllowedChargingRateUnit

ChargingScheduleMaxPeriods

MaxChargingProfilesInstalled

所有标准化配置键的完整列表可以在“标准配置键名称和值”章节中找到。

3.13.6. 智能充电的离线行为本节是规范性的。

如果充电点在接收到特定于交易的充电配置文件(目的为TxProfile)后离线,则它应继续在该交易期间使用该配置文件。

如果充电点在交易开始之前或接收到特定于交易的充电配置文件(目的为TxProfile)之前离线,则它应使用可用的充电配置文件。从中央系统可能已经接收到零个或多个具有以下目的的充电配置文件:

  • ChargePointMaxProfile
  • TxDefaultProfile

请参阅“结合不同目的的充电配置文件”部分,了解如何结合具有不同目的的充电配置文件。

如果充电点在没有任何充电配置文件的情况下离线,则它应执行交易,就好像没有应用任何约束一样。

3.13.7. 智能充电的数据结构示例

本节为信息性内容

以下数据结构描述了一个日常默认配置文件,该配置文件在08:00h至20:00h之间将功率限制为6 kW。

CHARGINGPROFILE

chargingProfileId

100

stackLevel

0

chargingProfilePurpose

TxDefaultProfile

chargingProfileKind

Recurring

recurrencyKind

Daily

chargingSchedule

(List of 1 ChargingSchedule elements)

ChargingSchedule

duration

86400 (= 24 hours)

startSchedule

2013-01-01T00:00Z

chargingRateUnit

W

chargingSchedulePeriod

(List of 3 ChargingSchedulePeriod elements)

ChargingSchedulePeriod

startPeriod

0 (=00:00)

limit

11000

numberPhases

3

startPeriod

28800 (=08:00)

limit

6000

numberPhases

3

startPeriod

72000 (=20:00)

limit

11000

numberPhases

3

充电期间使用的相位数受到以下方面的能力限制:充电点、电动汽车以及充电点与电动汽车之间的电缆。如果这三个中的任何一个不支持三相充电,电动汽车将仅使用单相进行充电。

在计划或充电会话期间切换使用的相位数应谨慎进行。一些电动汽车可能不支持此操作,并且改变相位数可能会导致物理损坏。通过配置键“ConnectorSwitch3to1PhaseSupported”,充电点可以告知它是否支持在交易期间切换相位数。

在实行夏令时(DST)开始或结束的日子里,可能需要一个特殊的配置文件(例如,针对相对配置文件)。

3.14. 时区

本节为信息性内容。

OCPP(开放充电点协议)没有规定时间值必须使用特定的时区。然而,为了提高中央系统和充电点之间的互操作性,强烈建议使用UTC(协调世界时)来表示所有时间值。

3.15. 时间表示法

本节为规范性内容。

实现时必须使用ISO 8601日期时间表示法。消息接收者必须能够处理小数秒和时区偏移(另一个实现可能会使用它们)。消息发送者可以通过省略不重要的秒的小数部分来节省数据使用量。

3.16. 计量数据

本节为规范性内容。

与充电会话相关的广泛计量数据可以根据其预期用途以不同方式进行记录和传输。有两种明显的用例(但计量值的使用不仅限于这两种):

• 充电会话计量值

• 时钟对齐计量值

两种类型的计量读数都可以在独立的MeterValues.req消息中(在交易期间)和/或作为StopTransaction.req PDU的transactionData元素的一部分进行报告。

3.16.1. 充电会话计量值

在充电期间频繁(例如,每1-5分钟)采集并传输(通常“实时”)到中央系统的计量读数,以便中央系统能够通过网页、应用程序、短信等方式向电动汽车用户(通常不在充电点)提供有关充电会话进度的信息更新。在OCPP(开放充电点协议)中,这被称为“采样计量数据”,因为只要“足够频繁”,读数的确切频率和时间并不是非常重要。“采样计量数据”可以通过以下配置键进行配置:

• MeterValuesSampledData

• MeterValuesSampledDataMaxLength

• MeterValueSampleInterval

• StopTxnSampledData

• StopTxnSampledDataMaxLength

MeterValueSampleInterval 是采样计量(或其他)数据之间的时间间隔(以秒为单位),这些数据打算通过“MeterValues”协议数据单元(PDU)进行传输。从充电交易开始起,每隔这个时间间隔就会定期采集并传输样本。

按照惯例,如果其值为“0”(数字零),则表示不应传输任何采样数据。

MeterValuesSampledData 是一个以逗号分隔的列表,它规定了每隔 MeterValueSampleInterval 秒应包含在MeterValues.req PDU 中的一组测量值。充电点可以通过以下方式报告 MeterValuesSampledData列表中元素的最大数量:

MeterValuesSampledDataMaxLength

StopTxnSampledData 是一个以逗号分隔的列表,它规定了从交易开始起,每隔 MeterValueSampleInterval 秒应包含在StopTransaction.req PDU 的 TransactionData 元素中的采样测量值。充电点可以通过以下方式报告 StopTxnSampledData 列表中元素的最大数量:

StopTxnSampledDataMaxLength

3.16.2. 时钟对齐计量值

电网运营商可能要求从经过财政认证的能源计量表中,在特定的时钟对齐时间(通常是每15分钟或半小时)进行计量读数。

“时钟对齐计费数据”可以通过以下配置键进行配置:

• ClockAlignedDataInterval

• MeterValuesAlignedData

• MeterValuesAlignedDataMaxLength

• StopTxnAlignedData

• StopTxnAlignedDataMaxLength

ClockAlignedDataInterval 是时钟对齐数据间隔的大小(以秒为单位)。这定义了每天一组等间隔的计量数据聚合间隔,从00:00:00(午夜)开始。

例如,值为900(15分钟)表示每天应被分为96个15分钟间隔。按照惯例,如果其值为“0”(数字零),则表示不应传输任何时钟对齐数据。

MeterValuesAlignedData 是一个以逗号分隔的列表,它规定了每隔 ClockAlignedDataInterval 秒应包含在MeterValues.req PDU 中的一组测量值。充电点可以通过以下方式报告 MeterValuesAlignedData列表中元素的最大数量:MeterValuesAlignedDataMaxLength。

StopTxnAlignedData 是一个以逗号分隔的列表,它规定了对于交易的每个 ClockAlignedDataInterval,应包含在 StopTransaction.req PDU的 TransactionData 元素中的一组时钟对齐的周期性测量值。充电点可以通过以下方式报告 StopTxnAlignedData 列表中元素的最大数量:StopTxnAlignedDataMaxLength。

3.16.3. 多个位置/相位当充电点可以在多个位置或相位上测量相同的测量值时,如果在相关配置键中进行了配置,则应报告所有可能的位置和/或相位。例如:一个充电点能够在输入口(所有3个相位)(电网连接)和输出口(两个连接器上每个连接器3个相位)上测量 Current.Import(电流输入)。在 MeterValuesSampledData 中设置了 Current.Import。MeterValueSampleInterval 设置为 300(秒)。然后,充电点应发送:

• 一个 MeterValues.req,其中:connectorId = 0;包含 3 个 SampledValue 元素,每个相位一个,位置 = 输入口。• 一个 MeterValues.req,其中:connectorId= 1;包含 3 个 SampledValue 元素,每个相位一个,位置 = 输出口。• 一个 MeterValues.req,其中:connectorId= 2;包含 3 个 SampledValue 元素,每个相位一个,位置 = 输出口。

3.16.4. 不支持的测量值当中央系统向充电点发送一个 ChangeConfiguration.req,其中包含以下配置键之一时:

• MeterValuesAlignedData• MeterValuesSampledData• StopTxnAlignedData• StopTxnSampledData

如果逗号分隔的列表中包含一个或多个该充电点不支持的测量值,充电点应以以下方式响应:ChangeConfiguration.conf,其中:status = Rejected(已拒绝)。当前配置不应进行任何更改。

3.16.5. 停止交易中不包含计量数据

当配置键 StopTxnAlignedData 和 StopTxnSampledData 被设置为空字符串时,充电点不应在StopTransaction.req PDU 中包含计量值。

4.由充电点发起的操作

4.1. 授权(Authorize)

图12. 序列图:授权(Authorize)

在电动汽车车主能够开始或停止充电之前,充电点必须授权该操作。充电点应在授权后才开始供电。当停止交易时,如果用于停止交易的标识符与启动交易的标识符不同,充电点才应发送 Authorize.req。

Authorize.req 应当仅用于对充电标识符的授权。

充电点可以在不涉及中央系统的情况下,根据本地授权列表在本地授权标识符。如果用户提供的idTag 不在本地授权列表或授权缓存中,则充电点应向中央系统发送 Authorize.req PDU 以请求授权。如果 idTag 在本地授权列表或授权缓存中,则充电点可以向中央系统发送Authorize.req PDU。

在收到 Authorize.req PDU 后,中央系统应以 Authorize.conf PDU 进行响应。此响应 PDU 应指示中央系统是否接受该 idTag。如果中央系统接受该 idTag,则响应 PDU 可以包含 parentIdTag 并必须包含指示接受或拒绝原因的授权状态值。

如果充电点已实施授权缓存,则在收到 Authorize.conf PDU 后,如果 idTag 不在本地授权列表中,则充电点应使用响应中描述的 IdTagInfo 值更新缓存条目,如授权缓存部分所述。

图13. 序列图:启动通知(BootNotification)

启动后,充电点应向中央系统发送请求,包含有关其配置的信息(例如版本、供应商等)。中央系统应响应以指示是否接受该充电点。

充电点应在每次启动或重新启动时发送 BootNotification.req PDU。在物理开机/重启与成功完成 BootNotification(其中中央系统返回已接受或待处理)之间,充电点不应向中央系统发送任何其他请求。这包括在充电点中仍然存在的缓存消息。

当中央系统使用状态为已接受的 BootNotification.conf 响应时,充电点将根据响应 PDU 中的间隔调整心跳间隔,并建议将其内部时钟与提供的中央系统当前时间同步。如果中央系统返回的不是已接受状态,则间隔字段的值表示发送下一个 BootNotification 请求前的最小等待时间。如果该间隔值为零,充电点应选择自己的等待间隔,以避免用请求淹没中央系统。除非通过 TriggerMessage.req 请求这样做,否则充电点不应过早发送BootNotification.req。

如果中央系统返回的状态为已拒绝,则在上述重试间隔过期之前,充电点不应向中央系统发送任何OCPP 消息。在此间隔期间,中央系统可能无法再访问充电点。例如,它可能会关闭其通信通道或关闭其通信硬件。此外,中央系统也可能会关闭通信通道,以释放系统资源。在拒绝状态下,充电点不应响应任何由中央系统发起的消息,中央系统也不应发起任何消息。

中央系统也可能会返回一个待处理的注册状态,以表明它希望在接受充电点之前从充电点检索或设置某些信息。如果中央系统返回待处理状态,则充电点或中央系统都不应关闭通信通道。中央系统可能会发送请求消息以从充电点检索信息或更改其配置。充电点应对这些消息做出响应。除非中央系统通过 TriggerMessage.req 请求指示充电点这样做,否则充电点不应向中央系统发送请求消息。

在待处理状态下,以下由中央系统发起的消息是不允许的:

RemoteStartTransaction.req 和 RemoteStopTransaction.req

4.2.1. 在被中央系统接受之前的交易

充电点运营商可以选择配置充电点以在接受中央系统之前接受交易。想要实现这种行为的各方应意识到,这些交易是否能被送达中央系统是不确定的。

在重启后(例如由于远程重置命令、断电、固件更新、软件错误等原因),充电点必须再次与中央系统联系,并应发送一个 BootNotification 请求。如果充电点未能从中央系统接收到BootNotification.conf,并且没有正确预设的内置非易失性实时时钟硬件,充电点可能不具有有效的日期/时间设置,这将使得后续无法确定交易的日期/时间。

同样可能的情况是(例如由于配置错误),中央系统在较长一段时间或无限期地指示一个非已接受的状态。

通常建议,如果充电点之前从未被中央系统接受(使用当前的连接设置、URL等),则应拒绝在充电点提供所有充电服务,因为用户无法被认证,并且正在进行的交易可能与预置过程发生冲突。

4.3. 数据传输

图14. 序列图:数据传输

如果充电点需要向中央系统发送信息以执行OCPP不支持的功能,则应使用DataTransfer.req PDU。

请求中的vendorId应该是中央系统已知的,并且能唯一标识特定于供应商的实现。VendorId应该是来自反向DNS命名空间的值,其中名称的最高层次(反转后)应对应于供应商组织的公开注册的主要DNS名称。

可选地,请求PDU中的messageId可用于指示特定的消息或实现。请求和响应PDU中的数据长度是未定义的,应由所有相关方商定。

如果请求的接收方没有针对特定vendorId的实现,则应返回状态“UnknownVendor”,并且数据元素不应存在。在messageId不匹配的情况下(如果使用),接收方应返回状态“UnknownMessageId”。在所有其他情况下,状态“Accepted”或“Rejected”以及数据元素的使用是相关方之间特定的供应商协议的一部分。

4.4. 诊断状态通知

图15. 序列图:诊断状态通知

充电点发送通知以告知中央系统诊断上传的状态。充电点应发送DiagnosticsStatusNotification.reqPDU来通知中央系统诊断上传正在进行中、已成功完成或已失败。当充电点不忙于上传诊断信息时,只有在收到针对诊断状态通知的TriggerMessage后,充电点才会发送状态Idle。中央系统在收到DiagnosticsStatusNotification.req PDU后,应以DiagnosticsStatusNotification.conf进行响应。

4.5. 固件状态通知

图16. 序列图:固件状态通知

充电点发送通知以告知中央系统固件更新的进度。充电点应发送FirmwareStatusNotification.reqPDU,以通知中央系统固件更新下载和安装的进度。当充电点不忙于下载/安装固件时,只有在收到针对固件状态通知的TriggerMessage后,充电点才会发送状态Idle。

中央系统在收到FirmwareStatusNotification.req PDU后,应以FirmwareStatusNotification.conf进行响应。

FirmwareStatusNotification.req PDU应被发送以保持中央系统对由中央系统使用FirmwareUpdate.req PDU启动的更新过程的最新状态。

4.6. 心跳(信号)

图17. 序列图:心跳(信号)

为了让中央系统知道充电点仍然保持连接,充电点在可配置的时间间隔后发送心跳信号。

充电点应发送Heartbeat.req PDU以确保中央系统知道充电点仍然处于活动状态。

中央系统在收到Heartbeat.req PDU后,应以Heartbeat.conf进行响应。响应PDU应包含中央系统的当前时间,建议充电点使用此时间同步其内部时钟。

如果在配置的心跳间隔内已经向中央系统发送了另一个PDU,充电点可以选择不发送Heartbeat.req PDU。这意味着,只要中央系统接收到PDU(无论是哪种PDU),它都应该假设充电点是可用的,就像它收到Heartbeat.req PDU时所做的那样。

在使用WebSocket传输JSON时,发送心跳信号不是强制性的。但是,为了时间同步,建议至少每24小时发送一次心跳信号。

4.7. 计量值

图18. 序列图:计量值

充电点可以采样电表或其他传感器/转换器硬件,以提供有关其计量值的额外信息。是否发送计量值以及何时发送,由充电点自行决定。这可以通过使用ChangeConfiguration.req消息配置数据采集间隔和指定要获取和报告的数据来实现。

充电点应发送MeterValues.req PDU以卸载计量值。请求PDU应包含每个样本的以下信息:

采样所来自的连接器ID。如果connectorId为0,则与整个充电点相关联。如果connectorId为0且测量值是与能量相关的,则应从主能量计量表中取样。

这些值与哪个交易相关(如果适用)的交易ID。如果没有进行中的交易,或者这些值是从主计量表中获取的,则可以省略交易ID。

一个或多个类型为MeterValue的meterValue元素,每个元素代表在特定时间点采集的一组一个或多个数据值。

每个MeterValue元素都包含一个时间戳和一个或多个在同一时间点捕获的sampledvalue元素。每个sampledValue元素包含一个单独的值数据。每个sampledValue的性质由可选的measurand、context、location、unit、phase和format字段确定。

可选的measurand字段指定了正在测量/报告的值的类型。

可选的context字段指定了触发读取的原因/事件。

可选的location字段指定了测量值是在哪里采集的(例如,入口、出口)。

可选的phase字段指定了值适用于电力安装的哪个或哪些相。充电点应从电表(或在没有电表时从电网连接点)的角度报告所有与相号相关的值。

 phase字段并非适用于所有测量值。

有两个测量值(Current.Offered和Power.Offered)严格来说不是测量值。它们表示向电动汽车提供的最大电流/功率量,并打算在智能充电应用中使用。

对于单个连接器相旋转信息,中央系统可以通过GetConfiguration查询充电点上的ConnectorPhaseRotation配置键。充电点应报告相对于电网连接的相旋转。每个连接器可能的值有:NotApplicable(不适用)、Unknown(未知)、RST、RTS、SRT、STR、TRS和TSR。有关更多信息,请参阅“标准配置键名称和值”部分。

EXPERIMENTAL可选的format字段指定数据是否以正常(默认)形式表示为简单的数值(“Raw”),或者作为“SignedData”,这是一个不透明的数字签名二进制数据块,表示为十六进制数据。当提供更成熟的替代方案时,此实验性字段可能会在后续版本中弃用并随后移除。

为了保持向后兼容性,sampledValue元素上所有可选字段的默认值都是这样设置的:如果没有任何额外的字段,则将其解释为以瓦时(Watt-hour)为单位的主动输入能量的寄存器读数。

在接收到MeterValues.req PDU后,中央系统应以MeterValues.conf进行响应。

中央系统可能会对接收到的MeterValues.req中包含的数据进行合理性检查。但是,这种合理性检查的结果不应该导致中央系统不发送MeterValues.conf作为响应。如果未能发送MeterValues.conf作为响应,只会导致充电点按照与事务相关消息的错误响应中规定的那样再次尝试发送相同的消息。

4.8. 开始交易

图19. 序列图:开始交易

充电点应向中央系统发送StartTransaction.req PDU,以通知已开始的事务。如果此事务结束了预约(参见Reserve Now操作),则StartTransaction.req PDU必须包含reservationId。

在接收到StartTransaction.req PDU后,中央系统应以StartTransaction.conf PDU进行响应。此响应PDU必须包含事务ID和授权状态值。

中央系统必须验证StartTransaction.req PDU中标识符的有效性,因为该标识符可能已由充电点使用过时信息在本地授权。例如,该标识符可能在添加到充电点的授权缓存后被阻止。

如果充电点实现了授权缓存,则在接收到StartTransaction.conf PDU后,如果idTag不在本地授权列表中,充电点应使用响应中的IdTagInfo值更新缓存条目,如授权缓存部分所述。

中央系统可能会对接收到的StartTransaction.req中包含的数据进行合理性检查。但是,这种合理性检查的结果不应该导致中央系统不发送StartTransaction.conf作为响应。如果未能发送StartTransaction.conf作为响应,只会导致充电点按照与事务相关消息的错误响应中规定的那样再次尝试发送相同的消息。

4.9. 状态通知

图20. 序列图:状态通知

充电点向中央系统发送通知,以告知中央系统充电点内的状态变化或错误。下表描述了从先前状态(左列)到新状态(上排)的变化,在这些变化上,充电点可能会向中央系统发送StatusNotification.req PDU。

⚠ 注意:

在之前的OCPP版本中定义的Occupied(占用)状态不再相关。Occupied状态被拆分为五个新状态:Preparing(准备中)、Charging(充电中)、SuspendedEV(车辆暂停)、SuspendedEVSE(充电设备暂停)和Finishing(结束中)。

⚠ 注意:

出于对未来兼容性的考虑,在状态通知中使用了EVSE(电动汽车供电设备),而不是Socket(插座)或Charge Point(充电点)。

以下表格描述了哪些状态转换是可能的:

状态 from / to

1 可用的

2 准备中

3 充电中

4 电动汽车暂停充电

5 充电桩暂停充电

6 完成中

7 预订

8 不可用

9

错误的

A

可用的

A2

A3

A4

A5

A7

A8

A9

B

准备中

B1

B3

B4

B5

B6

B9

C

充电中

C1

C4

C5

C6

C8

C9

D

SuspendedEV

D1

D3

D5

D6

D8

D9

E

SuspendedEVSE

E1

E3

E4

E6

E8

E9

F

完成中

F1

F2

F8

F9

G

预订

G1

G2

G8

G9

H

不可用

H1

H2

H3

H4

H5

H9

I

错误的

I1

I2

I3

I4

I5

I6

I7

I8

上面的表格仅适用于 ConnectorId 大于 0 的情况。对于 ConnectorId 为 0 的情况,仅适用有限的一组状态,即:可用(Available)、不可用(Unavailable)和故障(Faulted)。

下表描述了可能导致状态更改的事件:

描述

A2

使用开始(例如,插入插头,停车位占用检测,识别idTag,按下启动按钮,收到RemoteStartTransaction.req)

A3

在没有授权手段的充电点中可能是可能的

A4

与A3类似,但电动汽车没有开始充电

A5

与A3类似,但电动汽车供电设备不允许充电

A7

收到“现在预约”消息,该消息预约了连接器

A8

收到“更改可用性”消息,该消息将连接器设置为不可用

A9

检测到故障,阻止进一步的充电操作。

B1

预期的使用已结束(例如,插头被拔出,停车位不再占用,第二次呈现idTag,预期用户操作超时(由配置键ConnectionTimeOut配置))

B3

所有充电的前提条件都满足,充电过程开始

B4

所有充电的前提条件都满足,但电动汽车没有开始充电

B5

所有充电的前提条件都满足,但电动汽车供电设备不允许充电

B6

超时。使用已启动(例如,插入插头,停车位占用检测),但在超时内未呈现idTag。

B9

检测到故障,阻止进一步的充电操作

C1

充电会话结束,无需用户操作(例如,电动汽车侧的固定电缆被移除)

C4

根据电动汽车的请求停止充电(例如,S2被打开)

C5

根据电动汽车供电设备的请求停止充电(例如,智能充电限制,交易因StartTransaction.conf中的AuthorizationStatus而无效)

C6

交易被用户或远程停止交易消息终止,需要进一步的用户操作(例如,移除电缆,离开停车位)

C8

充电会话结束,无需用户操作,连接器计划变为不可用状态

C9

检测到故障,阻止进一步的充电操作

D1

充电会话结束,无需用户操作

D3

电动汽车请求后恢复充电(例如,S2关闭)

D5

电动汽车供电设备暂停充电(例如,由于智能充电限制)

D6

交易被停止,需要进一步的用户操作

D8

充电会话结束,无需用户操作,连接器计划变为不可用状态

D9

检测到故障,阻止进一步的充电操作

E1

充电会话结束,无需用户操作

E3

充电恢复,因为电动汽车供电设备的限制已解除

E4

电动汽车供电设备的限制已解除,但电动汽车没有开始充电

E6

交易被停止,需要进一步的用户操作

E8

充电会话结束,无需用户操作,连接器计划变为不可用状态

E9

检测到故障,阻止进一步的充电操作

F1

所有用户操作已完成

F2

用户重新启动充电会话(例如,重新连接电缆,再次呈现idTag),从而创建一个新的交易

F8

所有用户操作已完成,连接器计划变为不可用状态

F9

检测到故障,阻止进一步的充电操作

G1

预约到期或收到取消预约的消息

G2

呈现预约身份

G8

预约到期或收到取消预约的消息,连接器计划变为不可用状态

G9

检测到故障,阻止进一步的充电操作

H1

连接器通过“更改可用性”消息被设置为可用状态

H2

用户在与充电点交互后,连接器被设置为可用状态

H3

连接器被设置为可用状态,无需用户操作即可开始充电

H4

与H3类似,但电动汽车没有开始充电

H5

与H3类似,但电动汽车供电设备不允许充电

H9

检测到故障,阻止进一步的充电操作

I1-I8

故障已解决,状态返回到故障前状态。

充电点连接器可能有上述表格中列出的9种状态中的任何一种。对于

ConnectorId 0,仅适用有限的一组状态,即:可用(Available)、不可用(Unavailable)和故障(Faulted)。

ConnectorId 0 的状态与单个连接器(>0)的状态没有直接联系。

如果充电被电动汽车(EV)和电动汽车供电设备(EVSE)同时暂停,那么EVSE暂停状态(SuspendedEVSE)将优先于EV暂停状态(SuspendedEV)。

当充电点或连接器通过“更改可用性”命令被设置为“不可用”状态时,“不可用”状态必须在重启后持续存在。充电点可以将“不可用”状态用于其他内部目的(例如,在更新固件或等待初始的Accepted RegistrationStatus时)。

由于“占用”状态已被拆分为五个新状态(准备中(Preparing)、充电中(Charging)、EV暂停(SuspendedEV)、EVSE暂停(SuspendedEVSE)和完成中(Finishing)),因此从充电点到中央系统将发送更多的StatusNotification.reqPDU。例如,当开始一个交易时,连接器状态会依次从“准备中”变为“充电中”,中间可能短暂地出现“EV暂停”和/或“EVSE暂停”状态,可能在几秒钟内完成。

为了限制过渡次数,如果充电点在可选的配置键MinimumStatusDuration定义的时间段内处于活动状态,它可以选择不发送StatusNotification.req。这样,充电点可以选择不发送某些StatusNotification.reqPDU。

一个充电点制造商可能已经为某些状态转换实现了一个最小的状态持续时间,这个设置与MinimumStatusDuration设置是分开的。在MinimumStatusDuration中设置的时间将被添加到这个默认延迟中。将MinimumStatusDuration设置为零不应覆盖制造商默认的最小状态持续时间。

设置一个较高的MinimumStatusDuration时间可能会导致所有状态通知的发送延迟,因为充电点只有在经过MinimumStatusDuration时间后才会发送StatusNotification.req。

充电点可以发送一个StatusNotification.req PDU来通知中央系统有关故障情况。当“状态”字段不是“故障”时,应将该情况视为警告,因为仍然可以进行充电操作。

ChargePointErrorCode中的EVCommunicationError仅应在状态为“准备中”时使用,

当充电点配置为“StopTransactionOnEVSideDisconnect”设置为“false”,并且交易正在进行时电动汽车(EV)在EV侧断开连接,则应该向中央系统发送一个状态为“SuspendedEV”的StatusNotification.req PDU,并将“errorCode”字段设置为“NoError”。充电点应在“info”字段中添加额外信息,通知中央系统暂停的原因为:“EV侧断开连接”。当前交易不会停止。

当充电点配置为“StopTransactionOnEVSideDisconnect”设置为“true”,并且交易正在进行时电动汽车(EV)在EV侧断开连接,则应该向中央系统发送一个状态为“Finishing”的StatusNotification.req PDU,并将“errorCode”字段设置为“NoError”。充电点应在“info”字段中添加额外信息,通知中央系统停止的原因为:“EV侧断开连接”。当前交易将被停止。

当一个充电点在离线后重新连接到中央系统时,它会根据以下规则更新中央系统关于其状态的信息:

  1. 如果在充电点离线期间状态发生了变化,那么充电点应该发送一个包含其当前状态的StatusNotification.req PDU。
  2. 充电点可以发送一个StatusNotification.req PDU来报告在充电点离线期间发生的错误。
  3. 充电点不应该发送关于在充电点离线期间发生的、不通知中央系统充电点错误或充电点当前状态的历史状态更改事件的StatusNotification.req PDU。
  4. StatusNotification.req消息必须按照它们所描述的事件发生的顺序发送。

在接收到StatusNotification.req PDU后,中央系统应以StatusNotification.conf PDU作为响应。

4.10. 停止交易

图 21. 顺序图:停止交易

当交易停止时,充电点必须发送一个StopTransaction.req PDU,通知中央系统该交易已停止。

StopTransaction.req PDU可以包含一个可选的TransactionData元素,以提供有关交易使用的更多详细信息。这个可选的TransactionData元素是一个容器,可以包含任意数量的MeterValues,使用与MeterValues.req PDU的meterValue元素相同的数据结构(参见MeterValues部分)。

在接收到StopTransaction.req PDU后,中央系统必须用一个StopTransaction.conf PDU作为响应。

中央系统无法阻止交易的停止。它只能通知充电点已经收到了StopTransaction.req,并可能发送关于用于停止交易的idTag的信息。如果实现了授权缓存,这些信息应该用于更新授权缓存。

当充电点本身需要停止交易时,请求PDU中的idTag可以省略。例如,当要求充电点重置时。

如果交易以正常方式结束(例如,电动汽车驾驶员出示身份以停止交易),Reason元素可以省略,并且Reason应默认为“Local”。如果交易没有正常结束,Reason应设置为正确的值。作为正常交易终止的一部分,充电点应解锁电缆(如果电缆不是永久连接的)。

如果电缆在电动汽车侧断开连接,充电点可以解锁电缆(如果电缆不是永久连接的)。如果支持此功能,则通过配置键UnlockConnectorOnEVSideDisconnect进行报告和控制。

如果电缆在电动汽车侧断开连接,充电点可以停止正在进行的交易。如果支持此功能,则通过配置键StopTransactionOnEVSideDisconnect进行报告和控制。

如果StopTransactionOnEVSideDisconnect设置为false,当电缆从电动汽车断开时,交易不应停止。如果电动汽车重新连接,则允许再次进行能量传输。在这种情况下,没有机制可以防止其他电动汽车在同一正在进行的交易中充电和断开连接。如果UnlockConnectorOnEVSideDisconnect设置为false,则连接器将在充电点保持锁定状态,直到用户出示标识符。

通过将StopTransactionOnEVSideDisconnect设置为true,当电缆从电动汽车断开时,交易应被停止。如果电动汽车重新连接,则不允许进行能量传输,直到交易停止并启动新交易。如果UnlockConnectorOnEVSideDisconnect设置为true,则充电点上的连接器也将被解锁。

如果StopTransactionOnEVSideDisconnect设置为false,这将在电缆在电动汽车侧断开时优先于UnlockConnectorOnEVSideDisconnect。换句话说:当StopTransactionOnEVSideDisconnect为false时,电缆在电动汽车侧断开时始终保持锁定状态。

将StopTransactionOnEVSideDisconnect设置为true可以防止通过拔掉电动汽车侧未锁定的电缆来停止能量流动的破坏行为。

中央系统可能会对接收到的StopTransaction.req中包含的数据进行合理性检查。这种合理性检查的结果不应导致中央系统不发送StopTransaction.conf作为响应。如果未能发送StopTransaction.conf作为响应,充电点只会按照与交易相关消息的错误响应中所指定的方式再次尝试发送相同的消息。

如果充电点已经实现了授权缓存,那么在接收到StopTransaction.confPDU后,如果idTag不在本地授权列表中,充电点应该使用响应中的IdTagInfo值更新缓存条目,如授权缓存部分所述。

5.由中央系统发起的操作

5.1. 取消预约

图22. 序列图:取消预约

为了取消预约,中央系统应当向充电点发送一个CancelReservation.reqPDU。

如果充电点有一个与请求PDU中的reservationId相匹配的预约,它将返回状态‘Accepted’。否则,它将返回‘Rejected’。

5.2. 更改可用性

图23. 序列图:更改可用性

中央系统可以请求充电点更改其可用性。当充电点正在充电或准备充电时,它被视为可用(“可运行”)。当充电点不允许任何充电时,它被视为不可用。中央系统应发送一个ChangeAvailability.req PDU来请求充电点更改其可用性。中央系统可以将可用性更改为可用或不可用。

在接收到ChangeAvailability.req PDU后,充电点应使用ChangeAvailability.conf PDU进行响应。响应PDU应指示充电点是否能够更改为请求的可用性状态。当交易正在进行时,充电点应以可用性状态“Scheduled”(计划中)进行响应,以表明它计划在交易完成后更改可用性。

如果中央系统请求充电点更改为其已经处于的状态,充电点应以可用性状态“Accepted”(已接受)进行响应。

当使用ChangeAvailability.req PDU请求的可用性更改已经发生时,充电点应使用StatusNotification.req通知中央系统其新的可用性状态,如其中所述。

如果ChangeAvailability.req中包含ConnectorId = 0,则状态更改适用于充电点及其所有连接器。

持久状态:例如,将连接器设置为不可用将在重启后保持不变。

5.3. 更改配置

图24. 序列图:更改配置

中央系统可以请求充电点更改配置参数。为此,中央系统应发送一个ChangeConfiguration.req。此请求包含一个键值对,其中“key”是要更改的配置设置的名称,“value”包含配置设置的新设置。

在接收到ChangeConfiguration.req后,充电点应以ChangeConfiguration.conf进行回复,指示是否成功将其应用于其配置。不规定“key”和“value”的内容。充电点应根据以下规则在ChangeConfiguration.conf中设置状态字段:

• 如果更改已成功应用,并且更改立即生效,则充电点应以状态“Accepted”(已接受)进行响应。

• 如果更改已成功应用,但需要重启才能使其生效,则充电点应以状态“RebootRequired”(需要重启)进行响应。

• 如果“key”与充电点支持的配置设置不匹配,则它应以状态“NotSupported”(不支持)进行响应。

• 如果充电点未设置配置,且上述状态均不适用,则充电点应以状态“Rejected”(已拒绝)进行响应。

充电点对Change Configuration请求(充电点以状态“Rejected”的ChangeConfiguration.conf进行响应)的示例包括超出范围的值和不符合预期格式的值的请求。

如果某个键值被定义为CSL(可能是某种配置设置列表),则它可能伴随有一个[KeyName]MaxLength键,指示CSL中的最大项目数。如果未设置此键,则应假定安全值为1(一个)项目。

5.4. 清除缓存

图25. 序列图:清除缓存

中央系统可以请求充电点清除其授权缓存。中央系统应发送一个ClearCache.reqPDU来清除充电点的授权缓存。

在接收到ClearCache.req PDU后,充电点应以ClearCache.conf PDU进行响应。响应PDU应指示充电点是否能够清除其授权缓存。

5.5. 清除充电配置文件

图26. 序列图:清除充电配置文件

如果中央系统希望清除之前发送给充电点的部分或全部充电配置文件,它应使用ClearChargingProfile.reqPDU。

充电点应以ClearChargingProfile.conf PDU进行响应,指定是否能够处理该请求。

5.6. 数据传输

图 27. 序列图:数据传输

如果中央系统需要向充电点发送信息,而这些信息是为不支持OCPP(开放充电点协议)的功能所需的,那么它应该使用DataTransfer.req PDU(协议数据单元)。

此操作的行为与由充电点发起的数据传输操作相同。详情请参阅“数据传输”部分。

5.7. 获取组合计划(或:获取组合时间表)

图 28. 序列图:获取组合计划

中央系统可以请求充电点通过发送GetCompositeSchedule.req PDU来报告组合充电计划。在GetCompositeSchedule.conf PDU中报告的计划是所有在充电点中活动的计划和可能的本地限制的计算结果。可能会考虑本地限制。

在接收到GetCompositeSchedule.req后,充电点应从接收到请求PDU的时刻(时间X)起,计算组合充电计划的间隔,直到X + Duration,并在GetCompositeSchedule.conf PDU中将这些间隔发送给中央系统。

如果请求中的ConnectorId被设置为'0',则充电点应报告在请求的时间段内,充电点预计从电网中消耗的总预期功率或电流。

请注意,充电点发送的充电计划仅代表该时间点的指示性数据。由于外部原因(例如,基于电网连接能力的本地平衡功能正在运行,或者某个连接器变得可用),该计划可能会随时间而变化。

如果充电点无法报告所请求的计划,例如连接器ID未知,则应返回“Rejected”(拒绝)状态作为响应。

5.8. 获取配置

图 29. 序列图:获取配置

为了检索配置设置的值,中央系统应发送一个GetConfiguration.reqPDU到充电点。

如果请求PDU中的键列表为空或缺失(它是可选的),则充电点应在GetConfiguration.conf中返回一个包含所有配置设置的列表。否则,充电点应返回一个包含已识别键及其对应值和只读状态的列表。未识别的键应作为GetConfiguration.conf的可选未知键列表元素的一部分放在响应PDU中。

单个PDU中请求的配置键的数量可能受到充电点的限制。这个最大值可以通过读取配置键GetConfigurationMaxKeys来获取。

5.9. 获取诊断信息

图 30. 序列图:获取诊断信息

中央系统可以请求充电点提供诊断信息。中央系统应发送一个GetDiagnostics.reqPDU,以获取指定位置(充电点必须将诊断数据上传至此位置)的充电点的诊断信息,并可选地指定所需诊断信息的开始和结束时间。

在接收到GetDiagnostics.req PDU后,如果诊断信息可用,则充电点应使用包含将上传的诊断信息的文件名的GetDiagnostics.conf PDU进行响应。充电点应上传单个文件。诊断文件的格式没有规定。如果没有可用的诊断文件,则GetDiagnostics.conf不应包含文件名。

在上传诊断文件期间,充电点必须发送DiagnosticsStatusNotification.reqPDU,以将上传过程的状态更新给中央系统。

5.10. 获取本地列表版本

图 31. 序列图:获取本地列表版本

为了支持本地授权列表的同步,中央系统可以请求充电点提供本地授权列表的版本号。中央系统应发送一个GetLocalListVersion.req PDU来请求这个值。

在接收到GetLocalListVersion.req PDU后,充电点应使用包含其本地授权列表版本号的GetLocalListVersion.conf PDU进行响应。版本号0(零)用于指示本地授权列表为空,而版本号-1用于指示充电点不支持本地授权列表。

5.11. 远程启动交易

图 32. 序列图:远程启动交易

中央系统可以通过发送RemoteStartTransaction.req请求来请求充电点启动交易。在收到请求后,充电点应回复RemoteStartTransaction.conf,并附带一个状态,指示是否已接受请求并尝试启动交易。

RemoteStartTransaction.req消息的效果取决于充电点中AuthorizeRemoteTxRequests配置键的值。

• 如果AuthorizeRemoteTxRequests的值为true,充电点应表现得好像是对在充电点进行的本地操作进行响应,以使用RemoteStartTransaction.req消息中给定的idTag启动交易。这意味着充电点将首先尝试使用本地授权列表、授权缓存和/或Authorize.req请求来授权idTag。只有在获得授权后才会启动交易。

• 如果AuthorizeRemoteTxRequests的值为false,充电点应立即尝试为RemoteStartTransaction.req消息中给定的idTag启动交易。请注意,在交易开始后,充电点将向中央系统发送StartTransaction请求,中央系统在处理此StartTransaction请求时将检查idTag的授权状态。

远程启动交易的典型用例如下:

• 允许CPO运营商帮助遇到启动交易问题的电动汽车驾驶员。

• 允许移动应用程序通过中央系统控制充电交易。

• 允许通过中央系统使用短信控制充电交易。

RemoteStartTransaction.req应包含一个标识符(idTag),如果充电点能够启动交易,它将使用该标识符向中央系统发送StartTransaction.req。交易的启动方式与StartTransaction中描述的方式相同。RemoteStartTransaction.req可以包含一个连接器ID,如果交易要在特定连接器上启动。如果没有提供连接器ID,则充电点将控制连接器选择。充电点可能会拒绝没有连接器ID的RemoteStartTransaction.req。

中央系统可以在RemoteStartTransaction请求中包含一个ChargingProfile。此ChargingProfile的目的应设置为TxProfile。如果接受,充电点将在交易中使用此ChargingProfile。

如果一个不支持智能充电的充电点接收到一个带有充电配置文件的RemoteStartTransaction.req请求,那么这个参数应该被忽略。

5.12. 远程停止交易

图 33. 序列图:远程停止交易

中央系统可以通过向充电点发送RemoteStopTransaction.req请求,并附带交易的标识符,来请求充电点停止交易。充电点应回复RemoteStopTransaction.conf,并附带一个状态,指示是否已接受请求,以及具有给定transactionId的交易是否正在进行并将被停止。

这个远程停止交易的请求等同于本地停止交易的操作。因此,交易将被停止,充电点将发送StopTransaction.req请求,并在适用的情况下解锁连接器。

远程停止交易的两个主要用例如下:

• 允许CPO运营商帮助遇到停止交易问题的电动汽车驾驶员。

• 允许移动应用程序通过中央系统控制充电交易。

5.13. 立即预约

图 34. 序列图:立即预约

中央系统可以向充电点发出ReserveNow.req请求,以预留特定idTag所使用的连接器。

为了请求预约,中央系统应向充电点发送ReserveNow.req PDU(协议数据单元)。中央系统可以指定要预约的连接器。收到ReserveNow.req PDU后,充电点应以ReserveNow.conf PDU进行响应。

如果请求中的reservationId与充电点中的某个预约相匹配,则充电点应使用请求中的新预约替换该预约。

如果reservationId与充电点中的任何预约都不匹配,则如果充电点成功预约了连接器,充电点应返回状态值‘Accepted’(已接受)。如果充电点或指定的连接器已被占用,充电点应返回‘Occupied’(占用)。当充电点或连接器已被相同或其他idTag预约时,充电点也应返回‘Occupied’。如果充电点或连接器处于‘Faulted’(故障)状态,充电点应返回‘Faulted’。如果充电点或连接器处于‘Unavailable’(不可用)状态,充电点应返回‘Unavailable’。如果充电点配置为不接受预约,则应返回‘Rejected’(已拒绝)。

如果充电点接受预约请求,则它应拒绝在预留连接器上的所有传入idTag进行充电,除非传入的idTag或其父idTag与预约的idTag或其父idTag匹配。

当配置键“ReserveConnectorZeroSupported”设置为true时,充电点支持在连接器0上进行预约。如果预约请求中的connectorId为0,则充电点不应预留特定的连接器,而应确保在预约有效期内,始终有一个连接器可用于预留的idTag。如果配置键“ReserveConnectorZeroSupported”未设置或设置为false,则充电点应返回“Rejected”(已拒绝)。

如果预约中的父idTag具有值(它是可选的),那么为了确定与传入idTag关联的父idTag,充电点可以在其本地授权列表或授权缓存中查找它。如果在本地授权列表或授权缓存中找不到它,则充电点应向中央系统发送针对传入idTag的Authorize.req请求。Authorize.conf响应可能包含parent-id。

预约应在充电点上终止,当(1)为预留的idTag或父idTag在预留的连接器上或当预留的connectorId为0时的任何连接器上启动交易时,或(2)达到expiryDate中指定的时间时,或(3)当充电点或连接器设置为故障或不可用时。

如果为预留的idTag启动了交易,则充电点应在StartTransaction.req PDU(参见开始交易)中发送reservationId,以通知中央系统预约已终止。

当预约到期时,充电点应终止预约并使连接器可用。充电点应发送状态通知,以通知中央系统预留的连接器现在可用。

如果充电点已实现了授权缓存,则在收到ReserveNow.conf PDU后,如果idTag不在本地授权列表中,则充电点应使用响应中的IdTagInfo值更新缓存条目,如授权缓存部分所述。

建议在接收到一个authorize.req后验证标识符的合法性。

5.14. 重置

图35. 序列图:重置

中央系统应发送Reset.req PDU以请求充电点重置自身。中央系统可以请求硬重置或软重置。在接收到Reset.req PDU后,充电点应以Reset.conf PDU进行响应。响应PDU应包含充电点是否会尝试重置自身的信息。

在接收到Reset.req后,充电点应在执行重置之前,对任何正在进行的交易发送StopTransaction.req。如果充电点未能从中央系统接收到StopTransaction.conf,它将把StopTransaction.req排入队列。

在接收到软重置请求时,充电点应优雅地停止正在进行的交易,并为每个正在进行的交易发送StopTransaction.req。然后,它应重启应用软件(如果可能的话,否则重启处理器/控制器)。

在接收到硬重置请求时,充电点应重启(所有)硬件,无需优雅地停止正在进行的交易。如果可能的话,充电点在重启并通过BootNotification.conf被中央系统接受后,会为之前正在进行的交易发送StopTransaction.req。这是针对功能不正常的充电点的最后解决方案,通过发送“硬”重置,(排队中的)信息可能会丢失。

持久状态:例如,连接器设置为不可用状态应保持。

5.15. 发送本地列表

图36. 序列图:发送本地列表

中央系统可以发送一个本地授权列表,该列表可供充电点用于idTags的授权。该列表可以是完整的列表,以替换充电点中的当前列表,也可以是差异列表,其中包含对充电点中当前列表的更新。

中央系统应发送SendLocalList.req PDU以将列表发送到充电点。SendLocalList.req PDU应包含更新类型(完整或差异)和版本号,充电点在更新后必须将其与本地授权列表相关联。

在接收到SendLocalList.req PDU后,充电点应以SendLocalList.conf PDU进行响应。响应PDU应指示充电点是否已接受本地授权列表的更新。如果状态为失败或版本不匹配,并且更新类型是差异,则中央系统应尝试使用更新类型Full重新发送完整的本地授权列表。

5.16. 设置充电配置文件

图37. 序列图:设置充电配置文件

中央系统可以在以下情况下向充电点发送SetChargingProfile.req以设置充电配置文件:

• 在交易开始时,为交易设置充电配置文件;

• 在发送给充电点的RemoteStartTransaction.req中;

• 在交易期间更改交易的活跃配置文件;

• 在交易上下文之外,作为单独的消息将充电配置文件设置给本地控制器、充电点或默认充电配置文件设置给连接器。

为了防止交易与TxProfile(交易配置文件)之间不匹配,如果配置文件适用于特定的交易,中央系统应在SetChargingProfile.req中包含transactionId(交易ID)。

以下描述了这些情况。

5.16.1. 在交易开始时设置充电配置文件

如果中央系统接收到StartTransaction.req,中央系统应以StartTransaction.conf进行响应。如果需要充电配置文件,中央系统可以选择向充电点发送SetChargingProfile.req。

建议在发送充电配置文件之前检查StartTransaction.req PDU中的时间戳,以检查交易是否可能仍在进行中。StartTransaction.req可能在离线期间被缓存。

5.16.2. 在RemoteStartTransaction请求中设置充电配置文件

中央系统可以在RemoteStartTransaction请求中包含充电配置文件。

如果中央系统包含了ChargingProfile(充电配置文件),则ChargingProfilePurpose(充电配置文件用途)必须设置为TxProfile(交易配置文件),并且transactionId(交易ID)不应设置。

充电点应将给定的配置文件应用于新启动的交易。该交易将通过StartTransaction.conf由中央系统分配一个transactionId。

当充电点接收到一个SetChargingProfile.req,其中包含与RemoteStartTransaction.req中给出的配置文件具有相同StackLevel的此交易的transactionId时,充电点应替换现有的充电配置文件,否则它应在已存在的配置文件旁边安装/堆叠该配置文件。

5.16.3. 在交易期间设置充电配置文件

中央系统可以向充电点发送充电配置文件,以更新该交易的充电配置文件。中央系统应使用SetChargingProfile.reqPDU来实现此目的。如果充电点上存在具有相同chargingProfileId或相同stackLevel/ChargingProfilePurpose组合的充电配置文件,新的充电配置文件应替换现有的充电配置文件,否则会将其添加进去。充电点随后将重新评估其充电配置文件集合,以确定哪个充电配置文件将变为活动状态。为了确保更新的充电配置文件仅适用于当前交易,ChargingProfile的chargingProfilePurpose必须设置为TxProfile(参见部分:充电配置文件目的)

5.16.4. 在交易之外设置充电配置文件

中央系统可以向充电点发送作为默认充电配置文件使用的充电配置文件。中央系统应使用SetChargingProfile.reqPDU来实现此目的。可以在任何时间发送此类充电配置文件。如果充电点上存在具有相同chargingProfileId或相同stackLevel/ChargingProfilePurpose组合的充电配置文件,新的充电配置文件应替换现有的充电配置文件,否则会将其添加进去。充电点随后将重新评估其充电配置文件集合,以确定哪个充电配置文件将变为活动状态。

如果没有活跃的交易存在,或者在交易之前,不可能设置目的设置为TxProfile的ChargingProfile(充电配置文件)。

在执行过程中刷新ChargingProfile时,建议将新ChargingProfile的startSchedule设置在过去的时间,以便在ChargingProfiles之间不会出现默认的充电行为期。充电点应继续执行现有的ChargingProfile,直到新的ChargingProfile被安装。

如果chargingSchedulePeriod(充电计划周期)长于duration(持续时间),则不应执行剩余的周期。如果duration长于chargingSchedulePeriod,充电点应保持最后一个chargingSchedulePeriod的值,直到duration结束。

当recurrencyKind(重复类型)与chargingSchedulePeriod(充电计划周期)和/或duration(持续时间)结合使用,且它们长于循环周期持续时间时,不应执行剩余的周期。

在chargingSchedule(充电计划)中的第一个chargingSchedulePeriod的StartSchedule(开始计划)应始终为0。

当recurrencyKind(重复类型)与短于recurrencyKind周期的chargingSchedule duration(充电计划持续时间)结合使用时,充电点在chargingSchedule duration结束后应回退到默认行为。这种回退意味着充电点应使用具有较低stackLevel的ChargingProfile(如果有的话)。如果没有其他ChargingProfile可用,充电点应允许充电,就好像没有安装ChargingProfile一样。如果chargingSchedulePeriod和/或duration长于循环周期持续时间,则不应执行剩余的周期。

5.17. 触发消息

图38. 序列图:触发消息

在正常运行期间,充电点会向中央系统报告其状态和相关事件。如果没有需要报告的内容,充电点会按照预定义的间隔发送心跳信号。在正常情况下,这样就足够了,但如果中央系统出于某种原因对最后一个已知状态表示怀疑怎么办?如果固件更新正在进行中,而它最后一次接收到的状态通知比合理预期的时间要长得多,中央系统能做什么?同样的问题也适用于诊断请求的进度。在这些情况下,问题不在于所需的信息没有被现有的消息覆盖,而完全是一个时间问题。充电点拥有这些信息,但无法知道中央系统是否需要更新。

TriggerMessage.req 使得中央系统能够请求充电点发送由充电点发起的消息。在请求中,中央系统指示它希望接收哪条消息。对于每一条这样的请求消息,中央系统可以选择性地指示该请求适用于哪个连接器。请求的消息是主要的:如果指定的connectorId与消息无关,它应该被忽略。在这种情况下,仍然应该发送请求的消息。

相反,如果connectorId是相关的但不存在,这应被解释为“适用于所有允许的connectorId值”。例如,请求connectorId为0的状态通知是请求充电点的状态。请求没有指定connectorId的状态通知是请求多个状态通知:充电点本身的状态通知以及每个连接器的状态通知。

图39. 序列图:触发消息状态通知示例

充电点应首先发送TriggerMessage的响应,然后再发送请求的消息。在TriggerMessage.conf中,充电点应通过返回ACCEPTED或REJECTED来指示是否将发送该消息。是否接受或拒绝发送请求由充电点决定。如果请求的消息未知或未实现,充电点应返回NOT_IMPLEMENTED。

充电点标记为已接受的消息应该被发送。可能会出现这样的情况,即在接受请求和实际发送请求的消息之间,由于正常操作已经发送了相同的消息。在这种情况下,刚刚发送的消息可以视为符合请求。

TriggerMessage机制的目的不是检索历史数据。它触发的消息应仅提供当前信息。例如,以这种方式触发的MeterValues.req消息应返回在配置键MeterValuesSampledData中配置的所有测量参数的最近测量值。

StartTransaction和StopTransaction没有被纳入此机制,因为它们与状态无关,而是描述了一个转换过程。

5.18. 解锁连接器

图40. 序列图:解锁连接器

中央系统可以请求充电点解锁一个连接器。为此,中央系统应发送一个UnlockConnector.reqPDU(协议数据单元)。

该消息的目的:帮助电动汽车(EV)驾驶员在连接器电缆保持功能出现故障时,从充电点拔下电缆。当EV驾驶员致电充电点运营商的帮助台时,操作员可以手动触发向充电点发送UnlockConnector.req,强制再次尝试解锁连接器。希望这次连接器能够成功解锁,EV驾驶员可以拔下电缆并驶离。

UnlockConnector.req 不应被用于远程停止正在进行的交易,而应使用远程停止交易功能。

在接收到 UnlockConnector.req PDU 后,充电点应使用 UnlockConnector.conf PDU 进行响应。响应 PDU 应指示充电点是否能够解锁其连接器。

如果特定的连接器上有正在进行的交易,那么充电点应首先按照停止交易所述的方式完成该交易。

UnlockConnector.req 仅用于解锁连接器上的电缆保持锁,而不是用于解锁连接器访问门。

5.19. 更新固件

图41. 序列图:更新固件

中央系统可以通知充电点需要更新其固件。中央系统应发送一个UpdateFirmware.reqPDU来指示充电点安装新固件。该PDU应包含一个日期和时间,充电点可以在该日期和时间之后从指定位置获取新固件。

在接收到UpdateFirmware.req PDU后,充电点应使用UpdateFirmware.conf PDU进行响应。充电点应在可获取日期之后尽快开始获取固件。

在固件下载和安装期间,充电点必须发送FirmwareStatusNotification.reqPDU,以便中央系统了解更新过程的最新状态。如果新的固件映像“有效”,充电点应在其能够安装时尽快安装新固件。如果无法在固件安装期间继续充电,建议在充电会话结束(充电点空闲)之后再开始安装。建议在充电点等待会话结束时,将未使用的连接器设置为“不可用”状态。

上面的序列图是一个示例。在实际操作中,最佳做法是在发送状态:已安装(Installed)之前,先重启充电点以检查新固件是否成功启动并能够连接到中央系统。但这并不是强制要求。

6.消息

6.1. Authorize.req

这包含了充电点发送给中央系统的Authorize.req PDU的字段定义。另见Authorize(授权)部分。

字段名

字段类型

卡片(CARD.)

描述

idTag

IdToken

1..1

必填项。这包含需要被授权的标识符。

6.2. Authorize.conf

这包含了中央系统对充电点发送的Authorize.req PDU的响应,即Authorize.conf PDU的字段定义。另见Authorize(授权)部分。

字段名

字段类型

卡片(CARD.)

描述

idTagInfo

idTagInfo

1..1

必填项。这包含了关于授权状态、过期时间和父ID的信息。

6.3. BootNotification.req

这包含了充电点发送给中央系统的BootNotification.req PDU的字段定义。另见启动通知(Boot Notification)。

字段名

字段类型

卡片(CARD.)

描述

chargeBoxSerialNumber

CiString25Type

0..1

(可选)这包含一个值,用于标识充电点内充电箱的序列号。已弃用,将在未来版本中移除。

chargePointModel

CiString20Type

1..1

必填项。这包含一个值,用于标识充电点的型号。

chargePointSerialNumber

CiString25Type

0..1

(可选)这包含一个值,用于标识充电点的序列号。

chargePointVendor

CiString20Type

1..1

必填项。这包含一个值,用于标识充电点的供应商。

firmwareVersion

CiString50Type

0..1

(可选)这包含充电点的固件版本。

iccid

CiString20Type

0..1

(可选)这包含调制解调器SIM卡的ICCID(集成电路卡识别码)。

imsi

CiString20Type

0..1

(可选)这包含调制解调器SIM卡的IMSI(国际移动用户识别码)。

meterSerialNumber

CiString25Type

0..1

(可选)这包含充电点主电表的序列号。

meterType

CiString25Type

0..1

(可选)这包含充电点主电表的类型。

6.4. BootNotification.conf

这包含了中央系统对充电点发送的BootNotification.req PDU的响应,即BootNotification.conf PDU的字段定义。另见启动通知(BootNotification)。

字段名

字段类型

卡片(CARD.)

描述

currentTime

dateTime

1..1

必填项。这包含了中央系统的当前时间。

interval

integer

1..1

必填项。当RegistrationStatus为Accepted(接受)时,这包含了心跳间隔的秒数。如果中央系统返回的不是Accepted,间隔字段的值表示在发送下一个BootNotification请求之前所需等待的最小时间。

status

RegistrationStatus

1..1

必填项。这包含了充电点是否已在系统中心注册的信息。

6.5. CancelReservation.req

这包含了中央系统发送给充电点的CancelReservation.req PDU的字段定义。另见取消预约(Cancel Reservation)。

字段名

字段类型

卡片(CARD.)

描述

reservationId

integer

1..1

必填项。要取消的预约的ID。

6.6. CancelReservation.conf

这包含了充电点对中央系统发送的CancelReservation.req PDU的响应,即CancelReservation.conf PDU的字段定义。另见取消预约(CancelReservation)。

字段名

字段类型

卡片(CARD.)

描述

status

CancelReservationStatus

1..1

必填项。这表示中央系统取消预约的成功或失败状态。

6.7. ChangeAvailability.req

这包含了中央系统发送给充电点的ChangeAvailability.req PDU的字段定义。另见修改可用性(Change Availability)。

字段名

字段类型

卡片(CARD.)

描述

connectorId

integer

connectorId >= 0

1..1

必需项。需要更改其可用性的连接器的ID。如果需要更改充电点及其所有连接器的可用性,则使用ID“0”(零)。

type

AvailabilityType

1..1

必需项。这包含了充电点应该执行的可用性变更类型。

6.8. ChangeAvailability.conf

这包含了由充电点返回给中央系统的ChangeAvailability.conf PDU(协议数据单元)的字段定义。

另请参阅“更改可用性”部分。

字段名

字段类型

卡片(CARD.)

描述

status

AvailabilityStatus

1..1

必需项。这表示充电点是否能够执行可用性变更。

6.9. ChangeConfiguration.req

这包含了由中央系统发送给充电点的ChangeConfiguration.req PDU(协议数据单元)的字段定义。建议“key”和“value”字段的内容和含义在充电点与中央系统之间达成一致。另请参阅“更改配置”部分。

字段名

字段类型

卡片(CARD.)

描述

key

CiString50Type

1..1

必需项。要更改的配置设置的名称。请参阅标准配置键名及其关联的值。

value

CiString500Type

1..1

必需项。该设置的新值(作为字符串)。请参阅标准配置键名及其关联的值。

6.10. ChangeConfiguration.conf

这包含了由充电点返回给中央系统的ChangeConfiguration.confPDU(协议数据单元)的字段定义。另请参阅“更改配置”部分。

字段名

字段类型

卡片(CARD.)

描述

status

ConfigurationStatus

1..1

必需项。返回配置变更是否已被接受。

6.11. ClearCache.req

这包含了由中央系统发送给充电点的ClearCache.req PDU(协议数据单元)的字段定义。另请参阅“清除缓存”部分。

(注意:此部分未定义任何字段。)

6.12. ClearCache.conf

这包含了由充电点发送给中央系统以响应ClearCache.req PDU的ClearCache.conf PDU(协议数据单元)的字段定义。另请参阅“清除缓存”部分。

字段名

字段类型

卡片(CARD.)

描述

status

ClearCacheStatus

1..1

必需项。如果充电点已执行请求,则接受;否则,拒绝。

6.13. ClearChargingProfile.req

这包含了由中央系统发送给充电点的ClearChargingProfile.reqPDU(协议数据单元)的字段定义。

中央系统可以使用此消息来清除(移除)特定的充电配置文件(由id标识)或者符合可选字段connectorId、stackLevel和chargingProfilePurpose的值的充电配置文件。另请参阅“清除充电配置文件”部分。

字段名

字段类型

卡片(CARD.)

描述

id

integer

0..1

可选。要清除的充电配置文件的ID。

connectorId

integer

0..1

可选。指定要清除充电配置文件的连接器的ID。连接器ID为零(0)表示针对整个充电点的充电配置文件。如果缺少此参数,则清除将应用于匹配请求中其他条件的所有充电配置文件。

chargingProfilePurpose

ChargingProfilePurposeType

0..1

可选。指定将要清除的充电配置文件的目的(如果它们符合请求中的其他条件)。

stackLevel

integer

0..1

可选。指定要清除的充电配置文件的stackLevel(如果它们符合请求中的其他条件)。

6.14. ClearChargingProfile.conf

这包含了由充电点发送给中央系统以响应ClearChargingProfile.reqPDU的ClearChargingProfile.conf PDU(协议数据单元)的字段定义。另请参阅“清除充电配置文件”部分。

字段名

字段类型

卡片(CARD.)

描述

status

ClearChargingProfileStatus

1..1

必需项。指示充电点是否能够执行该请求。

6.15. DataTransfer.req

这包含了由中央系统发送给充电点或由充电点发送给中央系统的DataTransfer.reqPDU(协议数据单元)的字段定义。另请参阅“数据传输”部分。

字段名

字段类型

卡片(CARD.)

描述

vendorId

CiString255Type

1..1

必需项。这标识了供应商特定的实现

messageId

CiString50Type

0..1

可选。附加的标识字段

data

文本长度未定义

0..1

可选。没有指定长度或格式的数据。

6.16. DataTransfer.conf

这包含了由充电点发送给中央系统或由中央系统发送给充电点以响应DataTransfer.reqPDU的DataTransfer.conf PDU(协议数据单元)的字段定义。另请参阅“数据传输”部分。

字段名

字段类型

卡片(CARD.)

描述

status

DataTransferStatus

1..1

必需项。这表示数据传输的成功或失败。

data

文本长度未定义

0..1

可选。对请求的响应数据。

6.17. DiagnosticsStatusNotification.req

这包含了由充电点发送给中央系统的DiagnosticsStatusNotification.reqPDU(协议数据单元)的字段定义。另请参阅“诊断状态通知”部分。

字段名

字段类型

卡片(CARD.)

描述

status

DiagnosticsStatus

1..1

必需项。这包含了诊断上传的状态。

6.18. DiagnosticsStatusNotification.conf

这包含了由中央系统发送给充电点以响应DiagnosticsStatusNotification.reqPDU的DiagnosticsStatusNotification.conf PDU(协议数据单元)的字段定义。另请参阅“诊断状态通知”部分。

(注意:此部分未定义任何字段。)

6.19. FirmwareStatusNotification.req

这包含了由充电点发送给中央系统的FirmwareStatusNotification.reqPDU(协议数据单元)的字段定义。另请参阅“固件状态通知”部分。

字段名

字段类型

卡片(CARD.)

描述

status

FirmwareStatus

1..1

必需项。这包含了固件安装的进度状态。

6.20. FirmwareStatusNotification.conf

这包含了由中央系统发送给充电点以响应FirmwareStatusNotification.reqPDU的FirmwareStatusNotification.conf PDU(协议数据单元)的字段定义。另请参阅“固件状态通知”部分。

(注意:此部分未定义任何字段。)

6.21. GetCompositeSchedule.req

这包含了由中央系统发送给充电点的GetCompositeSchedule.reqPDU(协议数据单元)的字段定义。另请参阅“获取组合计划”部分。

字段名

字段类型

卡片(CARD.)

描述

connectorId

integer

1..1

必需项。请求计划的连接器的ID。当ConnectorId=0时,充电点将计算电网连接的预期消耗量。

duration

integer

1..1

必需项。秒数。请求计划的长度。

chargingRateUnit

ChargingRateUnitType

0..1

可选。可用于强制使用功率或电流配置文件。

6.22. GetCompositeSchedule.conf

这个文件包含了Charge Point发送给中央系统以响应GetCompositeSchedule.req PDU的GetCompositeSchedule.confPDU的字段定义。另见“获取复合计划”(Get Composite Schedule)相关说明。

字段名

字段类型

卡片(CARD.)

描述

status

GetCompositeScheduleStatus

1..1

必填项。请求的状态。充电桩将指示其是否能够处理该请求。

connectorId

integer

0..1

可选的。本通知中包含的充电计划适用于一个连接器。

scheduleStart

dateTime

0..1

可选的。时间。充电配置文件中的时间段是相对于此时间点的。如果状态为“Rejected”(拒绝),则该字段可能不存在。

chargingSchedule

ChargingSchedule

0..1

可选的。计划的复合充电计划,即随时间变化的能耗。始终与ScheduleStart(计划开始时间)相关。如果状态为“Rejected”(拒绝),则该字段可能不存在。

6.23. GetConfiguration.req

这包含了中央系统发送给充电桩的GetConfiguration.req PDU的字段定义。另见“获取配置”(GetConfiguration)相关说明。

字段名

字段类型

卡片(CARD.)

描述

key

CiString50Type

0..*

可选的。请求配置值的键的列表。

6.24. GetConfiguration.conf

这包含了充电桩发送给中央系统以响应GetConfiguration.req的GetConfiguration.conf PDU的字段定义。另见“获取配置”(Get Configuration)相关说明。

字段名

字段类型

卡片(CARD.)

描述

configurationKey

KeyValue

0..*

可选的。已请求或已知键的列表。

unknownKey

CiString50Type

0..*

可选的。未知的请求键

6.25. GetDiagnostics.req

这包含了中央系统发送给充电桩的GetDiagnostics.req PDU的字段定义。另见“获取诊断”(GetDiagnostics)相关说明。

字段名

字段类型

卡片(CARD.)

描述

location

anyURI

1..1

必填项。这包含了诊断文件应上传到的位置(目录)。

retries

integer

0..1

可选的。这指定了充电桩在放弃之前必须尝试上传诊断文件的次数。如果此字段不存在,则由充电桩自行决定要重试多少次。

retryInterval

integer

0..1

可选的。重试之间的时间间隔(以秒为单位)。如果此字段不存在,则由充电桩自行决定每次尝试之间的等待时间。

startTime

dateTime

0..1

可选的。这包含了要包含在诊断中的最旧日志信息的日期和时间。

stopTime

dateTime

0..1

可选的。这包含了要包含在诊断中的最新日志信息的日期和时间。

6.26. GetDiagnostics.conf

这包含了充电桩发送给中央系统以响应GetDiagnostics.req PDU的GetDiagnostics.conf PDU的字段定义。另见“获取诊断”(Get Diagnostics)相关说明。

字段名

字段类型

卡片(CARD.)

描述

fileName

CiString255Type

0..1

可选的。这包含了包含诊断信息的文件名,该文件将被上传。如果没有可用的诊断信息,则此字段不存在。

6.27. GetLocalListVersion.req

这包含了中央系统发送给充电桩的GetLocalListVersion.req PDU的字段定义。另见“获取本地列表版本”(Get LocalList Version)

没有定义字段。

6.28. GetLocalListVersion.conf

这包含了充电桩发送给中央系统以响应GetLocalListVersion.reqPDU的GetLocalListVersion.conf PDU的字段定义。另见“获取本地列表版本”(Get LocalList Version)。

字段名

字段类型

卡片(CARD.)

描述

listVersion

integer

1..1

必填项。这包含了充电桩中本地授权列表的当前版本号。

6.29. Heartbeat.req

这包含了充电桩发送给中央系统的Heartbeat.req PDU的字段定义。另见“心跳”(Heartbeat)

没有定义字段。

6.30. Heartbeat.conf

这包含了中央系统发送给充电桩以响应Heartbeat.req PDU的Heartbeat.conf PDU的字段定义。另见“心跳”(Heartbeat)

字段名

字段类型

卡片(CARD.)

描述

currentTime

dateTime

1..1

必填项。这包含了中央系统的当前时间。

6.31. MeterValues.req

这包含了充电桩发送给中央系统的MeterValues.req PDU的字段定义。另见“电表值”(Meter Values)。

字段名

字段类型

卡片(CARD.)

描述

connectorId

integer

connectorId>=0

1..1

必填项。这包含一个数字(>0),用于指定充电桩的一个连接器。'0'(零)用于指定主电表。

transactionId

integer

0..1

可选的。这些电表样本所关联的交易。

meterValue

MeterValue

1..*

必填项。带有时间戳的采样电表值。

6.32. MeterValues.conf

这包含了中央系统发送给充电桩以响应MeterValues.req PDU的MeterValues.conf PDU的字段定义。另见“电表值”(Meter Values)

没有定义字段。

6.33. RemoteStartTransaction.req

这包含了中央系统发送给充电桩的RemoteStartTransaction.reqPDU的字段定义。另见“远程启动交易”(Remote Start Transaction)。

字段名

字段类型

卡片(CARD.)

描述

connectorId

integer

0..1

可选的。启动交易所使用的连接器编号。connectorId 必须大于 0。

idTag

IdToken

1..1

必填项。充电桩必须使用此标识符来启动交易。

chargingProfile

ChargingProfile

0..1

可选的。充电桩为所请求的交易所使用的充电配置文件。ChargingProfilePurpose 必须设置为 TxProfile。

6.34. RemoteStartTransaction.conf

这包含了从充电桩发送给中央系统的RemoteStartTransaction.confPDU的字段定义。另见“远程启动交易”(Remote Start Transaction)。

字段名

字段类型

卡片(CARD.)

描述

status

RemoteStartStopStatus

1..1

必填项。状态指示充电桩是否接受启动交易的请求。

6.35. RemoteStopTransaction.req

这包含了中央系统发送给充电桩的RemoteStopTransaction.reqPDU的字段定义。另见“远程停止交易”(Remote Stop Transaction)。

字段名

字段类型

卡片(CARD.)

描述

transactionId

integer

1..1

必填项。请求充电桩停止的交易的标识符。

6.36. RemoteStopTransaction.conf

这包含了从充电桩发送给中央系统的RemoteStopTransaction.confPDU的字段定义。另见“远程停止交易”(Remote Stop Transaction)。

字段名

字段类型

卡片(CARD.)

描述

status

RemoteStartStopStatus

1..1

必填项。状态指示充电桩是否接受停止交易的请求。

6.37. ReserveNow.req

这包含了中央系统发送给充电桩的ReserveNow.req PDU的字段定义。另见“立即预约”(Reserve Now)。

字段名

字段类型

卡片(CARD.)

描述

connectorId

integer

connectorId >= 0

1..1

必填项。这包含了要预约的连接器的ID。值为0表示预约不是针对特定的连接器。

expiryDate

dateTime

1..1

必填项。这包含了预约结束的日期和时间。

idTag

IdToken

1..1

必填项。充电桩需要为哪个标识符预留连接器。

parentIdTag

IdToken

0..1

可选的。父级idTag。

reservationId

integer

1..1

必填项。此预约的唯一ID。

6.38. ReserveNow.conf

这包含了充电桩发送给中央系统以响应ReserveNow.req PDU的ReserveNow.conf PDU的字段定义。另见“立即预约”(Reserve Now)。

字段名

字段类型

卡片(CARD.)

描述

status

ReservationStatus

1..1

必填项。这表示预约的成功或失败。

6.39. Reset.req

这包含了中央系统发送给充电桩的Reset.req PDU的字段定义。另见“重置”(Reset)。

字段名

字段类型

卡片(CARD.)

描述

type

ResetType

1..1

必填项。这包含了充电桩应执行的重置类型。

6.40. Reset.conf

这包含了充电桩发送给中央系统以响应Reset.req PDU的Reset.conf PDU的字段定义。另见“重置”(Reset)。

字段名

字段类型

卡片(CARD.)

描述

status

ResetStatus

1..1

必填项。这表示充电桩是否能够执行重置。

6.41. SendLocalList.req

这包含了中央系统发送给充电桩的SendLocalList.req PDU的字段定义。如果未给出(空)的本地授权列表(localAuthorizationList),并且更新类型为Full(完全),则将从列表中删除所有标识。请求Differential(差异)更新而不提供(空)的本地授权列表将不会对列表产生任何影响。localAuthorizationList中的所有idTags必须是唯一的,不允许有重复值。另见“发送本地列表”(Send LocalList)。

字段名

字段类型

卡片(CARD.)

描述

listVersion

integer

1..1

必填项。在完全更新的情况下,这是完整列表的版本号。在差异更新的情况下,这是应用更新后列表的版本号。

localAuthorizationList

AuthorizationData

0..*

可选的。在完全更新的情况下,这包含了构成新的本地授权列表的值列表。在差异更新的情况下,它包含了将应用于充电桩中本地授权列表的更改。AuthorizationData元素的最大数量可在配置键SendLocalListMaxLength中找到。

updateType

UpdateType

1..1

必填项。这包含了此请求的更新类型(完全或差异)。

6.42. SendLocalList.conf

这包含了充电桩发送给中央系统以响应SendLocalList.req PDU的SendLocalList.conf PDU的字段定义。另见“发送本地列表”(Send Local List)。

字段名

字段类型

卡片(CARD.)

描述

status

UpdateStatus

1..1

必填项。这表示充电桩是否已成功接收并应用了本地授权列表的更新。

6.43. SetChargingProfile.req

这包含了中央系统发送给充电桩的SetChargingProfile.req PDU的字段定义。

中央系统使用此消息将充电配置文件发送到充电桩。另见“设置充电配置文件”(SetCharging Profile)。

字段名

字段类型

卡片(CARD.)

描述

connectorId

integer

1..1

必填项。充电配置文件适用的连接器。如果connectorId = 0,则该消息包含充电桩的总限制。

csChargingProfiles

ChargingProfile

1..1

必填项。要在充电桩设置的充电配置文件。

6.44. SetChargingProfile.conf

这包含了充电桩发送给中央系统以响应SetChargingProfile.req PDU的SetChargingProfile.conf PDU的字段定义。另见“设置充电配置文件”(Set Charging Profile)。

字段名

字段类型

卡片(CARD.)

描述

status

ChargingProfileStatus

1..1

必填项。返回充电桩是否已成功处理该消息。这并不保证将严格按照计划执行。充电桩可能需要考虑其他约束条件。

6.45. StartTransaction.req

本节包含了充电桩发送给中央系统的StartTransaction.req PDU的字段定义。另见“开始交易”(StartTransaction)。

字段名

字段类型

卡片(CARD.)

描述

connectorId

integer

connectorId > 0

1..1

必填项。这标识了充电桩使用的哪个连接器。

idTag

IdToken

1..1

必填项。这包含了需要开始交易的标识符。

meterStart

integer

1..1

必填项。这包含了交易开始时连接器的电量值(以Wh为单位)。

reservationId

integer

0..1

可选的。这包含了由于此次交易而终止的预约的ID。

timestamp

dateTime

1..1

必填项。这包含了交易开始的日期和时间。

6.46. StartTransaction.conf

这包含了中央系统发送给充电桩以响应StartTransaction.req PDU的StartTransaction.conf PDU的字段定义。另见“开始交易”(Start Transaction)。

字段名

字段类型

卡片(CARD.)

描述

idTagInfo

IdTagInfo

1..1

必填项。这包含了关于授权状态、到期时间和父ID的信息。

transactionId

integer

1..1

必填项。这包含了中央系统提供的交易ID。

6.47. StatusNotification.req

这包含了充电桩发送给中央系统的StatusNotification.req PDU的字段定义。另见“状态通知”(StatusNotification)。

字段名

字段类型

卡片(CARD.)

描述

connectorId

integer

connectorId >= 0

1..1

必填项。用于报告状态的连接器的ID。如果状态是针对充电桩主控制器的,则使用ID“0”(零)。

errorCode

ChargePointErrorCode

1..1

必填项。这包含由充电桩报告的错误代码。

info

CiString50Type

0..1

可选。与错误相关的额外自由格式信息。

status

ChargePointStatus

1..1

必填项。这包含充电桩的当前状态。

timestamp

dateTime

0..1

可选。报告状态的时间。如果未提供,则假定为收到消息的时间。

vendorId

CiString255Type

0..1

可选。这用于标识特定于供应商的实现。

vendorErrorCode

CiString50Type

0..1

可选。这包含特定于供应商的错误代码。

6.48. StatusNotification.conf

这包含了中央系统发送给充电桩以响应StatusNotification.req PDU的StatusNotification.conf PDU的字段定义。也参见“状态通知”。

注意:此处说明没有定义任何字段。

6.49. StopTransaction.req

这包含了充电桩发送给中央系统的StopTransaction.req PDU的字段定义。

也参见“停止交易”

字段名

字段类型

卡片(CARD.)

描述

idTag

IdToken

0..1

可选。这包含请求停止充电的标识符。它是可选的,因为充电桩可能在没有idTag的情况下终止充电,例如在重置的情况下。如果知道idTag,充电桩应当发送它。

meterStop

integer

1..1

必填项。这包含交易结束时连接器的电量读数,单位为瓦时(Wh)。

timestamp

dateTime

1..1

必填项。这包含交易停止的日期和时间。

transactionId

integer

1..1

必填项。这包含从StartTransaction.conf接收到的交易ID。

reason

Reason

1..1

可选。这包含交易停止的原因。当原因是“Local”(本地)时,可以省略此字段。

transactionData

MeterValue

0..*

可选。这包含与计费相关的交易使用详情。

6.50. StopTransaction.conf

这包含了中央系统发送给充电桩以响应StopTransaction.req PDU的StopTransaction.conf PDU的字段定义。也参见“停止交易”。

字段名

字段类型

卡片(CARD.)

描述

idTagInfo

IdTagInfo

0..1

可选。这包含关于授权状态、到期时间和父ID的信息。它是可选的,因为交易可能在没有标识符的情况下被停止。

6.51. TriggerMessage.req

这包含了中央系统发送给充电桩的TriggerMessage.req PDU的字段定义。也参见“触发消息”。

字段名

字段类型

卡片(CARD.)

描述

requestedMessage

MessageTrigger

1..1

必填项。

connectorId

integer

connectorId>0

0..1

可选。仅当请求适用于特定连接器时填写。

6.52. TriggerMessage.conf

这包含了充电桩发送给中央系统以响应TriggerMessage.req PDU的TriggerMessage.conf PDU的字段定义。也参见“触发消息”。

字段名

字段类型

卡片(CARD.)

描述

status

TriggerMessageStatus

1..1

必填项。指示充电桩是否会发送所请求的通知。

6.53. UnlockConnector.req

这包含了中央系统发送给充电桩的UnlockConnector.req PDU的字段定义。也参见“解锁连接器”。

字段名

字段类型

卡片(CARD.)

描述

connectorId

integer

connectorId > 0

1..1

必填项。这包含要解锁的连接器的标识符。

6.54. UnlockConnector.conf

这包含了充电桩发送给中央系统以响应UnlockConnector.req PDU的UnlockConnector.conf PDU的字段定义。也参见“解锁连接器”。

字段名

字段类型

卡片(CARD.)

描述

status

UnlockStatus

1..1

必填项。这指示充电桩是否已解锁连接器。

6.55. UpdateFirmware.req

这包含了中央系统发送给充电桩的UpdateFirmware.req PDU的字段定义。也参见“更新固件”。

字段名

字段类型

卡片(CARD.)

描述

location

anyURI

1..1

必填项。这包含一个字符串,其中包含一个URI,指向用于检索固件的位置。

retries

integer

0..1

可选。这指定了充电桩在放弃之前必须尝试下载固件的次数。如果此字段不存在,则由充电桩自行决定重试的次数。

retrieveDate

dateTime

1..1

必填项。这包含充电桩被允许下载(新)固件的日期和时间之后的时间点。

retryInterval

integer

0..1

可选。重试可能尝试的间隔秒数。如果此字段不存在,则由充电桩自行决定两次尝试之间的等待时间。

6.56. UpdateFirmware.conf

这包含了充电桩发送给中央系统以响应UpdateFirmware.req PDU的UpdateFirmware.conf PDU的字段定义。也参见“更新固件”。

注意:此处说明没有定义任何字段。

7.类型(Types)

7.1. AuthorizationData(授权数据)

类(Class)

构成本地授权列表更新条目的元素。

字段名

字段类型

卡片(CARD.)

描述

idTag

IdToken

1..1

必填项。此授权所适用的标识符。

idTagInfo

IdTagInfo

0..1

可选。(当UpdateType为完整更新时必填)这包含有关授权状态、到期日期和父ID的信息。对于差异更新,适用以下规则:如果此元素存在,则应在本地授权列表中添加或更新此条目。如果此元素不存在,则应在本地授权列表中删除此idtag对应的条目。

7.2. AuthorizationStatus

枚举

对Authorize.req的响应中的状态。

描述

Accepted

标识符允许用于充电。

Blocked

标识符已被阻止。不允许用于充电。

Expired

标识符已过期。不允许用于充电。

Invalid

标识符未知。不允许用于充电。

ConcurrentTx

标识符已参与另一笔交易,且不允许进行多笔交易。(仅与StartTransaction.req相关。)

7.3. AvailabilityStatus

枚举

对ChangeAvailability.req的响应返回的状态。

描述

Accepted

请求已被接受并将执行。

Rejected

请求未被接受且将不会执行。

Scheduled

请求已被接受,并将在正在进行的交易完成后执行。

7.4. AvailabilityType

枚举

在ChangeAvailability.req中请求的可用性变更。

描述

Inoperative

充电桩不可用于充电。

Operative

充电桩可用于充电。

7.5. CancelReservationStatus

枚举

在CancelReservation.conf中的状态。

描述

Accepted

针对该标识符的预约已被取消。

Rejected

无法取消针对该标识符的预约,因为该标识符没有活动的预约。

7.6. ChargePointErrorCode

枚举

在StatusNotification.req中报告的充电桩状态码。

描述

ConnectorLockFailure

连接器锁定或解锁失败。

EVCommunicationError

与车辆的通信失败,可能是Mode 3或其他通信协议问题。从严格意义上讲,这并不是充电桩的实际错误,因为充电桩不需要进入故障状态。相反,它应该进入SuspendedEVSE(暂停的电动汽车供电设备)状态。

GroundFailure

接地故障断路器已激活。

HighTemperature

充电桩内部的温度过高。

InternalError

内部硬件或软件组件错误。

LocalListConflict

从中央系统接收的授权信息与本地授权列表存在冲突。

NoError

没有错误要报告。

OtherError

其他类型的错误。更多信息在vendorErrorCode中。

OverCurrentFailure

过流保护装置已跳闸。

OverVoltage

电压已升高至不可接受的水平。

PowerMeterFailure

无法读取电表/能量计/功率计。

PowerSwitchFailure

无法控制电源开关。

ReaderFailure

ID标签读取器故障。

ResetFailure

无法进行重置。

UnderVoltage

电压已降至不可接受的水平。

WeakSignal

无线通信设备报告信号较弱。

7.7. ChargePointStatus

枚举

在StatusNotification.req中报告的状态。可以为充电桩主控制器(connectorId = 0)或特定连接器报告状态。充电桩主控制器的状态是该枚举的一个子集:Available(可用)、Unavailable(不可用)或Faulted(故障)。

被视为可运行状态的有:Available(可用)、Preparing(准备中)、Charging(充电中)、SuspendedEVSE(暂停的电动汽车供电设备)、SuspendedEV(暂停的电动汽车)、Finishing(结束中)、Reserved(已预约)。

被视为不可运行状态的有:Unavailable(不可用)、Faulted(故障)。

描述

Available

当一个连接器可供新用户使用时(可运行状态)

Preparing

当一个连接器不再可供新用户使用时(但尚未进行交易),它通常处于准备状态。这通常发生在用户出示标签、插入电缆或车辆占据停车位时(可运行状态)。

Charging

当一个连接器的接触器闭合,允许车辆开始充电时(可运行状态)

SuspendedEVSE

当电动汽车(EV)连接到电动汽车供电设备(EVSE)时,但EVSE没有向EV提供能量,例如由于智能充电限制、本地供电能力限制,或者由于StartTransaction.conf指示不允许充电等原因(可运行状态)。

SuspendedEV

当电动汽车(EV)连接到电动汽车供电设备(EVSE)并且EVSE正在提供能量,但EV并没有接受任何能量时(可运行状态)。

Finishing

当一个连接器上的交易已经停止,但该连接器尚未可供新用户使用时,例如电缆尚未被移除或车辆尚未离开停车位(可运行状态)。

Reserved

当一个连接器由于“立即预约”命令而变为已预约状态时(可运行状态)

Unavailable

当一个连接器由于“更改可用性”命令或充电桩自行决定变为不可用的某个事件而变为不可用时。在接收到“更改可用性”命令后,状态可能会立即更改,或者更改可能会被安排。当更改被安排时,应在可用性更改生效时发送状态通知(不可运行状态)。

Faulted

当充电桩或连接器报告错误且无法提供能量时(不可运行状态)。

7.8. ChargingProfile 类

一个 ChargingProfile 包含一个 ChargingSchedule,描述每个时间间隔内可以提供的电量或电流。

图 42. 类图:ChargingProfile

字段名

字段类型

卡片(CARD.)

描述

chargingProfileId

integer

1..1

必填项。此配置文件的唯一标识符。

transactionId

integer

0..1

可选项。仅当 ChargingProfilePurpose 设置为 TxProfile 时有效,transactionId 可用于将配置文件与特定交易进行匹配。

stackLevel

integer >=0

1..1

必填项。确定配置文件在层次结构堆栈中的级别的值。较高的值具有比较低的值更高的优先级。最低级别是0。

chargingProfilePurpose

ChargingProfilePurposeType

1..1

必填项。定义通过此消息传输的日程表的用途。

chargingProfileKind

ChargingProfileKindType

1.1

必填项。指示日程表的类型。

recurrencyKind

RecurrencyKindType

0..1

可选项。指示重复的起始点。

validFrom

dateTime

0..1

可选项。配置文件开始生效的时间点。如果缺失,则配置文件在充电点收到时即生效。

validTo

dateTime

0..1

可选项。配置文件停止生效的时间点。如果缺失,则配置文件将持续有效,直到被另一个配置文件替换。

chargingSchedule

ChargingSchedule

1..1

必填项。包含随时间变化的可用功率或电流的限制。

7.9. ChargingProfileKindType

枚举

充电配置文件的类型,如 ChargingProfile 中所使用的。

描述

Absolute

日程表的周期是相对于日程表中定义的固定时间点而言的。

Recurring

日程表在每个周期的第一个日程周期时重新开始。

Relative

日程表的周期是相对于特定情境下的起始点(如交易的开始)而言的,该起始点由充电点确定。

7.10. ChargingProfilePurposeType

枚举

充电配置文件的用途,如 ChargingProfile 中所使用的。

描述

ChargePointMaxProfile

用于配置整个充电桩可用的最大功率或电流的配置。

TxDefaultProfile

在充电桩中可以配置的默认配置文件。当开始新的交易时,应使用此配置文件,除非是通过 RemoteStartTransaction.req 开始的交易,且充电桩接受了该请求中的 ChargeProfile。

TxProfile

由充电点对当前交易或新交易施加限制的配置文件,当新交易是通过带有 ChargeProfile 的 RemoteStartTransaction.req 启动时。具有此用途的配置文件在交易终止时应失效。

7.11. ChargingProfileStatus

枚举

响应 SetChargingProfile.req 的返回状态。

描述

Accepted

请求已被接受并将执行。

Rejected

请求未被接受,也不会执行。

NotSupported

充电桩表示不支持该请求。

7.12. ChargingRateUnitType

枚举

定义充电日程表的单位,如 GetCompositeSchedule.req 和 ChargingSchedule 中所使用的。

描述

W

瓦特(功率)。

这是允许的总充电功率。

如果用于交流充电,应通过以下方式计算每相电流:每相电流 = 功率 /(线路电压 * 相数)。计算中使用的“线路电压”不是测量得到的电压,而是该区域的设定电压(因此,230伏或110伏)。“相数”是 ChargingSchedulePeriod 中的 numberPhases。

通常,使用此单位进行直流充电更为方便。

请注意,如果 ChargingSchedulePeriod 中的 numberPhases 缺失,则应假定为 3。

A

安培(电流)。

每相的安培数,而不是所有相的总和。

通常,使用此单位进行交流充电更为方便。

7.13. ChargingSchedule 类

充电日程表结构定义了一系列充电周期,如GetCompositeSchedule.conf 和 ChargingProfile 中所使用的。

字段名

字段类型

卡片(CARD.)

描述

duration

integer

0..1

可选项。充电日程表的持续时间(以秒为单位)。如果持续时间为空,则最后一个周期将持续进行,直到 startSchedule 为空时交易结束。

startSchedule

dateTime

0..1

可选项。绝对日程表的起始点。如果缺失,则日程表将相对于充电开始时间。

chargingRateUnit

ChargingRateUnitType

1..1

必填项。限制的表达单位。

chargingSchedulePeriod

ChargingSchedulePeriod

1..*

必填项。由 ChargingSchedulePeriod 元素组成的列表,定义随时间变化的最大功率或电流使用量。第一个 ChargingSchedulePeriod 的 startSchedule 始终应为 0。

minChargingRate

decimal

0..1

可选项。电动汽车支持的最小充电速率。测量单位由 chargingRateUnit 定义。此参数旨在由本地智能充电算法使用,以优化在充电过程在较低充电速率下效率不高时的功率分配。最多接受一位小数(例如 8.1)。

7.14. ChargingSchedulePeriod 类

充电日程表周期结构定义了充电日程表中的一段时间,如 ChargingSchedule 中所使用的。

字段名

字段类型

卡片(CARD.)

描述

startPeriod

integer

1..1

必填项。周期的起始时间,从日程表开始起计算秒数。StartPeriod 的值也定义了前一个周期的结束时间。

limit

decimal

1..1

必填项。在日程表周期内的充电速率限制,以适用的 chargingRateUnit 为单位,例如安培或瓦特。最多接受一位小数(例如 8.1)。

numberPhases

integer

0..1

可选项。可用于充电的相数。如果需要指定相数,将假定 numberPhases=3,除非另有指定。

7.15. CiString20Type

类型

通用的不区分大小写的20个字符字符串。

描述

CiString[20]

字符串不区分大小写。

7.16. CiString25Type

 类型

通用的不区分大小写的25个字符字符串。

描述

CiString[25]

字符串不区分大小写。

7.17. CiString50Type

类型

通用的不区分大小写的50个字符字符串。

描述

CiString[50]

字符串不区分大小写。

7.18. CiString255Type

类型

通用的不区分大小写的255个字符字符串。

描述

CiString[255]

字符串不区分大小写。

7.19. CiString500Type

类型

通用的不区分大小写的500个字符字符串。

描述

CiString[500]

字符串不区分大小写。

7.20. ClearCacheStatus

 枚举

响应 ClearCache.req 的返回状态。

描述

Accepted

命令已执行。

Rejected

命令未执行。

7.21. ClearChargingProfileStatus(清除充电配置文件状态)

枚举

在响应ClearChargingProfile.req时返回的状态。

描述

Accepted

请求已被接受并将被执行。

Unknown

未找到与请求匹配的充电配置文件。

7.22. ConfigurationStatus(配置状态)

枚举

在ChangeConfiguration.conf中的状态。

描述

Accepted

支持的配置键,设置已更改

Rejected

支持的配置键,设置已更改

RebootRequired

支持的配置键,设置已更改,但更改将在重启后生效(充电桩不会自行重启)。

NotSupported

不支持该配置键。

7.23. DataTransferStatus(数据传输状态)

枚举

在DataTransfer.conf中的状态。

描述

Accepted

消息已被接受,且包含的请求也被接受。

Rejected

消息已被接受,但包含的请求被拒绝。

UnknownMessageId

由于未知的messageId字符串,消息无法被解析。

UnknownVendorId

由于未知的vendorId字符串,消息无法被解析。

7.24. 诊断状态(DiagnosticsStatus)

枚举

在DiagnosticsStatusNotification.req中的状态。

描述

Idle

Uploaded

UploadFailed

Uploading

7.25. 固件状态(FirmwareStatus)

枚举

固件下载的状态,如在FirmwareStatusNotification.req中所报告的。

描述

Downloaded

新的固件已由充电桩下载。

DownloadFailed

充电桩未能下载固件。

Downloading

固件正在下载中。

Idle

充电桩未执行与固件更新相关的任务。状态Idle应仅在由TriggerMessage.req触发的FirmwareStatusNotification.req中使用。

InstallationFailed

新固件的安装失败。

Installing

固件正在安装中。

Installed

新的固件已成功安装在充电桩中。

7.26. 获取组合时间表状态(GetCompositeScheduleStatus)

枚举

响应GetCompositeSchedule.req的请求时返回的状态。

描述

Accepted

请求已被接受并将被执行。

Rejected

请求未被接受,将不会被执行。

7.27. IdTagInfo(标识符信息)

包含关于一个标识符的状态信息。它在Authorize(授权)、Start Transaction(开始交易)和Stop Transaction(停止交易)的响应中返回。

如果未给出expiryDate(过期日期),则状态没有结束日期。

字段名

字段类型

卡片(CARD.)

描述

expiryDate

dateTime

0..1

可选。这包含idTag应从授权缓存中移除的日期。

parentIdTag

IdToken

0..1

可选。这包含父标识符。

status

AuthorizationStatus

1..1

必填项。这包含idTag是否已被中央系统接受。

7.28. IdToken(标识符令牌)

类型

包含用于授权的标识符。它是一个大小写不敏感的字符串。在未来的版本中,它可能会变为一个复杂类型,以支持多种形式的标识符。

描述

CiString20Type

IdToken 是大小写不敏感的。

7.29. KeyValue(键值)

包含关于特定配置键的信息。它在GetConfiguration.conf中返回。

字段名

字段类型

卡片(CARD.)

描述

key

CiString50Type

1..1

必填项。

readonly

boolean

1..1

必填项。如果可以使用ChangeConfiguration消息设置该值,则为False。

value

CiString500Type

0..1

可选。如果键是已知的但未设置,则此字段可能不存在。

7.30. 位置(Location)

枚举

在SampledValue中的值元素的可选“位置”字段的可允许值。

描述

Body

在充电桩内部的测量(例如温度)

Cable

从电动汽车和充电桩之间的电缆上进行的测量

EV

由电动汽车进行的测量

Inlet

在网络接口(“电网”)入口连接处的测量

Outlet

在连接器处的测量。默认值

7.31. 测量量(Measurand)

枚举

在MeterValues.req和StopTransaction.req消息中Value元素的可选“测量量”字段的可允许值。measurand的默认值始终是“Energy.Active.Import.Register”

Import(导入)指的是从电网流向充电桩、电动汽车或其他负载的能量流。Export(导出)指的是从电动汽车流向充电桩,或者从充电桩流向电网的能量流。

描述

Current.Export

从电动汽车流出的瞬时电流

Current.Import

流入电动汽车的瞬时电流

Current.Offered

向电动汽车提供的最大电流

Energy.Active.Export.Register

从(最具权威性的)电能表“活跃电能”(Wh或kWh)寄存器读取的数值,用于测量导出的能量(到电网)。

Energy.Active.Import.Register

从(最具权威性的)电能表“活跃电能”(Wh或kWh)寄存器读取的数值,用于测量导入的能量(从电网供应)。

Energy.Reactive.Export.Register

从(最具权威性的)电能表“无功电能”(VARh或kVARh)寄存器读取的数值,用于测量导出的能量(到电网)。

Energy.Reactive.Import.Register

从(最具权威性的)电能表“无功电能”(VARh或kVARh)寄存器读取的数值,用于测量导入的能量(从电网供应)。

Energy.Active.Export.Interval

在相关联的时间“区间”内导出的“活跃电能”(Wh或kWh)的绝对量(到电网),该时间“区间”由MeterValues的ReadingContext指定,并适用于“ClockAlignedDataInterval”和“MeterValueSampleInterval”的间隔时长配置值(以秒为单位)。

Energy.Active.Import.Interval

在相关联的时间“区间”内导入的“活跃电能”(Wh或kWh)的绝对量(从电网供应),该时间“区间”由MeterValues的ReadingContext指定,并适用于“ClockAlignedDataInterval”和“MeterValueSampleInterval”的间隔时长配置值(以秒为单位)。

Energy.Reactive.Export.Interval

在相关联的时间“区间”内导出的“无功电能”(VARh或kVARh)的绝对量(到电网),该时间“区间”由MeterValues的ReadingContext指定,并适用于“ClockAlignedDataInterval”和“MeterValueSampleInterval”的间隔时长配置值(以秒为单位)。

Energy.Reactive.Import.Interval

在相关联的时间“区间”内导入的“无功电能”(VARh或kVARh)的绝对量(从电网供应),该时间“区间”由MeterValues的ReadingContext指定,并适用于“ClockAlignedDataInterval”和“MeterValueSampleInterval”的间隔时长配置值(以秒为单位)。

Frequency

电力线频率的瞬时读数。注意:OCPP 1.6没有为频率定义度量单位,任何具有测量量“Frequency”的SampledValue的度量单位都是赫兹。

Power.Active.Export

电动汽车导出的瞬时活跃功率。(W或kW)

Power.Active.Import

电动汽车导入的瞬时活跃功率。(W或kW)

Power.Factor

总能量流的瞬时功率因数

Power.Offered

向电动汽车提供的最大功率

Power.Reactive.Export

电动汽车导出的瞬时无功功率。(var或kvar)

Power.Reactive.Import

电动汽车导入的瞬时无功功率。(var或kvar)

RPM

风扇转速(每分钟转数)

SoC

充电车辆的充电状态百分比

Temperature

充电桩内部的温度读数

Voltage

瞬时交流均方根供电电压

与单个充电交易或非交易消费者(例如,充电桩内部电源、整体供电)相关的所有“寄存器”值必须在时间上单调递增。

所报告的“.Register”值对应的实际能量量是通过将该寄存器值减去在交易开始或其他相关起始时间点记录/报告的寄存器值来计算的。为了提高可审计性,“.Register”值应该直接按照从电能计量硬件的非易失性寄存器中读取的数值进行报告,而不应在交易开始时重新归零。这允许中央系统通过确认任何交易的起始寄存器值与同一连接器上先前交易的结束寄存器值相同,来识别由于硬件故障、错误接线、欺诈等原因导致的连续交易之间的“缺失能量”。

7.32. 消息触发器(MessageTrigger)

枚举

在TriggerMessage.req中要被触发的请求类型。

描述

BootNotification

触发一个启动通知请求

DiagnosticsStatusNotification

触发一个诊断状态通知请求

FirmwareStatusNotification

触发一个固件状态通知请求

Heartbeat

触发一个心跳请求

MeterValues

触发一个计量值请求

StatusNotification

触发一个状态通知请求

7.33. MeterValue 类

在 MeterValues.req 和StopTransaction.req 中包含的一个或多个采样值的集合。MeterValue 中的所有采样值都在同一时间点进行采样。

字段名

字段类型

卡片(CARD.)

描述

timestamp

dateTime

1..1

必填项。测量值的时间戳。

sampledValue

SampledValue

1..*

必填项。一个或多个测量值。

7.34. 相位(Phase)

枚举

在 SampledValue 中使用的相位。相位指定了如何解释测量值。请注意,并非所有相位的值都适用于所有测量参数。

描述

L1

在 L1 上测量

L2

在 L2 上测量

L3

在 L3 上测量

N

在中性线上测量

L1-N

相对于中性导体在 L1 上测量

L2-N

相对于中性导体在 L2 上测量

L3-N

相对于中性导体在 L3 上测量

L1-L2

在 L1 和 L2 之间测量

L2-L3

在 L2 和 L3 之间测量

L3-L1

在 L3 和 L1 之间测量

7.35. 读取上下文(ReadingContext)

枚举

SampledValue 中值的上下文字段的值。

描述

Interruption.Begin

在中断开始时采集的值。

Interruption.End

在中断后恢复时采集的值。

Other

任何其他情况下的值。

Sample.Clock

在时钟对齐的间隔内采集的值。

Sample.Periodic

相对于交易开始时间,作为周期性样本采集的值。

Transaction.Begin

在交易开始时采集的值。

Transaction.End

在交易结束时采集的值。

Trigger

响应 TriggerMessage.req 而采集的值。

7.36. 原因(Reason)

枚举

在 StopTransaction.req 中停止交易的原因。

描述

DeAuthorized

交易因StartTransaction.conf中的授权状态而停止。

EmergencyStop

使用了紧急停止按钮。

EVDisconnected

电缆断开,车辆从感应充电单元移开。

HardReset

收到了硬重置命令。

Local

在充电点用户请求下本地停止。这是交易的常规终止。例如:展示RFID标签、按下停止按钮。

Other

任何其他原因。

PowerLoss

完全断电。

Reboot

发生了本地启动的重置/重启。(例如,看门狗程序触发)

Remote

在远程用户请求下停止。这是交易的常规终止。例如:使用智能手机应用终止,超过(非本地)预付信用额度。

SoftReset

收到了软重置命令。

UnlockCommand

中央系统发送了解锁连接器命令。

7.37. RecurrencyKindType

枚举类型

在 ChargingProfile 中使用的充电配置文件的循环类型。

描述

Daily

该计划每24小时重新启动一次,时间与startSchedule中设定的时间相同。

Weekly

该计划每7天重新启动一次,时间与startSchedule中设定的日期和星期几相同。

7.38. RegistrationStatus

枚举类型

对BootNotification.req请求的注册结果。

描述

Accepted

充电点被中央系统接受。

Pending

中央系统尚未准备好接受充电点。中央系统可能会发送消息以检索信息或准备充电点。

Rejected

充电点被中央系统拒绝。这可能是因为中央系统不知道充电点ID。

7.39. RemoteStartStopStatus

枚举类型

RemoteStartTransaction.req 或 RemoteStopTransaction.req 请求的结果。

描述

Accepted

命令将被执行。

Rejected

命令将不会被执行。

7.40. 预约状态(ReservationStatus)

枚举类型

ReserveNow.conf中的状态。

描述

Accepted

已进行预约。

Faulted

未进行预约,因为连接器或指定连接器处于故障状态。

Occupied

未进行预约。所有连接器或指定连接器已被占用。

Rejected

未进行预约。充电点未配置为接受预约。

Unavailable

未进行预约,因为连接器或指定的连接器处于不可用状态。

7.41. 重置状态(ResetStatus)

枚举类型

Reset.req 请求的结果。

描述

Accepted

命令将被执行。

Rejected

命令将不会被执行。

7.42. 重置类型(ResetType)

枚举类型

Reset.req 请求的重置类型。

描述

Hard

重启(所有)硬件,充电点不需要优雅地停止正在进行的交易。如果可能的话,在重启并通过 BootNotification.conf 被中央系统接受后,充电点会发送 StopTransaction.req 来停止之前正在进行的交易。这是对于未能正确运行的充电点的最后手段,通过发送“硬”重置,(排队的)信息可能会丢失。

Soft

优雅地停止正在进行的交易,并为每一个正在进行的交易发送 StopTransaction.req 请求。然后它应该重启应用软件(如果可能的话,否则重启处理器/控制器)。

7.43. 采样值(SampledValue)

MeterValues 中的单个采样值。每个值都可以附带可选字段。

字段名

字段类型

卡片(CARD.)

描述

value

String

1..1

必填项。值可以是“原始”(十进制)数字或“SignedData”。字段类型为“string”,以允许数字签名的数据读数。也接受十进制数值,以允许对测量值(如温度和电流)使用分数值。

context

ReadingContext

0..1

可选。详细值的类型:开始、结束或样本。默认 = “Sample.Periodic”

format

ValueFormat

0..1

可选。原始数据或签名数据。默认 = “Raw”

measurand

Measurand

0..1

可选。测量类型。默认 = “Energy.Active.Import.Register”

phase

Phase

0..1

可选。指示如何解释测量值。例如,在L1和中性线(L1-N)之间。请注意,并非所有相位的值都适用于所有测量值。当缺少相位时,测量值被解释为总值。

location

Location

0..1

可选。测量的位置。默认 = “Outlet”

unit

UnitOfMeasure

0..1

可选。值的单位。如果(默认)测量值是“Energy”类型,则默认 = “Wh”。

7.44. 触发消息状态(TriggerMessageStatus)

枚举类型

TriggerMessage.conf中的状态。

描述

Accepted

请求的通知将被发送。

Rejected

请求的通知将不会被发送。

NotImplemented

请求的通知无法发送,因为它要么未实现,要么未知。

7.45. 测量单位(UnitOfMeasure)

枚举类型

在SampledValue中使用的Value元素的可选“unit”字段的允许值。“unit”的默认值始终为“Wh”。

描述

Wh

瓦特时(能量)。默认值。

kWh

千瓦时(能量)。

varh

无功时(无功能量)。

kvarh

无功千时(无功能量)。

W

瓦特(功率)。

kW

千瓦(功率)。

VA

伏安(视在功率)。

kVA

千伏安(视在功率)。

var

无功(无功功率)。

kvar

千无功(无功功率)。

A

安培(电流)。

V

电压(均方根交流)。

Celsius

摄氏度 (温度的度数)。

Fahrenheit

华氏度 (温度的度数)。

K

开尔文温度(温度)。

Percent

百分比。

7.46. 解锁状态(UnlockStatus)

枚举类型

对UnlockConnector.req请求的响应状态。

描述

Unlocked

连接器已成功解锁。

UnlockFailed

解锁连接器失败:充电点尝试解锁连接器,但检测到连接器仍被锁定或解锁机制失败。

NotSupported

充电点没有连接器锁,或者ConnectorId未知。

7.47. 更新状态(UpdateStatus)

枚举类型

SendLocalList.req 请求的更新类型。

描述

Accepted

本地授权列表已成功更新。

Failed

无法更新本地授权列表。

NotSupported

充电点不支持本地授权列表的更新。

VersionMismatch

请求中的差异更新版本号小于或等于当前列表的版本号。

7.48. 更新类型(UpdateType)

枚举类型

SendLocalList.req 请求的更新类型。

描述

Differential

表示当前的本地授权列表必须根据此消息中的值进行更新。

Full

表示当前的本地授权列表必须被此消息中的值替换。

7.49. 值格式(ValueFormat)

枚举类型

指定如何解释SampledValue中值元素的格式。

描述

Raw Data

应被解释为整数/十进制数值数据。

SignedData

数据表示为已签名的二进制数据块,编码为十六进制数据。

8.固件和诊断文件传输

本节是规范性的。

支持的传输协议由配置键 SupportedFileTransferProtocols 控制。FTP、FTPS、HTTP、HTTPS(CSL)

8.1. 下载固件

当充电点收到新固件的通知时,它需要能够下载此固件。中央系统在请求中提供一个URL,以便从该URL下载固件。该URL还包含必须用于下载固件的协议。

建议通过FTP或FTPS下载固件。FTP(S)比HTTP更适合处理大型二进制数据。此外,FTP(S)还具有恢复下载的能力。如果下载中断,充电点可以在已下载部分之后恢复下载。FTPURL的格式为:ftp://user:password@host:port/path,其中user:password@、:password或:port部分可能不包含。

为确保下载的是正确的固件,建议对固件进行数字签名。

8.2. 上传诊断文件

当充电点被要求上传诊断文件时,中央系统在请求中提供一个URL,充电点应将文件上传至该URL。该URL还包含必须用于上传文件的协议。

建议通过FTP或FTPS下载诊断文件。FTP(S)比HTTP更适合处理大型二进制数据。此外,FTP(S)还具有恢复上传的能力。如果上传中断,充电点可以在已上传部分之后恢复上传。FTPURL的格式为:ftp://user:password@host:port/path,其中user:password@、:password或:port部分可能不包含。

9.标准配置键名称和值

以下列出了本规范中标准化的所有配置键。列表按功能配置文件进行划分。在特定配置文件下提到的必需配置键,只有在充电点支持该配置文件时才需要支持。

对于具有布尔类型的可选配置键,以下规则适用于响应GetConfiguration.req(不带键列表)中的配置键:

• 如果键存在,充电点提供由该键配置的功能,并且可以通过设置键的值来启用或禁用该功能。

• 如果键不存在,充电点不提供可以由该键配置的功能。

“可访问性”(Accessibility)属性显示某个配置键的值是只读的(“R”)还是可读写的(“RW”)。如果键是只读的,中央系统可以使用GetConfiguration读取键的值,但不能写入。如果可访问性是读写的,中央系统也可以使用ChangeConfiguration写入键的值。

9.1. 核心配置文件(CoreProfile)

9.1.1. AllowOfflineTxForUnknownId

必填/可选:可选

可访问性:读写(RW)

类型:布尔值

描述:如果此键存在,充电点支持未知离线授权。如果此键的值为true,则启用未知离线授权。

9.1.2. AuthorizationCacheEnabled

必填/可选:可选

可访问性:读写(RW)

类型:布尔值

描述:如果此键存在,充电点支持授权缓存。如果此键的值为true,则启用授权缓存。

9.1.3. AuthorizeRemoteTxRequests

必填/可选:必填

可访问性:只读(R)或读写(RW)。选择权在于充电点的实现。

类型:布尔值

描述:是否应像本地启动交易操作一样,事先授权以RemoteStartTransaction.req消息形式出现的远程请求来启动交易。

9.1.4. BlinkRepeat

必填/可选:可选

可访问性:读写(RW)

类型:整数

单位:次

描述:在发出信号时,充电点灯光闪烁的次数

9.1.5. ClockAlignedDataInterval

必填/可选:必填

可访问性:读写(RW)

类型:整数

单位:秒

描述:时钟对齐数据间隔的大小(以秒为单位)。这是从00:00:00(午夜)开始,每天均匀分布的聚合间隔集合的大小(以秒为单位)。例如,一个900(15分钟)的值表示每天应该被分成96个15分钟的间隔。

当传输时钟对齐数据时,相关的间隔由开始时间和(可选的)持续时间间隔值标识,按照ISO8601标准表示。所有“每个期间”的数据(例如能量读数)应该在整个间隔(或在交易开始或结束时的部分间隔)内累积(对于“流量”类型的测量值,如能量),或取平均值(对于其他值),并在每个间隔结束时(如果启用)传输,带有该间隔开始时间的时间戳。

按照惯例,值“0”(数字零)应被解释为不需要传输时钟对齐数据。

9.1.6. ConnectionTimeOut

必填/可选:必填

可访问性:读写(RW)

类型:整数

单位:秒

描述:从状态“准备中”开始,直到由于EV驾驶员未能(正确)将充电电缆连接器插入适当的插座中,而导致即将进行的交易被自动取消的间隔。充电点应返回到原始状态,可能是“可用”状态。

9.1.7. ConnectorPhaseRotation

必填/可选:必填

可访问性:读写(RW)

类型:CSL(复合服务语言)

描述:每个连接器相对于连接器的电表(或如果电表不存在,则相对于电网连接)的相位旋转。每个连接器可能的值有:

NotApplicable(对于单相或直流充电点)

Unknown((尚未)已知)

RST(标准参考相位)

RTS(反向参考相位)

SRT(反向240度旋转)

STR(标准120度旋转)

TRS(标准240度旋转)

TSR(反向120度旋转)

R可识别为相位1(L1),S为相位2(L2),T为相位3(L3)。

如果已知,充电点也可以使用索引号Zero(0)来报告电网连接与主能量表之间的相位旋转。

值以CSL格式报告,格式为:0.RST,1.RST, 2.RTS

9.1.8. ConnectorPhaseRotationMaxLength

必填/可选:可选

可访问性:只读(R)

类型:整数

描述:ConnectorPhaseRotation配置键中的最大项目数。

9.1.9. GetConfigurationMaxKeys

必填/可选:必填

可访问性:只读(R)

类型:整数

描述:在GetConfiguration.req PDU中请求的配置键的最大数量。

9.1.10. HeartbeatInterval

必填/可选:必填

可访问性:读写(RW)

类型:整数

单位:秒

描述:与中央系统无交互(无OCPP交换)的间隔,之后充电点应发送Heartbeat.req PDU。

9.1.11. LightIntensity

必填/可选:可选

可访问性:读写(RW)

类型:整数

单位:%

描述:用于照明充电点灯光的最大强度的百分比

9.1.12. LocalAuthorizeOffline

必填/可选:必填

可访问性:读写(RW)

类型:布尔值

描述:当充电点离线时,是否会对本地授权的标识符启动交易。

9.1.13. LocalPreAuthorize

必填/可选:必填

可访问性:读写(RW)

类型:布尔值

描述:当充电点在线时,是否会对本地授权的标识符启动交易,而无需等待或请求中央系统的Authorize.conf。

9.1.14. MaxEnergyOnInvalidId

必填/可选:可选

可访问性:读写(RW)

类型:整数

单位:Wh(瓦时)

描述:当交易开始后,如果标识符被中央系统无效化,则交付的最大能量(以瓦时为单位)。

9.1.15. MeterValuesAlignedData

必填/可选:必填

可访问性:读写(RW)

类型:CSL(复合服务语言)

描述:每隔ClockAlignedDataInterval秒,在MeterValues.req PDU中包含的时钟对齐的测量值

9.1.16. MeterValuesAlignedDataMaxLength

必填/可选:可选

可访问性:只读(R)

类型:整数

描述:MeterValuesAlignedData配置键中的最大项目数。

9.1.17. MeterValuesSampledData

必填/可选:必填

可访问性:读写(RW)

类型:CSL(复合服务语言)

描述:每隔MeterValueSampleInterval秒,在MeterValues.req PDU中包含的采样测量值。在适用的情况下,测量值可与可选的相位结合,例如:Voltage.L1

默认值:"Energy.Active.Import.Register"

9.1.18. MeterValuesSampledDataMaxLength

必填/可选:可选

可访问性:只读(R)

类型:整数

描述:MeterValuesSampledData配置键中的最大项目数。

9.1.19. MeterValueSampleInterval

必填/可选:必填

可访问性:读写(RW)

类型:整数

单位:秒

描述:通过“MeterValues”PDU传输的计量(或其他)数据的采样间隔。对于充电会话数据(ConnectorId>0),从充电交易开始起,样本以该间隔周期性地获取并传输。

按照惯例,一个“0”(数字零)的值应被解释为不应传输任何采样数据。

9.1.20. MinimumStatusDuration

必填/可选:可选

可访问性:读写(RW)

类型:整数

单位:秒

描述:在向中央系统发送StatusNotification.req PDU之前,充电点或连接器状态保持稳定的最短持续时间。

9.1.21. NumberOfConnectors

必填/可选:必填

可访问性:只读(R)

类型:整数

描述:此充电点的物理充电连接器数量。

9.1.22. ResetRetries

必填/可选:必填

可访问性:读写(RW)

类型:整数

单位:次数

描述:充电点重置失败后的重试次数。

9.1.23. StopTransactionOnEVSideDisconnect

必填/可选:必填

可访问性:读写(RW)

类型:布尔值

描述:当设置为true时,充电点应在电缆从电动汽车上拔下时,通过管理操作停止交易。

9.1.24. StopTransactionOnInvalidId

必填/可选:必填

可访问性:读写(RW)

类型:布尔值

描述:当充电点接收到针对该交易的StartTransaction.conf中未接受的授权状态时,充电点是否会停止正在进行的交易。

9.1.25. StopTxnAlignedData

必填/可选:必填

可访问性:读写(RW)

类型:CSL(复合服务语言)

描述:在每个交易的ClockAlignedDataInterval期间,要在StopTransaction.req MeterValues.req PDU的TransactionData元素中包含的时钟对齐的周期性测量值。

9.1.26. StopTxnAlignedDataMaxLength

必填/可选:可选

可访问性:只读(R)

类型:整数

描述:StopTxnAlignedData配置键中的最大项目数。

9.1.27. StopTxnSampledData

必填/可选:必填

可访问性:读写(RW)

类型:CSL(复合服务语言)

描述:从充电会话开始起,每隔MeterValueSampleInterval秒,在StopTransaction.req PDU的TransactionData元素中包含的采样测量值。

9.1.28. StopTxnSampledDataMaxLength

必填/可选:可选

可访问性:只读(R)

类型:整数

描述:StopTxnSampledData配置键中的最大项目数。

9.1.29. SupportedFeatureProfiles

必填/可选:必填

可访问性:只读(R)

类型:CSL(复合服务语言)

描述:支持的功能配置文件列表。可能的配置文件标识符包括:Core(核心)、FirmwareManagement(固件管理)、LocalAuthListManagement(本地认证列表管理)、Reservation(预约)、SmartCharging(智能充电)和RemoteTrigger(远程触发)。

9.1.30. SupportedFeatureProfilesMaxLength

必填/可选:可选

可访问性:只读(R)

类型:整数

描述:SupportedFeatureProfiles配置键中的最大项目数。

9.1.31. TransactionMessageAttempts

必填/可选:必填

可访问性:读写(RW)

类型:整数

单位:次数

描述:当中央系统未能处理与交易相关的消息时,充电点应尝试提交该消息的次数。

9.1.32. TransactionMessageRetryInterval

必填/可选:必填

可访问性:读写(RW)

类型:整数

单位:秒

描述:当中央系统未能处理与交易相关的消息时,充电点应等待多长时间后再重新提交该消息。

9.1.33. UnlockConnectorOnEVSideDisconnect

必填/可选:必填

可访问性:读写(RW)

类型:布尔值

描述:当设置为true时,如果电缆在电动汽车侧被拔下,充电点应解锁充电点侧的电缆。

9.1.34. WebSocketPingInterval

必填/可选:可选

可访问性:读写(RW)

类型:整数

单位:秒

描述:仅适用于WebSocket实现。0禁用客户端WebSocket的Ping/Pong。在这种情况下,要么没有ping/pong,要么由服务器发起ping并由客户端用Pong响应。正值被解释为ping之间的秒数。不允许使用负值。预期ChangeConfiguration会返回一个REJECTED的结果。

9.2. 本地授权列表管理配置文件

9.2.1. LocalAuthListEnabled

必填/可选:必填

可访问性:读写(RW)

类型:布尔值

描述:是否启用本地授权列表

9.2.2. LocalAuthListMaxLength

必填/可选:必填

可访问性:只读(R)

类型:整数

描述:本地授权列表中最多可以存储的识别码数量

9.2.3. SendLocalListMaxLength

必填/可选:必填

可访问性:只读(R)

类型:整数

描述:在单个SendLocalList.req中可以发送的最多识别码数量

9.3. 预约配置文件

9.3.1. ReserveConnectorZeroSupported

必填/可选:可选

可访问性:只读(R)

类型:布尔值

描述:如果此配置键存在且设置为true:充电点支持在连接器0上进行预约。

9.4. 智能充电配置文件

9.4.1. ChargeProfileMaxStackLevel

必填/可选:必填

可访问性:只读(R)

类型:整数

描述:充电配置文件的最大StackLevel。所定义的数字也指示了每个充电配置文件目的所允许的最大已安装充电计划数量。

9.4.2.ChargingScheduleAllowedChargingRateUnit

必填/可选:必填

可访问性:只读(R)

类型:CSL(复合服务语言)

描述:在充电计划中使用的支持的量值列表。允许的值包括:“Current”(电流)和“Power”(功率)。

9.4.3. ChargingScheduleMaxPeriods

必填/可选:必填

可访问性:只读(R)

类型:整数

描述:每个充电计划中可能定义的最大时间段数。

9.4.4. ConnectorSwitch3to1PhaseSupported

必填/可选:可选

可访问性:只读(R)

类型:布尔值

描述:如果已定义且为true,则此充电点支持在交易期间从三相切换到单相。

9.4.5. MaxChargingProfilesInstalled

必填/可选:必填

可访问性:只读(R)

类型:整数

描述:同时安装的最大充电配置文件数量

附录A:OCPP 1.6的新增功能

与OCPP 1.5相比,OCPP1.6进行了以下更改:

• 增加了智能充电功能• 增加了基于WebSocket的JSON绑定作为传输协议,减少了数据使用量,并允许通过NAT路由器进行OCPP通信,参见:OCPPJSON规范• 在ChargePointStatus枚举中添加了额外的状态,为充电站运营商(CPO)以及最终用户提供了更多关于充电点当前状态的信息• 更改了MeterValues.req的结构,以消除对XML属性的使用,这是为了支持JSON(JSON不支持属性)• 在Measurand枚举中添加了额外的值,使充电点制造商有可能向中央系统发送新信息,例如电动汽车的充电状态• 添加了TriggerMessage消息,使中央系统有可能从充电点请求信息• 在BootNotification.conf中使用的RegistrationStatus枚举中添加了一个新的Pending成员• 添加了更多且更清晰的配置键,使充电站运营商更清楚地了解如何在充电点中配置不同的业务场景• 将消息和配置键拆分为不同的配置文件,使得逐步或仅部分实现OCPP变得更加容易• 消除了已知的不明确之处(例如何时使用UnlockConnector.req,如何响应RemoteStart/Stop,连接器编号等)

A.1. 更新/新增的消息:

• BootNotification.req

  • 将IccId和Imsi更改为CiString[]类型,以强制执行最大长度。

• BootNotification.conf

  • 将heartbeatInterval更改为interval,因为interval现在除了心跳外还有其他用途,需要在规范中修正。
  • 添加了状态Pending。

• ChargePointErrorCode

  • 添加了枚举值:InternalError, LocalListConflict和UnderVoltage。
  • 将枚举值Mode3Error重命名为EVCommunicationError。

• ChargePointStatus

  • 将枚举值Occupied替换为更详细的值:Preparing, Charging, SuspendedEVSE, SuspendedEV和Finishing。

• ChargingRateUnitType

  • 新增的枚举类型

• ConfigurationStatus

  • 添加了枚举值RebootRequired。

• ClearChargingProfile.req

  • 新增的消息

• ClearChargingProfile.conf

  • 新增的消息

• DiagnosticsStatus

  • 添加了枚举值Uploading和Idle。

• FirmwareStatus

  • 添加了枚举值Downloading, Installing和Idle。

• GetCompositeSchedule.req

  • 新增的消息

• GetCompositeSchedule.conf

  • 新增的消息

• Location

  • 添加了枚举值Cable和EV。

• Measurand

  • 添加了枚举值Current.Offered, Frequency, Power.Factor, Power.Offered, RPM和SoC。

• MeterValues.req

  • 对复杂数据结构进行了全面修改
  • 添加了'phase'字段

• ReadingContext

  • 添加了枚举值Trigger和Other。

• RemoteStartTransaction.req

  • 添加了可选的ChargingProfile字段。

• SendLocalList.req

  • 移除了hash字段。

• SendLocalList.conf

  • 移除了hash字段。

• SetChargingProfile.req

  • 新增的消息

• SetChargingProfile.conf

  • 新增的消息

• StatusNotification.req

  • 对状态进行了全面修改
  • 新增了错误代码
  • 连接器id 0只能具有状态:Available, Unavailable和Faulted。

• StopTransaction.req

  • 添加了明确且必需的停止原因。

• TriggerMessage.req

  • 新增的消息

• TriggerMessage.conf

  • 新增的消息

• UnlockConnector.conf

  • 对UnlockStatus枚举进行了全面修改

• UnitOfMeasure

  • 添加了Fahrenheit, K, Percent, VA, kVA。
  • 将Volt重命名为V,Amp重命名为A。

标签:1.6,中文翻译,conf,配置文件,PDU,req,edition,连接器,充电
From: https://blog.csdn.net/zhouwuhua/article/details/139403830

相关文章

  • RFC 6455-websocket协议 -- 中文翻译
    英文文档的在源地址:RFC6455-TheWebSocketProtocol中文翻译如下:(未格式化整理)///互联网工程任务组(IETF)请求评论:6455作者:I.Fette公司:Google,Inc.类别:标准轨道ISSN:2070-1721A.Melnikov公司:IsodeLtd.2011年12月WebSocket协议摘要WebSocket协议允许在受......
  • 安装DBeaver Ultimate Edition
    目录准备工作安装配置(Windows)配置(macOS)准备工作下载DBeaverUE官方下载地址:https://dbeaver.com/download/ultimate/下载JDK17+推荐JDK21,官方下载地址:https://www.oracle.com/java/technologies/downloads/一个神奇的jar包大神开发,懂得都懂,点这里安装DBeaverUEw......
  • 第一人称射击游戏:反恐精英(CS1.6) 支持win版和mac版下载
    枪战老玩家还记得这款史诗巨作吗?Macz为广大游戏玩家倾情推出反恐精英(CS1.6)forMac,CS1.6官方下载是由著名游戏《半条命》的其中一个游戏模组(MOD)衍生而成的游戏。逼真的画面,震撼的音效,3D的视角,多样的操作融合而成,挑战你的视觉感官。玩家可以见到多个游戏方式各不相同的......
  • 末路狂花钱迅雷BT下载[1.69GB/2.99GB]高清版AVI国语[1080P]4K资源
    《末路狂花钱》是一部中国电影,该电影以财产与亲情之间的纠葛为主线,以幽默诙谐的方式揭示了当代人们对金钱的贪婪和对亲情的忽视。影片以一个普通的中年男子为主角,他名叫杨新,是一个普通的家庭父亲和上班族。他过着安稳和平淡的生活,直到一天,他无意中中了彩票大奖,一夜......
  • 【开源啦!】Langchain官方文档中文翻译项目 ——langchain-doc-zh
    【开源啦!】Langchain官方文档中文翻译项目——langchain-doc-zh一、项目简介LangChain是使用非常广的大模型编排工具,可以低代码的做大模型各种应用,有点类似在数据分析处理里面Pandas的地位。所以我有了一些想把一些工具的文档翻译成中文的想法。希望对于大家有一些帮助。......
  • WCP知识协作系统v5.1.6版本-更新介绍
    下载地址腾讯微云https://share.weiyun.com/wTfASY76新版本功能随着WCP知识管理系统v5.1.6版本的发布,我们为您带来了一系列旨在提升用户体验、增强智能对话能力以及优化系统性能的更新。此版本不仅修复了多项已知问题,还引入了多项新功能,确保您的知识管理之旅更加高效、流畅。......
  • IntelliJ IDEA Community Edition 下载安装
    文章目录下载安装包安装中文插件卸载下载安装包下载IntelliJIDEA–领先的Java和KotlinIDE根据你的电脑操作系统选择合适的版本:IntelliJIDEAUltimate为付费版本,我们需要往下滑找到IntelliJIDEACommunityEdition,点击Download(如果需要,可以点击展开选......
  • IDEA社区版(IDEA Community Edition)创建Springboot父子项目
    1.因为社区办不支持使用springSpringInitializr的方式创建项目,但是我们可以考虑使用别的方式达到效果:创建方式有3种:第一种:使用https://start.spring.io/官方URL创建项目,再导入到IDEACommunityEdition(后面简称:ideaC)。具体使用自行百度。缺点:没办法自定义springboot的......
  • RDP Wrapper Library v1.6.2 开源RDP 主机服务器
    RDPWrapperLibraryv1.6.2 主要特点:从Vista开始的任何Windows版本上的RDP主机服务器同时进行控制台和远程会话同时使用同一用户进行本地和远程登录(请参阅配置应用程序)最多 15个并发会话(实际限制取决于您的硬件和操作系统版本)控制台和RDP会话重影(在Windows......
  • 1.6K Star 微信自动化,weixin-python,一个与微信交互超强库
    简介提供微信登录,公众号管理,微信支付,微信消息的全套功能安装使用pipsudopipinstallweixin-python使用easy_installsudoeasy_installweixin-python用法参数WEIXIN_TOKEN 必填,微信主动推送消息的TOKENWEIXIN_SENDER 选填,微信发送消息的发送者WEIXIN_EXPIRES_IN......