ForHosting KIT · Ferramentas para dev

Checksum CRC-16 Modbus

Um pedido Modbus RTU que lê dez registradores a partir do 0 no dispositivo 1 recebe o CRC CDC5, enviado como C5 CD. Cole um frame em hexadecimal ou como texto para obter o valor de 16 bits com os bytes na ordem de envio. Grátis no seu navegador.

  • Grátis
  • Funciona no seu navegador
  • Sem cadastro
  • Seus dados não saem do seu aparelho
Use pelo WebAPIE-mailTelegramApp em breve
Se você digitar
Texto
123456789
Você obtém
CRC em hex
4B37
CRC (inteiro)
19.255
Crc lo
37
Crc hi
4B

CRC-16 Modbus é a verificação de redundância cíclica que fecha quase todo frame Modbus RTU em série e em muitos barramentos industriais. Programadores, integradores de PLC e testadores de protocolo precisam de um único número determinístico ao montar um pedido, validar uma resposta ou depurar um pacote corrompido no fio. Esta capacidade aceita texto UTF-8 simples ou um dump hex de bytes, executa o algoritmo padrão CRC-16/MODBUS com polinómio 0xA001 e valor inicial 0xFFFF, e devolve o resultado de dezasseis bits em hexadecimal maiúsculo junto com os bytes baixo e alto na ordem de transmissão Modbus.

O que é CRC-16 Modbus e por que ferramentas industriais precisam dele

Uma verificação de redundância cíclica dobra cada byte de dados por um polinómio fixo de modo que um único bit invertido quase sempre altera o residual. O Modbus RTU adotou um CRC de dezasseis bits específico: o gerador é o polinómio refletido 0xA001 (equivalente a 0x8005 na forma não refletida), o registo começa em 0xFFFF, cada byte de dados é combinado com XOR nos oito bits baixos, e por byte seguem oito passos de deslocamento e XOR condicional sem XOR final.

A palavra de dezasseis bits resultante é anexada ao frame primeiro o byte baixo e depois o alto — a ordem que eletricistas e analisadores de protocolo esperam num osciloscópio ou sniffer série. Manuais e datasheets chamam este perfil CRC-16/MODBUS; calculadoras online por vezes usam outros iniciais ou polinómios e discordam em silêncio de um PLC. Use-o sempre que montar ou verificar Modbus RTU, muitos protocolos de medidores que tomaram o mesmo CRC, ou qualquer frame binário personalizado que especifique CRC-16 Modbus pelo nome.

Contrato de entrada, parsing hex e campos de resposta

No modo text a string é codificada como UTF-8 e cada byte resultante entra no CRC; texto vazio é permitido e produz residual FFFF para carga de comprimento zero. No modo hex a string é interpretada como sequência de bytes: primeiro removem-se prefixos 0x opcionais, espaços, dois-pontos, hífens, underscores e vírgulas; depois os caracteres restantes devem formar apenas dígitos hexadecimais em quantidade par. Validação falhada não é faturada.

Mantenha cargas modestas no navegador; o algoritmo é linear no comprimento em bytes e totalmente em memória.

Análise de capturas e depuração

Cole dumps hex de um sniffer série no modo hex para recalcular o CRC e identificar rapidamente frames industriais truncados ou corrompidos.

Que polinómio e valor inicial usa?

CRC-16/MODBUS: polinómio refletido 0xA001, registo inicial 0xFFFF, sem XOR final. Coincide com implementações de PLC e medidores em Modbus RTU.

Em que ordem os bytes do CRC são enviados em um frame Modbus?

Primeiro o byte baixo, depois o alto. Um CRC 4B37 trafega como 37 seguido de 4B, a ordem que um osciloscópio ou um sniffer serial mostra. A ferramenta devolve os dois bytes separados e na ordem de envio.

Posso colar um dump hexadecimal de um sniffer serial?

Pode. Escolha o modo hexadecimal e cole os bytes: espaços, dois-pontos, hífens, sublinhados, vírgulas e prefixos 0x são removidos antes. O que sobra precisa ser um número par de dígitos hexadecimais; caso contrário, a ferramenta avisa que o hexadecimal está malformado.

Por que outra calculadora online dá um CRC diferente?

Algumas usam outro valor inicial ou outro polinômio e discordam do CLP sem avisar. Confira com o texto 123456789: o CRC-16 Modbus precisa dar 4B37. Qualquer outro resultado indica um perfil diferente.

Dá para calcular o CRC de uma mensagem vazia?

Dá. No modo texto, uma string vazia é aceita e o resultado é FFFF, o valor inicial do registrador, já que nenhum byte foi processado. Qualquer outro texto é codificado em UTF-8 antes do cálculo.

Tudo nesta página está disponível via API. Esta seção é para equipes que querem integrar a ferramenta aos próprios sistemas; quem não precisa disso pode simplesmente usar a ferramenta acima.

POSThttps://api.kit.forhosting.com/enc/crc16-modbus

Autenticação por token Bearer. Um único POST coloca a tarefa na fila; o resultado chega por webhook ou link assinado.

