TDengine IDMP 应用场景:工业锅炉监控

TDengine IDMP 应用场景:工业锅炉监控

1. 简介

本文以一个工业燃煤锅炉系统监控为例,详细介绍通过工业上广泛使用的 OPC 中间件软件 KEPServer,轻松采集温度、压力、流量、电流等重要参数,将数据写入 TDengine TSDB 时序数据库,然后通过 TDengine IDMP 构建资产模型,利用 AI 自动生成可视化面板和实时分析,实现分钟级搭建高效、智能的 工业重要装置 的监控系统。

工业锅炉是许多行业的关键设备,为发电、化工生产、冶金和造纸等工业过程提供必需的热量和蒸汽,如果停炉检修或者锅炉出现故障,将面临停工停产的风险。工厂的锅炉房采用锅炉的台数,应根据热负荷的调度、锅炉检修和扩建的可能性等因素确定, 一般不少于两台。本示例模拟工厂内两台锅炉,可根据需要添加更多。

在这个方案中,TDengine TSDB + TDengine IDMP 的组合能够为您带来四大好处:

  1. “单列模型”快速资产建模:TDengine IDMP 与 TDengine TSDB 无缝集成,类似锅炉这样的重要工业装置的数据往往是以单列模型写入 TSDB ,在 IDMP 可以快速进行资产建模,并以树形结构的方式展现被监控的对象,设备资产一目了然。
  2. 无问智推,数据自己说话:不用在 TDengine 侧做任何配置,不用脚本,不用提问,IDMP 会基于采集的数据,自动判断为 工业锅炉 监测场景,自动为您推荐面板和实时预警,锅炉系统的运行状态尽在掌控之中。
  3. 智能问数,随问随答:不用 SQL,不用任何脚本语言,你只要用自然语言说出感兴趣的数据分析或面板,IDMP 将会自动帮您创建,把数据可视化与分析的使用门槛降为 0。
  4. 如果添加新的被监测的装置或设备,只要配置好 KEPServer,在 TDengine 侧不用做任何设置和操作,装置或设备就被自动的加入到监测的对象中,最大程度节省人力。

2. 前提条件

  • TDengine 云服务实例。如果您没有可用的 TDengine 云服务实例,可以免费注册
  • KEPServer 环境已具备。本示例服务器IP地址:192.168.1.66,请根据您自己的环境替换。

3. 配置指南

3.1 创建 IDMP 云服务实例

  1. 使用您的账号,登录 TDengine Cloud,在弹出的 TDengine 实例选择框中,选择“IDMP(工业数据管理平台)”。
  2. 在实例配置页面,分别配置 IDMP 实例和 TSDB 实例的信息和计费方案:
    • IDMP(工业数据管理平台):
      • 实例名称:boiler-idmp
      • 计费方案:IDMP-入门版
    • TSDB(时序数据库)
      • 实例名称:boiler-tsdb
      • 计费方案:入门版
  3. 等待 IDMP 实例启动后,选择加载一个场景的示例数据,即可进入 IDMP 云服务的主页面。

说明:TDengine IDMP 服务默认使用 TDengine TSDB 作为其数据源,在 IDMP 云服务实例创建过程中,会自动创建到上述 TSDB 的连接。

3.2 在 TSDB 云服务实例创建 DB

  1. 进入 IDMP 云服务实例的主页面后,点击右上角下拉菜单中的【管理后台】。
  2. 在管理后台页面点击【云资源管理】,进入云资源管理页面。
  3. 在实例列表中找到 boiler-tsdb 实例,点击【TSDB 云服务】,进入 TSDB 云服务页面。
  4. 在左侧点击【数据浏览器】,在数据浏览器页面点击【创建数据库】。
  5. 设置数据库名称为 db_boiler,完成 DB 创建。

3.3 KEPServer 配置

在系统中新建ODBC 数据源CSV_Boiler,选择驱动Microsoft Text Driver (*.txt; *.csv) ,选择数据集所在的目录。

在 KEPServer 添加通道锅炉房Advanced Simulator驱动,【Data Source】选 CSV_Boiler

TDengine IDMP 应用场景:工业锅炉监控 - TDengine Database 时序数据库

TDengine IDMP 应用场景:工业锅炉监控 - TDengine Database 时序数据库

添加设备锅炉1,选择对应的数据集Boiler1.csv,【Record Selection Interval】设置为5000ms

同样的方式添加设备锅炉2

TDengine IDMP 应用场景:工业锅炉监控 - TDengine Database 时序数据库

TDengine IDMP 应用场景:工业锅炉监控 - TDengine Database 时序数据库

