充电桩--OCPP 充电通讯协议介绍

一、OCPP协议介绍

OCPP的全称是 Open Charge Point Protocol 即开放充电点协议, 它是免费开放的协议,该协议由位于荷兰的组织 OCA(开放充电联盟)进行制定。Open Charge Point Protocol (OCPP) 开放充电点协议用于充电站(CS)和任何充电站管理系统(CSMS)之间的统一通信方案。这个协议架构支持任何充电服务供应商的中央管理系统与所有的充电桩互相连接,主要用于解决私营的充电网络间通讯产生的各种困难。OCPP支持充电站点与各供应商中央管理系统间的无缝通讯管理。在过去的很多年内,私营充电网络的封闭特性已经给大量电动汽车车主和地产管理者造成很多无谓的挫折感,引发整个行业对一个开放模型的广泛呼吁。OCPP协议的优点:开放免费使用、防止锁定单个供应商(充电平台)、减少集成时间/工作量和IT问题。

图片

图 :OCA 的部分成员

1、OCPP版本发展介绍

图片

图 : OCPP发展时间

2009年荷兰的ElaadNL公司发起成立开放充电联盟,该联盟主要负责推进开放充电协议OCPP和开放智能充电协议OSCP。现在归OCA所有;OCPP可以支持所有类型的充电技术。

2、OCPP版本介绍

如下图,从OCPP1.5到现在最新的OCPP2.0.1

图片

(1)OCPP1.2(SOAP) 

(2)OCPP1.5(SOAP) 

由于行业内存在太多私有协议,无法支持不同运营商服务间的统一服务体验和操作互联,所以OCA牵头推进制定了该开放协议OCPP1.5。SOAP受限于本身协议的约束, 无法大范围快速推广。

OCPP 1.5通过基于HTTP协议的SOAP协议与中央系统进行通信,从而操作充电点它支持以下功能:本地和远程启动的交易,包括计费的计量

(3)OCPP1.6(SOAP/JSON)

OCPP1.6版本,加入了JSON格式的实现方式,并增加了智能充电的拓展性。JSON版本是通过WebSocket通信, 可在任何网络环境下互发数据,目前市场上使用最多的协议是1.6J 版本,

支持基于websockets协议的JSON格式数据,以减少数据流量(JSON,JavaScript对象表示法,是一种轻量级的数据交换格式)并且允许在不支持充电点包路由的网络上运行(例如公共internet)。智能充电:负载均衡,中央智能充电和本地智能充电。让充电点重新发送自身信息(以当前充电点信息为准),例如最后的计量值或充电点的状态。

(4)OCPP2.0(JSON)

2018年发布的OCPP2.0,改进了事务处理,增加安全性、设备管理:增加智能充电功能,对于具有能量管理系统(EMS)、本地控制器的拓扑结构,以及用于电动汽车集成智能充电、充电站和充电站管理系统的拓扑结构。支持ISO 15118:关于电动汽车的即插即用和智能充电要求。

(5)OCPP2.0.1(JSON)

OCPP 2.0.1 是最新版本,于 2020 年发布。它提供了新的功能和改进,如支持 ISO15118(即插即用)、增强了安全性并全面提高了性能。

3、OCPP版本兼容性

OCPP1.x是向低版本兼容, OCPP1.6兼容OCPP1.5, OCPP1.5兼容OCPP1.2。

OCPP2.0.1不兼容OCPP1.6,OCPP2.0.1中虽然有些内容在OCPP1.6也有, 但是发送的数据帧格式已经完全不同

二、OCPP 2.0.1协议

1、OCPP 2.0.1和OCPP 1.6区别

相较于OCPP1.6等更早的版本,OCPP2.0. 1在以下几个方面有较大的改进:

提高安全性:OCPP2.0.1通过引入基于安全套接层的HTTPS连接以及新的证书管理方案进行安全加固,以确保通信的安全性。

增加新功能:OCPP2.0.1增加了许多新功能,包括智能充电管理,以及更详尽的故障报告和分析等。

设计更灵活:OCPP2.0.1的设计更加灵活,能够满足更加复杂和多样化的应用需求。

代码简化:OCPP2.0.1简化了代码,使得软件实现更加容易。

OCPP2.0.1中固件更新增加了数字签名, 防止固件下载不完整, 导致固件更新失败,

在实际应用中,OCPP2.0.1协议可以用于实现充电桩的远程控制,充电状态的实时监控,用户认证等功能,从而大大提高了充电设备的使用效率和安全性。OCPP2.0.1细节和功能比1.6版本多了很多, 开发的难度也增大了。

2、OCPP2.0.1功能介绍

图片

OCPP2.0.1协议是OCPP协议的最新版本,与OCPP1.6相比,做出了大量的改进和优化。主要内容包括:

