【OCPP】ocpp1.6协议第4.2章节BootNotification的介绍及翻译

2024-06-04 22:28

本文主要是介绍【OCPP】ocpp1.6协议第4.2章节BootNotification的介绍及翻译,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

目录

4.2、BootNotification-概述

Boot Notification 消息

BootNotification 请求消息

BootNotification 响应消息

使用场景

触发 BootNotification 的条件

实现示例

构建请求消息

发送请求并处理响应

小结

4.2、BootNotification-原文译文

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


4.2、BootNotification-概述

OCPP 1.6 协议的第 4.2 章 “Boot Notification” 主要讲述了充电站启动时向中央系统(Central System)发送启动通知(Boot Notification)进行注册和初始化的过程。这是充电站与中央系统建立通信和进行后续操作的第一步。

Boot Notification 消息

BootNotification 是充电站启动时发送给中央系统的一个消息,用于报告充电站的状态和基本信息。此消息用于通知中央系统充电站已经启动,并请求进行初始化和注册。

BootNotification 请求消息

请求消息包含充电站的基本信息,如供应商、电站型号、固件版本等。典型的消息格式如下:

{ "chargePointVendor": "string", "chargePointModel": "string", "chargePointSerialNumber": "string", "chargeBoxSerialNumber": "string", "firmwareVersion": "string", "iccid": "string", "imsi": "string", "meterType": "string", "meterSerialNumber": "string" }
  • chargePointVendor: 供应商名称。

  • chargePointModel: 充电站型号。

  • chargePointSerialNumber: 充电站的序列号。

  • chargeBoxSerialNumber: 充电箱的序列号(如果适用)。

  • firmwareVersion: 固件版本。

  • iccid: 集成电路卡识别码(ICCID),用于标识 SIM 卡。

  • imsi: 国际移动用户识别码(IMSI),用于标识移动用户。

  • meterType: 电表类型。

  • meterSerialNumber: 电表序列号。

BootNotification 响应消息

中央系统在收到 BootNotification 消息后,会返回一个响应消息,确认接收到启动通知并向充电站提供配置参数。响应消息的典型格式如下:

{ "status": "string", "currentTime": "string", "interval": 300 }
  • status: 注册状态,可能值包括:

    • Accepted: 充电站注册成功,中央系统接受该充电站。

    • Pending: 充电站需要等待,注册请求待处理。

    • Rejected: 充电站注册失败,中央系统拒绝该充电站。

  • currentTime: 中央系统的当前时间(ISO 8601 格式)。

  • interval: 充电站应在下一次进行心跳请求的时间间隔(秒为单位)。

使用场景

  1. 充电站启动

当充电站首次启动或重新启动时,会立即向中央系统发送 BootNotification 消息。这有助于中央系统了解充电设备已经上线并准备好进行操作。

  1. 网络连接恢复

如果充电站由于网络问题与中央系统失去连接,当网络连接恢复时,充电站应重新发送 BootNotification 消息,以重新注册并同步状态。

触发 BootNotification 的条件

  • 首次启动:充电站首次启动时。

  • 重启后:充电站重新启动后。

  • 网络恢复:修复网络连接问题后。

实现示例

以下是使用 JavaScript 实现的示例,展示了如何构建和发送 BootNotification 请求,并处理响应。

构建请求消息
const bootNotificationRequest = { chargePointVendor: "VendorName", chargePointModel: "Model123", chargePointSerialNumber: "SN12345678", chargeBoxSerialNumber: "CBSN12345678", firmwareVersion: "1.0.0", iccid: "8912345678901234567", imsi: "123456789012345", meterType: "MeterType1", meterSerialNumber: "MSN12345678" };
发送请求并处理响应
// 假设 websocket 已经连接至中央系统 webSocket.send(JSON.stringify({ action: "BootNotification", payload: bootNotificationRequest })); webSocket.onmessage = (event) => { const response = JSON.parse(event.data); if (response.action === "BootNotification") { const { status, currentTime, interval } = response.payload; if (status === "Accepted") { console.log(`BootNotification Accepted. Server time: ${currentTime}. Next heartbeat interval: ${interval} seconds.`); // 设置心跳间隔定时器 setInterval(sendHeartbeat, interval * 1000); } else if (status === "Pending") { console.log("BootNotification Pending. Waiting for further instructions."); } else { console.error("BootNotification Rejected. Please check configurations."); } } }; function sendHeartbeat() { webSocket.send(JSON.stringify({ action: "Heartbeat" })); }