curl -X POST https://api.kit.forhosting.com/enc/crc16-modbus \
  -H "Authorization: Bearer $KIT_KEY" \
  -H "Content-Type: application/json" \
  -d '{"text":"123456789"}'
{
  "text": "123456789"
}
{
  "task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
  "type": "enc.crc16_modbus",
  "status": "queued",
  "_links": {
    "result": "/tasks/tsk_…/result"
  }
}

A API é assíncrona: cada chamada devolve um task_id na hora. Se preferir polling, consulte o status a até 1 requisição por segundo.

por chamadaUS$ 0,002

Preço publicado, sem tokens nem créditos escondidos. Tarefa que falha não é cobrada.

HTTPCódigoO que significa
401unauthorizedToken ausente ou inválido. Confira o header Authorization.
402insufficient_balanceSaldo insuficiente para esta tarefa. Faça uma recarga e tente de novo.
404unknown_typeEsse tipo de tarefa não existe. Confira o campo type no catálogo.
429rate_limitedMuitas requisições em pouco tempo. Espere um instante e tente de novo.

Hex malformado — contagem ímpar de dígitos ou caracteres não hex — falha com invalid_input em vez de inventar um checksum.

O que é CRC-16 Modbus e por que ferramentas industriais precisam dele

Este endpoint fixa o perfil industrial de forma que a cadeia um-dois-três-quatro-cinco-seis-sete-oito-nove produz o residual conhecido 0x4B37, e um pedido clássico de leitura de holding registers como endereço um, função três, registo inicial zero, quantidade dez produz 0xCDC5 com ordem no fio C5 CD.

Contrato de entrada, parsing hex e campos de resposta

Envie por POST um corpo JSON com o campo de string obrigatório text e o opcional input_format com valor text ou hex, predefinido text. Um número ímpar de dígitos após a limpeza, ou qualquer carácter fora de zero a nove e de A a F, lança invalid_input com uma mensagem que nomeia hex malformado para o cliente exibir o erro junto ao campo sem adivinhar. Em sucesso o corpo inclui crc_hex como quatro dígitos hex maiúsculos, crc_int como inteiro sem sinal de zero a sessenta e cinco mil quinhentos e trinta e cinco, crc_lo e crc_hi como bytes baixo e alto dessa palavra, wire_hex como a ordem de transmissão little-endian de dois bytes usada no Modbus RTU, byte_count da carga interpretada, o input_format ecoado, e strings fixas algorithm, poly e init que documentam CRC-16/MODBUS com 0xA001 e 0xFFFF. Aceitam-se aliases data, payload, value e input para a carga; format, mode e encoding aliasam input_format.

Onde uma API CRC-16 Modbus justifica o seu lugar

Engenheiros de protocolo e investigadores de segurança recalculam residuais sobre tráfego capturado para separar frames limpos do ruído sem montar uma pilha completa. Sites de conteúdo que competem por checksum CRC-16 Modbus ganham uma calculadora ao vivo cujo caminho gratuito coincide byte a byte com o de automação. Mantenha pedidos determinísticos, fixe o vetor conhecido um-dois-três-quatro-cinco-seis-sete-oito-nove igual a quatro B três sete em suites de regressão, e obtenha reprodutibilidade de grau industrial sem embutir tabelas CRC em cada microsserviço. Integradores de sistemas automatizam a API em ferramentas de comissionamento que geram centenas de frames Modbus de leitura e escrita para medidores, drives e unidades terminais remotas, fixando valores dourados de crc_hex em integração contínua para que um erro de polinómio nunca chegue a produção. Como a implementação é parse pura tier A, cada chamada bem-sucedida custa o preço base publicado US$ 0,002 sem tokens de modelo e sem rede de saída. Combine o wire_hex da resposta com o caminho de escrita série quando precisar dos dois bytes de trailer exatos, ou use crc_hex quando só precisar do residual numérico para logs e testes unitários.

Montagem de frames Modbus RTU

Construa os bytes de endereço, função e dados, e anexe o trailer wire_hex devolvido para que o byte baixo do CRC seja transmitido primeiro, como o Modbus RTU exige.

Checagens douradas de firmware e CI

Afirme que o código do dispositivo e as ferramentas do servidor produzem crc_hex 4B37 para ASCII 123456789 e o residual documentado das suas templates de pedido fixas.

Como calcular um checksum CRC-16 Modbus?

Envie text como UTF-8 com input_format text (predefinido), ou uma string de bytes hex com input_format hex. A API devolve crc_hex, crc_int, bytes baixo/alto e wire_hex na ordem Modbus RTU.

O que acontece se a string hex estiver malformada?

Contagem ímpar de dígitos após remover separadores, ou qualquer carácter não hex, falha com invalid_input e mensagem de hex malformado. Essas falhas não são faturadas.

Qual a diferença entre wire_hex e crc_hex?

crc_hex é o residual de dezasseis bits como quatro dígitos hex (nibble alto do byte alto primeiro na string). wire_hex é byte baixo e depois alto — a ordem anexada no fio Modbus RTU.

Quanto custa a ferramenta de checksum CRC-16 Modbus?

A ferramenta no navegador é gratuita. Pedidos API usam saldo pré-pago KIT a US$ 0,002 por chamada bem-sucedida; entrada inválida não é faturada.

Ver a documentação completa do KIT →