Camino:  Equipo (Dispositivos) > LDW900 > Ladder > Counter >

CTUD

Contador de Incremento e Decremento

Previous pageReturn to chapter overviewNext page

Bloque de conteo progresivo y regresivo de pulsos de entrada.

 

Representación Ladder

 

CTUD_block

 

Estructura del Bloque

 

Tipo de Variable

Nombre

Tipo de Dato

Descripción

VAR_INPUT

EN

BOOL

Habilitación del bloque

CU

BOOL

Identificador de pulsos para incrementador

CD

BOOL

Identificador de pulsos para disminuidor

R

BOOL

Carga el valor cero en CV

LD

BOOL

Carga el valor de PV en CV

PV

WORD UINT

Valor de referencia

VAR_OUTPUT

ENO

BOOL

Habilitación de salida

QU

BOOL

El señalizador del contador alcanzó el valor máximo de conteo (PV)

QD

BOOL

Señalizador del contador reseteado

CV

WORD UINT

Valor de conteo actual

VAR

CTUD_INST_0

CTUD

Instancia de acceso a la estructura del bloque

 

 

wpshelp_common_fig_note

¡NOTA!

 

Algunos dispositivos permiten configurar parámetros de usuário, mas estos deben configurarse para su uso en los campos PV y CV, para eso, seleccione un tipo de datos compatible (WORD o UINT). Para más información ver el tema correspondiente.

 

Operación

 

Este bloque, cuando tiene un valor TRUE en EN, actúa como un bloque CTD y un bloque CTU al mismo tiempo, actuando sobre el mismo contador CV. O sea: incrementa CV hasta llegar a PV para flancos de subida en CU y disminuye CV hasta llegar a cero para flancos de subida en CD. Una transición positiva en R carga cero en CV, mientras un flanco de subida en LD carga el valor de PV en CV. En caso de que CV tenga valor cero, QD recibe TRUE, y en caso de que CV tenga valor igual a PV, QU recibe TRUE.

 

El valor de ENO pasa al próximo bloque Ladder el valor de EN.

 

Diagrama de Flujo del Bloque

 

CTUD_flowchart

 

Diagrama de Funcionamiento

 hardwarecounterctud_fig2

 

Ejemplo en Ladder

 

CTUD_example01

 

El ejemplo de arriba exhibe el bloque deshabilitado, con todas sus variables internas reseteadas. Aunque los controles externos estén activados, tales valores no serán pasados a la instancia del bloque.

 

CTUD_example02

 

Al ser activado, el bloque identifica el valor de PRESET, cargándolo en PV, e identifica que la salida está con el valor cero, habilitando la salida QD. Finalizada la ejecución, la salida ENO será activada.

 

CTUD_example03

 

A cada flanco de subida identificado en CU, el valor de CV es incrementado hasta llegar al valor de PV, cuando la salida QU es habilitada. Finalizada la ejecución, la salida ENO será activada.

 

CTUD_example04

 

A cada flanco de subida identificado en CD, el valor de CV es disminuido. Siendo CV de un valor intermediario a cero y a PV, ambas salidas, QD y QU, son desactivadas. Finalizada la ejecución, la salida ENO será activada.

 

CTUD_example05

 

Un valor TRUE en R resetea CV, mientras que un valor TRUE en LD carga el valor de PV para CV. Como podemos notar, R prevalece sobre LD, restando CV y habilitando la salida QD. Finalizada la ejecución, la salida ENO será activada.

 

Ejemplo en ST

 

 El siguiente ejemplo muestra las instrucciones para aplicar el ejemplo anterior en el lenguaje ST.

 

 

VAR

   PRESET : UINT := 30;

   COUNT : UINT;

   CTUD_INST_0 : FB_CTUD;

END_VAR

 

CTUD_INST_0.EN := DI1;

CTUD_INST_0(

   CU:=DI2,

   CD:=DI3,

   R:=DI6,

   LD:=DI7,

   PV:=PRESET);

COUNT := CTUD_INST_0.CV;

DO1 := CTUD_INST_0.ENO;