技术频道

工业现场嵌入式控制器软件的分析和设计

摘要:本文分析了Linux在嵌入式系统中应用的可能性及优势,并设计了基于嵌入式Linux的工业现场控制器软件,并实际应用于计算机集散控制系统中,满足了一般甚至核电领域中DCS系统对现场控制器的要求。

关键词:嵌入式Linux;DCS;现场控制器

1.引言
现场控制器是DCS系统的核心组成部分,担负着接收并执行控制算法、采集现场数据并进行大量数据处理等职能,且具有控制周期短,运行稳定、可靠等要求。因此,如何选用高性能的硬件,开发稳定可靠的嵌入式操作系统,并设计现场控制器软件系统成为DCS系统开发中的关键之一。
本文分析并设计了基于嵌入式Linux的工业现场控制器的控制软件系统。
EmbeddedLinux的优势
EmbeddedLinux具有如下特点:
第一,Linux系统内核源码完全开放。因为Linux的内核源码是完全开发的,所以不同领域和层次的用户可以免费得到Linux内核源码,并根据自己的应用需要方便的对内核进行修改。这样可以有效控制成本,并设计和开发出满足其需要的嵌入式系统。
第二,强大的网络功能。Linux的网络连接能力紧密的和Linux内核结合在一起,为用户提供了完善而强大的网络功能。实际上,Linux就是依靠互联网才迅速发展了起来。Linux支持所有标准Internet协议,可以轻松地与TCP/IP、LANManager、WindowsforWorkgroups、NovellNetware或WindowsNT网络集成在一起。可以在Linux的网络协议栈基础上开发出嵌入式的TCP/IP网络协议栈,使得嵌入式设备具有强大的网络功能。
第三,Linux是Unix兼容,完全符合IEEEPOSIX.1标准。许多运行在Unix上的软件可以不加修的运行在Linux上。因此嵌入式Linux具有很多丰富的免费软件资源可以利用。第四,Linux具备完整的开发工具链,嵌入式系统开发者轻易建立嵌入式系统的开发环境和交叉运行环境,可以跨越嵌入式系统开发中仿真工具的障碍。从编辑阶段,编译阶段到调试阶段,可以方便的使用GNU提供的EMACS,GCC,GDB,KGDB等工具链。第五,Linux具有广泛的硬件支持。Linux能运行在,无论是RISC还是CISC、32位还是64位等各种处理器上。Linux支持各种主流的硬件设备和最新的硬件技术,可以在没有MMU的处理器上运行。所以嵌入式Linux有广泛的应用前景。
工业控制DCS系统的组成
DCS是分散控制系统的简称,国内一般习惯称为集散控制系统。它是一个由过程控制级和过程监控级组成的以通信网络为纽带的多级计算机系统,综合了计算机、通讯、显示和控制等4C技术,其基本思想是分散控制、集中操作、分级治理、配置灵活、组态方便。

DCS具有以下特点:
高可靠性
由于DCS将系统控制功能分散在各台计算机上实现,系统结构采用容错设计,因此某一台计算机出现的故障不会导致系统其它功能的丧失。此外,由于系统中各台计算机所承担的任务比较单一,可以针对需要实现的功能采用具有特定结构和软件的专用计算机,从而使系统中每台计算机的可靠性也得到提高。
开放性
DCS采用开放式、标准化、模块化和系列化设计,系统中各台计算机采用局域网方式通信,实现信息传输,当需要改变或扩充系统功能时,可将新增计算机方便地连入系统通信网络或从网络中卸下,几乎不影响系统其他计算机的工作。
灵活性通过组态软件根据不同的流程应用对象进行软硬件组态,即确定测量与控制信号及相互
间连接关系、从控制算法库选择适用的控制规律以及从图形库调用基本图形组成所需的各种监控和警画面,从而方便地构成所需的控制系统。
易于维护功能单一的小型或微型专用计算机,具有维护简单、方便的特点,当某一局部或某个计算机出现故障时,可以在不影响整个系统运行的情况下更换,迅速排除故障。
协调性各工作站之间通过通信网络传送各种数据,整个系统信息共享,协调工作,以完成控制系统的总体功能和优化处理。
控制功能齐全控制算法丰富,集连续控制、顺序控制和批处理控制于一体,可实现串级、前馈、解耦、自适应和猜测控制等先进控制,并可方便地加入所需的非凡控制算法。
DCS的构成方式十分灵活,可由专用的治理计算机站、操作员站、工程师站、记录站、现场控制站和数据采集站等组成,也可由通用的服务器、工业控制计算机和可编程控制器构成。
处于底层的过程控制级一般由分散的现场控制站、数据采集站等就地实现数据采集和控制,并通过数据通信网络传送到生产监控级计算机。生产监控级对来自过程控制级的数据进行集中操作治理,如各种优化计算、统计表、故障诊断、显示警等。随着计算机技术的发展,DCS可以按照需要与更高性能的计算机设备通过网络连接来实现更高级的集中治理功能,如计划调度、仓储治理、能源治理等。
嵌入式控制器软件设计
嵌入式控制器是指在DCS的硬件体系结构中的现场控制站,即图1中被红色椭圆圈中的部分。在设定的控制周期下,主控制器循环的执行从I/O设备采集现场数据、控制逻辑运算、与操作员站进行数据交换、故障诊断、冗余等任务。
主控制器向下通过I/O插件或者现场总线网络,连接现场的各种I/O设备、执行设备等;向上通过系统网络与操作员站、工程师站等连接。
DCS系统的性能、可靠性等重要指标主要体现在主控制器上。因此,设计出高效稳定的现场控制器软件系统,对于设计整个DCS系统的关键之一。
1控制器硬件及系统平台嵌入式控制器的硬件平台为IntelXScaleIXP425嵌入式开发板;操作系统采用嵌入式Linux,版本为16。
2控制器软件结构
控制器软件设计为运行于嵌入式Linux平台上的单线程应用程序,调度策略为实时的先入先出方式,现场运行采用双机热备份方式。由于控制器软件要完成的各种功能相对独立,因此本文中将控制器软件程序设计成多模块结构。模块之间的关系如下图所示。

