充电桩--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)

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

大模型开发轻松入门——(1)从搭建自己的环境开始

pip install openai import openai import osfrom dotenv import load_dotenv, find_dotenv _ load_dotenv(find_dotenv())openai.api_key os.getenv(OPENAI_API_KEY)

mac IDEA激活 亲测有效

1、官网下载mac版本IDEA并安装 2、打开激活页面 3、下载脚本文件 链接: https://pan.baidu.com/s/1I2BqdfxSJv1A96422rflnA?pwdm494 提取码: m494 4、命令行到该界面,执行 sudo bash idea.sh 可能出现的问题: 查看sh文件,targetFilePath…

vue快速入门(十六)事件修饰符

注释很详细&#xff0c;直接上代码 上一篇 新增内容 事件修饰符之阻止冒泡事件修饰符之阻止默认行为 源码 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta name"viewport" content"widthdev…

重定向原理和缓冲区

文章目录 重定向缓冲区 正文开始前给大家推荐个网站&#xff0c;前些天发现了一个巨牛的 人工智能学习网站&#xff0c; 通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。 点击跳转到网站。 重定向 内核中为了管理被打开的文件&#xff0c;一定会存在描述一…

ESP8266闪存文件系统(SPIFFS)

开发环境&#xff1a; 1、安装ESP8266的开发环境&#xff0c;如Arduino IDE。 2、下载并安装ESP8266的相关开发库和工具。 我们使用的是Arduino IDE。 基本介绍&#xff1a; 每一个ESP8266都配有一个闪存&#xff0c;这个闪存很像是一个小硬盘&#xff0c;我们上传的文件就被…

MCU最小系统晶振模块设计

单片机的心脏&#xff1a;晶振 晶振模块 单片机有两个心脏&#xff0c;一个是8M的心脏&#xff0c;一个是32.768的心脏 8M的精度较低&#xff0c;所以需要外接一个32.768khz 为什么是8MHZ呢&#xff0c;因为内部自带的 频率越高&#xff0c;精度越高&#xff0c;功耗越大&am…

[Java EE] 多线程(二): 线程的创建与常用方法(下)

2.3 启动一个线程–>start() 之前我们已经看到了如何通过重写run()方法来创建一个线程对象,但是线程对象被创建出来并不意味着线程就开始运行了. 覆写run方法是给线程提供了所要做的事情的指令清单创建线程对象就是把干活的人叫了过来.而调用start方法,就是喊一声"行…

贪心法确定补水地点

贪心算法是一个简单有趣的算法&#xff0c;它总是做出当前看来最好的选择&#xff0c;每次的局部最优选择最终可以产生整体最优解或整体最优解的近似。本文将介绍如何用贪心法解决补水问题。 1. 补水问题 2升水可以走 k k k英里&#xff0c;水站可以把水补满为2升&#xff0c…

【五十四】【算法分析与设计】Manacher算法,Manacher算法作用,Manacher算法流程,Manacher算法证明,Manacher算法代码

Manacher算法作用 1. 给你一个字符串str&#xff0c;要你求这个字符串的最长回文子串的长度&#xff0c;或者求这个字符串的最长回文子串在str中开始位置的下标。 2. 暴力解法&#xff0c;中心扩散算法&#xff0c;时间复杂度O(N*2)。Manacher算法可以用O(N)解决这个问题。…

鸿蒙相关岗位需求突增!你具体知道都有哪些岗位吗?

1 月 18 日&#xff0c;鸿蒙 Next 预览版面向开发者正式开放申请。至此&#xff0c;鸿蒙原生应用版图已成型&#xff0c;这个中国自主研发的操作系统&#xff0c;正式走上了独立之路。 随后迎来了不少互联网公司与华为鸿蒙原生应用达成了合作&#xff0c;像我们常见的阿里、京…

【Android GUI】FramebufferNativeWindow与Surface

