Curso Básico de CLP — Siemens S7-1200

Aula 09 • Aplicações Práticas (Integrando LAD + TON/TOF/TP + CTU/CTD + Falhas)
Progresso 0%

Módulo 09 — Aplicações Práticas

Aqui você vai juntar tudo que aprendeu: Ladder + temporizadores + contadores + permissivas + falhas. A ideia é sair com 3 aplicações completas (padrão industrial) e um jeito “profissional” de organizar tags e redes para comissionamento.

Objetivos

  • Montar um controle de motor com partida atrasada (TON) e pós-ventilação (TOF).
  • Montar um lote por contagem (CTU) com bloqueio e reset.
  • Montar um alarme com retenção (falha latched) e reset seguro.
  • Usar padrão de organização: comando interno + saída física.
Resultado esperado: um projeto “mini-industrial” pronto para testar no TIA (Watch/Status).

1) Tags do projeto prático (sugestão)

Use nomes claros. Ajuste endereços conforme seu hardware. Aqui usamos o padrão I/Q/M e alguns DBs para parâmetros.

Entradas (I): I_Start (I0.0) BOOL I_Stop (I0.1) BOOL I_TermicoOK (I0.2) BOOL I_SensorPeca (I0.3) BOOL I_ResetFalha (I0.4) BOOL I_LoadLote (I0.5) BOOL Saídas (Q): Q_Motor (Q0.0) BOOL Q_Ventilador (Q0.1) BOOL Q_Alarme (Q0.2) BOOL Q_FimLote (Q0.3) BOOL Memórias (M): M_MotorCmd (M0.0) BOOL M_PulsoPeca (M0.1) BOOL M_FalhaTermico (M0.2) BOOL M_AlarmeLatched(M0.3) BOOL Parâmetros (DB) (opcional, recomendado): DB10.PV_Lote : INT (ex.: 10) DB10.T_Partida_s : TIME (ex.: T#3s) DB10.T_Fan_s : TIME (ex.: T#10s)
Boa prática: tempos e PV do lote em DB para ajustar sem editar lógica.

2) Aplicação 1 — Motor com partida atrasada (TON) + pós-ventilação (TOF)

Cenário: ao dar Start, o motor liga após 3s (TON). Ao desligar o motor, o ventilador fica ligado mais 10s (TOF). Tudo com Stop + térmico como permissivas.

Network A — Selagem do comando (M_MotorCmd)

--|/|----| |----+----| |---------( )--
 I_Stop  I_TermicoOK |  I_Start    M_MotorCmd
                    |
                    +----| |------+
                         M_MotorCmd

Network B — TON (partida atrasada)

--| |--------------[ TON T_Partida ]----
 M_MotorCmd            PT = DB10.T_Partida_s

Network C — Saída do motor (Q_Motor)

--| |-------------------------( )--
 T_Partida.Q            Q_Motor

Network D — TOF (pós-ventilação)

--| |--------------[ TOF T_Fan ]--------
 Q_Motor                 PT = DB10.T_Fan_s

--| |-------------------------( )--
 T_Fan.Q                 Q_Ventilador
Dica: separar comando (M_MotorCmd) do motor (Q_Motor) ajuda a inserir modos (Manual/Auto) depois.

3) Aplicação 2 — Lote por contagem (CTU) com bloqueio

Cenário: contar peças (sensor) até PV do lote. Ao atingir PV, aciona Q_FimLote e bloqueia a partida do motor.

Network E — Gerar pulso por borda (R_TRIG)

--| |----[R_TRIG P_Peca]----( )---------
 I_SensorPeca    P_Peca.Q   M_PulsoPeca

Network F — CTU (contador de peças)

--| |----------------[ CTU C_Lote ]-----
 M_PulsoPeca           PV = DB10.PV_Lote
                        R  = I_LoadLote   (ou I_ResetFalha, conforme seu padrão)

Network G — Fim de lote + bloqueio

--| |-------------------------( )--
 C_Lote.Q                 Q_FimLote
Bloqueio no comando: inclua --|/|-- Q_FimLote em série na selagem do motor, para impedir nova partida.

Onde inserir o bloqueio (na Network A)

--|/|----| |----|/|----+----| |----( )--
 I_Stop  I_TermicoOK Q_FimLote | I_Start  M_MotorCmd
                           |
                           +----| |------+
                                M_MotorCmd

4) Aplicação 3 — Falha com retenção (alarme latched) e reset seguro

Cenário: se o térmico desarmar, grava uma falha (fica “travada”) até o operador resetar. O alarme aciona uma saída (sirene/lâmpada) e bloqueia motor.

Network H — Detectar falha térmico

--|/|-------------------------( )--
 I_TermicoOK               M_FalhaTermico

Network I — Latch do alarme (Set/Reset)

--| |-------------------------(S)--
 M_FalhaTermico            M_AlarmeLatched

--| |-------------------------(R)--
 I_ResetFalha              M_AlarmeLatched

Network J — Saída de alarme e bloqueio

--| |-------------------------( )--
 M_AlarmeLatched            Q_Alarme
Bloqueio do motor: adicione --|/|-- M_AlarmeLatched em série no comando do motor.
Reset seguro: em campo, só permita reset se térmico voltou OK e Stop estiver pressionado (ou máquina parada), conforme padrão da planta.

5) Roteiro de testes (comissionamento)

6) Exercícios (para você praticar)

Exercício 1 — Ajuste por DB

Crie DB10 com PV_Lote, T_Partida_s e T_Fan_s e substitua valores fixos pelos parâmetros.

Exercício 2 — Reset condicionado

Faça o reset do alarme latched só funcionar se I_TermicoOK=1 e I_Stop=1.

Exercício 3 — Contagem por turno

Crie um totalizador (DINT em DB) que some peças por pulso e zere ao iniciar turno.

⬅️ Voltar Aula 08 ▶️ Ir para Aula 10
Engenheiro de Software Roberto Vitor Vilela