1. 程式人生 > >《物聯網框架ServerSuperIO教程》- 23.動態資料介面增加快取,提高資料輸出到OPCServer和(實時)資料庫的效率

《物聯網框架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