组态软件的总体结构及其相似性
组态软件主要作为SCADA系统及其他控制系统的上位机人机界面的开发平台,为用户提供快速地构建工业自动化系统数据采集和实时监控功能服务。而不论什么样的过程监控,总是有相似的功能要求。因此,不论什么样的组态软件,它们在整体结构上都具有相似性,只是不同的产品实现这些功能方式有所不同。如图5.1所示的就是组态王提供的演示版面运行界面,不是上面的文字提示,很难看出该监控界面是用什么组态软件开发的。
从目前主流的组态软件产品看,组态软件由开发系统与运行系统组成,如图5.2所示。系统开发环境是自动化工程设计师为实施其控制方案,在组态软件的支持下进行应用程序的系统生成工作所必须依赖的工作环境,通过建立一系列用户数据文件,生成最终的图形目标应用系统,供系统运行环境运行时使用。
系统运行环境由若干个运行程序支持,如图形界面运行程序、实时数据库运行程序等。在系统运行环境中。系统运行环境将目标应用程序装入计算机内存并投入实时运行。不少组态软件都支持在线组态,即在不退出系统运行环境下修改组态,使修改后的组态在运行环境中直接生效。当然,如果修改了图形界面,必须刷新该界面新的组态才才能显示。维系组态环境与运行环境的纽带是实时数据库,如图
运行环境系统由任务来组织,每个任务包括一个控制流程,由控制流程执行器来执行。任务可以由事件中断、定时时间间隔、系统出错或报警及上位机指令来调度。每个任务有优先级设置,高优先级的任务能够中断低优先级任务。同优先级的程序若时间间隔设置不同,可通过竞争,抢占CPU使用权。在控制流程中,可以进行逻辑或数学运算、流程判断和执行、设备扫描及处理和网络通信等。此外,运行环境还包括以下一些服务:
(1)通信服务:实现组态软件与其他系统之间的数据交换。
(2)存盘服务:实现采集数据的存储处理操作。
(3)日志服务:实现系统运行日志记录功能。
(4)调试服务:辅助实现开发过程中的调试功能。
组态软件的功能相似性还表现在以下几个方面。
(1)目前绝大多数工控组态软件都可运行在Windows 2000/XP环境下,部分还可以运行在VISTA操作系统下。这些软件界面友好、直观、易于操作。
(2)现有的组态软件多数以项目目(Project)的形式来组织工程,在该项目中,包含了实现组态软件功能的各个模块,包括I/O设备、变量、图形、报警、报表、用户管理、网络服务、系统冗余配置和数据库连接等。
(3)组态软件的相似性还表现在目前的组态软件都采用TAG数来组织其产品和进行销售,同一公司产品的价格主要根据点数的多少而定;而软件的加密多数采用硬件狗。部分产品也支持软件License。
组态软件的功能部件
为了解决5.2节指出的问题,完成监控与数据采集等功能,简化程序开发人员的组态工作,易于用户操作和管理。一个完整的组态软件基本上都包含以下一些部件,只是不同的系统,这些构件所处的层次、结构会有所不同,名称也会不一样。
1.人机界面系统
人机界面系统实际上就是所谓的工况模拟动画。在人机界面组态中,要利用组态软件提供的工具,制作出友好的图形界面给控制系统用,其中包括被控过程流程图、曲线图、棒状图、饼状图、趋势图,以及各种按钮、控件等元素。人机界面组态中,除了开发出满足系统要求的人机界面外,还要注意运行系统中画面的显示、操作和管理。
在组态软件中进行工程组态的第一步即是制作工况模拟动画,动画制作分为静态图形设计和动态属性设置两个过程。静态图形设计类似于“画画”,用户利用组态软件中提供的基本图形元素,如线、填充形状、文本及设备图库,在组态环境中“组合”成工程的模拟静态画面。静态图形设计在系统运行后保持不变,与组态时一致。动态属性设置则完成图形的动画属性,与实时数据库中定义的变量建立相关性的连接关系,作为动画图形的驱动源。动态属性与确定该属性的变量或表达式的值有关。表达式可以是来自I/O设备的变量,也可以是由变量和运算符组成的数学表达式,它反映图形大小、颜色、位置、可见度、闪烁性等状态的特征参数,随着表达式的值的变化而变化。人机界面系统的设计还包括报警组态及输出、报表组态及打印、历史数据检索与显示等功能。各种报警、报表、趋势的数据源都可以通过组态作为动画链接的对象。
组态软件给用户最深刻印象的就是图形用户界面。在组态软件中,图形主要包括位图与矢量图。位图就是由点阵所组成的图像,一般用于照片品质的图像处理。位图的图形格式多采用逐点扫描、依次存储的方式。位图可以逼真的反映外界事物,但放大时会引起图像失真,并且占用空间较大。即使现在流行的jpeg图形格式也不过是采用对图形隔行隔列扫描从而进行存储的,虽然所占用空间变小,但是同样在放大时引起失真。矢量图是由轮廓和填空组成的图形,保存的是图元各点的坐标,其构造原理与位图完全不同。矢量图形,在数学上定义为一系列由线连接的点。矢量文件中的图形元素称为对象,每个对象都是一个自成一体的实体,它具有颜色、形状、轮廓、大小和屏幕位置等属性。因为每个对象都是一个自成一体的实体,就可以在维持它原有清晰度和弯曲度的同时,多次移动和改变它的属性,而不影响图例中其他对象。矢量图的优点主要表现在以下3点(1)克服了位图所固有的缺陷,文件体积小,具有无级缩放、不失真的特点,并可以方便的进行修改、编辑。
(2)基于矢量图的绘图同分辨率无关,这意味着它们可以按照最高分辨率显示到输出设备上,并且现场操作站显示器的升级等不影响矢量图画面。
(3)可以和位图图形集成在一起,也可以把它们和矢量信息结合在一起以产生更加完美的图形。
正因为如此,在组态软件中大量使用矢量图。
2.实时数据库系统
实时数据库是组态软件的数据处理中心,特别是对于大型分布式系统,实时数据库的性能在某种方面就决定了监控软件的性能。它负责实时数据运算与处理、历史数据存储、统计数据处理、报警处理、数据服务请求处理等。实时数据库实质上是一个可统一管理的、支持变结构的、支持实时计算的数据结构模型。在系统运行过程中,各个部件独立地向实时数据库输入和输出数据,并完成自己的差错控制以减少通信信道的传输错误,通过实时数据库交换数据,形成互相关联的整体。因此,实时数据库是系统各个部件及其各种功能性构件的公用数据区。
组态软件实时数据库系统的含义已远远超过了一个简单的数据库或一个简单的数据处理软件,它是一个实际可运行的,按照数据存储方式存储、维护和向应用程序提供数据或信息支持的复杂系统。因此,实时数据库系统的开发设计应该视为一个融入了实时数据库的计算机应用系统的开发设计。
数据库是组态软件的核心,数据来源途径的多少将直接决定开发设计出来的组态软件的应用领域与范围。组态软件基本都有与广泛的数据源进行数据交换的能力,如提供更多厂家的硬件设备的I/O驱动程序;能与Microsoft Access、SQL Sever、Oracle等众多的ODBC数据库连接;全面支持OPC标准,从OPC服务器直接获取动态数据;全面支持动态数据交换(DDE)标准和其他支持DDE标准的应用程序,如与EXCEL进行数据交换;全面支持Windows可视控件及用户自己用VB或VC++开发的ActiveX控件。
组态软件实时数据库的主要特征是实时、层次化、对象化和事件驱动。层次化是指不仅记录一级是层次化的,在属性一级也是层次化的。属性的值不仅可以是整数、浮点数、布尔量和定长字符串等简单的标量数据类型,还可以是矢量和表。采取层次化结构便于操作员在一个熟悉的环境中对受控系统进行监视和浏览。对象是数据库中一个特定的结构,表示监控对象实体的内容,由项和方法组成。项是实体的一些特征值和组件。方法表示实体的功能和动作。事件驱动是Windows编程中最重要的概念,在组态软件中,一个状态变化事件引起系统产生所有报警、时间、数据库更新,以及任何关联到这一变化所要求的特殊处理。如数据库刷新事件通过集成到数据库中的计算引擎执行用户定制的应用功能。
此外,组态软件实时数据库还支持处理优先级、访问控制和冗余数据库的数据一致性等功能。