工业设备故障诊断解决方案 | 流数据实时采集、存储与回放

工业物联网场景中,故障分析是一个关键环节。设备发生故障时,需快速定位原因。实时采集的流式数据和操作日志记录了设备当前的运行状态,如何根据这些数据快速定位故障发生原因是一个值得研究的问题。DolphinDB 历史数据回放框架为故障分析提供了一套有效的解决方案,通过这一框架,能够复现故障发生时刻场景,从而帮助工程师们更好地进行设备故障分析。

近年来,随着物联设备、新技术和新应用不断发展,积累了海量的联网监测数据和离线采集的文件数据,这些数据是物联网行业,特别是故障分析领域珍贵的数据资产。故障分析需要基于这些数据按照特定的顺序进行回放处理,通过回溯历史数据,模拟真实场景,实现故障分析、数据挖掘等功能。由于物联数据回放涉及的数据量巨大,数据回放不能简单地从数据库中查询存储结果数据并进行回放处理,因此需要构建一种高效的流式回放处理能力的数据回放平台。

高效地存储海量历史数据、快速地从海量历史数据中精确查找目标数据、将数据严格地按照时间先后顺序进行回放、并以流式呈现海量的目标历史数据,是构建一个历史数据回放平台要考虑的关键问题。

DolphinDB 历史数据回放框架由分布式存储引擎、数据回放工具、流计算框架三大组件构成,基于这一数据回放框架,可以搭建一个轻量式数据回放平台,助力设备故障诊断与分析。

图1 DolphinDB 历史数据回放框架

1. DolphinDB 数据回放功能介绍

1.1 回放功能相关函数

DolphinDB 历史数据回放功能通过 replay 函数实现。replay 函数按时间顺序将一个或多个数据表或数据源列表回放到数据表,以模拟实时数据写入。根据 replayRate 参数和 absoluteRate 参数的不同取值,支持指定每秒记录数、指定时间跨度回放加速倍数、全速回放三种回放模式;根据输入表到输出表的映射关系,支持 1 对 1单表回放,N 对 N 多表回放和 N 对 1 异构回放三种回放形式。

replay(inputTables, outputTables, [dateColumn], [timeColumn], [replayRate], [absoluteRate=true], [parallelLevel=1])
  • inputTables:指定数据的回放形式。inputTables 为一个表对象时,为1 对 1 回放;inputTables是多个表对象时,为N对N回放;inputTables为一个字典时,为N对1回放。
  • outputTables:指定数据的回放形式。outputTables 为一个表对象时,为1 对 1 回放或N对1异构回放;outputTables是多个表对象时,为N对N回放。
  • replayRate:表示数据回放速度。若absoluteRate为true,replayRate表示每秒回放的数据条数;若absoluteRate为false,依照数据中的时间戳加速replayRate倍回放;若replayRate未指定或为负,以最大速度回放。
  • absoluteRate:为true时表示replayRate为每秒回放的记录数;为false时表示依照数据中的时间戳加速replayRate倍回放。

replayDS 根据时间维度将源数据划分为若干个小的数据源,实现对数据源的进一步切分。

replayDS(sqlObj, [dateColumn], [timeColumn],[timeRepartitionSchema])
  • sqlObj:SQL查询元代码,表示回放的数据,如<select * from loadTable("dfs://source", "source")>。SQL查询的表对象是DFS表,且至少有一个分区列为DATE类型。
  • dateColumn:日期列。若不指定,默认第一列为日期列。replayDS函数默认日期列是数据源的一个分区列,并根据分区信息将原始SQL查询拆分为多个查询。

关于 replayreplayDS 函数的详细介绍可参考 replay用户手册、replayDS用户手册。

1.2 1 对 1 单表回放

1 对 1 单表回放适用于所有数据存放在一张表中的场景。当数据量较小时,可以将需要回放的数据读取到一张内存表中,然后将内存表作为数据源进行回放。

当数据量较大时,可使用replayDS函数将输入表划分为多个较小的数据源,再使用replay函数从数据源中读取数据并回放到流数据表中。

1 对 1 单表回放并不能满足所有的回放要求。在实际应用中,故障诊断往往涉及到传感器数据和操作日志数据,在进行故障分析时,需要将两类同时回放,这时便有了多表回放的需求。

1.3 N 对 N 多表回放

