产品定价 立即试用
Trendz Analytics
入门
指南 安装 如何激活Trendz
目录

状态

 

状态

简单状态

image

本例中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 ProductionHigh Production重复上述3步
  • 在 view settings 中启用 stack 模式、100% stacked bar 与 labels

image

image

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

多字段状态

image

也可使用来自不同资产/设备的多个字段计算状态。本例分析设备处于 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。

下一步