構建煤礦物聯網大數據平台思路(1)


最近要構建一個綜合自動化分析平台,需求是實現煤礦十幾個子自動化系統的數據收集、分析、報表、統計功能。
現在的趨勢是構建物聯網大數據平台。但是現有系統是基於傳統的EF5+PSpace實時數據庫。
先從實時數據庫開始下手分析。拿到 sdk 是.net、java、c三種。最后一種不會。分析前兩種。

pSpace

pSpace 是一個高性能、高吞吐能力、可靠性強、跨平台的實時/歷史數據庫系統,可以用於采集、壓縮、存儲、加工、分析任何帶有時間特性的生產信息,產品提供全系列的工業通訊接口及ERP 業務接口,實現生產監控到調度管理的完美整合,極大地提高企業智能化及決策的精度和速度。

下面是pSpace的架構圖,我們做到項目應該是在最上層,首要的是讀取PSpace的數據。
image.png
在pSpace SDK設計中采用了分層架構的思想,分別包含psAPISDK.dll、pSpaceAPI.dll、psNetClient.dll模塊,其中psAPISDK.dll為外部接口模塊,pSpaceAPI.dll為內部實現接口模塊,psNetClient.dll為服務器客戶端模塊。主要實現了以下功能:
yuque_diagram.jpg

.Net SDK

image.png

Java SDK

image.png

開發

pSpace的數據分為實時數據和歷史數據。歷史數據可以做成API接口形式提供給Web前端。實時數據如果采用短連接,也能行,畢竟項目面向用戶少。但總感覺不太優雅。也想了幾種方式:SDK提倡用發布/訂閱模式訂閱實時數據,研究后也實現了,避免了短連接對數據庫性能的影響。
簡單的demo(跑了一下午,數據沒中斷,證明這種方式可行):

....
tagTree = TagTree.CreateInstance(dbConnector);
                rootNode = tagTree.GetTreeRoot();
                tagManager = tagTree.GetMgr();

                vector = new TagVector();
                vector.Add((ITag)rootNode.SelectSingleNode("/電力監控總/中央變電所/J1高開Uab@PV"));
                RealDataSet dataSet = new RealDataSet();
                realSubscriber = new RealSubscriber();
                realSubscriber.CreateAndRead(dbConnector, vector, dataSet);
                var evt = new RealDataChangedEventHandler(realSubscriber_RealDataChanged);
                realSubscriber.RealDataChanged += evt;
                realSubscriber.Enabled = true;
...

image.png
java、windows service也嘗試,都可以實現,唯一不足是無法使用.net core。用.net core需要配合windows service或者.net framework。有時間用.net core把sdk重寫。

實現的web+移動端
image.png
2022-04-01_223849.png

后面的架構(參考別人設計v)
image.png

關於物聯網

現在物聯網技術發展火熱,大部分可以直接基於MQTT協議寫入實時數據庫。后面准備試用TDengine+EMQX。也有很多可以參考,阿里雲、華為雲等雲廠商都有物聯網平台。但限於數據安全性,目前實施性不大,私有部署平台還行。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM