作者:封官斌1 韩璞2
摘要 本文介绍了DCS现场控制站的功能,探讨了现场控制站中操作系统的选取原则,分析了实时操作系统QNX的特点,设计了基于QNX的现场控制站软件,并应用于分散控制系统鲁能2000中。
要害词 DCS现场控制站QNX实时性
0引言
分散控制系统(DistributedControlSystem,简称DCS)是过程控制技术发展历史上的一个重要里程碑,是控制技术、计算机技术、网络通信技术和CRT显示技术共同发展的产物。今天,分散控制系统技术已经比较成熟,并且广泛的应用于各种生产过程中,同时还在不断推陈出新,迅速发展。
现场控制站作为分散控制系统中的重要组成部分,其软件的设计和开发在整个DCS开发中处于核心地位,它的可靠性和高效性对整个分散控制系统的可靠性和性能有着至关重要的影响。
1DCS现场控制站的作用
分散控制系统一般由工程师站、操作员站、历史站、现场控制站,以及连接这些站点的通信网络组成。工程师站主要完成对DCS进行离线的配置、组态工作和在线的系统监督、控制以及维护的任务。操作员站是DCS中处理一切有关人机界面(HMI,HumanMachineInterface)功能的网络节点,主要功能是为系统的运行操作人员提供人机界面,使操作员可以通过操作员站及时了解现场运行状态、各种运行参数的当前值、是否有异常情况发生等,并可通过输入设备对工艺过程进行控制和调节,保证生产过程的安全、可靠、高效、高质。历史站主要负责采集和储存生产过程控制的历史数据,以供形成运行报表和历史趋势曲线。
现场控制站是完成对现场I/O处理并实现直接数字控制(DDC)的网络节点,主要功能有三个:
1)将各种现场发生的过程量(流量、压力、液位、温度、电流、电压、功率以及各种状态等)进行数字化,并将这些数字化后的量存在存储器中,形成一个与现场过程量相一致的,能一一对应的、并按实际运行情况实时地改变和更新现场过程量的实时映像;
2)将本站采集到的实时数据通过网络发送到操作员站、工程师站以及其他现场I/O控制站,以便实现全系统的监督和控制,同时现场I/O控制站还可以接受由操作员站、工程师站下发的命令,以实现对被控对象的人工控制或对本站的参数设定;
3)在本站实现局部自动控制、回路的计算及闭环控制、顺序控制等。
2现场控制站操作系统的选取原则
基于可靠性和成本的考虑,现场控制站一般都采用专用的硬件,而且系统资源有一定限制,这就要求在操作系统的选择上需要考虑以下几个方面的问题:
1)可靠性
工业控制应用中,对于可靠性的要求非常高,所以现场控制站的操作系统必须具有稳定的内核,而且内核的功能应该相对单一。具有复杂内核的操作系统由于集成了太多的功能,有可能造成各种问题或影响系统的性能,应当尽量避免采用。为了保证可靠性,现场控制站的操作系统应采用分布式操作系统,必须对网络具有良好的支持。
2)实时性
多数控制系统都对实时性有着一定的要求,实时性的好坏,直接影响到控制品质的优劣,甚至关系到生产的安全。针对这种情况,现场控制站选用的操作系统必须是实时多任务操作系统。目前国外许多软件公司开发了商业化的实时操作系统,在工业控制、航天、电信等许多领域得到了广泛的应用。这些操作系统针对实时应用做了优化,实时性优于目前广泛使用的多任务操作系统UNIX和LINUX,也提供了很好的技术支持,比较典型的有WindRiverSystem的VxWorks,IntegratedSystem的pSOSSystem,QNXSOFTWARESYSTEMSLTD的QNX等。
3)对嵌入式开发的支持
应用于工业控制的计算机,结构上通常具有专用性,而且受成本限制,一般都不配备大容量的内存储器和外存储器,系统资源有限。嵌入式系统由于具有模块化,可根据不同需要灵活配置,占用资源少的特征,非凡适合用作现场控制站的操作系统。通过按照自己的需要对操作系统进行裁减,能最大限度的利用有限的硬件资源,避免由于开启了过多的不必要的服务而降低系统的可用资源,对系统的稳定性造成影响。
3QNX操作系统的特点
根据以上原则,我们在现场控制站的开发中使用了加拿大QSSL公司的分布式实时嵌入式操作系统QNX。QNX是一种运行在INTELx86兼容处理器和一些RISC处理器(例如POWERPC,MIPS)上的操作系统,具有内核精简,分布式,提供强大的网络支持,实时性好的特性,是现场控制站理想的软件平台。
3.1实时性:
QNX操作系统对实时应用是理想的,它提供一个实时系统所需要的一切基本要素:多任务、由优先级驱动的急者优先式调度方式和快速上下文切换。
为了保证系统的实时性,QNX在任务调度上采用了优先级抢占调度算法,而且用户能够设定和改变进程的优先级,根据实际应用的需要,选择进程调度算法。QNX系统中,进程的优先级大小为1(最低)到31(最高),调度程序在选择下一个运行进程时,将检查每个处于就绪状态的进程的优先级,具有高优先级的进程将首先被执行。这种优先级抢占的调度方法,保证在任何时刻都是优先级最高的任务占用CPU时间。优先级最高的任务可以中断当前运行的任务(即使当前任务本身也是中断任务),抢占CPU,这种方法适用于工业实时性要求高的场合。
在基本调度算法的基础上,对于当两个或更多个具有同样优先级的进程同时处于就绪态,并且都是当前就绪队伍中优先级最高的任务时,QNX提供了三种调度方法来解决这个问题:
1)先入先出调度法:先进入任务队列的进程被选择运行,直到它自动放弃运行或者被一个级别更高的进程打断运行。
2)循环式调度法:先进入任务队列的进程被选择运行,直到它自动放弃运行或者被一个级别更高的进程打断运行或者它用完了自己的时间片。一个时间片是50ms,是系统分配给每个进程用于运行的时间单位。
3)适应式调度法:在这种调度法中,一个进程的优先级会在运行中发生变化:假如该进程用完了自己的时间片仍未被阻塞,进程的优先级将被减1,称为优先级衰退,系统中一个进程只能降低一次优先级。假如该进程被阻塞,则将立即恢复为原来的优先级。
QNX系统提供的适应式调度法为计算密集型的进程提供对CPU更有效的利用,同时还保持了对其他进程的快速响应能力。不过在系统设计中应注重同优先级的任务数量不宜太多,因为这样终归会影响系统的实时响应时间。
3.2分布性:
QNX是一个完全的分布式系统,可以运行在多台计算机组成的局域网上。在QNX系统中,任何一台计算机上的任何一个进程可以与其他计算机上的任何进程通信,像与本机进程一样;任何一台计算机上的任何一个进程可以使用在局域网上的其它计算机上的资源,像使用本计算机上的资源一样。借助网络,QNX可以将任务分散到网络中,由多台计算机协同完成一个任务。利用QNX分布式操作系统的特性,可以建立很高的可用机制——将同一个任务安排到两台不同的计算机上去执行,只要两台计算机不同时发生故障,任务总是可以顺利完成。利用这个特性,可以建立互为热备份的双机冗余控制系统,在两台计算机上同时运行完全相同的两套程序,并且通过QNX系统独特的FLEET网进行数据的交换,同时对控制网络进行了冗余配置,可以实现高冗余度和相对低廉的成本的控制系统。
3.3微内核:
QNX是一个微内核实时操作系统,其核心仅提供4种服务:进程调度、进程间通信、底层网络通信和中断处理,其进程在独立的地址空间运行。所有其它操作系统服务,都实现为协作的用户进程,因此QNX核心非常小巧(QNX4.x大约为12Kb)而且运行速度极快。这一特性使QNX非凡适合于嵌入式开发,通过对操作系统进行剪裁,只在目标机上建立所需要的系统,可以大大节约系统资源,而且使系统维护起来非常轻易,一旦发生故障,可以及时修复。
4软件组成
在实时控制软件的设计中,我们采用了QNX系统作为开发平台,使用C语言进行实时控制软件的设计。为了完成现场控制站的功能,采用多进程协同进行工作,各进程之间通过QNX系统提供的信号灯实现同步,通过共享内存交换数据。每一个进程都具有自己的优先级和调度算法,以保证系统响应的实时性。软件的主要设计思路如下:
1)采用单独的进程进行控制运算。运算进程根据组态时生成的控制算法进行计算,完成闭环控制,顺序控制等功能。运算进程具有比较高的优先级,这样就保证即使在系统负担比较中的情况下,也能很好的完成控制运算的功能,保证控制的实时性。
2)对I/O卡件的访问,非凡是数字量输入/输出卡件的访问需要很快的采样周期,为了保证对卡件的访问速度,我们将读写I/O卡件的进程独立出来,这样可以确保过程控制的数据采集的实时性,同时可以将控制运算的结果迅速的输出到卡件。
3)采用基于TCP/IP的socket编程,建立处理操作员、工程师命令的进程,处理操作员和工程师下发的命令,实现人工对运行过程的干预。采用udp协议以广播的方式进行对实时数据的发送,同时为了减轻网络负担,使用了数据压缩和例外报告技术,以对控制网络上的数据流量进行控制,保证数据在网络上的实时传输。
4)数据备份进程负责监视主从站状态,在主站发生故障的时候,及时进行主从站切换,保证系统不停机。同时此进程还进行主从站数据备份操作,将主站数据备份到从站上,保证切换的时候不产生任何扰动。
5结束语
基于QNX系统的实时控制软件具有很高可靠性和良好的实时性,同时由于采用了C语言进行开发,可移植性非常好,可以非常轻易的适应不同的硬件。QNX平台可以在相对低的硬件配置上很好的运行,可以大大降低硬件投入。目前这套实时控制软件已经在鲁能2000分散控制系统现场控制站中得到应用。鲁能2000分散控制系统已经于2001年11月通过专家验收,目前已经应用于火电厂控制系统,取得了良好的效果。
来源:中国发电网