状态
简单状态

本例中Machine设备上报零件产量。目标是分析设备生产率。
定义states:
- Low Production - 产量 < 75
- Moderate Production - 产量在75到110之间
- High Production - 产量 > 110
判断设备是否处于Low Production state 的条件:
1
2
var okRate = none(Machine.okDetails);
return okRate < 75;
操作步骤:
- 创建Bar chart
- 在X-axis添加Date(RAW)
- 添加State字段,标题改为Low Production
- 字段聚合改为DURATION_PERCENT
- 编写Low Production公式
- 对Moderate Production和High Production重复上述3步
- 在 view settings 中启用 stack 模式、100% stacked bar 与 labels


视图已就绪,可查看设备在各state下的停留时间占比。
多字段状态

也可使用来自不同资产/设备的多个字段计算状态。本例分析设备处于 critical 状态的时间占比,便于对比设备表现并判断维护时机以预防停机。
当pressure上升且rotation speed下降时,设备处于critical state。计算处于critical state的时间。
Critical state的形式化定义:
1
2
3
var pressure = none(Machine.pressure);
var speed = none(Machine.rotationSpeed);
return pressure > 700 && speed < 35;
- 创建Heatmap chart
- 添加State字段,标题改为Critical
- 字段聚合改为DURATION_PERCENT
- 编写Critical state公式
- 在By字段选择hour vs day of week
状态聚合
状态字段支持的聚合函数:
- Duration - 组内处于该state的总时间。单位:小时、分钟、秒等。
- Duration percent - 组内处于该state的时间占比。
获取原始字段值
在应用 transformation 前需先引用原始字段值,示例:
1
var temp = none(Machine.temperature);
- none() - 聚合函数
- Machine - 实体名称(可为 Asset Type 或 Device Type)
- temperature - 字段名
三部分缺一不可,缺少聚合函数则无法访问原始字段值。
若原始字段为 attribute、entity name 或 owner name,应使用 uniq() 聚合函数。
此模板可用于比较文本字段:
1
2
var currentState = none(machine.status);
return "running" === currentState;
支持的聚合函数
状态字段仅支持 none() 聚合函数。每个函数只接受一个参数,即形如 EntityName.fieldName 的字段引用,例如:
1
none(Machine.temperature)
状态常用于计算设备/资产在各状态下的停留时间。
语言
状态字段使用 JavaScript 编写 transformation 函数,内置引擎完全支持 ECMAScript 5.1。
下一步
-
快速入门指南 - 快速了解 Trendz 主要功能。
-
安装指南 - 学习在各种操作系统上部署 Trendz。
-
指标探索器 - 学习使用 Trendz Metric Explorer 探索和创建指标。
-
异常检测 - 学习识别数据中的异常。
-
字段计算 - 了解字段计算及使用方法。
-
预测 - 学习进行预测及遥测行为预测。
-
筛选器 - 学习在分析中筛选数据集。
-
可用可视化部件 - 了解 Trendz 中可用的可视化部件及配置方法。
-
分享与嵌入可视化 - 学习将 Trendz 可视化添加到 ThingsBoard 仪表盘或第三方网页。
-
AI 助手 - 学习使用 Trendz AI 功能。