消息传输:OCPP2.0.1新增了一些消息类型,并对一些旧的消息格式进行了修改,以提高效率和性能。

数字证书:在OCPP2.0.1中,引入了基于数字证书的安全机制,从而提供了加固的设备身份验证和消息完整性保护。这是对OCPP1.6安全机制的重大改进。

数据模型:OCPP2.0.1更新了数据模型,增加了对新的设备类型和功能的支持。

设备管理:OCPP2.0.1提供了更全面的设备管理功能,包括设备配置、故障诊断、软件更新等。

组件模型:OCPP2.0.1引入了更加灵活的组件模型,可以用于描述更复杂的充电设备和系统。这有助于实现更高级的功能,如V2G(Vehicle to Grid,车载电网)。

智能充电:OCPP2.0.1增加了对智能充电的支持,例如,可以根据电网的状况或用户的需求,动态调整充电功率。

用户身份和授权:OCPP2.0.1提供了更加完善的用户身份识别和授权机制,支持多种用户身份验证方法,同时对于用户数据保护也提出了更高的要求。

三、OCPP 功能介绍

1、 智能充电

图片

外部能源管理系统 (EMS)

OCPP 2.0.1 通过引入通知机制(Notification)来解决这个问题,这个机制可以通知 CSMS(充电站管理系统)所受到的外部限制。支持能源管理系统(EMS)的直接智能充电输入可以解决许多情况:

连接到充电点的电动汽车(通过 ISO 15118)

OCPP 2.0 .1支持 ISO 15118 - 用于 EVSE 到 EV 通信的更新协议。ISO 15118 标准的即插即充电和智能充电(包括来自 EV 的输入)更易于使用 OCPP 2.0 .1实施. 使充电站运营商能够(从 CSMS)发送关于充电站的消息,以显示给 EV 驾驶员。

智能充电用途:

(1)负载均衡

负载均衡主要是针对充电站的内部负载而言,充电站会根据预先的配置控制各个充电桩的充电功率,充电站会被配置一个固定的限制值,比如最大的输出电流。此外,配置中还包含可选的选项  用于优化充电桩对各个充电桩的功率分配。该配置告诉充电站低于该配置值得充电速率是无效的,应当选择其它充电策略。

(2)中央智能充电

中央智能充电假定充电限制由中央系统进行控制,中央系统接收到电网运营商关于电网容量的预测信息后会计算出部分或者全部的充电计划,中央系统会对充电桩进行充电限制,通过响应 消息来设置充电限制。

(3)本地智能充电

本地智能充电则是通过一个本地控制器来实现,该控制器相当于一个 OCPP 协议的代理,负责接收来自中央系统的消息,并且控制组内其它充电站的充电行为,该控制器本身可以配备充电桩,也可以选择不配备。在本地智能充电的模式下,本地控制器对充电站的充电功率进行限制,在充电过程中,该限制值可以进行修改,该充电组的限制值可以在本地进行配置,也可以由中央系统进行配置。

2、系统介绍

图片

系统构架

图片

软件构架

OCPP2.0.1协议中功能模块划分主要包括数据传输(DataTransfer)模块、授权(Authorization)模块、安全(Security)模块、交易(Transactions)模块、计量( MeterValues)模块、计费(Cost)模块、预约(Reservation)模块、智能充电(SmartCharging)模块、诊断( Diagnostics)模块、固件管理(FirmwareManagement)模块、显示(DisplayMessage)模块

四、OCPP 未来发展

1、OCPP的优势

OCPP是一项免费且开放的协议,也是解决当前充电桩互联互通的有效途径,且已在全球多个国家推广使用,虽然我国尚未形成统一协议,但若以OCPP协议做基础,未来运营商服务间的互联互通将有语言可沟通。根据当前中国新能源汽车产业的发展,充电设施的调整和统一迫在眉睫,而国家部门或运营商是否采用OCPP协议还需要时间的检验。

在OCPP出现之前,每个充电桩制造商都会为后台连接开发自己的专有协议,从而将充电桩运营商与单个充电桩制造商锁定在一起。现在,由于几乎所有的硬件制造商都支持OCPP,充电桩运营商可以自由选择任何供应商的硬件,这使得市场更具竞争力。

物业/企业业主的情况也是如此;当他们购买非OCPP充电站或与非OCPP CPO签订合同时,他们将被锁定到特定的充电站和充电桩运营商。但有了符合OCPP的充电硬件,业主可以保持独立于供应商。业主可以自由地选择更具竞争力、价格或功能更优的CPO。也可以通过混合不同的充电桩硬件来扩展网络,而无需拆除现有装置。

