.: CONTROL CHIP :. Integrando suas idéias
 
     
 
Home>> Central Info >> Redes Industriais >> Rede ModBus

Central de Informações


Modbus é um protocolo de comunicação de dados utilizado em sistemas de automação industrial. Criado na década de 1970 pela Modicon. é um dos mais antigos protocolos utilizados em redes de Controladores lógicos programáveis (PLC) para aquisição de sinais de instrumentos e comandar actuadores. A Modicon (atualmente parte do grupo Schneider Electric) colocou as especificações e normas que definem o Modbus em domínio público. Por esta razão é utilizado em milhares de equipamentos existentes e é uma das soluções de rede mais baratas a serem utilizadas em automação industrial.

Características técnicas

O modbus utiliza o RS-232, RS-485 ou Ethernet como meio físico. O mecanismo de controle de acesso é mestre-escravo. A estação mestre (geralmente um PLC) envia mensagens solicitando dos escravos que enviem os dados lidos pela instrumentação ou envia sinais a serem escritos nas saídas para o controle dos atuadores. O protocolo possui comandos para envio de dados discretos (entradas e saídas digitais) ou numéricos (entradas e saídas analógicas).

A imagem acima mostra um exemplo de rede Modbus com um mestre (PLC) e três escravos (módulos de entradas e saídas, ou simplesmente E/S). Em cada ciclo de comunicação, o PLC lê e escreve valores em cada um dos escravos. Como o sistema de controle de acesso é do tipo mestre-escravo, nenhum dos módulos escravos inicia comunicação a não ser para responder às solicitações do mestre.

Basicamente, uma comunicação em Modbus obedece a um frame que contém o endereço do escravo, o comando a ser executado, uma quantidade variável de dados complementares e uma verificação de consistência de dados (CRC).

Exemplo-1: Se o PLC precisa ler as 10 primeiras entradas analógicas (do endereço 0000 ao 0009) no módulo 2. Para isso é preciso utilizar o comando de leitura de múltiplos registros analógicos (comando 3). O frame de comunicação utilizado é mostrado abaixo (os endereços são mostrados em sistema hexadecimal):

endereçocomandoend. dos registrosquant. de registrosCRC
02030300000A2 caracteres

A resposta do escravo seria um frame semelhante composto das seguintes partes: O endereço do escravo, o número do comando, os dez valores solicitados e um verificador de erros (CRC). Em caso de erros de resposta (por exemplo um dos endereços solicitados não existe) o escravo responde com um código de erro.


A resposta para a pergunta acima seria a seguinte:

Mas antes uma pequena recordação!

Para se enterder este frame de resposta, antes precisamos saber corretamente o que é um byte.

Cada palavra tem as seguintes formas, - bit, - nible, - byte e - word.

Segue abaixo uma tabela representação de cada formato.

BitNibleByteWord
1= 4 bits= 8 bits= 16 bits

Agora que ja sabemos o que é byte podemos então decifrar o frame da rede modbus.

Exemplo-2: Reposta da pergunta citada no exemplo-1.


RX 02 03 14 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 (xx xx CRC)

O primeiro byte(02) é o nó do escravo; O segundo byte(03) é a função utilizada para leitura, sendo essa um Holding Register; O terceiro byte é a quantidades de endereços a qual o Slave(escravo) esta enviando ao Master, sendo que a cada 2 bytes se forma uma Word que significa uma palavra de 16 bit, por isso este frame tem 14 = 20 bytes que é = 10 word ou 10 palavras de 16 bits que tem seu range minimo de -32768 ate 32767.

Com isso entendemos que o Slave(Escravo) respondeu 10 endereços a ao master e todos com o valor zero.

Comandos do MODBUS

Os principais comandos do Modbus são mostrados na tabela abaixo:

código do comandodescrição
01Lê um número variável1 de saídas digitais (bobinas)
02Lê um número variável1 de entradas digitais
03Lê um número variável1 de registros retentivos (saídas analógicas ou memórias)
04Lê um número variável1 de registros de entrada (entradas analógicas)
05Força uma única bobina (altera o estado de uma saída digital)
06Preset de um único registro (altera o estado de uma saída analógica)
07Lê exceções2 (registros de erro)
08Várias funções de diagnóstico
15Força uma quantidade variável1 de bobinas (saídas digitais)
16Preset de uma quantidade variável1 de registros (saídas analógicas)
1 A quantidade de variáveis a ler é definida no frame de solicitação
2 Oito bits previamente configurados. Não é necessário fornecer parâmetros de endereçamento com este comando pois o escravo vai enviar sempre os oito bits pré configurados.

Para alguns comandos de diagnóstico, tais como reinício de comunicação, reset do módulo ou sincronização de relógio, podem ser utilizados comunicações do tipo broadcast, ou seja, destinada a todos os escravos simultaneamente.

Variações

Em redes seriais baseadas em RS-485 ou RS-232 o Modbus pode ter duas variações: RTU e ASCII.

Modbus RTU

Neste modo os dados são transmitidos em formato binário de oito bits, permitindo a compactação dos dados em pequenos pacotes. RTU é a sigla inglesa para Remote Terminal Unit. No modo RTU, os endereços e valores podem ser representados em formato binário. Números inteiros variando entre -32768 e 32767 podem ser representados por 2 bytes. O mesmo número precisaria de quatro caracteres ASCII para ser representado (em hexadecimal).

Modbus ASCII
Transmite os dados codificados em caracteres ASCII de sete bits. Apesar de gerar mensagens legíveis por pessoas este modo consome mais recursos da rede.


Modbus/TCP - Aqui os dados são encapsulados em formato binário em frames TCP para a utilização do meio físico Ethernet (IEEE 802.3). Quando o Modbus/TCP é utilizado, o mecanismo de controle de acesso é o CSMA-CD (Próprio da rede Ethernet) e as estações utilizam o modelo cliente-servidor.

 

Modbus Plus - Versão que possui vários recursos adicionais de roteamento, diagnóstico, endereçamento e consistência de dados. Esta versão ainda é

mantida sob domínio da Schneider Electric e só pode ser implantada sob licença deste fabricante.