算法引擎与嵌入式策略组态软件设计

2012-09-19 13:24孟召营魏海坤
自动化仪表 2012年10期
关键词:配置文件组态引擎

孟召营 魏海坤

(东南大学自动化学院,江苏 南京 10096)

0 引言

组态软件是伴随分散控制系统(distributed control system,DCS)的出现而引入的[1]。策略组态软件[2-3]是指用直观的编程方式(如梯形图、功能块图等),完成控制策略或监控策略程序生成的软件,目前应用最多的是DCS系统和PLC系统[4]。随着嵌入式系统的快速发展及其在工业现场的广泛应用,传统的组态软件也逐渐和嵌入式系统结合起来[5-8]。

本文面向嵌入式策略组态软件,提出以下设想:①组态软件提供了许多经典的算法策略,同时用户可自定义算法策略;②组态生成算法策略文件,通过网络下载到嵌入式系统中;③嵌入式系统依靠算法引擎[9]调用算法策略,完成对工业现场的控制;④算法引擎方便移植,与硬件有关的驱动程序以动态库的形式加载。

1 算法引擎

1.1 概念和功能

算法引擎是完成嵌入式策略组态运行的一段核心代码,它为整个算法策略的运行提供了数据平台和通信导向功能。它主要用于完成以下功能:①在嵌入式策略组态运行过程中各算法模块的自动加载调用;②系统资源和用户资源的整合;③确定各算法模块的输入、输出以及各算法模块之间的通信等[10]。

算法引擎可分为算法管理器、策略运行器、算法库、数据访问接口模块这4个模块,其功能框图如图1所示。为完成算法引擎的设计,每个算法模块都会从配置文件中自动生成算法结构体、输入结构体和输出结构体,整个算法策略构成一个链表。算法引擎根据这三个结构体的内容,确定算法的库文件位置、算法的输入输出、算法的参数和扫描时间等,并在这些数据平台的基础上,调用系统资源完成策略组态的运行。

图1 算法引擎功能框图Fig.1 Functional block diagram of algorithm engine

算法管理器是用户解析和管理算法信息的工具,可解析和修改的算法信息包括输入信息、输出信息、参数信息、库函数入口地址等。通过算法管理器既可以在开始时对配置文件进行解析,也可以在运行时对参数值、设定值和中间量进行实时修改和调整。

策略运行器是算法引擎的核心部分,通过算法管理器对配置文件进行解析后,策略运行器获得各个算法模块的信息以及各模块之间的关联信息。通过构建策略运行链表,即可按照算法运行周期和算法间连线走向,依据有向无环图的顺序依次调用算法并实现策略运行。

算法库是系统已定义算法和用户自定义算法的集合,每个算法用一个动态链接库实现。系统已定义的算法是一些常用算法,如信号发生器、逻辑运算、算术运算等。用户自定义的算法通过算法管理器也可以加载到算法库中。用户通过系统提供的API接口函数,可访问算法的输入、输出、参数和中间量等,并在此基础上实现算法的功能,最后将代码编译成动态链接库即可。

数据访问接口模块策略运行不应是一个封闭运行的模块。由于一些表现层的应用,可能需要访问某些算法的输出或参数,因此算法引擎提供了一个遵守OPC规范[11]的接口,允许用户访问算法的实时参数和输入输出值,即引擎提供了开放的数据访问接口。

1.2 嵌入式算法引擎层

算法引擎相当于嵌入式系统的大脑和心脏,既分析解释命令,又提供动力调度系统的运行。本文将算法引擎的概念引入到嵌入式系统中,相当于在嵌入式系统的操作系统OS层上又提供了一个小的协作层。它既频繁使用操作系统提供的资源,对操作系统的资源进行有力的整合,进而又对上层应用(组态运行)进行分配和派发,完成系统的运行和操作响应。必要时还可以对嵌入式OS层进行精简,然后和算法引擎协作层密切配合,完成系统运作。

基于算法引擎的嵌入式策略组态运行层面图如图2所示。

图2 嵌入式策略组态运行层面图Fig.2 Operational level of embedded strategy configuration

