基于LabVIEW和CAN总线的新能源汽车充电站监控系统设计*
2023-03-07菅晓峰常东山张丽丽
菅晓峰 常东山 张丽丽
(1.内蒙古电力(集团)有限责任公司 薛家湾供电公司,内蒙古 鄂尔多斯 017000; 2.内蒙古北方重工业集团有限公司,内蒙古 包头014030)
发展新能源汽车是实现新能源革命和中国碳中和的基础,全球范围内新能源汽车发展速度呈现逐步加快的趋势。[1]2003年前 7个月我国新能源汽车产销累计分别完成 459.1万辆和 452.6万辆,同比分别增长40.0%和41.7%。[2]随着新能源汽车规模的不断扩大,充电站和充电桩的数量也大幅增长。截至2023年8 月,中国电动汽车充电基础设施促进联盟内成员单位总计上报公共充电桩 227.2 万台,其中直流充电桩 96.3 万台、交流充电桩 130.7 万台。从2022年9月到2023年8月,月均新增公共充电桩约5.4万台。其中 2023年8月同比增长39.9%。[3]如此众多的充电桩必须配备高效完善的监控系统,才能保证充电站的安全高效运行,同时,监控系统采集的大量充电桩运行数据,可为后期充电桩的技术改进、充电站的布局等提供数据支撑。
CAN总线具有可靠性强、实时性好、通信速率快、通信服务简便等特点而广泛应用于汽车控制系统。[4]因此本系统采用CAN总线实现数据传输,将各充电桩的数据通过CAN接口输到CAN总线上,同时可方便的和汽车控制系统组网通信,实现汽车和充电桩间的数据交互。系统监控软件采用LabVIEW软件开发,具有操作方便、显示直观、工作稳定可靠等特点。
1 充电站监控系统总体设计方案
充电站是指由三台及以上充电设备(交流充电桩或充电机)组成,提供电动汽车能量补给服务,并能够对充电设备、动力蓄电池状态进行监控的场所。[5]因此,通常一个充电站有多个充电桩需要监控,系统总体结构如图 1,主要由监控上位机、充电桩数据采集控制器、CAN转USB接口及CAN通讯总线构成。监控上位机通过USB转CAN模块USB-2E-U连接到CAN通讯网络,软件采用LabVIEW编程实现,完成对多台充电桩数据采集控制器的监控管理,主要涉及工作参数设置、工作状态的监控等工作。数据采集控制器采集充电桩工作时的电压、电流、温度、充电时间等参数,并通过CAN接口将所采数据发送到监控上位机。系统中各数据采集控制器相互独立运行,其中某个数据采集控制器产生故障不会影响到整个系统的正常工作。
图1 充电站监控系统总体结构图
2 充电桩数据采集控制器设计
充电桩数据采集控制器整体结构如图2所示,控制器核心采用32 位微处理器STM32实现,功能模块主要包括温度信号采集模块、电压、电流信号采集模块、绝缘检测模块、报警信号输出模块、CAN通信接口和Modbus TCP/IP通信接口。控制器采集充电桩工作过程中的电压、电流和温度信号,并将其和设定值比较,如超出正常工作范围则报警提示。同时对充电桩的绝缘信息进行采集,如不满足设定要求进行报警提示。控制器将采集到的信号通过CAN接口发送到监控上位机。
CAN通信接口由CAN控制器和CAN收发器构成,CAN控制器由STM32单片机内部的bxCAN控制器实现,CAN收发器选用带隔离的高速CAN收发器CTM1050D,其主要功能是将CAN控制器的逻辑电平转换为CAN总线的差分电平,具有隔离功能及ESD 保护作用;电磁抗干扰性极高;无需外加元件可直接使用,提高了CAN 总线的稳定性和可靠性。[6]
图2 充电桩数据采集控制器结构图
3 监控系统软件设计
3.1 CAN通信协议设计
CAN总线是一种有效支持分布式控制或实时控制的串行通信网络,它以报文为单位进行数据信息的交换。其中报文标识符(ID)描述了数据含义及报文优先权,ID值越小对应的报文优先级越高。在CAN2.0B协议中帧格式分为标准帧及扩展帧,标准帧格式有11位的标识符(ID) ,扩展帧格式有29位的标识符。[7]本系统采用11位的标识符(ID)格式,系统中将11位标识符划分为3个域,分别代表优先级、参数意义和设备ID号,定义如表1 所示。
表中各部分意义如下:
(1)P:优先级,由3 位组成,分 8 级, 0为最高级, 8为最低级;
(2)PS:参数意义,共4位,如0010代表PID参数设置命令;
(3)ID:设备编号,共4位,可表示15台振动控制器,其中,1111代表全局命令,所有控制器都接收。
CAN协议规定报文ID号越小报文优先级越高,因此本监控系统根据需要将报文设计为4级优先级,报警报文优先级为0、参数设置报文优先级为1、状态数据报文优先级为2,优先级为3的报文信息保留备用;每个优先级下根据参数意义不同可设置多种报文,根据报文发送频率不同又分为触发性报文和周期性报文。如表2所示,为充电桩ID为1的控制器收发的部分报文格式,其中表中未列出ID号的报文可作为将来扩展用。
表2 充电桩ID=1控制器响应报文
3.2 软件整体架构
监控上位机软件采用美国NI公司的LabVIEW图形化编程软件实现。它因具有扩展性强、图形化的编程环境、开发时间少等特点而广泛应用于信号处理和监控系统。本文利用LabVIEW软件进行CAN网络通信和监控界面的开发。
基于LabVIEW设计的监控软件主要完成以下两方面工作:一方面接收充电桩数据采集控制器发来的CAN报文,实时监控充电桩数据采集控制器的工作状态,以保证每台充电桩数据采集控制器都在监控系统的监控下;另一方面根据用户操作发送控制命令,实现对充电桩数据采集控制器的控制操作,同时提供良好的人机交互界面。因此为了提高程序运行效率,软件架构采用多线程处理方式,即发送循环/接收循环并行模式。在发送循环里采用事件结构完成对用户操作的响应,实现对CAN模块的初始化、启动CAN收发等功能,同时将用户操作命令组织成完整的CAN报文,并通过发送模块发送到CAN总线上;如图3所示为1号充电桩“启动”命令的发送程序。接收循环每隔100ms读取一次CAN接口卡缓冲区的数据,并根据接收到数据的ID标识符进行数据解析,进而进入相应的数据处理程序,将解析后的各充电桩数据同步显示到对应的界面上,如图4所示为1号充电桩电压、电流、温度数据接收程序。在界面上可以直观看到各充电桩工作状态数据,如果发生了报警信息,监控系统会以声光报警的方式提醒操作者。
3.3 CAN通讯编程实现
本文所采用的USB-2E-U CAN接口卡提供了标准动态接口函数库usbcan_e_64.dll,在LabVIEW中通过Call LibraryFunction 节点调用动态链接库中的API函数即可实现对CAN接口卡的各种操作。CAN接口卡库函数的调用流程如图5所示,首先打开CAN接口卡设备,如打开成功即可初始化CAN通道,初始化完成后启动CAN收发;启动收发后就可通过调用发送CAN报文函数VCI_Transmit和接收CAN报文函数VCI_Receive实现数据的收发;比如接收函数VCI_Receive的调用过程如图6所示,其中输入的参数有设备类型号、设备索引号、CAN通道号、接收帧簇数组(VCI_CAN_OBJ_R)及大小200、接收等待时间(100ms),输出数据为实际接收到的帧数及接收到的CAN报文,其他函数的调用方法类似。本系统中设置CAN通信的波特率为500kbps,滤波方式设置为全部接收。
图3 CAN发送报文框图程序
图4 CAN报文接收框图程序
图5 CAN接口库函数调用流程图
图6 CAN接收函数VCI_Receive调用程序框图1
4 系统试验结果
系统设计完成后进行了实际测试,如图7所示为1号充电桩监控界面,画面显示了该充电桩数据和工作状态。通过图中选项卡可切换到其他充电桩数据采集监控画面或系统参数设置界面。从实际测试结果可以看出,该监控系统界面友好、参数修改方便、运行平稳。
5 结论
本文介绍了一种基于LabVIEW和CAN总线的充电站数据采集监控系统,该系统可实现充电桩数据采集控制及系统工作状态的监控。系统进行了试验测试,结果表明该系统性能稳定可靠、界面友好,操作简便、扩展性强且成本低,具有很好的推广价值。
图7 系统总体监控界面