3. 专业问题

3.1. GetConfiguration无法拉取厂商自定义的key?

系统设计的默认原则是:不主动返回厂商自定义Key。

如果需要获取对应的Key值需要显示拉取,以拉取Websocket配置信息为例:

服务器发送的消息

"GetConfiguration",{"key":["VendorWebsocketSettings"]}

桩返回的消息

"configurationKey":[{"key":"VendorWebsocketSettings","readonly":false,"value":"WS,cpam3.x-cheng.net,443,/ocpp/,socpp1.6,,,"}]

3.2. 如何通过OCPP给桩ID取别名?

用ocpp1.6中的ChangeConfiguration.req修改桩别名,别名用于 后台对充电桩管理识别。

3.2.1. 使用VendorChargeBoxId修改桩别名

  1. 默认为桩号,可以设置为任意一个不大于63位的字符串,如果value为空会恢复默认值;

  2. 修改VendorChargeBoxId不影响任何功能,仅仅是备份值;

例如修改充电桩别名如xxxxxxxxxx,参考如下交互流程:

发送命令

[2,"587f59e3-3f3f-4972-b09a-b2859c8d823b","ChangeConfiguration",{"value":"xxxxxxxxxx","key":"VendorChargeBoxId"}]

桩的返回(成功)

[3, "587f59e3-3f3f-4972-b09a-b2859c8d823b", {"status":"Accepted"}]

桩的返回(失败)

[3, "587f59e3-3f3f-4972-b09a-b2859c8d823b", {"status":"Rejected"}]

恢复默认值:

发送命令

[2,"587f59e3-3f3f-4972-b09a-b2859c8d823b","ChangeConfiguration",{"value":"","key":"VendorChargeBoxId"}]

桩的返回(成功)

[3, "587f59e3-3f3f-4972-b09a-b2859c8d823b", {"status":"Accepted"}]

设置失败的原因排查:

  1. 可能是字符串大于63个字符。

3.2.2. 使用ChargePointName修改桩SN

  • 默认为桩号,可以设置为任意一个不大于63位的字符串,如果value为空会恢复默认值;

  • 修改ChargePointName会影响连接ws服务器的ID,同时也会导致出厂配的离线IC卡失效;

  • 修改之后不影响蓝牙广播后缀;

设置格式如下(xxxxxxxxxx部分修改为自己要设置的值):

发送命令

[2,"587f59e3-3f3f-4972-b09a-b2859c8d823b","ChangeConfiguration",{"value":"xxxxxxxxxx","key":"VendorChargePointName"}]

桩的返回(成功)

[3, "587f59e3-3f3f-4972-b09a-b2859c8d823b", {"status":"Accepted"}]

桩的返回(失败)

[3, "587f59e3-3f3f-4972-b09a-b2859c8d823b", {"status":"Rejected"}]

设置失败的原因排查:

  • 设置失败的原因可能是字符串大于63个字符。

重要

反馈问题时需要反馈原始SN值,而不是修改后的值。

3.2.3. 使用UrlHasServerToken控制URL

  1. 该key默认值为false,链接Websocket服务器时,会在url最后自动拼接桩号。例如桩号为123456789,服务器地址为cpam3.x-cheng.net/ocpp,链接服务器的url为/ocpp/123456789;

  2. 设置 为true时,链接Websocket服务器时,只使用配网发送的url链接服务器,不会拼接桩号。例如桩号为123456789,服务器地址为cpam3.x-cheng.net/ocpp,链接服务器的url为/ocpp/;

3.3. 如何通过OCPP自定义Key更改websocket?

使用ocpp1.6中的ChangeConfiguration.req,通过自定义Key:VendorWebsocketSettings可以更改Websocket。

自定义Websocket设置,默认参考格式如下(固定7个,分开内容单元):

WS,cpam3.x-cheng.net,443,/ocpp/,socpp1.6,,,

解释如下:

  1. 固定类型字符:WS;

  2. 服务器地址;

  3. 服务器端口;

  4. 服务器连接的URL;

  5. 服务器协议类型:ws链接配置为ocpp1.6,wss链接配置为socpp1.6;

  6. Websocket用户名;

  7. Websocket用户密码。

3.3.1. 例如加密链接修改wss://cpam3.x-cheng.net/ocpp,端口号为443的链接

发送命令

