Clase #36 - Función CONVERT en TIA Portal V18: Transformación de Tipos Segura en Ladder

Función CONVERT en TIA Portal V18: Transformación de Tipos Segura en Ladder

Función CONVERT en TIA Portal V18: Transformación de Tipos Segura en Ladder
💡 Por qué este video es esencial: CONVERT no es solo "cambiar tipo"; es una operación destructiva si no se valida. En este video te muestro cómo verificar rangos ANTES de convertir, por qué CONVERT(DInt→INT) trunca bits altos sin advertencia, y cómo estructurar redes independientes para transformaciones seguras. ¡La demostración de overflow silencioso vs. conversión protegida es clave!

👋 Introducción: Transformar Sin Destruir Datos

Bienvenido a la Clase #36. Ya transfieres datos de forma segura con MOVE (Clase #35). Pero copiar no basta; a menudo necesitas transformar esos datos entre tipos incompatibles: convertir una lectura analógica REAL a INT para comunicación Modbus, ajustar un setpoint DInt a resolución de actuador Int, o preparar valores para HMI.
En Ladder, CONVERT es un bloque IEC que realiza truncamiento binario directo. NO verifica si el valor cabe en el tipo destino. Si conviertes 40,000 (DInt) a INT, obtendrás -25,536 silenciosamente. Tu proceso operará con datos corruptos sin generar ninguna alarma ni fault.
En este artículo explicamos la conexión visual, pero ver el comportamiento exacto del truncamiento y la protección de rango solo es posible en el video.

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

  1. Bloque CONVERT en Red Ladder: Transformación explícita IN→OUT, comportamiento de truncamiento.
  2. Validación de Rango Obligatorio: Verificar límites del tipo destino ANTES de ejecutar CONVERT.
  3. Patrones de Conversión Segura: REAL→INT, DInt→INT, INT→DInt, BYTE→WORD.
  4. Aplicaciones Industriales Visuales: Interfaz HMI-PLC, escalado de señales, preparación para comunicación.
  5. Gestión de Safe Defaults: Qué valor asignar cuando la conversión no es válida.

⚙️ Conceptos Clave (Resumen Técnico Ladder)

1. El Patrón Obligatorio: Validar → Convertir → Fallback
Como demuestro en el minuto 02:20 del video, CONVERT NUNCA debe usarse sin validación previa. Usa siempre este patrón de 2-3 redes:
  1. Red N: Validación de Rango Destino |--[Valor_Origen >= MIN_INT]--[Valor_Origen <= MAX_INT]--(M_Convert_Valido)--| Red N+1: Conversión Condicionada |--[M_Convert_Valido]--[CONVERT(IN:=Valor_DInt, OUT:=Valor_Int)]--| |--[/M_Convert_Valido]--[MOVE(IN:=MAX_INT, OUT:=Valor_Int)]--| // Safe default
  • Red N: Compara el valor origen contra los límites DEL TIPO DESTINO (no del origen). Activa marca M.
  • Red N+1: Solo si M está activa, ejecuta CONVERT. Si falla, MOVE asigna el límite más seguro (MIN o MAX del destino).
⚠️ Regla de Oro en Ladder: NUNCA conectes CONVERT directamente sin validar rango. La conversión implícita de MOVE también trunca, pero CONVERT es explícito y aún así peligroso. La validación es OBLIGATORIA, no opcional.
2. Comportamiento de Truncamiento: Lo Que CONVERT Realmente Hace
Conversión
Comportamiento Real
Riesgo en Ladder
Solución
DInt → Int
Trunca 16 bits altos
40,000 → -25,536 (overflow signed)
Validar [-32768, 32767] antes
REAL → Int
Trunca decimales + bits altos
32768.9 → -32768
Validar rango INT + aceptar pérdida decimal
Int → DInt
Extensión de signo segura
✅ Seguro, sin pérdida
No requiere validación
BYTE → WORD
Rellena bits altos con 0
✅ Seguro
No requiere validación
WORD → BYTE
Trunca 8 bits altos
300 → 44
Validar [0, 255] antes

