在MCGS嵌入式組態(tài)軟件中的數(shù)據(jù)不同于傳統(tǒng)意義的數(shù)據(jù)或變暈,它不只包含了變暈的數(shù)值特征,還將與數(shù)據(jù)相關(guān)的其他屬性(如數(shù)據(jù)的狀態(tài)、報警限值等)以及對數(shù)據(jù)的操作方法(如存盤處理、報警處理等)封裝在一起,以對象的形式提供服務(wù)。這種把數(shù)值、屬性和方法定義成一體的數(shù)據(jù)稱為數(shù)據(jù)對象。本章介紹MCGS嵌入版中數(shù)據(jù)對象和實時數(shù)據(jù)庫的基本概念,從構(gòu)成實時數(shù)據(jù)庫的基本單元數(shù)據(jù)對象著手, 構(gòu)造實時數(shù)據(jù)庫的操作方法。實時數(shù)據(jù)庫主要包括 數(shù)據(jù)對象的定義、數(shù)據(jù)對象的類型、數(shù)據(jù)對象的屬性等內(nèi)容。
10.1實時數(shù)據(jù)庫的概述
MCGS嵌入式組態(tài)軟件用數(shù)據(jù)對象來表述系統(tǒng)中的實時數(shù) 據(jù),用對象變暈代替?zhèn)鹘y(tǒng)意義的值變暈。用數(shù)據(jù)庫技術(shù)管理的所有數(shù)據(jù)對象的集合稱為實時數(shù)據(jù)庫。實時數(shù)據(jù)庫是MCGS嵌入式組態(tài)軟件的核心,是應(yīng)用系統(tǒng)的數(shù)據(jù)處理中心。據(jù)庫為公用區(qū)交換數(shù)據(jù),實現(xiàn)各個部分協(xié)調(diào)動作。設(shè)備窗口通過設(shè)備構(gòu)件驅(qū)動外部設(shè) 備,將采集的數(shù)據(jù)送入實時數(shù)據(jù)庫;由用戶窗口組成的圖形對象,與實時數(shù)據(jù)庫中的數(shù)據(jù)對象建立連接關(guān)系,以動畫形式實現(xiàn)數(shù)據(jù)的可視化;運行策略通過策略構(gòu)件,對數(shù)據(jù)進行操作和處理。MCGS嵌入式組態(tài)軟件實時數(shù)據(jù)庫的作用示意圖如圖10-1所示。
圖10-1MCGS實時數(shù)據(jù)庫的作用示意圖
10.2數(shù)據(jù)對象的類型在MCGS嵌入式組態(tài)軟件數(shù)據(jù)對象有開關(guān)型、數(shù)值型、字符型、事件型、組對象等五種類型。不同類型的數(shù)據(jù)對象,屬性和用途也不同。
01開關(guān)型數(shù)據(jù)對象記錄開關(guān)信號(0或非0)的數(shù)據(jù)對象稱為開關(guān)型數(shù)據(jù)對象。通常與外部設(shè)備的數(shù)字量輸入輸出通道連接,用來表示某一設(shè)備當(dāng)前所處的狀態(tài)。開關(guān)型數(shù)據(jù)對象也用于表示MCGS嵌入式組態(tài)軟件中某一對象的狀態(tài),如對應(yīng)于一個圖形對象的可見度狀態(tài)。開關(guān)型數(shù)據(jù)對象沒有工程單位、最大值、最小值屬性和限值報警屬性,只有狀態(tài)報警屬性。
02數(shù)值型數(shù)據(jù)對象MCGS嵌入式組態(tài)軟件的數(shù)值型數(shù)據(jù)對象除了存放數(shù)值及參與數(shù)值運算外,還提供報警信息和外部設(shè)備的模擬量輸入輸出通道連接。數(shù)值型數(shù)據(jù)對象有限值報警屬性,可以設(shè)置下下限、下限、上限、上上限、上偏差、下偏差等六種報警限值,當(dāng)對象的值超過設(shè)定的限值時,產(chǎn)生報警;當(dāng)對象的值回到所有限值之內(nèi)時報警結(jié)束。數(shù)值型數(shù)據(jù)對象的數(shù)值范圍是 負(fù)數(shù)是從-3.402823E38 到-1.401298E-45,正數(shù)是從 1.401298E-45 到 3.402823E38。
03字符型數(shù)據(jù)對象字符型數(shù)據(jù)對象是存放文字信息的單元它用于描述外部對象的狀態(tài)特征,其值為多個字符組成的字符串,字符串長度最長可達64KB。字符型數(shù)據(jù)對象沒有工程單位和最大、最小值屬性和有報警屬性。
04事件型數(shù)據(jù)對象事件型數(shù)據(jù)對象用來記錄和標(biāo)識某種事件產(chǎn)生或狀態(tài)改變的時間信息。例如,開關(guān)暈的狀態(tài)發(fā)生變化,用戶有按鍵動 作,有報警信息產(chǎn)生等,都可以看作是一種事件發(fā)生。事件發(fā)生的信息可以直接從某種類型的外部設(shè)備獲得,也可以由內(nèi)部對應(yīng)的功能構(gòu)件提供。
事件型數(shù)據(jù)對象的值是19個字符 組成的定長字符串,用來保留當(dāng)前最近一次事件所產(chǎn)生的時刻 “年,月,日,時, 分,秒”。年用四位數(shù)字表示,月、日、時、分、秒分別用兩位數(shù)字表示,之間用逗號分隔。如“1997,02,03,23,45,56”,即表示該事件產(chǎn)生于1997年2月3日23時45分56秒。相應(yīng)的事件沒有發(fā)生時,該對象的值固定 設(shè)置為“1970,01,01,08,00”。事件型數(shù)據(jù)對象沒有工程單位、最大值和最小值屬性,沒有限值報警,只有狀態(tài)報警,不同于開關(guān)型數(shù)據(jù)對象,事件型數(shù)據(jù)對象對應(yīng)的事件產(chǎn)生一次其報警也產(chǎn)生一次,且報警的產(chǎn)生和結(jié)束是同時完成的。
05數(shù)據(jù)組型對象數(shù)據(jù)組對象是MCGS嵌入式組態(tài)軟件引入的一種特殊類型的數(shù)據(jù)對象,數(shù)據(jù)組對象類似于一般編程語言中的數(shù)組和結(jié)構(gòu)體。用于把相關(guān)的多個數(shù)據(jù)對象集合在一起,作為一個整體來定義和處理。例如描述循環(huán)水控制系統(tǒng)的工作狀態(tài)有液位1、液位2、液位3物理暈時為便于處理,定義“液位組”為一個組對象,用來表示“液位”這個實際的物理對象,其內(nèi)部成員則由上述物理暈對應(yīng)的數(shù)據(jù)對象組成。對“液位”對象進行處理(如 組態(tài)存盤、曲線顯示、報警顯示)時,只需指定組對象的名稱“液位組”包括了對其所有成員的處理。
組對象只是在組態(tài)時對某一類對象的整體表示方法,實際的操作則是針對每一個成員進行的。如在報警顯示動畫構(gòu)件 中,指定要顯示報警的數(shù)據(jù)對象為組對象的“液位組”,構(gòu)件顯示針對組對象包含的數(shù)據(jù)對象在運行時產(chǎn)生的所有報警信息。
數(shù)據(jù)組對象是單一數(shù)據(jù)對象的集合,一個數(shù)據(jù)對象可以是多個不同組對象的成員。把一個對象的類型定義為組對象后,還須定義組對象所包含的成員, 如圖10-2所示。在“組對象屬性設(shè)置”對話框內(nèi),專門有“組對象成員”窗口頁用來定義組對象的成員。圖中左邊為所有數(shù)據(jù)對象的列表,右邊為組對象成員列表。利用屬性頁中的“增加”按鈕,把左邊指定的數(shù)據(jù)對象增加到組對象成員中;“刪除”按鈕則把右邊指定的組對象成員刪除。組對象沒有工程單位 最大值和最小值的屬性,組對象本身沒有報警屬性。
圖10-2在組對象的屬性設(shè)置
10.3 數(shù)據(jù)對象的屬性設(shè)置數(shù)據(jù)對象定義完成后,應(yīng)根據(jù)實際需要設(shè)置數(shù)據(jù)對象的屬性。在組態(tài)環(huán)境工作臺窗口選擇“實時數(shù)據(jù)庫”標(biāo)簽,從數(shù)據(jù)對象 列表中選中某一數(shù)據(jù)對象,單擊“對象屬性”應(yīng)用按鈕,或者 鼠標(biāo)雙擊數(shù)據(jù)對象,即可彈出如下圖所示的“數(shù)據(jù)對象屬性設(shè)置”對話框。對話框設(shè)有三個窗口頁 基本屬性、存盤屬性和報警屬性。
01數(shù)據(jù)對象的基本屬性數(shù)據(jù)對象的基本屬性中包含數(shù)據(jù)對象的名稱、單位、初值、取值范圍和類型等基本特征信息。在基本屬性設(shè)置頁的“對 象名稱”一欄內(nèi)輸入代表對象名稱的字符串,字符個數(shù)不得超過32個(漢字16個),對象名稱的第一個字符不能為“!”、“$”符號或0~9的數(shù)字,字符串中間不能有空格。用戶不指定對象的名稱時系統(tǒng)默認(rèn)定為“DataX”,其中X為順序索引代碼(第一個定義的數(shù)據(jù)對象為Data0)。
數(shù)據(jù)對象的類型必須正確設(shè)置。不同類型的數(shù)據(jù)對象和屬性內(nèi)容不同,按所列欄目設(shè)定對象的初始值、最大值、最小值及工程單位等。在內(nèi)容注釋一欄中,輸入說明對象情況的注釋性文字。數(shù)據(jù)對象的基本屬性提示框如圖10-3所示。
02數(shù)據(jù)對象的存盤屬性MCGS嵌入版組態(tài)軟件普通的數(shù)據(jù)對象沒有存盤屬性。只有組對象才有存盤屬性。對數(shù)據(jù)組對象,只能設(shè)置為定時方式 存盤。實時數(shù)據(jù)庫按設(shè)定的時間間隔,定時存儲數(shù)據(jù)組對象 的所有成員在同一時刻的值。設(shè)定時間隔設(shè)為0秒,則實時 數(shù)據(jù)庫不進行自動存盤處理,只能用其他方式處理數(shù)據(jù)的存 盤,例如可以通過MCGS嵌入版中稱為“數(shù)據(jù)對象操作”的策 略構(gòu)件來控制數(shù)據(jù)對象值的帶有一定條件的存盤,也可以在 腳本程序內(nèi)用系統(tǒng)函數(shù)!SaveData來控制數(shù)據(jù)對象值的存盤。注意在MCGS嵌入版組態(tài)軟件中,此函數(shù)僅對數(shù)據(jù)組對象有 效。數(shù)據(jù)對象的存盤屬性如圖10-4所示。
圖10-3、4數(shù)據(jù)對象的基本屬性提示框數(shù)據(jù)組對象的存盤屬性
03數(shù)據(jù)對象的報警屬性MCGS嵌入版組態(tài)軟件把報警處理作為數(shù)據(jù)對象的一個屬 性,封裝在數(shù)據(jù)對象內(nèi)部實時數(shù)據(jù)庫判斷是否有報警產(chǎn)生, 自動進行各種報警處理。用戶應(yīng)首先設(shè)置“允許進行報警處 理”選項,才能對報警參數(shù)進行設(shè)置。不同類型的數(shù)據(jù)對象,報警屬性的設(shè)置各不相同。數(shù)值型數(shù)據(jù)對象最多可同時設(shè)置六種限值報警;開關(guān)型數(shù)據(jù)對象只有狀態(tài)報警,按下的狀態(tài)(“開”或“關(guān)”)為報警狀態(tài),另一種狀態(tài)即為正常狀態(tài),當(dāng)對象的值變?yōu)橄鄳?yīng)的值(0或1)時。將觸發(fā)報警;事件型數(shù)據(jù)對象不用設(shè)置報警狀態(tài),對應(yīng)的事件產(chǎn)生一次報警,且報警的產(chǎn)生和結(jié)束是同時的;字符型數(shù)據(jù)對象和數(shù)據(jù)組對象,沒有報警屬性。數(shù)據(jù)對象的報警屬性如圖10-5所示。
圖10-5數(shù)據(jù)對象的報警屬性
總結(jié):重點介紹了MCGS嵌入版組態(tài)軟件的中數(shù)據(jù)對象和實時數(shù)據(jù)庫的基本概念,從構(gòu)成實時數(shù)據(jù)庫的基本單元數(shù)據(jù)對象著手,詳細說明在組態(tài)過程中,構(gòu)造實時數(shù)據(jù)庫的操作方法,主要包括以下幾個方面 數(shù)據(jù)對象的定義、數(shù)據(jù)對象的類型、數(shù)據(jù)對象的屬性等內(nèi)容。
來源:網(wǎng)絡(luò),版權(quán)歸原作者所有,如有侵權(quán)請聯(lián)系刪除
