在电动汽车 (EV) 的世界里,对于电动汽车驾驶员来说最神奇的体验之一就是点击手机应用程序上的“开始”,然后看着充电器启动。
但这种魔法是如何发生的呢?
让我们深入了解电动汽车充电器和移动应用程序通信的幕后过程。
游戏中的玩家
移动应用程序:这是用户发起操作的地方,例如开始或停止充电会话。
后端服务器:操作背后的大脑,协调应用程序和充电器之间的通信。
电动汽车充电器:向您的电动汽车输送电力的硬件。
这些参与者之间的通信遵循一种称为OCPP (开放充电点协议)的标准化协议。具体来说,大多数系统使用WebSocket上的 OCPP,从而确保实时、可靠的通信。
开始充电过程
步骤 1:用户在应用程序中点击“开始”
当用户点击“开始”按钮时,该过程就开始了。后端服务器准备一个RemoteStartTransaction命令,其中包含以下详细信息:
{
"connectorId": 1,
"idTag": "remote-11902",
"chargingProfile": {
"transactionId": 11902,
"chargingProfileId": 1,
"stackLevel": 1,
"chargingProfilePurpose": "TxProfile",
"chargingProfileKind": "Relative",
"chargingSchedule": {
"chargingRateUnit": "A",
"chargingSchedulePeriod": [ ... ]
}
}
}
此命令通过后端使用 RPC 调用发送到充电器:
await client.call(
'RemoteStartTransaction',
remoteStartTransactionBody
);
第 2 步:充电器响应
充电器通过响应确认该命令:
{"status": "Accepted"}
这表明充电器已准备好开始交易。
步骤 3:Charger 发送 StartTransaction
当充电器完全准备好后,它会向后端发送回StartTransaction消息:
{
"connectorId": 1,
"idTag": "remote-11902",
"meterStart": 0,
"timestamp": "2025-01-15T02:09:54.000Z"
}
监控充电过程
在整个充电过程中,充电器会定期发送MeterValues更新,其中包括电压、电流和传输能量等指标。这些更新可以配置为每 30 秒或以不同的间隔进行一次:
{
"connectorId": 1,
"transactionId": 11902,
"meterValue": [
{
"timestamp": "2025-01-15T02:09:54.000Z",
"sampledValue": [
{ "value": "241.10", "measurand": "Voltage", "unit": "V" },
{ "value": "0.00", "measurand": "Current.Import", "unit": "A" },
{ "value": "0", "measurand": "Power.Active.Import", "unit": "W" },
{ "value": "32", "measurand": "Current.Offered", "unit": "A" }
]
}
]
}
停止充电过程
步骤 1:用户在应用中点击“停止”
当用户点击“停止”时,后端会向充电器发送RemoteStopTransaction命令:
await client.call(
'RemoteStopTransaction',
{ transactionId: 11902 }
);
第 2 步:充电器响应
充电器确认:
{"status": "Accepted"}
步骤 3:充电器发送 StopTransaction
完成关机后,充电器会发送StopTransaction消息,其中包含输送的总能量等详细信息:
{
"idTag": "remote-11902",
"timestamp": "2025-01-15T02:40:49",
"meterStop": 6379,
"reason": "EVDisconnected",
"transactionId": 11902,
"transactionData": [
{
"timestamp": "2025-01-15T02:40:49",
"sampledValue": [
{ "value": "6379.259277", "measurand": "Energy.Active.Import.Register", "unit": "Wh" }
]
}
]
}
什么是连接器?
就像加油泵可能有不同的柴油或汽油喷嘴一样,电动汽车充电器也可以有多个连接器。常见类型包括:
CCS2:在欧洲和北美很受欢迎。
CHAdeMO:在日本很常见。
Mennekes(2 型):在欧洲广泛使用。
每个连接器独立运行,允许一个充电器为多辆车辆供电。
开放源码包
OCPP(开放充电点协议)是一种开放通信标准,专为电动汽车 (EV) 充电站(充电点)和中央管理系统(通常称为后端系统或充电点管理系统)之间的交互而设计。
它实现了不同制造商和软件提供商的充电基础设施之间的互操作性。
OCPP 版本:
OCPP 1.5:早期版本,仍在一些旧系统中使用。
OCPP 1.6:广泛采用,支持 SOAP 和 WebSocket 通信。
OCPP 2.0 和 2.0.1:增强版本,具有更多功能,如改进的安全性(TLS)、支持智能充电、更好的诊断和固件管理。
主要用例:
充电站管理:充电站的远程监控、故障排除和固件更新。
智能充电:实现负载平衡、调度/预订和与电网集成。
支付集成:允许充电站与支付网关交互并管理用户账户。
分析和报告:帮助运营商分析使用模式并优化操作。
OCPP 的工作原理:
OCPP 定义了充电点和中央系统之间的消息结构和通信协议。例如:
充电点发送有关其状态、能耗或错误的消息。
中央系统可以发送命令来开始/停止充电、更新固件或执行诊断。
OCPP 由开放充电联盟(OCA)管理,该联盟负责持续开发和推广该协议。
包裹
Python:mobilityhouse/ocpp
Javascript:mikuso/ocpp-rpc
总结
每次您从应用程序开始或停止充电时,一系列精确的实时消息都会在您的应用程序、后端和充电器之间流动。
OCPP协议使这一切成为可能,确保不同制造商的充电器和应用程序可以无缝协作。
因此,下次您插入电动汽车并点击“开始”时,您将对幕后的魔力有更多的了解!

