💻 Aula 03: Protocolo Modbus — Modbus RTU, ASCII e Modbus TCP-IP (Mapeamento de Registradores)

Navegação Rápida

📍 Disciplina: 05 Redes Industriais | 🗺️ Área: 06 Computação e Telecomunicações | 🏠 Hub Principal ⬅️ Aula Anterior: Aula 02 - Camada Física Industrial | ➡️ Próxima Aula: Aula 04 - Barramentos de Campo


📌 Sumário da Aula

  1. ⚙️ 1. Arquitetura e Histórico do Protocolo Modbus
  2. 📦 2. Modos de Transmissão: Modbus RTU, Modbus ASCII e Modbus/TCP
  3. 🗺️ 3. O Modelo Canônico de Dados: As Quatro Tabelas de Registradores
  4. 🛠️ 4. Códigos de Função da Camada de Aplicação e Tratamento de Exceções
  5. 📡 5. O Protocolo HART: Comunicação Digital Sobreposta à Malha 4-20 mA
  6. 📊 6. Mapa Visual do Protocolo Modbus e Mapa de Memória
  7. 📝 7. Questões de Fixação e Concursos Comentadas Passo a Passo
  8. 📚 8. Referências Bibliográficas e Normas Técnicas

⚙️ 1. Arquitetura e Histórico do Protocolo Modbus

Desenvolvido originalmente em 1979 pela Modicon (atual Schneider Electric) para integração de seus Controladores Lógicos Programáveis (CLPs), o Modbus consolidou-se como o protocolo industrial aberto de maior difusão no mundo. Sua perenidade fundamenta-se na simplicidade arquitetural, facilidade de implementação em microcontroladores de baixo custo e independência da camada física.

1.1 Modelo Mestre-Escravo e Cliente-Servidor

A comunicação clássica do Modbus serial (sobre RS-232, RS-422 ou RS-485) opera sob o paradigma estrito de Mestre-Escravo Unidirecional:

  • O Mestre (Master / Client): Apenas um nó ativo detém a iniciativa de transmissão no barramento. O mestre interroga periodicamente os instrumentos através de requisições (Query/Request).
  • Os Escravos (Slaves / Servers): Os nós escravos mantêm seus transceivers em escuta passiva. Eles nunca iniciam transmissões espontâneas; limitam-se a processar a requisição e devolver uma resposta (Response) endereçada ao mestre.
  • Endereçamento de Escravos:
    • Faixa de Endereços Individuais: . Cada escravo deve possuir um identificador único no segmento físico.
    • Endereço de Broadcast (): O mestre envia comandos para o endereço quando deseja que todos os escravos executem a mesma instrução (ex.: sincronização de relógio ou reset de alarmes). Nenhum escravo emite resposta de confirmação, evitando o colapso por colisões elétricas no barramento compartilhado RS-485.
    • Endereços Reservados: .

📦 2. Modos de Transmissão: Modbus RTU, Modbus ASCII e Modbus/TCP

A especificação Modbus define três modos principais de codificação e transporte de quadros:

2.1 Modbus RTU (Remote Terminal Unit)

É a modalidade serial padrão e mais eficiente. As mensagens são codificadas em formato binário puro, onde cada byte de 8 bits é transmitido via UART em um caractere de 10 ou 11 bits ().

2.1.1 Delimitação Temporal de Quadro ( e )

O Modbus RTU não utiliza caracteres especiais de início ou fim de mensagem; sua delimitação é estritamente temporal baseada no tempo de transmissão de caractere ():

  • Tempo de Transmissão de um Caractere (): Para uma taxa clássica de :
  • Início e Fim de Quadro (): O transmissor deve garantir um intervalo de silêncio de linha sem chaveamento de pelo menos: Em , .
  • Timeout Inter-caracteres (): Se durante a recepção de um quadro o espaço de tempo entre dois bytes consecutivos exceder: o receptor descarta o quadro por falha de temporização (quadro incompleto ou fragmentado).

2.1.2 Algoritmo de Verificação de Integridade CRC-16

A detecção de erros no Modbus RTU é realizada por um código de redundância cíclica de 16 bits (CRC-16).

  • Polinômio Gerador Padronizado: (valor hexadecimal 0x8005, representado de forma invertida/refletida como 0xA001).
  • Valor Inicial do Registrador: 0xFFFF.
  • Ordem de Transmissão: O byte menos significativo (Low Byte) do CRC é enviado antes do byte mais significativo (High Byte), invertendo a ordem habitual Big-Endian dos dados do protocolo.

2.2 Modbus ASCII