当然,电动汽车的主要好处是,电动汽车驾驶员不需要依赖于单一的充电桩运营商或电动汽车供应商。与购买的OCPP充电站相同,电动汽车驾驶员可以切换到更好的CPO/EMP。第二个,但非常重要的好处是能够使用电子移动漫游。OCPP和另一个开放协议OCPI使电子漫游成为可能。E-Roaming为电动汽车驾驶员提供了对所有可用充电基础设施的访问权限,只需一次订阅或与E-Mobility服务提供商签订合同即可。

2、OCPP与国内协议区别

目前,国家电网,南方电网,特来电和奥能等多数国内充电设备生产厂商和运营商多采用以104协议作为基础协议,并对其进行一定程度上的修改。

图片

据了解,104协议基于TCP/IP,是一个二进制格式的通讯协议。其数据量很小,但是易读性较差,而且缺少拓展性。其劣势包括:用户账户信息管理和预约,车端BMS信息和电池认证,车位实时状态信息等。比如,如果分时租赁公司想要更深度的优化用户体验,就很难通过车桩传递相关信息来完成;如果电桩想及时告知车主电池状态也很难做到,拓展性较弱。

所以,基于以上劣势,部分厂商实现的过程中都做了一定程度的修改,来部分满足上述未满足的场景,导致每家实现的细节都不尽然相同,这部分的区别导致很多对外对接的时候本质依然是一个半私有协议,有大量定制化对接成本。

据悉,104协议包含业务数据格式和网络管理两部分,目前大多数厂家实现时并没有使用网络管理的相关命令。由于之前大多数专用快速营运性充电站很多在城市并在地面建设,所以无线连接的问题并不严重。但是随着私家乘用车的发展,基于停车场改造建设充电设施,受充电场所的复杂性导致不能保证时时连接通畅,这种情况下未针对网络信号弱的处理方式就暴露出较多的问题。

3、OCPP在电动汽车充电中作用

(1)OCPP帮助EVSE和CSMS相互通信

(2)电动汽车用户开始充电的授权

(3)充电配置的远程修改,远程充电控制(启动/停止),远程解锁枪(连接器id)

(4)充电站的实时状态(可用、已停止、已暂停、未经授权EV/EVSE)、实时充电数据、实时功耗、实时EVSE故障

(5)智能充电(减少电网负载)

(6)固件管理(OTAA)

图片

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/552136.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

同城O2O系统开发实战:外卖送餐APP的技术架构与实现

今天,我们将深入探讨同城O2O系统开发实战中,外卖送餐APP的技术架构与实现。 一、概述 外卖送餐APP是一种典型的O2O应用,通过移动互联网技术,将用户与商家连接起来,实现用户在线订餐,商家配送服务的模式。…

JVM 方法调用之方法分派

JVM 方法调用之方法分派 文章目录 JVM 方法调用之方法分派1.何为分派2.静态分派3.动态分派4.单分派与多分派5.动态分派的实现 1.何为分派 在上一篇文章《方法调用之解析调用》中讲到了解析调用,而解析调用是一个静态过程,在类加载的解析阶段就确定了方法…

4.1 返回JSON数据

1. 默认实现方式 JSON是目前主流的前后端数据传输方式,Spring MVC中使用消息转换器HttpMessageConverter对JSON的转换提供了很好的支持,在Spring Boot中更进一步,对相关配置做了更进一步的简化。 默认情况下,当开发者新创建一个S…

4.17号驱动

中断子系统 1. 中断工作原理 1.1 异常处理流程 保存现场(cpu自动完成) 保存cpsr寄存器中的值,到spsr_寄存器中 修改cpsr寄存器中的值 修改状态位(T位) 根据需要禁止相应的中断位(I/F) 修改对应模式位 保存函数的返回地址到lr寄存器中 修改pc指向异常向量表 …

【测试开发学习历程】python常用的模块(下)

目录 8、MySQL数据库的操作-pymysql 8.1 连接并操作数据库 9、ini文件的操作-configparser 9.1 模块-configparser 9.2 读取ini文件中的内容 9.3 获取指定建的值 10 json文件操作-json 10.1 json文件的格式或者json数据的格式 10.2 json.load/json.loads 10.3 json.du…

React 快速入门:掌握前端开发的核心技能

React 快速入门:掌握前端开发的核心技能 一、React 简介1.1 React 的历史1.2 React 的概念1.3 React 的特点1.4 React 的官网地址 二、开发环境搭建三、React 基础3.1 JSX3.2 组件3.3 Props3.4 State3.5 props 和 state 的区别3.6 Hook 四、React 生命周期五、添加样…

OceanBase 4.3 列存存储格式和列存索引存储格式