[2,"4e61badb-cdfc-4d68-9f0b-756f9a71701e","ChangeConfiguration",{"value":"WS,cpam3.x-cheng.net,443,/ocpp/,socpp1.6,,,","key":"VendorWebsocketSettings"}]

桩的返回(成功)

[3, "4e61badb-cdfc-4d68-9f0b-756f9a71701e", {"status":"Accepted"}]

3.3.2. 例如非加密链接修改修改ws://cpam3.x-cheng.net/ocpp ,端口号为80的链接

发送命令

[2,"4e61badb-cdfc-4d68-9f0b-756f9a71701e","ChangeConfiguration",{"value":"WS,cpam3.x-cheng.net,80,/ocpp/,ocpp1.6,,,","key":"VendorWebsocketSettings"}]

桩的返回(成功)

[3, "4e61badb-cdfc-4d68-9f0b-756f9a71701e", {"status":"Accepted"}]

重要

一定要保证配置的正确性,否则会导致桩无法连上服务器,需要现场使用蓝牙重新配网。

3.4. 如何通过OCPP禁用即插即充模式?

使用ocpp1.6中的ChangeConfiguration.req,把自定义Key:VendorDirectWorkMode设置为false即可禁用即插即充

修改命令如下:

发送命令

[2,"7e952213-25ee-4b09-b92e-3c4f04c9ff89","ChangeConfiguration",{"value":"false","key":"VendorDirectWorkMode"}]

桩的返回(成功)

[3, "7e952213-25ee-4b09-b92e-3c4f04c9ff89", {"status":"Accepted"}]

3.5. 如何通过OCPP禁用离线IC卡?

通过关闭本地认证功能和离线缓存功能关闭离线IC卡。

3.5.1. 设置LocalAuthorizeOffline为false

修改命令如下:

发送命令

[2,"7e952213-25ee-4b09-b92e-3c4f04c9ff89","ChangeConfiguration",{"value":"false","key":"LocalAuthorizeOffline"}]

桩的返回(成功)

[3, "7e952213-25ee-4b09-b92e-3c4f04c9ff89", {"status":"Accepted"}]

3.5.2. 设置LocalPreAuthorize为false

修改命令如下:

发送命令

[2,"7e952213-25ee-4b09-b92e-3c4f04c9ff89","ChangeConfiguration",{"value":"false","key":"LocalPreAuthorize"}]

桩的返回(成功)

[3, "7e952213-25ee-4b09-b92e-3c4f04c9ff89", {"status":"Accepted"}]

3.5.3. 设置AuthorizationCacheEnabled为false

修改命令如下:

发送命令

[2,"7e952213-25ee-4b09-b92e-3c4f04c9ff89","ChangeConfiguration",{"value":"false","key":"AuthorizationCacheEnabled"}]

桩的返回(成功)

[3, "7e952213-25ee-4b09-b92e-3c4f04c9ff89", {"status":"Accepted"}]

3.5.4. 设置AllowOfflineTxForUnknownId为false

修改命令如下:

发送命令

[2,"7e952213-25ee-4b09-b92e-3c4f04c9ff89","ChangeConfiguration",{"value":"false","key":"AllowOfflineTxForUnknownId"}]

桩的返回(成功)

[3, "7e952213-25ee-4b09-b92e-3c4f04c9ff89", {"status":"Accepted"}]

3.6. 上送OCPP后台的详细错误故障代码?

错误代码

vendorErrorCode

含义

1

0x2

CP负12V

8

0x100

flash异常

13

0x2000

辅助处理器异常

14

0x4000

CP异常

15

0x8000

继电器开合检测异常

16

0x10000

漏电自检异常

充电桩会通过ocpp1.6中StatusNotification.req中的vendorErrorCode字段,上报错误代码,格式为十六进制,当有多个错误同时发生时,错误代码会相加,例如:当继电器开合检测异常和CP异常同时发送时,0x8000+0x4000 = 0xC000.

以上错误代码,均为硬件固件,如果重启无法消除,需要联系售后处理。

3.7. 客户已接入自己的平台如何远程协助分析故障?

  1. 请提供需要协助分析的桩SN;

  2. 请通过贵司平台,开启该桩的 远程协助指令,参考remote debug cmd(该命令开启后我们实时获取该桩的日志信息);

3.7.1. 设置DBGEnableInsight为8.209.68.26,8883

