Conteo Ascendente/Descendente (Count Up/Down, CTUD)
La instrucción CTUD asciende en uno cuando CUEnable pasa de tener su valor borrado a establecido. La instrucción desciende en uno cuando CDEnable pasa de tener su valor borrado a establecido.
Detalles de soporte de arquitectura y seguridad
En esta tabla se especifican los controladores y las aplicaciones compatibles con esta instrucción.
Arquitectura | Aplicaciones estándar | Aplicaciones de seguridad |
|---|---|---|
CompactLogix 5370, ControlLogix 5570, Compact GuardLogix 5370, GuardLogix 5570 | Sí | No |
CompactLogix 5380, ControlLogix 5580, Compact GuardLogix 5380, GuardLogix 5580, ControlLogix 5590 | Sí | Sí |
Idiomas disponibles
Diagrama de lógica de escalera
Esta instrucción no está disponible en el diagrama de escalera.
Bloque de funciones

Texto estructurado
CTUD(CTUD_tag)
Operandos
Texto estructurado
Variable | Tipo | Formato | Descripción |
|---|---|---|---|
Etiqueta CTUD | FBD_COUNTER | Estructura | Estructura CTUD |
Consulte Sintaxis de texto estructurado para obtener más información sobre la sintaxis de las expresiones dentro de texto estructurado.
Bloque de funciones
Operando | Tipo | Formato | Descripción |
|---|---|---|---|
CTUD tag | FBD_COUNTER | Estructura | Estructura CTUD |
Estructura de FBD_COUNTER
Parámetro de entrada | Tipo de datos | Descripción |
|---|---|---|
EnableIn | BOOL | Si no está activada, la instrucción no se ejecuta y las salidas no se actualizan. Si está establecida, la instrucción se ejecuta. Está establecido de forma predeterminada. |
CUEnable | BOOL | Habilita el conteo ascendente. Cuando la entrada pasa de borrado a establecido, el acumulador suma uno. Está borrado de forma predeterminada |
CDEnable | BOOL | Habilita el conteo descendiente. Cuando la entrada pasa de borrado a establecido, el acumulador resta uno. Está borrado de forma predeterminada |
PRE | DINT | Valor preestablecido del contador. Este es el valor al que debe llegar el valor acumulado antes de que se establezca DN. Válido = cualquier número entero El valor predeterminado es 0 |
Reset | BOOL | Petición para restablecer el temporizador. Cuando se establece, se restablece el contador. Está borrado de forma predeterminada |
Parámetro de salida | Tipo de datos | Descripción |
|---|---|---|
EnableOut | BOOL | La instrucción ha producido un resultado válido. |
ACC | DINT | Valor acumulado. |
CU | BOOL | Conteo ascendente habilitado. |
CD | BOOL | Conteo descendente habilitado. |
DN | BOOL | Conteo finalizado. Se establece cuándo el valor acumulado es mayor o igual al preestablecido. |
OV | BOOL | Desbordamiento del contador. Indica que el contador ha superado el límite superior de 2 147 483 647. Después, el contador se reinvertirá hasta -2 147 483 648 y comenzará el conteo descendiente de nuevo. |
UN | BOOL | Subdesbordamiento del contador. Indica que el contador ha superado el límite inferior de -2 147 483 648. Después, el contador se reinvertirá hasta 2 147 483 647 y comenzará el conteo descendiente de nuevo. |
Descripción
Cuando esté en verdadero y CUEnable esté establecido en verdadero, las instrucciones CTUD aumentan el contador en uno. Cuando esté en verdadero y CDEnable esté establecido en verdadero, la instrucción CTUD bajará el contador en uno.
Los dos parámetros de entrada, CUEnable y CDEnable, pueden cambiar durante el mismo escaneado. La instrucción ejecuta el conteo ascendente antes que el conteo descendente.
Contar de manera ascendente

Contar de manera descendente

Cuando está deshabilitada, la instrucción CTUD mantiene su valor acumulado. Establece el parámetro de entrada Reset para restablecer la instrucción.
Afecta a las marcas de estado matemáticas
No
Fallos mayores/menores
No es específico para esta instrucción. Consulte para ver fallos relacionados con operandos.
Ejecución
Bloque de funciones
Condición/estado | Acción realizada |
|---|---|
Pre-escaneado | Los bits EnableIn y EnableOut se establecen en falsos. |
Tag.EnableIn es falso | Los bits EnableIn y EnableOut se establecen en falsos. Inicializar datos para solicitar una transición de cero a uno de CuEnable o CdEnable que tenga efecto en ACC. |
Tag.EnableIn es verdadero | Los bits EnableIn y EnableOut se establecen en verdaderos. La instrucción se ejecuta. |
Primera ejecución de instrucción | Inicializar datos para solicitar una transición de cero a uno de CuEnable o CdEnable que tenga efecto en ACC. |
Primer escaneado de instrucción | Inicializar datos para solicitar una transición de cero a uno de CuEnable o CdEnable que tenga efecto en ACC. |
La instrucción es verdadera por primera vez | No se toma ninguna acción específica del estado. |
Restablecer | La instrucción borra CUEnablen-1, CDEnablen-1, CU, CD, DN, OV y UN, y establece ACC = cero. |
Post-escaneado | Los bits EnableIn y EnableOut se establecen en falsos. |
Texto estructurado
En Texto estructurado, EnableIn siempre es Verdadero durante un escaneado normal. Si la instrucción se encuentra en la ruta de control activada por la lógica, se ejecutará.
Condición/estado | Acción realizada |
|---|---|
Pre-escaneado | Consulte Pre-escaneado en la tabla Bloque de funciones. |
Ejecución normal | Consultar Tag.EnableIn es verdadero en la tabla Bloque de funciones. |
Post-escaneado | Consulte Post-escaneado en la tabla Bloque de funciones. |
Ejemplo
Bloque de funciones

Texto estructurado
CTUD_01.PRE := 500;
CTUD_01.Reset := Reset;
CTUD_01.CUEnable := Input;
CTUD(CTUD_01);
counter_state := CTUD_01.DN;
Entregue su opinión