Operações de Conversão
Escalonamento & Tipos
A conversão de dados é a ponte entre o mundo físico e o código digital. Domine o escalonamento de sinais analógicos e a transformação de tipos de dados.
O que são operações de conversão no TIA Portal?
As operações de conversão permitem transformar um valor de um tipo de dados para outro (ex: um Inteiro para um Real) ou manipular a precisão dos números de vírgula flutuante. Incluem também ferramentas de normalização e escalonamento, indispensáveis para processar sinais analógicos de sensores industriais.
O TIA Portal oferece instruções modernas e de alto desempenho como SCALE_X e NORM_X que substituem vantajosamente os antigos blocos SCALE/UNSCALE dos sistemas S7-300, oferecendo maior flexibilidade e melhor precisão matemática.
Conversão de Tipo
Transformação e arredondamento de formatos numéricos
CONVERT — Converter valor
CONVO que faz
Converte um valor de um tipo de dados de origem para um tipo de dados de destino. Gere conversões entre inteiros, reais, caracteres, tempo e strings.
Quando usar
Preparar um inteiro para cálculos matemáticos complexos convertendo-o para Real, ou converter um código de erro para String para exibição em HMI.
Dicas Pro
No LAD, clique nos tipos de dados do bloco para selecionar a origem e o destino.
No SCL: myReal := INT_TO_REAL(myInt);
Cuidado com perdas de precisão ao converter tipos grandes para tipos mais curtos.
ROUND / TRUNC
ROUNDO que fazem
ROUND arredonda um número flutuante para o inteiro mais próximo. TRUNC simplesmente remove a parte decimal (truncagem).
Quando usar
Exibir uma medição física como um inteiro simples, ou converter um resultado de cálculo Real para um índice de array (Int).
Dicas Pro
Se a parte decimal for exatamente .5, ROUND arredonda para o inteiro par mais próximo (norma IEC).
TRUNC é preferível se pretender apenas ignorar os decimais sem cálculo de arredondamento.
Ambos aceitam Real/LReal e devolvem geralmente um DInt.
CEIL / FLOOR
CEILO que fazem
CEIL (Teto) gera o inteiro superior ou igual. FLOOR (Chão) gera o inteiro inferior ou igual.
Quando usar
Calcular o número de caixas necessárias (arredondar sempre para cima com CEIL).
Dicas Pro
CEIL(10.1) = 11 ; FLOOR(10.9) = 10.
Essencial para algoritmos de logística.
Útil para garantir que um valor permaneça em limites inteiros estritos.
Escalonamento (Scaling)
Tratamento de sinais analógicos e grandezas físicas
NORM_X — Normalizar
NORM_XO que faz
Transforma um valor situado num intervalo [MIN..MAX] para um valor normalizado entre 0.0 e 1.0. É a primeira etapa do tratamento analógico.
Quando usar
Ler uma entrada analógica bruta (ex: 0-27648) e transformá-la numa percentagem.
Dicas Pro
Geralmente seguido imediatamente por um bloco SCALE_X.
Se a entrada exceder os limites, a saída excederá 0.0 ou 1.0.
Certifique-se de que MIN é diferente de MAX para evitar divisão por zero.
SCALE_X — Escalonar
SCALE_XO que faz
Recebe um valor normalizado [0.0..1.0] e projeta-o num intervalo físico definido por MIN e MAX (ex: 0-100°C).
Quando usar
Converter o resultado de NORM_X numa unidade de engenharia legível pelo operador.
Dicas Pro
A combinação NORM_X + SCALE_X é o padrão Siemens moderno.
Permite mudar gamas de sensores facilmente.
Também pode ser usado para o inverso: enviar um setpoint físico para uma saída analógica.
Instruções Legacy
Compatibilidade S7-300 (FC105 / FC106)
SCALE / UNSCALE
O que faz
Antigos blocos (Legacy) que efetuam a conversão direta num único passo.
Quando usar
Manutenção de programas migrados do Step 7 Classic.
Consejos Pro
SCALE corresponde ao antigo FC105.
Utilize BIPOLAR para sinais negativos (+/- 10V).
Prefira NORM_X/SCALE_X para novos desenvolvimentos.
Comparação de métodos
Escolher a instrução certa para a sua necessidade
| Você quer... | Recomendada | Exemplo |
|---|---|---|
| Mudar tipo (Int -> Real) | CONVERT | Cálculo preciso |
| Remover decimais | TRUNC | Visualização simples |
| Arredondar | ROUND | Estatísticas |
| Sensor 4-20mA | NORM_X + SCALE_X | Pressão 0-16 bar |
| Arredondamento superior | CEIL | Cálculo de paletes |
| Código S7-300 | SCALE (FC105) | Migração |
Perguntas Frequentes
Porque usar NORM_X e SCALE_X em vez de um único bloco?
Permite maior flexibilidade para filtrar ou limitar o valor normalizado antes de escaloná-lo.
Qual é o valor de entrada padrão para entradas analógicas Siemens?
Tipicamente 0 a 27648 para sinais unipolares.
Como converter para String?
CONVERT faz isso nativamente, ou use VAL_STRG para mais controlo.
Diferença entre ROUND e TRUNC?
ROUND arredonda para o mais próximo, TRUNC simplesmente corta os decimais.