Appearance
计算属性
设备上报的是电压、电流, 报表要的却是功率——设备上根本没有这个字段。aiots 的计算属性在物模型上写一段 JS 脚本, 采集完成后把基础值算成业务字段。
📖 配置教程:物模型计算属性脚本教程
什么时候会用到这个功能
设备上报原始值, 业务要的是换算值。 车间里电压、电流都采上来了, 报表要的却是功率(功率=电压×电流)。设备吐出来的是寄存器整数、脉冲数、原始计数, 业务要的是流量、功率、累计电量。计算属性在采集完成后自动执行脚本, 把结果写进业务字段。
设备换量程、换批次, 公式跟着变。 公式写死在采集程序里, 设备换量程就得改代码重新发版, 有一次换了台量程不同的设备公式忘改, 月末对账才发现功率错了一个量级。计算属性把公式放在平台上, 换设备改一行脚本, 保存即生效, 采集链路不用重启。
跨设备取值算汇总。 methods.getValue(uid, field) 可以直接读别的设备的值, 比如把几条产线的实时值汇总成一个产量字段, 脚本之间天然能联动。
常见的几种换算。 系数换算(脉冲数×标定系数=流量)、累加(电度值每次采集累加成累计电量)、汇总(几个点位求和), 都是计算属性的典型用法。
排错边界: 算出来的字段不对, 先看原始值对不对。原始值本身不对是设备侧或采集环节问题; 原始值对、算出来不对才是脚本问题。
能解决哪些问题
| 问题 | 解法 |
|---|---|
| 设备没有业务要的字段 | 字段长在平台上, 脚本采集后算出来 |
| 公式写死采集程序, 改一次发一次版 | 脚本配在物模型, 改公式页面即生效 |
| 前端每个页面各算各的, 口径不一致 | 平台统一算, 结果与普通属性一致 |
| 跨设备取值算汇总 | getValue 直接读别的设备的值 |