【运行时】-【连接】,连接到运行时,点击设备锅炉1锅炉2,会发现标记(点位)已自动生成:

TDengine IDMP 应用场景:工业锅炉监控 - TDengine Database 时序数据库

自动生成的标记名称的可读性较差。对这些标记进行分组、重命名,得到点表文件:

删除 KEPServer 自动生成的标记。在设备锅炉1右键->【导入 CSV】,选择锅炉1.csv文件,导入标记。同样的方式完成设备锅炉2的标记导入。

TDengine IDMP 应用场景:工业锅炉监控 - TDengine Database 时序数据库

【工具】->【启动 OPC Quick Client】,验证数据是否正确模拟生成:

TDengine IDMP 应用场景:工业锅炉监控 - TDengine Database 时序数据库

3.4 零代码写入 OPC 数据到 TSDB

运行 boiler-tsdb 实例,创建 OPC 数据写入任务。

因为本示例使用的云服务在外网,需要在能访问到 KEPServer 所在的内网的某台计算机上安装 taosX Agent,以确保 TSDB 能访问到 OPC Server。本示例把 taosX Agent 安装在本地服务器192.168.1.66

创建数据写入任务 DataIn_Boiler,类型为 OPC-UA,创建代理 opcuaAgent,按提示将端点和生成的令牌复制到本地服务器上的 agent.toml 文件,启动taosX Agent服务,【检查代理是否连接正常】。

在【连接配置】,填写服务地址 192.168.1.66:49320,选择OPC UA配置的安全模式,检查连通性。

如果提示 您的数据源可以连通, 则说明 KEPServer 的 OPC-UA 已能正常访问。

TDengine IDMP 应用场景:工业锅炉监控 - TDengine Database 时序数据库

TDengine IDMP 应用场景:工业锅炉监控 - TDengine Database 时序数据库

在【点位集】->【选择数据点位】

根节点ID 填写 ns=2;s=锅炉房,命名空间可选可不选,超级表名称 opc_boilers,表名称 t_{id}

采集模式为 observe,采集间隔 5s;

点位更新模式 选择 update,未来如果 OPC Server 发生点位变更,TDengine 将自动获取新增或变更的点位。

TDengine IDMP 应用场景:工业锅炉监控 - TDengine Database 时序数据库

【新增】成功,【查看】任务状态。显示系统已自动创建表并写入数据。

TDengine IDMP 应用场景:工业锅炉监控 - TDengine Database 时序数据库

3.5 在 IDMP 中创建元素模板

登录 IDMP 实例,创建元素模板及元素,将 TDengine TSDB 的数据加载至 TDengine IDMP。

首先创建元素模板。

