杜明明,崔立堃,冯绪永,王承祥
(陕西理工大学 机械工程学院,陕西 汉中 723001)
随着纯电动汽车迅速发展,充电桩的发展也呈快速的发展趋势。2015 年《电动汽车充电基础设施发展规划(2015—2020 年)》指出了明确的发展目标,2020 年初充电桩被正式纳入新基建,有望迎来新一轮增长。目前,国家电网、南方电网、TELD、奥地利集团和其他许多国内充电设备制造商和运营商大多都是以104 通讯协议为基础,并且各个制造商和运营商经过对该协议进行一定程度的筛选和修改后,使该协议变为“半开放”的状态进行开发使用,这样形成的封闭协议代表了它的私有性,如果没有相对应的接口和网关,就无法和其他产品互相通讯。OCPP(Open Charge Point Protocol,开放充电通讯协议)是一个免费提供的开放标准,是一种通用的开放通讯协议,它用于解决私营充电网络带来的挑战,它使供应商和网络运营商能够相互混合以及互相匹配可互操作性的软件和硬件。统一的标准可防止各种协调问题,因此对于整个电动汽车市场都是一个优势。运用当前在工业应用中占有不可替代作用的Linux下的Ubuntu 操作系统实现了OCPP 特定的功能,并经验证各个功能均可以达到良好的交互,证明了为解决两端之间通讯的开放性提供了一种方法,拟为后续汽车充电桩的发展模式和管理方式提供一种可行性的交互框架。
OCPP 为CS(充电站)与任何CSMS(充电站管理系统)间提供一种统一的通讯方案。这个协议构架支持任何充电服务供应商的CSMS 与所有的CS 点互相连接。目前,OCPP已经成为欧洲和美国部分地区充电网络通讯领域事实上的开放标准协议,有50多个国家的充电网络运营商和服务提供商依靠OCPP管理成千上万个充电站。
图1 两个版本的对比
在OCPP中,CS作为电动汽车充电的物理系统,一个CS 可以有一个或者多个EVSE(电动汽车供应设备)。在协议里面,电动汽车被认为是充电站的一部分,在同一时间,可以为一辆电动汽车提供能源。图2 中的连接器就是通常所说的能在CS 上独立操作和管理的电源插座,简言之,就是对应于单个物理连接器。在某些情况下,电动汽车可能有多个物理插座类型和连接器,以方便不同类型的车辆(例如四轮电动汽车和电动摩托车),这个设置被称为三层模型,如图2 所示。
图2 三层系统模型
基于通讯目的的充电基础设施并不是强制性地加到物理硬件设备上,例如,EVSE 可能会被集成到一个CS 上面,这样看起来只是设备的一部分。
在OCPP 1.6 版 本中,OCPP 作 为CS 和CSMS 之 间通讯的一种协议。在进行OCPP 中特定功能实现时,要同充电站管理系统进行交互,进而验证所开发的功能是否遵循OCPP 协议的要求,同样验证其功能的实现是否达到标准。
采用Steve 版本的充电站管理系统,它完全是遵照OCPP 进行开发的,并且是比较稳定的一个系统。两端通过Web Socket 方式进行信息交互,CSMS 作为Web Socket 服务器端,CS 作 为Web Socket 客户端,其总体流程如图3 所示。
Web Socket 协议是一个标准的通信协议,用于服务器向客户发送内容,而不需要客户要求的标准通信协议;在克服请求超时问题方面,也发挥了最重要的作用,例如,它允许消息来回传递,同时保持连接持续开放。
Web Socket 协议是基于HTML5 提供的一种在单个TCP 连接上进行全双工通信的协议,该协议本质上为通信双方提供了一个基于TCP 连接的双向通道,所以能够高效地在双向通道中实时互相发送信息。如图3 所示,在搭建Steve 服务器时,所用到的技术主要利用数据库管理系统MySQL 进行数据的访问和管理,利用Apache-Maven、JDK 等工具进行环境运行维护。
农业植保是现代农业生产中的必然环节,但是传统的农业植保方式已经不能满足农业生产需求,而在小型无人机设备的使用下,能够对各区域进行规范化作业,弥补人工植保、机械植保的不足。同时,要想更好地展现无人机设备在农业植保中的地位,则需不断优化无人机结构、提高无人机质量、优化植保手段等,为农业生产创造有利条件。
图3 Steve 服务器搭建流程
搭建的环境最后要为服务器的完好运行服务。目前,对应于OCPP 1.6 版本的服务器的最稳定版本是Steve-3.4.3 版本,通过在git@github.com:RWTH-i5-IDSG/steve.git 上运用Git 工具来获取Steve-3.4.3 版本,该服务器是独立运行的,并不需要Java Servlet 容器或者Web服务器(例如Apache-Tomcat),故选用Steve 作为充电站管理系统服务器。对服务器进行数据库的配置、本地到服务器的IP 地址的设置等,根据终端运行成功后所生成的URL:http://127.0.0.1:8080/steve/manager/home在Google-Chrome 浏览器打开,进入到服务器的登录界面,证明服务器端能正常运行,为客户端功能的验证奠定了基础,如图4 所示。
图4 Web Socket 服务器端登录界面
在电动汽车司机可以启动或停止电动汽车充电之前,第一步要做的就是要对CS 进行授权操作,在OCPP 1.6中,支持用RFID 进行授权操作。当司机要开始或停止给电动汽车充电时,出示RFID 卡,然后CS 会将授权请求发送给CSMS 即充电站管理系统,收到请求后CSMS即会响应授权请求,该响应消息会反映idToken 是否被CSMS 接收,idToken 是一种用于授权的标识符。CS 将授权请求发送到CSMS 以请求授权,收到授权请求后,CSMS 会以“授权响应”进行响应,该响应消息指示idToken 是否被CSMS 接收,如图5 所示。
图5 CS 授权过程
该功能的目的就是使CS 能够在CSMS 上进行注册并提供正确的状态信息。在CS 启动后,首先向CSMS 发送启动通知请求,提供配置信息如供应商、版本等基本信息,在CSMS 收到来自CS 发送的请求后,CSMS 应响应指示是否接收CS。当CSMS 响应启动请求时,CS 将调整心跳间隔,根据间隔来同步它的内部时钟与提供的CSMS 的当前时间。CS 信息主要包括:序列号,供应商特定的设备标识符;型号,定义设备型号;供应商名称,标识供应商(不一定以唯一的方式);固件版本,其中包含CS 的固件版本等一些关于CS 的一些基本信息。详细信息如图6 所示。
图6 启动通知过程
该功能用例是通过CSMS 服务器生成的idToken 可以在CS 上启动充电会话,通过使用应用程序向CSMS 发送启动请求,CSMS 会确定一个idToken 并且可以生成一个唯一的ID 来用作充电的idToken,接着CSMS 会向CS 发送一个带有idToken 的启动充电请求,然后CS 会发送一个开始充电响应,接受充电请求。具体功能实现流程如图7 所示。
图7 CSMS 授权CS
该功能模块的目的是让CSMS 实时知道CS 的状态仍然是在连接中,CS 在一个可配置的时间间隔后发送一个心跳。CS 会向CSMS 发送一个心跳请求来确保CSMS 知道CS 仍然处于活动状态,CSMS 一旦收到心跳请求后,会响应一个心跳响应,响应CSMS 的当前时间,同样也可以使用该时间来同步其内部时钟。
对于使用OCPP-J 的CS 和CSMS 之间的连接,CSMS充当Web Socket 服务器,而充电点充当Web Socket 客户端。要启动Web Socket 连接,CS 需要一个URL 进行连接。此后,文中URL 称为“连接URL”,连接URL 特定于某个CS。充电点的连接URL 包含CS 标识(文中NO001),以便CSMS 知道Web Socket 连接属于哪个CS。首先由客户端向服务器端发送一个HTTP 请求,即Web Socket 连接起始于一个HTTP 请求,该请求头中会包含“Upgrade:Web Socket”,这表明浏览器端请求将会通过HTTP 协议升 级到Web Socket 协议。
使用OCPP-J 端点URL 为:
“ws://127.0.0.1:8080/steve/websocket/Central System Service/NO001”
下面是OCPP-J 连接握手打开HTTP 请求的状态代码:
Requestheader=GET/steve/websocket/CentralSystemService/NO001 HTTP/1.1
Upgrade:web socket
Connection:Upgrade
Sec-Web Socket-Protocol:ocpp1.6
Host:127.0.0.1:8080
Sec-Web Socket-Key:yyEwurPSLFnpKLI0z7uxww==
Sec-Web Socket-Version:13.
在此连接过程中,CS 的唯一标识为“NO001”,故请求的路径为:“/steve/websocket/CentralSystem Service/NO001”。
通过在终端上模拟RFID 对CS 进行授权,发送心跳以及充电等请求,在Ubuntu 终端上会显示发送成功的界面,直接能说明可以进行良好的通讯以及进行功能上的响应,如图8 所示。
图8 终端请求指令成功界面
启动通知功能是应用比较频繁的一个功能,在正常情况下,从终端发送一条启动通知请求后,通过CSMS的授权功能实现,其功能的实现是在服务器端进行CS标识符的锁定,如“NO001”,此标识符是唯一的,其在服务管理端成功授权的界面如图9 所示。
图9 服务器端界面
在终端运行经过编译后的心跳功能可执行文件,CSMS 会收到心跳请求,心跳功能的主要目的就是让CSMS 知道CS 一直处于活动状态,执行充电请求时,后台管理系统同样会响应,通过搭建的Steve 服务器,结合OCPP 中所涉及的功能块的工作原理,最后成功地实现了功能,并且可以很好地进行工作。图10 展示了后台管理系统的响应信息。
图10 服务端响应界面
本文基于OCPP 通讯协议,在Linux 下的Ubuntu 操作系统上运用各种项目构建工具和技术分别搭建了充电站客户端运行框架和后台管理系统框架,对所涉及的授权充电、启动通知、心跳等特定功能进行了研究和实现。最后结合Steve 服务器进行通讯,验证了两端能进行可靠、实时、快速地通讯,表明OCPP 协议作为开放性的通讯协议能正常地进行通讯,本文所提通讯框架成功运用了OCPP 协议,并为未来充电桩通讯协议应用OCPP 提供了一种可行性的通讯框架。