应用场景

在物联网、工业互联网领域,任何一个项目的实现都离不开两部分:数据和展示。

对于工业生产监测数据的展示,图扑已经积累了很成熟的基于HTML5的2D、3D数据可视化技术,提供了一套所见即所得的WEB图形组态编辑器,包含丰富的图表展示方式。客户可以使用图扑提供的IoT Platform快速的搭建私有云,非常便捷的建立起物联网和工业互联网的WEB SCADA,实现边缘计算和海量数据的展示。

针对海量的设备上报数据,我们在做实时显示的同时还考虑将历史数据也进行无损保存,并在IoT Platform上给用户提供数据查询的支持。但这就对底层的时序数据存储提出了相当高的要求。在对比了包括InfluxDB在内的几个数据库后,在最新的解决方中,我们选用了TDengine作为时序数据的存储引擎。TDengine是涛思数据推出的一款开源的专为物联网、车联网、工业互联网、IT运维等场景设计和优化的超高性能时序数据库,本身还提供缓存、数据订阅、流式计算等功能,最大程度减少研发和运维的复杂度。

图扑的IoT Platform可以支持设备的接入,架构示意图如下。

实际应用案例-中央水机监测系统

以山东大禹水处理有限公司中央水机监控项目为例,我们来介绍在图扑物联网云平台上集成使用TDengine的思路。每个中央水机设备采集与下发控制的数据包含:进水流量、产水PH、产水电导、膜前压力、浓水压力、产水流量、开机冲洗时间设置、总计时间、停机冲洗时间设置、原水泵、高压泵、进水阀、浓排阀、紫外线、回流阀、恢复、手自动切换、产水率、产水液位、多介质返洗、活性炭返洗、原水液位等。平台通过坚实可靠的连接多台网关控制多台PLC设备,实时监测这些指标、管理设备并进行实时报警,达到水务治理的目的。

现场的传感器主要包括温度、压力、流量等采集设备,现场的执行器主要包括电机、电磁阀控制的开关等,PLC通过DI/DO、AI/AO实现传感器信息的采集和执行器动作的控制。PLC设备与MQTT网关之间采用Modbus/TCP协议通讯,MQTT网关获取采集到的PLC设备数据后再通过MQTT协议转发到云端物联网平台。平台接收到 MQTT 网关推送的数据后,会先根据用户配置的存储策略将数据写入到TDengine中。用户通过浏览器访问图形组态画面可以实时接收平台的数据推送,并以直观的方式查看组态画面的变化,实现对中央水机设备的图形化监测。平台上可设立多个项目,一台服务器可多个项目共存。

受益于TDengine的超高性能和超小体量,整个平台架构变得简化,解决工业物联网监控分析系统开发成本高、周期长、运维难度大等痛点。

以schemaless方式使用TDengine

创建数据库iot_datas,数据的保持时间为365天,过期的数据将会被成块删除:

  1. CREATE DATABASE IF NOT EXISTS iot_datas KEEP 365

超级表iot_meters用于存储设备的数据信息创建超级表的语句如下:

  1. CREATE TABLE iot_meters (ts timestamp, value double) TAGS(device_id binary(20), point_id binary(20));

此时可使用自动建表语法来实现写入数据时,用超级表定义的表结构自动创建不存在的子表,若该表已存在则不会建立新表。自动建表语法跟insert/import语法非常相似,唯一区别是语句中增加了超级表和标签信息。

假设有 1 个设备 meter_001,设备下有 1 路温度 temp 和 1 路湿度 humi,我们可以采用写入数据自动建表的方法:

  1. INSERT INTO iot_datas.meter_001_humi USING iot_datas.iot_meters TAGS ('meter_001', 'humi') VALUES ('2018-01-01 00:00:00.000',95);
  2. ​INSERT INTO iot_datas.meter_001_temp USING iot_datas.iot_meters TAGS ('meter_001', 'temp') VALUES ('2018-01-01 00:00:00.000',20);

注意:自动建表语句只能自动建立子表而不能建立超级表,这就要求超级表已经被事先定义好。这里实现schemaless的方式就是将超级表定义成一个单值模型,也即每条记录为:时间戳+采集值。在超级表的标签列中,要定义出设备ID、点位ID甚至点位物理量名称、点位分组等信息。这样同一设备不同点位的数据上报后,可以通过自动建表的语法向其对应子表中写入,在写入时指定tag值。此时,如果此点位对应子表不存在则会被自动创建;如果此点位对应子表已经存在,则TDengine本身会跳过建表过程,直接写入数据,这样也就是实现了一种schemaless的写入方式。

当然,在确定设备(子表)已经存在的情况下,可以同时向不同的超级表中同时插入数据。注意为了提高写入速度,对同一条insert SQL语句,可以向多张表插入新记录,具体如下:

  1. INSERT INTO iot_datas.meter_001_humi VALUES ('2018-01-01 00:00:01.000', 95)​ iot_datas.meter_001_temp VALUES ('2018-01-01 00:00:01.000', 20)

图扑IoT Platform介绍