【基础库】->【元素模板】->【新建元素模板】,【模板名称】填 风道系统,【元素命名模式】为 模板名称${Template#name},【保存】

右上角切换至 元素模板 > 风道系统 > 属性面板 ,【新增属性模板】,【名称】填 回风室流量 (右),【值类型】选 Double , 【显示的小数位数】2,【计量单位分类】选 体积流量,【默认计量单位】选 立方米每小时,【显示计量单位】选 立方米每小时,【数据引用类型】选 TDengine 指标

TDengine IDMP 应用场景:工业锅炉监控 - TDengine Database 时序数据库

TDengine IDMP 应用场景:工业锅炉监控 - TDengine Database 时序数据库

在弹出的【数据引用表达式】填写:【连接】boiler-tsdb;【数据库】db_boiler;【源表名称模式】t_锅炉房_锅炉${KEYWORD1}_${Template#name}_回风室流量 (右);【列】val

首次添加 ${KEYWORD1} 时,系统要求【请输入关键字描述】,此处填写 请输入锅炉编号(正整数)

TDengine IDMP 应用场景:工业锅炉监控 - TDengine Database 时序数据库

说明:

  • 替换字符串 KEYWORD 在具体的元素模板内有效,同个元素模板内如果用到相同 KEYWORD,只需创建一次。
  • 如果是手工新建的元素模板也用到 KEYWORD,必须点【+】显式创建;如果是通过复制元素模板,则不用。

复制属性模板回风室流量 (右),粘贴并编辑得出另一个属性模板回风室流量 (左)。最终得到效果如下:

TDengine IDMP 应用场景:工业锅炉监控 - TDengine Database 时序数据库

按照上述方法,创建出所有7个元素模板。完整的配置过程参见:锅炉_元素模板.csv

TDengine IDMP 应用场景:工业锅炉监控 - TDengine Database 时序数据库

说明:

  • 属性模板可以跨元素模板复制粘贴,但每个元素模板里都需要建自己的 KEYWORD。
  • IDMP 已内置了各种计量单位,如有需要扩展的,可在【基础库】->【计量单位】里扩展。本示例中,扩展了计量单位mm/s 用在 引风机轴承振动
TDengine IDMP 应用场景:工业锅炉监控 - TDengine Database 时序数据库

3.6 创建资产模型

【元素浏览器】->【元素】,按层级依次构建 化工厂 > 锅炉房,在元素 锅炉房【新建子元素】锅炉1锅炉2

选择元素 锅炉1,【新建子元素】,【模板】选 风道系统,【KEYWORD1】填 1

TDengine IDMP 应用场景:工业锅炉监控 - TDengine Database 时序数据库

按上述步骤,依次选择不同的元素模板创建出 锅炉1锅炉2 的所有子元素。最终得到资产模型如下:

TDengine IDMP 应用场景:工业锅炉监控 - TDengine Database 时序数据库

在【元素浏览器】中,IDMP 会自动根据资产模型的路径信息,以树形结构的方式展示装置的监控参数。

3.7 体验 AI 生成面板

  • 在左侧资源浏览器中,点击 化工厂 > 锅炉房 > 锅炉1 > 炉膛系统 元素,通过上方路径导航菜单选择【面板】,跳转至该元素的 AI 推荐面板页面。
  • 等待 AI 生成面板推荐后,您可根据需求进行选择,例如:“过去一小时每分钟的炉膛压力 (C)变化”,在您感兴趣的面板右上方的菜单中,点击【生成】按钮。等待面板生成后,可以【查看】该面板。
TDengine IDMP 应用场景:工业锅炉监控 - TDengine Database 时序数据库
  • 面板生成后,您还可以在该面板的详情页面中选择【高级】,查看 AI 创建面板时使用的 SQL 语句:
SELECT _wstart,AVG(`炉膛压力 (C)`) AS `炉膛压力 (C)` 
FROM `idmp`.`vt_炉膛系统_162502` 
WHERE  _c0 >= now-1h and _c0 <= now INTERVAL(1m);
  • 点击【保存】,即可在下方面板列表中查看 炉膛系统 元素下对应的面板。
TDengine IDMP 应用场景:工业锅炉监控 - TDengine Database 时序数据库

3.8 体验 AI 分析

  • 在左侧资源浏览器中,点击 化工厂 > 锅炉房 > 锅炉1 > 炉膛系统 元素,通过上方路径导航菜单选择【分析】,跳转至该元素的 AI 推荐分析页面。
  • 等待 AI 生成分析问题推荐后,您可以根据需求进行选择,例如:“炉膛系统:炉膛系统的实时炉膛上部温度超过300°C持续超过15分钟时,严重告警,计算平均温度,事件窗口”,点击您感兴趣的问题链接,以进入分析编辑页面,点击页面最下方的【保存】。
TDengine IDMP 应用场景:工业锅炉监控 - TDengine Database 时序数据库

  • 退回到分析列表中,即可查看对应的分析。
TDengine IDMP 应用场景:工业锅炉监控 - TDengine Database 时序数据库

4. 更多

除了使用云服务以外,TDengine 还支持以私有化部署。为了简化部署,我们提供了 Ansible, Docker/Dcoker Compose, Helm 等多种部署方式,详见:https://github.com/taosdata/tdengine-idmp-deployment

5. 构建资产模型的建议

  • 本示例是典型的工业 OPC “单列模型”的场景。但同类设备有多个,在 IDMP 中通过元素模板去创建资产模型,不仅把“单列模型”转换为“多列模型”,并且添加同类设备的效率也大大提升。
  • 本示例中,设备(锅炉)的子元素较多,属性也较多,需配置7个元素模板。IDMP 今后的版本,将支持用 CSV 编辑资产模型,上传,批量创建,可以进一步提高资产模型的构建速度。

6. 小结

本文以 Step by Step 的方式,介绍了如何使用 KEPServer + TDengine TSDB + TDengine IDMP 快速搭建一个 工业装置 的监控系统。以往需要几天、甚至几周,并进行繁琐的配置、调试才能搭建起来的系统,使用 TDengine IDMP 后,30分钟内即可搞定。日后,如果有新的装置、设备系统需要被纳入到监控系统中,只需选择元素模板创建元素即可。如果监控的点位有变更或新增,仅需更新元素模板里相应的属性模板即可,无需操作其他地方。

搭建整个监控系统的工作几乎都在 KEPServer 的配置 以及 构建资产模型,无需编写复杂的 SQL 语句,无需脚本和其他配置,无需学习 Grafana,无需了解多少 工业装置 知识,即可轻松掌握 工业装置 的运行状态,实时监控和分析 工业装置 的工况并采取相应措施。