Funciones Matemáticas
Cálculos y Algoritmos
Desde simples sumas hasta ecuaciones complejas, las funciones matemáticas transforman sus datos brutos en información útil para el control de sus procesos.
¿Qué son las funciones matemáticas en TIA Portal?
Las funciones matemáticas en TIA Portal permiten realizar cálculos aritméticos, trigonométricos y logarítmicos en diferentes tipos de datos (Enteros, Reales). Son esenciales para el escalado de sensores, el cálculo de trayectorias o la regulación de bucles PID.
TIA Portal destaca por la instrucción CALCULATE, que permite escribir una expresión compleja (ej: (in1 + in2) * in3 / in4) en un solo bloque, mejorando la legibilidad en comparación con una cadena de bloques individuales ADD/MUL.
Aritmética Básica
Operaciones fundamentales para el procesamiento de datos
CALCULATE — Calcular
CALCQué hace
Permite definir una expresión matemática libre combinando varias entradas (IN1...INn). Usted ingresa la fórmula y TIA Portal genera los pines correspondientes.
Cuándo usarlo
Tan pronto como un cálculo requiera más de dos pasos. Ideal para cálculos de caudal, volumen o cualquier fórmula física compleja.
Consejos Pro
Puede usar funciones como ABS, SQRT o SIN directamente dentro de la expresión CALCULATE.
Verifique siempre el tipo de datos de salida (OUT) para evitar desbordamientos (Overflow).
En SCL, es el equivalente natural de una asignación directa: out := (in1 + in2) * in3;
ADD / SUB / MUL / DIV
+Qué hacen
Instrucciones aritméticas estándar: Suma, Resta, Multiplicación y División.
Cuándo usarlas
Para operaciones simples y rápidas entre dos valores.
Consejos Pro
En la división (DIV), use siempre la prueba |OK| o verifique que el divisor no sea cero para evitar una parada de la CPU.
La instrucción ADD puede aceptar más de dos entradas haciendo clic en el icono amarillo del bloque.
Para enteros, DIV devuelve el cociente entero. Use MOD para el resto.
MOD — Módulo
MODQué hace
Devuelve el resto de la división entera entre IN1 e IN2.
Cuándo usarlo
Gestión de buffers circulares, alternancia de ciclos (ej: bombas 1 y 2), o conversión de unidades (ej: segundos a minutos/segundos).
Consejos Pro
Muy útil para activar una acción cada 'N' ciclos.
Solo disponible para tipos de datos enteros (Int, DInt, etc.).
SCL: remainder := value1 MOD value2;
Signo e Incremento
Gestión del signo y operaciones unitarias rápidas
INC / DEC — Incrementar / Decrementar
++Qué hace
Suma o resta 1 a la variable especificada (en InOut).
Cuándo usarlo
Contadores de piezas simples, índices de bucles, gestión de colas.
Consejos Pro
Más rápido de escribir que un bloque ADD o SUB completo.
Atención al tipo de datos: un incremento en un Int a 32767 pasará a -32768.
En SCL: i := i + 1; o INC(i);
ABS — Valor Absoluto
ABSQué hace
Devuelve el valor positivo de un número, sea positivo o negativo originalmente.
Cuándo usarlo
Cálculo de desviación entre una medida y una consigna, medida de distancia, cálculo de error PID.
Consejos Pro
Indispensable para calcular un error absoluto (|consigna - medida|).
Soporta enteros y reales.
SCL: positiveVal := ABS(originalVal);
Mín / Máx / Límite
Selección y delimitación de valores
MIN / MAX — Mínimo / Máximo
MINQué hace
Compara N valores y devuelve el más pequeño (MIN) o el más grande (MAX).
Cuándo usarlo
Selección de la temperatura más alta entre varias sondas, determinación de la velocidad mínima permitida.
Consejos Pro
Puede añadir tantas entradas como sea necesario al bloque.
Muy útil para diagnósticos multisensor.
SCL: peakValue := MAX(val1, val2, val3);
LIMIT — Limitar
LIMITQué hace
Delimita (clamp) un valor de entrada (IN) entre un mínimo (MN) y un máximo (MX).
Cuándo usarlo
Seguridad en salidas analógicas (ej: evitar que una válvula se abra más del 80%), limitación de consignas de usuario.
Consejos Pro
Reemplaza ventajosamente a una combinación de MIN y MAX.
Si MN > MX, la salida depende del tipo de CPU, pero generalmente se toma MX.
SCL: safeVal := LIMIT(MN:=0.0, IN:=rawVal, MX:=100.0);
Potencias y Raíces
Cálculos exponenciales y radicales
SQRT / SQR / EXPT
SQRTQué hacen
SQRT (Raíz cuadrada), SQR (Cuadrado), EXPT (Potencia personalizada).
Cuándo usarlas
Cálculos de geometría, conversión de señales no lineales, física de fluidos.
Consejos Pro
La SQRT de un número negativo da NaN. Pruebe siempre la entrada o use ABS.
EXPT consume muchos ciclos de CPU, use SQR para cuadrados simples.
SCL: area := 3.14 * SQR(radius);
Trigonometría
Cálculos de ángulos y rotaciones
SIN / COS / TAN / ASIN...
SINQué hacen
Cálculos trigonométricos estándar y sus inversos (arcsin, arccos, arctan). Los ángulos están siempre en RADIANES.
Cuándo usarlas
Cinemática de robots, cálculos de posicionamiento angular, procesamiento de señales oscilantes.
Consejos Pro
Para convertir grados a radianes: Radianes = Grados * (PI / 180).
TAN(PI/2) tiende a infinito, vigile sus entradas.
Use las constantes del sistema para PI para garantizar la precisión.
Funciones Avanzadas
Logaritmos y partes fraccionarias
LN / EXP / FRAC
LNQué hacen
LN (Log natural), EXP (Exponencial e^x), FRAC (Extrae la parte decimal).
Cuándo usarlas
Modelado de procesos químicos, crecimiento exponencial o separación de unidades (FRAC).
Consejos Pro
FRAC(12.34) devuelve 0.34. Muy práctico para cálculos de precisión temporal.
EXP es el inverso exacto de LN.
SCL: fraction := FRAC(totalValue);
Comparación de enfoques de cálculo
LAD vs SCL — ¿Qué método elegir?
| Tipo de cálculo | Método recomendado | ¿Por qué? |
|---|---|---|
| Suma simple | Bloque ADD (LAD) | Visual y fácil de seguir |
| Fórmula compleja | Bloque CALCULATE | Compacto y reduce el número de segmentos |
| Algoritmo matemático | Lenguaje SCL | Sintaxis cercana a C/Pascal, ideal para fórmulas |
| Cálculo trigonométrico | SCL o CALCULATE | Las cajas individuales son demasiado voluminosas |
| Delimitación de señal | Bloque LIMIT | Estándar de Siemens, muy robusto |
| Reinicio de índice | Instrucción INC/DEC | Muy rápido de implementar |
Preguntas Frecuentes
¿Cuál es la ventaja de CALCULATE frente a varios bloques ADD/MUL?
CALCULATE reduce considerablemente el espacio ocupado en el programa. En lugar de 5 segmentos con variables temporales intermedias, tiene un solo bloque con una fórmula legible. También es más fácil de mantener si la fórmula cambia.
¿Cómo gestiona TIA Portal los errores de cálculo (ej: división por cero)?
En S7-1200/1500, un error matemático no detiene necesariamente la CPU (según config), pero el resultado se convierte en NaN. Es CRÍTICO usar la instrucción |OK| después de un cálculo sensible para validar el resultado antes de usarlo.
¿Las funciones trigonométricas usan grados o radianes?
Todas las funciones (SIN, COS, TAN, etc.) usan exclusivamente RADIANES. Si su HMI proporciona grados, debe multiplicar el valor por 0.01745329 (PI/180) antes de inyectarlo en el bloque.
¿Puedo realizar cálculos en 64 bits (LReal)?
Sí, los S7-1500 soportan nativamente el tipo LReal (Long Real) para una mayor precisión. La mayoría de las funciones matemáticas aceptan este tipo.