Rede Modbus

Propaganda
Redes Industriais
Carlos Roberto da Silva Filho, M.
Eng.
Rede Modbus
• Criado na década de 1970 pela Modicon.
• É um dos mais antigos protocolos
utilizados em redes de CLPs para
aquisição de sinais de instrumentos e
comandar atuadores.
• A Modicon (atualmente parte do grupo
Schneider
Electric)
colocou
as
especificações e normas que definem o
Modbus em domínio público.
Rede Modbus
• Os dispositivos podem ser configurados
para transmitir em um dos dois modos
disponíveis: ASCII ou RTU.
• O
modo
de
transmissão
define
basicamente como os dados serão
“empacotados” na mensagem.
Rede Modbus
• Estando definido o modo de transmissão,
deve-se definir seus parâmetros de
comunicação: baud rate, paridade, stop
bits.
• Tanto o modo como os parâmetros de
comunicação devem ser os mesmos para
todos os dispositivos da rede.
Rede Modbus
• Quando o dispositivo for configurado para
este modo, para cada palavra de dados
da mensagem é enviado apenas um
caracter no padrão HEXADECIMAL.
• A principal vantagem do modo RTU em
relação ao ASCII é a maior densidade
de caracteres que é enviada numa
mesma mensagem, aumentando o
desempenho da comunicação.
Rede Modbus
• Em relação à formação da palavra de
dados que comporá o conjunto de dados
frame da mensagem, são adotados
alguns critérios.
Rede Modbus
• Diferentemente do modo ASCII, o modo
RTU não possui bytes que indiquem início
e fim de frame.
• Para identificar estes campos, não deve
haver nenhuma transmissão de dados por
um período mínimo, equivalente a 3.5
vezes o tamanho da palavra de dados
(silêncio).
• Por exemplo, supondo que a taxa de
transmissão seja de 19200 bps.
Rede Modbus
• Para esta taxa, o tempo total para envio
de 1 palavra de dados (11 bits) é de
572.9 us (11 x (1 / 19200));
• Portanto, para identificar um início e/ou
término de frame, não deve haver
transmissão por um período mínimo de
2005, 15 us (3.5 x 572.9 us).
• Para o restante da mensagem são
aceitos
todos
os
caracteres
hexadecimais.
Rede Modbus
• Os dispositivos ficam monitorando o
barramento e checando intervalos de
silêncio que, após detectados, dá início à
recepção da mensagem, de maneira
similar ao modo ASCII.
• Após a recepção de toda a mensagem,
deve ser gerado pelo mestre um intervalo
de silêncio similar ao do início da
mensagem, caracterizando o fim da
mesma.
Rede Modbus
• Neste modo, toda a mensagem deve ser
enviada de maneira contínua.
• Se um intervalo maior que 1.5 vezes o
tamanho da palavra de dados for
detectado antes que toda a mensagem
tenha sido recebida, o escravo descarta
os dados já recebidos da mensagem
atual e assume que o próximo caracter
será o campo de endereço de uma nova
mensagem.
Rede Modbus
• De modo similar, se uma nova mensagem
for recebida em um intervalo menor que o
intervalo de silêncio, o escravo assume
que esta mensagem é uma continuação
da última mensagem recebida.
• Esta condição irá gerar um erro pois o
campo CRC não corresponderá aos
dados enviados na mensagem.
Rede Modbus
• O modbus equivale a uma camada de
aplicação e utiliza o RS-232, RS-485 ou
Ethernet
como
meios
físicos
equivalentes camada de enlace (ou link) e
camada física do modelo.
• O mecanismo de controle de acesso é do
tipo mestre-escravo ou Cliente-Servidor.
Rede Modbus
• A estação mestre 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
ou
nos
registradores.
• O protocolo possui comandos para envio
de dados discretos (entradas e saídas
digitais) ou numéricos (entradas e saídas
analógicas).
Rede Modbus
• 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 a verificação de consistência de dados
(CRC).
Rede Modbus
• Exemplo: se um CLP precisa ler as 10
primeiras
entradas
analógicas
(do
endereço 00 ao 09) 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
a
seguir
em
sistema
hexadecimal:
Rede Modbus
endereço comando end. dos registros quant. de registros CRC
02
03
03
00
00
0A
2
carac-
teres
Rede Modbus
• 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.
Rede Modbus
• A resposta para a pergunta acima seria a
seguinte:
• 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;
• O terceiro byte é a quantidade de endereços
que o escravo está enviando ao mestre que
são 10 word de 16 bits, ou seja, 14h = 20
decimal;
Rede Modbus
• Os principais comandos do Modbus são
mostrados na tabela abaixo:
código
comando
do
Descrição
01
Lê um número variável (1) de saídas digitais (bobinas)
02
Lê um número variável (1) de entradas digitais
03
04
05
Lê um número variável (1) de registros retentivos (saídas
analógicas ou memórias)
Lê um número variável (1) de registros de entrada (entradas
analógicas)
Força uma única bobina (altera o estado de uma saída digital)
Rede Modbus - RTU
código do comando Descrição
Preset de um único registro (altera o estado de uma saída
06
analógica)
07
Lê exceções (2) - registros de erro
08
Várias funções de diagnóstico
Força uma quantidade variável (1) de bobinas (saídas
15
digitais)
Preset de uma quantidade variável (1) de registros (saídas
16
1
analógicas)
A
quantidade
de
variáveis
a
ler
é
definida
no
frame
de
solicitação
2 Oito bits pré 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.
Rede Modbus
• 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.
Rede Modbus - RTU
• O termo RTU do inglês Remote Terminal
Unit refere-se ao modo de transmissão
onde
endereços
e
valores
são
representados em formato binário.
• Neste modo para cada byte transmitido
são codificados dois caracteres.
• Números inteiros variando entre -32768 e
32767 podem ser representados por 2
bytes.
Rede Modbus - RTU
• Modo de transmissão RTU: Cada byte
contém dois dígitos hexadecimais.
• Formação dos Quadros: Definição do
inicio e fim da mensagem através de
tempos de silêncio de 3,5 caracteres.
• Conteúdo dos Quadros: conjuntos de
caracteres Hexadecimais de 00 a FF.
[LSB ... MSB]
Rede Modbus - RTU
• Algumas características do protocolo
Modbus são fixas, como o formato da
mensagem, funções disponíveis e
tratamento de erros de comunicação.
• Outras características são selecionáveis
como o meio de transmissão, velocidade,
timeout, bits de parada e paridade e o
modo de transmissão (RTU os ASCII).
Modbus – RTU x ASCII
• O mesmo número precisaria de quatro
caracteres ASCII para ser representado
(em hexadecimal).
• O tamanho da palavra no modo RTU é de
8 bits.
Modbus – RTU x ASCII
• A seleção do modo de transmissão define
como os dados serão codificados.
• Exemplo: Transmissão do endereço 3Bh
• RTU: 3Bh = 0011 1011
• ASCII: 3 = 33h e B = 42h
• 0011 0011
0100 0010).
Modbus – RTU x ASCII
• Nos protocolos MODBUS Plus e TCP/IP as
mensagens são colocadas em frames, não
sendo necessário a definição do modo de
transmissão, usando sempre o modo RTU.
• O modo ASCII permite intervalos de tempo
de até um segundo entre os caracteres sem
provocar erros, mas sua mensagem típica
tem um tamanho duas vezes maior que a
mensagem equivalente usando o modo
RTU.
Modbus – RTU x ASCII
Rede Modbus - RTU
• O modo RTU transmite a informação com
um menor número de bits, mas a
mensagem deve ter todos os seus
caracteres enviados em uma seqüência
contínua.
• O modo RTU também é chamado de
ModBus-B ou Modbus Binario e é o modo
preferencial.
Rede Modbus - RTU
Download