Instrucciones TIA Portal

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

CALC

Qué 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

MOD

Qué 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

ABS

Qué 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

MIN

Qué 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

LIMIT

Qué 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

SQRT

Qué 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...

SIN

Qué 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

LN

Qué 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álculoMétodo recomendado¿Por qué?
Suma simpleBloque ADD (LAD)Visual y fácil de seguir
Fórmula complejaBloque CALCULATECompacto y reduce el número de segmentos
Algoritmo matemáticoLenguaje SCLSintaxis cercana a C/Pascal, ideal para fórmulas
Cálculo trigonométricoSCL o CALCULATELas cajas individuales son demasiado voluminosas
Delimitación de señalBloque LIMITEstándar de Siemens, muy robusto
Reinicio de índiceInstrucción INC/DECMuy 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.

Simplifique sus cálculos complejos

Describa su fórmula física o su algoritmo, T-IA Connect generará el bloque CALCULATE o el código SCL optimizado con validación de datos.