Descrição:
Um problema comum enfrentado pelo driver Modbus é o seguinte: a comunicação ocorre, mas o tag apresenta uma mensagem de erro. De acordo com log do driver, é possível identificar uma mensagem de erro padrão. Como interpretar essa mensagem? Quais são os códigos de exceção do protocolo do driver Modbus?
Solução:
A princípio, o protocolo Modbus prevê alguns códigos de exceção; estes códigos são retornados por um equipamento sempre que uma solicitação é recebida mas não pode ser executada, por algum motivo. Quando recebidos, os códigos de exceção são registrados no log de comunicação do driver, e então precedidos pela mensagem “MODBUS exception response”.
A tabela a seguir lista os códigos de exceção, bem como com seus significados. Os códigos que não estão listados abaixo são erros específicos de cada equipamento; portanto, estes devem ser consultados em sua respectiva documentação.
Tabela:
Código (Hexadecimal) |
Nome | Significado |
01 | ILLEGAL FUNCTION | O código de função recebido não é válido. Isto pode indicar que a função não está implementada, ou então que o Escravo se encontra em um estado inadequado para processá-la. |
02 | ILLEGAL DATA ADDRESS | O endereço de dados recebido não é um endereço válido. Em suma, a combinação do endereço de referência e da quantidade de dados a serem transferidos é inválida. |
03 | ILLEGAL DATA VALUE | O valor presente na requisição do Mestre não é válido. Isto é, há uma falha na estrutura de dados remanescente de uma requisição complexa, como quando o tamanho informado para o bloco de dados não está correto. Esta exceção não indica que os valores submetidos para escrita estejam fora do escopo esperado pela aplicação, uma vez que tal informação não é acessível ao protocolo. |
04 | SLAVE DEVICE FAILURE | Em síntese, este código indica que correu um erro irrecuperável durante o processamento da função solicitada. |
05 | ACKNOWLEDGE | Usado com comandos de programação. O Escravo aceitou a mensagem e a está processando, mas este processamento demanda um longo tempo. Então, esta exceção ocorre para um timeout no Mestre. Portanto, o fim da requisição deve ser testado por um processo de polling. |
06 | SLAVE DEVICE BUSY | Usado com comandos de programação. Indica que o Escravo está processando um outro comando de longa duração e que portanto a solicitação deve ser retransmitida mais tarde, quando o Escravo estiver novamente disponível. |
08 | MEMORY PARITY ERROR | Usado em conjunto com as funções 20 e 21, reference type 6, este código indica portanto que a área estendida de arquivos falhou em um teste de consistência. É provável que o equipamento Escravo esteja precisando de manutenção. |
0A | GATEWAY PATH UNAVAILABLE | Usado em conjunto com gateways. Em suma, este código indica que o gateway não foi capaz de alocar um caminho interno para o processamento da solicitação. É provável que o gateway esteja desconfigurado ou sobrecarregado. |
0B | GATEWAY TARGET DEVICE FAILED TO RESPOND | Usado em conjunto com gateways. Em suma, este código indica que nenhuma resposta foi recebida do equipamento de destino. É provável que o equipamento não esteja presente na rede. |
Artigos Relacionados:
- Problemas Comuns no Driver Modbus: Múltiplos Escravos com Conversor RS485
- Problemas Comuns no Driver Modbus: Endereçamentos Iniciam em Índices Diferentes
- Problemas Comuns no Driver Modbus: Bytes e Words Fora de Ordem
- Problemas Comuns no Driver Modbus: Descontinuidade no Endereçamento do Equipamento
- Problemas Comuns no Driver Modbus: Equipamento Incrementa Endereços Fora do Padrão
- Problemas Comuns no Driver Modbus: Interpretando Prefixos de Endereços
- Problemas Comuns no Driver Modbus: Códigos de Exceção do Protocolo
- Problemas Comuns no Driver Modbus: Indexação de Endereços de Registradores.