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

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