跳到主要内容

计算公式(公式)应用

英文名称也称为 Formula(公式)

当您不想直接使用 PLC 发送的 raw 值,而需要进行 单位换算 / 零点校正 / 量程调整 时使用。

常见场景:

  • 压力传感器发送整数 1638,但实际值为 163.8 kPa${VALUE}*0.1
  • 摄氏 → 华氏换算 → ${VALUE}*1.8+32
  • mV → V 换算 → ${VALUE}/1000

在哪里输入

在标签注册 / 修改表单的 [计算公式] 栏中填写表达式。注册后,下一个采集周期即可在画面上看到转换后的值。

  • 留空则直接使用 raw 值。
  • 输入一次后,此后每次采集都会自动应用。

基本用法

${VALUE} 表示刚从 PLC 读取的 raw 值。

需求计算公式输入 → 输出
原样使用(留空)100100
放大 10 倍${VALUE}*10550
缩小为十分之一(整数→小数)${VALUE}*0.11638163.8
除以 1000(mV → V)${VALUE}/100033003.3
加法(摄氏 → 开尔文)${VALUE}+273.1525298.15
减法(零点校正)${VALUE}-1001024924
华氏换算${VALUE}*1.8+322577.0
平方${VALUE}*${VALUE}${VALUE}^2525
平方根sqrt(${VALUE})14412.0
每分钟转速 → Hz${VALUE}/60180030.0

引用其他标签的值

可以通过 ${태그ID} 格式获取其他标签的最后值。在将零点值作为独立标签管理,或单独设置校正系数的场景中非常方便。

需求计算公式
减去其他标签作为零点${VALUE}-${TAG_ZERO}
两个标签求和${VALUE}+${TAG_OFFSET}
校正(gain × x + offset)${VALUE}*${TAG_GAIN}+${TAG_OFFSET}

此处的 TAG_ZEROTAG_OFFSETTAG_GAIN 是其他标签的 标签 ID,必须事先注册为其他标签。

引用的标签尚不存在时

若填写了 ${TAG_ZERO},但该标签从未被采集过,则计算会失败(该标签状态会出现“计算公式变量值缺失”类错误)。网关运行一个周期后会自动恢复正常,请稍候片刻。


可用函数

除四则运算外,还可使用常用的数学函数。

类型表示示例
四则运算+-*/${VALUE}+1
幂运算^${VALUE}^2(= 平方)
括号()(${VALUE}+10)*2
平方根sqrt(...)sqrt(${VALUE})
立方根cbrt(...)cbrt(${VALUE})
自然对数ln(...)ln(${VALUE})
常用对数(以10为底)log(...)log(${VALUE})
正弦/余弦/正切(弧度)sincostansin(${VALUE})
反三角asinacosatanatan(${VALUE})
双曲sinhcoshtanhtanh(${VALUE})
常量pie${VALUE}*pi/180(角度 → 弧度)

若要将角度(degree)输入换算为弧度,请乘以 *pi/180。例:sin(${VALUE}*pi/180)


适用的数据类型

计算公式仅适用于 数值型FloatDoubleIntegerLong)标签。

  • StringBoolean 标签会忽略计算公式,直接输出 raw 值。
  • 若校正后的结果超出整数范围,请将数据类型改为 FloatDouble

容易出错的地方

错误写法问题原因正确写法
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 参考页面。