Introdução
Se você já trabalhou com fornos industriais, sabe que o controle da temperatura de refrigeração não é opcional — é crítico. Uma variação mal gerenciada compromete o processo, estressa os equipamentos e pode gerar parada de linha. O controle PID com o Siemens S7-1200 resolve esse problema de forma elegante: simples de configurar no TIA Portal, robusto o suficiente para aguentar o dia a dia da planta.
Neste artigo, vou mostrar exatamente como implementamos esse controle em um projeto real aqui na Automach. O sistema cuida da temperatura da água que circula nos fornos: uma bomba mantém a água em movimento e um inversor de frequência ajusta a velocidade de um ventilador que resfria essa água. Quem manda no inversor é o PID, fechando o laço a partir de um sensor de temperatura instalado na linha de água.
Você vai aprender a configurar o bloco PID_Compact no TIA Portal, entender os parâmetros que realmente importam e ver como estruturamos a lógica de controle para esse tipo de aplicação.
Por que usar PID para controlar temperatura no sistema de refrigeração?
O controle liga/desliga (on/off) até funciona em alguns casos, mas numa aplicação de refrigeração com inércia térmica alta — como acontece nos sistemas de forno —, ele gera ciclos de temperatura com overshoot constante. Isso significa que o ventilador fica alternando entre velocidade máxima e parado, gerando desgaste mecânico e resposta lenta.
O controle PID (Proporcional-Integral-Derivativo) resolve isso porque ele calcula continuamente o erro entre a temperatura de setpoint e a temperatura medida, e entrega ao inversor exatamente a frequência necessária para compensar esse erro — sem overshoots desnecessários, sem liga-desliga.
Na prática:
- P (Proporcional): age proporcional ao erro atual. Quanto mais longe do setpoint, mais o ventilador acelera.
- I (Integral): elimina o erro estático ao longo do tempo. Sem ele, o sistema estabiliza ligeiramente abaixo ou acima do setpoint.
- D (Derivativo): antecipa variações bruscas. No nosso caso, ajuda quando a carga do forno muda de repente.
Para refrigeração de água em fornos, na maioria dos projetos o PD é suficiente ou um I com tempo longo. O D costuma ser dispensado em sistemas com bastante inércia — mas o PID_Compact do S7-1200 te deixa ajustar tudo isso via autotune.
Visão Geral do Sistema
Antes de ir para o TIA Portal, entenda a arquitetura do projeto:
| Componente | Função |
|---|---|
| Siemens S7-1200 (CPU 1212C ou superior) | Controlador principal — executa o PID |
| Sensor de temperatura PT100 / 4–20 mA | Mede a temperatura da água de retorno |
| Módulo analógico SM 1231 | Converte o sinal do sensor para o PLC |
| Inversor de frequência (WEG CFW ou Siemens G120) | Controla a velocidade do ventilador |
| Bomba de circulação | Mantém a água em movimento no circuito |
| Ventilador do radiador | Resfria a água antes de retornar aos fornos |
O fluxo de controle é simples: o sensor mede a temperatura da água → o S7-1200 calcula o erro em relação ao setpoint → o PID gera um sinal de 0 a 100% → esse sinal vai como referência de velocidade para o inversor via saída analógica (0–10 V ou 4–20 mA) → o inversor acelera ou desacelera o ventilador.
⚠️ Atenção: A bomba de circulação NÃO é controlada pelo PID. Ela deve estar sempre ligada enquanto o forno estiver em operação. O PID controla apenas o ventilador. Lembre-se de criar um intertravamento que garanta que o inversor só entre em operação com a bomba confirmada (pressostato ou corrente).
Configurando o PID_Compact no TIA Portal
O TIA Portal disponibiliza o bloco PID_Compact (FB41) dentro da biblioteca de tecnologia. Ele já inclui a lógica completa de PID com autotune integrado — não precisa implementar na mão.
Passo 1: Adicionar o bloco PID_Compact ao projeto
- No TIA Portal, abra seu projeto e vá até a CPU S7-1200.
- Na pasta Technology Objects (dentro do device), adicione um novo objeto → selecione PID_Compact.
- Dê um nome significativo:
PID_Temperatura_Agua. - O TIA Portal cria automaticamente o DB de instância associado.
💡 Dica: Coloque o bloco PID_Compact em um OB de execução cíclica com tempo fixo — o OB30 (Cyclic Interrupt) é o mais indicado. No nosso projeto usamos 100 ms de ciclo para temperatura de água, que tem inércia razoável. Nunca rode PID em OB1 (ciclo livre), pois o tempo de execução variável corrompe o cálculo do integral.

