天天看點

《物聯網架構ServerSuperIO教程》- 23.動态資料接口增加緩存,提高資料輸出到OPCServer和(實時)資料庫的效率

 22.1   概述及要解決的問題

      裝置驅動有DeviceDynamic接口,可以繼承并增加新的實時資料屬性,每次通訊完成後更新這些屬性資料。原來是通過DeviceDynamic接口實體類反射的方式獲得最新的實時資料,并輸出到關系資料庫、實時資料庫和OPC Server等接口。

     但是這種操作方式存在兩個問題:1.通過反射的方式,效率不高。2.如果是一個傳感器,那麼定義的實時資料屬性不多;如果是一個站點(可以了解為生産機關或網關層)上傳的資料,可能有成千上萬監測點,那麼不可能在繼承DeviceDynamic接口的子類中定義這麼多屬性。原來的操作方式如下圖:

《物聯網架構ServerSuperIO教程》- 23.動态資料接口增加緩存,提高資料輸出到OPCServer和(實時)資料庫的效率
     為了解決上述問題,在DeviceDynamic接口中定義了DynamicCache屬性緩存接口,以KeyValue的方式存儲監測資料。也就是說如果裝置驅動接收一批監測資料,可以循環放到DynamicCache緩存中,再輸出到關系資料庫、實時資料庫和OPC Server等接口。新的操作方式如下圖:
《物聯網架構ServerSuperIO教程》- 23.動态資料接口增加緩存,提高資料輸出到OPCServer和(實時)資料庫的效率
    下面介紹使用過程中注意的三個地方,裝置驅動、配置輸出監測點和配置參數等。

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。如下圖:

《物聯網架構ServerSuperIO教程》- 23.動态資料接口增加緩存,提高資料輸出到OPCServer和(實時)資料庫的效率

22.4     配置參數

    同樣打開“ServerSuperIO.Tool.exe”工具,打開【基本配置】。

    如果想要把資料輸出到OPC Server接口,先安裝相應的元件,在“OPC工具群組件”目錄中,最後配置如下參數:

《物聯網架構ServerSuperIO教程》- 23.動态資料接口增加緩存,提高資料輸出到OPCServer和(實時)資料庫的效率

    如果想要把資料輸出到關系資料庫或實時資料庫,配置如下參數:

《物聯網架構ServerSuperIO教程》- 23.動态資料接口增加緩存,提高資料輸出到OPCServer和(實時)資料庫的效率

1.

[連載]《C#通訊(序列槽和網絡)架構的設計與實作》

2.[

開源]C#跨平台物聯網通訊架構ServerSuperIO(SSIO)介紹

2.

應用SuperIO(SIO)和開源跨平台物聯網架構ServerSuperIO(SSIO)建構系統的整體方案

3.

C#工業物聯網和內建系統解決方案的技術路線(資料源、資料采集、資料上傳與接收、ActiveMQ、Mongodb、WebApi、手機App)

5.ServerSuperIO開源位址:

https://github.com/wxzz/ServerSuperIO

物聯網&內建技術(.NET) QQ群:54256083 

下載下傳位址:

http://www.bmpj.net/thread-14-1-1.html