Articles

MODBUS RTU

Uma Introdução à Endereçamento Modbus RTU, Códigos de Função, e Visão Geral da Rede Modbus RTU

Modbus RTU é um protocolo de série aberto derivado da arquitectura Master/Slave originalmente desenvolvida pela Modicon (agora Schneider Electric). É um protocolo de nível serial amplamente aceite, devido à sua facilidade de utilização e fiabilidade. Modbus RTU é amplamente utilizado em Sistemas de Gestão de Edifícios (BMS) e Sistemas de Automação Industrial (IAS).

Modbus RTU são uma estrutura simples de 16 bits com um CRC (Cyclic-Redundant Checksum). A simplicidade destas mensagens é assegurar a fiabilidade. Devido a esta simplicidade, a estrutura básica de registo Modbus RTU de 16 bits pode ser usada para embalar em ponto flutuante, tabelas, texto ASCII, filas, e outros dados não relacionados.

Este protocolo usa principalmente uma interface série RS-232 ou RS-485 para comunicações e é suportado por quase todos os programas comerciais SCADA, HMI, OPC Server e software de aquisição de dados do mercado. Isto torna muito fácil integrar equipamento compatível com Modbus em aplicações de monitorização e controlo novas ou já existentes.

Um pequeno histórico de RTU Modbus

Pode chamar ao protocolo Modbus o avô da rede industrial. É verdadeiramente tão antigo como as colinas e tem os bigodes para o provar. Na era actual da conectividade à Internet e dos serviços Web, a mensagem não ligada do Modbus e a sua simples estrutura de comunicação de resposta a pedidos são quase estranhas. Quase tão antigo como o primeiro Controlador Lógico Programável, o Modicon 084, que naqueles dias era chamado de PC para Controlador Programável.

Modbus RTU é um padrão aberto, o que significa que os fabricantes podem incorporá-lo nos seus equipamentos sem terem de pagar royalties. É o protocolo de comunicações mais difundido na automação industrial e é agora o meio mais comummente disponível para ligar dispositivos electrónicos industriais.

Modbus é amplamente utilizado por muitos fabricantes em muitas indústrias. O Modbus é tipicamente utilizado para transmitir dados de instrumentação de controlo para um controlador lógico ou um sistema de arquivamento de dados. Na automação de edifícios, por exemplo, a temperatura e a humidade são frequentemente comunicadas a um computador para armazenamento a longo prazo. Modbus é frequentemente utilizado para ligar um computador de supervisão com uma unidade terminal remota (UTR) em sistemas de controlo de supervisão e aquisição de dados (SCADA).

Por que é que o Modbus é tão popular?

Simplicidade é a razão pela qual o Modbus está tão difundido. Também não prejudicou o facto de Modbus ter sido criado por um dos maiores fabricantes de PLC na altura e de o ter tornado aberto e amplamente disponível. Modbus também requer muito pouco em termos de espaço de código do processador ou RAM. Embora isto não seja tão importante hoje em dia, dados os poderosos processadores e tecnologia disponíveis, foi muito importante nos primeiros anos da automação industrial quando os processadores utilizavam tecnologia de 8 bits e recursos como a RAM e ROM eram extremamente caros e escassos.

A verificação de mensagens é outra razão pela qual o Modbus tem sido tão popular. A verificação CRC e LRC significa que os erros de transmissão são verificados com precisão de 99%.

Modbus Communication

O protocolo Modbus RTU utiliza uma técnica Master/Slave para comunicar entre dispositivos. Ou seja, qualquer aplicação que utilize o protocolo Modbus RTU terá um Modbus Master e pelo menos um Modbus Slave. Um Modbus Master é tipicamente um computador de supervisão anfitrião que executa software que comunicará com um ou mais dispositivos Modbus Slave.

modbusrtu_diagram

Modbus permite a comunicação Master/Slave entre dispositivos ligados através de autocarros ou redes. No modelo OSI, o Modbus é posicionado no nível 7. O Modbus destina-se a ser um protocolo de pedido/resposta e fornece serviços especificados por códigos de função. Os códigos de função do Modbus são elementos de PDUs de pedido/resposta do Modbus (Protocol Data Unit).

Para construir a unidade de dados da aplicação Modbus, o cliente deve iniciar uma transacção Modbus. É a função que informa o servidor sobre o tipo de acção a realizar. O formato de um pedido iniciado por um Master é estabelecido pelo protocolo de aplicação Modbus. O campo de código da função é então codificado em um byte. Apenas os códigos dentro do intervalo de 1 a 255 são considerados válidos, sendo 128-255 reservados para respostas a excepções. Quando o Mestre envia uma mensagem ao Escravo, é o campo de código de função que informa o servidor do tipo de acção a executar.