IoTopo 将TDengine的schemaless方案,做的更加简便,只需要一个数据库一个超级表,所有设备测点都是这个超级表下的一个子表,子表的名称可以仅由设备序列号+测点ID组成。整个过程可以通过平台的可视化界面完成。

1)时序数据库配置

iotopo物联网平台采用RESTful接口连接TDengine,用户可以修改链接参数,修改数据库名称,修改数据保留天数。保存修改后,平台会自动创建数据库和超级表,底层建表语句见前文。配置界面下如所示:

2) 添加设备

在设备管理界面,新建一个设备,输入设备序列号和设备名称,在通讯设置中,关联 MQTT 网关,点击确定。如下图所示,我们创建了一个中央水机的设备,序列号名称为:zhongyangshuijiceshi。

3) 配置测点及存储策略

添加完设备后,需要配置设备测点,测点ID 要与 MQTT 网关推送的数据保持一致。如果测点需要保存到TDengine。可以配置存储间隔(以秒为单位),存储间隔为 0 或空时不进行保存,存储间隔为 -1 时表示变化存储(数据发生变化时存储),存储间隔为 -2 时表示实时存储(接收到 MQTT 网关推的数据时存储)。

当测点数据需要存储到TDengine时,平台会将数据保存到超级表下面的子表中,比如保存“进水流量”的底层 SQL 语句如下:

  1. INSERT INTO iot_datas.zhongyangshuijiceshi_jinshuiliuliang USING iot_datas.iot_meters TAGS ('zhongyangshuijiceshi', 'jinshuiliuliang') VALUES ('2018-01-01 00:00:00.000', 20);

4)在组态画面中显示测点数据

在制作组态画面时可以绑定测点的实时数据,如下图所示,选中一个文本框点击绑定按钮,弹出数据绑定界面,选择实时数据和对应的测点即可完成绑定。

运行组态画面时,IoT Platform会自动从数据库中读取相应的测点数据并进行实时更新。组态画面是可以导入和嵌入到其他项目中的,演示地址如下:

http://demo.iotopo.com/share?url=displays/ff2eb425-633d-11ea-83c1-fa163e07e858.json

5)访问自建的 TDengine 数据库

如果用户需要用到非IoT Platform创建的TDengine数据库,可以通过创建数据源和数据集的方式访问TDengine。首先用户需要在数据源管理界面创建一个数据源,配置方法也是需要提供REST接口,和数据库名称。

创建数据源:

创建数据集:

用户在组态画面中可以选择一个表格控件,然后点击表格控件的“行数据”绑定按钮,在绑定界面中选择绑定数据集即可完成绑定,详细可以参考:

通过前面简单的配置,中央水机监控系统大部分功能就实现了。用户可以通过IoTopo物联网平台方便的从TDengine中查询到所有接入点位的数据,如下图:

利用平台的组态工具,我们还开发了如下实时监控界面。

平台选用TDengine的理由

在之前一个版本,平台底层使用的是InfluxDB来存储时序数据。然而InfluxDB在面对海量数据时的读写性能存在瓶颈,因此我们决定采用性能更强悍的TDengine。在深入使用TDengine后,我们还发现了诸多优势。

1)支持SQL语句

TDengine支持SQL语句操作,使得TDengine可以通过插件方式无缝的嵌入到很多大数据展示系统方案中。

2)动态建表

在TDengine实现schemaless的写入方式,使数据库可以动态的适配多样的工业场景。

3)性能高、体量小

TDengine对顺序产生的时序数据插入、查询、聚合统计性能非常高,而整个数据库体量却非常小,这就让我们的平台变得更易搭建和维护。

4)节约存储成本

由于TDengine是个列式存储数据库,数据压缩后其存储空间比一般数据库大大减少。

IoTopo工业物联网平台组态示例

IoTopo工业物联网平台前端界面采用标准HTML5开发,支持 2D/3D图形组态,同时听过丰富的组态模版,可满足绝大多数工业数据可视化监控应用场景。

下面举几个项目的例子,来展示IoTopo物联网平台的组态界面。更多的界面可以访问:

http://www.iotopo.com/examples/

​某智能新风系统项目

某工厂智能监控项目

某风力发电SCADA项目

某生活园区可视化项目

TDengine的集成为工业物联网平台提供了坚实的底层,但后期也还有很多细化的工作等待去开展,比如:多个超级表的适配、多维度tag的支持等。只要我们踏踏实实做产品,在物联网和工业互联网的潮流中,一定可以做出更多的贡献。

作者简介:白华军,智慧水务研究院院长(博士),从业16年,包括SAP ERP专家顾问、软件需求分析师、技术架构师、软件项目经理等。持续推动着大型电子商务与管理信息系统成功应用与运维;对JAVA,ASP.NET、C/C++/C#,WINDOWS/LINUX系统、HANA数据库、工业物联网、数据仓库等技术都有资深建树。

