- (24) 9 8827-3579
- comercial@tokenengenharia.com.br
- Seg - Sex: 8:00 - 18:00
BANCADA DO ELETRICISTA · TOKEN ENGENHARIA
Conversor de dados industriais — hex, decimal, binário, float IEEE-754 e word swap do Modbus
Recebeu um registrador bruto do CLP ou do inversor e não sabe se aquilo e 50 °C ou lixo? Cole o valor: a ferramenta devolve o hexadecimal, o decimal com e sem sinal, o binário e o float de 32 bits nas quatro ordens de byte (ABCD, DCBA, BADC, CDAB), com byte swap e word swap — na bancada, em portugues, sem cadastro.
Hex / dec / bin → float4 ordens de byteByte swap & word swapDetecta INF / NaNResponsável técnico CREA-RJAtendimento nacional
Resposta rapida
Um float de 32 bits chega no Modbus como dois registradores de 16 bits. Junte-os num valor de 32 bits e interprete pelo padrão IEEE 754-2019 (binary32): Valor = (−1)S × 2(E − 127) × (1 + M / 223), onde S e o sinal, E o expoente de 8 bits com bias 127 e M a mantissa de 23 bits. Exemplo: 0x42480000 em ordem ABCD da 50,0 (um sensor de 50 °C). Como o Modbus não padroniza a ordem dos bytes, a ferramenta mostra as quatro ordens ao mesmo tempo — e você compara com o valor físico medido para descobrir qual o seu equipamento usa. O resultado e de apoio: o manual do equipamento e a medição de campo mandam.
TOKEN ENGENHARIA
Confiabilidade e Segurança
Ferramenta gratis · redes industriais
Converta o registrador Modbus: hex, decimal, binário e float IEEE-754
Cole o valor bruto de um ou dois registradores. A ferramenta mostra na hora o hexadecimal, o decimal com e sem sinal, o binário e o float de 32 bits nas quatro ordens de byte — alem dos dois registradores Modbus com byte swap e word swap.
Ordem de byte WEG a confirmar: o byte-order dos parâmetros float pode variar por família e firmware. Teste as quatro ordens abaixo e compare com o valor físico medido antes de cravar.
Entrada não reconhecida. Use hex (ate 8 digitos), binário de 32 bits ou um decimal de 0 a 4.294.967.295.
Conversão de bases numéricas
Hexadecimal
0x42480000
Decimal UINT32
1.112.014.848
Decimal INT32 (com sinal)
+1.112.014.848
Registradores Modbus (16 bits)
0x4248 (16.968) | 0x0000 (0)
Binário (32 bits) — ■ sinal ■ expoente ■ mantissa
01000 0100100 1000 0000 0000 0000 0000
Float IEEE-754 de 32 bits — quatro ordens de byte
ABCD — Big Endian
50,0
0x42480000
DCBA — Little Endian
3,57e−43
0x00004842
BADC — Big Endian c/ byte swap
12.800
0x48420000
CDAB — Little Endian c/ word swap
0,0
0x00004248
Registradores Modbus (byte swap / word swap)
Reg[0] (High Word)
0x4248 = 16.968 dec
Reg[1] (Low Word)
0x0000 = 0 dec
Reg[0] com byte swap
0x4842 = 18.498 dec
Reg[1] com byte swap
0x0000 = 0 dec
Word swap — Reg[1] primeiro
0x0000 = 0 dec
Word swap — Reg[0] depois
0x4248 = 16.968 dec
Decomposicao do float (ordem ABCD)
Bit 31 (Sinal): 0 -> positivo
Bits 30-23 (Expoente): 10000100 = 132 (bias 127) -> expoente real = 132 – 127 = 5
Bits 22-0 (Mantissa): 10010000000000000000000
fração = 0,56250000
Bits 30-23 (Expoente): 10000100 = 132 (bias 127) -> expoente real = 132 – 127 = 5
Bits 22-0 (Mantissa): 10010000000000000000000
fração = 0,56250000
Valor ABCD = (-1)^0 x 2^5 x (1 + 0,562500)
= 50 (50,0000)
Fórmula IEEE 754-2019 com os números
Fórmula float32 (IEEE 754-2019):
Valor = (-1)^S x 2^(E – 127) x (1 + M / 2^23)
Valor = (-1)^S x 2^(E – 127) x (1 + M / 2^23)
Para 0x42480000 em ABCD:
S = 0, E = 132, M = 4.718.592
Valor = 50 -> 50,0000
Resultado orientativo, gerado pela engine do navegador a partir do valor informado. A ordem de byte do seu equipamento manda: confirme no manual ou compare com o valor físico medido antes de usar no comissionamento.
Como converter um registrador Modbus em float na mao
Quem comissiona rede industrial vive a mesma cena: o supervisório ou o terminal de leitura entrega um número cru de um registrador — algo como 0x4248 0x0000 — e a pergunta e simples e urgente: isso e 50°C, 200°C ou dado corrompido? A resposta depende de entender quatro coisas que a ferramenta resolve de uma vez: a base numérica, o sinal, o formato float e, acima de tudo, a ordem dos bytes. Vale conhecer a conta por tras, e não so ler o resultado.
O ponto de partida e que um registrador Modbus guarda 16 bits (2 bytes), enquanto um número de engenharia em ponto flutuante ocupa 32 bits (4 bytes). Logo, todo float ocupa dois registradores consecutivos. O primeiro passo e montar o valor de 32 bits a partir dos dois:
DWord = (Reg[0] × 65536) + Reg[1] = (Reg[0] « 16) | Reg[1]
Com o valor de 32 bits em maos, ele pode ser lido de varias formas: como inteiro sem sinal (UINT32), como inteiro com sinal (INT32), ou como número de ponto flutuante (float IEEE-754). A ferramenta mostra todas em paralelo, porque o mesmo padrão de bits significa coisas completamente diferentes em cada interpretação.
Hexadecimal, decimal e binário: a mesma informação em tres roupas
A conversão entre bases e puramente matematica. O hexadecimal e so uma forma compacta de escrever o binário: cada digito hex equivale a quatro bits. Por isso o técnico le e digita registrador em hex — 0x4248 e muito mais facil de conferir do que 0100 0010 0100 1000. O decimal e a forma humana de ler o mesmo número.
O detalhe que mais derruba leitura de registrador e o sinal. Um valor de 32 bits pode ser lido como UINT32, sempre positivo (0 a 4.294.967.295), ou como INT32 com sinal, usando complemento de dois. A regra: se o bit mais significativo (bit 31) for 1, o número e negativo no INT32; se for 0, o INT32 e igual ao UINT32. Em 0x42480000 o bit 31 e 0, então os dois valem +1.112.014.848 — nunca negativo. Ja um 0xFB2E lido como INT16 vale −1234, e não 64.302. Confundir os dois faz um transmissor de pressao parecer estar lendo 64 mil quando esta lendo −1234.
| Tipo de inteiro | Faixa | Quando o número e negativo |
|---|---|---|
| UINT16 | 0 a 65.535 | nunca (sempre positivo) |
| INT16 (com sinal) | −32.768 a +32.767 | se o bit 15 for 1 |
| UINT32 | 0 a 4.294.967.295 | nunca (sempre positivo) |
| INT32 (com sinal) | −2.147.483.648 a +2.147.483.647 | se o bit 31 for 1 |
O float IEEE-754 de 32 bits, byte a byte
O formato de ponto flutuante de precisão simples e definido pela norma IEEE 754-2019 (o formato binary32; identico ao da edição de 2008, que a 2019 substituiu). Os 32 bits sao divididos em tres campos:
- 1 bit de sinal (S) — 0 para positivo, 1 para negativo.
- 8 bits de expoente (E) — guardado com um bias de 127; o expoente real e E − 127.
- 23 bits de mantissa (M) — a parte fracionária, com um 1 implícito a esquerda.
A fórmula que junta tudo e:
Valor = (−1)S × 2(E − 127) × (1 + M / 223)
Veja com o exemplo que a ferramenta ja traz, o valor 0x42480000, que e um sensor lendo 50,0°C:
0x42480000 -> binário 0 10000100 10010000000000000000000
S = 0 -> positivo
E = 10000100 = 132 -> expoente real = 132 − 127 = 5
M = 1001000… (23 b) -> 1 + M / 2²³ = 1,5625
Valor = (−1)⁰ × 2⁵ × 1,5625 = 32 × 1,5625 = 50,0
Esse e exatamente o número que aparece no card de resultado na ordem ABCD. Um detalhe que confunde: 50,0625 não e 50,0. Se a ferramenta (ou a conta na mao) der 50,0625, o valor de entrada não era 0x42480000, e sim 0x42484000 — um erro de digitacao de um unico digito hex. Por isso toda saida numérica desta ferramenta e gerada pela engine do navegador, nunca digitada a mao.
O calcanhar de Aquiles
A ordem dos bytes muda tudo — e o Modbus não padroniza
Um float ocupa quatro bytes; um registrador Modbus guarda dois. A norma Modbus define o registrador de 16 bits, mas não diz em que ordem os dois registradores e os bytes dentro deles devem chegar. Cada fabricante escolhe a sua: Siemens costuma usar ABCD, alguns Allen-Bradley e Schneider usam CDAB, e ha inversores em BADC. A mesma sequência de bytes da quatro valores diferentes — e so um deles bate com a leitura física do instrumento. Por isso a ferramenta mostra as quatro ordens ao mesmo tempo: você compara com o valor real e descobre qual o seu equipamento usa.
0x42480000 em ABCD = 50,0; nas outras ordens, valores completamente diferentes.
Byte swap não e word swap
Aqui mora o erro mais comum de quem decodifica float no Modbus. São duas trocas distintas, e a nomenclatura ABCD/DCBA/BADC/CDAB combina as duas:
- Byte swap troca os dois bytes dentro de um mesmo registrador de 16 bits. O valor
0x1234chega como0x3412. Acontece quando a endianness do byte difere entre os dois lados. - Word swap troca os dois registradores de 16 bits entre si, sem mexer nos bytes de cada um. A sequência
[High, Low]chega como[Low, High]. Acontece quando o equipamento manda o registrador menos significativo primeiro.
Quando o float aparece como um número absurdo no SCADA — do tipo 3,57×10−43 no lugar de 50,0 —, quase sempre e uma dessas duas trocas na ordem errada. A ferramenta exibe os dois registradores isolados, cada um com byte swap, e o resultado do word swap, para você isolar qual das duas operações resolve.
| Notacao | Nome técnico | Sequencia recebida | Uso tipico |
|---|---|---|---|
| ABCD | Big Endian | A B C D (mais significativo primeiro) | Siemens S7, padrão de rede |
| DCBA | Little Endian | D C B A (menos significativo primeiro) | x86; alguns Allen-Bradley |
| BADC | Big Endian c/ byte swap | B A D C (words normais, bytes trocados) | alguns inversores |
| CDAB | Little Endian c/ word swap | C D A B (words invertidas, bytes trocados) | Allen-Bradley, Schneider (confirmar) |
O caso do inversor WEG: por que não cravamos a ordem
A pergunta mais frequente de quem trabalha com inversor no Brasil e: qual ordem o WEG CFW500 (ou CFW11) usa? A resposta honesta e que a ordem de byte dos parâmetros de 32 bits desses inversores precisa ser confirmada no manual de comunicação Modbus RTU do equipamento — e pode variar por família de produto e por firmware. Fontes de terceiros se contradizem (umas citam BADC, outras CDAB), então adotar uma ordem por suposição e justamente o erro que destroi a credibilidade de uma leitura.
Por isso, quando você seleciona o preset WEG, a ferramenta não crava a ordem: ela mostra um aviso para testar as quatro combinações e comparar com o valor físico medido. Essa e a regra de campo: na dúvida, leia um registrador cujo valor real você conhece (a temperatura do motor em um termômetro, por exemplo) e veja em qual das quatro ordens o número bate. Aquela e a ordem do seu equipamento, e vale para todos os parâmetros float dele.
Valores especiais: quando o registrador não e um número
O IEEE 754 reserva alguns padroes de bits para situações que não sao números normais. No campo, eles sao um sinal de diagnóstico precioso — e não um bug da ferramenta. A calculadora detecta cada um e explica o que costuma significar:
| Valor | Hex | Diagnóstico de campo |
|---|---|---|
| +Infinito | 0x7F800000 | Sensor desconectado ou overflow de escala |
| −Infinito | 0xFF800000 | Underflow severo |
| NaN | 0x7FC00000 (e variantes) | Dado corrompido ou erro de cálculo no dispositivo |
| +Zero | 0x00000000 | Zero positivo — verificar se e valor real ou ausencia de dado |
| −Zero | 0x80000000 | Zero negativo — matematicamente igual a +Zero |
Ao ver NaN ou Infinito num registrador, não adianta procurar o número certo: ele não existe. O caminho e verificar a fiação RS-485 e a terminação, conferir se o endereço do registrador esta correto, checar a lógica do transmissor e a integridade do telegrama Modbus (CRC, timeout). O valor voltara a fazer sentido quando a causa física for resolvida.
Como usar a ferramenta no comissionamento
O fluxo de campo e direto:
- Decodificar uma leitura: cole o valor bruto (em qualquer formato — com 0x, espacos ou dois-pontos), olhe as quatro ordens de float e escolha a que bate com o valor físico. Marque essa ordem no projeto e use para todos os parâmetros float daquele equipamento.
- Confirmar um inteiro com sinal: compare o UINT e o INT; se o transmissor pode ler valores negativos (pressao diferencial, por exemplo), e o INT que importa.
- Diagnosticar dado suspeito: se o número parece lixo, veja se cai em NaN, Infinito ou zero — isso aponta para problema físico, não para conta errada.
- Isolar uma troca: use os campos de byte swap e word swap para descobrir se o problema esta nos bytes dentro do registrador ou na ordem dos dois registradores.
Tudo roda no proprio navegador, sem enviar nada para servidor algum — funciona ate offline, depois de a pagina carregar uma vez, util em obra ou subestação sem sinal.
Quando a leitura vira projeto: a Token integra a rede com ART
Decodificar um registrador e uma conta de apoio — e para isso esta ferramenta existe e e gratuita. Mas quando a rede industrial precisa ser projetada, montada ou auditada, entra a engenharia: a topologia RS-485 com terminação e blindagem corretas, o mapa de registradores Modbus, o gateway para Ethernet/IP ou Profibus, a integração ao SCADA, a parametrização dos inversores e o comissionamento em campo, com responsável técnico e ART. A Token Engenharia atua em montagem industrial e eletromecânica e em comunicação industrial em todo o Brasil — do cabeamento ao supervisório.
Perguntas frequentes
Como converter um valor hexadecimal de um registrador Modbus em float IEEE-754?
Junte os dois registradores de 16 bits num valor de 32 bits e aplique a fórmula do binary32: Valor = (−1)S × 2(E − 127) × (1 + M / 223). Exemplo: 0x42480000 em ordem ABCD da 50,0. Como o Modbus não padroniza a ordem dos bytes, compare as quatro ordens com o valor físico.
Qual a diferença entre byte swap e word swap?
Byte swap troca os dois bytes dentro de um registrador de 16 bits (0x1234 vira 0x3412). Word swap troca os dois registradores de 16 bits entre si, sem mexer nos bytes. As notações BADC e CDAB combinam as duas operações.
O que significam ABCD, DCBA, BADC e CDAB?
São as quatro ordens de byte de um float de 32 bits (A = byte mais significativo, D = menos). ABCD e Big Endian; DCBA e Little Endian; BADC e Big Endian com byte swap; CDAB e Little Endian com word swap. O Modbus não impõe ordem, então cada fabricante escolhe a sua.
Qual ordem o WEG CFW500 usa?
A ordem dos parâmetros de 32 bits do CFW500 e CFW11 deve ser confirmada no manual de comunicação Modbus RTU do equipamento e pode variar por família e firmware. A ferramenta não crava a ordem WEG: teste as quatro combinações e compare com o valor físico medido.
Por que o decimal com sinal as vezes difere do sem sinal?
Se o bit 31 for 1, o número e negativo no INT32; se for 0, o INT32 e igual ao UINT32. Em 0x42480000 o bit 31 e 0, então os dois valem +1.112.014.848. Um 0xFB2E lido como INT16 vale −1234.
O que fazer quando o registrador retorna NaN ou Infinito?
São valores especiais do IEEE 754 que costumam indicar sensor desconectado, overflow de escala ou dado corrompido na comunicação. Verifique a fiação RS-485, o endereço do registrador, a lógica do transmissor e a integridade do telegrama Modbus.
Quando a leitura vira projeto de comunicação industrial?
Quando a rede precisa ser montada ou auditada: topologia RS-485, mapeamento Modbus, gateway, integração ao SCADA e comissionamento, com responsável técnico e ART. A Token Engenharia executa esse projeto em todo o Brasil.
Token Engenharia · Atuação nacional
Do registrador bruto a rede industrial integrada, com ART
A ferramenta decodifica o dado; a Token Engenharia projeta, monta e comissiona a rede. Comunicação industrial (Modbus, RS-485, Ethernet/IP), integração ao SCADA, parametrização de inversores e montagem eletromecânica — com responsável técnico e ART em todo o Brasil.