3.7.1.1. 修改命令如下

发送命令

[2,"55908aa6-330d-4d8b-a84a-547b0850169c","ChangeConfiguration",{"value":"8.209.68.26,8883","key":"DBGEnableInsight"}]

桩的返回(成功)

[3, "55908aa6-330d-4d8b-a84a-547b0850169c", {"status":"Accepted"}]

桩的返回(失败)

[3, "55908aa6-330d-4d8b-a84a-547b0850169c", {"status":"Rejected"}]

3.7.1.2. 设置失败的原因排查

充电桩不支持该DBGEnableInsight Key

  1. 触发故障场景,并告知我们;

  2. 我们将分析该日志信息,并反馈分析结果;

  3. 贵司不需要我们远程协助时可以关闭该功能,参考remote debug cmd,关闭后我们将不再能收到任何信息。

3.7.2. 设置DBGEnableInsight为空

3.7.2.1. 修改命令如下

发送命令

[2,"55908aa6-330d-4d8b-a84a-547b0850169c","ChangeConfiguration",{"value":"","key":"DBGEnableInsight"}]

桩的返回(成功)

[3, "55908aa6-330d-4d8b-a84a-547b0850169c", {"status":"Accepted"}]

桩的返回(失败)

[3, "55908aa6-330d-4d8b-a84a-547b0850169c", {"status":"Rejected"}]

3.7.2.2. 设置失败的原因排查

充电桩不支持该DBGEnableInsight Key

3.8. OCPP1.6J Keys 列表?

配置

说明

AllowOfflineTxForUnknownId

使能未知ID认证(默认开)

AuthorizationCacheEnabled

使能本地认证缓存(默认开)

AuthorizeRemoteTxRequests

使能远程充电ID认证(默认关)

ClockAlignedDataInterval

充电充电桩上报时刻(默认30分钟)

MeterValuesAlignedData

充电充电桩上报元素("Current.Import,Energy.Active.Import.Interval,Power.Active.Import,Temperature,Voltage")

MeterValuesAlignedDataMaxLength

充电充电桩上报元素数量()

ConnectionTimeOut

Prepare的Connected连接超时(默认120秒)

ConnectorPhaseRotation

每个连接器相对于连接器电表(或者如果不存在,则相对于电网连接)的相序。(默认值“RST”),不支持

GetConfigurationMaxKeys

最大GetConfigurationMaxKeys(默认100)

HeartbeatInterval

默认心跳间隔(15分钟)

LocalAuthorizeOffline

使能离线本地认证,仅仅离线时使用(默认开)

LocalPreAuthorize

使能本地预先认证,仅仅在线时使用(默认关)

MaxEnergyOnInvalidId

无效ID最大提供的电能(1000Wh)

MeterValuesSampledData

工作时充电桩上报元素("Power.Offered,Current.Offered,Current.Import,Energy.Active.Import.Register,Energy.Active.Import.Interval,Power.Active.Import,Temperature,Temperature,Temperature,Voltage")

MeterValuesSampledDataMaxLength

工作时充电桩上报元素数量

MeterValueSampleInterval

工作时充电桩上报间隔(60秒)

MinimumStatusDuration

最小Status上报间隔(默认0)

NumberOfConnectors

支持充电枪数(默认1)

ResetRetries

复位重试次数(3)

StopTransactionOnEVSideDisconnect

当车端断开连接停止事务(默认关)

StopTransactionOnInvalidId

当认证ID无效停止事务(默认开)

StopTxnAlignedData

停止事务时上报周期数据(空)

StopTxnAlignedDataMaxLength

StopTxnAlignedData最大长度(默认值:当前StopTxnAlignedData实际长度)

StopTxnSampledData

停止事务时上报采样数据(空)

StopTxnSampledDataMaxLength

StopTxnSampledData最大长度(默认值:当前StopTxnSampledData实际长度)

SupportedFeatureProfiles

支持的功能配置文件列表。可能的配置文件标识符:Core,FirmwareManagement,LocalAuthListManagement,Reservation,SmartCharging and RemoteTrigger.(默认值:"Core,LocalAuthListManagement,Reservation,SmartCharging,RemoteTrigger")

SupportedFeatureProfilesMaxLength

SupportedFeatureProfiles最大数量(默认值:当前SupportedFeatureProfiles的数量)

TransactionMessageAttempts

