第3章已经绘制好了静态的动画图形,在这一章中将利用MCGS软件提供的各种动画属性,使那些静态图形动起来。
4.1MCGS实时数据库概述
MCGS中的数据不同于传统意义的数据或变量,它不只包含了变量的数值特征,还将与数据相关的其他属性(如数据的状态、报警限值等)及对数据的操作方法(如存盘处理、报警处理等)封装在一起,作为一个整体,以对象的形式提供服务。这种把数值、属性和方法定义成一体的数据称为数据对象。
MCGS用数据对象表述系统中的实时数据,用对象变量代替传统意义的值变量。把用数据库技术管理的所有数据对象的集合称为实时数据库。实时数据库是MCGS的核心,是应用系统的数据处理中心,系统各个部分均以实时数据库为公用区交换数据,实现各个部分协调动作。设备窗口通过设备构件驱动外部设备,将采集的数据送入实时数据库;由用户窗口组成的图形对象,与实时数据库中的数据对象建立连接关系,以动画形式实现数据的可视化;运行策略通过策略构件对数据进行操作和处理。
4.2MCGS数据对象的类型
在MCGS组态软件中,数据对象有开关型、数值型、字符型、组对象等类型。不同类型的数据对象,属性不同,用途也不同。
1.开关型数据对象
记录开关信号(0或非0)的数据对象称为开关型数据对象,通常与外部设备的数字量输入输出通道连接,用来表示某一设备当前所处的状态。开关型数据对象也用于表示MCGS中某一对象的状态,如对应于一个图形对象的可见度状态。
开关型数据对象没有工程单位、最大值和最小值属性,没有限值报警属性,只有状态报警属性。
2.数值型数据对象
在MCGS组态软件中,数值型数据对象的数值范围分正数和负数范围,负数范围是-3.402823E38~-1.401298E-45,正数是1.401298E-45~3.402823E38。数值型数据对象除了存放数值及参与数值运算外,还提供报警信息,与外部设备的模拟量输入输出通道连接等。
数值型数据对象有最大值和最小值属性,其值不会超过设定的数值范围。当对象的值小于最小值或大于最大值时,对象的值分别取为最小值或最大值。
数值型数据对象有限值报警属性,可同时设置下下限、下限、上限、上上限、上偏差、下偏差等六种报警限值,当对象的值超过设定的限值时,产生报警;当对象的值回到所设定的限值之内时,报警结束。
3.字符型数据对象
字符型数据对象是存放文字信息的单元,用于描述外部对象的状态特征,其值为多个字符组成的字符串,字符串长度最长可达64KB。字符型数据对象没有工程单位和最大、最小值属性,也没有报警属性。
4.组对象型数据对象
组对象是MCGS引入的一种特殊类型的数据对象,类似于一般编程语言中的数组和结构体,用于把相关的多个数据对象集合在一起,作为一个整体来定义和处理。例如:描述水位控制系统的工作状态有液位1、液位2两个物理量,为便于处理,定义“液位组”为一个组对象,用来表示“液位”这个实际的物理对象,其内部成员则由上述物理量对应的数据对象组成,这样,在对“液位”对象进行处理(如:组态存盘、曲线显示、报警显示)时,只需指定组对象的名称“液位”,就包括了对其所有成员的处理。
组对象只是在组态时对某一类对象的整体表示方法,实际的操作则是针对每一个成员进行的。如在报警显示动画构件中,指定要显示报警的数据对象为组对象“液位”,则该构件显示组对象包含的各个数据对象在运行时产生的所有报警信息。
数据组对象是单一数据对象的集合,应包含两个以上的数据对象,但不能包含其他的数据组对象。一个数据对象可以是多个不同组对象的成员。把一个对象的类型定义成组对象后,还必须定义组对象所包含的成员。在【数据对象属性设置】对话框内,专门有【组对象成员】属性页,用来定义组对象的成员。【数据对象列表】中为所有数据对象,【组对象成员列表】中列出组对象。利用属性页中的【增加】按钮,可以把【数据对象列表】中指定的数据对象增加到【组对象成员列表】中;【删除】按钮则把【组对象成员列表】中指定的组对象成员删除。组对象没有工程单位、最大值、最小值属性,组对象本身没有报警属性。
4.3数据对象的定义
4.4数据对象的作用域
实时数据库中定义的数据对象都是全局性的,MCGS各个部分都可以对数据对象进行操作,通过数据对象交换信息和协调工作。数据对象的各种属性在整个运行过程中都保持有效。
如在水位控制系统中的液位1、液位2数据对象,在实时曲线构件、实时报表构件、动画流程等都是用的同一个数据对象。
4.5水位控制工程中数据对象的设置方法
1.增加数据对象
单击工作台的【实时数据库】按钮,进入【实时数据库】窗口。单击数据库窗口的空白位置,使数据库窗口中没有任何对象被选中。然后单击窗口右边的【新增对象】按钮,在窗口的数据对象列表中,就会增加新的数据对象。多次单击该按钮,则增加多个数据对象,系统默认定义的名称为“Data1”、“Data2”、“Data3”等。
2.修改对象属性
在【实时数据库】窗口中,选择数据对象,单击窗口右边的【对象属性】按钮或双击选中的数据对象,则打开【数据对象属性设置】窗口。在此窗口中,将系统定义的默认对象名称改为用户定义的名称,并指定对象类型,在【对象内容注释】栏中输入数据对象注释文字,提高工程的可读性。以对象“液位1”的定义说明数据对象属性设置方法。
在【基本属性】中,【对象名称】改为“液位1”;【对象类型】选择“数值”。【对象内容注释】中添加注释内容。其他设置不变。同样的方法,对对象“液位2”进行设置。
“液位组”对象属性设置。
在【基本属性】中,【对象名称】设为“液位组”;【对象类型】选择“组对象”;其他设置不变。单击【存盘属性】,打开数据对象【存盘属性】设置界面。
【数据对象值的存盘】选择“定时存盘”,存盘周期设为“5”秒。其他设置不变。单击【组对象成员】,打开【组对象成员】属性界面,选择组对象成员。
在【数据对象列表】中选中要添加到【组对象成员列表】中的成员,然后单击【增加】按钮,或者双击选中的数据对象,在右边的【组对象成员列表】中就会列出选择的组对象成员。如果选择错误,可以通过【删除】按钮删除错选的组对象成员。水位控制工程中的“液位组”选择了“液位1”,“液位2”两个成员。
水泵、调节阀、出水阀三个开关型对象变量,数据对象属性设置中只要把对象名称改为“水泵”、“调节阀”、“出水阀”;对象类型选择“开关”,其他属性不变。为对象变量“水泵”的属性设置。
4.6水位控制工程中动画连接
由图形对象搭制而成的图形界面是静止不动的,需要对这些图形对象进行动画设计,真实地描述外界对象的状态变化,达到过程实时监控的目的。MCGS实现图形动画设计的主要方法是将用户窗口中图形对象与实时数据库中的数据对象建立相关性连接,并设置相应的动画属性。在系统运行过程中,图形对象的外观和状态特征,由数据对象的实时采集值进行驱动,从而实现了图形的动画仿真效果。
4.6.1水罐动画连接在【用户窗口】中,双击【水位控制】,进入窗口,双击水罐1,弹出【单元属性设置】窗口。
单击【动画连接】,选中折线,则会出现按钮。单击按钮进入【动画组态属性设置】窗口,其他属性不变。
各项内容设置好后,单击【确认】按钮,再单击【确认】按钮,水罐1的对象变量连接就成功了。水罐2的对象变量连接方法与水罐1的相同,只需要把【表达式】连接中的“液位1”改为“液位2”;(最大变化百分比)“100”,对应的(表达式的值)由“10”改为“6”即可。
4.6.2调节阀和水泵动画连接
在【水位控制】窗口中,双击调节阀,弹出调节阀的【单元属性设置】窗口。单击【动画连接】。
选中最下端组合图符,出现按钮,单击按钮进入【动画组态属性设置】窗口,进行修改,其他属性不变。
单击表达式右侧的按钮,可以从实时数据库中选择已经定义好的对象变量。这里选择“调节阀”。也可以直接在表达式输入框中输入要连接的对象变量名称。
表达式连接设置好后,单击【按钮动作】,进入按钮动作属性设置。
在【按钮对应的功能】中,选择【数据对象值操作】,单击按钮,连接对象变量“调节阀”,设置在按钮动作的情况下,“调节阀”对象变量执行【取反】操作。设置完成后,单击【确认】按钮,再单击【确认】按钮,调节阀的变量连接就成功了。
水泵的动画属性设置跟调节阀属性设置的方法类似。
单击【组合图符】,按照设置调节阀相同的方法进行水泵的按钮动作设置。
设置完成后,单击【确认】按钮回到状态,再单击【矩形】,进入【填充颜色】属性界面,在表达式中连接变量“水泵”。单击【确认】退出后,水泵的动画属性就设置完成了。
4.6.3出水阀动画连接
本工程选用的出水阀具有两个把手,绿色把手代表阀门打开,红色阀门代表阀门关闭。
下面进行出水阀的单元属性设置。
双击出水阀,进入动画连接属性设置界面。