Curso Básico de CLP — Siemens S7-1200

Aula 07 • Contadores (CTU / CTD / Reset)
Progresso 0%

Módulo 07 — Contadores (CTU / CTD)

Contadores são essenciais para automação: contagem de peças, ciclos de máquina, eventos de falha, lotes de produção e totalizadores. No S7-1200, os contadores IEC mais usados são: CTU (crescente) e CTD (decrescente).

Objetivos da Aula

Resultado esperado: você consegue contar “pulsos” corretamente (por borda) e acionar ações ao atingir um valor.

1) Conceito: contador conta pulsos, não “tempo”

Um contador incrementa/decrementa quando detecta uma borda (mudança de 0→1) na entrada de contagem. Se você alimentar o contador com um sinal que fica 1 por muito tempo, você pode gerar contagens erradas (dependendo do bloco e da forma de acionamento).

CTU (crescente): CU = Count Up (pulso) R = Reset (zera) PV = Preset Value (valor alvo) CV = Current Value (valor atual) Q = 1 quando CV >= PV CTD (decrescente): CD = Count Down (pulso) LD = Load (carrega PV em CV) PV = valor inicial / alvo CV = valor atual Q = 1 quando CV <= 0 (na prática, "chegou ao fim")
Dica de campo: geralmente você conta o pulso de um sensor (fotoelétrico/indutivo) ou um “evento” interno. Para evitar múltiplas contagens, use detecção de borda (R_TRIG).

2) CTU — Contador crescente (Count Up)

O CTU incrementa CV a cada pulso em CU. Quando CV ≥ PV, a saída Q fica 1.

Exemplo didático: contar peças até 10

(1) Pulsos do sensor -> CTU

--| |----[R_TRIG]----( )----------------
 I_Sensor   P1.Q     M_PulsoPeca

--| |----------------[ CTU C1 ]---------
 M_PulsoPeca           PV = 10
                        R  = I_Reset

(2) Ação quando atingir PV

--| |--------------------( )------------
 C1.Q                   Q_AlarmeLote
      
Como funciona: cada peça detectada gera 1 pulso (R_TRIG) → CTU soma 1 → ao chegar em 10, liga Q_AlarmeLote.
Se você não usar borda: se o sensor ficar “1” por 200 ms, você pode contar mais do que 1 peça dependendo do sinal. Use borda para “um evento = uma contagem”.

3) CTD — Contador decrescente (Count Down)

O CTD é ideal para lote/quantidade restante. Você “carrega” o valor inicial (PV) no CV usando LD. Depois decrementa a cada pulso em CD até chegar em zero.

Exemplo: iniciar com 20 e decrementar até 0

(1) Carregar lote (LD) com PV = 20

--| |----------------[ CTD C2 ]---------
 I_LoadLote             PV = 20
                        LD = I_LoadLote
                        CD = M_PulsoPeca
                        R  = I_Reset

(2) Pulso de peça (mesmo do CTU) -> decrementa

--| |----[R_TRIG]----( )----------------
 I_Sensor   P1.Q     M_PulsoPeca

(3) Ação quando chegar ao fim

--| |--------------------( )------------
 C2.Q                   Q_FimLote
      
Uso típico: “restam X peças no lote”. Quando chega a 0, sinaliza fim e bloqueia máquina.

4) Parâmetros PV, CV e reset/load (na prática)

Parâmetro O que é Exemplo de uso
PV Valor pré-ajustado (alvo ou valor inicial) PV=10 para lote de 10 peças
CV Valor atual (contagem em tempo real) Mostrar na IHM “peças contadas”
R Reset (zera o contador) Botão Reset após falha/turno
LD Load (carrega PV em CV, no CTD) Carregar quantidade inicial do lote
Q Saída lógica do contador Acionar alarme/bloqueio ao atingir limite
Boas práticas: PV pode vir de um DB (parâmetro/receita) para você ajustar via IHM sem mudar programa.

5) Aplicações industriais típicas

Dica: para totalizadores grandes, use DINT (e registre em DB).

6) Exercícios (fixação)

Exercício 1 — CTU lote 12

Conte peças com um sensor (pulso) e acione uma lâmpada quando chegar a 12. Inclua botão de reset.

Exercício 2 — CTD “restante”

Carregue um lote de 30 (LD) e decremente a cada peça. Quando chegar a 0, acione “Fim de Lote”.

Exercício 3 — Preventiva

Conte partidas do motor (borda de subida do comando) e gere aviso ao atingir 500 partidas (PV=500).

Próxima aula (Aula 08 — Simulação e Testes): forçar entradas, monitorar Ladder, diagnóstico e erros comuns no TIA.
⬅️ Voltar Aula 06 ▶️ Ir para Aula 08
Engenheiro de Software Roberto Vitor Vilela