在单任务操作系统环境下(如MS-DOS),要想让组态软件具有很强的实时性就必须利用中断技术,这种环境下的开发工具较简单,软件编制难度大,目前运行于MS-DOS环境下的组态软件基本上已退出市场。
在多任务环境下,由于操作系统直接支持多任务,组态软件的性能得到全面加强,因此组态软件一般都由若干组件构成,而且组件的数量在不断增加,功能也不断加强。各组态软件普遍使用了“面向对象”的编程和设计方法,使软件更加易于学习和掌握,功能也更强大。
一般的组态软件都由图形界面系统、实时数据库系统、第三方程序接口组件、控制功能组件组成。下面将分别讨论每一类组件的设计思想。
在图形画面生成方面,构成现场各过程图形的画面被划分成3类简单的对象:线、填充形状和文本。每个对象均有影响其外观的属性。对象的基本属性包括线的颜色、填充颜色、高度、宽度、取向、位置移动等。这些属性可以是静态的,也可以是动态的。静态属性在系统投入运行后保持不变,与原来组态时一致;而动态属性则与表达式的值有关,表达式可以是来自I/O设备的变量,也可以是由变量和运算符组成的数学表达式。这种对象的动态属性随表达式值的变化而实时改变。例如,用一个矩形填充体模拟现场的液位,在组态这个矩形的填充属性时,指定代表液位的工位号名称,液位的上、下限及对应的填充高度,从而完成了液位的图形组态。这个组态过程通常叫做动画连接。
在图形界面上还具备报警通知及确认、报表组态及打印、历史数据查询与显示等功能。各种报警、报表、趋势都是动画连接的对象,其数据源都可以通过组态来指定,从而每个画面的内容均可以根据实际情况由工程技术人员灵活设计,每幅画面中的对象数量均不受限制。
在图形界面中,各类组态软件普遍提供了一种类Basic语言的脚本语言来扩充其功能。用脚本语言编写的程序段可由事件驱动或周期性地执行,是与对象密切相关的。例如,当按下某个按钮时可指定执行一段脚本语言程序,完成特定的控制功能,也可以指定当某一变量的值变化到关键值以下时,马上启动一段脚本语言程序完成特定的控制功能。
控制功能组件以基于PC的策略编辑/生成组件(也有人称之为软逻辑或软PLC)为代表,是组态软件的主要组成部分。虽然脚本语言程序可以完成一些控制功能,但还是不很直观,对于用惯了梯形图或其他标准编程语言的自动化工程师来说太不方便,因此目前的多数组态软件都提供了基于IECll31—3标准的策略编辑/生成控制组件。它也是面向对象的,但不唯一地由事件触发,它像PLC中的梯形图一样按照顺序周期性地执行。策略编辑/生成组件在基于PC和现场总线的控制系统中大有可为,可以大幅度地降低成本。
实时数据库是更重要的一个组件。因为PC的处理能力太强了,因此实时数据库更加充分地表现出了组态软件的长处。实时数据库可以存储每个工艺点的多年数据,用户既可浏览工厂当前的生产情况,又可回顾过去的生产情况。可以说,实时数据库对于工厂来说就如同飞机上的“黑匣子”。工厂的历史数据是很有价值的,实时数据库具备数据档案管理功能。工厂的实践告诉我们:现在很难知道将来进行分析时哪些数据是必需的,因此保存所有的数据是防止信息丢失的最好方法。
通信及第三方程序接口组件是开放系统的标志,是组态软件与第三方程序交互及实现远程数据访问的重要手段之一。
目前世界上组态软件的种类繁多,仅国产的组态软件就有不下30种之多,其设计思想、应用对象都相差很大,因此很难用一个统一的模型来进行描述。但是,组态软件在技术特点上有以下几点是共同的:
(1)提供开发环境和运行环境;
(2)采用客户/服务器模式;
(3)软件采用组件方式构成;
(4)采用DDE、OLE、COM/DCOM、ActiveX技术;
(5)提供诸如ODBC、OPC、APl接口;
(6)支持分布式应用;
(7)支持多种系统结构,如单用户、多用户(网络),甚至多层网络结构;
(8)支持Internet应用。
组态软件的结构划分有多种标准,下面以使用软件的工作阶段和软件体系的成员构成两种标准讨论其体系结构。
从总体结构上看,组态软件一般都是由系统开发环境(或称组态环境)与系统运行环境两大部分组成。系统开发环境和系统运行环境之间的联系纽带是实时数据库,三者之间的关系如图1-1所示。
图1-1 系统组态环境、系统运行环境和实时数据库三者之间的关系
1)系统开发环境
系统开发环境是自动化工程设计工程师为实施其控制方案,在组态软件的支持下,应用程序的系统生成工作所必需的工作环境。通过建立一系列用户数据文件,生成最终的图形目标应用系统,供系统运行环境运行时使用。
系统开发环境由若干个组态程序组成,如图形界面组态程序、实时数据库组态程序等。
2)系统运行环境
在系统运行环境下,目标应用程序被装入计算机内存并投入实时运行。系统运行环境由若干个运行程序组成,如图形界面运行程序、实时数据库运行程序等。
组态软件支持在线组态技术,即在不退出系统运行环境的情况下可以直接进入组态环境并修改组态,使修改后的组态直接生效。
自动化工程设计工程师最先接触的一定是系统开发环境,通过一定工作量的系统组态和调试,最终将目标应用程序在系统运行环境中投入实时运行,完成一个工程项目。
一般工程应用必须有一套开发环境,也可以有多套运行环境。在本书的例子中,为了方便,将开发环境和运行环境放在一起,通过菜单限制编辑修改功能来实现运行环境。
一套好的组态软件应该能够为用户提供快速构建自己计算机控制系统的手段。例如,对输入信号进行处理的各种模块、各种常见的控制算法模块、构造人机界面的各种图形要素、使用户能够方便地进行二次开发的平台或环境等。如果是通用的组态软件,则还应当提供各类工控设备的驱动程序和常见的通信协议。
组态软件因为其功能强大,且每个功能相对来说又具有一定的独立性,所以其组成形式是一个集成的软件平台,由若干程序组件构成。
组态软件必备的功能组件包括如下6个部分。
1)应用程序管理器
应用程序管理器是提供应用程序搜索、备份、解压缩、建立应用等功能的专用管理工具。在自动化工程师应用组态软件进行工程设计时经常会遇到下面一些烦恼:
(1)经常要进行组态数据的备份;
(2)经常需要引用以往成功项目中的部分组态成果(如画面);
(3)经常需要迅速了解计算机中保存了哪些应用项目。
虽然这些工作可以用手动方式实现,但效率低下,极易出错,有了应用程序管理器的支持后这些工作变得非常简单。
2)图形界面开发程序
图形界面开发程序是自动化工程设计人员为实施其控制方案,在图形编辑工具的支持下进行图形系统生成工作所依赖的开发环境。通过建立一系列用户数据文件,生成最终的图形目标应用系统,供图形运行环境运行时使用。
3)图形界面运行程序
在系统运行环境下,图形目标应用系统被图形界面运行程序装入计算机内并投入实时运行。
4)实时数据库系统组态程序
有的组态软件只在图形开发环境中增加了简单的数据管理功能,因而不具备完整的实时数据库系统。目前比较先进的组态软件都有独立的实时数据库组件,以提高系统的实时性,增强处理能力。实时数据库系统组态程序是建立实时数据库的组态工具,可以定义实时数据库的结构、数据来源、数据连接、数据类型及相关各种参数。
5)实时数据库系统运行程序
在系统运行环境下,目标实时数据库及其应用系统被实时数据库运行程序装入计算机内存,并执行预定的各种数据计算、数据处理任务。历史数据的查询、检索、报警管理都是在实时数据库系统运行程序中完成的。
6)I/O驱动程序
I/O驱动程序是组态软件中必不可少的组成部分,用于I/O设备通信,互相交换数据。DDE和OPC客户端是两个通用的标准I/O驱动程序,用来支持DDE和OPC标准的I/O设备通信,多数组态软件的DDE驱动程序被整合在实时数据库系统或图形系统中,而OPC客户端则多数单独存在。
下面介绍几种常见的组态方式。由于目前有关组态方式的术语还未能统一,因此本书中所用的术语可能会与一些组态软件所用的有所不同。
系统组态又称为系统管理组态(或系统生成),这是整个组态工作中的第一步,也是最重要的一步。系统组态的主要工作是对系统的结构及构成系统的基本要素进行定义。以DCS的系统组态为例,硬件配置的定义包括选择什么样的网络层次和类型(如宽带、载波带),选择什么样的工程师站、操作员站和现场控制站(I/O控制站)(如类型、编号、地址、是否为冗余等)及其具体的配置。有的DCS的系统组态可以做得非常详细。例如,机柜,机柜中的电源、电缆与其他部件,各类部件在机柜中的槽位,打印机,以及各站使用的软件等,都可以在系统组态中进行定义。系统组态的过程一般都是用图形加填表的方式。
控制组态又称为控制回路组态,这同样是一种非常重要的组态。为了确保生产工艺的实现,一个计算机控制系统要完成各种复杂的控制任务。例如,各种操作的顺序动作控制,各个变量之间的逻辑控制,以及对各个关键参量采用的各种控制(如PID、前馈、串级、解耦,甚至是更复杂的多变量预控制、自适应控制),因此有必要生成相应的应用程序来实现这些控制。组态软件往往会提供各种不同类型的控制模块,组态的过程就是将控制模块与各个被控变量相联系,并定义控制模块的参数(如比例系数、积分时间)。另外,对于一些被监视的变量,也要在信号采集之后对其进行一定处理,这种处理也是通过软件模块来实现的。因此,也需要将这些被监视的变量与相应的模块相联系,并定义有关参数。这些工作都是在控制组态中来完成的。
由于控制问题往往比较复杂,组态软件提供的各种模块不一定能够满足现场的需要,这就需要用户作进一步开发,即自己建立符合需要的控制模块。因此,组态软件应该能够给用户提供相应的开发手段。通常可以有两种方法:一是用户自己用高级语言来实现,然后再嵌入系统中;二是由组态软件提供脚本语言。
画面组态的任务是为计算机控制系统提供一个方便操作员使用的人机界面。显示组态的工作主要包括两方面:一是画出一幅(或多幅)能够反映被控制过程概貌的图形;二是将图形中的某些要素(如数字、高度、颜色)与现场的变量相联系(又称为数据连接或动画连接),当现场的参数发生变化时,可以及时地在显示器上显示出来,或者通过在屏幕上改变参数来控制现场的执行机构。
现在的组态软件都会为用户提供丰富的图形库,图形库中包含大量的图形元件,只需在图库中将相应的子图调出,再进行少量修改即可。因此,即使是完全不会编程序的人也可以“绘制”出漂亮的图形来。图形又可以分为两种:一种是平面图形;另一种是三维图形。平面图形虽然不是十分美观,但占用内存小,运行速度快。
数据连接分为两种:一种是被动连接;另一种是主动连接。对于被动连接,当现场的参数改变时,屏幕上相应数字量的显示值或图形的某个属性(如高度、颜色等)也会相应改变。对于主动连接方式,当操作人员改变屏幕上显示的某个数字值或某个图形的属性(如高度、位置等)时,现场的某个参量就会发生相应改变。显然,利用被动连接就可以实现现场数据的采集与显示,而利用主动连接则可以实现操作人员对现场设备的控制。
数据库组态包括实时数据库组态和历史数据库组态。实时数据库组态的内容包括数据库各点(变量)的名称、类型、工位号、工程量转换系数上/下限、线性化处理、报警限和报警特性等。历史数据库组态的内容包括定义各个进入历史库数据点的保存周期,有的组态软件将这部分工作放在历史组态中,还有的组态软件将数据点与I/O设备的连接放在数据库组态中。
一般计算机控制系统都会带有数据库。因此,可以很轻易地将生产过程形成的实时数据形成对管理工作十分重要的日报、周报或月报。报表组态包括定义报表的数据项、统计项,报表的格式及打印报表的时间等。
报警功能是计算机控制系统很重要的一项功能,它的作用就是当被控或被监视的某个参数达到一定数值的时候,以声音、光线、闪烁或打印机打印等方式发出报警信号,提醒操作人员注意并采取相应措施。报警组态的内容包括报警的级别、报警限、报警方式和报警处理方式的定义。有的组态软件没有专门的报警组态,而是将其放在控制组态或显示组态中顺便完成报警组态任务。
由于计算机控制系统对实时数据采集的采样周期很短,形成的实时数据很多,这些实时数据不可能也没有必要全部保留,可以通过历史模块将浓缩实时数据形成有用的历史记录。历史组态的作用就是定义历史模块的参数,形成各种浓缩算法。
由于组态工作十分重要,如果处理不好,就会使计算机控制系统无法正常工作,甚至会造成系统瘫痪。因此,应当严格限制组态的人员。一般的做法是:设置不同的环境,如过程工程师环境、软件工程师环境,以及操作员环境等。只有在过程工程师环境和软件工程师环境中才可以进行组态,而在操作员环境只能进行简单的操作。为此,还引出环境组态的概念。所谓环境组态,是指通过定义软件参数,建立相应的环境。不同的环境拥有不同的资源,且环境是有密码保护的。还有一个办法是:不在运行平台上组态,组态完成后再将运行的程序代码安装到运行平台中。