小结

OCPP 1.6 协议的第 4.2 章 "Boot Notification" 详细描述了充电站启动时如何向中央系统发送启动通知。通过 BootNotification 消息,充电站可以向中央系统报告其状态和基本信息,并接收初始化参数。这一步确保了充电站与中央系统之间的通信正常,使得后续的操作和管理得以顺利进行。

4.2、BootNotification-原文译文

启动后,充电桩应向中央系统发送请求,其中包含有关其配置的信息(例如版本、供应商等)。 中央系统应做出响应,表明它是否会接受充电桩。

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

当中央系统以“Accepted”状态响应 BootNotification.conf 时,充电桩将根据响应 PDU 的间隔调整心跳间隔,并且建议将其内部时钟与所提供的中央系统的当前时间同步。如果中央系统返回 Accepted 以外的内容,则间隔字段的值指示发送下一个 BootNotification 请求之前的最短等待时间。如果该间隔值为零,则充电桩会自行选择等待间隔,以避免请求淹没中央系统。充电桩不应提前发送 BootNotification.req,除非使用 TriggerMessage.req 请求这样做。

如果中央系统返回“Rejected”状态,则在上述重试间隔到期之前,充电桩不得向中央系统发送任何 OCPP 消息。在此期间,中央系统可能无法再访问充电桩。例如,它可以关闭其通信通道或关闭其通信硬件。中央系统也可以关闭通信通道,例如以释放系统资源。当被拒绝时,充电桩不得响应任何中央系统发起的消息。中央系统不应该启动任何

中央系统还可以返回Pending注册状态,以表明它希望在中央系统接受充电桩之前检索或设置有关充电桩的某些信息。如果中央系统返回Pending状态,则充电桩或中央系统不应关闭通信通道。中央系统可以发送请求消息以从充电桩检索信息或更改其配置。充电桩应该响应这些消息。充电桩不得向中央系统发送请求消息,除非中央系统通过 TriggerMessage.req 请求指示它这样做。

当处于Pending状态时,不允许以下中央系统启动的消息:RemoteStartTransaction.req 和 RemoteStopTransaction.req

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

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

重新启动后(例如由于远程重置命令、断电、固件更新、软件错误等),充电桩必须再次联系中央系统并应发送 BootNotification 请求。如果充电桩无法从中央系统接收 BootNotification.conf,并且没有已正确预设的内置非易失性实时时钟硬件,则充电桩可能没有有效的日期/时间设置,从而导致以后无法确定交易的日期/时间。

也可能出现这样的情况(例如,由于配置错误),中央系统在较长一段时间内或无限期地指示“Accepted”以外的状态。

如果充电桩之前从未被中央系统接受(使用当前的连接设置、URL 等),通常建议拒绝该充电桩的所有充电服务,因为用户无法通过身份验证,并且运行的事务可能与配置冲突流程。

这篇关于【OCPP】ocpp1.6协议第4.2章节BootNotification的介绍及翻译的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1031291

相关文章

性能测试介绍

性能测试是一种测试方法,旨在评估系统、应用程序或组件在现实场景中的性能表现和可靠性。它通常用于衡量系统在不同负载条件下的响应时间、吞吐量、资源利用率、稳定性和可扩展性等关键指标。 为什么要进行性能测试 通过性能测试,可以确定系统是否能够满足预期的性能要求,找出性能瓶颈和潜在的问题,并进行优化和调整。 发现性能瓶颈:性能测试可以帮助发现系统的性能瓶颈,即系统在高负载或高并发情况下可能出现的问题

水位雨量在线监测系统概述及应用介绍