N 对 N 多表回放是一种将多个输入表同步回放到多个对应目标表的模式。在 N 对 N 的模式中,不同表在同一秒内的两条数据写入目标表的顺序可能和数据中的时间先后顺序不一致。此外,若采用不同的线程对下游的 N个目标表进行订阅消费,也很难保证表与表之间的数据被处理的顺序关系。因此,N 对 N 回放不能保证整体上最严格的时序。

故障分析领域中不同类型的数据产生是有先后顺序的,比如传感器数据和操作日志,所以在对多个数据源回放时要求每条数据都严格按照时间顺序注入目标表,为此我们需要解决以下问题:

  • 不同结构的数据如何统一进行排序和注入以保证整体的顺序?
  • 如何保证对多表回放结果的实时消费也是严格按照时序进行的?

1.4 N 对 1 异构回放

针对上述 N 对 N 多表回放存在的问题,DolphinDB 进一步增加了 N 对 1 异构回放,支持将多个不同表结构的数据表写入同一张异构流数据表中,从而实现了严格按时间顺序的多表回放。

与 N 对 N 多表回放不同,N 对 1 异构回放将多个具有不同表结构的数据源回放到同一个输出表中,其中输出表为一张异构流数据表,至少包含三列:数据时间列、数据标识列和序列化后的数据。此外,N 对 1 异构回放对多个数据源进行全局排序,因此所得的输出表是严格的时间顺序。

若要对异构流数据表进行数据处理操作,如指标计算等,则需要将二进制格式的消息内容反序列化为原始结构的一行记录。DolphinDB 在脚本语言以及在 API 中均支持了对异构流数据表的解析功能。脚本支持流数据分发引擎 streamFilter 对异构流数据表进行反序列化以及反序列后结果的数据处理;同时,各类 API 在支持流数据订阅功能的基础上,扩展支持了在订阅时对异构流数据表进行反序列化。

2. 数据回放应用:数控机床异常诊断

在现代化的制造业环境中,数控机床以其精准、高效和自动化的特性,显著提升了生产效率和产品质量,扮演着核心角色。

当数控机床运行时,其内置的传感器会持续采集各种设备状态数据。这些数据包括机床运行速度、主轴转速、刀具磨损状况、冷却液温度和压力、电机负载以及系统电力消耗等关键参数。这些实时数据会存储到数据库中,作为技术人员深入的分析的参考依据。

一旦数控机床发生故障,如刀具破损、电机过热或系统错误等,设备会立即触发警报,并将相应的数据记录到故障信息表中。故障信息表会详细记录故障发生的时间、故障类型等关键信息,为后续的故障诊断和维修工作提供重要的线索。

为了确保操作的合规性和可追溯性,每当操作员在数控机床上进行操作,如程序更改、刀具更换或生产参数调整等,系统会自动记录相关的操作信息到操作日志表中。这类日志详细记录了操作的时间、操作内容等详细情况,便于在出现问题时进行快速的责任追溯和问题排查。

通过这些详细的设备状态、异常状态信息和操作日志,工厂的技术人员和管理人员可以全面、准确地了解数控机床的运行状态和工作效率,及时发现并解决问题,从而确保生产的稳定性和效率。同时,这些数据也为设备的维护、升级和优化提供了重要的数据支持。

2.1 数据说明

数控机床传感器每秒采集温度、振幅、液压等关键信息,表结构如下表所示:

字段名称数据类型字段描述
timeTIMESTAMP采集时间戳
deviceIdSYMBOL机床编号
tempDOUBLE温度
ampDOUBLE振幅
hydraDOUBLE液压

操作日志表记录了操作员对机床的操作内容,表结构如下表所示:

字段名称数据类型字段描述
timeTIMESTAMP操作发生时间
deviceIdSYMBOL机床编号
operatorIdSYMBOL员工编号
actionTypeSYMBOL操作类型

故障信息表记录异常发生的开始时间、持续时长等信息,表结构如下表所示:

字段名称数据类型字段描述
timeTIMESTAMP异常开始时间
deviceIdSYMBOL机床编号
persistTimeFLOAT异常持续时间

操作员的不当操作可能会引发机床故障,当故障发生后,分析人员需要第一时间了解故障是由哪些操作导致的,以便于后续的故障诊断和分析;同时,机床的温度、液压等指标也与操作类型相关,分析操作类型与机床状态指标的相关性也是故障诊断和分析中的重要一环。

本文所使用的数据仿真脚本详见附录4.1。

2.2 总体解决方案

针对机床故障异常诊断分析,DolphinDB 解决方案如下:

故障发生后,将故障信息表和操作日志表中的数据异构回放到流数据表中,通过 createAsofJoinEngine 流计算引擎,将故障信息和操作日志进行实时关联,了解故障是由哪些操作引起的;并实时地回放传感器采集的机床状态数据,以便分析机床各项指标与操作类型的关系。

2.3 故障诊断分析

(1)接口说明

为了便于机床故障诊断分析,本文将 DolphinDB 数据回放框架封装成了 replayIoT 函数,见附录4.2。用户通过 json 配置便能实现倍数回放、多表回放等复杂功能。对于单表回放,函数使用说明如下:

{     "dbName":目标库,必选,       "tbName":目标表,必选,     "deviceColumn":设备名称列,必选,      "dateColumn":数据时间列,可选,     "deviceId":需要回放的设备,可选,     "selectColumn":需要回放的设备,可选     "timeBegin":回放开始时间,可选,     "timeEnd":回放结束时间,可选,     "replayRate":回放倍率,可选,     "sampleRate":采样频率,可选,     "jobName":回放任务名称,必选 }

多表回放数据接口使用说明如下:

 {     "leftTable":{左表参数         "dbName":目标库,必选,         "tbName":目标表,必选,         "deviceColumn":设备名称列,必选,         "dateColumn":数据时间列,可选,         "deviceId":需要回放的设备,可选,         "timeBegin":回放开始时间,可选,         "timeEnd":回放结束时间,可选     },     "rightTable":{右表参数         "dbName":目标库,必选,         "tbName":目标表,必选,         "deviceColumn":设备名称列,必选,         "dateColumn":数据时间列,可选,         "deviceId":需要回放的设备,可选,         "timeBegin":回放开始时间,可选,         "timeEnd":回放结束时间,可选     },     "matchColumn": 左表右表连接列,必选,     "replayRate":回放倍率,可选,     "sampleRate":采样频率,可选,     "jobName":回放任务名称,必选 }

回放的实时流式数据会注入到名为 jobName 的共享流表中,用户可以订阅该表进实时分析。

(2)诊断与分析

通过以下 json 配置,开始异常信息与操作日志的关联回放任务:

args1 = ' {     "leftTable":{         "dbName":"dfs://test_anomaly",         "tbName":"anomaly",         "dateColumn":"ts",         "deviceId":"device0001",         "deviceColumn":"deviceId",         "timeBegin":2024.01.01T00:00:00.000,         "timeEnd":2024.01.01T02:00:00.000     },     "rightTable":{         "dbName":"dfs://test_log",         "tbName":"log",         "dateColumn":"ts",         "deviceId":"device0001",         "deviceColumn":"deviceId",         "timeBegin":2024.01.01T00:00:00.000,         "timeEnd":2024.01.01T02:00:00.000     },     "matchColumn": ["deviceId"],     "jobName":"warnAndLogStream",     "replayRate":50 } ' replayIoT(args1)

回放结果如下表所示:

从上述结果可知,F1、F2、F3三种操作可能会导致机床发生故障,因此在实际生产中,操纵员需要谨慎进行F1、F2、F3这三种类型的操作。

通过以下 json 配置,开始机床各项指标数据的回放任务:

args2 = ' {     "dbName":"dfs://test_state",       "tbName":"state",     "deviceColumn":"deviceId",      "dateColumn":"ts",     "deviceId":["device0001"],     "timeBegin":2024.01.01T00:00:00.000,     "timeEnd":2024.01.01T02:00:00.000,     "replayRate":50,     "sampleRate":60s,     "jobName":"stateStream" } ' replayIoT(args2)

回放结果如下表所示:

借助 DolphinDB Dashboard 功能,可将上述回放的机床各项指标进行实时的可视化展示,可视化结果如下图所示:

从上图可知,机床正常运行时,温度、液压和振幅曲线是规律的三角函数曲线。当故障发生后,温度、液压和振幅会明显偏低或偏高。从结果上来看,进行F1操作时,机床温度、振幅低于平均水平,液压高于平均水平,导致机床发生故障;进行F2操作时,机床温度、振幅高于平均水平,导致机床发生故障;进行F3操作时,机床振幅、液压低于平均水平,导致机床发生故障。

3. 小结

