构建煤矿物联网大数据平台思路(1)

最近要构建一个综合自动化分析平台,需求是实现煤矿十几个子自动化系统的数据收集、分析、报表、统计功能。
现在的趋势是构建物联网大数据平台。但是现有系统是基于传统的EF5+PSpace实时数据库。
先从实时数据库开始下手分析。拿到 sdk 是.net、java、c三种。最后一种不会。分析前两种。

pSpace

pSpace 是一个高性能、高吞吐能力、可靠性强、跨平台的实时/历史数据库系统,可以用于采集、压缩、存储、加工、分析任何带有时间特性的生产信息,产品提供全系列的工业通讯接口及ERP 业务接口,实现生产监控到调度管理的完美整合,极大地提高企业智能化及决策的精度和速度。

下面是pSpace的架构图,我们做到项目应该是在最上层,首要的是读取PSpace的数据。
构建煤矿物联网大数据平台思路(1)_第1张图片
在pSpace SDK设计中采用了分层架构的思想,分别包含psAPISDK.dll、pSpaceAPI.dll、psNetClient.dll模块,其中psAPISDK.dll为外部接口模块,pSpaceAPI.dll为内部实现接口模块,psNetClient.dll为服务器客户端模块。主要实现了以下功能:
构建煤矿物联网大数据平台思路(1)_第2张图片

.Net SDK

构建煤矿物联网大数据平台思路(1)_第3张图片

Java SDK

构建煤矿物联网大数据平台思路(1)_第4张图片

开发

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;
...

构建煤矿物联网大数据平台思路(1)_第5张图片
java、windows service也尝试,都可以实现,唯一不足是无法使用.net core。用.net core需要配合windows service或者.net framework。有时间用.net core把sdk重写。

实现的web+移动端
构建煤矿物联网大数据平台思路(1)_第6张图片
构建煤矿物联网大数据平台思路(1)_第7张图片

后面的架构(参考别人设计v)
构建煤矿物联网大数据平台思路(1)_第8张图片

关于物联网

现在物联网技术发展火热,大部分可以直接基于MQTT协议写入实时数据库。后面准备试用TDengine+EMQX。也有很多可以参考,阿里云、华为云等云厂商都有物联网平台。但限于数据安全性,目前实施性不大,私有部署平台还行。

你可能感兴趣的:(构建煤矿物联网大数据平台思路(1))