事务消息丢失尝试次数

TransactionMessageRetryInterval

事务消息丢失尝试间隔

UnlockConnectorOnEVSideDisconnect

车端可以unlock

LocalAuthListEnabled

认证列表使能

LocalAuthListMaxLength

认证列表最大长度

SendLocalListMaxLength

本地认证列表最大长度

ReserveConnectorZeroSupported

是否支持充电枪预定(默认true,只读)

ChargeProfileMaxStackLevel

充电调度最大堆栈深度(默认8,只读)

ConnectorSwitch3to1PhaseSupported

是否支持3相转1相(否),不支持

MaxChargingProfilesInstalled

最大可以安装的调度数量(默认16)

ChargingScheduleAllowedChargingRateUnit

在ChargingSchedule中可用的支持数量列表。允许的值为:'Current'和'Power'(默认值:"Current,Power")

ChargingScheduleMaxPeriods

每个ChargingSchedule可以定义的最大周期数(默认值:7*24*3600)

3.9. 客户后台如何主动获取4G信息?

补充:覆盖插网线连接后台的场景,注意4G和ETH同步的问题;

目前无法单独获取4G信息,只能通过boot查看ICCID和IMSI。

当ETH、WiFi和4G一起使用时,只有断开ETH和WiFi,单独使用4G连过服务器以后才会ICCID和IMSI值,如果从上电开始一直使用ETH和WiFi链接服务器,bootNotation中无法查看到4G信息。

主动触发BootNotation查看4G信息的方式:

发送命令

[2,"be899b1f-9926-4285-8c91-b18bd94646c7","TriggerMessage",{"connectorId":0,"requestedMessage":"BootNotification"}]

桩的返回(成功)

[3, "be899b1f-9926-4285-8c91-b18bd94646c7", {"status":"Accepted"}]

桩返回Accepted后会主动发送一次bootNotation。

3.10. 桩升级流程

远程升级使用OCPP1.6中的UpdateFirmware.req命令,location只支持http和https(2024.5月之后的固件才支持)链接,其他参数设置无要求。升级中桩会上报FirmwareStatusNotification.req消息,status有7种状态:Downloaded、DownloadFailed、Downloading、Idle、InstallationFailed、Installing、Installed;

充电桩远程升级:

  1. 桩在非充电状态下(最好是在available状态),后台发送UpdateFirmware.req命令;

  2. 发送UpdateFirmware.req后,桩进入unavailable状态;

  3. 升级正常时,后台会显示固件升级百分比进度条(早期固件无获取升级进度的功能);

  4. 升级异常时,进度条消失,桩退出unavailable状态(早期固件不退出unavailable状态),可能会重启;

  5. 正常升级流程会依次上报:Downloading->Downloaded->Installing->Installed;

  6. 升级完成后桩自动重启,退出unavailable状态(早期固件无法自动退出,需要后台主动修改状态),固件版本号变为升级固件的版本号;

G2+升级举例如下:

  1. 桩在线且处于空闲状态;

  2. 记录升级前的固件版本;

  3. 先升级ESP32:http://8.209.68.26/download/cp.onfly.V1.2@23283e3+48.ws.cp

  4. 再升级ST070:http://8.209.68.26/download/XSmart.V2.0.110(M3G31H)@7KW.EVPro.070

  5. 检查升级后的版本;

重要

注意升级过程中,桩为不可用状态,升级成功会后会重启进入空闲状态,需要后台查看并把桩置成可用状态。

3.11. 支持的TLS版本

M3G2支持的TLS版本:TLS 1.0、TLS 1.1、TLS 1.2.

M3G3支持的TLS版本:TLS 1.2、TLS 1.3,不支持TLS 1.0、TLS 1.1、SSL 3.0。

3.12. 如何使用key:OEM_FaultMask

系统的错误功能控制掩码:

掩码

功能

0

  • 是否使能地线异常停止充电:

  • 0使能:在充电桩检测到地线连接异常时,应该报 错误,无法充电;

  • 1不使能:在充电桩检测到地线连接异常时,忽略。

1

  • 是否使能CP异常停止充电:

  • 0使能:在充电桩检测到CP连接异常时,应该报 错误,无法充电;

  • 1不使能:在充电桩检测到CP连接异常时,暂停充电,可恢复。

2~7

保留,默认值0

8

是否关闭地线检测;

9

是否关闭继电器粘连检测;

10

是否关闭过温检测;

11

是否关闭过流检测;

12

是否关闭过压检测;

13

是否关闭欠压检测;

14

是否屏蔽掉漏电自检测;

15

是否屏蔽掉漏电检测;

16

是否屏蔽掉CP二极管(-12V)检测;

17~31

保留,默认值0

掩码

31~17

16

15

14

13

12

11

10

9

8

7~2

1

0

设置值

0

65536

32768

16384

8192

4096

2048

1024

512

256

0

2

1

  1. ChangeConfiguration使用举例:例如要关闭地线检测和继电器黏连检测:value 应设置为768(256+512)。

  2. GetConfiguration使用举例:例如,获取到的value值为768,使用十进制转换二进制的进制转换器将该值转换为二进制进行查看,从右往左数,右边第一个为编号0,出现1的位数即为表中的编号,对应相应的功能。

../_images/yanma.png

关闭接地检测修改命令如下:

发送命令

[2,"55908aa6-330d-4d8b-a84a-547b0850169c","ChangeConfiguration",{"value":"256","key":"OEM_FaultMask"}]

桩的返回(成功)

[3, "55908aa6-330d-4d8b-a84a-547b0850169c", {"status":"Accepted"}]

3.13. 如何使用key:OEM_FunctionMask

系统的功能控制掩码:

  1. bit0: 是否使能蜂鸣器:

    1. 0: 使能蜂鸣器

    2. 1:关闭蜂鸣器提示

  2. bit1: 是否屏蔽掉充电桩的CC功能;

  3. bit2: 充电桩的CP二极管检测(-12V)异常是否进入 错误 状态;

  4. bit3: 是否屏蔽掉过温降流功能;

从右往左依次为bit0、bit1、bit2、bit3、bit4、bit5、bit6、bit7、bit8、bit9、bit10、bit11、bit12、bit13、bit14、bit15、bit16,每个bit位只能设置为0或1。

关闭接地检测修改命令如下:

发送命令

[2,"55908aa6-330d-4d8b-a84a-547b0850169c","ChangeConfiguration",{"value":"0x1","key":"OEM_FunctionMask"}]

桩的返回(成功)

[3, "55908aa6-330d-4d8b-a84a-547b0850169c", {"status":"Accepted"}]

3.14. 如何查看网络信息

发送命令

[2,"cec46082-91b8-4492-afd6-24af84ab7873","GetConfiguration",{"key":["OEM_NetState"]}]

桩的返回(成功)

[3, "cec46082-91b8-4492-afd6-24af84ab7873", {"configurationKey":[{"key":"OEM_NetState","readonly":true,"value":"{\"connectivity\":\"WiFi\",\"wifi-rssi\":\"-43\",\"4g-rssi\":\"-1\",\"ccid\":\"\",\"imsi\":\"\",\"ip\":\"192.168.137.199\"}"}]}]

3.15. RemoteStartTransaction携带调度的要求

RemoteStartTransaction携带的调度配置只能为Txprofile,设置其他配置无效或者返回拒绝。

3.16. 如何修改心跳报文上送周期?

使用ChangeConfiguration命令修改key:HeartbeatInterval,value可设置范围60秒~86400秒。

3.17. 在线升级API使用说明

  1. 升级前需要先确认固件状态和硬件状态,需要升级和充电桩当前固件一样的固件类型才可以,否则可能无法升级,或升级成功后可能会异常报错。

  2. 所有版本固件升级链接都支持http链接,部分最新版固件支持https、FTP链接,如果对固件升级链接没有要求,建议使用http连接升级,如果使用https和FTP链接升级,需要先确认当前固件是否支持。

  3. 当开始升级后,桩会通过FirmwareStatusNotification.req上报充电桩更新状态,为了确保后台可以监控升级进度,每一条FirmwareStatusNotification.req都需要后台及时返回响应消息,否则会导致升级结束后不自动充电充电桩;

  4. 升级过程中桩主动发送FirmwareStatusNotification.req的时间间隔最大为10秒,超过20秒,后台没有收到FirmwareStatusNotification.req,后台需要使用TriggerMessage.req,主动触发FirmwareStatusNotification.req上报;

  5. 升级过程中后台可以通过GetConfiguration.req拉取key:GetFirmwareUpgradePercentages,查看固件下载进度;