本教程以数控机床故障诊断为例,详细介绍了如何利用 DolphinDB 的历史数据回放功能分析设备故障。DolphinDB 的历史数据回放功能在很多领域可以发挥其价值。例如,在无人机飞行状态监测中,回放功能可以帮助用户重现飞行状态,便于排查故障;在无线电检测中,通过回放大规模的监测数据,实现多维度瀑布图回放、占用度趋势分析及信号模拟等功能。DolphinDB 的历史数据回放功能可以为企业提供强大的数据分析能力,有助于提高故障排查效率和优化业务决策。

4. 附录

4.1数据仿真脚本

4.2 数据回放框架接口 replayIoT

4.3 数据回放框架的详细介绍,请移步:replay (dolphindb.cn)

4.4 分布式存储引擎的详细介绍,请移步:TSDB 存储引擎详解 (dolphindb.cn)

4.5 流计算框架的详细介绍,请移步:流数据功能应用 (dolphindb.cn)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://xiahunao.cn/news/2905936.html

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

极速上架:探索常用的苹果应用商店上架工具,提高应用发布效率

摘要 移动应用app上架是开发者关注的重要环节&#xff0c;但常常会面临审核不通过等问题。为帮助开发者顺利完成上架工作&#xff0c;各种辅助工具应运而生。本文探讨移动应用app上架原理、常见辅助工具功能及其作用&#xff0c;最终指出合理使用工具的重要性。 引言 移动应…

【Vue3进阶】- 第2学堂小商城实战课程前言

该教程为进阶教程&#xff0c;如果你还不了解Vue3的基础知识&#xff0c;可以先前往Vue3基础教程&#xff0c;从入门到实战。 学习时遇到的任何疑问都欢迎在相应课文页面下方的问答区进行提问哦 我能学到什么&#xff1f; 编程写法千千万&#xff0c;实现需求是第一。 教程中…

重塑未来:Web3如何改变我们的数字生活

引言 随着科技的飞速发展&#xff0c;Web3已经成为数字时代的新潮流&#xff0c;其革命性的变革正在渐渐改变着我们的数字生活。本文将深入探讨Web3如何改变我们的数字生活&#xff0c;涉及其意义、应用场景、对未来的影响&#xff0c;以及我们如何适应这一变革&#xff0c;为…

MySQL创建表:练习题

练习题&#xff1a; 创建一个名为"students"的数据库&#xff0c;并切换到该数据库。 在"students"数据库中创建一个名为"grades"的表&#xff0c;包含以下字段&#xff1a; id: 整数类型 name: 字符串类型&#xff0c;学生姓名 subject: 字符串…

linux 环境安装配置

安装java17 1.下载安装包 wget https://download.oracle.com/java/17/latest/jdk-17_linux-x64_bin.tar.gz 2.解压到自定义目录/usr/local/java mkdir /usr/local/java tar zxvf jdk-17_linux-x64_bin.tar.gz -C /usr/local/java 3.配置环境变量 echo export PATH$PATH:/…

在线构建自动部署软件JPOM

系列文章目录 文章目录 系列文章目录前言 前言 前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到网站&#xff0c;这篇文章男女通用&#xff0c;看懂了就去分享给你的码吧。 简而轻的低侵入式在…

八大技术趋势案例(虚拟现实增强现实)

科技巨变,未来已来,八大技术趋势引领数字化时代。信息技术的迅猛发展,深刻改变了我们的生活、工作和生产方式。人工智能、物联网、云计算、大数据、虚拟现实、增强现实、区块链、量子计算等新兴技术在各行各业得到广泛应用,为各个领域带来了新的活力和变革。 为了更好地了解…

没人比小米更懂内卷

小米汽车 昨天晚上雷军终于公布了小米汽车的价格。 发布会直播截图&#xff0c;记住雷总穿着&#xff0c;待会考 标准版&#xff1a;21.59W Pro 版&#xff1a;24.59W Max 版&#xff1a;29.99W 此前外界的普遍预期是 23W~25W&#xff0c;实际公布价格比预期要低 2~4W&#xff…

短视频文案提取的简单实现

过春风十里&#xff0c;尽荠麦青青。春天总是让人舒坦&#xff0c;而今年的三月&#xff0c;也因为与媳妇结婚十年&#xff0c;显得格外不同。两人奢侈的请了一天假&#xff0c;瞒着孩子&#xff0c;重游西湖&#xff0c;去寻找13年前的冰棍店&#xff08;给当时还是同事的她买…

python超详细知识点汇总整理

1、注释以及编码格式的声明 单行注释&#xff1a;# &#xff08;后面放上被注释的内容&#xff09;多行注释&#xff1a;字符段落的上下加上三引号 举个例子: ‘’’ …‘’’编码格式的声明&#xff1a;#coding:utf-8 或者是 #codingutf-8 2、代码编写格式和一些琐碎说明 同…

