Clase #27 - Funciones Matemáticas MOD/NEG/ABS en TIA Portal V18: Lógica Avanzada en Ladder

Funciones Matemáticas MOD/NEG/ABS en TIA Portal V18: Lógica Avanzada en Ladder

Funciones Matemáticas MOD/NEG/ABS en TIA Portal V18: Lógica Avanzada en Ladder
Por qué este video es esencial: Estos bloques parecen simples hasta que ves un valor -32768 volverse positivo al negarlo, o un MOD fallar por divisor cero. En este video te muestro cómo conectar cada bloque en su propia red Ladder, validar entradas ANTES del bloque usando contactos comparadores, y usar marcas auxiliares para pasar resultados seguros. ¡Todo construido con contactos, bobinas y bloques IEC!

Introducción: Matemáticas Especializadas Visuales

Bienvenido a la Clase #27. Ya multiplicas y divides en Ladder (Clase 26). Ahora necesitas operaciones más específicas: obtener residuos para secuencias cíclicas (MOD), invertir signos para actuadores bidireccionales (NEG), o calcular distancias sin dirección (ABS).
En Ladder, estos no son funciones escritas; son bloques IEC que debes conectar en redes independientes. Si los pones en la misma rama que otra lógica, o si no validas sus entradas previamente, obtendrás resultados corruptos que tu programa aceptará como válidos.
En este artículo explicamos la conexión visual, pero ver la estructura correcta de redes separadas y validaciones previas solo es posible en el video.

Lo que aprenderás en esta sesión (100% Ladder)

  • Conexión de Bloque MOD en Red Ladder: Cómo wirear dividendo/divisor y proteger contra divisor=0.
  • Conexión de Bloque NEG en Red Ladder: Manejo seguro del valor mínimo signed (-32768 → overflow).
  • Conexión de Bloque ABS en Red Ladder: Cálculo de error absoluto para alarmas simétricas.
  • Patrón de Red Independiente + Marca Auxiliar: La regla de oro para bloques matemáticos en Ladder.
  • Aplicaciones Industriales Visuales: Distribución round-robin, control bidireccional, alarmas de desviación.

⚙️ Conceptos Clave (Resumen Técnico Ladder)

1. El Patrón Universal: Red Propia + Validación Previa + Marca
Como demuestro en el minuto 02:00 del video, NUNCA conectes estos bloques directamente en una rama lógica compleja. Usa siempre este patrón de 2 redes:
  1. Red N: Validación de Entrada |--[Condición_Segura]-----------------(M_Bloque_Valido)--| Red N+1: Bloque Matemático Condicionado |--[M_Bloque_Valido]--[BLOQUE_IEC(IN:=Entrada)]--(Resultado)--| |--[/M_Bloque_Valido]--[MOVE(IN:=Valor_Seguro, OUT:=Resultado)]--|
  • Red N: Valida que la entrada sea segura (divisor≠0, valor≠mínimo signed, etc.). Activa marca M.
  • Red N+1: Solo si M está activa, ejecuta el bloque. Si no, MOVE asigna un valor safe default.
💡 Regla de Oro en Ladder: Cada bloque MOD/NEG/ABS ocupa SU PROPIA RED. Nunca lo combines con otros bloques en la misma rama. Usa marcas auxiliares (M) para pasar resultados entre redes.

2. Bloque MOD_I/DI: Secuencias Cíclicas Seguras
El módulo devuelve el residuo de una división. En Ladder:
Elemento
Función
Error Común en Ladder
Bloque MOD_I
IN1 % IN2 → OUT
No validar IN2 <> 0 ANTES del bloque
Contacto <> 0
Valida divisor
Ponerlo DESPUÉS del bloque MOD (demasiado tarde)
Marca M_MOD_Valido
Habilita cálculo
Olvidar la red de fallback con MOVE
OUT declarado como INT
Recibe residuo
Usar mismo tipo que IN1/IN2

