《物联网框架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工具和組件”目錄中,最后配置如下參數:
??? 如果想要把數據輸出到關系數據庫或實時數據庫,配置如下參數:
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
?
總結
以上是生活随笔為你收集整理的《物联网框架ServerSuperIO教程》- 23.动态数据接口增加缓存,提高数据输出到OPCServer和(实时)数据库的效率...的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 走近RDD
- 下一篇: 简单的js文本框提示语