图2中算法引擎协作层在操作系统层和应用层之间。算法引擎包括自定义的API接口函数库和XML解析函数库等,这些全部由C语言编写,为应用层(策略组态运行)向不同的操作系统移植提供了可能。此外,算法引擎协作层对使用的操作系统资源进行整合,如对数据类型的重定义,方便在移植时对数据类型的修改。

2 系统说明

系统从整体上分为PC机客户端和嵌入式服务器两部分。嵌入式算法引擎工作在嵌入式服务器中,系统整体架构如图3所示。

图3 系统整体架构Fig.3 Overall structure of the system

对于用户来讲,工业现场的某个对象的控制需要采纳某种控制策略,比如PID控制。用户可以通过策略组态软件的图形化显示,搭建嵌入式系统从输入到输出的整个控制策略,然后生成配置文件;最后通过监控软件,用户可以经由局域网将配置文件下载到嵌入式系统中。

嵌入式系统按照用户的要求对新下载的配置文件进行操作。在需要时,算法引擎协作层对其进行解析,替换旧的配置文件,并按照新的控制策略加载算法库,完成系统的运行。同时,通过监控软件,用户可以实时监视输出结果,并在需要时对配置文件(算法库函数参数)进行在线修改和重新配置。系统流程图如图4所示。

图4 嵌入式策略组态软件系统流程Fig.4 Flowchart of embedded strategy-configuration software

2.1 上位机策略组态

本文设计的策略组态软件包含组态软件部分和运行软件部分。算法组态如图5所示。该算法是一个基于温度控制系统的控制策略,从采样输入到模拟量输出,构成了一个反馈控制系统。每个模块对应相应的算法策略,用户选择好整个算法策略后,通过连线进行导通,以便嵌入式算法引擎通过配置文件完成系统的运行。

图5 算法组态示意图Fig.5 Schematic of the algorithm configuration

2.2 嵌入式系统运行

嵌入式系统的运行涉及到系统的调度和优先级(μC/OS-II操作系统下),它们也是算法引擎协作层的一部分。目前,设计的下位机任务主要包括:复位任务(TaskReset)、文件解析任务(FileParse)、文件运行任务(AlgRun)、暂停运行任务(AlgStop)、命令接收任务(TaskRecv);此外还有μC/OS-II的主任务(task0)和TCP/IP响应任务(TaskTcpPros)。

任务从功能上可以分为以下两个:①服务器线程——TaskRecv,用于接收上位机发送的命令字,并作简单的处理;②应用线程,它是在接收到相应的命令字后触发的应用任务。

设定的任务优先级为:Task0→TaskTcpPros→TaskRecv→TaskReset→FileParse→AlgStop→AlgRun。

在服务器线程中,完成的任务还有文件下载保存任务、文件上传任务、历史值和当前值的上传任务。

2.3 局域网内监控

局域网内小型监控软件的功能框图如图6所示。具体功能有测试网络、下载和上传控制策略、运行和暂停、查询算法输出和复位目标板。

图6 监控软件功能图Fig.6 Functional diagram of the monitoring software

3 运行实例

设计中采用了基于解释运行的原理,有利于实现系统的可移植性和在线配置。相对的基于编译运行的设计方法,也是当前嵌入式策略组态的研究课题之一,通过对嵌入式系统的软件开发进行深入研究,实现图形组态、策略组态在嵌入式系统中的应用[12-14]。

组态配置文件采用XML格式[15]。对于这种小型的XML格式文件,我们编写了自己的解析函数和虚拟内存XML文件的读写语句(算法引擎的一部分)。解析完配置文件后由算法引擎加载库文件,加载可以分为动态加载和静态加载。

通过策略组态软件搭建的一个控制策略运行实例如图7所示,用户可根据实际需要搭建自己的控制策略。

图7 运行实例Fig.7 Practical example of operation

图7完成了一个累加2的运算。图7中,两个常值初始设定参数为1,加减运算设定为加运算,三个输入端口的权值设定为1。每个算法模块包含一些基本信息,包括输入值、输出值、算法名称、算法参数、算法入口函数名称、算法ID、算法扫描周期等。运行时,算法引擎每经过一个算法扫描周期,便会对整个策略文件扫描一次,然后通过调用相应的算法库文件,得出最终策略的输出结果。监控软件上显示的局域网实时传递的输出结果如图8所示。

