Cursos
Clase #30 - Funciones SQR/SQRT en TIA Portal V18: Cálculo de Energía y RMS en Ladder
Funciones SQR/SQRT en TIA Portal V18: Cálculo de Energía y RMS en Ladder
💡 Por qué este video es esencial: SQRT parece simple hasta que le pasas un negativo y obtienes NaN, o usas INT y pierdes todos los decimales. En este video te muestro cómo conectar SQRT solo con valores validados ≥0, por qué debes usar REAL como entrada/salida para precisión, y cómo estructurar redes independientes para cálculos de RMS y potencia. ¡La demostración de error con negativo vs. cálculo correcto es clave!
👋 Introducción: Operaciones No Lineales Visuales
Bienvenido a la Clase #30. Ya manejas incrementos, límites y valor absoluto (Clase #28). Ahora necesitas operaciones no lineales fundamentales: elevar al cuadrado (SQR) y extraer raíz cuadrada (SQRT).
Estas operaciones son esenciales para:
Calcular valor RMS de señales AC (√(promedio de cuadrados))
Determinar potencia eléctrica (P = I² × R)
Medir distancia euclidiana entre dos puntos (√(Δx² + Δy²))
Procesar señales de vibración/aceleración
En Ladder, estos no son funciones escritas; son bloques IEC que requieren validación estricta previa. Si conectas SQRT directamente a una variable que puede ser negativa, tu HMI mostrará "####" o valor basura.
En este artículo explicamos la conexión visual, pero ver la validación previa y el resultado preciso en tabla de observación solo es posible en el video.
🎯 Lo que aprenderás en esta sesión (100% Ladder)
- Bloque SQR_I/DI/R en Red Ladder: Elevar al cuadrado con tipo de dato correcto.
- Bloque SQRT_I/DI/R en Red Ladder: Extraer raíz cuadrada con validación ≥0 obligatoria.
- Patrón de Validación Previa + Red Independiente: Estructura segura para SQRT.
- Aplicaciones Industriales Visuales: Cálculo de RMS, potencia, distancia euclidiana.
- Precisión Decimal: Por qué INT destruye resultados de SQRT y cuándo usar REAL.
️ Conceptos Clave (Resumen Técnico Ladder)
1. El Patrón Obligatorio para SQRT: Validar Antes de Calcular
Como demuestro en el minuto 02:20 del video, SQRT NO tolera entradas negativas. Usa siempre este patrón de 2 redes:
- Red N: Validación de Entrada |--[Valor >= 0]-----------------(M_SQRT_Valido)--| Red N+1: Cálculo Condicionado |--[M_SQRT_Valido]--[SQRT_R(IN:=Valor)]--(Resultado)--| |--[/M_SQRT_Valido]--[MOVE(IN:=0.0, OUT:=Resultado)]--|
- Red N: Contacto comparador >= valida que entrada sea ≥0. Activa marca M.
- Red N+1: Solo si M está activa, ejecuta SQRT. Si no, MOVE asigna 0.0 seguro.
️ Regla de Oro en Ladder: NUNCA conectes SQRT directamente a una variable sin validar ≥0 ANTES. Los sensores fallan, las comunicaciones se caen, los operadores ingresan valores erróneos. La validación no es opcional.
2. Bloque SQR: Elevar al Cuadrado Correctamente
Elemento | Función | Error Común en Ladder |
|---|---|---|
SQR_I | IN² → OUT (INT) | Overflow masivo: 200² = 40,000 > 32,767 → Wrap-around negativo |
SQR_DI | IN² → OUT (DInt) | Seguro para valores hasta ~46,340 |
SQR_R | IN² → OUT (Real) | Precisión decimal preservada. Ideal para RMS/potencia |
OUT mismo tipo que IN | Resultado coherente | Usar OUT INT cuando IN es REAL → truncamiento silencioso |
Usa REAL siempre. INT perdería decimales críticos en corriente pequeña.
- Red 1: |--[Corriente <> 0]--(M_Potencia_Valido)--| Red 2: |--[M_Potencia_Valido]--[SQR_R(IN:=Corriente)]--(I_Cuadrado)--| Red 3: |--[M_Potencia_Valido]--[MUL_R(IN1:=I_Cuadrado, IN2:=Resistencia)]--(Potencia)--|
Usa REAL siempre. INT perdería decimales críticos en corriente pequeña.
3. Aplicaciones Industriales Críticas en Ladder
Estos cálculos son imposibles con ADD/MUL simples:
Valor
- Red 1: |--[Muestra_Actual <> 0]--[SQR_R(IN:=Muestra)]--(Muestra_Cuadrada)--| Red 2: |--[ADD_R(IN1:=Acumulador, IN2:=Muestra_Cuadrada)]--(Nuevo_Acum)--| Red 3: |--[DIV_R(IN1:=Nuevo_Acum, IN2:=N_Muestras)]--(Promedio_Cuadrados)--| Red 4: |--[SQRT_R(IN:=Promedio_Cuadrados)]--(Valor_RMS)--|
Cada bloque en red independiente. Valida divisor ≠0 en Red 3.
- Distancia Euclidiana (Posicionamiento XY):
√((X2-X1)² + (Y2-Y1)²) → Requiere SUB → SQR → ADD → SQRT en cascada. - Protección de SQRT con ABS Previo:
Si no puedes garantizar ≥0, usa ABS_R ANTES de SQRT como doble seguridad.
En el video implementamos cálculo RMS paso a paso y comparamos versión con/sin validación mostrando NaN vs. resultado válido.
✅ Checklist de SQR/SQRT en Ladder
Antes de implementar:
- SQRT SIEMPRE precedido por contacto >= 0 en red anterior.
- Cada bloque en su propia red independiente.
- Marca auxiliar (M) usada para habilitar bloque.
- Tipo REAL usado para SQR/SQRT en aplicaciones de precisión (RMS, potencia).
- Para SQR: verificado que resultado cabe en tipo de dato OUT.
- Red de fallback con MOVE asignando valor safe default (0.0).
- Comentada cada red explicando propósito físico del cálculo.
Este checklist está demostrado en el proyecto Ladder del video. Úsalo como referencia.
🛑 Errores Comunes en Ladder con SQR/SQRT
- SQRT Sin Validación ≥0: Entrada negativa → NaN o fault. Tu HMI muestra "####" o valor basura.
- SQR_I Con Valores >181: 182² = 33,124 > 32,767 → Overflow silencioso a negativo. Usa SQR_DI o SQR_R.
- Usar INT Para RMS/Potencia: Pierde decimales críticos. Corriente de 0.5A elevada al cuadrado en INT = 0. Resultado inútil.
- Poner SQRT en Rama Compleja: Combinar con otros contactos en misma rama → ejecución condicional no deseada. Red independiente siempre.
- Olvidar MOVE de Fallback: Si validación falla y no hay MOVE, resultado mantiene valor anterior corrupto.
👉 MIRA EL VIDEO PARA VER LA DIFERENCIA ENTRE SQR_I Y SQR_R EN TABLA DE OBSERVACIÓN
¿Te ha pasado que tu cálculo RMS da NaN o tu potencia eléctrica muestra valores negativos inexplicables?
Déjame un comentario en YouTube describiendo cómo conectaste los bloques. Te ayudaremos a verificar validaciones y tipos de dato.
🔔 ¡Suscríbete y activa la campanita! En la Clase #31 exploramos LN y EXP en Ladder para modelar crecimiento exponencial, decaimiento térmico y conversiones de escala logarítmica. ¡Esencial para procesos químicos y térmicos!

Publicar un comentario
0 Comentarios