No modo ASCII, cada byte binário é convertido em dois caracteres ASCII hexadecimais legíveis (0-9, A-F).

  • Delimitadores Físicos: Inicia obrigatoriamente com o caractere dois-pontos : (0x3A) e encerra com o par de caracteres de quebra de linha CR (0x0D) e LF (0x0A).
  • Verificação de Erro (LRC-8): Utiliza o Longitudinal Redundancy Check de 8 bits, calculado pela soma aritmética dos bytes em complemento de dois.
  • Desvantagem: Ocupa o dobro de banda em comparação ao RTU, sendo hoje reservado a enlaces seriais legados com modems analógicos de temporização instável.

2.3 Modbus/TCP (Encapsulado em Ethernet Industrial)

O Modbus/TCP adapta o protocolo para operar sobre a pilha TCP/IP, utilizando a porta bem conhecida TCP 502.

2.3.1 O Cabeçalho MBAP (Modbus Application Protocol)

O Modbus/TCP elimina a necessidade de delimitação temporal () e dispensa o campo de CRC-16 serial, pois a integridade física e o controle de fluxo são plenamente assegurados pelo CRC-32 do quadro Ethernet e pelo Checksum da camada TCP. No início da mensagem, adiciona-se o cabeçalho MBAP de 7 bytes:

Campo MBAPTamanhoFunção Técnica
Transaction IdentifierNúmero sequencial gerado pelo cliente para correlacionar requisições e respostas em conexões assíncronas concorrentes.
Protocol IdentifierSempre fixado em 0x0000 (identifica o protocolo Modbus).
Length FieldContagem de bytes restantes da mensagem (Unit ID + PDU).
Unit IdentifierUtilizado para roteamento quando um switch/gateway Modbus/TCP converte a mensagem para escravos em redes seriais RS-485 a jusante.

🗺️ 3. O Modelo Canônico de Dados: As Quatro Tabelas de Registradores

A arquitetura lógica do Modbus organiza as informações internas dos equipamentos em quatro tabelas primárias de memória, classificadas pelo tipo de dado (discreto de 1 bit ou analógico de 16 bits) e pela permissão de acesso (somente leitura ou leitura/escrita):

3.1 Detalhamento Técnico das Tabelas

  1. Discrete Inputs (Entradas Digitais — Faixa ):

    • Dados binários de 1 bit refletindo o estado físico de dispositivos de campo.
    • Permissão: Somente Leitura (Read-Only).
    • Exemplos em Sistemas Elétricos: Contato auxiliar de disjuntor aberto/fechado (), status de chave seccionadora de aterramento, pressostato de gás .
  2. Coils (Bobinas de Saída — Faixa ):

    • Dados binários de 1 bit acionados pelo sistema mestre.
    • Permissão: Leitura e Escrita (Read/Write).
    • Exemplos: Comando remoto de abertura/fechamento de disjuntor (Trip/Close), rearme de relé de bloqueio (), partida de motor de bomba de óleo.
  3. Input Registers (Registradores de Entrada Analógica — Faixa ):

    • Palavras de 16 bits (Words) geradas por conversores analógico-digitais (ADCs).
    • Permissão: Somente Leitura (Read-Only).
    • Exemplos: Tensão de linha RMS medida em quilovolts (), corrente de fase secundária de TC (), potência ativa (), frequência da rede (), temperatura de enrolamento de transformador medida por PT100.
  4. Holding Registers (Registradores de Retenção — Faixa ):

    • Palavras de 16 bits destinadas à configuração e parametrização operacional.
    • Permissão: Leitura e Escrita (Read/Write).
    • Exemplos: Ajuste de setpoint de tensão do regulador automático (AVR), relação de transformação do transformador de potencial (), corrente de partida do relé de sobrecorrente ().

Endereçamento de Protocolo vs Endereçamento do Manual

Na convenção clássica dos manuais de engenharia, os registradores são expressos na base com o prefixo da tabela (ex.: Holding Register 40001). No entanto, no nível do protocolo transmitido pela rede (PDU), os endereços iniciam em (base zero). Portanto, para acessar o registrador 40001, o mestre transmite no campo de endereço de dados o valor offset: Da mesma forma, o registrador 40108 é solicitado enviando o endereço binário (0x006B).


🛠️ 4. Códigos de Função da Camada de Aplicação e Tratamento de Exceções

O campo Código de Função (Function Code) é composto por 1 byte e instrui o escravo sobre qual operação deve ser executada em sua tabela de dados.

4.1 Principais Códigos Padronizados

Código DecimalCódigo HexNome PadronizadoTabela AcessadaOperação Realizada
010x01Read CoilsCoils ()Lê status de bobinas.
020x02Read Discrete InputsDiscrete Inputs ()Lê status de entradas discretas.
030x03Read Holding RegistersHolding Registers ()Lê conteúdo de registradores ().
040x04Read Input RegistersInput Registers ()Lê medições de registradores analógicos.
050x05Write Single CoilCoils ()Força uma única bobina para ON (0xFF00) ou OFF (0x0000).
060x06Write Single RegisterHolding Registers ()Grava o valor de em um único registrador.
150x0FWrite Multiple CoilsCoils ()Grava uma sequência de bobinas digitais em bloco.
160x10Write Multiple RegistersHolding Registers ()Grava em bloco até registradores de retenção.