图8 运行实例输出曲线Fig.8 Output curve of the practical operation example

通过监控软件还可以实时查看每个算法模块的输出和修改每个算法模块的参数。将加减运算的第三个输入端口权值设为-1后,得到的递减2的运行曲线如图9所示。

图9 修改参数后运行曲线Fig.9 Operation curve after parameters modified

上述例子证明了本文所提出的策略组态软件在嵌入式系统中运行方法的可行性。对于用户自定义的算法,在经过编译链接生成相应的库文件后,可以添加到组态算法库中,并在基于解释运行原理的基础上,通过局域网将用户库函数下载到嵌入式系统中,以便算法引擎加载调用。设计中核心代码均用C语言编写,保证了设计的可移植性,即对操作系统的无关性。在硬件方面,采用动态加载可以动态调用I/O驱动等模块,支持对硬件的扩展。

4 结束语

本文论述了嵌入式系统策略组态的一种实现方法。通过这种方法,可以实现局域网内对工业过程控制策略的远程监控和在线调试。我们可以相信,嵌入式组态软件必将对工业控制和嵌入式产业应用程序的开发作出贡献。

[1]朱小菲.工控组态软件的设计与实现[D].长春:吉林大学,2005.

[2]赖于树.基于嵌入式的控制策略组态及监控组态技术研究[D].成都:电子科技大学,2006.

[3]石磐.现场总线控制系统控制策略组态软件研究[D].重庆:重庆大学,2004.

[4]梁庚,白焰,李文.分布式控制系统策略组态软件开发现状的分析研究与展望[J].自动化仪表,2005,26(3).

[5]Jin Min,Zhou Xiang,Duan Peng.The design and implementation of embedded configuration software based on embedded-Linux[C]∥InternationalConference on Computer Science and Software Engineering:China,2008:98 -101.

[6]徐伟华.基于嵌入式系统的监控组态软件理论模型的研究[D].成都:电子科技大学,2007.

[7]Gumaste U V,Nocera A A,Hsueh T A,et al.Configuration management strategy for distributed and diverse software developmentenvironments[C]∥ Proceeding ofthe IEEE International Conference on Industrial Technology,1996:42 -46.

[8]Sproull T S,Lockwood J W,Taylor D E.Control and configuration software for a reconfiguration networking hardware platform[C]∥Proceeding ofthe 10th AnnualIEEE Symposium on Filed Programmable Custom Computing Machines,2002.

[9]郑宗涵,魏海坤,李奇.实时数据库算法引擎的设计与应用[J].信息与控制,2003,32(7):662 -670.

[10]魏海坤.集散控制系统组态软件设计[D].南京:东南大学,1997.

[11]Pattle R,Ramiach J.OPC the de facto standard for real time communication parallel and distributed real-time systems[C]∥Proceeding of the Joint Workshop on Parallel and Distributed Real Time Systems,1997:289 -294.

[12]Angelov C,Xu K,Sierszecki K.A component-based framework for distributed controlsystems[C]∥ Proceedingsofthe 32nd EUROMICRO Conference on Software Engineering and Advanced Applications,2006.

[13]Yu G,Sierszecki K,Angelov C.A(re)configuration mechanism for resource-constrained embedded systems[C]∥ AnnualIEEE International Computer Softwareand Applications Conference,2008:1315 -1320.

[14]Lee E A,Neuendorffer S,Wirthlin M J.Actor-oriented design of embedded hardware and software systems[R].Invited paper,Journal of Circuits,Systems,and Computers,2002.

[15]Nitsch C,Kebschull U.The use of runtime configuration capabilities for network embedded systems[C]∥ Proceedings of the 2002 Design,Automation and Test in Europe Conference and Exhibition,2002.

猜你喜欢
配置文件组态引擎
从Windows 10中删除所有网络配置文件
新海珠,新引擎,新活力!
基于PLC及组态技术的恒温控制系统开发探讨
用软件处理Windows沙盒配置文件
车坛往事4:引擎进化之屡次失败的蒸汽机车
互不干涉混用Chromium Edge
基于Zookeeper的配置管理中心设计与实现
蓝谷: “涉蓝”新引擎
基于PLC和组态的智能电动拧紧系统
铸造行业三维组态软件的应用