3

构建煤矿物联网大数据平台思路(1) - 星空天宇

 2 years ago
source link: https://www.cnblogs.com/AlexanderZhao/p/16090099.html
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

最近要构建一个综合自动化分析平台,需求是实现煤矿十几个子自动化系统的数据收集、分析、报表、统计功能。
现在的趋势是构建物联网大数据平台。但是现有系统是基于传统的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。也有很多可以参考,阿里云、华为云等云厂商都有物联网平台。但限于数据安全性,目前实施性不大,私有部署平台还行。


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK