PLC控制汽车充电模块思路

(整期优先)网络出版时间:2023-04-17
/ 3

PLC控制汽车充电模块思路

余顺利

杜尔涂装系统工程(上海)有限公司  上海市  201799

引言西门子PLC在工控行业中独占鳌头,其中CPU1517F热门工控产品.充电模块选用市场中比较流行的某公司的HSDC7000系列产品。该模块能输出可调的50Vdc750Vdc0Adc50Adc.通过CAN总线实现对模块的操作,并实现控制模块的输出电压电流。

1.项目控制原理

项目用西门子主流编程软件TIA V17编写对充电模块的控制逻辑。由于充电模块只有CAN总线通讯,西门子目前主流网络总线是PROFINET.为了实现PROFINET总线对CAN总线之间的数据传输,需要用到HMS 公司旗下的ANYBUS CAN AB7328产品。CAN Controller Area Network 的缩写(以下称为 CAN)是ISO国际标准化的串行通信协议,其广泛使用于各种行业的自动化设备中,如变频器、人机界面、传感器、马达等。

1.1充电模块介绍

充电模块主要包括:浪涌保护、EMI滤波、交流过压保护、APFC电路、逆变电路、驱动电路、整流回路、L+C滤波、放电回路、控制回路、检测回路、供电系统。其输出特性如图1所示:

                               图1: 输出电压电流关系曲线

1.1.1模块图

模块背面接线图包括三相交流的输入(L1,L2,L3)和直流直流输出(V+,V-)以及CAN接线端子(CAN+,CAN-),如图2所示。

模块正面有CAN拨码开关,拨码选择出不同值对应模块不同地址,方便对不同模块进行控制和数据传输;模块中有3个LED指示灯,不同的颜色表示模块不同的工作状态,如图2所示。

2: 模块图

1.1.2模块协议介绍

CAN协议中要提到的就是帧的种类,通常分为标准格式和扩展格式。标准格式有 11 个位的标识符,扩展格式有 29 个位的标识符,如表1所示。

由于充电模块协议遵循的是扩展格式的帧类型,如图4所示。项目在对模块进行收发控制指令时

28

27

26

25

24

23

22

21

20

19

18

17

16

15

14

13

12

11

10

9

8

7

6

5

4

3

2

1

0

错误码(3bits)

设备号(4 bits)

命令号(6 bits)

目的地址(8 bits)

源地址(8 bits)

1: 帧结构

通过索引不同的设备号,命令号,目的地址和源地址给出不同的数据帧,进而去索引相关指令中相互传输的数据。从而实现控制模块开关机并设定模块输出电压和电流值。例如当PLC给模块发出02 81 3F F0 00 00 00 00 00 00 00 00时意味着读取系统信息;此时模块将会给主站回复02 81 F0 3F 43 FA 00 00 42 80 00 00,即模块回复系统电压500V,总电流 5A。其中F0在主站PLC发送指令时是目的地址,而在接受模块回复信息时是源地址,3F是指系统中所有的模块,如果是单个模块则直接使用单个模块中拨码地址值即可,例如当PLC给模块发出02 86 01 F0 00 00 00 00 00 00 00 00时意味着读取模块地址为01的信息;此时模块0将会给主站回复02 86 F0 01 0F B4 0F A5 0F A0 00 00意思是模块1的三相中AB 402V BC 400.5V CA 400V的输入电压。常用的控制指令如表2所示。

命名号

功能

数据区域

0x09

模块 N 电压(mV)

模块 N 电流(mA)

0x1A

开关机

0x1C

模块电压(mV)

模块电流(mA)

2: 充电模块常用指令

1.2HMS ANYBUS AB7328介绍

1.2.1产品概述

AB7328基于CAN的工业设备接到PROFINET-IRT控制系统,无需对设备做任意更改。仅需要连接、配置、就可成功,CAN网关是协议转换器网关,该网关作为智能协议转换器,将CAN数据以容易处理的I/O数据展示到PLC/控制器中。AB7328是细长的独立网关,DIN导轨安装,需要24V电源。如图3所示。

图3: CAN网关AB7328

