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

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)

  1. Bloque SQR_I/DI/R en Red Ladder: Elevar al cuadrado con tipo de dato correcto.
  2. Bloque SQRT_I/DI/R en Red Ladder: Extraer raíz cuadrada con validación ≥0 obligatoria.
  3. Patrón de Validación Previa + Red Independiente: Estructura segura para SQRT.
  4. Aplicaciones Industriales Visuales: Cálculo de RMS, potencia, distancia euclidiana.
  5. 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:
  1. 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.
  1. 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
  1. 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

  1. SQRT Sin Validación ≥0: Entrada negativa → NaN o fault. Tu HMI muestra "####" o valor basura.
  2. SQR_I Con Valores >181: 182² = 33,124 > 32,767 → Overflow silencioso a negativo. Usa SQR_DI o SQR_R.
  3. Usar INT Para RMS/Potencia: Pierde decimales críticos. Corriente de 0.5A elevada al cuadrado en INT = 0. Resultado inútil.
  4. Poner SQRT en Rama Compleja: Combinar con otros contactos en misma rama → ejecución condicional no deseada. Red independiente siempre.
  5. 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