以 t1 表和索引为例子,下面两张图说明了存储层如何存储数据。 create table t1 (id1 int, id2 int, name varchar(10), salary int, primary key(id1, id2)) with column group (each column);create index idx (name) storing(salary) with column group(each co…

代码随想录算法训练营第三十七天| LeetCode 738.单调递增的数字、总结

一、LeetCode 738.单调递增的数字 题目链接/文章讲解/视频讲解:https://programmercarl.com/0738.%E5%8D%95%E8%B0%83%E9%80%92%E5%A2%9E%E7%9A%84%E6%95%B0%E5%AD%97.html 状态:已解决 1.思路 如何求得小于等于N的最大单调递增的整数?98&am…

【云计算】云数据中心网络(六):私网连接

云数据中心网络(六):私网连接 1.什么是私网连接2.私网连接的组成3.私网连接的优势4.私网连接的主要应用场景 前面讲到 VPC 网络具有隔离性,VPC 之间无法通信。当一个 VPC 中的终端需要访问部署在另一个 VPC 中的服务时&#xff0c…

C++奇迹之旅:构造函数和析构函数

文章目录 📝类的6个默认成员函数🌠 构造函数🌉 概念🌉特性🌉三种默认构造函数 🌠 特性🚩总结 📝类的6个默认成员函数 如果一个类中什么成员都没有,简称为空类。 空类中真…

Redis中的订阅发布(一)

订阅发布 概述 Redis的发布与订阅功能由PUBLISH、SUBSCRIBE、PSUBSCRIBE等命令组成。通过执行SUBSCRIBER命令,客户端可以订阅一个或多个频道,从而成为这些频道的订阅者(subscribe): 每当有其他客户端向被订阅的频道发送消息(message)时&…

多ip证书实现多个ip地址https加密

在互联网快速发展的现在,很多用户会使用由正规数字证书颁发机构颁发的数字证书,其中IP数字证书就是只有公网IP地址网站的用户用来维护网站安全的手段。由于域名网站比较方便记忆,只有公网IP地址的网站是很少的,相应的IP数字证书产…

基于zookeeper安装Kafka集群

操作系统:centOS 9 Stream,6台,基于vmware虚拟机创建 准备工作 确认系统环境: 确保所有服务器已安装了最新更新。安装Java Development Kit (JDK) 8或更高版本,因为ZooKeeper和Kafka都是基于Java开发的。例如&#x…

【配电网故障定位】基于二进制粒子群算法的配电网故障定位 33节点配电系统故障定位【Matlab代码#78】

文章目录 【获取资源请见文章第6节:资源获取】1. 配电网故障定位2. 二进制粒子群算法3. 算例展示4. 部分代码展示5. 仿真结果展示6. 资源获取 【获取资源请见文章第6节:资源获取】 1. 配电网故障定位 配电系统故障定位,即在配电网络发生故障…

深入理解同步与异步编程及协程管理在Python中的应用

文章目录 1. 同步与异步函数的对比1.1 同步函数1.2 异步函数1.3 对比 2. 管理多个协程与异常处理2.1 并发执行多个协程2.2 错误处理2.3 任务取消 本文将探索Python中同步与异步编程的基本概念及其区别。还会详细介绍如何使用asyncio库来有效管理协程,包括任务的创建…

C++动态内存管理 解剖new/delete详细讲解(operator new,operator delete)

讨厌抄我作业和不让我抄作业的人 讨厌插队和不让我插队的人 讨厌用我东西和不让我用东西的人 讨厌借我钱和不借给我钱的人 讨厌开车加塞和不让我加塞的人 讨厌内卷和打扰我内卷的人 一、C中动态内存管理 1.new和delete操作内置类型 2.new和delete操作自定义类型 二、operat…

人生的关键在于思想、精神和心情

人生的关键在于思想、精神和心情, 努力让自己的思想明澈, 让自己的精神充实而有所支撑, 让自己每天都有一个豁达、平和、开朗的心情, 这很重要。

SQLite的知名用户(二十九)

返回:SQLite—系列文章目录 上一篇:SQLite作为应用程序文件格式(二十八) 下一篇:SQLite—系列文章目录 SQLite被数以百万计的应用程序使用 从字面上看,有数十亿次部署。 SQLite 是 当今世界。 下面显示了一些…

Taro-vue微信小程序用户隐私保护

Taro-vue微信小程序用户隐私保护 一、在 微信公众平台的【设置】- 【服务内容与声明】 ,设置用户隐私保护指引,添加项目需要的接口权限。 【用户隐私保护指引】提交之后,官方会进行审核。审核通过之后,对应的接口权限才会生效。 …

实现 Table 的增加和删除,不依赖后端数据回显

需求 删除前 删除后 分析 首先写一个 Table <a-card style"width:100%"><template#extra><a-button type"text" click"addSelectItem" style"margin-right: 5px">添加</a-button><a-button type&quo…