4.2 Estrutura e Mecanismo de Resposta de Exceção

Quando um mestre emite um comando que o escravo não pode processar (devido a endereço inexistente ou valor inválido), o escravo não responde com silêncio, pois isso faria o mestre esgotar seu timeout desnecessariamente. O escravo devolve um Quadro de Exceção:

  1. Alteração do Código de Função: O escravo liga o bit mais significativo () do código de função original somando 0x80 ao byte: Por exemplo, se o mestre enviou uma função 0x03 (Read Holding Registers), a resposta de erro terá o código de função 0x83 ().
  2. Código de Exceção (Exception Code): O payload da resposta de exceção consiste em exatamente 1 byte especificando o motivo da falha:
    • 01 (Illegal Function): O código de função solicitado não é suportado pelo firmware do escravo.
    • 02 (Illegal Data Address): O endereço do registrador solicitado não existe no mapa de memória.
    • 03 (Illegal Data Value): O valor a ser gravado excede a faixa de operação ou a quantidade de registradores solicitada extrapola o limite máximo do quadro.
    • 04 (Slave Device Failure): O escravo sofreu uma falha interna irrecuperável de execução.

📡 5. O Protocolo HART: Comunicação Digital Sobreposta à Malha 4-20 mA

Em plantas petroquímicas e indústrias de processo contínuo, a transição de instrumentação analógica pura para digital foi viabilizada pelo protocolo HART (Highway Addressable Remote Transducer).

5.1 Princípio de Modulação FSK Bell 202

O protocolo HART permite trafegar informações digitais de configuração, diagnóstico e calibração de transmissores sem interromper a transmissão contínua da variável primária de processo (PV) que flui na malha analógica padrão de .

  • Modulação: Chaveamento por Deslocamento de Frequência (FSK — Frequency Shift Keying) baseado no padrão Bell 202.
  • Frequências de Modulação:
    • Um Lógico (Mark): Frequência de .
    • Zero Lógico (Space): Frequência de .
  • Taxa de Transmissão: .
  • Neutralidade de Corrente: A amplitude do sinal senoidal FSK sobreposto é de aproximadamente pico a pico. Como as ondas senoidais possuem valor médio integral nulo no tempo: O sinal digital não altera em nada o valor médio da corrente analógica de medida pelo receptor analógico do CLP (que possui filtro passa-baixas de entrada com corte em ).

5.2 O Padrão WirelessHART (IEC 62591)

Para pontos de medição remotos ou móveis, a norma IEC 62591 (WirelessHART) estabelece comunicação sem fio robusta:

  • Camada Física: Rádio frequência na faixa ISM de compatível com IEEE 802.15.4.
  • Topologia em Malha (Mesh Topology): Cada instrumento de campo atua como roteador de pacotes, encontrando caminhos alternativos dinâmicos em caso de obstruções físicas temporárias.
  • Salto de Frequência Pseudo-Aleatório (FHSS): Chaveia entre canais de rádio a cada intervalo de tempo para escapar de interferências de redes Wi-Fi e motores.

📊 6. Mapa Visual do Protocolo Modbus e Mapa de Memória

O diagrama integrado a seguir apresenta o formato dos quadros Modbus RTU e Modbus/TCP, bem como a arquitetura do modelo canônico de dados:


📝 7. Questões de Fixação e Concursos Comentadas Passo a Passo

Questão 01 — Petrobras / Cesgranrio (Engenharia de Automação)

Enunciado: Um sistema SCADA de uma plataforma petrolífera interroga um analisador de energia trifásico via protocolo Modbus RTU sobre barramento serial RS-485 operando a . O supervisor envia uma mensagem solicitando a leitura dos registradores de retenção (Holding Registers) onde se encontram armazenadas as medições de potência ativa e reativa da planta. Ao tentar acessar um endereço de registrador que não existe na memória do analisador, qual é o comportamento normatizado do escravo?

  • (A) O escravo entra em curto-circuito lógico na linha serial, derrubando o nível do sinal para forçar um erro de enquadramento na UART do mestre.
  • (B) O escravo permanece em silêncio absoluto, obrigando o mestre a aguardar o esgotamento do tempo limite (timeout).
  • (C) O escravo devolve um quadro de resposta de exceção contendo o código de função original com seu bit mais significativo ligado (Função | 0x80) e o byte de exceção 02 (Illegal Data Address).
  • (D) O escravo responde com valor binário 0x0000 em todos os campos de dados solicitados, simulando medição nula.
  • (E) O escravo envia um pacote com broadcast solicitando que outro medidor da rede responda no seu lugar.

