Sei sulla pagina 1di 14

Protocolo Modbus

João Maria Araújo do Nascimento Pedro Berretta de Lucena


joao@dca.ufrn.br pedrobl@ieg.com.br
Descrição

• Protocolo Orientado a Caractere;


• Modicon Industrial Automation System (atual Schneider);
• Mestre / Escravo;
• Simplicidade e Facilidade de Implementação;
• Pode ser utilizado na camada de aplicação de redes
industriais.
Modelo de Camada

2 Modbus

Física
1
(RS-232)
Mestre / Escravo
MODO QUESTÃO / RESPOSTA MODO DIFUSÃO

MESTRE MESTRE

ESCRAVO ESCRAVO ESCRAVO ESCRAVO ESCRAVO ESCRAVO


Modelo de Comunicação
Queries
Pedido do
Mestre Polling

Endereço do Endereço do
Dispositivo Dispositivo

Código da Função Código da Função

Dados Dados

Checagem de Checagem de
Erros Erros

Select Resposta
do Escravo
Response
Modos de Transmissão
• ASCII (American Code for Informastion Interchange):

Início Endereço Função Dados LRC Fim

: (3Ah) 2 Chars 2 Chars N Chars 2 Chars CRLF

• RTU (Remote Terminal Unit):

Início Endereço Função Dados CRC Fim


Silêncio Silêncio
8 bits 8 bits N x 8 bits 16 bits
3..5 chars 3..5 chars
Modo ASCII

• 1 bit de INÍCIO, 7 bits de DADO, SEM PARIDADE, 2 bits de PARADA

• 1 bit de INÍCIO, 7 bits de DADO, 1 bit de PARIDADE, 1 bit de PARADA


Modo RTU

• 1 bit de INÍCIO, 8 bits de DADO, SEM PARIDADE, 2 bits de PARADA

• 1 bit de INÍCIO, 8 bits de DADO, 1 bit de PARIDADE, 1 bit de PARADA


Especificação dos Campos

Checagem
Endereço Função Dados
de Erro

0..247 1..127 0..255


-
00h..F7h 01h..7Fh 00h..FFh

• Endereço 00H é utilizado para broadcast


• O bit mais significativo do campo da função é utilizado para
indicar respostas de exceção
Algumas Funções
HEX. FUNÇÃO

01 Leitura de n bits

02 Leitura de n bits

03 Leitura de n palavras

04 Leitura de n palavras

05 Escrita de 1 bit

06 Escrita de 1 palavra

07 Leitura rápida de 1 byte

0F Escrita de n bits

10 Escrita de n palavras
Função Read Coil Status
• Finalidade: Leitura de estados das saídas discretas do dispositivo
escravo.

• Código de Função: 0x01.

• Formato da Requisição:
Endereço do dispositivo...1 byte
Código de função.............1 byte, 0x01
Endereço inicial ...............2 bytes 1
Número de saídas.............2 bytes 1
FCS ..................................1 ou 2 bytes 1

• Formato da Resposta:
Endereço do dispositivo...1 byte
Código de função.............1 byte, 0x01
Tamanho da resposta ......1 byte, n
Resposta...........................n bytes 2
FCS ..................................1 ou 2 bytes
Algumas Exceções
HEX. EXCEÇÃO

01 Função inválida

02 Sensor ou registrador inválido

03 Valor dado inválido

04 Falha no dispositivo

05 Estado de espera

06 Dispositivo ocupado

07 Não reconhecimento

08 Erro de paridade na memória


Longitudinal Redundancy Check (LRC)

1. Soma dos campos:

Soma = Endereço + Função + Dados;

2. Cálculo do complemento de 2 para os 8 bit


menos significativos:

LRC = FFh – Soma(8 bits) + 1;

3. Primeiramente coloca-se o byte menos significativo


na mensagem e depois o mais significativo.
Cyclical Redundancy Check (CRC)

1. Carrega-se o registrador CRC com o valor FFFFh;


2. Submete-se o caractere da mensagem a uma lógica XOR com os 8 bits
menos significativos do registrador CRC, retornando o resultado no
registrador CRC;
3. Desloca-se o conteúdo do registrador CRC 1 bit para a direita atribuindo 0 ao
bit mais significativo;
4. Examina-se o bit menos significativo do registrador CRC, e:
• se for igual a 0, repete-se o processo a partir do item 3;
• se for igual a 1, submete-se o registrador CRC a uma lógica XOR com a
constante A001h retornando o resultado no registrador CRC, em seguida
repete-se o processo a partir do item 3;
5. Repetem-se os itens 3 e 4 até que tenham ocorrido 8 deslocamentos;
6. Repetem-se os itens 2 até 5 para os outros caracteres;
7. O valor final do registrador CRC é o valor do Campo Checksum;
8. Primeiramente coloca-se o byte menos significativo na mensagem e depois
o mais significativo.

Potrebbero piacerti anche