文章目录 显示整体体系FramebufferNativeWindowFramebufferNativeWindow构造函数 dequeueBufferSurface总结参考 显示整体体系 native window为OpenGL与本地窗口系统之间搭建了桥梁。 这个窗口系统中&#xff0c;有两类本地窗口&#xff0c;nativewindow1是能直接显示在屏幕的…

上班族副业指南:六种实用赚钱途径

在现今竞争激烈的社会中&#xff0c;许多上班族都选择开辟副业来增加收入与实现自我价值。副业不仅能够增强经济安全感&#xff0c;还能满足个人兴趣爱好&#xff0c;并为未来铺设更坚实的财务基石。本文将为你揭示六种适合上班族的副业选择&#xff0c;帮助你找到最适合自己的…

JookDB下载安装使用

天行健&#xff0c;君子以自强不息&#xff1b;地势坤&#xff0c;君子以厚德载物。 每个人都有惰性&#xff0c;但不断学习是好好生活的根本&#xff0c;共勉&#xff01; 文章均为学习整理笔记&#xff0c;分享记录为主&#xff0c;如有错误请指正&#xff0c;共同学习进步。…

CUDA优化入门

本文记录了我的cuda学习经历&#xff0c;和大多数人一样&#xff0c;通过优化矩阵乘法的过程来了解一些基本的概念。仓库链接&#xff1a; GiteeGithub Refences NVIIDA Fermi Architecture WhitepaperCUDA C Programming GuideCUDA C Best Practices Guide 其中Fermi架构是…

LINUX中使用cron定时任务被隐藏,咋回事?

一、问题现象 线上服务器运行过程中&#xff0c;进程有莫名进程被启动&#xff0c;怀疑是有定时任务自动启动&#xff0c;当你用常规方法去查看&#xff0c;比如使用crontab去查看定时器任务&#xff0c;提示no crontab for root 或者使用cat到/var/spool/cron目录下去查看定时…

反射

目录 01、Java反射机制概述1.1、使用反射&#xff0c;实现同上的操作、调用私有属性 02、理解Class类并获取Class实例2.1、Class类的理解2.2、获取Class实例的4种方式2.3、Class实例对应的结构的说明 03、ClassLoader的理解3.1、ClassLoader的理解3.2、使用ClassLoader加载配置…

20240329-2-树模型集成学习TreeEmbedding

树模型集成学习 集成学习主要有两个思想&#xff0c;分别是bagging和boosting。树模型的集成模型都是使用树作为基模型&#xff0c;最常用的cart树&#xff0c;常见的集成模型有RandomForest、GBDT、Xgboost、Lightgbm、Catboost。 概要介绍 RandomForest 随机森林(Random …

Java面试八股之JDK和JRE的区别

JDK和JRE的区别 定义&#xff1a;JDK&#xff08;Java Development Kit&#xff09;是Java开发工具包的缩写&#xff0c;它是Java开发人员必备的工具。JDK包含了编译器(javac)、Java虚拟机(JVM)和Java类库等开发工具和资源。它提供了开发、编译、调试和运行Java程序所需的一切…

LeetCode 2924.找到冠军 II:脑筋急转弯——只关心入度

【LetMeFly】2924.找到冠军 II&#xff1a;脑筋急转弯——只关心入度 力扣题目链接&#xff1a;https://leetcode.cn/problems/find-champion-ii/ 一场比赛中共有 n 支队伍&#xff0c;按从 0 到 n - 1 编号。每支队伍也是 有向无环图&#xff08;DAG&#xff09; 上的一个节…

L2-2 老板的作息表

新浪微博上有人发了某老板的作息时间表&#xff0c;表示其每天 4:30 就起床了。但立刻有眼尖的网友问&#xff1a;这时间表不完整啊&#xff0c;早上九点到下午一点干啥了&#xff1f; 本题就请你编写程序&#xff0c;检查任意一张时间表&#xff0c;找出其中没写出来的时间段…