Como o que está a ler?

Subscreva a nossa série de correio electrónico Educação Automática para aprender as entradas e saídas dos principais protocolos industriais num formato semanal de tamanho byte!

Para definir múltiplas acções, algumas funções terão códigos de sub-função adicionados. Por exemplo, o Mestre pode ler os estados ON/OFF de um grupo de saídas ou entradas discretas. Também pode ler/escrever o conteúdo dos dados de um grupo de registos MODBUS. Quando o Mestre recebe a resposta Escravo, o campo de código de função é utilizado pelo Escravo para indicar uma resposta sem erros ou uma resposta de excepção. O Escravo ecoa ao pedido do código de função inicial no caso de uma resposta normal.

Representação de dados Modbus RTU

Como tudo o resto sobre Modbus, a representação de dados é simples. De facto, os dados são representados mais simplesmente no Modbus do que em qualquer outro protocolo industrial que alguma vez encontrará. O bit de menor importância é enviado e recebido primeiro. Todos os dispositivos dentro da rede devem interpretar cada byte transmitido analogamente desta forma.

Não há métodos de reconhecimento automático das taxas de bauds. A mesma taxa de transmissão deve ser utilizada pelo(s) escravo(s) e mestre ligado(s) ao autocarro. Nenhuma taxa de transmissão específica é especificada pelo Modbus: as taxas de transmissão típicas são 9600 ou 19200.

Um Byte transmitido é codificado como: 8 Bit valor binário, hexadecimal 0 - 9 e A - F. O Bit menos significativo é enviado e recebido primeiro
A transmitido Byte é codificado como: 8 Bit valor binário, hexadecimal 0 – 9 e A – F. O Bit menos significativo é enviado e recebido primeiro.

Existem apenas dois tipos de dados no Modbus: bobinas e registos. As bobinas são simplesmente bits simples. Os bits podem ser ON (1) ou podem ser OFF (0). Algumas bobinas representam entradas, o que significa que contêm o estado de alguma entrada física discreta. Ou representam saídas, o que significa que contêm o estado de algum sinal físico de saída discreta. Os registos são simplesmente dados de registo de 16 bits não assinados. Os registos podem ter um valor de 0 a 65535 (0 a FFFF hexadecimal). Não há representação para valores negativos, nenhuma representação para valores superiores a 65535, e nenhuma representação para dados reais como 200,125,

Registos são agrupados em Registos de Entrada e Registos de Retenção. Tal como as Bobinas de Entrada, os Registos de Entrada reportam o estado de alguma entrada externa como um valor entre 0 e 65535. A intenção original de um Registo de Entradas era reflectir o valor de alguma entrada analógica. É uma representação digital de um sinal analógico como uma voltagem ou uma corrente. A maioria dos dispositivos Modbus actualmente não são dispositivos de E/S, e os Registos de Entrada funcionam simplesmente de forma idêntica aos Registos de Retenção.

Registos de Retenção foram originalmente concebidos como armazenamento temporário de programas para dispositivos como controladores Modbus. Hoje em dia, os Registos de retenção funcionam como armazenamento de dados para dispositivos.

Os pacotes Modbus RTU destinam-se apenas ao envio de dados; não têm a capacidade de enviar parâmetros tais como nome do ponto, resolução, unidades, etc. Se a capacidade de enviar tais parâmetros for necessária, deve-se investigar uma BACnet, EtherNet/IP, ou outros protocolos modernos.

Requisitos de Endereço de UTR de Modbus e Identificação de Estação

Endereços de nó de UTR de Modbus padrão são 1-255, sendo 0 reservado apenas para mensagens de difusão e escrita. Contudo, o endereço 0 é raramente utilizado, uma vez que não há confirmação de que a mensagem tenha sido recebida correctamente no nó escravo. Isto não tem muito efeito se a sua camada física for RS-232, pois de qualquer modo só um nó pode ser implementado. RS-485 limita o número de nós a 32, embora alguns condutores lhe permitam alargar a quantidade.

Serial Modbus Slave dispositivos são identificados por um número de estação que precede a estrutura geral da mensagem. Geralmente, são suportadas até 32 estações, uma vez que é esse o limite imposto pela maioria dos condutores em série RS485. Não há limite de software para o número de estações que podem ser suportadas. São atribuídos endereços de escravo válidos no intervalo de 1 a 255 com o número de estação 0 reservado para mensagens difundidas, mensagens processadas por todos os escravos.

Camadas de transporte