1.2.2配置软件

AB7328能实现PLC与其通讯,主要依靠CAN总线配置参数工具软件,该软件配置是使用包含在产品内的,易于使用的,基于Windows™ACM (Anybus Configuration Manager)。其接口可选的RS-232/422/485接口,能够配置ASCII或自定义协议(请求/响应或生产者/消费者协议通过可视的帧创建接口)

1.2.3软件主要参数设置

1.进入软件主界面后新建项目

2.通讯设置选项参数配置:控制/状态字选择不使能;生命传输字列表选择不使能;计数选择不使能;错误事件选择不使能。

3.项目选项:填写上对本项目的描述,如名称,参数版本号,项目设计人以及项目描述。

4.网络配置选项:网络类型选择CAN总线;离线选择总线错误。

5.子网络选项:CAN波特率选择250Kbit/s;离线选择默认方式;CAN ID支持CAN 2.0A(11CAN ID)CAN 2.0B(29CAN ID)方式,这里选择CAN 2.0BSilence  Time(ms)为网关两次发送CAN 报文之间的最小间隔,选择默认的值0,表示不使能这项功能;清楚错误信息缓冲区选择不使能。

6.在子网络选项中右击鼠标选择添加分组,重新命名为组0,相应配置如图4所示:

1)在组上右击添加传输1,

  1. 在传输1下面添加生产者,并分配属性:添加生产者名称;离线选项选择清除数据;

更新模式选择周期;在远程传输请求选择不使能;更新周期时间选择10。生产者用于PLC向网关发送控制数据信息。PLC将模块功能指令帧代码发给网关,网关对指令帧代码做分析后修改模块中与其相对应数据区域值,实现对模块的控制和参数设定。

  1. 分别添加2个CAN指令帧代码并配上相应的数据域的长度和地址参数:
  • CAN帧1:0x29A01F0---设置模块1开机;数据长度8;数据地址0x200;转换字节选择不转换。
  • CAN帧2:0x29C01F0---设置模块1输出电压和电流值;数据长度8;数据地址0x208;转换字节选择不转换。

2)此时在组上右击添加传输2

  1. 在传输2下面添加生产者,并分配属性:添加生产者名称;离线选项选择清除数据;更新模式选择数据变化时;在远程传输请求选择不使能;更新周期时间选择10
  2. 添加1个CAN指令帧代码并配上两个为0双字常量和地址参数:
  • CAN帧:0x28901F0---读取模块1电压电流;数据地址0x0.

3)此时在组上右击添加传输3

  1. 在传输3下面添加消费者,并分配属性:添加消费者名称;离线选项选择清除数据;一致性检查选择不使能;离线时间选择0;接受触发字节选择不使能;传输状态字节选择不使能。消费者用于模块给PLC反馈信息。模块将自身数据信息传到网关的相应功能帧代码,PLC在发出请求读取指令帧代码后,网关发送与指令帧代码相对应的数据信息给PLC
  2. 添加1个CAN指令帧代码并配上相应的数据域的长度和地址参数:
  • CAN帧:0x289F001---模块1回复其当前的工作电压电流
  • 数据长度8;数据地址0x0;转换字节选择不转换。

7.检查所用到的地址是否重复

4: 网关配置软件参数设定

1.3西门子PLC编程软件

1.3.1软件名称

此次采用西门子最新的编程软件版本TIA V17版本,硬件采用CPU 1517F-3 PN/DP,打开TIA V17编程软件,新建PLC项目,命名为汽车测试模块。

1.3.2硬件组态配置

1.在项目视图左边的项目树中,双击添加新设备,在弹出窗口中选择控制器,在右边分项目中选中CPU 1517F-3 PN/DP,同时定义好CPU版本V2.9后点击确定即可。

2.设置好CPU的相关属性:

  • 添加CPU访问等级安全密码:Admin12345
  • 添加PROFINET网络,并设置网络IP地址192.168.0.1
  • 其余保持默认选项即可