TDengine在图扑工业物联网监控平台中的应用相关推荐

  1. 基于PLC联网和组态监控的工业物联网云平台

    在智能工厂.污水处理厂.冶金加工厂等行业中,PLC用来控制工业设备来保证稳定安全的生产,可以通过组态软件随时监控PLC设备的运行状态,这是打造工业物联网云平台的解决方案之一. 在该系统中,安装组态软件 ...

  2. 虚拟现实 VR 碰撞 3D 可视化,图扑打造一体化管控平台

    前言 工信部<虚拟现实产业发展白皮书 5.0 >中明确提出:"通过财政资金促进虚拟现实技术产业化,支持面向工业.文化.教育等重点行业的虚拟现实技术应用". 虚拟现实 V ...

  3. 工业物联网云平台赋能钢铁行业数字化转型之路

    钢铁行业作为我国重要的工业原材料的基础行业,具备生产流程厂.生产工艺复杂等特点,目前正面临着设备维护成本高.信息化管理手段不足.节能降耗要求高等挑战,急需围绕设备管理.生产管控.能耗管理等方面开展数字 ...

  4. 智能制造工业物联网IoT平台建设方案

    202x年智能制造工业物联网IoT平台建设方案(专业完整版).pptx-Node.js文档类资源-CSDN下载

  5. 工业物联网云平台|物联网设备终端

    工业物联网云平台|物联网设备终端:随着5G通讯的诞生,网络通讯的速度越来越快.周围互联网职业的搭档说,下一个出路可能是物联网.目前公司的产品以硬件为主,我也很幸运对物联网有一定的了解.本文想与咱们分享 ...

  6. 工业物联网云平台助力智慧运维

    智慧运维能够将分散的业务场景统一.集中管理,实现对传统设备的物联网化,帮助企业上云,实现从数字化到智能化的转型.通过"设备监控,维护服务,优化运行",对设备进行全寿命周期的管理,提 ...

  7. 基于Zero-Ice搭建的物联网监控平台

    [P1] 项目初始态势 开始接手项目时,领导要求很简单,就是做一个本地服务,手机连接上服务,能控制本地系统内的各种设备,至于设备状态如何采集与控制,数据如何分析和存储这里略过,其通信机制类似于下图: ...

  8. 助力数字孪生,TDengine 在叁零肆零仿真平台中的实践

    作者:黄培健,陈驰|叁零肆零科技有限公司 小 T 导读:上海叁零肆零科技有限公司致力于能源(气和热)的数字化转型,以现阶段压力和流量监测物联为切入,结合企业已有的信息化数据,利用物联技术解决能源企业的 ...

  9. 图扑数字孪生机械设备,为智慧工业保驾护航

    前言 数字孪生(Digital twin)是指可用于各种目的过程.人员.场所.系统和设备的数字副本.可针对不同的对象和需求,在产品设计.运行监测.能耗优化.智能管控.故障预测与诊断.设备健康管理等方面 ...

  10. 微软再次荣获 Gartner 工业物联网平台魔力象限“领先者”称号

    小编说:在新的一年里,又到了总结成绩展望未来的时候.今天我们就一起看看在过去的2021年里,微软工业物联网相关技术都取得了怎样的发展吧- 在全球各行各业纷纷加速数字化转型以降低运营成本.打造新服务类别 ...

最新文章

  1. CFString​Transform
  2. 微软服务器系统玩游戏,微软将于2020年1月22日关闭Windows7游戏服务器
  3. 网易云信亮相LiveVideoStackCon 2019,解读移动端播放器优化实践
  4. android 代码混淆模板
  5. .NET Core开发日志——WCF Client
  6. eclipse快捷键大全---分操作归纳
  7. 【每日算法Day 71】面试官想考我这道位运算题,结果我给出了三种解法
  8. 有没有可能在安卓上,使用swing/awt开发?
  9. c语言 程序设计 题库答案 p,c语言 程序设计 题库答案 p
  10. DEM高程数据下载方法
  11. visio安装后导致excel滑动滚动条闪退的问题
  12. android代码设置点击涟漪,android – 为自定义CompoundButton添加涟漪效果
  13. android 6.0 power按键深度解析
  14. 批济南某创华宇培训学校
  15. 高并发编程之ThreadPool 线程池
  16. 用计算机弹抖音上最火的纯音乐,抖音十大最火歌曲排名,包含几首超燃bgm纯音乐...
  17. 快递鸟电⼦⾯单批量打印流程与注意事项
  18. 养胃有道——送给胃不好的人
  19. ecshop源码分析:smarty模板类
  20. 消息队列(mq)是什么?

热门文章

  1. 1、51单片机——郭天祥课后习题解答
  2. PMO如何选拔和培养项目经理?
  3. 汽车车架号识别 VIN码识别,在汽车后市场的应用
  4. 华盛顿大学计算机硕士什么时候录取,2020年华盛顿大学排名TFE Times美国最佳计算机科学硕士专业排名第5...
  5. Android 仿微博客户端 ViewPaper
  6. Chrome浏览器打不开网页,连设置都打不开的解决办法
  7. DTIM间隔在组播和节电方面的综合考虑
  8. MT6573 1048MP 版本发布(笔记)
  9. “闽南金三角”——世丰管道福建漳州高级水电工程师会议
  10. 家庭亲戚关系计算器微信小程序源码