《物聯網框架ServerSuperIO教程》- 23.動態數據接口增長緩存,提升數據輸出到OPCServer和(實時)數據庫的效率

 22.1   概述及要解決的問題html

      設備驅動有DeviceDynamic接口,能夠繼承並增長新的實時數據屬性,每次通信完成後更新這些屬性數據。原來是經過DeviceDynamic接口實體類反射的方式得到最新的實時數據,並輸出到關係數據庫、實時數據庫和OPC Server等接口。git

     可是這種操做方式存在兩個問題:1.經過反射的方式,效率不高。2.若是是一個傳感器,那麼定義的實時數據屬性很少;若是是一個站點(能夠理解爲生產單位或網關層)上傳的數據,可能有成千上萬監測點,那麼不可能在繼承DeviceDynamic接口的子類中定義這麼多屬性。原來的操做方式以下圖:github


     爲了解決上述問題,在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工具和組件」目錄中,最後配置以下參數:post


    若是想要把數據輸出到關係數據庫或實時數據庫,配置以下參數:spa


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

相關文章
相關標籤/搜索