交流充电桩实践篇之软件设计

交流充电桩实践篇之软件设计

一、前言

在上篇博文《交流充电桩实践篇之硬件设计》中已经介绍了新国标交流充电桩硬件设计的相关原理,相信各位看了以后对于新国标交流充电桩的硬件组成有了比较清晰的了解,本篇博文将介绍如何在该硬件平台上进行交流充电桩的软件开发,从而实现交流充电桩的原型搭建。关于软件设计这部分将主要围绕功能需求分析、程序流程以及功能验证等方面进行介绍,具体设计细节将不再详细叙述。

二、功能需求

在进行软件设计之前得先明确好具体的功能需求,交流充电桩的最基本功能便是按照新国标的要求实现充电流程的控制,在之前的博文《交流充电桩新国标深入浅出》中已经关于这部分内容进行了详细叙述。 关于整个充电流程如下图所示:

                         图 2.1 交流充电桩的充电流程

在整个充电过程中必须满足以下的状态转移图,后续进行软件设计必须按照下图进行状态机的设计。

                                                                                    图 2.2 交流充电桩状态转移图

因此,根据新国标的要求,我们的软件设计需要实现一下功能:

  • 插头和插座连接状态的检测,通过检测 CP 点的电压进行判断。
  • 根据图 2 的状态转移图实现状态机
  • 充电系统的启动,当满足充电条件的要求时打开接触器
  • 充电系统的结束,当满足充电结束条件时关闭接触器

 

除此之外,为了实现通过 APP 进行控制,还必须实现联网的功能以及消息接口的定义和消息处理,此外还需要考虑网络掉线时的处理。因此,关于网络部分的功能可以归纳为以下几点:

  • 实现网络通信,底层采用以太网进行通信,应用层采用 Socket 进行消息收发。
  • 跟服务端定义好消息接口,包括开启充电、结束充电、获取充电状态、状态切换的推送等等。
  • 实现消息的解析和响应,对服务端发送过来的消息进行解析以及响应。
  • 网络掉线的处理,使用心跳包机制进行网络掉线的检测,当检测到网络掉线时会尝试重连并且根据充电状态进行相应处理。

三、程序流程图

接下来我们按照之前提炼好的功能需求进行程序流程图的设计,程序流程图可以帮助我们理清好程序思路,让我们更清晰地了解程序运行的流程,设计好了程序流程图以后我们进行代码实现将事半功倍。

由于新国标充电桩中对于控制引导电路部分的时序有要求,为了满足时序要求,我们将使用操作系统进行开发,根据我们需要实现的功能总共划分为了四个任务,每个任务都独立执行相应的功能。每个任务的作用如下:

  • 任务一,每秒执行一次,主要功能是维护定时器,触发跟定时器相关的事件。
  • 任务二,每 50 ms 执行一次,主要处理网络消息的收发
  • 任务三,每 20 ms 执行一次,主要进行充电流程的控制,包括连接状态检测、状态转换、电表参数检测及异常处理。
  • 任务四,空闲任务,处理一些其它优先级不高的任务

 

以上任务中,由于任务三对于时序的要求较高,因此其优先级也最高,任务四为空闲任务,优先级最低,任务二和任务三的优先级居中。

下面将介绍各个任务的程序流程图,如下图所示为主程序的流程图,主程序主要进行一些外设和变量的初始化,以及创建任务。

                                   图 3.1 主程序流程图

如图 3.2 所示为任务一的程序流程图,主要功能是维护定时器以及触发定时器相关的事件。

                                                       图 3.2 任务一的程序流程图

如图 3.3 所示为任务二的程序流程图,主要处理网络消息的收发。

                                                        图 3.3 任务二的程序流程图

如图 3.4 所示为任务三的程序流程图,主要功能为充电流程控制及异常处理。


                                                             图 3.4 任务三的程序流程图

如图 3.5 所示为任务四的程序流程图,主要处理一些优先级不高的任务

完成了程序流程图的设计后,我们便可以着手开始编写代码了,关于代码的具体实现以及调试在此就不叙述了。

四、功能测试

在完成了代码的编写和调试后,我们将开始对代码的功能进行验证,看看我们编写的代码是否能够符合新国标的要求,下面将举例说明如何对充电桩的充电时序进行测试

首先测试一个完成的充电流程(带 S2 开关),充电流程如下:

  • 模拟枪插入,CP 电压由 12V 变为 9V
  • 发送开始充电的命令,充电桩开始发 PWM,波形有 9V 恒定变为 9V PWM
  • 模拟电动车闭合 S2 开关,CP 由 9V PWM 变为 6V PWM
  • 模拟充电完成,S2 开关断开, CP 由 6V PWM 变为 9V PWM
  • 模拟枪拔出,CP 由 9V PWM 变为 12V PWM
  • 12V PWM 变为 12V

 

使用示波器检测 CP 点的电压,抓到的波形如下图所示

                                                                                图 4.1 充电过程 CP 点的电压

从上图我们可以看到 CP 点的电压波形在整个充电过程中的变化是符合我们的要求的,通过抓波形的方法我们可以验证我们的功能实现是否正确。

上面的例子是对于充电流程的正确性进行判断,下面将列举一些有时序要求的状态切换,比如当 CP 从 9V PWM 切换到 6V PWM 时,新国标要求交流充电桩在 3S 内闭合交流回路,下图为该状态切换的实际波形。

                                                                         图 4.2 状态 2’ 到状态 3’ 的实际波形图

从上图可以看出当 CP 从状态 2’ 切换到状态 3’ 后总共经过 68 ms 左右便闭合交流回路,因此是满足时序要求的。

此外,新国标规定充电过程中当 CP 接地时需要在 100 ms 内断开交流回路,下图为实际测试的波形

                                                                                        图 4.3 CP 接地测试的波形

从上图可以看出在充电过程中,当 CP 接地时充电桩在 100 ms 内便断开交流输出,因此也是满足时序要求的。

通过以上方法,我们便可以对我们的交流充电桩的软件进行功能验证。

 

五、总结

在此,关于新国标交流充电桩的软件设计的介绍便到此为止,本篇博文主要为大家简要叙述了交流充电桩的软件开发流程,整个流程包括软件需求提取、程序流程图的设计、代码实现以及功能的测试。相信大家阅读以后对交流充电桩的软件设计流程有了初步的了解,对于这块感兴趣的也可以自己动手实践一下哦。下篇博文将为大家介绍关于充电桩的智能充电协议 OCPP,欢迎大家关注后续博文!

 

六、参考文献

(1)GB/T 18487.1-2015 《电动汽车传导充电系统 第1部分:通用要求》



★博文内容均由个人提供,与平台无关,如有违法或侵权,请与网站管理员联系。

★文明上网,请理性发言。内容一周内被举报5次,发文人进小黑屋喔~

评论