Curso Básico de CLP — Siemens S7-1200

Aula 04 • Tipos de Variáveis (I, Q, M, DB + BOOL/INT/REAL)
Progresso 0%

Módulo 04 — Tipos de Variáveis (na prática)

Agora vamos organizar a “memória” do CLP: o que é Entrada (I), Saída (Q), Memória (M) e Data Block (DB). Você também vai dominar os principais tipos de dados (BOOL/INT/DINT/REAL), e aprender um padrão de nomes que evita dor de cabeça no comissionamento.

Objetivos da Aula

  • Entender áreas de memória: I, Q, M e DB.
  • Saber quando usar bits (BOOL) e valores numéricos (INT/DINT/REAL).
  • Entender “byte/word/dword” e endereçamento (ex.: I0.0, MW10, DB1.DBD20).
  • Criar tags limpas e padronizadas no TIA Portal.
  • Evitar erros comuns: sobreposição, tipo errado e endereços inconsistentes.
Resultado esperado: você consegue olhar um sinal e definir corretamente: área (I/Q/M/DB) + tipo (BOOL/INT/REAL).

1) Áreas de memória (I, Q, M e DB)

No S7-1200, você organiza variáveis por “área”. Isso é fundamental para entender endereços e fazer manutenção.

Área Significado Quando usar
I Entradas físicas (sensores/botoeiras) Leitura do campo (0/1 ou valores analógicos)
Q Saídas físicas (atuadores) Comando para o campo (liga/desliga / referência)
M Memórias internas (bits/words) Selagem, estados, flags, temporizações auxiliares
DB Data Block (dados estruturados) Setpoints, receitas, parâmetros, estados agrupados
Regra prática: I e Q “conversam com o mundo”. M e DB “organizam o cérebro” do programa.

2) Como ler endereços (bit/byte/word)

Endereços podem apontar para um bit (BOOL), byte (8 bits), word (16 bits) ou dword (32 bits).

Exemplos típicos

Bit (BOOL): I0.0 -> Entrada byte 0, bit 0 Q0.1 -> Saída byte 0, bit 1 M0.0 -> Memória byte 0, bit 0 Byte (8 bits): IB0 -> Byte de entradas 0 (0..255) QB0 -> Byte de saídas 0 MB10 -> Byte de memória 10 Word (16 bits): IW64 -> Word de entradas 64 (0..65535) QW64 -> Word de saídas 64 MW10 -> Word de memória 10 (2 bytes) DWord (32 bits): MD20 -> Double word memória 20 (4 bytes)
Macete: B byte (8b) • W word (16b) • D dword (32b).
Pegadinha: se você usar MW10 (2 bytes), ele ocupa MB10 e MB11. Evite “sobrepor” endereços.

3) Tipos de dados (BOOL, INT, DINT, REAL)

Tipo de dado define como o valor é interpretado. Escolher o tipo errado dá bugs “invisíveis”.

Tipo Tamanho Faixa / Uso típico
BOOL 1 bit Estado lógico (0/1): Start, Stop, Falha, Selagem
INT 16 bits -32768..32767 — contagens pequenas, tempos, índices
DINT 32 bits -2.147.483.648..2.147.483.647 — contagens grandes, totalizadores
REAL 32 bits Números com decimais — engenharia: nível, pressão, vazão, temperatura

Exemplo de escolha de tipo

  • Botão Start: BOOL
  • Contador de peças por minuto: INT (ou DINT se ficar grande)
  • Nível em % com decimais: REAL
Boa prática: valores analógicos normalmente viram REAL após escala (ex.: 4–20 mA → 0..100%).

4) Data Blocks (DB) — por que usar

DB é onde você guarda dados “organizados”. Em vez de espalhar MW/MD por todo lado, você cria um DB com nomes claros. Isso melhora manutenção e evita conflito de endereços.

Exemplo de DB para uma bomba

DB_Bomba (ex.: DB10) StartCmd : BOOL StopCmd : BOOL MotorOn : BOOL FalhaTermico : BOOL Nivel_Pct : REAL TempoPartida_s: INT
Memória M é ótima para flags rápidas. DB é melhor para dados de processo, parâmetros e estrutura.
Dica: se o projeto crescer (muitas áreas/máquinas), DB vira “obrigatório” para não virar bagunça.

5) Tags e padrões de nomenclatura

Tag é o “nome” do endereço. O nome certo faz você enxergar o processo sem decorar I0.0, Q0.0…

Padrão recomendado (didático e industrial)

I_ -> entradas Q_ -> saídas M_ -> memórias (flags internas) DB_ -> dados estruturados (DBs) Sugestão com área/equipamento: I_BOMBA_Start Q_BOMBA_Motor M_BOMBA_Selagem DB_BOMBA.Nivel_Pct
Regra: nome deve responder “o quê é?” e “de onde vem?” (área/máquina) sem você abrir desenho elétrico.

Comentários e documentação

  • Use comentários em tags e redes (Network comment).
  • Padronize idioma e abreviações (ex.: TERM, NIV, PRESS).
  • Quando possível, alinhe nomes com o TAG do painel e com o desenho elétrico.

6) Erros comuns e como evitar

Erro 1 — Sobreposição de endereços

Ex.: usar MW10 e também MB11 para outra coisa. O word ocupa 2 bytes, então você “briga” por memória.

Erro 2 — Tipo de dado errado

Ex.: tratar um valor analógico escalonado como INT quando precisa de REAL (perde decimais / lógica falha).

Erro 3 — Endereço “mágico” sem nome

Projeto cheio de M0.0, M0.1 sem tags vira manutenção lenta.

Checklist de prevenção:
  • Use tags nomeadas para tudo que for importante.
  • Evite MW/MD soltos — prefira DB para dados.
  • Revise mapa de memória antes de crescer o projeto.

7) Exercícios (fixação)

Exercício 1 — Classifique (área + tipo)

Para cada item, diga: I/Q/M/DB e o tipo (BOOL/INT/REAL):

Exercício 2 — Montar tabela de tags (padrão)

Crie as tags abaixo (nomes + endereços sugeridos):

I_Start -> I0.0 (BOOL) I_Stop -> I0.1 (BOOL) I_TermicoOK -> I0.2 (BOOL) Q_Motor -> Q0.0 (BOOL) Q_Alarme -> Q0.1 (BOOL) M_Selagem -> M0.0 (BOOL) M_Falha -> M0.1 (BOOL) DB10.Nivel_Pct -> REAL (dado de processo) DB10.Setpoint -> REAL (parâmetro)
Próxima aula (Aula 05 — Ladder): contatos NA/NF, bobina, selagem e intertravamentos no S7-1200.
⬅️ Voltar Aula 03 ▶️ Ir para Aula 05
Engenheiro de Software Roberto Vitor Vilela