基于VBA的PLC程序批量配置
2019-09-24苗建科郭丹洋孟科周天鸣
苗建科 郭丹洋 孟科 周天鸣
摘 要:传统的PLC程序配置方法效率低,且容易出错,为调试增加了不小的工作量。文章提供一种基于VBA的PLC程序批量配置方法,可降低程序配置的错误率,提高程序配置效率,为工程节省人工和时间成本。文章介绍了PLC程序配置输入数据整理、PLC导出文件格式和内容分析、VBA批量配置PLC程序代码实现、PLC导入配置文件等步骤及方法。
关键词:VBA;PLC;程序配置;xbd文件;BAS系统
中图分类号:TP393 文献标志码:A 文章编号:2095-2945(2019)25-0085-02
Abstract: The traditional PLC program configuration method is inefficient and error-prone, which increases the workload of debugging. This paper provides a batch configuration method of PLC program based on VBA, which can reduce the error rate of program configuration, improve the efficiency of program configuration, and save labor and time cost for engineering. This paper introduces the steps and methods of PLC program configuration input data collation, PLC export file format and content analysis, VBA batch configuration PLC program code implementation, and PLC import configuration file.
Keywords: VBA; PLC; program configuration; xbd file; BAS system
1 问题及方法提出
PLC全称可编程逻辑控制器,在现代工业控制领域有广泛应用,应用场景种类繁多,但总体可概括为单机运动控制和数据采集两大类。在数据采集应用中,PLC介于上层监控系统和现场单机设备之间,不需关心单机设备运行的环境、工艺等条件,只需和单机设备之间定义好数据接口即可,PLC只负责通过接口收集数据和下发命令,程序较容易实现标准化。
在一些工程中将PLC用于系统数据采集,如地铁的BAS系统。在地铁线路中每个车站均设置一套BAS系统,每个车站BAS系统PLC程序框架相同,监控的设备种类也相同,但由于各车站被监控设备数量的差异,PLC数据点位配置均不相同,而且数量巨大,这给BAS系统的程序配置带来了不小的工作量。而且人工配置大量数据时不可避免的会存在一些配置错误,这也给工程调试带来了不小的额外工作量。
VBA主要用于Windows应用程序的功能扩展,如在Excel中可用VBA批量处理数据。PLC应用于数据采集时,监控设备可实现标准化,对同类设备的接口是相同的,对同类设备的逻辑处理可封装成功能块。在这样的应用场景下程序配置只需调用相应的设备功能块,为设备功能塊输入、输出引脚配置相应变量即可,无复杂的逻辑关系。无论是梯形图编程还是功能块图编程,程序文件均具有极强的规律性,这为使用VBA批量配置PLC程序提供了可能。本文为数据采集应用场景下PLC程序配置提供一种基于VBA代码批量配置方法,降低配置错误率,提高配置效率,为工程节省用人成本和时间。
2 使用VBA批量配置PLC程序
PLC程序配置首先应具备输入文件,输入文件即配置PLC程序的点表文件,点表包含了被监控设备的状态、命令在PLC内对应的变量、地址信息,根据点表可配置出PLC的程序段,即目标文件,这是一般的PLC程序配置方法。采用VBA批量配置PLC程序的步骤是运行VBA语言编辑的批量程序配置工具,提取输入文件信息,生成输出文件。输出文件即程序源文件,将程序源文件导入到PLC程序,就完成了PLC目标文件的配置。
2.1 输入文件的整理
在工程实施过程中点表文件的整理并非一蹴而就,其整理过程也需根据工程进度分为几个步骤,而在各个步骤中又有相应的文件产生,点表文件的整理需依据各步骤中产生的文件,因此在整理出点表文件之前产生的所有文件均可归属于输入文件的范畴。
例如在地铁BAS系统中,点表文件的整理需依据设备一览表和设备类表,因此BAS系统的输入文件包括设备类表、设备一览表和设备点表。设备类表包含各类设备的监控点位信息,设备一览表罗列了所有BAS监控设备的基本信息,设备一览表结合设备类表即可整理输出设备点表。Excel软件内嵌了VBA功能,本文提到的各种输入点表均是使用Excel整理,当然VBA代码也包含在Excel文件中。
在设计联络阶段,以会议形式确定BAS系统各个细节的技术要求,其中包括BAS系统与被监控设备的接口方式及监控内容。BAS供货单位可以根据会议确定的内容整理出BAS监控设备类表。设备类表用于定义各类设备被监控点位信息,设备类表中至少应包含设备类型名称、类型编号、点位类型、点位描述等字段信息,还需包含各类设备在PLC中的地址分配区域信息,以便在生成PLC程序时可以自动为设备分配PLC地址。
在工程调试前,设计院向BAS供货单位提供BAS施工图纸,BAS供货单位可以根据设计院提供的BAS施工图整理输出BAS监控设备一览表。设备一览表中包含所有BAS监控设备的基本信息,如设备类型、设备名称、设备编号等。
整理出设备类表和设备一览表后,两表结合即可整理输出设备点表,设备点表既包含设备一览表中的每一个设备信息,也包含了每个设备在设备类表中的监控点位信息。除此之外设备点表中还包含了设备点位对应的PLC变量信息,这部分内容对于PLC程序配置至关重要。
2.2 PLC导出文件格式分析
用VBA代码批量配置PLC程序,其目的就是生成可导入PLC程序的程序配置文件,然后将生成的配置文件导入到PLC程序完成PLC程序配置。但在用VBA代码生成配置文件前,首先得了解要生成文件所包含的内容及格式,以便用代码实现文件生成。
在常用的PLC当中,导出的原文件格式不尽相同,如西门子PLC编程软件STEP 7导出源文件为AWL格式,施耐德PLC编程软件Unity Pro导出源文件为xbd格式。无论是AWL文件还是xbd文件,在公开渠道获取其格式定义的相关资料数量有限。本文以施耐德PLC编程软件Unity Pro为例,以反推法分析得到xbd文件格式及包含内容。
首先手动配置一个PLC程序段,导出得到一个xbd格式的程序配置源文件,以文本方式打开xbd文件,即可对文件格式和内容进行分析。分析过程需结合程序配置,不同的程序分析过程会存在一些差别,本文不再描述,直接给出分析结果。
通过分析验证,xbd文件包含软件信息、编码信息、项目信息、程序段信息和设备功能块配置信息,此部分内容是用VBA代码批量配置的主要内容。除此之外,从PLC导出的xbd文件还包含了在本程序段用到的变量定义及功能块定义,此部分内容在PLC程序中已经存在,所以用VBA生成的配置文件可不包含这些内容。
2.3 VBA代码编写
VBA内嵌于各种Windows应用程序中,具有强大的文件处理能力,文件及文件中的元素均是VBA可以操作的对象。本文讨论的基于VBA批量配置PLC程序的方法主要使用到了窗体调用、打开文件、创建文件、读取文件、写入文件、关闭文件等功能。
程序按照一定的步骤执行即可实现批量配置PLC程序的目的,包括选择输入文件、提取输入文件信息、创建输出文件、写输出文件、输出配置状态信息、关闭文件等过程。首先,创建一个窗体作为配置的主界面,实现选择输入文件、显示配置状态信息、执行功能操作等功能。然后点击配置功能按钮,开始执行配置代码,这个过程包括提取输入文件信息、创建输出文件、写输出文件等功能。同时在配置代码执行过程中的关键节点和一些故障会在主界面进行显示。最后,保存输出文件,关闭相关文件,配置结束。配置代码执行流程如图1所示。
2.4 PLC导入源文件
通过上述步骤,最终得到可以导入到PLC的xbd文件,将文件导入到PLC程序,检查生成文件的配置,确认无误,编译生成最终的程序文件。
3 结束语
本文论述的基于VBA批量配置PLC程序即是一个工程数据从提取到应用的一个典型案例,在本案例中VBA的应用不只是在PLC程序配置这个环节,在整个过程的各个环节均有应用,如提取CAD数据、处理Excel表格数据、配置PLC变量、配置上位机组态软件变量等,使整改过程高效、准确。
参考文献:
[1]周作伟,马万太,苏朝阳.基于XML语言的软PLC控制平台研究[J].机械制造与自动化,2019(03):112-114+124.
[2]付宏刚.PLC应用过程控制研究[J].化工设计通讯,2019,45(04):82-83.
[3]陳优明.Excel在PLC程序开发方面的应用[J].机电工程技术,2016,45(03):93-96.