Explicação pormenorizada da diferença entre os protocolos Modbus RTU e Modbus TCP

O protocolo de comunicação Modbus foi inventado pela Modicon em 1979 e é o protocolo de bus mais antigo do mundo utilizado em domínios industriais. Devido ao seu lançamento público gratuito, os fabricantes que utilizam o protocolo não precisam de pagar quaisquer taxas, pelo que o protocolo Modbus tem sido amplamente utilizado em todo o mundo.

O protocolo de comunicação Modbus tem múltiplas variantes, as mais comuns das quais são os protocolos Modbus RTU e Modbus TCP.

Os dois protocolos são muito semelhantes. Tomemos como exemplo a leitura de vários registos de retenção para ilustrar a diferença entre eles:

O formato de envio da comunicação Modbus RTU é: endereço do escravo 01 (indicando o endereço do escravo) código de função 03 (leitura de registos de retenção simples/múltiplos) endereço de início de dados 00 00 (indicando o início a partir de 40001) número de dados 00 02 (indicando a leitura de duas palavras) código de verificação CRC xx xx (o código de verificação CRC aqui é C4 0B), que em conjunto é 01 03 00 00 00 00 02 C4 0B. Depois de o enviar, a estação escrava devolverá os dados. O formato dos dados é: 01 03 04 01 02 03 04 5B 3C, onde 01 endereço da estação escrava, 03 código de função de leitura, 04 número de bytes de dados, 01 02 03 04 conteúdo de dados, 5B 3C é o código de verificação CRC.

O protocolo Modbus TCP acrescenta um cabeçalho MBAP ao protocolo Modbus RTU. Uma vez que o TCP é um serviço baseado em ligações fiáveis, o código de verificação CRC no protocolo RTU já não é necessário, pelo que não existe verificação CRC no protocolo Modbus TCP. A verificação mostra que o cabeçalho MBAP tem sete bytes de comprimento. Com exceção do quinto e sexto bytes, os restantes permanecem praticamente inalterados. Por exemplo, se utilizar o Modbus TCP para completar a operação acima, deve enviar 00 01 00 00 00 06 ff 03 00 00 00 00 02. O quinto e o sexto bytes são 00 06, o que significa que há 6 bytes depois de 00 06. Veja a figura abaixo para operações específicas

O valor de retorno é 00 01 00 00 00 07 ff 03 04 01 02 03 04. Os primeiros 7 bytes são o cabeçalho da mensagem MBAP, 03 a leitura do código de função, 04 bytes de dados, 01 02 03 04 representa o conteúdo dos dados.

Assim, o protocolo Modbus TCP é, na realidade, o protocolo Modbus RTU com o código de verificação CRC removido, o código de endereço do escravo anterior removido e, em seguida, um cabeçalho MBAP de 7 bytes adicionado à frente.

O Modbus TCP evoluiu com base na Ethernet, e a interface física determina a sua taxa de comunicação e o método de verificação.

Esta é a diferença básica entre os protocolos Modbus RTU e Modbus TCP. A descrição é mais clara e espero que possa resolver as dúvidas de todos.

Contactar-nos