CTUD

Bloco contador crescente e descrescente. A cada transição de subida da entrada CD, o valor de CV irá decrementar até atingir o valor zero. A cada transição de subida da entrada CU, o valor de CV irá incrementar até atingir o valor maximo do tipo de dado INT. A saída QD ficara ativa quando CV for igual ou menor que zero. A saída QU ficara ativa quando CV for igual ou maior que PV. A entrada LD quando ativada faz CV igual a PV. A entrada R quando ativada faz CV igual a zero.

Bloco

             CTUD
        +-------------+
BOOL ---|CU         QU|--- BOOL
        |             |
BOOL ---|CD         QD|--- BOOL
        |             |
BOOL ---|R          CV|--- INT
        |             |
BOOL ---|LD           |
        |             |
 INT ---|PV           |
        +-------------+

Parâmetros

Nome

Classe

Tipo

Descrição

CU

Entrada

BOOL

Entrada de contagem crescente

CD

Entrada

BOOL

Entrada de contagem decrescente

R

Entrada

BOOL

Reset

LD

Entrada

BOOL

Preset

PV

Entrada

INT

Valor de preset

QU

Saída

BOOL

Saida de Preset atingido

QD

Saída

BOOL

Saida de reset atingido

CV

Saída

INT

Valor da contagem

Exemplo

Declaração de Variáveis

Nome

Tipo

Descrição

pulse_up

BOOL

evento de contagem crescente

pulse_dn

BOOL

evento de contagem decrescente

count

INT

Contador

preset

BOOL

preset do contador

reset

BOOL

reset do contador

my_counter

CTUD

Instância do bloco CTD

Clique aqui para baixar a tabela de variáveis

Código ST

(* Exemplo de ativação do bloco CTD dentro da POU *)

(* ... *)
my_counter(CU:= pulse_up, CD:= pulse_dn, R := reset, LD:= preset,  PV:= 100);  (* Ativação da instancia do bloco *)
if (my_counter.QU) then  (* testa se atingiu o valor da contagem *)
   (* trata contagem atingida *)
   (* ... *)
end_if;
(* ... *)