Caminho:  Equipamentos (Dispositivos) > CFW300-2 > Ladder > Counter >

CTUD

Contador de Contagem Crescente e Decrescente

Previous pageReturn to chapter overviewNext page

Bloco de contagem progressiva e regressiva de pulsos de entrada.

 

Representação Ladder

 

CTUD_block

 

Estrutura do Bloco

 

Tipo de Variável

Nome

Tipo de Dado

Descrição

VAR_INPUT

EN

BOOL

Habilitação do bloco


CU

BOOL

Identificador de pulsos para incrementador


CD

BOOL

Identificador de pulsos para decrementador


R

BOOL

Carrega o valor zero em CV


LD

BOOL

Carrega o valor de PV em CV


PV

WORD UINT

Valor de referência

VAR_OUTPUT

ENO

BOOL

Habilitação de saída


QU

BOOL

Sinalizador de contador estourado


QD

BOOL

Sinalizador de contador zerado


CV

WORD UINT

Valor de contagem atual

VAR

CTUD_INST_0

CTUD

Instância de acesso à estrutura do bloco

 

wpshelp_common_fig_note

NOTA!

 

Alguns dispositivos permitem configurar parâmetros do usuário, mas estes precisam ser configurados para utilização nos campos PV e CV, selecionando um tipo de dado compatível (WORD ou UINT). Para mais informações consultar o tópico correspondente.

 

Funcionamento

 

Este bloco, quando tem um valor TRUE em EN, atua como um bloco CTD e um bloco CTU ao mesmo tempo, atuando sobre o mesmo contador CV. Ou seja: incrementa CV até chegar a PV para bordas de subida em CU e decrementa CV até chegar a zero para bordas de subida em CD. Uma transição positiva em R carrega zero em CV, enquanto uma borda de subida em LD carrega o valor de PV em CV. Caso CV tenha valor zero, QD recebe TRUE, e caso CV tenha valor igual a PV, QU recebe TRUE.

 

O valor de ENO repassa para o próximo bloco Ladder o valor de EN.

 

Fluxograma do Bloco

 

CTUD_flowchart

 

Diagrama de Funcionamento

 hardwarecounterctud_fig2

 

Exemplo em Ladder

 

CTUD_example01

 

O exemplo acima exibe o bloco desabilitado, com suas variáveis internas todas zeradas. Ainda que os controles externos estejam ativados, esses valores não são repassados para a instância do bloco.

 

CTUD_example02

 

Ao ser ativado, o bloco identifica o valor de PRESET, carregando-o em PV, e identifica que a saída está com o valor zero, habilitando a saída QD. Finalizada a execução, a saída ENO é ativada.

 

CTUD_example03

 

A cada borda de subida identificada em CU, o valor de CV é incrementado até chegar ao valor de PV, quando a saída QU é habilitada. Finalizada a execução, a saída ENO é ativada.

 

CTUD_example04

 

A cada borda de subida identificada em CD, o valor de CV é decrementado. Sendo CV de um valor intermediário a zero e PV, ambas as saídas QD e QU são desativadas. Finalizada a execução, a saída ENO é ativada.

 

CTUD_example05

 

Um valor TRUE em R reseta CV, enquanto um valor TRUE em LD carrega o valor de PV para CV. Como podemos notar, R prevalece sobre LD, restando CV e habilitando a saída QD. Finalizada a execução, a saída ENO é ativada.

 

Exemplo em ST

 

 O exemplo abaixo, exibe as instruções para aplicação do exemplo acima na linguagem 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;