在当今社会,随着科技的飞速发展,各种智能监测系统已成为保障公共安全、促进资源管理和环境保护的重要工具。其中,水位雨量在线监测系统作为自然灾害预警、水资源管理及水利工程运行的关键技术,其重要性不言而喻。 一、水位雨量在线监测系统的基本原理 水位雨量在线监测系统主要由数据采集单元、数据传输网络、数据处理中心及用户终端四大部分构成,形成了一个完整的闭环系统。 数据采集单元:这是系统的“眼睛”,

Hadoop数据压缩使用介绍

一、压缩原则 (1)运算密集型的Job,少用压缩 (2)IO密集型的Job,多用压缩 二、压缩算法比较 三、压缩位置选择 四、压缩参数配置 1)为了支持多种压缩/解压缩算法,Hadoop引入了编码/解码器 2)要在Hadoop中启用压缩,可以配置如下参数

图神经网络模型介绍(1)

我们将图神经网络分为基于谱域的模型和基于空域的模型,并按照发展顺序详解每个类别中的重要模型。 1.1基于谱域的图神经网络         谱域上的图卷积在图学习迈向深度学习的发展历程中起到了关键的作用。本节主要介绍三个具有代表性的谱域图神经网络:谱图卷积网络、切比雪夫网络和图卷积网络。 (1)谱图卷积网络 卷积定理:函数卷积的傅里叶变换是函数傅里叶变换的乘积,即F{f*g}

C++——stack、queue的实现及deque的介绍

目录 1.stack与queue的实现 1.1stack的实现  1.2 queue的实现 2.重温vector、list、stack、queue的介绍 2.1 STL标准库中stack和queue的底层结构  3.deque的简单介绍 3.1为什么选择deque作为stack和queue的底层默认容器  3.2 STL中对stack与queue的模拟实现 ①stack模拟实现

论文翻译:arxiv-2024 Benchmark Data Contamination of Large Language Models: A Survey

Benchmark Data Contamination of Large Language Models: A Survey https://arxiv.org/abs/2406.04244 大规模语言模型的基准数据污染:一项综述 文章目录 大规模语言模型的基准数据污染:一项综述摘要1 引言 摘要 大规模语言模型(LLMs),如GPT-4、Claude-3和Gemini的快

【Linux】应用层http协议

一、HTTP协议 1.1 简要介绍一下HTTP        我们在网络的应用层中可以自己定义协议,但是,已经有大佬定义了一些现成的,非常好用的应用层协议,供我们直接使用,HTTP(超文本传输协议)就是其中之一。        在互联网世界中,HTTP(超文本传输协议)是一个至关重要的协议,他定义了客户端(如浏览器)与服务器之间如何进行通信,以交换或者传输超文本(比如HTML文档)。

Mysql BLOB类型介绍

BLOB类型的字段用于存储二进制数据 在MySQL中,BLOB类型,包括:TinyBlob、Blob、MediumBlob、LongBlob,这几个类型之间的唯一区别是在存储的大小不同。 TinyBlob 最大 255 Blob 最大 65K MediumBlob 最大 16M LongBlob 最大 4G

FreeRTOS-基本介绍和移植STM32

FreeRTOS-基本介绍和STM32移植 一、裸机开发和操作系统开发介绍二、任务调度和任务状态介绍2.1 任务调度2.1.1 抢占式调度2.1.2 时间片调度 2.2 任务状态 三、FreeRTOS源码和移植STM323.1 FreeRTOS源码3.2 FreeRTOS移植STM323.2.1 代码移植3.2.2 时钟中断配置 一、裸机开发和操作系统开发介绍 裸机:前后台系

【Go】go连接clickhouse使用TCP协议

离开你是傻是对是错 是看破是软弱 这结果是爱是恨或者是什么 如果是种解脱 怎么会还有眷恋在我心窝 那么爱你为什么                      🎵 黄品源/莫文蔚《那么爱你为什么》 package mainimport ("context""fmt""log""time""github.com/ClickHouse/clickhouse-go/v2")func main(