Resolução Detalhada:

  • No padrão Modbus oficial, quando uma solicitação mestre contém um endereço de memória que não é mapeado pelo fabricante do escravo, o dispositivo emite obrigatoriamente um Quadro de Exceção.
  • A identificação do erro é realizada ligando-se o bit do código de função: se a função original era 0x03 (Read Holding Registers), o código de função retornado será 0x03 | 0x80 = 0x83.
  • O payload de erro contém o código 0x02, correspondente à falha Illegal Data Address (endereço de dados não mapeado).

Resolução Analítica Passo a Passo: C


Questão 02 — Transpetro / Cesgranrio (Engenheiro Elétrico)

Enunciado: Em uma instalação de distribuição industrial, um CLP mestre necessita alterar remotamente o setpoint de tensão de um grupo gerador de emergência armazenado no Holding Register de endereço lógico 40105. A comunicação é realizada via Modbus RTU. Qual código de função padrão deve ser empregado para gravar esse único parâmetro de , e qual valor de offset em base hexadecimal deve constar no campo de endereço da mensagem transmitida pela rede?

  • (A) Função 03 (0x03) e endereço 0x0069.
  • (B) Função 05 (0x05) e endereço 0x0068.
  • (C) Função 06 (0x06) e endereço 0x0068.
  • (D) Função 06 (0x06) e endereço 0x0069.
  • (E) Função 16 (0x10) e endereço 0x0105.

Resolução Detalhada:

  1. Identificação da Operação e Código de Função:
    • Deseja-se escrever em um único registrador de 16 bits (Holding Register).
    • O código de função padronizado para escrita em um único registrador é:
    • (A função 05 escreve em uma única bobina de 1 bit; a função 16 é para múltiplos registradores).
  2. Cálculo do Endereço de Transmissão (Offset Base Zero):
    • Os Holding Registers situam-se na faixa , onde o primeiro registrador (40001) corresponde ao offset 0.
    • Para o registrador 40105, o offset relativo é:
    • Convertendo para base hexadecimal:

Portanto, o mestre envia a Função 06 com endereço de dados 0x0068.

Resolução Analítica Passo a Passo: C


Questão 03 — Caderno Oficial de Redes Industriais (Questão Extraída do Módulo 03)

Enunciado: O protocolo HART é amplamente utilizado na indústria devido à sua capacidade de sobrepor sinais digitais sobre o cabeamento analógico já existente de instrumentos industriais. Sobre o princípio de funcionamento do protocolo HART, assinale a afirmação correta:

  • (A) O sinal digital é transportado por pulsos retangulares de amplitude que substituem a corrente contínua da malha.
  • (B) A comunicação digital baseia-se na modulação por chaveamento de frequência (FSK), transmitindo tons senoidais de e cujo valor médio é zero, não interferindo no sinal analógico de .
  • (C) O protocolo HART opera exclusivamente através de ondas de rádio em frequência fechada de .
  • (D) Ao utilizar o protocolo HART, o sinal analógico de deve ser desativado, pois a transmissão simultânea corrompe os conversores analógico-digitais.
  • (E) O protocolo HART requer quatro fios dedicados para alimentação e dois pares coaxiais para o sinal de dados.

Resolução Detalhada: O protocolo HART utiliza a modulação FSK Bell 202:

  • para o nível 1 lógico (Mark);
  • para o nível 0 lógico (Space). Os sinais modulados são senoides com amplitude simétrica em torno de zero (). Como a integral no tempo de uma senoide simétrica é nula, o valor médio da corrente que carrega o sinal analógico de não sofre qualquer desvio ou erro sistemático.

Resolução Analítica Passo a Passo: B


📚 8. Referências Bibliográficas e Normas Técnicas

  1. MODBUS APPLICATION PROTOCOL SPECIFICATION V1.1b3: Modbus Organization, 2012. Disponível em: modbus.org.
  2. MODBUS MESSAGING ON TCP/IP IMPLEMENTATION GUIDE V1.0b: Modbus-IDA, 2006.
  3. HART COMMUNICATION FOUNDATION: HART Field Communication Protocol Specifications - Release 7.0. FieldComm Group, 2015.
  4. IEC 62591:2016: Industrial networks - Wireless communication network and communication profiles - WirelessHART.
  5. BERGE, Jonas: Fieldbuses for Process Control: Engineering, Operation, and Maintenance. ISA - The Instrumentation, Systems, and Automation Society, 2004.
  6. THOMAZINI, Daniel; ALBUQUERQUE, Pedro Urbano B.: Sensores Industriais: Fundamentos e Aplicações. 8ª ed. São Paulo: Érica, 2014.