《物聯網框架ServerSuperIO教程》- 23.動態資料介面增加快取,提高資料輸出到OPCServer和(實時)資料庫的效率
22.1 概述及要解決的問題
裝置驅動有DeviceDynamic介面,可以繼承並增加新的實時資料屬性,每次通訊完成後更新這些屬性資料。原來是通過DeviceDynamic介面實體類反射的方式獲得最新的實時資料,並輸出到關係資料庫、實時資料庫和OPC Server等介面。
但是這種操作方式存在兩個問題:1.通過反射的方式,效率不高。2.如果是一個感測器,那麼定義的實時資料屬性不多;如果是一個站點(可以理解為生產單位或閘道器層)上傳的資料,可能有成千上萬監測點,那麼不可能在繼承DeviceDynamic介面的子類中定義這麼多屬性。原來的操作方式如下圖:
為了解決上述問題,在DeviceDynamic介面中定義了DynamicCache屬性快取介面,以KeyValue的方式儲存監測資料。也就是說如果裝置驅動接收一批監測資料,可以迴圈放到DynamicCache快取中,再輸出到關係資料庫、實時資料庫和OPC Server等介面。新的操作方式如下圖:
下面介紹使用過程中注意的三個地方,裝置驅動、配置輸出監測點和配置引數等。
22.2 裝置驅動
可能有的網友已經寫好裝置驅動了,需要在此的基礎上,把資料資訊放到DynamicCache快取中。如下程式碼:
if (cr == CommandArray.RealTimeData) { Dyn dyn = (Dyn)obj; _deviceDyn.DynamicCache.AddOrUpdate("flow",dyn.Flow); _deviceDyn.DynamicCache.AddOrUpdate("signal",dyn.Signal); }
22.3 配置輸出監測點
在根目錄下開啟“ServerSuperIO.Tool.exe”工具,在【標籤配置】裡把裝置驅動裡DynamicCache快取中想要輸出到關係資料庫、實時資料庫和OPC Server等介面對應的標準名稱增加到配置項中。例如:flow和signal。如下圖:
22.4 配置引數
同樣開啟“ServerSuperIO.Tool.exe”工具,開啟【基本配置】。
如果想要把資料輸出到OPC Server介面,先安裝相應的元件,在“OPC工具和元件”目錄中,最後配置如下引數:
如果想要把資料輸出到關係資料庫或實時資料庫,配置如下引數:
物聯網&整合技術(.NET) QQ群:54256083