计算公式(公式)应用
英文名称也称为 Formula(公式)。
当您不想直接使用 PLC 发送的 raw 值,而需要进行 单位换算 / 零点校正 / 量程调整 时使用。
常见场景:
- 压力传感器发送整数
1638,但实际值为163.8 kPa→${VALUE}*0.1 - 摄氏 → 华氏换算 →
${VALUE}*1.8+32 - mV → V 换算 →
${VALUE}/1000
在哪里输入
在标签注册 / 修改表单的 [计算公式] 栏中填写表达式。注册后,下一个采集周期即可在画面上看到转换后的值。
- 留空则直接使用 raw 值。
- 输入一次后,此后每次采集都会自动应用。
基本用法
${VALUE} 表示刚从 PLC 读取的 raw 值。
| 需求 | 计算公式 | 输入 → 输出 |
|---|---|---|
| 原样使用 | (留空) | 100 → 100 |
| 放大 10 倍 | ${VALUE}*10 | 5 → 50 |
| 缩小为十分之一(整数→小数) | ${VALUE}*0.1 | 1638 → 163.8 |
| 除以 1000(mV → V) | ${VALUE}/1000 | 3300 → 3.3 |
| 加法(摄氏 → 开尔文) | ${VALUE}+273.15 | 25 → 298.15 |
| 减法(零点校正) | ${VALUE}-100 | 1024 → 924 |
| 华氏换算 | ${VALUE}*1.8+32 | 25 → 77.0 |
| 平方 | ${VALUE}*${VALUE} 或 ${VALUE}^2 | 5 → 25 |
| 平方根 | sqrt(${VALUE}) | 144 → 12.0 |
| 每分钟转速 → Hz | ${VALUE}/60 | 1800 → 30.0 |
引用其他标签的值
可以通过 ${태그ID} 格式获取其他标签的最后值。在将零点值作为独立标签管理,或单独设置校正系数的场景中非常方便。
| 需求 | 计算公式 |
|---|---|
| 减去其他标签作为零点 | ${VALUE}-${TAG_ZERO} |
| 两个标签求和 | ${VALUE}+${TAG_OFFSET} |
| 校正(gain × x + offset) | ${VALUE}*${TAG_GAIN}+${TAG_OFFSET} |
此处的 TAG_ZERO、TAG_OFFSET、TAG_GAIN 是其他标签的 标签 ID,必须事先注册为其他标签。
若填写了 ${TAG_ZERO},但该标签从未被采集过,则计算会失败(该标签状态会出现“计算公式变量值缺失”类错误)。网关运行一个周期后会自动恢复正常,请稍候片刻。
可用函数
除四则运算外,还可使用常用的数学函数。
| 类型 | 表示 | 示例 |
|---|---|---|
| 四则运算 | +、-、*、/ | ${VALUE}+1 |
| 幂运算 | ^ | ${VALUE}^2(= 平方) |
| 括号 | (、) | (${VALUE}+10)*2 |
| 平方根 | sqrt(...) | sqrt(${VALUE}) |
| 立方根 | cbrt(...) | cbrt(${VALUE}) |
| 自然对数 | ln(...) | ln(${VALUE}) |
| 常用对数(以10为底) | log(...) | log(${VALUE}) |
| 正弦/余弦/正切(弧度) | sin、cos、tan | sin(${VALUE}) |
| 反三角 | asin、acos、atan | atan(${VALUE}) |
| 双曲 | sinh、cosh、tanh | tanh(${VALUE}) |
| 常量 | pi、e | ${VALUE}*pi/180(角度 → 弧度) |
若要将角度(degree)输入换算为弧度,请乘以 *pi/180。例:sin(${VALUE}*pi/180)。
适用的数据类型
计算公式仅适用于 数值型(Float、Double、Integer、Long)标签。
String、Boolean标签会忽略计算公式,直接输出 raw 值。- 若校正后的结果超出整数范围,请将数据类型改为
Float或Double。
容易出错的地方
| 错误写法 | 问题原因 | 正确写法 |
|---|---|---|
VALUE * 0.1 | 缺少 ${...} 标记 | ${VALUE}*0.1 |
${VALUE}*0,1 | 使用了逗号(韩文键盘误输入) | ${VALUE}*0.1(使用点号) |
if(${VALUE}>0, ...) | 不支持条件语句 | 如需条件判断,请在其他系统中处理 |
${VALUE} & 0xFF | 不支持位运算 | 改为可用算术表达的形式 |
常见问题
Q. 如何确认计算公式已生效?
标签的 [当前值] 栏中显示的即为 转换后的值。如需查看 raw 值,可将同一地址另外注册为一个不带计算公式的标签进行对比。
Q. 我想同时发送两种单位换算结果(例如摄氏和华氏)
创建两个指向同一 PLC 地址的标签,一个保持原样,另一个填入 ${VALUE}*1.8+32 之类的换算式即可。
Q. 结果显示为 NaN / Infinity
- 除以 0 →
Infinity - 负数开平方根 →
NaN
很可能是 PLC 的 raw 值范围与预期不符。请先去掉计算公式,确认 raw 值。
Q. 需要更复杂的加工(条件分支 / 多变量 / 外部数据)
仅靠计算公式难以实现。建议配合使用 PlantPulse 平台的后处理环节或独立的数据加工工具(如 Node-RED)。请参考应用管理页面中的 Node-RED 部分。
如需完整的函数 / 变量参考,请查看高级 — Formula 参考页面。