TIA Portal 指令

数学函数
计算与算法

从简单的加法到复杂的方程式,数学函数将您的原始数据转化为可用于流程控制的操作信息。

什么是 TIA Portal 中的数学函数?

TIA Portal 中的数学函数允许在不同的数据类型(整数、实数)上执行算术、三角和对数计算。它们对于传感器缩放、轨迹计算或 PID 回路调节至关重要。

TIA Portal 的特色在于 CALCULATE 指令,它允许在单个块中编写复杂的表达式(例如:(in1 + in2) * in3 / in4),与一系列独立的 ADD/MUL 块相比,提高了可读性。

基础算术

数据处理的基本操作

CALCULATE — 计算

CALC

功能

允许定义结合多个输入 (IN1...INn) 的自由数学表达式。您输入公式,TIA Portal 就会生成相应的引脚。

适用场景

只要计算需要两个以上的步骤。非常适合流量、体积计算或任何复杂的物理公式。

专家提示

您可以直接在 CALCULATE 表达式中使用 ABS、SQRT 或 SIN 等函数。

始终检查输出数据类型 (OUT) 以避免溢出 (Overflow)。

在 SCL 中,它是直接赋值的自然等价物:out := (in1 + in2) * in3;

ADD / SUB / MUL / DIV

+
+, -, *, /

功能

标准算术指令:加法、减法、乘法和除法。

适用场景

用于两个值之间的简单快速运算。

专家提示

在除法 (DIV) 中,始终使用 |OK| 测试或检查除数是否不为零,以避免 CPU 停机。

通过单击块上的黄色图标,ADD 指令可以接受两个以上的输入。

对于整数,DIV 返回整数商。使用 MOD 获取余数。

MOD — 取模

MOD

功能

返回 IN1 和 IN2 之间整数除法的余数。

适用场景

管理循环缓冲区 (ring buffers)、循环交替(例如:泵 1 和 2)或单位转换(例如:秒到分/秒)。

专家提示

对于每 'N' 个循环触发一次动作非常有用。

仅适用于整数数据类型(Int、DInt 等)。

SCL: remainder := value1 MOD value2;

符号与递增

符号管理和快速单位操作

INC / DEC — 递增 / 递减

++
++ / --

功能

对指定的变量 (InOut) 加 1 或减 1。

适用场景

简单的零件计数器、循环索引、队列管理。

专家提示

比编写完整的 ADD 或 SUB 块更快。

注意数据类型:对 32767 的 Int 进行递增将变为 -32768。

在 SCL 中:i := i + 1; 或 INC(i);

ABS — 绝对值

ABS

功能

返回一个数的正值,无论初始值是正还是负。

适用场景

计算测量值与设定值之间的偏差、距离测量、PID 误差计算。

专家提示

对于计算绝对误差 (|设定值 - 测量值|) 至关重要。

支持整数和实数。

SCL: positiveVal := ABS(originalVal);

最小 / 最大 / 限制

值的选择与边界限制

MIN / MAX — 最小值 / 最大值

MIN

功能

比较 N 个值并返回最小值 (MIN) 或最大值 (MAX)。

适用场景

从多个探头中选择最高温度,确定最小允许速度。

专家提示

您可以根据需要向块中添加任意数量的输入。

对于多传感器诊断非常有用。

SCL: peakValue := MAX(val1, val2, val3);

LIMIT — 限制

LIMIT

功能

将输入值 (IN) 限制在最小值 (MN) 和最大值 (MX) 之间。

适用场景

模拟量输出的安全保护(例如:防止阀门打开超过 80%),限制用户设定值。

专家提示

有效地替代了 MIN 和 MAX 的组合。

如果 MN > MX,输出取决于 CPU 类型,但通常取 MX。

SCL: safeVal := LIMIT(MN:=0.0, IN:=rawVal, MX:=100.0);

乘方与开方

指数与根式计算

SQRT / SQR / EXPT

SQRT

功能

SQRT (平方根), SQR (平方), EXPT (自定义幂)。

适用场景

几何计算、非线性信号转换、流体物理。

专家提示

负数的 SQRT 会产生 NaN。始终测试输入或使用 ABS。

EXPT 比较消耗 CPU 周期,简单的平方请使用 SQR。

SCL: area := 3.14 * SQR(radius);

三角函数

角度与旋转计算

SIN / COS / TAN / ASIN...

SIN

功能

标准三角函数计算及其逆函数 (arcsin, arccos, arctan)。角度始终以弧度 (RADIANS) 为单位。

适用场景

机器人运动学、角度定位计算、振荡信号处理。

专家提示

角度转弧度:弧度 = 角度 * (PI / 180)。

TAN(PI/2) 趋于无穷大,请监控您的输入。

使用 PI 的系统常量以确保精度。

高级函数

对数与小数部分

LN / EXP / FRAC

LN

功能

LN (自然对数), EXP (指数 e^x), FRAC (提取小数部分)。

适用场景

化学过程建模、指数增长或单位分离 (FRAC)。

专家提示

FRAC(12.34) 返回 0.34。在时间精度计算中非常实用。

EXP 是 LN 的精确反函数。

SCL: fraction := FRAC(totalValue);

计算方法对比

LAD vs SCL — 如何选择?

计算类型推荐方法为什么?
简单加法ADD 块 (LAD)直观且易于跟踪
复杂公式CALCULATE 块紧凑并减少程序段数量
数学算法SCL 语言语法接近 C/Pascal,非常适合公式
三角函数计算SCL 或 CALCULATE独立的块太占空间
信号限制LIMIT 块西门子标准,非常鲁棒
索引复位INC/DEC 指令实现速度非常快

常见问题

与多个 ADD/MUL 块相比,CALCULATE 有什么优势?

CALCULATE 显著减少了程序占用的空间。无需 5 个带有中间临时变量的程序段,您只需一个带有可读公式的块。如果公式发生变化,也更容易维护。

TIA Portal 如何处理计算错误(例如:除以零)?

在 S7-1200/1500 上,数学错误不一定会停止 CPU(取决于配置),但结果会变为 NaN。在关键计算之后使用 |OK| 指令在结果使用前进行验证是至关重要的。

三角函数使用的是角度还是弧度?

所有函数(SIN、COS、TAN 等)均排他性地使用弧度 (RADIANS)。如果您的 HMI 提供角度,则必须在将值注入块之前乘以 0.01745329 (PI/180)。

我可以执行 64 位 (LReal) 计算吗?

可以,S7-1500 原生支持 LReal (Long Real) 类型以提高精度。大多数数学函数都接受此类型。

简化您的复杂计算

描述您的物理公式或算法,T-IA Connect 将生成 CALCULATE 块或带有数据验证的优化 SCL 代码。