3.添加网关到硬件组态中,并分配相关属性:

  • 设置设备名为CAN网关
  • 给CAN网关设备分配网络,名称为PN/IE-1
  • 设置IP地址192.168.0.10
  • 在CAN网关设备视图中分别拖入16字节的输出和8字节的输入,起始地址均从100开始

4.选中CPU,对硬件进行编译.

1.3.3PLC控制程序编程

1.建立和控制程序相关的IO符号变量,如表2所示:

  • PLC将所要控制模块的数据的存放地址变量,即硬件组态CAN网关模块的输出地址。
  • PLC将要读出模块的数据的存放地址变量,即硬件组态CAN网关模块的输入地址
  • 程序中用于数据转换的缓存变量

模块反馈电压值mV

默认变量表

DWord

%ID100

模块反馈电流值mA

默认变量表

DWord

%ID104

模块开机

默认变量表

DWord

%QD100

模块电压给定值mV

默认变量表

DWord

%QD108

模块电流给定值mA

默认变量表

DWord

%QD112

触发器

默认变量表

Bool

%M200.0

周期位

默认变量表

Bool

%M200.1

计数器

默认变量表

Int

%MW250

模块反馈电压值V缓存

默认变量表

DWord

%MD100

模块反馈电流值A缓存

默认变量表

DWord

%MD104

模块电压给定值V缓存

默认变量表

DWord

%MD108

模块电流给定值A缓存

默认变量表

DWord

%MD112

定时器1

默认变量表

Timer

%T1

模块开指令

默认变量表

Bool

%M800.0

表2: IO变量表

2.设计控制程序,如图5所示.

  • 采用周期性给出控制模块的指令和输出数据,利用程序中定时器,每隔100ms给网关发出一个指令,避免网关工作载荷过大。
  • 模块开机指令中,需要利用对PLC的缓存变量的在线值修改,同时需要发出不同的值给网关,以便实现对模块开机和关机的操作,通常是16进制的值,如16#00000000是开机,16#01000000是关机。
  • 对模块进行电压值给定时,需要利用对PLC的缓存变量的在线值修改,同时传入到网关相应的地址存储器中,以便实现对模块输出给定电压值。
  • 对模块进行电流值给定时,需要利用对PLC的缓存变量的在线值修改,同时传入到网关相应的地址存储器中,以便实现对模块输出给定电流值。
  • PLC给出模块的设定电压和电流或者读入模块的工作电压和电流时,读入的值分别是mV和mA,在程序中需要其值作除以1000的比率才能实现PLC在线监控的电压单位是V或者电流单位是A。

5: 设计程序

2仿真测试

2.1CAN网关配置测试

2.1.1CAN网关参数下载

1.将CAN网关配置软件打开。

2.在菜单选项中选择在线,选择有以太网连接方式,点击配置。

3.在刷新出来的IP表中,选择CAN网关IP地址栏,点击确认。

4.回到菜单栏中,选择在线中的连接。

5.选中项目名称,点击菜单选项在线里面的下载。

2.1.2CAN网关软件模块报文监控

在CAN网关监控中在快速工具栏中点击监控,可以看到模块实时的收发报文。

2.2PLC程序测试

2.2.1PLC程序下载

1.将CPU上电,给CPU和编程电脑分配IP地址,将电脑连上CPU所在的PROFINET网络。

2.TIA V17编程软件项目视图的项目树中,选中PLC,进行全部编译。

3.在项目树中,选择CUP鼠标右击选择下载硬件和软件。

4.给CAN网关分配设备名,检查网关是否正常连上CPU。

2.2.2PLC程序在线监控

1.在PLC程序编辑界面中快速工具栏中直接点击在线。

2.观察程序的运行状态。

3.在重新中直接选择缓存器,右键选择修改,可以实现对模块设定不同的电压和电流值。

3结语

该文章仅仅从理论上阐释了汽车充电模块是可以通过工业PLC来进行控制,如果在今后有机会看到某些地方建立了大型充电站,该思路可尝试在实际环境下运用。

参考文献

1CAN 总线百度百科:https://baike.baidu.com/item/CAN%E6%80%BB%E7%BA%BF/297754?fr=aladdin

2HMS公司官网:https://www.anybus.com