Cursos
Clase #23 - Contador CTUD en TIA Portal V18: Conteo Bidireccional Inteligente
Contador CTUD en TIA Portal V18: Conteo Bidireccional Inteligente
💡 Por qué este video es esencial: El CTUD parece simple hasta que activas CU y CD al mismo tiempo. En este video te muestro qué gana cuando ambas entradas cambian en el mismo scan cycle, cómo CV puede volverse negativo, y por qué usar dos contadores separados (CTU+CTD) es menos eficiente y propenso a errores. ¡La prueba de estrés con señales simultáneas es reveladora!
Introducción: La Realidad Dinámica de los Buffers
Bienvenido a la Clase #23. Ya dominas conteo ascendente (CTU, Clase 21) y descendente (CTD, Clase 22) por separado. Pero en procesos reales, los recursos no fluyen en una sola dirección.
Un buffer recibe piezas de una línea y las entrega a otra simultáneamente. Un silo se llena mientras se vacía. Un sistema de posicionamiento avanza y retrocede según sensores opuestos. Usar dos contadores independientes para esto duplica lógica, consume más memoria y crea riesgo de desincronización entre CVs.
El Contador CTUD (Count Up/Down) resuelve esto: un solo bloque que incrementa con CU, decrementa con CD, y mantiene un único valor CV coherente. Pero tiene reglas estrictas de prioridad que debes conocer.
En este artículo explicamos los parámetros, pero ver el conflicto CU vs. CD resolverse en tiempo real solo es posible en el video.
🎯 Lo que aprenderás en esta sesión (Enfoque Ladder)
Pines del Bloque CTUD IEC: Función exacta de CU, CD, R, LD, PV, Q, CV.
Reglas de Prioridad Internas: Qué ocurre cuando CU y CD cambian en el mismo scan cycle.
CV Signed: El Rango Negativo: Por qué CTUD usa Int/DInt signed y qué significa CV < 0.
Aplicaciones Industriales Reales: Buffers dinámicos, silos con entrada/salida simultánea, posicionamiento relativo.
Eficiencia vs. Dos Contadores Separados: Ahorro de memoria, consistencia garantizada, menor complejidad.
⚙️ Conceptos Clave (Resumen Técnico Ladder)
1. Anatomía del Bloque CTUD IEC: Versatilidad con Reglas
Como demuestro en el minuto 02:30 del video, el CTUD combina todas las entradas anteriores:
Pin | Dirección | Tipo | Función | Comportamiento Crítico |
|---|---|---|---|---|
CU | Entrada | Bool | Incrementa CV en 1 por flanco positivo | Si CD también tiene flanco en mismo scan → CU GANA (prioridad alta) |
CD | Entrada | Bool | Decrementa CV en 1 por flanco positivo | Solo actúa si NO hay flanco en CU en mismo scan |
R | Entrada | Bool | Reset explícito: CV=0, Q=FALSE | PRIORITARIO sobre CU y CD. Si R=TRUE, ignora todo conteo |
LD | Entrada | Bool | Carga PV en CV | Similar a CTD. Ocurre tras evaluación de CU/CD/R |
PV | Entrada | Int/DInt | Valor preset para Q | Q=TRUE cuando CV >= PV |
Q | Salida | Bool | TRUE cuando CV >= PV | Basado en valor signed actual |
CV | Salida | Int/DInt | Valor actual bidireccional | Puede ser NEGATIVO. Rango: -32768 a 32767 (Int) |
Regla de Oro en Ladder: CTUD = "Contador de flujo neto". SIEMPRE verifica que CU y CD provengan de fuentes físicamente mutuamente excluyentes O acepta que CU tendrá prioridad en conflictos. Nunca asumas que ambos se ejecutarán "al mismo tiempo" en el mismo scan.
2. La Jerarquía de Prioridades: El Corazón del CTUD
Este es el concepto más crítico y lo demuestro visualmente en el video:
- Reset (R): Máxima prioridad. Si R=TRUE → CV=0, Q=FALSE. CU y CD se ignoran completamente.
- CU vs. CD: Si AMBOS tienen flanco positivo en el MISMO scan cycle → CU incrementa, CD se ignora.
¿Por qué? Porque en buffers industriales, la entrada suele ser más crítica que la salida. Pero debes documentar esta decisión. - Load (LD): Se evalúa DESPUÉS de CU/CD/R. Si LD=TRUE tras procesamiento → CV:=PV.
3. Aplicaciones Donde CTUD Brilla
Estos casos son CAÓTICOS con CTU+CTD separados:
- Buffer Dinámico de Producción:
--[Sensor_Entrada.CU]--[Sensor_Salida.CD]--[CTUD_Buffer(PV:=50)]--(Alarma_Buffer_Lleno)-
CV refleja ocupación REAL en tiempo real. Si entran 3 y salen 2 en mismo ciclo, CV+=1 correctamente. Con dos contadores, necesitarías resta externa propensa a errores.
- Silo con Llenado/Vaciado Simultáneo: Medir nivel neto sin calcular diferencia manual.
- Posicionamiento Relativo: Encoder incremental donde avanzar suma y retroceder resta. CV negativo indica posición detrás del origen.
- Inventario con Devoluciones: Productos que entran (ventas canceladas) y salen (ventas nuevas) constantemente.
En el video implementamos buffer dinámico y comparamos CTUD vs. CTU+CTD mostrando desincronización y código redundante del segundo enfoque.
✅ Checklist de Implementación de CTUD
Antes de usar un CTUD en producción:
- Instancia única declarada (nunca reutilizada).
- Verificada prioridad CU>CD en documentación del proyecto.
- Señales CU y CD filtradas/debounced individualmente.
- Confirmado que CV signed maneja rangos negativos esperados.
- Lógica de reset R definida (¿cuándo se pone a cero el buffer?).
- Documentado en comentario POR QUÉ se usa CTUD y no dos contadores separados.
Este checklist está demostrado en el ejemplo de buffer del video. Úsalo como referencia.
Errores Comunes con CTUD en Ladder
Asumir Ejecución Simultánea Real: Creer que CU y CD se procesan "al mismo tiempo". En realidad, CU siempre gana en conflicto de scan.
Ignorar CV Negativo: Asumir que CV nunca bajará de 0. En buffers con más salidas que entradas, CV negativo es válido y esperado.
Usar Contactos Normales en CU/CD: Poner [Sensor] directo causa conteo múltiple por scan. Usa SIEMPRE flanco P: [Sensor.P].
Olvidar que R Anula Todo: Activar R durante operación normal borra el conteo acumulado. Usa R solo en reinicios planificados.
Mezclar Tipos de Dato en PV/CV: PV debe ser mismo tipo que CV (Int o DInt). Conversión implícita puede causar truncamiento.
👉 MIRA EL VIDEO PARA VER LA TABLA DE VERDAD DE PRIORIDADES EN ACCIÓN CON SEÑALES SIMULTÁNEAS
¿Te ha pasado que tu buffer muestra niveles incorrectos cuando entran y salen piezas simultáneamente?
Déjame un comentario en YouTube describiendo tu caso. Te ayudaremos a verificar prioridades y filtros de señal para tu CTUD.
🔔 ¡Suscríbete y activa la campanita! En la Clase #24 exploramos comparadores (EQ, NE, GT, LT, GE, LE), esenciales para tomar decisiones basadas en valores de CV, temperaturas, presiones y más. ¡La base de toda lógica condicional avanzada!

Publicar un comentario
0 Comentarios