机器学习入门:概念、步骤、分类与实践

博主猫头虎的技术世界 &#x1f31f; 欢迎来到猫头虎的博客 — 探索技术的无限可能&#xff01; 专栏链接&#xff1a; &#x1f517; 精选专栏&#xff1a; 《面试题大全》 — 面试准备的宝典&#xff01;《IDEA开发秘籍》 — 提升你的IDEA技能&#xff01;《100天精通鸿蒙》 …

【APP_TYC】数据采集案例天眼APP查_查壳脱壳反编译_③

是不是生活太艰难 还是活色生香 我们都遍体鳞伤 也慢慢坏了心肠 你得到你想要的吗 换来的是铁石心肠 可曾还有什么人 再让你幻想 &#x1f3b5; 朴树《清白之年》 查壳 工具介绍Frida-dexDump Frida-dexDump简介 Frida-dexDump是基于Frida的一个工具&…

layui laydate日期初始化的一些坑

layui laydate日期初始化的一些坑 背景坑一&#xff1a;利用class属性初始化时间控件失败坑二&#xff1a;后加载页面时间控件初始化失败坑三&#xff1a;结束时间需要默认追加23:59:59 背景 在日常开发中&#xff0c;总是会不可避免的用到日期插件&#xff0c;不同的日期插件…

【ENSP】交换机和路由器之间实现静态路由

1.概念 三层交换机只能在Vlanif逻辑口配置iP地址 路由器的每一个端口都是另外一个网段 2.实现方法 交换机允许对应vlan通行&#xff0c;配置vlanif的ip地址&#xff0c;做静态路由 路由器&#xff0c;进接口配置对应的ip&#xff0c;路由器和交换机相连的口&#xff0c;进入他的…

【实战】验证可执行文件可靠性| Windows 应急响应

0x01 简介 相信部分朋友已经看过我们的 《Windows 应急响应手册》了&#xff0c;我们这边也得到部分朋友的正向反馈&#xff0c;包括工具、方法等。 Windows 版的应急响应手册中常规安全检查部分第一版就包含了 30 多个检查项目&#xff0c;按照我们的风格&#xff0c;每个检…

备忘录删除了怎么恢复?解锁4个简单方法

误删除苹果备忘录是一个常见的问题&#xff0c;而且很容易导致我们遗失重要信息的情况。但是&#xff0c;如果您不幸误删了备忘录&#xff0c;也不必过分担心&#xff0c;因为有几种简单的方法可以帮助您恢复这些备忘录。备忘录删除了怎么恢复&#xff1f;在本文中&#xff0c;…

R语言使用dietaryindex包计算NHANES数据多种营养指数(2)

健康饮食指数 (HEI) 是评估一组食物是否符合美国人膳食指南 (DGA) 的指标。Dietindex包提供用户友好的简化方法&#xff0c;将饮食摄入数据标准化为基于指数的饮食模式&#xff0c;从而能够评估流行病学和临床研究中对这些模式的遵守情况&#xff0c;从而促进精准营养。 该软件…

2023年财报大揭秘:下一个倒闭的新势力呼之欲出

3月25日&#xff0c;零跑汽车公布了他们2023年的财报。财报数据显示&#xff0c;零跑亏损了42亿元。恰逢近段时间众多新势力车企皆公布了年报&#xff0c;而亏损也成了大家避不开的话题。那今天就让我们一起盘点一下各个车企的财报吧&#xff01; 2023年财报大揭秘&#xff1a;…

Sip-6002D 双按键SIP对讲求助终端

Sip-6002D 双按键SIP对讲求助终端 一、描述 SV-6002TP是我司的一款壁挂式一键求助对讲终端&#xff0c;具有10/100M以太网接口&#xff0c;支持G.711、G.722音频解码&#xff0c;其接收SIP网络的音频数据&#xff0c;实时解码播放&#xff0c;还配置了麦克风输入和扬声器输出…

UI的设计

一、RGB888的显示 即红色&#xff0c;绿色&#xff0c;蓝色都为8位&#xff0c;即通常说的24位色。可以很好显示各种过渡颜色。从硬件上&#xff0c;R、G、B三基色的连接线各需要有8根&#xff0c;即24根数据线&#xff1b;软件上存储的数据量也需要24位&#xff0c;即3个字节&…