可程式設計計算元件面向的客戶要求比較高,但其主要目的是提供給軟體製造企業在為客戶提供解決方案時可通過動態程式設計的方式來耦合其業務邏輯。 有些應用系統中有部分業務資料需要通過現場實時資料進行相應的演算法產生,這時程式設計計算元件可幫助您的應用系統和業務解耦,可程式設計計算元件適合:電力行業(sis系統,實時系統) 、氣象行業、航空行業、集團企業的資料集中化的應用解決方案等。 apace計算服務支援單點、多點計算,包括對多個apace資料庫中的資料點進行綜合計算。計算法則採用的是全編碼式資料計算擴充套件介面,演算法可以使用c#、vb.net或jscript三種語言進行編寫。支援動態編譯,每秒可對上萬個資料點實時同步計算,每個計算法則的計算結果,可寫入乙個或多個資料點中。
支援引用自定義的程式集,讓計算服務能處理更為複雜的計算法則成為可能,目前幾乎已經可以完成任何所需的計算。
計算法則指令碼編輯規範
以c#語言為例
1:,計算指令碼**必須寫入getalgorithmvalue()函式體內,函式體外禁止加入其它的函式,如需要使用自定義函式建議寫入到"公用函式體"內,如下:
//必須的函式體getalgorithmvalue,返回雙精度結果 public double getalgorithmvalue() 2:建議在編譯通過後將上部分**改為: public double getalgorithmvalue() catch } 計算法則常用方法介紹
● this.currentpoint
描述:得到當前計算寫入目標點資訊;
返回型別:mcbdata pointname 獲取或設資料點標籤名稱格式:[servicename].[dirname].[pointname],總長度為20個位元組其中包含'.'字元。 pointvalue 獲取或設定乙個值,表示點標籤的資料值,型別為雙精度。 pointtime 獲取或設定乙個值,表示點標籤時間戳,型別為整形。 time 獲取乙個值,表示點標籤時間戳,型別為datatime。 bindingname 獲取繫結格式點名,也可理解為短點名:[pointname]。 state 獲取點標籤狀態,列舉型別 pointvaluestate。 pointstate 獲取或設定乙個值,表示點標籤值狀態,型別為byte。 pointdescribe 獲取或設定點標籤描述文字,總長度不能超過20個位元組。 pointunit 獲取或設定點標籤單位文字,總長度不能超過8個位元組。 position 獲取或設定點標籤在資料流中的位置。 servicedirname 獲取點標籤名稱所對應的服務目錄名:[servicename].[dirname] 例項**:
mcbdata calcpoint= this.currentpoint;
double calcvalue= calcpoint.pointvalue;
● this.currentpointinfo
描述:得到當前計算寫入目標點基本資訊;
返回型別:pcmdata pointname 獲取或設資料點標籤名稱格式:[servicename].[dirname].[pointname],總長度為20個位元組其中包含'.'字元。 highalarm 獲取或設定乙個值,表示點標籤的發生高報的界限值。 bosomalarm 獲取或設定乙個值,表示點標籤的發生中報的界限值。 lowalarm 獲取或設定乙個值,表示點標籤的發生低報的界限值。 allowmaxvalue 獲取或設定乙個值,表示點標籤的有效值上限,當與allowminvalue相等時界限值將不起作用 allowminvalue 獲取或設定乙個值,表示點標籤的有效值下限,當與allowmaxvalue相等時界限值將不起作用 operationtype 獲取或設定點標籤的業務型別,長度20個位元組,如:鍋爐專業點或氣機專業點。 operationcode 獲取或設定點標籤的業務**, 長度20個位元組。 datashape 獲取或設定乙個值,表示點標籤的資料形態,0: 動態 1:靜態 2:自適應 staticvalue 獲取或設定乙個值,表示點標籤靜態時的值。 precision 獲取或設定乙個值,表示點標籤最大允許的精度值,255表示不做控制 hisstarttiem 獲取或設定乙個值,表示存放標籤點歷史資料的開始時間。 bindingname 獲取繫結格式點名,也可理解為短點名:[pointname]。 pointdescribe 獲取或設定點標籤描述文字,總長度不能超過20個位元組。 pointunit 獲取或設定點標籤單位文字,總長度不能超過8個位元組。 position 獲取或設定點標籤在資料流中的位置。 例項**: pcmdata pointinfo = this.currentpointinfo; string code = pointinfo.operationcode; ● getpoint(點名稱)
描述:得到指定點資訊;
返回型別:mcbdata
例項**: mcbdata point = getpoint("ddm.apace.test123"); datatime pointtime = point.time; ● apace.client.netclientmanage.getnetclient().getpoi ntvalue(點名稱)
描述:得到指定點資訊;
返回型別:mcbdata
例項**: mcbdata point = apace.client.netclientmanage.getnetclient().getpoi ntvalue("ddm.apace.test123"); int pointtime = point.pointtime; 說明: 計算指令碼可以使用apace.client程式集的所有方法,可以實現apace客戶端幾乎所有的功能 ,詳細方法呼叫請參見《apace開發手冊c#》版本; 2.5.7 計算法則例項
● 計算標籤值自增 //必須的函式體getalgorithmvalue,返回雙精度結果 public double getalgorithmvalue() ● 計算標籤隨機值 //必須的函式體getalgorithmvalue 值雙精度 public double getalgorithmvalue() ● 計算兩標籤點累加值 //必須的函式體getalgorithmvalue 值雙精度 public double getalgorithmvalue() return double.nan; } ● 多點迴圈累加值 //必須的函式體getalgorithmvalue 值雙精度 public double getalgorithmvalue() ; mcbdata pointvalues = apace.client.netclientmanage.getnetclient().getpoi ntvaluecollect(points); double value=0; foreach(mcbdata only in pointvalues) return value; } ● 根據計算點名查詢匹配點累加值 //必須的函式體getalgorithmvalue 值雙精度 public double getalgorithmvalue() return value; }
Apace實時資料庫 群集管理
群集的實時資料庫是當前所有大型生產製造企業所選用的一種實時資料庫主備模式,一般情況下由兩台實時資料庫伺服器 公用的磁碟整列 心跳線 群集管理元件 組合而成 兩台伺服器有主次之分,並且主次可以輪換,當主伺服器發生故障無法對提供服務時由備用伺服器接管向外提供服務,這時備用伺服器轉為主伺服器,另一台伺服器...
Apace實時資料庫跨防火牆
大部分的實時資料庫在跨越防火牆的功能上總是顯得無能為力,特定的埠和特定的通訊協約限制了產品對外所提供的資料服務增加了部署與實施的難度,像 電力 這種安全性較高的行業要成功部署一整套具有分布式的實時資料庫產品作為企業的基礎資料平台,其力度和實施成本可想而知。apace實時資料庫在跨越防火牆方面表現出了...
製作報表 Apace實時資料庫組態設計器
apace實時資料庫產品系列中提供了強大的組態設計功能,最終在silverlight上呈現給客戶。下面就基於該組態設計器製作一複雜報表的過程。第一步 將報表控制項拖入到設計器視窗 說明 報表控制項初始化為3行3列的 第二步 通過右鍵選單 插入列 插入行 合併列和行 等功能來設計出實際業務所需的報 式...