关键词:组态软件;嵌入式PLC技术;IEC61131-3;软PLC
1.引言
PLC(可编程控制器)在工业控制中有着广泛的应用,然而,目前市场上各公司的PLC都自成体系,其硬件接口和编程环境都互不兼容,即使在PLC中使用最多的梯形图语言编程上,各公司的语法结构、寻址方式等也并不完全相同。这对PLC技术的升级提升、推广使用造成了影响。随着IEC61131-3标准的推出,市场上出现了遵循该编程标准的工业控制产品,这些工控产品有着兼容的输入输出接口和符合IEC61131-3标准的编程环境。然而,现有的这些系统只是提供了控制策略编程(采用梯形图语言、IL指令语言等)部分的组态软件(编程环境),没有完善的监控组态的编程环境。市面上通用的组态软件又只是解决监控组态的问题,在关键的控制策略组态上没有很好的解决方案,仅仅采用纯粹的脚本编程方式作为控制功能的补充。因此,集成控制策略组态功能(符合IEC61131-3标准的软PLC)和监控画面组态功能的通用组态软件必然会成为主流发展方向。
在软PLC软件的基础上,设计具有监控组态功能的工控软件关键需要解决软PLC和监控组态软件模块之间的数据交换技术,也即监控组态数据源的驱动问题。本文提出解决这一问题的一种方法,在控制策略组态时,能够根据策略文件自动产生数据文件,数据包括功输入输出端口信息、控制回路的输出数据、报警数据及故障数据等。基于这个数据文件,采用符合标准的编程方法编写监控画面驱动功能块、报警功能块、数据记录功能块等监控功能。
2.软件体系结构
2.1 控制策略组态软件模块
所谓的组态就是指用直观(如梯形图语言)的编程方式,完成控制策略或监控策略程序的生成。控制策略组态软件是基于IEC61131-3标准的软PLC,它能够在传统PC平台上,用软件的方式实现标准硬件PLC的功能。它的体系结构如图1所示,包含控制策略编辑模块、调试模块、编译模块、连接模块、通信模块、运行虚拟机模块、数据驱动模块、I/O接口和设备驱动模块、仿真模块、项目管理模块以及其它的界面管理、帮助信息等组件。
控制策略编辑/调试组件是组态软件中最基本的功能模块,它基于IEC61131-3标准为使用者提供标准的编程环境,主要有LD、IL、ST等6种编程语言,其中LD语言采用梯形图的编程方式完成控制策略的生成。控制策略编辑模块的输入信息来自用户的控制应用编写,并最终生成专有格式的中间文件给编译模块。编译与连接模块完成用户编写的程序代码的语法及语义检查,最终生成独立于运行环境的目标代码。通讯模块在编辑环境与运行环境之间建立信息通道,完成代码下载、操作命令和硬件配置参数下达以及运行状态变量读取等功能。运行虚拟机是整个组态软件的核心部分,它独立于控制组态编辑环境,其作用是执行编译连接产生的目标代码,完成相应的控制功能。在运行虚拟机执行目标代码的过程中,不断地从I/O模块读取信息、运算及处理信息以及从I/O模块输出信息,从而实现控制功能。仿真模块可以仿真接口硬件设备,从而在没有硬件的情况下仿真运行用户编制的程序,以便缩短开发周期。项目管理模块的功能是保存用户编制的控制策略文件、打印文件以及权限管理等。
图1 控制策略组态软件体系结构
2.2 监控组态软件模块
在控制系统的控制层、监控层、管理层这三个层面中,监控层不但起到现场的实时监测控制,还起到信息的上传下达作用。监控组态是指基于控制策略,根据控制流程和控制流程中的中间变量,用直观的编程方式(如动画、图形组合)完成相应的监控画面、报警信息以及历史数据存档等功能。监控组态软件是实现监控组态功能的软件编辑环境,它为用户提供灵活多样的组态方式和良好的用户开发界面;其内置的软件模块可以方便的实现监控层的各种功能,并能向管理层提供决策数据信息。监控组态软件的基本体系结构如图2所示,主要由数据表、图形组态模块、实时数据库组态模块、项目管理模块以及图形运行组件、数据库运行组件等部分组成。
图形组态模块、实时数据库组态模块与项目管理模块组成监控组态软件的开发环境,图形运行组件以及数据库运行组件组成监控组态软件的运行环境。组态后生成图形的数据驱动来源于控制策略组态过程中自动生成的数据表,数据表的生成是无缝集成控制策略组态和监控组态的关键技术。
图形组态模块提供操作界面和流程画面监控生成功能,是监控组态软件中的主要编程工具。它依照操作系统的图形标准,采用面向对象的图形技术,提供强大的绘图编辑、动画连接和脚本工具。在动画连接的过程中,从数据表中选择驱动动画的数据源,通过一系列的用户数据文件,最终生成图形目标应用系统供图形运行环境运行时使用。实时数据库组态模块是建立实时数据库的组态工具,可以定义实时数据库的结构、数据连接、数据类型及相关的各种参数,其数据的主要来源为控制策略生成时自动产生的数据表。
图2 监控组态软件体系结构
2.3 控制策略组态和监控组态间的数据驱动
在软PLC软件的基础上,设计具有监控组态功能的软件关键需要解决软PLC和监控组态软件模块之间的数据交换和消息传递。本文提出解决这一问题的一种方法,在控制策略组态时,能够根据策略文件自动产生数据文件,数据包括功输入输出端口信息、控制回路的输出数据、报警数据及故障数据等。基于这个数据文件,采用符合标准的编程方法编写监控画面驱动功能块、报警功能块、数据记录功能块等监控功能。
控制策略组态软件与监控组态软件的集成,关键在于控制策略组态与监控画面组态之间的数据驱动技术,也即监控组态数据源的生成问题。在控制策略组态的过程中,由梯形图语言或其它语言编写的控制策略文件可统一转换成指令表。数据驱动模块的作用就在于可动态扫描指令表和I/O配置表,获取所用的输入数据区、输出数据区、中间变量存储区的地址信息,从而生成动态数据表文件。在监控组态时,图形组态的数据源和实时数据库组态的数据源就可以统一从动态数据表中获取。其体系结构如图3所示。
动态数据表实际上是一个数据网络表,记录了存储器地址到输入输出端口的映射信息。在图形组态过程中,通过在数据源属性对话框里编辑驱动动画的表达式,而涉及的变量则来自动态数据网表。在控制策略目标代码执行的过程中,随着输入刷新和输出刷新,数据区的数据不断的变化,则监控画面也在数据的驱动下作相应的动作,实时数据库同时记录下不同时间的输入输出数值。
图3 控制策略组态与监控组态间的数据驱动
3.结束语
采用本文描述的结构,把控制策略组态功能和监控组态功能集成在一个组态软件里面,形成基于IEC61131-3标准的新型软PLC。采用这个技术开发的工控组态软件,不但具有直观的控制策略组态功能(采用梯形图语言和指令表语言两种方式),而且具有直观的监控组态功能,可以容易的实现动态画面显示,报警以及实时数据记录。目前只是实现了基本的顺序控制功能和画面监控功能,但在这个体系结构下,能够最终扩展成成熟的工控组态软件产品。
参考文献
[1] karl-heinz, John. Michael, Tiegelkamp. IEC61131-3 工业自动化程序系统的编制[M]. 北京:中国机电一体化技术应用协会秘书处翻译出版,2003,71~223.
[2] Cecilio Blanco, Miguel A. Perez, Juan C. Alvarez, Juan Carlos Campo and Francisco J. Ferrero, An Intrinsic Safety PLC with a Graphic Programming Environment[A], Industrial Electronics Society, 1998. IECON ‘98. Proceedings of the 24th Annual Conference of the IEEE , Volume: 3 , 31 Aug.-4 Sept. 1998, Pages:1649 - 1652 vol.3.
[3] Jan Thieme, Hans-Michael Hanisch, Model-based generation of modular PLC code using IEC61131 function blocks[A], Industrial Electronics, 2002. ISIE 2002. Proceedings of the 2002 IEEE International Symposium on, Volume: 1, 8-11 July 2002, pages: 199 - 204 vol.1.
[4] Aspern, Jens, SPS software development with International Electronical Commission 61131[M]. Huethig publishing house Heidelberg, 2000.
[5] 迟君平,王斌,李业友.模块化编程方法在PLC程序开发中的应用[J].微计算机信息,2005,6: 26-27