[摘要]:
紫金橋?qū)崟r(shí)數(shù)據(jù)庫中點(diǎn)的內(nèi)部算法一般都是固定的,是在點(diǎn)開發(fā)時(shí)在程序中預(yù)先定義好的。如累計(jì)點(diǎn)、控制點(diǎn)、濾波點(diǎn)等其內(nèi)部算法是在開發(fā)階段完成的,用戶是不能改變的。但有時(shí)用戶需要根據(jù)需求自己定義點(diǎn)類型,同時(shí)自定義其內(nèi)部算法。當(dāng)然這可以通過三種手段來實(shí)現(xiàn):一種是增加新的點(diǎn)類型來實(shí)現(xiàn),但增加點(diǎn)類型比較復(fù)雜,且修改困難;另外一種是使用用戶程序點(diǎn);第三種是使用自由運(yùn)算點(diǎn)。但是用戶程序點(diǎn)和自由運(yùn)算點(diǎn)中不同的點(diǎn)具有獨(dú)立的算式,需要針對每個(gè)點(diǎn)進(jìn)行單獨(dú)編輯,而且自由運(yùn)算點(diǎn)只能編寫表達(dá)式而不能編寫程序塊。為此紫金橋提供了點(diǎn)的自定義算法功能。自定義算法定義好后,相當(dāng)于定義了一套算法庫,該類型的點(diǎn)都可以選擇性的使用這些算法。
一、 自定義算法簡介
點(diǎn)的自定義算法用于完成點(diǎn)的內(nèi)部邏輯,是一段用戶自定義腳本。該腳本定義了點(diǎn)中各參數(shù)間的運(yùn)算關(guān)系,一般不會涉及到具體的點(diǎn)。腳本中涉及的變量主要是該點(diǎn)類型相關(guān)的參數(shù)。
每種自定義點(diǎn)類型都可以定義若干名字不同的算法,例如定義了一種自定義點(diǎn)類型CustomTag,并且為其定義了三種算法分別為:A、B、C。那么使用點(diǎn)類型CustomTag創(chuàng)建的點(diǎn)則可以選擇使用這三種算法中的任意一種,而且不同點(diǎn)可以使用不同算法。
通常自定義算法涉及許多點(diǎn)參數(shù),這些參數(shù)的個(gè)數(shù)、種類隨需求而不同。因此自定義算法點(diǎn)一般需要自定義點(diǎn)類型,這樣用戶才可以根據(jù)需要來配置所需要的參數(shù)。
二、 自定義算法的構(gòu)成
自定義算法由3個(gè)部分組成,包括:算法名稱、算式、Formula參數(shù)。
1、 算法名稱
算法名稱是用戶自定義腳本的名字。每種算法屬于某種點(diǎn)類型,而不屬于某個(gè)具體的點(diǎn)。因此用戶自定義算法并不存放在某個(gè)具體點(diǎn)上。
一種點(diǎn)類型可以定義多種算法,每個(gè)具體的點(diǎn)可以選擇其中的一種算法。
2、 算式
每種算法中的腳本被稱為此種算法的算式。
算式在DB啟動時(shí)被裝載并進(jìn)行編譯。如果編譯腳本時(shí)出現(xiàn)錯(cuò)誤,錯(cuò)誤信息將在DB的異常顯示中報(bào)告。
3、 Formula參數(shù)
預(yù)定義算法名稱參數(shù)為Formula,該參數(shù)為字符串類型,記錄的是算法名稱。點(diǎn)通過該參數(shù)使用不同的算法。
例如:某種點(diǎn)類型有A、B 兩種算法。定義此種點(diǎn)類型的2個(gè)點(diǎn)TAG1和TAG2。TAG1、TAG2的Formula參數(shù)取值分別為‘A’,‘B’,則點(diǎn)TAG1使用的是算法A.,則點(diǎn)TAG2使用的是算法B。
三、 自定義算法的步驟
1、自定義點(diǎn)類型
在實(shí)時(shí)數(shù)據(jù)庫點(diǎn)組態(tài)菜單中,選擇點(diǎn)類型-〉點(diǎn)類型管理,定義一種點(diǎn)類型,為點(diǎn)類型添加需要的參數(shù)項(xiàng)。添加的參數(shù)中必須包含Formula參數(shù)。
2、新建算法
在實(shí)時(shí)數(shù)據(jù)庫點(diǎn)組態(tài)菜單中,選擇點(diǎn)類型-〉自定義算法,在自定義算法編輯器中,選中新建的點(diǎn)類型名,點(diǎn)擊“增加”,進(jìn)入算式編輯器,如下圖所示:

3、編輯算式
在算式編輯器中,輸入新建的算法名稱。在下面的算式框中,編輯本算法的具體算式。
算式編輯框的右側(cè)列出了本點(diǎn)類型支持的參數(shù)名稱。
算式編輯器如下圖所示:
4、完成新建
編輯完算式后,點(diǎn)擊“保存”按鈕,則將新建的內(nèi)容保存,此時(shí)算法名稱將被新建,并且不能再修改。
點(diǎn)擊“確定”按鈕,保存當(dāng)前配置,并關(guān)閉算式編輯器。
四、 總結(jié)
自定義算法功能的推出,將極大的提高紫金橋?qū)崟r(shí)數(shù)據(jù)庫點(diǎn)組態(tài)的功能,使每個(gè)數(shù)據(jù)庫點(diǎn)中的參數(shù)不再是孤立的數(shù)據(jù),而成為一個(gè)有機(jī)的整體。數(shù)據(jù)庫自定義點(diǎn)類型的功能,也將從原來的數(shù)據(jù)集合,提升為數(shù)據(jù)與邏輯的完整模塊。