Existem vários transportes padrão utilizados para mover mensagens do protocolo Modbus: RS232 e RS485. Pode utilizar outras, mas estas são as comuns.

RS485 é um sucessor de RS232. Funciona de forma semelhante em relação aos bits sincronizadores que sincronizam a transferência de bits de uma estação emissora para uma estação receptora. Existem, no entanto, duas características que tornam a RS485 diferente da RS232. A primeira é a capacidade de conduzir múltiplos destinos. Os transmissores RS485 podem sinalizar electricamente até 32 dispositivos de destino. Isto torna RS485 a forma preferida de transporte em série de mensagens Modbus.

A outra característica que define RS485 é a imunidade ao ruído. RS485 não utiliza o comum eléctrico como referência para o seu sinal eléctrico. Em vez disso, a RS485 utiliza um par de fios e conduz um sinal através da definição de um potencial de tensão através do par. Ao fazer isso, qualquer ruído eléctrico ambiental afecta ambos os fios igualmente e o potencial através dos dois fios não é alterado.

Modbus RTU Data Encoding

Um mecanismo de codificação descreve como os padrões de bits são formados a partir dos valores de controlo e de dados que são codificados no pacote. Tanto o emissor como o receptor devem utilizar a mesma codificação para compreender correctamente o conteúdo dos dados. Existem dois mecanismos de codificação de mensagens Modbus: ASCII e RTU.

RTU codificação é o mecanismo de codificação muito mais comum utilizado no Modbus. RTU significa simplesmente que os valores são codificados como binários big-endian padrão. Isto significa que no caso de valores de 16 bits, o Byte Mais Significativo (MSB) é codificado antes do Byte Menos Significativo (LSB). Um valor de 8 bits como o decimal 41 (29 hex) é codificado simplesmente como 0010 1001. Enquanto um valor de 16 bits como o decimal 300 (12C hex) é codificado como 0000 0001 0010 1100. A MSB de 01 é codificada e transmitida antes da LSB de 2C.

MODBUS RTU Memory Map

>>Modbus Coils

>00001

Entradas Digitais> Entradas binárias>>10001 Entradas Analógicas> Entradas binárias>30001 >>Registos de Modbus>> Valores analógicos, variáveis

Modbus RTU
Data Tipo
Comum
br>nome
Endereço de arranque
Bits, valores binários, flags
40001

A diferença entre Modbus RTU e Modbus TCP

A diferença mais básica entre Modbus RTU e Modbus TCP (também conhecido como Modbus IP, Modbus EtherNet, e Modbus TCP/IP) é que o Modbus TCP funciona numa camada física Ethernet e o Modbus RTU é um protocolo de nível de série. Modbus TCP também usa um cabeçalho de 6 bytes para permitir o encaminhamento.

Um Modbus RTU Master é um único barramento Master. Ele envia uma mensagem a um dispositivo escravo da RTU e recebe uma resposta. O Modbus RTU é limitado a um único Master. Apenas um conjunto de sinais pode estar na ligação RS485 de cada vez. Ou o único Mestre da RTU está a transmitir ou um dos dispositivos Cliente da RTU está a transmitir.

Com a introdução do Modbus TCP, tudo foi simplificado e mais fácil. Com Modbus TCP, os controladores podem utilizar muito mais eficientemente a largura de banda na Ethernet para serem o Mestre de centenas de dispositivos Modbus TCP. O Modbus TCP permite a múltiplos Clientes. Onde o RS485 tinha uma limitação eléctrica de 32 dispositivos, a Ethernet é ilimitada. A RAM operacional é a única limitação prática. Com Modbus TCP, há a possibilidade de um desenhador de rede utilizar múltiplos Clientes/Mestres se assim o escolherem.

Com Modbus TCP (Ethernet), é necessário envolver um switch dispendioso. Com o Modbus RTU (série), pode apenas fazer a cadeia de todos os dispositivos em conjunto. Dispositivos com processadores antigos de 8 bits e um pouco de memória podem facilmente fazer Modbus série, mas precisará de uma plataforma mais cara para fazer Ethernet.

Did you know?

O fundador da Real Time Automation, John S. Rinaldi, escreveu um livro inteiro sobre Modbus? Veja The Everyman’s Guide to Modbus, disponível agora na Amazon!

Para mais informações sobre os nossos produtos e serviços Modbus RTU ligue 1-800-249-1612 ou envie-nos um e-mail para [email protected].

p>Procurando adicionar Modbus RTU ao seu projecto?p>Ver Soluções Modbus RTUp>Quer esta página em formato PDF? Clique aqui!

Deixe uma resposta

O seu endereço de email não será publicado. Campos obrigatórios marcados com *