《物聯(lián)網(wǎng)框架ServerSuperIO教程》- 23.動(dòng)態(tài)數(shù)據(jù)接口增加緩存,提高數(shù)據(jù)輸出到OPCServer和(實(shí)時(shí))數(shù)據(jù)庫(kù)的效率
22.1 概述及要解決的問(wèn)題
設(shè)備驅(qū)動(dòng)有DeviceDynamic接口,可以繼承并增加新的實(shí)時(shí)數(shù)據(jù)屬性,每次通訊完成后更新這些屬性數(shù)據(jù)。原來(lái)是通過(guò)DeviceDynamic接口實(shí)體類(lèi)反射的方式獲得最新的實(shí)時(shí)數(shù)據(jù),并輸出到關(guān)系數(shù)據(jù)庫(kù)、實(shí)時(shí)數(shù)據(jù)庫(kù)和OPC Server等接口。
但是這種操作方式存在兩個(gè)問(wèn)題:1.通過(guò)反射的方式,效率不高。2.如果是一個(gè)傳感器,那么定義的實(shí)時(shí)數(shù)據(jù)屬性不多;如果是一個(gè)站點(diǎn)(可以理解為生產(chǎn)單位或網(wǎng)關(guān)層)上傳的數(shù)據(jù),可能有成千上萬(wàn)監(jiān)測(cè)點(diǎn),那么不可能在繼承DeviceDynamic接口的子類(lèi)中定義這么多屬性。原來(lái)的操作方式如下圖:
為了解決上述問(wèn)題,在DeviceDynamic接口中定義了DynamicCache屬性緩存接口,以KeyValue的方式存儲(chǔ)監(jiān)測(cè)數(shù)據(jù)。也就是說(shuō)如果設(shè)備驅(qū)動(dòng)接收一批監(jiān)測(cè)數(shù)據(jù),可以循環(huán)放到DynamicCache緩存中,再輸出到關(guān)系數(shù)據(jù)庫(kù)、實(shí)時(shí)數(shù)據(jù)庫(kù)和OPC Server等接口。新的操作方式如下圖:
下面介紹使用過(guò)程中注意的三個(gè)地方,設(shè)備驅(qū)動(dòng)、配置輸出監(jiān)測(cè)點(diǎn)和配置參數(shù)等。
22.2 設(shè)備驅(qū)動(dòng)
可能有的網(wǎng)友已經(jīng)寫(xiě)好設(shè)備驅(qū)動(dòng)了,需要在此的基礎(chǔ)上,把數(shù)據(jù)信息放到DynamicCache緩存中。如下代碼:
if (cr == CommandArray.RealTimeData)
{
Dyn dyn = (Dyn)obj;
_deviceDyn.DynamicCache.AddOrUpdate("flow",dyn.Flow);
_deviceDyn.DynamicCache.AddOrUpdate("signal",dyn.Signal);
}
22.3 配置輸出監(jiān)測(cè)點(diǎn)
在根目錄下打開(kāi)“ServerSuperIO.Tool.exe”工具,在【標(biāo)簽配置】里把設(shè)備驅(qū)動(dòng)里DynamicCache緩存中想要輸出到關(guān)系數(shù)據(jù)庫(kù)、實(shí)時(shí)數(shù)據(jù)庫(kù)和OPC Server等接口對(duì)應(yīng)的標(biāo)準(zhǔn)名稱(chēng)增加到配置項(xiàng)中。例如:flow和signal。如下圖:

22.4 配置參數(shù)
同樣打開(kāi)“ServerSuperIO.Tool.exe”工具,打開(kāi)【基本配置】。
如果想要把數(shù)據(jù)輸出到OPC Server接口,先安裝相應(yīng)的組件,在“OPC工具和組件”目錄中,最后配置如下參數(shù):

如果想要把數(shù)據(jù)輸出到關(guān)系數(shù)據(jù)庫(kù)或?qū)崟r(shí)數(shù)據(jù)庫(kù),配置如下參數(shù):

1.[連載]《C#通訊(串口和網(wǎng)絡(luò))框架的設(shè)計(jì)與實(shí)現(xiàn)》
2.[開(kāi)源]C#跨平臺(tái)物聯(lián)網(wǎng)通訊框架ServerSuperIO(SSIO)介紹
2.應(yīng)用SuperIO(SIO)和開(kāi)源跨平臺(tái)物聯(lián)網(wǎng)框架ServerSuperIO(SSIO)構(gòu)建系統(tǒng)的整體方案
5.ServerSuperIO開(kāi)源地址:https://github.com/wxzz/ServerSuperIO
物聯(lián)網(wǎng)&集成技術(shù)(.NET) QQ群:54256083
下載地址:http://www.bmpj.net/thread-14-1-1.html

浙公網(wǎng)安備 33010602011771號(hào)