杜尔涂装系统工程(上海)有限公司 上海市 201799
引言西门子PLC在工控行业中独占鳌头,其中CPU1517F热门工控产品.充电模块选用市场中比较流行的某公司的HSDC7000系列产品。该模块能输出可调的50Vdc~750Vdc和0Adc~50Adc.通过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(11位CAN ID)和CAN 2.0B(29位CAN ID)方式,这里选择CAN 2.0B;Silence Time(ms)为网关两次发送CAN 报文之间的最小间隔,选择默认的值0,表示不使能这项功能;清楚错误信息缓冲区选择不使能。
6.在子网络选项中右击鼠标选择添加分组,重新命名为组0,相应配置如图4所示:
1)在组上右击添加传输1,
更新模式选择周期;在远程传输请求选择不使能;更新周期时间选择10。生产者用于PLC向网关发送控制数据信息。PLC将模块功能指令帧代码发给网关,网关对指令帧代码做分析后修改模块中与其相对应数据区域值,实现对模块的控制和参数设定。
2)此时在组上右击添加传输2,
3)此时在组上右击添加传输3,
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的相关属性:
3.添加网关到硬件组态中,并分配相关属性:
4.选中CPU,对硬件进行编译.
1.3.3PLC控制程序编程
1.建立和控制程序相关的IO符号变量,如表2所示:
模块反馈电压值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所示.
图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来进行控制,如果在今后有机会看到某些地方建立了大型充电站,该思路可尝试在实际环境下运用。
参考文献
【1】CAN 总线百度百科:https://baike.baidu.com/item/CAN%E6%80%BB%E7%BA%BF/297754?fr=aladdin
【2】HMS公司官网:https://www.anybus.com