Aplicación Ladder típica: Interfaz HMI-PLC segura:
  1. Red 1: |--[SP_HMI >= 0]--[SP_HMI <= 100]--(M_SP_Valido)--| Red 2: |--[M_SP_Valido]--[CONVERT(IN:=SP_HMI_Real, OUT:=SP_Proceso_Int)]--| |--[/M_SP_Valido]--[MOVE(IN:=0, OUT:=SP_Proceso_Int)]--| // Safe default
HMI envía REAL, PLC necesita INT. Sin validación, un operador podría ingresar 150.5 y corromper la lógica de control.

3. Aplicaciones Industriales Críticas en Ladder
  • Comunicación Modbus/Profibus: Protocolos usan INT/DInt estrictos. CONVERT REAL→INT con RANGE_CHECK previene corrupción de trama completa.
  • Escalado de Señales Analógicas: Sensor RAW (0-27648 INT) → Engineering Units (0-100.0 REAL). CONVERT INT→REAL es seguro, pero CONVERT REAL→INT para salida analógica requiere validación [0, 27648].
  • Indexación de Arrays: Posición calculada en REAL debe convertirse a INT para acceso a array. CONVERT sin validar puede generar índice negativo o fuera de límites → fault de CPU.
  • Legacy Integration: Sistemas antiguos usan WORD/INT; nuevos sistemas usan DInt/REAL. CONVERT con validación es el puente seguro.
En el video implementamos interfaz HMI-PLC y mostramos cómo un valor fuera de rango corrompe el proceso SIN validación.

✅ Checklist de CONVERT en Ladder

Antes de implementar:
  • CONVERT SIEMPRE precedido por validación de rango DEL TIPO DESTINO en red anterior.
  • Límites de validación coinciden EXACTAMENTE con especificación del tipo destino (ej: INT = -32768 a 32767).
  • Cada bloque CONVERT en su propia red independiente.
  • Marca auxiliar usada para habilitar conversión.
  • Safe default definido y documentado (¿MIN, MAX, o último valor válido?).
  • Comentada cada red explicando POR QUÉ se convierte y qué representa el safe default.
  • Probado con valores límite y fuera de rango en simulación.
Este checklist está demostrado en el proyecto Ladder del video. Úsalo como referencia.

🛑 Errores Comunes en Ladder con CONVERT

  1. Convertir Sin Validar Rango: El error #1. Overflow silencioso. Datos corruptos sin alarma.
  2. Validar Rango del Origen en Lugar del Destino: Validar que DInt esté en [-2M, 2M] antes de convertir a INT no sirve. Debes validar [-32k, 32k].
  3. Asumir Que REAL→INT Es Seguro: 32768.0 en REAL cabe en REAL, pero NO en INT. CONVERT truncará a -32768.
  4. Poner CONVERT en Rama Compleja: Combinar con contactos lógicos en misma rama → ejecución condicional no deseada. Redes separadas siempre.
  5. Olvidar Safe Default: Si validación falla y no hay MOVE fallback, variable destino mantiene valor anterior corrupto.

👉 MIRA EL VIDEO PARA VER LA TABLA DE OBSERVACIÓN MOSTRANDO OVERFLOW SILENCIOSO VS. CONVERSIÓN PROTEGIDA

¿Te ha pasado que tu PLC opera con valores negativos inexplicables después de una conversión?
Déjame un comentario en YouTube describiendo tu caso. Te ayudaremos a verificar validaciones de rango y safe defaults.

🔔 ¡Suscríbete y activa la campanita! En la Clase #37 exploramos CEIL, FLOOR, TRUNC y ROUND en Ladder para aplicaciones donde redondear hacia arriba, abajo o hacia cero tiene consecuencias físicas reales. ¡Esencial para dosificación, seguridad e indexación!

Publicar un comentario

0 Comentarios