Aplicación Ladder típica: Distribuir piezas entre 3 líneas:
Red 1: |--[Contador_Piezas <> 0]--(M_MOD_Valido)--| Red 2: |--[M_MOD_Valido]--[MOD_I(IN1:=Contador, IN2:=3)]--(Linea_Activa)--| |--[/M_Mod_Valido]--[MOVE(IN:=0, OUT:=Linea_Activa)]--|
Resultado: 0, 1, 2, 0, 1, 2... perfecto para round-robin.

3. Bloque NEG_I/DI/R: Inversión de Signo con Precaución
Invierte el signo de un valor. Pero hay un peligro crítico en Ladder:
  • INT mínimo (-32,768): Al negarlo, el resultado sería +32,768, pero INT máximo es +32,767 → OVERFLOW SILENCIOSO. El valor se queda en -32,768.
  • Solución en Ladder: Antes de NEG, valida que el valor NO sea -32,768:
  • Red 1: |--[Valor > -32768]--(M_NEG_Valido)--| Red 2: |--[M_NEG_Valido]--[NEG_I(IN:=Valor)]--(Valor_Invertido)--| |--[/M_NEG_Valido]--[MOVE(IN:=32767, OUT:=Valor_Invertido)]--|
En el video mostramos el overflow en tabla de observación y cómo la validación lo previene.

4. Bloque ABS_I/DI/R: Valor Absoluto para Alarmas Simétricas
Devuelve el valor sin signo. Ideal para calcular desviaciones:
  • Red 1: |--[SETPOINT <> VALOR_ACTUAL]--(M_ABS_Valido)--| // Opcional: siempre válido, pero buena práctica Red 2: |--[M_ABS_Valido]--[ABS_I(IN:=Error_Crudo)]--(Error_Absoluto)--|
Luego usas Error_Absoluto en un comparador > para alarma, sin importar si el error fue positivo o negativo.

✅ Checklist de MOD/NEG/ABS en Ladder

Antes de implementar:
  • Cada bloque en su propia red independiente.
  • Validación de entrada en red ANTERIOR con contacto comparador.
  • Marca auxiliar (M) usada para habilitar bloque.
  • Red de fallback con MOVE asignando valor safe default.
  • Para NEG: validación explícita de valor ≠ mínimo signed.
  • Para MOD: validación explícita de divisor ≠ 0.
  • Comentada cada red explicando propósito y unidades.
Este checklist está demostrado en el proyecto Ladder del video. Úsalo como referencia.

🛑 Errores Comunes en Ladder con MOD/NEG/ABS

  1. Poner Bloque en Rama Compleja: Combinar MOD con contactos lógicos en misma rama → comportamiento impredecible. Separa en redes.
  2. Validar Divisor DESPUÉS de MOD: En Ladder, todos los elementos de una rama se evalúan simultáneamente. La validación DEBE estar en red previa.
  3. Negar -32768 Sin Validar: Overflow silencioso. Tu variable sigue negativa cuando debería ser positiva.
  4. Usar MOVE Sin Condición: Si el bloque falló, MOVE propaga basura. Siempre condiciona MOVE con /M_Valido.
  5. Hardcodear Constantes en Bloques: Escribir 3 directo en IN2 de MOD hace el código ilegible. Usa tag descriptivo del DB (Num_Lineas_Distribucion).

 MIRA EL VIDEO PARA VER ESTA ESTRUCTURA DE 2 REDES CONSTRUIDA PASO A PASO

¿Te ha pasado que tu secuencia round-robin se detiene o un valor negado sigue siendo negativo?
Déjame un comentario en YouTube describiendo cómo conectaste los bloques. Te ayudaremos a verificar validaciones previas y estructuras de red.
¡Suscríbete y activa la campanita! En la Clase #29 usamos bloques INC/DEC para crear contadores software en Ladder, y MIN/MAX/LIMIT para proteger rangos de variables. ¡Todo con contactos, bobinas y bloques IEC!c

Publicar un comentario

0 Comentarios