22.1 概述及要解決的問題html
設備驅動有DeviceDynamic接口,能夠繼承並增長新的實時數據屬性,每次通信完成後更新這些屬性數據。原來是經過DeviceDynamic接口實體類反射的方式得到最新的實時數據,並輸出到關係數據庫、實時數據庫和OPC Server等接口。git
可是這種操做方式存在兩個問題:1.經過反射的方式,效率不高。2.若是是一個傳感器,那麼定義的實時數據屬性很少;若是是一個站點(能夠理解爲生產單位或網關層)上傳的數據,可能有成千上萬監測點,那麼不可能在繼承DeviceDynamic接口的子類中定義這麼多屬性。原來的操做方式以下圖:github
爲了解決上述問題,在DeviceDynamic接口中定義了DynamicCache屬性緩存接口,以KeyValue的方式存儲監測數據。也就是說若是設備驅動接收一批監測數據,能夠循環放到DynamicCache緩存中,再輸出到關係數據庫、實時數據庫和OPC Server等接口。新的操做方式以下圖:數據庫
下面介紹使用過程當中注意的三個地方,設備驅動、配置輸出監測點和配置參數等。緩存
可能有的網友已經寫好設備驅動了,須要在此的基礎上,把數據信息放到DynamicCache緩存中。以下代碼:網絡
if (cr == CommandArray.RealTimeData) { Dyn dyn = (Dyn)obj; _deviceDyn.DynamicCache.AddOrUpdate("flow",dyn.Flow); _deviceDyn.DynamicCache.AddOrUpdate("signal",dyn.Signal); }
在根目錄下打開「ServerSuperIO.Tool.exe」工具,在【標籤配置】裏把設備驅動裏DynamicCache緩存中想要輸出到關係數據庫、實時數據庫和OPC Server等接口對應的標準名稱增長到配置項中。例如:flow和signal。以下圖:框架
一樣打開「ServerSuperIO.Tool.exe」工具,打開【基本配置】。工具
若是想要把數據輸出到OPC Server接口,先安裝相應的組件,在「OPC工具和組件」目錄中,最後配置以下參數:post
若是想要把數據輸出到關係數據庫或實時數據庫,配置以下參數:spa
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