各模块分别设计为:
总控模块。总控模块指的是对系统整体运行进行监控的模块,它协调和调度其他模块的运行,包括系统开始启动时的初始化、程序结束时所进行的清理以及按照周期性调度其它模块的运行。
时间治理模块。在控制器软件中,维护一个与校时无关的时间计数,系统根据这个计数来进行计时和调度。工作机和备份机之间通过校时使得绝对时间和计数都能保持一致。
通讯模块。此模块提供控制器软件的网络通讯功能,设计为具体网络协议对上层应用即通讯服务模块透明。同时,通讯模块应该实现将网络上的字节流封装成具有特定功能单元的数据包,及将具有特定功能单元的数据包转换成网络字节流,以供通讯服务模块使用。
通讯服务模块。通讯服务模块和通讯模块密切相关,是控制器软件对外提供的服务接口。控制器软件定义了一组标准的通讯服务,外部只要按照规定的格式向控制器发送通讯请求,控制器就会给出应答或结果。通讯服务模块实质上是对通讯模块所接收到的数据的处理;并将处理结果交给通讯模块发送。
冗余模块。冗余主要是涉及到工作机和备份机之间的通讯,采用网络方式。主机需要向从机传送的数据主要包括:下装文件、运行数据、相关通讯服务命令等,另外工作机和备份机之间的校时也通过冗余模块完成。
诊断模块。诊断模块负责检测控制器运行状态,并对出现及可能出现的异常状态进行修正。
错误信息处理模块。控制器软件中各模块通过此错误信息处理模块将各种错误信息记录下来,通过通讯服务,记录的错误信息可以被提取出来进行分析,以便于分析、解决出现的问题。
状态显示模块。状态显示模块主要是负责按照要求控制控制器面板上显示部件LED
灯显示相应信息。
掉电保护模块。掉电保护模块周期性地将重要数据保存,当系统掉电重启后,可恢复运行数据。本文中设计为周期性的将重要的运行数据保存到SRAM中,保存完毕后,设置掉电保护有效标志;当控制器重新启动后,检查此标志,若有效,则恢复运行数据。
数据交换模块。控制器软件和现场IO模件进行数据交换:DP主站从输入模块收集输入数据并发送给控制器,在IEC运算后,控制器软件将输出数据发送给DP主站,
DP主站将输出数据分发给输出设备。本文设计为DP主站将从现场智能设备收集的输入数据存放在双口RAM中,然后控制器软件从双口RAM中获得输入数据;控制器软件将输出数据存放在双口RAM中,然后DP主站从双口RAM获得输出数据,然后分发给现场智能设备。

IEC任务调度模块。IEC任务调度模块负责对各种IEC任务进行调度,包括周期性任务、连续性任务、内部事件任务和外部事件触发的任务。IEC任务调度模块还要维护双机之间的同步,通过发送和应答同步标号保证双机之间的IEC任务运算的节拍一致。假如同步失败,工作机要向备份机拷贝运行数据,然后备份机重新运行。
控制器软件的代码设计如下所示。
intmain

/Finalization/
}
控制器软件程序在启动后,对冗余模块、通讯模块、数据交换模块、掉电保护模块、状
态显示模块、诊断模块进行初始化;之后进入while无限循环并周期性的调用或执行通讯模块、状态显示模块、数据交换模块输入部分、IEC任务调度模块、数据交换模块输出部分、冗余同步模块、诊断模块、及可能的延时;当程序碰到意外情况需要终止时,程序进入清理部分,释放占用的资源,最后结束运行。
实验及结果分析
经过实验和对结果的分析,基于嵌入式Linux的嵌入式控制器具有较高性能,能满足一般甚至核电领域DCS系统中现场控制器的要求。控制器软件接收并调度数个周期型IEC任务时控制周期可达到50ms,并且满足现场控制器网络负荷率小于15%,系统总负荷率小于40%等要求。
分析原因如下:
IXP425具有强大的计算能力和集成的NPE具有非常强大的网络处理能力;系统配备大量内存,程序可快速运行;
Linux运行于IXP425BIGENDIAN模式,网络协议栈可以减少一些转化处理;
Linux操作系统性能较好,控制器软件采用模块化设计,并优化代码,具有较强处理能力。

总结
本文分析了计算机集散控制器系统中现场控制器的在工业控制领域的重要性,并设计了基于嵌入式Linux的现场控制器软件系统。所设计出的系统高效、可靠,满足一般甚至核电领域的工业控制要求。基于嵌入式Linux的工业现场嵌入式控制系统必然有着更美好的前景。


参考文献
徐雪松章兢.嵌入式Linux在工业控制领域中的应用.国际电子元器件,2004年,03期
宋威周伟.集散控制系统应用现状及其发展.工业控制计算机,2004年,11期
郭晨鲜费凌.基于嵌入式控制器及研发平台的分析与研究.西华大学学,2005年,04期
张广辉徐江华邵惠鹤.基于交换式以太网的嵌入式控制系统.自动化仪表,2008年,06期
AnalysisandDesignofEmbeddedLinuxBasedFieldControlStationSoftware

文章版权归西部工控xbgk所有,未经许可不得转载。