紫金橋實時數據庫有良好的擴展性,利用各種接口能夠實現多種數據處理功能,這里以鋼坯的物料跟蹤模型為例,介紹基于紫金橋實時數據庫的外置模型設計方案。
方案一:利用紫金橋自定義點類型+調用紫金橋API
首先不管使用哪種方案都用到了紫金橋實時數據庫的“點”,這里先介紹下“點”的概念。
“點”的概念
紫金橋實時數據庫中的點是一個邏輯組合,包含很多參數,每一個參數描述該點的一個屬性。舉例說一下,比如關系數據庫,其中有很多表,每一種表中會有若干字段,各字段會描述一種屬性,這里的每一種表都可以看作為紫金橋實時數據庫中的一種點類型,每一個字段可以看作為點類型的一種參數,而實際的每條記錄就可以看作為用戶定義的一個實際的點。
比如關系數據庫中有一種表,是一個物理量的信息表,其中包含物理量的名稱、測量值、報警高限、最小量程、最大量程等字段(當然關系數據庫中一般少有這種表結構),并存有“壓力、1.2Mpa、2Mpa、0MPa、3Mpa”這么一條記錄,那么對應到紫金橋實時數據庫中就是一種叫做“模擬I/O點”的點類型,該點類型具有DESC(點說明)、PV(測量值)、HI(報警高限)、EULO(最小量程)、EUHI(最大量程)等參數,并且用戶實際定義壓力點P,即P.DESC=“壓力”、P.PV=1.2(一般要連接實際設備,顯示現場實際值)、P.HI=2、P.EULO=0、P.EUHI=3。
換個角度,其實紫金橋實時數據庫中的每一種點類型相當于C++中的一個類或者一個結構體,每一種點參數相當于C++中類或結構體的成員變量,而每一個實際定義的點就相當于C++中該類或結構的一個實際對象。
通過以上可以看出,紫金橋實時數據庫是面向對象的,點是數據庫處理數據的邏輯單元。利用紫金橋實時數據庫中的點可以很方便的完成對物理量模型的管理。這里對于我們的鋼坯模型,就可以通過“點”的方式進行管理。這里就要用到紫金橋自定義點類型。
紫金橋自定義點類型的方式
由于紫金橋實時數據庫中沒有針對“鋼坯”的點類型,我們需要通過自定義點的方式添加一個“鋼坯點”,這個點要包含鋼坯的各個參數。
紫金橋自定義點的方式有兩種,一種是在實時數據庫開發系統中直接添加,無須編寫程序;另一種是利用紫金橋數據庫點開發包,通過編成的方式添加點類型。這兩種方式互有優缺,前者比較簡單,但靈活性稍差些;后者較為麻煩,但夠靈活,可以根據具體情況選擇。
調用紫金橋API
外部程序可以通過調用紫金橋API來修改實時數據庫中的點,這里要注意點名及參數名必須一致。比如利用API接口中的SetDataByName(CStringList& list, CStringList& datList),就可以批量的修改點參數。
畫面顯示
利用紫金橋開發系統中的“動畫連接”,將各點參數與對應的圖元相關聯,這樣就可以完成外部程序對圖形動畫的控制。
結構框圖
系統的結構框圖如下:
外部程序通過調用API完成對“鋼坯點”的控制,每一個“鋼坯點”對應一個鋼坯對象,并在人機界面(或遠程客戶端)以圖形的方式顯示。
方案二:利用自定義點類型
這里說的自定義點類型方式是指利用紫金橋點開發包自行開發。點開發包中不僅可以添加一些點參數形成新的數據庫點類型,還可以完成對該點類型的數據處理。利用這種方法,可以將外部進程的數據處理等工作,直接嵌入到點類型中,能夠處理鋼坯的各參數信息,在內部完成參數的讀寫控制。
結構框圖
這樣對“鋼坯”控制更加有效,并邏輯清晰,每一個“鋼坯點”為最小的控制單元,并且所有操作均在實時數據庫內部完成,系統更有效率。如果,每一個鋼坯之間還有關聯,或者受其他復雜條件控制的話,還可以添加“鋼坯管理點”來實現對鋼坯的管理控制。
兩種方案優缺點對比
注意:優缺點對比是相對的,并不是說某種方案在該性能上做得不好,只是相對而言。