工业现场嵌入式控制器软件的分析
孙 伟
摘要:本文分析了 Linux 在嵌入式系统中应用的可能性及优势,并设计了基于嵌入式 Linux 的工业现场控制器软件,并实际应用于计算机集散控制系统(DCS)中,满足了DCS 系统对现场控制器的要求。
关键词:嵌入式;Linux;DCS;现场控制器
1 引言
现场控制器是DCS系统的核心组成部分,担负着接收并执行控制算法、采集现场数据并 进行大量数据处理等职能,且具有控制周期短,运行稳定、可靠等要求。因此,如何选用高 性能的硬件,开发稳定可靠的嵌入式操作系统,并设计现场控制器软件系统成为DCS系统开 发中的关键之一。
2 工业控制DCS系统的特点和组成
DCS 具有以下特点
2.1 高可靠性:由于 DCS 将系统控制功能分散在各台计算机上实现,系统结构采用容错设计,因此某 一台计算机出现的故障不会导致系统其它功能的丧失。此外,由于系统中各台计算机所承担 的任务比较单一,可以针对需要实现的功能采用具有特定结构和软件的专用计算机,从而使 系统中每台计算机的可靠性也得到提高。
2.2 开放性
DCS 采用开放式、标准化、模块化和系列化设计,系统中各台计算机采用局域网方式 通信,实现信息传输,当需要改变或扩充系统功能时,可将新增计算机方便地连入系统通信 网络或从网络中卸下,几乎不影响系统其他计算机的工作。
2.3 灵活性 通过组态软件根据不同的流程应用对象进行软硬件组态,即确定测量与控制信号及相互间连接关系、从控制算法库选择适用的控制规律以及从图形库调用基本图形组成所需的各种 监控和报警画面,从而方便地构成所需的控制系统。
2.4 易于维护 功能单一的小型或微型专用计算机,具有维护简单、方便的特点,当某一局部或某个计算机出现故障时,可以在不影响整个系统运行的情况下在线更换,迅速排除故障。
2.5协调性 各工作站之间通过通信网络传送各种数据,整个系统信息共享,协调工作,以完成控制 系统的总体功能和优化处理。
2.6控制功能齐全 控制算法丰富,集连续控制、顺序控制和批处理控制于一体,可实现串级、前馈、解耦、 自适应和预测控制等先进控制,并可方便地加入所需的特殊控制算法。
DCS 的构成方式十分灵活,可由专用的管理计算机站、操作员站、工程师站、记录站、 现场控制站和数据采集站等组成,也可由通用的服务器、工业控制计算机和可编程控制器构成。
处于底层的过程控制级一般由分散的现场控制站、数据采集站等就地实现数据采集和控 制,并通过数据通信网络传送到生产监控级计算机。生产监控级对来自过程控制级的数据进 行集中操作管理,如各种优化计算、统计报表、故障诊断、显示报警等。随着计算机技术的 发展,DCS 可以按照需要与更高性能的计算机设备通过网络连接来实现更高级的集中管理 功能,如计划调度、仓储管理、能源管理等。
DCS 是分散控制系统的简称,国内一般习惯称为集散控 制系统。它是一个由过程控制级和过程监控级组成的以通信网络为纽带的多级计算机系统,综合了计算机(Computer)、通讯(Communication)、显示(CRT)和控制(Control)等 4C 技术,其基本思想是分散控制、集中操作、分级管理、配置。
3 嵌入式控制器软件设计
嵌入式控制器是指在 DCS 的硬件体系结构中的现场控制站,在设定的控制周期下,主控制器循环的执行从 I/O 设备采集现场数据、控制逻辑运 算、与操作员站进行数据交换、故障诊断、冗余等任务。
主控制器向下通过 I/O 插件或者现场总线网络,连接现场的各种 I/O 设备、执行设备等; 向上通过系统网络与操作员站、工程师站等连接。
DCS 系统的性能、可靠性等重要指标主要体现在主控制器上。因此,设计出高效稳定 的现场控制器软件系统,对于设计整个 DCS 系统的关键之一。
3.1 控制器硬件及系统平台嵌入式控制器的硬件平台为 Intel? XScale IXP425 嵌入式开发板;操作系统采用嵌入式Linux,版本为 2.6.16。
3.2 控制器软件结构
控制器软件设计为运行于嵌入式 Linux 平台上的单线程应用程序,调度策略为实时的先 入先出(FIFO)方式,现场运行采用双机热备份方式。由于控制器软件要完成的各种功能 相对独立,因此本文中将控制器软件程序设计成多模块结构。
各模块分别设计为:
总控模块。总控模块指的是对系统整体运行进行监控的模块,它协调和调度其他 模块的运行,包括系统开始启动时的初始化、程序结束时所进行的清理以及按照周期性调度 其它模块的运行。
时间管理模块。在控制器软件中,维护一个与校时无关的时间计数,系统根据这个计数来进行计时和调度。工作机和备份机之间通过校时使得绝对时间和计数都能保持一致。
通讯模块。此模块提供控制器软件的网络通讯功能,设计为具体网络协议对上层应用即通讯服务模块透明。同时,通讯模块应该实现将网络上的字节流封装成具有特定功能单元的数据包,及将具有特定功能单元的数据包转换成网络字节流,以供通讯服务模块使用。
通讯服务模块。通讯服务模块和通讯模块密切相关,是控制器软件对外提供的服 务接口。控制器软件定义了一组标准的通讯服务,外部只要按照规定的格式向控制器发送通讯请求,控制器就会给出应答或结果。通讯服务模块实质上是对通讯模块所接收到的数据的处理;并将处理结果交给通讯模块发送。
冗余模块。冗余主要是涉及到工作机和备份机之间的通讯,采用网络方式。主机 需要向从机传送的数据主要包括:下装文件、运行数据、相关通讯服务命令等,另外工作机和备份机之间的校时也通过冗余模块完成。
诊断模块。诊断模块负责检测控制器运行状态,并对出现及可能出现的异常状态进行修正。
错误信息处理模块。控制器软件中各模块通过此错误信息处理模块将各种错误信息记录下来,通过通讯服务,记录的错误信息可以被提取出来进行分析,以便于分析、解决出现的问题。
状态显示模块。状态显示模块主要是负责按照要求控制控制器面板上显示部件LED灯显示相应信息。
掉电保护模块。掉电保护模块周期性地将重要数据保存,当系统掉电重启后,可恢复运行数据。本文中设计为周期性的将重要的运行数据保存到 SRAM 中,保存完毕后, 设置掉电保护有效标志;当控制器重新启动后,检查此标志,若有效,则恢复运行数据。
数据交换模块。控制器软件和现场 IO 模件进行数据交换:DP 主站从输入模块收集输入数据并发送给控制器,在IEC运算后,控制器软件将输出数据发送给 DP主站,DP主站将输出数据分发给输出设备。本文设计为DP主站将从现场智能设备收集的输入数 据存放在双口 RAM中,然后控制器软件从双口RAM中获得输入数据;控制器软件将输出 数据存放在双口 RAM中,然后DP主站从双口RAM获得输出数据,然后分发给现场智能设备。
IEC任务调度模块。IEC 任务调度模块负责对各种 IEC 任务进行调度,包括周期 性任务、连续性任务、内部事件任务和外部事件触发的任务。IEC 任务调度模块还要维护双 机之间的同步,通过发送和应答同步标号保证双机之间的 IEC任务运算的节拍一致。如果同步失败,工作机要向备份机拷贝运行数据,然后备份机重新运行。
控制器软件程序在启动后,对冗余模块、通讯模块、数据交换模块、掉电保护模块、状态显示模块、诊断模块进行初始化;之后进入while 无限循环并周期性的调用或执行通讯模 块、状态显示模块、数据交换模块输入部分、IEC任务调度模块、数据交换模块输出部分、 冗余同步模块、诊断模块、及可能的延时;当程序遇到意外情况需要终止时(如用户发送Ctrl+C中断),程序进入清理部分,释放占用的资源,最后结束运行。
总结
本文分析了计算机集散控制器系统中现场控制器的在工业控制领域的重要性,并设计了 基于嵌入式 Linux 的现场控制器软件系统。所设计出的系统高效、可靠,满足一般甚至核电 领域的工业控制要求。基于嵌入式 Linux
的工业现场嵌入式控制系统必然有着更美好的前景。
参考文献
[1]徐雪松,章兢.嵌入式 Linux 在工业控制领域中的应用.国际电子元器件,2004 年,03期.
[2]宋威,周伟.集散控制系统应用现状及其发展.工业控制计算机,2004 年,11 期.
[3]郭晨鲜,费凌.基于嵌入式控制器及研发平台的分析与研究.西华大学学报,2005 年,04 期.