Passo 2: Configurar os parâmetros no bloco
Após inserir o bloco no OB30, acesse a configuração (duplo clique no bloco → aba Configuration):
Aba Basic Settings:
- Controller type:
Temperature - Control direction:
Reverse— porque ao aumentar a temperatura, queremos aumentar a saída (mais ventilação = mais resfriamento)
⚠️ Atenção: Cuidado com a direção do controle. Em refrigeração, temperatura alta = saída alta (ventilador rápido). Em aquecimento seria o inverso. Se inverter aqui, o sistema vai divergir ao invés de controlar.
Aba Input/Output:
- Input: selecione
Input_PERse for usar entrada analógica direta (valor em formato percentual do módulo SM 1231) ouInputse já converter para engenharia (°C) no ladder. - Output:
Output_PERpara saída analógica direta, ouOutputpara tratar no ladder. - Setpoint: conecte a uma variável DB ou tag de memória (
SetpointTemperatura).
No nosso projeto, usamos a entrada em formato de engenharia (Input em °C) convertida com o bloco NORM_X / SCALE_X a partir do valor bruto do SM 1231:
scl
// Conversão do sensor PT100 (4-20mA → 0-100°C)
"PID_Temperatura_Agua".Input := NORM_X(MIN := 0.0, VALUE := #SensorRaw, MAX := 27648.0) * 100.0;
Passo 3: Definir os limites de saída
Ainda na configuração:
- Output high limit:
100.0(100% da saída analógica → frequência máxima do inversor) - Output low limit:
0.0— mas avalie se faz sentido o ventilador parar completamente. Em alguns projetos colocamos20.0como mínimo para garantir circulação mínima de ar.
💡 Dica: Se o inversor tem uma frequência mínima configurada (ex: 5 Hz), não importa se você manda 0% — ele vai operar no mínimo mesmo. Alinhe o limite inferior do PID com o que o inversor realmente faz.
Passo 4: Ajustar os parâmetros PID (Manual ou Autotune)
Valores iniciais para testar:
| Parâmetro | Valor inicial sugerido |
|---|---|
| Ganho proporcional (P) | 2.0 |
| Tempo integral (Ti) | 30 s |
| Tempo derivativo (Td) | 0.0 s (desabilitado inicialmente) |
Para temperatura de água com inércia média-alta, esses valores são um bom ponto de partida. Depois use o Autotune do próprio TIA Portal para refinar.
Como rodar o Autotune:
- Com o PLC em modo RUN e o sistema em operação estável, acesse Online → PID_Compact → Commissioning.
- Ative o modo Pretuning — o bloco faz um degrau na saída e mede a resposta do processo.
- Em seguida, rode o Fine tuning para refinar os ganhos.
- Ao finalizar, os parâmetros são escritos no DB de instância. Copie os valores para a configuração offline e faça o download permanente.
⚠️ Atenção: Nunca rode o Autotune com o forno em temperatura crítica ou com produto dentro. Faça o processo em condição de vazio ou com a produção parada, pois o autotune faz variações propositais na saída.
Lógica de Controle e Intertravamentos
Além do PID em si, o projeto precisa de uma lógica de controle ao redor. Aqui está o que implementamos:
Habilitação do PID
O PID só deve rodar quando:
- A bomba de circulação está ligada e confirmada (sinal de corrente ou pressostato)
- O forno está em modo operação (não em manutenção)
- Não há falha no sensor de temperatura
scl
// Habilitação do PID_Compact
"PID_Temperatura_Agua".ManualEnable := FALSE; // Modo automático
"PID_Temperatura_Agua".Reset := "FalhaSensor" OR NOT "BombaConfirmada";
// Modo manual de emergência (operador pode forçar frequência pelo HMI)
IF "ModoManualHMI" THEN
"PID_Temperatura_Agua".ManualEnable := TRUE;
"PID_Temperatura_Agua".ManualValue := "FrequenciaManualHMI"; // 0-100%
END_IF;
Saída para o Inversor
A saída do PID (0–100%) precisa ser convertida para o formato da saída analógica (0–27648 para saída de corrente 4–20 mA, ou 0–27648 para tensão 0–10 V):
scl
// Conversão da saída PID para o módulo analógico
"SaidaInversor_AQ" := SCALE_X(
MIN := 0,
VALUE := "PID_Temperatura_Agua".Output,
MAX := 27648
);
👉 Ver preço do Módulo Analógico Siemens SM 1232 no Mercado Livre
Alarmes
Sempre inclua:
- Temperatura alta (High-High): desliga o forno, não apenas alarme
- Falha de sensor: vai para modo manual com frequência fixa de segurança
- Falha do inversor: alarme crítico e bloqueio do processo
Configuração do Inversor para Controle via PID
O inversor recebe o sinal analógico do S7-1200 e converte para frequência de saída. Os parâmetros essenciais a configurar (exemplo WEG CFW11 / Siemens G120):
| Parâmetro | Configuração |
|---|---|
| Referência de velocidade | Entrada analógica (AI1) |
| Sinal de referência | 0–10 V ou 4–20 mA (conforme hardware) |
| Frequência mínima | 10–15 Hz (evita parada total do ventilador) |
| Frequência máxima | 60 Hz |
| Rampa de aceleração | 5–10 s (suave para motor do ventilador) |
| Rampa de desaceleração | 10–15 s |
💡 Dica: Para ventiladores, sempre configure rampa de desaceleração generosa. Ventiladores têm inércia alta e forçar parada rápida pode gerar sobretensão no barramento CC do inversor (Fault 7 no CFW, por exemplo).
👉 Ver preço do WEG CFW11 no Mercado Livre
- Compatível com sensores Pt100 e termopares J/K/T. | Controle PID inteligente. | Interface de usuário simplificada.
- Haste de aço inox 304 com 6 x 36 cm que permite a imersão direta em fornos, caldeiras e processos industriais. | Operaçã…
Sensor de Temperatura: PT100 vs Transmissor 4–20 mA
A escolha do sensor impacta diretamente a qualidade do controle:
| Critério | PT100 direto | Transmissor 4–20 mA |
|---|---|---|
| Custo | Mais barato | Mais caro |
| Módulo necessário | SM 1231 RTD | SM 1231 AQ (comum) |
| Ruído elétrico | Suscetível em cabo longo | Imune (corrente) |
| Distância do painel | Limitada (~50 m) | Sem limitação prática |
| Instalação | Mais simples | Necessita fonte 24V |
| Recomendação | Painel próximo ao sensor | Ambiente ruidoso ou distante |
Em ambientes industriais com inversores e motores por perto — como é o caso de sistemas com fornos —, o transmissor 4–20 mA é sempre preferível. Ruído elétrico em cabo PT100 longo vai comprometer a leitura e deixar o PID instável.
👉 Ver preço do Transmissor de Temperatura 4-20mA no Mercado Livre
Checklist de Implementação
- Bloco PID_Compact adicionado ao OB30 (Cyclic Interrupt 100 ms)
- DB de instância criado e nomeado corretamente
- Direção do controle configurada como “Reverse” para refrigeração
- Limite de saída mínimo alinhado com frequência mínima do inversor
- Sensor de temperatura com sinal 4–20 mA (preferencial)
- Conversão de entrada NORM_X/SCALE_X implementada
- Saída analógica convertida com SCALE_X para o módulo AQ
- Intertravamento: PID só habilitado com bomba confirmada
- Modo manual via HMI implementado com ManualEnable/ManualValue
- Reset do PID em caso de falha de sensor
- Alarme de temperatura alta configurado (High e High-High)
- Autotune executado com sistema estabilizado
- Parâmetros PID salvos no projeto offline após autotune
Erros Comuns
1. Rodar o PID no OB1 (ciclo livre) O PID_Compact precisa de tempo de ciclo fixo para calcular corretamente os termos I e D. No OB1, o tempo varia e isso distorce o comportamento. Use sempre OB cíclico (OB30 ou superior).
2. Direção de controle errada Inverter o sentido (Direct ao invés de Reverse ou vice-versa) faz o PID agir ao contrário: temperatura sobe, ventilador desacelera. O sistema vai direto para o limite máximo de temperatura. Sempre verifique antes de ligar.
3. Não colocar limite mínimo de saída Com saída em 0%, o inversor pode desligar completamente o ventilador. Se o forno ainda estiver quente e a bomba estiver em operação, a temperatura da água vai subir lentamente sem resfriamento nenhum. Coloque um mínimo de 15–20% na saída do PID.
4. Fazer autotune com carga variável Se fizer o autotune enquanto o forno está sendo carregado ou descarregado, a perturbação externa vai confundir o algoritmo de identificação. O resultado vai ser um PID mal ajustado. Estabilize o processo antes de iniciar.
5. Ignorar falha de sensor Sensor com fio partido entrega sinal fora de escala (0 mA ou abaixo de 4 mA). O PID vai interpretar como temperatura negativa e abrir a saída em 100% tentando “refrigerar”. Implemente verificação de underrange/overrange e force modo manual em caso de falha.
Conclusão
O controle PID com o S7-1200 para temperatura de água em sistemas de refrigeração de fornos é uma aplicação clássica e muito eficiente quando implementada corretamente. O bloco PID_Compact no TIA Portal entrega praticamente tudo pronto — você precisa configurar a direção certa, o tempo de amostragem adequado, os intertravamentos de segurança e fazer um bom autotune.
O detalhe que faz diferença na prática é o cuidado com os periféricos: sensor com sinal de corrente (4–20 mA) para evitar ruído, rampa generosa no inversor para proteger o motor do ventilador e um modo manual bem implementado para o operador assumir o controle em situações de emergência.
Se você implementou um controle parecido ou ficou com alguma dúvida sobre a configuração do PID_Compact, deixa nos comentários — esse tipo de troca de experiência é o que faz o técnico crescer de verdade.
Quer receber novos artigos sobre TIA Portal e automação industrial direto no seu e-mail? Assine a newsletter do PLCnaPratica.
FAQ
O PID_Compact do TIA Portal funciona no S7-1200 e no S7-1500? Sim. O PID_Compact é compatível com ambos os controladores. No S7-1500 você também tem o PID_3Step (para controle de atuadores de três pontos, como válvulas motorizadas) e o PID_Temp (focado em controle de temperatura com funcionalidades extras). Para a maioria das aplicações de temperatura industrial, o PID_Compact no S7-1200 já é suficiente.
Qual a diferença entre PID_Compact e PID_3Step no TIA Portal? O PID_Compact gera uma saída contínua (0–100%), ideal para inversor de frequência ou válvula proporcional. O PID_3Step é para atuadores que recebem pulsos de “abre” e “fecha” — como válvulas motorizadas sem retorno de posição. Para controle de ventilador via inversor, sempre use o PID_Compact.
Posso usar o bloco PID sem o módulo analógico, via Modbus para o inversor? Sim. Em vez de saída analógica, você pode escrever a saída do PID (0–100%) diretamente no registrador de referência de velocidade do inversor via Modbus RTU ou Modbus TCP. O S7-1200 suporta comunicação Modbus nativamente. A vantagem é eliminação do módulo analógico; a desvantagem é latência um pouco maior na comunicação serial.
Quanto tempo leva para o autotune do PID_Compact convergir? Depende da inércia do processo. Para temperatura de água com trocador de calor e ventilador, o pretuning costuma levar entre 5 e 15 minutos. O fine tuning pode levar mais 10 a 20 minutos. No total, conte com 30 a 45 minutos de processo estável para fazer um autotune completo e confiável.
O que fazer se o PID ficar oscilando mesmo após o autotune? Primeiro verifique se o sensor não está com ruído elétrico — isso confunde o autotune. Se o ruído estiver ok, tente aumentar o tempo integral (Ti) em 20–30% e reduzir o ganho proporcional (P). Oscilação geralmente indica ganho P alto demais ou Ti muito curto. O bloco PID_Compact tem um filtro de entrada (DerivativeTime → DFilterCoeff) que pode ajudar a suavizar o sinal se o ruído for inevitável.
Preciso de licença especial no TIA Portal para usar o PID_Compact? Não. O PID_Compact faz parte da biblioteca de tecnologia padrão do TIA Portal e está disponível sem custo adicional para CPUs S7-1200 e S7-1500. Basta adicionar o bloco ao projeto normalmente.

