7.3 触发类型
触发定义了实时分析的执行时机。TDengine IDMP 支持十种触发类型,可在分析表单触发区段的触发类型下拉菜单中选择。
除定时窗口外,其他触发类型均要求元素属性具有实时数据流经 TDengine——即这些属性的数据引用类型必须为 TDengine Metric。若元素不包含此类属性,则仅滑动窗口和会话窗口可用。
7.3.1 滑动窗口
基于事件时间(传入数据的时间戳),按固定滑动时间间隔触发。
7.3.1.1 适用场景
- 需要随新数据持续更新的实时指标
- 需要滚动聚合计算,例如移动平均值、滚动累计量或滑动窗口 KPI
- 仪表盘数值需始终反映最近 N 分钟的活动情况
- 需要通过对比相邻窗口的计算结果来检测趋势变化或变化速率
7.3.1.2 参数
| 参数 | 说明 |
|---|---|
| 滑动时长 | 两次触发之间的时间间隔(例如每 1 分钟、每 10 秒) |
7.3.1.3 示例
滚动能耗监控。 工厂车间仪表盘显示每台电机过去 10 分钟的平均功率,每分钟更新一次。操作人员可在电机跳闸之前及时发现运行温度异常偏高的情况。
产量速率追踪。 包装线统计过去 5 分钟的产品数量,每 30 秒更新一次。线长可实时掌握当前速率是否达到班次目标。
振动趋势监测。 旋转设备监测系统每 15 秒计算一次 1 分钟滑动窗口内的振动均方根值。若输出值呈持续缓慢上升趋势,表明轴承磨损正在发展,可在故障发生前数天发出预警。
7.3.2 异常检测
按滑动时间计划对目标属性运行异常检测算法,无需人工设定阈值,系统自动识别偏离正常行为的读数。
7.3.2.1 适用场景
- 无法预先定义"异常"的具体形态,需要系统自动识别
- 设备行为较为复杂,固定阈值容易产生过多误报
- 需要系统学习正常运行规律并自动标记偏差
- 需要在故障尚未触及硬限值之前获得早期预警
7.3.2.2 参数
| 参数 | 说明 |
|---|---|
| 滑动时长 | 运行异常检测的频率 |
| 目标(必填) | 要分析异常的属性,支持选择多个。选择多个目标时,系统将为每个目标属性自动创建一个独立的子分析。 |
| 算法(必填) | 应用的异常检测算法 |
| 白噪声数据检查 | 启用时,若数据表现为白噪声(无有意义信号),则跳过异常检查 |
| 算法参数 | 可选的算法特定参数,格式为 a=1,b=2,c=3 |
7.3.2.3 示例
冷水机性能退化检测。 对冷水机的能效系数(COP)每 5 分钟执行一次异常检测分析。无需配置阈值,算法自动学习正常的季节性变化规律。当性能开始偏离该规律时,系统触发事件,可比人工效率检查提前数周发现问题。
水泵流量异常识别。 水泵流量表面看似正常,但异常检测分析识别出一种周期性的细微波动,提示叶轮空化已开始发展。维护团队可据此在下次计划停机期间安排针对性检查。
7.3.3 定时窗口
基于系统时钟按固定时间间隔触发,与数据到达时间无关。
7.3.3.1 适用场景
- 需要在固定时间生成报表或汇总——按小时、按天、按班次
- 下游系统(ERP、MES、仪表盘)需要按固定时间表接收数据
- 需要将整个班次、整天或整周的数据汇总为单条 KPI 记录
- 计算在语义上只适用于完整时间段,而非滚动窗口
7.3.3.2 参数
| 参数 | 说明 |
|---|---|
| 定时 | 时间间隔(例如每 1 小时、每 1 天) |
| 偏移 | 定时边界后延迟触发的时间。例如,1 天定时加 6 小时偏移,则每天 06:00 触发——适合在迟到数据沉降后生成日报。 |
7.3.3.3 示例
每日生产汇总。 分析每天 06:00 触发(定时 1 天,偏移 6 小时),汇总前一天的总产量、平均良率和停机时长。管理人员每日查看仪表盘即可获取汇总数据,无需手动统计。
每小时 OEE 快照。 OEE 分析每小时整点触发,计算前一小时的可用率、性能率和质量率,结果输出至趋势图,直观呈现 OEE 在整个班次中的变化趋势。
交班报告。 以 12 小时为定时间隔,通过偏移对齐班次边界。每个班次结束时自动生成完整记录——总产量、故障次数、平均工艺温度——无需人工计算。
7.3.4 数据输入
每当新数据写入元素的特定属性(或任意属性)时触发。
7.3.4.1 适用场景
- 需要分析以最小延迟响应每一条新到达的测量数据
- 实时分析结果依赖最新的单次读数,而非基于时间聚合窗口
- 需要计算派生属性(如单位换算、计算标签),确保其始终反映当前数据
- 需要对每一个传入数据点评估特定条件
7.3.4.2 参数
| 参数 | 说明 |
|---|---|
| 目标 | 触发分析的属性(其新数据写入触发分析)。留空则在任意属性有新数据时触发。 |
7.3.4.3 示例
实时单位换算。 压力传感器以 PSI 为单位上报数据。数据输入分析对每条读数执行单位换算,将结果以 bar 为单位写入派生属性。下游所有仪表盘和分析均可无延迟地使用换算后的数值。
即时限值检查。 温度属性每次有新读数时触发分析。若数值超过运行限值,系统立即生成事件,而非等待下一个计划触发周期。
7.3.5 状态窗口
当一个或多个状态的取值发生变化时触发,对上一个状态段进行计算。状态可以是整型、布尔或字符串类型的属性,也可以是属性表达式。
7.3.5.1 适用场景
- 设备以不同模式运行(运行、空闲、故障、预热等),需要分别统计和分析各模式下的运行情况
- 需要统计设备在各状态下的持续时长,用于计算利用率或 OEE
- 需要捕获每个运行模式期间的完整数据,而非仅记录状态切换事件
- 基于状态的数据分组比基于时间的分组更符合业务逻辑
- 需要由多个状态(多列)共同决定窗口边界,例如「运行状态」与「运行模式」组合
- 生产流程中每个批次携带唯一批次号属性,需要自动生成每批次汇总,无需人工标记起止时间
7.3.5.2 参数
| 参数 | 说明 |
|---|---|
| 状态(必填) | 用于判断窗口是否延续的一组值,支持整型/布尔/字符串属性,或属性表达式(如 ${attributes['温度']} > 80、CASE WHEN ... END)。可添加多个状态(多列状态窗口):所有状态均不变则窗口延续,任一状态变化则切窗。多个状态在单条分析(单条流)中计算,不再拆分为多个子分析。 |
| 持续时间(TRUE_FOR)(可选) | 窗口需满足的最小持续条件,仅当窗口持续时长 ≥ 设定时长、或数据行数 ≥ 设定行数时才视为有效窗口。支持四种模式:仅时长、仅计数、时长且计数、时长或计数。 |
| 窗口扩展(EXTEND)(可选) | 状态窗口边界扩展策略:0 = 默认(窗口起止为该状态首末数据的时间戳)、1 = 向后扩展、2 = 向前扩展。设置零状态时必须同时设置窗口扩展。 |
| 零状态(ZEROTH_STATE)(可选) | 指定「零状态」,状态取值等于零状态的窗口将被过滤、不输出计算结果。每个状态对应一个常量值;当某状态不参与零状态判断时填 NO_ZEROTH。 |
最大延迟(MAX_DELAY)为所有触发类型通用,详见下文「7.3.9 通用触发选项」。
7.3.5.3 示例
设备利用率追踪。 生产设备具有状态属性:0 = 空闲,1 = 运行,2 = 故障。状态窗口分析记录每次运行期间的持续时长和平均产量。维护团队可据此明确每次故障造成的有效生产时间损失。
OEE 可用率计算。 每次设备退出"运行"状态时,分析自动记录本次运行的持续时长。将一个班次内所有运行时长求和,即可得到 OEE 的可用率分量,无需手动提取数据。
分模式能耗分析。 压缩机以三种模式运行:待机、负载和满载。状态窗口分别捕获各模式的平均功耗,便于将实际能耗与各运行模式下的铭牌参数进行对比。
批次过程汇总。 反应釜携带批次号属性,每个新批次自增一次。每次批次号变化(即一次状态切换)时分析触发,计算上一批次的平均温度、总反应时长和产率。无论每批次运行时间长短,系统均自动生成批次汇总,无需人工干预。
7.3.6 事件窗口
基于用户定义的开始与结束条件触发,条件以针对元素属性计算的表达式表示。同一个事件窗口可只产生单个事件,也可在生命周期内按命中条件区分出多个子事件——后者用于把"一次状况、多种程度"建模为有层次的事件流。父子事件的概念、产生规则、时间线、命名规则及通知/确认行为参见 6.2 子事件。
7.3.6.1 适用场景
- 需要检测并量化持续性状况——非瞬间毛刺,而是随时间发展并最终消退的过程
- 需要捕获异常发作期间的完整信息:持续时长、峰值、均值
- 分析窗口的边界由工艺行为本身决定,而非固定时钟
- 需要通过设置条件最短持续时长来过滤噪声,避免误触发
- 同一窗口内需要按命中条件区分严重程度或确认要求——例如电压超限按"轻度/严重"分级生成不同子事件
7.3.6.2 参数
事件窗口由启动触发器和终止触发器两段组成。
启动触发器
启动触发器默认显示一行(单事件模式)。其下方提供 + 增加子表达式 按钮——点击即追加一行新的触发器;存在两行及以上时,每一行都成为一个子触发,命中后分别产生独立的子事件(参见 6.2 子事件)。流计算按行的顺序由上至下评估,命中即停——后续行不再评估。
每行包含以下字段:
| 字段 | 说明 |
|---|---|
| 触发器名称 | 行的标识名。多行场景下用于生成子事件名称的后缀,参见6.2.5 子事件的命名。 |
| 表达式(必填) | 条件表达式。计算结果为正值即视为命中。 |
| 持续时长 | 即 True For ,表达式必须持续为最短状态持续时长,用于过滤瞬时噪声。 |
| 严重程度 | 该行命中所产生事件(或子事件)的严重等级。 |
| 允许确认 | 该行命中所产生事件(或子事件)是否需要操作员确认。 |
排列顺序即优先级,高优先级(更严重的条件)必须排在前面——详见 6.2.2 触发器顺序就是优先级。追加的子表达式可通过行尾的删除图标移除;首行不可删除。
终止触发器
终止触发器为单条条件编辑器,定义关闭事件窗口的条件。
| 字段 | 说明 |
|---|---|
| 表达式(必填) | 计算结果为正值时关闭事件窗口并输出事件的条件表达式。 |
评估与校验
- 所有表达式均可通过评估按钮在保存前基于当前数据进行验证。
- 启动触发器名称在同一分析内不可重复。
7.3.6.3 示例
温度超限特征分析(单事件)。 启动触发器为 temperature > 85,终止触发器为 temperature < 80。每次工艺温度偏高时,分析捕获超限持续时长、峰值温度和超限期间的平均温度,将原始报警转化为包含完整上下文的结构化事件。
电压超限分级(子事件)。 在启动触发器下点击 + 增加子表达式 追加第二行,按优先级从高到低配置两行:severe / voltage > 240 / Critical,moderate / voltage > 230 / Major。终止触发器为 voltage < 215。窗口期间每当电压跨越更高门槛即产生对应等级的子事件;累计出现两条及以上子事件时自动生成父事件汇总整段超限过程。完整时间线参见 6.2.9 示例。
压缩机喘振检测(单事件)。 启动触发器为 discharge_pressure > surge_limit AND flow < min_flow,"持续时长"设为 5 秒以过滤瞬时噪声。确认喘振条件持续后窗口开启,压力恢复正常后终止触发器关闭窗口。每次喘振事件均记录持续时长和压力变化曲线。
7.3.7 会话窗口
当元素在指定的不活动时间内未接收到新数据时触发。分析在检测到数据静默间隙后执行,计算范围覆盖此前活跃会话期间的数据。
7.3.7.1 适用场景
- 设备以自然的突发方式传输数据——车辆仅在行驶时上报,批次设备仅在任务执行期间活跃
- 需要将每次突发活动作为一个完整、独立的分析单元处理
- 缺少固定的时间计划作为分析锚点,数据本身定义了会话的起止
- 需要按次旅程、按批次或按生产周期生成汇总,无需人工标记起止时间
7.3.7.2 参数
| 参数 | 说明 |
|---|---|
| 不活动间隔 | 数据缺失多长时间后认为会话结束并触发 |
7.3.7.3 示例
车队运输分析。 配送车辆仅在点火期间上报 GPS、车速和油耗数据。设置 10 分钟不活动间隔后,每次行程自动构成一个会话。车辆停驶后数据流中断,分析随即触发,计算本次行程的总里程、平均车速、油耗和怠速时长。
批次周期汇总。 反应釜在每次批次运行期间持续发送工艺数据,批次间隙处于静默状态。会话窗口在每次批次结束时触发,计算平均温度、总反应时长和产率,无需操作人员手动标记批次边界。
CNC 加工任务报告。 加工中心仅在执行任务时传输主轴负载和进给速率数据。每个任务构成一个会话,任务结束时分析触发,记录实际切削时间、峰值负载以及任务期间检测到的异常振动事件。
7.3.8 计数窗口
当元素属性写入的新记录数达到指定数量时触发。
7.3.8.1 适用场景
- 生产流程以循环或样本数量为节拍,而非以时间为节拍——例如每检验 100 件产品、每记录 50 条传感器读数
- 数据以不规律间隔到达,但需要固定批量大小进行分析
- 使用按需触发或事件驱动(而非固定时间表)上报数据的仪器
- 基于样本的质量分析要求每次计算使用固定数量的测量值
7.3.8.2 参数
| 参数 | 说明 |
|---|---|
| 目标 | 计数新记录的具体属性。留空则统计所有属性的新记录数。 |
| 计数 | 触发分析所需累积的新记录数量 |
7.3.8.3 示例
统计过程控制。 生产线上的质量传感器在每件产品通过时采集一次测量值。计数窗口分析每累积 25 条读数触发一次,计算该样本组的均值和标准差,并基于每组结果评估控制图限值,与 25 件产品的实际生产耗时无关。
实验室仪器批次分析。 气相色谱仪每次分析样品后上报一条结果。计数窗口每累积 10 条结果触发一次,计算平均浓度并标记批次中的离群读数,与实验室团队的自然工作单元完全契合。
7.3.9 滑动触发
按固定滑动步长周期性触发计算,但不限定窗口区间(不设 INTERVAL)。每个滑动周期对当前最新数据触发一次输出,适用于无需固定窗口长度的连续滑动场景。
7.3.9.1 适用场景
- 需要按固定节拍持续计算,但每次计算无需限定一段固定时长的窗口
- 计算逻辑只依赖最新数据或自定义范围,而非固定的回溯窗口
- 相比滑动窗口,更强调"按周期触发"而非"按窗口聚合"
7.3.9.2 参数
| 参数 | 说明 |
|---|---|
| 滑动步长 | 两次触发之间的时间间隔(例如每 1 分钟)。每到一个步长即基于当前数据触发一次计算,不限定固定窗口区间。 |
7.3.9.3 示例
周期性最新值计算。 设置滑动步长 1 分钟,分析每分钟基于最新数据触发一次计算,将结果写入派生属性,供下游仪表盘持续刷新,而无需绑定固定长度的回溯窗口。
7.3.10 统计过程控制
对目标属性按统计过程控制(SPC)控制图判异规则实时监测。系统依据属性配置的中心线与控制限自动判断数据是否出现失控(非随机)模式,无需人工设定阈值。每条选中的判异规则作为一条独立的流运行。
7.3.10.1 适用场景
- 制造与质量管控场景,需要按标准控制图判异规则(Nelson / 西方电气规则)监测关键尺寸或工艺参数
- 需要在数据尚未超出规格限之前,提前识别趋势、偏移、分层等非随机模式
- 已为属性配置了均值与标准差等统计基线,希望据此自动判异
- 需要对同一指标同时启用多条判异规则并分别产生告警
7.3.10.2 前置条件
SPC 仅可选择数据引用类型为 TDengine 指标、且已同时配置 CL、Sigma、USL、LSL 四类极限值的属性:
| 极限值 | 含义 |
|---|---|
| CL | 中心线(均值) |
| Sigma | 标准差 |
| USL | 上规格限 |
| LSL | 下规格限 |
上控制限 UCL 与下控制限 LCL 由系统按
CL ± 3σ自动推导,无需手动配置。极限值在属性的「极限值配置」中设置,详见 3.2.3.2 极限值配置。
7.3.10.3 参数
| 参数 | 说明 |
|---|---|
| 目标属性(必填) | 要监测的指标属性。仅列出已同时配置 CL、Sigma、USL、LSL 限值的 TDengine 指标属性。 |
| 判异规则(必填) | 应用的控制图判异规则,可多选。每选中一条规则,系统将为其创建一条独立的流;命中规则时产生事件 / 通知。 |
可选的八条判异规则:
| 规则 | 判异条件 |
|---|---|
| 规则 1 | 点出界(超出 UCL/LCL) |
| 规则 2 | 连续 9 点同侧 |
| 规则 3 | 连续 6 点递增或递减 |
| 规则 4 | 连续 14 点上下交替 |
| 规则 5 | 连续 3 点中 2 点在 2σ 外(同侧) |
| 规则 6 | 连续 5 点中 4 点在 1σ 外(同侧) |
| 规则 7 | 连续 15 点都在 ±1σ 内 |
| 规则 8 | 连续 8 点都在 ±1σ 外(两侧) |
删除 SPC 分析时,系统会一并清理每条规则对应的输出表。
7.3.10.4 示例
关键尺寸 SPC 监控。 对机加工关键尺寸属性(已配置 CL、Sigma、USL、LSL)启用 SPC 触发,选择规则 1、2、5。当出现单点出界、连续 9 点同侧或连续 3 点中 2 点落在 2σ 外时分别生成对应事件,便于在尺寸超出规格之前发现工艺偏移。
灌装重量过程控制。 对灌装线净重属性启用规则 2、3、6,监测均值漂移与趋势。当连续多点同侧或持续递增 / 递减时及时预警,避免批量超差。
7.3.11 通用触发选项
以下选项适用于上述所有触发类型(窗口),在触发器设置中统一提供。
7.3.11.1 参数
| 参数 | 说明 |
|---|---|
| 最大延迟(MAX_DELAY)(可选) | 窗口最大延迟触发时间。窗口打开后,到达该时间即使窗口尚未关闭也会触发一次计算,用于降低长窗口的输出延迟。取值为时间,例如 5s、1m。留空表示不设置。 |



