MCGS之构造实时数据库

构造实时数据
本章介绍MCGS中数据对象和实时数据库的基本概念,从构成实时数据库的基本单元——数据对象着手,详细说明在组态过程中,构造实时数据库的操作方法,主要包括以下几个方面:
数据对象的定义
数据对象的类型
数据对象的属性
上海应用技术学院教学管理信息系统数据对象的作用域
内部数据对象和系统函数
数据对象的浏览、查询和检查理论化学
概述
重点:
介绍两个重要概念;数据对象和实时数据库
    数据对象的概念
MCGS中,数据不同于传统意义的数据或变量,以数据对象的形式来进行操作与处理。数据对象它不仅包含了数据变量的数值特征,还将与数据相关的其它属性(如数据的状态、报警限值等)以及对数据的操作方法(如存盘处理、报警处理等)封装在一起,作为一个整体,以对象的形式提供服务,这种把数值、属性和方法定义成一体的数据称为数据对象。
MCGS中,用数据对象表示数据,可以把数据对象认为是比传统变量具有更多功能的对象变量,象使用变量一样来使用数据对象,大多数情况下只需使用数据对象的名称来直接操作数据对象。
    实时数据库的概念
方舟子 李开复
MCGS中,用数据对象来描述系统中的实时数据,用对象变量代替传统意义上的值变量,把数据库技术管理的所有数据对象的集合称为实时数据库。
实时数据库是班主任工作量MCGS系统的核心,是应用系统的数据处理中心。系统各个部分均以实时数据库为公用区交换数据,实现各个部分协调动作。
设备窗口通过设备构件驱动外部设备,将采集的数据送入实时数据库;由用户窗口组成的图形对象,与实时数据库中的数据对象建立连接关系,以动画形式实现数据的可视化;运行策略通过策略构件,对数据进行操作和处理。如下图所示:
定义数据对象
重点:
定义数据对象的方法
定义数据对象的过程,就是构造实时数据库的过程。
定义数据对象时,在组态环境工作台窗口中,选择“实时数据库”标签,进入实时数据库窗口页,显示已定义的数据对象,如下图所示。
对于新建工程,窗口中显示系统内建的四个字符型数据对象,分别是InputETimeInputSTimeInputUser1InputUser2。当在对象列表的某一位置增加一个新的对象时,可在该处选定数据对象,鼠标单击“新增对象”按钮,则在选中的对象之后增加一个新的数据对象;如不指定位置,则在对象表的最后增加一个新的数据对象。新增对象的名称以选中的对象名称为基准,按字符递增的顺序由系统缺省确定。对于新建工程,首次定义的数据对象。缺省名称为Data1。需要注意的是,数据对象的名称中不能带有空格,否则会影响对此数据对象存盘数据的读取。
为了快速生成多个相同类型的数据对象,可以选择“成组增加”按钮,弹出“成组增加数据对象”对话框,一次定义多个数据对象,如上图所示。成组增加的数据对象,名称由主体名称和索引代码两部分组成。其中,“对象名称”一栏,代表该组对象名称的主体部分,而“起始索引值”则代表第一个成员的索引代码,其它数据对象的主体名称相同,索引代码依次递增。成组增加的数据对象,其他特性如数据类型、工程单位、最大最小值等都是一致的。
数据对象的类型
重点:
数据对象的类型和特点
adamsMCGS中,数据对象有开关型、数值型、字符型、事件型和组对象等五种类型。不同类型的数据对象,属性不同,用途也不同。
开关型数据对象
记录开关信号(0或非0)的数据对象称为开关型数据对象,通常与外部设备的数字量输入输出通道连接,用来表示某一设备当前所处的状态。开关型数据对象也用于表示MCGS中某一对象的状态,如对应于一个图形对象的可见度状态。
开关型数据对象没有工程单位和最大最小值属性,没有限值报警属性,只有状态报警属性。
cdna数值型数据对象
MCGS中,数值型数据对象的数值范围是:负数是从 -3.402823E38 -1.401298E-45,正数是从 1.401298E-45 3.402823E38。数值型数据对象除了存放数值及参与数值运算外,还提供报警信息,并能够与外部设备的模拟量输入输出通道相连接。
数值型数据对象有最大和最小值属性,其值不会超过设定的数值范围。当对象的值小于最小值或大于最大值时,对象的值分别取为最小值或最大值。
数值型数据对象有限值报警属性,可同时设置下下限、下限、上限、上上限、上偏差、下偏差等六种报警限值,当对象的值超过设定的限值时,产生报警;当对象的值回到所有的限值之内时,报警结束。
字符型数据对象
字符型数据对象是存放文字信息的单元,用于描述外部对象的状态特征,其值为多个字符组成的字符串,字符串长度最长可达64KB。字符型数据对象没有工程单位和最大、最小值属性,也没有报警属性。
事件型数据对象
事件型数据对象用来记录和标识某种事件产生或状态改变的时间信息。例如,开关量的状态发生变化,用户有按键动作,有报警信息产生等,都可以看作是一种事件发生。事件发生的信息可以直接从某种类型的外部设备获得,也可以由内部对应的策略构件提供。
事件型数据对象的值是19个字符组成的定长字符串,用来保留当前最近一次事件所产生的时刻:“年,月,日,时,分,秒”。年用四位数字表示,月、日、时、分、秒分别用两位数字表示,之间用逗号分隔。如“1997,02,03,23,45,56”,即表示该事件产生于199723234556秒。当相应的事件没有发生时,该对象的值固定设置为“1970,01,01,08,00,00”。
事件型数据对象没有工程单位和最大最小值属性,没有限值报警,只有状态报警,不同于开关型数据对象,事件型数据对象对应的事件产生一次,其报警也产生一次,且报警的产生和结束是同时完成的。
数据组对象
数据组对象是MCGS引入的一种特殊类型的数据对象,类似于一般编程语言中的数组和结构体,用于把相关的多个数据对象集合在一起,作为一个整体来定义和处理。例如在实际工程中,描述一个锅炉的工作状态有温度、压力、流量、液面高度等多个物理量,为便于处理,定义“锅炉”为一个组对象,用来表示“锅炉”这个实际的物理对象,其内部成员则由上述物理量对应的数据对象组成,这样,在对“锅炉”对象进行处理(如进行组态存盘、曲线
显示、报警显示)时,只需指定组对象的名称“锅炉”,就包括了对其所有成员的处理。
组对象只是在组态时对某一类对象的整体表示方法,实际的操作则是针对每一个成员进行的。如在报警显示动画构件中,指定要显示报警的数据对象为组对象“锅炉”,则该构件显示组对象包含的各个数据对象在运行时产生的所有报警信息。
注意:
数据组对象是多个数据对象的集合,应包含两个以上的数据对象,但不能包含其它的数据组对象。一个数据对象可以是多个不同组对象的成员。
把一个对象的类型定义成组对象后,还必须定义组对象所包含的成员及其“存盘属性”。如下图所示,在“组对象属性设置”对话框内,专门有“组对象成员”窗口页,用来定义组对象的成员。图中左边为所有数据对象的列表,右边为组对象成员列表。利用属性页中的“增加”按钮,可以把左边指定的数据对象增加到组对象成员中;“删除”按钮则把右边指定的组对象成员删除。组对象没有工程单位、最大值、最小值属性,组对象本身没有报警属性。
数据对象的属性设置
重点:
数据对象的基本属性、存盘属性和报警属性
数据对象定义之后,应根据实际需要设置数据对象的属性。在组态环境工作台窗口中,选择“实时数据库”标签,从数据对象列表中选中某一数据对象,鼠标单击“对象属性”按钮,或者鼠标双击数据对象,即可弹出如下图所示的“数据对象属性设置”对话框。对话框设有三个窗口页:基本属性、存盘属性和报警属性。
基本属性
数据对象的基本属性中包含数据对象的名称、单位、初值、取值范围和类型等基本特征信息。在基本属性设置页的“对象名称”一栏内输入代表对象名称的字符串,字符个数不得超过32个(汉字16个),对象名称的第一个字符不能为“!”、“$”符号或0~9的数字,字符串中间不能有空格。用户不指定对象的名称时,系统缺省定为“DATAX”,其中X为顺序索引代码(第一个定义的数据对象为DATA0)。
数据对象的类型必须正确设置。不同类型的数据对象,属性内容不同,按所列栏目设定对象的初始值、最大值、最小值及工程单位等。在内容注释一栏中,输入说明对象情况的注
释性文字。
警告:
在MCGS实时数据库中,采用了“使用计数”的机制来描述数据库中的一个数据对象是否被MCGS中的其他部分使用,也就是说该对象是否与其他对象建立了连接关系。采用这种机制可以避免因对象属性的修改而引起已组态完好的其它部分出错。一个数据对象如果已被使用,则不能随意修改对象的名称和类型,此时可以执行“工具”菜单中“数据对象替换”命令,对数据对象进行改名操作,同时把所有的连接部分也一次改正过来,避免出错。执行“工具”菜单中的“检查使用计数”命令,可以查阅对象被使用的情况,或更新使用计数。
存盘属性
MCGS把数据的存盘处理作为数据对象的一个属性,封装在数据对象的内部,由实时数据库根据预先设定的要求,自动完成数据的存盘操作,现场操作人员不必过问数据如何存盘以及存在什么地方等具体问题。MCGS把数据对象的存盘属性分为三部分:对象值的存盘、存盘时间的设置和报警数值的存盘。
对基本类型(包括数值型、开关型、字符型及事件型)的数据对象,可以设置为按数值的变化量方式存盘,如左图所示。变化量是指对象的当前值与前一次存盘值的差值。当对象值的变化量超过设定值时,实时数据库自动记录下该对象的当前值及其对应的时刻。如果变化量设为0,则表示只要数据对象的值发生了变化就进行存盘操作。对开关型、字符型、事件型数据对象,系统内部自动定义变化量为0。如果选择了“退出时,自动保存数据对象的当前值为初始值”一项,则MCGS运行环境退出时,把数据对象的初始值设为退出时的当前值,以便下次进入运行时,恢复该数据对象退出时的值。
对数据组对象,只能设置为定时方式存盘,如右图所示。实时数据库按设定的时间间隔,定时存储数据组对象的所有成员在同一时刻的值。如果定时间隔设为0秒,则实时数据库不进行自动存盘处理,只能用其它方式处理数据的存盘,例如可以通过MCGS中称为“数据对象操作”的策略构件来控制数据对象值的带有一定条件的存盘,也可以在脚本程序内用系统函数!SaveData来控制数据对象值的存盘。
注意:
基本类型的数据对象既可以按变化量方式存盘,又可以作为组对象的成员定时存盘,它们各自互不相关,在存盘数据库中位于不同的数据表内。
对组对象的存盘,MCGS还增加了加速存盘和自动改变存盘时间间隔的功能,加速存盘一般用于当报警产生时,加快数据记录的频率,以便事后进行分析。改变存盘时间间隔是为了在有限的存盘空间内,尽可能多保留当前最新的存盘数据,而对于过去的历史数据,通过改变存盘数据的时间间隔,减少历史数据的存储量。
在数据对象和数据组对象的存盘属性中,都有“存盘时间设置”一项,选择“永久存储”,则保
存系统自运行时开始整个过程中的所有数据,选择后者,则保存从当前开始指定时间长度内的数据。后者较前者相比,减少了历史数据的存储量。

本文发布于:2024-09-22 03:33:05,感谢您对本站的认可!

本文链接:https://www.17tex.com/xueshu/270679.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:对象   数据   存盘   属性   报警   数据库
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议