Matemática de Ponto Flutuante em um Micro PLC: PID, Escalonamento Analógico e Quando Você Realmente Precisa Disso

Deixe-me começar com um número: 214-219. Essa é a faixa de páginas no manual V6.2.2 onde os blocos de ponto flutuante estão. Você pensaria que o fornecedor os enterrou lá porque ninguém os usa. Errado. Eles os enterraram lá porque a matemática inteira é boa para noventa por cento dos trabalhos — e os últimos dez por cento é onde as máquinas reais estão.

Um Micro-PLC fazendo SIN, COS, TAN, LN, EXP, SQRT, comparações de números reais e movimentações de números reais. Dez anos atrás, essa frase teria sido uma piada. Hoje, ele é enviado em um módulo de trilho DIN de 35mm que custa menos do que uma sonda de osciloscópio decente.

Quando a Matemática Inteira Engana Você

Aqui está a armadilha. Escalonar uma entrada analógica de 0-10V com matemática inteira funciona — até você dividir. 6V em uma faixa de 0-1000: a divisão inteira descarta o resto, e de repente sua leitura de nível varia por uma unidade a cada varredura. Ao longo de um turno, a variação se acumula. Ao longo de uma semana, seu tanque transborda porque o PLC achou que o nível estava bom.

O ponto flutuante resolve isso. Um bloco de escalonamento, números reais de ponta a ponta, e o ruído de arredondamento desaparece. Isso não é um luxo. Isso é o que mantém suas bombas secas e seus clientes calmos.

Caso Concreto: Controle de Temperatura PID com Matemática Real

Configure um loop PID em um PR-18: a entrada analógica lê um PT100 através de um transmissor de 0-10V, o bloco PID calcula com ganhos de números reais, a saída aciona um canal PWM para o aquecedor. O motor de ponto flutuante mantém o termo integral estável. Em hardware apenas inteiro, esse mesmo loop precisa de agendamento manual de ganho e ainda oscila com erro baixo.

Eu assisti a um engenheiro de comissionamento perseguir uma oscilação de 0,4 graus por dois dias em um PID inteiro. Troquei a CPU pelo modelo de ponto flutuante, ajustei em uma hora. A diferença de custo do hardware era risível. A diferença de tempo de engenharia não era.

Os Blocos que Você Realmente Usará

Seja honesto: você usará ADD-R, SUB-R, MUL-R, DIV-R e SQRT. Talvez ROUND e TRUNC ao passar valores para o HMI. As funções trigonométricas estão lá para os projetos genuinamente estranhos — cálculos de fluxo, volume do tanque a partir do nível, compensação do ângulo do transportador. Quando aquele pedido estranho chegar, você não quer explicar que seu PLC não pode fazer cosseno.

E as conversões de string importam mais do que parecem. Real-para-string, inteiro-para-ASCII — é assim que você constrói mensagens de alarme legíveis e registros de dados sem uma linguagem de script HMI.

O Que Custa

Nada extra, uma vez que você escolha a CPU certa. Os blocos de ponto flutuante fazem parte da biblioteca padrão na revisão atual do manual, e o software é gratuito. O único custo real é a mudança de hábito: pare de pensar em inteiros, comece a pensar em unidades de engenharia.

Escalonamento Feito Certo

O escalonamento é onde o ponto flutuante ganha seu sustento, e também é onde a maioria dos bugs de escalonamento vive. O erro clássico: escalonar o valor bruto com matemática inteira e perder o resto em cada divisão. A correção clássica: faça a matemática em números reais e converta uma vez, na fronteira, onde o HMI ou SCADA espera um inteiro. Um bloco de escalonamento, números reais de ponta a ponta, e o ruído de arredondamento desaparece.

Escreva as constantes de escalonamento onde o próximo engenheiro possa encontrá-las. Um transmissor de 4-20mA lendo 0-10 bar: a fórmula, a faixa bruta, a faixa de engenharia — tudo isso pertence a um comentário no bloco de escalonamento. O valor "parece certo" por meses até que não pareça, e a pessoa depurando precisará das constantes, não da memória da pessoa que as escolheu.

Teste os limites na comissionamento: mínimo, máximo e o ponto médio. Um bloco de escalonamento que está correto a 50% mas errado a 0% passará por um olhar casual e falhará em um processo real. Três pontos de teste, cinco minutos, e o escalonamento está feito.

A Falácia do Apenas Inteiro

Há uma escola de pensamento que diz que umMicro PLCdeve permanecer apenas inteiro porque é isso que pequenos controladores fazem. É uma posição defensável do ponto de vista de custo e uma posição indefensável do ponto de vista de engenharia no momento em que seu processo envolve divisão, razões ou qualquer coisa que se pareça com unidades reais. O hardware de ponto flutuante não custa nada extra nesta plataforma; a capacidade está na biblioteca de blocos, não em um nível premium.

O verdadeiro custo do pensamento apenas inteiro aparece na manutenção: as soluções alternativas — inteiros escalonados, decimais deslocados, matemática de ponto fixo feita à mão — são exatamente o código que ninguém entende seis meses depois. Ponto flutuante lê como o processo: temperatura em graus, nível em metros, fluxo em litros por minuto. Código legível é código mantível, e código mantível é o que mantém um contrato de serviço lucrativo.

Use inteiros onde eles são a ferramenta certa — contadores, bandeiras, valores de índice. Use floats onde o processo vive. A plataforma oferece ambos; a disciplina é escolher por sinal, não por religião.

Números Reais no HMI

As telas HMI e SCADA devem mostrar unidades de engenharia, não inteiros brutos — e o escalonamento vive do lado do PLC. Faça a conversão uma vez, em um bloco de escalonamento, e os displays leem graus, barras e litros por minuto em todos os lugares. A alternativa — escalonamento em cada tela, cada tag, cada relatório — é um erro de fórmula esperando para acontecer. Um ponto de conversão por sinal, documentado no comentário do bloco, e todo o sistema fala a língua do operador.

Esse é o deslocamento. O hardware já fez isso. Seu estilo de programação é a última peça da atualização.