Você está na página 1de 74

1

MODBUS
Introdução
• O Protocolo Modbus é um
Protocolo de comunicação de dados
(troca de mensagens) utilizado em
sistemas de automação industrial.

• Criado originalmente no final da


década de 1970, mais
especificamente em 1979, pela
fabricante de equipamentos
Modicon.

• É um dos mais antigos e até hoje


mais utilizados protocolos em redes
de Controladores Lógicos
Programáveis (CLP) para aquisição
de sinais(0 ou 1) de instrumentos e
comandar atuadores.
3

MODBUS
Introdução

• Protocolo de aplicação MODBUS -


V1.1b3

• MODBUS foi criado em 1979 para


comunicação entre controladores
MODICON (Hoje, da Schneider)
• Sempre foi aberto. (Padrão de fato)
• Simples: fortemente baseado em I/O
mapeada em memória.
• Tornou-se um padrão de fato
adotado por vários fabricantes
• Adotado principalmente na interface
SUPERVISÃO/CONTROLE
4

MODBUS
Introdução
• A Schneider Electric (atual controladora da Modicon) transferiu os direitos
do protocolo para a Modbus Organization (Organização Modbus –
www.modbus.org) em 2004 e a utilização é livre de taxas de licenciamento
(padrão aberto).
5

MODBUS
Introdução
• A Schneider Electric (atual controladora da Modicon) transferiu os direitos
do protocolo para a Modbus Organization (Organização Modbus –
www.modbus.org) em 2004 e a utilização é livre de taxas de licenciamento
(padrão aberto). Technical Resources
6

MODBUS
Introdução
• A Schneider Electric (atual controladora da Modicon) transferiu os direitos
do protocolo para a Modbus Organization (Organização Modbus –
www.modbus.org) em 2004 e a utilização é livre de taxas de licenciamento
(padrão aberto). Technical Resources->Modbus Specifications
7

MODBUS
Introdução
• Muitos equipamentos industriais utilizam o MODBUS como protocolo de
comunicação, e graças às suas características, este protocolo também
tem sido utilizado em uma vasta gama de aplicações como:

• Instrumentos e equipamentos de laboratório;


• Automação residencial;
• Automação de navios.
8

MODBUS
Introdução
• Protocolo de troca de mensagens na camada de Aplicação (L7) do
Modelo OSI
• Provê uma comunicação requisição/resposta entre dispositivos
conectados em diferentes tipos de barramentos ou redes.
• Oferece serviços especificados em códigos de funções, que são
elementos das PDUs de requisição/resposta do MODBUS.

• Atualmente pode ser implementado usando:


• TCP/IP sobre Ethernet (porta reservada 502)
• Transmissão serial assíncrona sobre vários meios físicos (RS232,
RS485, fibra, rádio, etc)
• MODBUS Plus (uma rede de acesso ao meio baseada em token)
9

MODBUS
Introdução
• Originalmente implementado como um protocolo de nível de aplicação,
destinado a transferir dados por uma camada serial, esse protocolo foi
ampliado para incluir implementações em comunicações seriais, TCP/IP e
UDP (user datagram protocol).

• Atualmente, é um protocolo muito utilizado por inúmeros dispositivos


para oferecer comunicação simples, confiável e eficiente em uma
ampla variedade de redes modernas.

• O Modbus é tipicamente usado na comunicação de rede do tipo SCADA


(Supervisory Control and Data Acquisition) entre dispositivos.

• Por exemplo, um servidor de grande porte pode ser usado para controlar
um controlador lógico programável (CLP) ou controlador programável para
automação (PAC), onde o CLP/PAC pode, por sua vez, controlar um
sensor, válvula, motor ou qualquer outro dispositivo embarcado.
10

MODBUS
Introdução
• É largamente utilizado para estabelecer comunicação: Mestre–Escravo
(Master-Slave) entre dispositivos inteligentes ou existe também a
possibilidade de comunicação Cliente-Servidor (Client-Server).

• O MODBUS é independente do meio físico.

• O MODBUS é um dos protocolos mais utilizados em automação


industrial, graças à sua simplicidade e facilidade de implementação,
podendo ser utilizado em diversos padrões de meio físico, como:

• RS-232;
• RS-485;
• Ethernet TCP/IP (MODBUS TCP).

• A velocidade de comunicação varia em cada um desses


padrões, bem como o comprimento máximo da rede e
o número máximo de dispositivos conectados.
11

MODBUS
Tipos de Protocolos Modbus
MODBUS TCP/IP é usado para comunicação
entre sistemas de supervisão e controladores
lógicos programáveis. O protocolo Modbus é
encapsulado no protocolo TCP/IP e transmitido
através de redes padrão ethernet com controle de
acesso ao meio por CSMA/CD.

MODBUS PLUS é usado para comunicação


entre si de controladores lógicos programáveis,
módulos de E/S, chaves de partida eletrônica de
motores, interfaces homem máquina etc. O meio
físico é o RS-485 com taxas de transmissão de 1
Mbps, controle de acesso ao meio por HDLC
(High Level Data Link Control).

MODBUS PADRÃO é usado para comunicação dos CLPs com os dispositivos de entrada e
saída de dados, instrumentos eletrônicos inteligentes (IEDs) como relés de proteção,
controladores de processo, atuadores de válvulas, transdutores de energia e etc. o meio físico é
o RS-232 ou RS-485 em conjunto com o protocolo mestre-escravo.
12

MODBUS
Modbus e o Modelo OSI
13

MODBUS
Tipos de Protocolos MODBUS
14

MODBUS
O protocolo Modbus permite uma comunicação fácil em
todos os tipos de arquitetura de redes.
15

MODBUS
O protocolo Modbus permite uma comunicação fácil em
todos os tipos de arquitetura de redes.
16

MODBUS
PDU - Protocol Data Unit
Descrição geral: Quadro ADU - Aplication Data Unit

• O protocolo MODBUS define uma Unidade de Dados de Protocolo simples (PDU)


independente do camadas de comunicação subjacentes.
• O mapeamento do protocolo MODBUS em barramentos específicos ou rede pode
introduzir alguns campos adicionais na Unidade de Dados da Aplicação (ADU).

• A unidade de dados do aplicativo MODBUS é construída pelo cliente (mestre) que


inicia uma transação MODBUS.
• A função indica ao servidor que tipo de ação executar.
• Function Code: 8 bits - 1 a 255, função de código "0" não é válida.
• Códigos de 128 a 255 é reservado e usado para respostas de exceção (erro).
• Existe códigos de subfunções para definir múltiplas ações.
• Dados: mensagens enviadas do cliente (mestre) para o escravo (servidor) contendo
informações adicionais como endereços discretos e de registradores. Pode não existir
(tamanho zero) em alguns tipos de requisições.
17

MODBUS
PDU - Protocol Data Unit
Descrição geral: Quadro ADU - Aplication Data Unit
18

MODBUS
PDU - Protocol Data Unit
Descrição geral: Quadro ADU - Aplication Data Unit
19

MODBUS
Descrição geral: Quadro e Transações - O ciclo de requisição-resposta
• O protocolo da aplicação MODBUS estabelece o formato de uma solicitação
iniciada por um cliente.
• No MODBUS, essa
requisição é um conjunto
de dados disposto em
camadas.

• A primeira camada é a
unidade de dados de
aplicação (ADU), que é o
que a maior parte das
pessoas considera ser o
"tipo" de MODBUS
utilizado.
20

MODBUS
Aplicação MODBUS: Modelo de Dados
• Modelo de dados são abstrações utilizadas para organizar a memória
• Em C, define-se nativamente o tipo int, char, unsigned int, float, double, etc...

• Modelo de dados em MODBUS é organizado em uma série de TABELAS, que


têm características distintas.
• Para cada tabela primária, o protocolo permite a seleção individual de 65536
itens de dados;
• As operações de leitura e escrita desses itens são projetadas para
abranger vários itens de dados consecutivos até um limite de tamanho de
dados que depende do código da transação.
• Todos os dados devem estar localizados na memória de aplicação do
dispositivo, mas não confunda endereço físico da memória com o endereço
de dados;
• Número de referência lógico MODBUS, que são usados nas funções
MODBUS, são índices inteiros sem sinal começando do zero.
21

MODBUS
Aplicação MODBUS: Modelo de Dados
• O MODBUS gerencia o acesso aos dados de maneira simples e flexível.
• Nativamente, o MODBUS permite o uso de dois tipos de dados: valores
booleanos e inteiros de 16 bits não sinalizados.
• Nos sistemas SCADA, é normal que os dispositivos embarcados tenham
determinados valores definidos como entradas, como os ajustes de ganho ou
variáveis de controle PID (proporcional-integral-derivativo), e outros como saídas,
como posição da válvula e temperatura atual.
• Para atender essa necessidade, os valores dos dados do MODBUS são divididos
em quatro faixas (veja o quadro 1).
• Um escravo pode definir até 65.536 (216)elementos em cada faixa.
22

MODBUS
Aplicação MODBUS: Modelo de Dados
• Em muitos casos, sensores e outros dispositivos geram dados de outros tipos
além de simplesmente booleanos e inteiros não sinalizados.
• É comum que os dispositivos escravo convertam esses tipos de dados maiores em
registradores.
• Por exemplo, um sensor de pressão pode separar um valor de ponto flutuante de
32 bits em dois registradores de 16 bits.
• O MODBUS expõe esses valores de uma maneira completamente conceitual, o
que significa que eles podem não existir realmente na memória.
• Por exemplo, um dispositivo escravo pode estar definido de tal maneira que os
registradores holding e os registradores de entrada compartilhem uma mesma
memória, se esse comportamento fizer sentido para o escravo.
• Na maior parte dos casos, os escravos armazenam cada tipo de dados que
utilizam em uma memória diferente e limitam o número de elementos de dados
que um mestre pode acessar.
• Essa flexibilidade é opcional, devido à maneira pela qual os dados são expostos,
através de um comportamento bem definido dos códigos de função do MODBUS.
23

MODBUS
Aplicação MODBUS: Modelo de Dados
24

MODBUS
Conceitos iniciais: O modelo de dados do Modbus
25

MODBUS
Aplicação MODBUS: Modelo de Dados

• Todo dispositivo em uma rede Modbus deve ter a sua memória dividida
em registradores de 16 bits numerados conforme o modelo
apresentado.
– A divisão é baseada na estrutura de memória de um CLP:
– Saídas discretas para os atuadores ON-OFF utilizam um bit. Cada
registrador comporta 16 saídas.
– Entradas discretas para os sensores ON-OFF utilizam um bit. Cada
registrador comporta 16 entradas.
– Entradas analógicas utilizam registradores de 16 bits para os valores
obtidos por conversores A/D a partir dos sinais dos sensores
analógicos.
– Registradores de Memória com 16 bits para os valores utilizados
internamente no CLP.
26

MODBUS
Conceitos iniciais: O modelo de dados do Modbus
27

MODBUS
Descrição geral - O ciclo de requisição-resposta
Há três categorias de ADUs: ASCII, RTU (remote terminal unit) e TCP/IP.

• O TCP é um formato moderno, que permite um tratamento eficiente de


requisições e respostas do Modbus no software, assim como um
networking mais eficiente, pelo uso de conexões dedicadas e
identificadores para cada requisição.
• RTU e ASCII são formatos seriais do tipo ADU mais antigos, sendo a
principal diferença entre os dois a RTU usar uma representação binária
compacta, enquanto que o ASCII envia todas as requisições como feixes
de caracteres ASCII.
• Na maior parte das aplicações, a ADU a ser escolhida dependerá da rede
física desejada (Ethernet, serial ou outra), a quantidade de dispositivos na
rede e as ADUs atendidas pelos dispositivos mestre e escravo na rede.
• Do ponto de vista da aplicação que está usando o Modbus, os dados
devem ser expostos como se a ADU não existisse.
28

MODBUS
Descrição geral - O ciclo de requisição-resposta
Há três categorias de ADUs: ASCII, RTU (remote terminal unit) e TCP/IP.

• Em cada ADU, há uma PDU (protocol data unit) que é o centro do


protocolo Modbus. Cada PDU contém um código de função e dados
associados.
• Por sua vez, cada código de função tem uma resposta bem definida.
• Você pode pensar nesse código de função como um comando enviado ao
escravo.
• Em alguns casos, podem ocorrer erros.
• O Modbus define uma PDU específica para exceções, que permite que o
mestre saiba o que está acontecendo.
• A maior parte dos drivers converte essa PDU em um formato que faz
sentido para a linguagem ou aplicação em uso.
29

MODBUS
Camada Física: Padrão RS-232
• O padrão RS-232 (Recommendad Standart-232) ou EIA-232 (Electronic
Industries Alliance-232) é utilizado apenas em comunicações do tipo ponto
a ponto, ou seja, só admite dois dispositivos na rede, que no caso do
protocolo Modbus representa o mestre e 1 escravo.
• A velocidade máxima desse padrão está em torno de 115Kbps, mas em
alguns casos podem ser encontradas taxas um pouco maiores, a distância
máxima entre os dispositivos da rede está em torno de 15m.
30

MODBUS
Camada Física: Padrão RS-485
• O padrão RS-485 (Recommendad Standart-485) ou EIA-485 (Electronic
Industries Alliance-485) é muito utilizado na indústria e sem dúvida é um
dos padrões mais utilizados pelo protocolo Modbus.
• Esse padrão permite trabalhar com taxas de comunicação que podem
chegar a 12Mbps e em alguns casos até mais, vale lembrar que quanto
maior o comprimento da rede menor será a velocidade de comunicação, a
distância máxima da rede está em torno de 1200m, e o número máximo de
dispositivos no barramento da rede é de 32.
31

MODBUS
Modos de Transmissão Modbus
Existem 3 versões de protocolo MODBUS :
 Modo de transmissão ASCII
• Cada byte transmitido como dois caracteres ASCII.

 Modo de transmissão RTU


• Cada byte (8 bit) da mensagem é enviado como 2 nibles hexadecimais
de 4 bits.

 Modbus on TCP
• Aqui os dados são encapsulados em formato binário em quadros 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.
32

MODBUS
Modos de Transmissão Modbus
 Modo de transmissão ASCII
• Quando os equipamentos são configurados para se comunicarem em uma rede
Modbus usando ASCII (American Standard Code for Information Interchange),
cada byte em uma mensagem é enviado como dois caracteres ASCII.
• Apesar de gerar mensagens legíveis pela tabela ASCII esse modo consome mais
recursos da rede.
• A principal vantagem dessa modalidade é que permite que os intervalos de
tempo sejam cerca de um segundo para correr entre os caracteres sem causar
erro.
• Os dispositivos monitoram constantemente a rede para o início de uma
mensagem.
• Quando uma mensagem é iniciada pelo mestre, todos os dispositivos da rede
decodificam o campo de endereço para determinar qual escravo deve receber a
mensagem.
• O inicio de uma mensagem é reconhecido pelo caractere (:) "dois pontos".
33

MODBUS
Modos de Transmissão Modbus
 Modo de transmissão ASCII
• O formato para cada byte em modo ASCII é:
• Codificação do sistema: Hexadecimal, caracteres ASCII 0-9, A-F, um caractere
hexadecimal contido em cada caractere ASCII da mensagem;

• Bits por Byte:


1 bit de início
7 bits de dados, bit menos significativo primeiro
1 bit para paridade par / ímpar, ou sem bit de paridade
1 bit de parada, se a paridade é usado; 2 bits se sem paridade

• 16 bits Campo Erro check: Longitudinal Redundancy Check (LRC)


• Intervalos de até um segundo podem decorrer entre caracteres dentro da mensagem.
• Se ocorrer um intervalo maior, o dispositivo receptor assume que ocorreu um erro. O campo
de checagem de erros é baseado no método LRC (Longitudinal Redundancy Check).

• Exemplos de codificação no ASCII:


0 – 0110000 1 – 0110001 2 – 0110010 3 – 0110011 4 – 0110100 ... 9 – 0111001
A – 1000001 B – 1000010 ... F – 1000110
34

MODBUS
Modos de Transmissão Modbus
 Modo de transmissão RTU (Remote Terminal Unit)
• No modo RTU (Remote Terminal Unit), cada mensagem de 8 bits contém dois
caracteres hexadecimais de 4 bits.
• A principal vantagem desse modo é que sua maior densidade de caracteres
permite um melhor processamento de dados do que o modo ASCII para o mesmo
baudrate (velocidade de comunicação).
• Cada mensagem deve ser transmitida em um fluxo contínuo de caracteres.
• No modo RTU não existe um caractere específico que indique o início ou o fim de
um telegrama.

• A indicação de quando uma nova mensagem começa ou quando ela termina é


feita pela ausência de transmissão de dados na rede, por um tempo mínimo de
3,5 vezes o tempo de transmissão de um byte de dados.
35

MODBUS
Modos de Transmissão Modbus
 Modo de transmissão RTU (Remote Terminal Unit)
• Sendo assim, caso um telegrama tenha iniciado após a decorrência desse tempo
mínimo, os elementos da rede irão assumir que o primeiro caractere recebido
representa o início de um novo telegrama.
• E da mesma forma, os elementos da rede irão assumir que o telegrama chegou
ao fim quando, recebidos os bytes do telegrama, este tempo decorra novamente.
• Se durante a transmissão de um telegrama o tempo entre os bytes for maior que
este tempo mínimo, o telegrama será considerado inválido, pois o controlador irá
descartar os bytes já recebidos e montará um novo telegrama com os bytes que
estiverem sendo transmitidos.
• O tempo para transmitir uma palavra do quadro varia de 573us para taxas
de comunicação acima de 19200bits/s e 9 ms para a taxa de 1200bits/s.
• O campo de checagem de erros é baseado no método CRC (Cyclical
Redundancy Checking).
36

MODBUS
Modos de Transmissão Modbus
 MODBUS TCP
• O MODBUS TCP/IP é usado para comunicação entre sistemas de supervisão e
controladores lógicos programáveis.
• O protocolo Modbus é encapsulado no protocolo TCP/IP e transmitido através de
redes padrão ethernet com controle de acesso ao meio por CSMA/CD.
37

MODBUS
Modos de Transmissão Modbus
 MODBUS TCP
38

MODBUS
Modos de Transmissão Modbus
 MODBUS TCP
• Modbus TCP é uma implementação do protocolo Modbus baseado em TCP/IP.
• Utiliza a pilha TCP/IP para comunicação e adiciona ao quadro Modbus um
cabeçalho específico chamado MBAP (MODBUS Application Protocol). O
modelo de mensagem Modbus TCP/IP fica da seguinte forma:

O cabeçalho MBAP tem tamanho de 7 bytes, e é composto pelos seguintes campos:


• Transaction identifier: usado para identificação da resposta para a transação (2 bytes);
• Protocol identifier: 0 (zero) indica Modbus (2 bytes);
• Length: contagem de todos os próximos bytes (2 bytes);
• Unit identifier: utilizado para identificar o escravo remoto em uma rede Modbus RTU (1 byte).

• Modbus TCP não acrescenta ao quadro um campo de checagem de erros, entretanto


o frame ethernet já utiliza CRC-32 tornando desnecessário outro campo de checagem.
• O cliente Modbus TCP deve iniciar uma conexão TCP com o servidor a fim de enviar as
requisições.
• A porta TCP 502 é a porta padrão para conexão com servidores Modbus TCP.
39

MODBUS
Modos de Transmissão Modbus
 MODBUS TCP
• Como não há diferenças entre mestre e escravo, qualquer nó com uma porta TCP pode
acessar qualquer outro nó, possibilitando a implementação de comunicação ponto-a-ponto
entre os antigos escravos.
• A mensagem é encapsulada em um pacote TCP/IP.
• Os comandos são enviados por um cliente usando uma mensagem TCP/IP para a porta 502
de um servidor, que responde com o dado desejado encapsulado em um pacote TCP/IP.
• O encapsulamento TCP não modificou a estrutura básica da mensagem original do Modbus.
• As diferenças estão na interpretação do endereço e na verificação de erro.
• No endereçamento, o campo do endereço do escravo foi substituído por um único byte
chamado de Identificador único que pode ser usado para comunicação via dispositivos
como gateways e brigdes que usam um único endereço IP para integrar vários dispositivos.
• Não são usados os campos CRC ou LRC para verificação de erro.
• São usados os mecanismos semelhantes do já existentes do TCP/IP e protocolo Ethernet.
40

MODBUS
Modos de Transmissão Modbus
 MODBUS TCP
41

MODBUS
Conceitos iniciais: Estrutura do Quadro Modbus
A estrutura do quadro Modbus é a mesma para perguntas (master to slave
messages) e respostas (slave to master messages).

Modbus RTU
silence Address Function Data Checksum silence

Silence >= 3,5 characters

Modbus ASCII
: Address Function Data Checksum CR LF

3A Hex 0D Hex 0A Hex


42

MODBUS
Conceitos iniciais: Estrutura do Quadro Modbus

Address Function Data Checksum

CAMPO ADDRESS
• O range válido para o campo endereço é de 0 ... 247 decimal.
• Cada escravo pode assumir um endereço no range de 1 ... 247.
• O valor 0 é reservado para mensagens broadcast (sem resposta).
• 248 a 255 reservados
Pergunta :
• O mestre endereça o escravo colocando o número do escravo no campo
endereço da mensagem.
Resposta:
• Quando o escravo responde, ele coloca seu próprio endereço no campo
endereço da resposta para o mestre saber quem está respondendo.
43

MODBUS
Conceitos iniciais: Estrutura do Quadro Modbus

Address Function Data Checksum

CAMPO FUNCTION
Códigos válidos no range de 1 ... 255 decimal.

Pergunta :
• O campo function code diz ao escravo que tipo de ação ele deve fazer.

Resposta :
• Para uma resposta normal, o escravo simplesmente repete o function
code.
• Para uma resposta excepcional, o escravo retorna um código equivalente
ao original com seu bit mais significativo setado em 1.
44

MODBUS
Conceitos iniciais: Estrutura do Quadro Modbus

Address Function Data Checksum


CAMPO DATA
Códigos válidos no range de 0 ... 255 decimal.

Pergunta :
• O campo data contém informações adicionais que o escravo usa para
tomar a ação definida pelo function code. Isto inclui items como endereço
do registro quantidade de itens a manipular, etc...

Resposta :
• Se não ocorrer erro, o campo data contém os dados solicitados.
• Se ocorrer erro, o campo contém o código de exceção que a aplicação
do master poderá usar para determinar a próxima ação a ser tomada.
45

MODBUS
Conceitos iniciais: Estrutura do Quadro Modbus

Address Function Data Checksum

CAMPO CHECKSUM
O range de códigos válidos é de 0 ... 255 decimal.

Modbus RTU usa o CRC : Cyclycal Reduncy Check (2 bytes)


Modbus ASCII usa o LRC : Longitudinal Redundancy Check (1 byte)

Pergunta :
• O checksum é calculado no mestre e enviado ao escravo.

Resposta :
• O checksum é re-calculado pelo escravo e comparado com o valor
enviado pelo mestre.
• Se ocorrer diferenças, o escravo não constrói o frame de resposta ao
mestre.
46

MODBUS
Conceitos iniciais: Transações entre os dispositivos
1. Durante a comunicação em uma rede Modbus, o protocolo determina
como o dispositivo conhecerá seu endereço, como reconhecerá uma
mensagem endereçada para ele, como determinar o tipo de ação a ser
tomada e como extrair o dado ou outra informação qualquer contida na
mensagem.
2. Se uma resposta é necessária, como o dispositivo construirá uma
mensagem e a enviará.
3. O mestre pode endereçar mensagens para um escravo individual ou
enviar mensagens para todos (broadcast).
4. Os escravos retornam uma mensagem somente para as consultas
endereçadas especificamente para ele. As mensagens broadcast não
geram respostas.
47

MODBUS
Conceitos iniciais: Transações entre os dispositivos
– Escopo do Protocolo
• Como o CLP solicita o acesso à outro dispositivo
• Como este responderá
• Como os erros serão detectados e informados.

– Topologia Física
• Ponto a Ponto com RS-232.
• Barramento Mutiponto com RS-485.

– Controle de Acesso ao Meio


• Protocolo Mestre-escravo.
48

MODBUS
Conceitos iniciais: Transações entre os dispositivos
– Na mensagem de consulta, o
código de função informa ao
dispositivo escravo com o
respectivo endereço, qual a
ação a ser executada.
– Bytes de dados contêm
informações para o escravo,
por exemplo, qual o registrador
inicial e a quantidade de
registros a serem lidos.
– O campo de verificação de erro
permite ao escravo validar os
dados recebidos.
49

MODBUS
Conceitos iniciais: Transações entre os dispositivos
– Na mensagem de resposta, o
código de função é repetido de
volta para o mestre.
– Os bytes de dados contêm os
dados coletados pelo escravo ou o
seu estado.
– Se um erro ocorre, o código de
função é modificado para indicar
que a resposta é uma resposta de
erro e os byte de dados contém
um código que descreverá o erro.
– A verificação de erro permite o
mestre validar os dados recebidos.
50

MODBUS
Conceitos iniciais: Transações entre os dispositivos

– Endereçamento (1 byte)
• 0 : Usado para “broadcast”.
• 1 a 247 : Usados pelos escravos.
– Código da Função (1 byte)
• Estabelece a ação a ser efetuada.
• 0 a 127 : Funções
• 128 a 255 : Informe de erro na transmissão.
– Bytes de Dados
• Informação adicionais necessárias.
• Endereços de memória
• Quantidade de itens transmitidos
• Quantidade de bytes do campo
– Verificação de Erros (2 bytes)
• LRC ou CRC
51

MODBUS
Conceitos iniciais: Transações entre os dispositivos
– A verificação de erro é efetuada opcionalmente pela paridade de
cada byte transmitido e obrigatoriamente pelo método LRC ou
CRC sobre toda a mensagem.
• O LRC descarta os caracteres de inicio e fim de mensagem.
• O CRC descarta os bits de inicio, paridade e parada de cada byte.

– O dispositivo mestre espera uma resposta por um determinado


tempo antes de abortar uma transação (timeout).
• O tempo deve ser longo o suficiente para permitir a resposta de qualquer
escravo.
• Se ocorre um erro de transmissão, o escravo não construirá a resposta
para o mestre.
• Será detectado um “timeout” e o mestre tomará as providências
programadas.
52

MODBUS
Conceitos iniciais: Transações entre os dispositivos

– 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 e velocidade;
• timeout, bits de parada e paridade e;
• o modo de transmissão (RTU os ASCII).

– A seleção do modo de transmissão define como os dados serão


codificados.
• RTU = BINÁRIO
• ASCII = TEXTO
53

MODBUS
Conceitos iniciais: Transações entre os dispositivos

– 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.
– 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.
54

MODBUS
Conceitos iniciais: Categorias de código de função
Existem três categorias de códigos de funções
MODBUS. Eles são :
• Códigos de Função Pública
• Códigos de função definidos pelo usuário
• Códigos de função reservados

Códigos de Função Pública:


• São códigos de função bem definidos,
• garantidos para ser único,
• validados pela comunidade MODBUS-IDA.org,
• documentados publicamente
• tem teste de conformidade disponível,
• inclui códigos de função atribuídos públicos
definidos, bem como função não atribuída
códigos reservados para uso futuro.
55

MODBUS
Conceitos iniciais: Categorias de código de função
Existem três categorias de códigos de funções
MODBUS. Eles são :
• Códigos de Função Pública
• Códigos de função definidos pelo usuário
• Códigos de função reservados

Códigos de função definidos pelo usuário:


• existem dois intervalos de códigos de função
definidos pelo usuário, ou seja, 65 a 72 e de 100 a 110.
• o usuário pode selecionar e implementar um código
de função que não é suportado pela especificação.
• não há garantia de que o uso do código de função
selecionado será exclusivo
• se o usuário deseja reposicionar a funcionalidade como um código de função
pública, ele deve iniciar um RFC para introduzir a mudança na categoria pública e
ter um novo código de função pública atribuído.
• MODBUS Organization, Inc reserva-se expressamente o direito de desenvolver a
proposta RFC.
56

MODBUS
Conceitos iniciais: Categorias de código de função
Existem três categorias de códigos de funções
MODBUS. Eles são :
• Códigos de Função Pública
• Códigos de função definidos pelo usuário
• Códigos de função reservados

Códigos de Função Pública:


• Códigos de função atualmente usados por
algumas empresas para produtos legados e que
não estão disponíveis para uso público.
• Nota informativa: O leitor deve consultar o Anexo A
(informativo) MODBUS CÓDIGOS DE FUNÇÃO
RESERVADOS, SUBCÓDIGOS E TIPOS DE MEI.
57

MODBUS
Conceitos iniciais: Categorias de código de função
58

MODBUS
Conceitos iniciais: Código de função
Descrições de códigos de função: 01 (0x01) Bobinas de leitura

• Este código de função é usado para ler de 1 a 2.000 status contíguos de bobinas
em um controle remoto dispositivo.
• A PDU de solicitação especifica o endereço inicial, ou seja, o endereço da primeira
bobina especificado, e o número de bobinas.
• Na PDU, as bobinas são endereçadas a partir de zero.
• Portanto as bobinas numeradas de 1-16 são endereçadas como 0-15.
• As bobinas na mensagem de resposta são compactadas como uma bobina por bit
do campo de dados.
• Status é indicado como 1 = LIGADO e 0 = DESLIGADO.
• O LSB do primeiro byte de dados contém a saída endereçada na consulta.
• As outras bobinas seguem em direção à extremidade de ordem superior deste
byte, e da ordem inferior em alta ordem nos bytes subsequentes.
• Se a quantidade de saída retornada não for um múltiplo de oito, os bits restantes
nos dados finais byte será preenchido com zeros (em direção ao fim de ordem
superior do byte).
• O campo Byte Count especifica a quantidade de bytes completos de dados.
59

MODBUS
Conceitos iniciais: Código de função
60

MODBUS
Conceitos iniciais: Código de função
• O status das saídas 27–20 é mostrado como o valor de byte CD hex ou binário
1100 1101.
• Saída 27 é o MSB deste byte e a saída 20 é o LSB.
• Por convenção, os bits dentro de um byte são mostrados com o MSB à esquerda e
o LSB à direita.
• Assim, as saídas no primeiro byte são ‘27 a 20’, da esquerda para a direita.
• O próximo byte tem produz '35 a 28 ', da esquerda para a direita.
• À medida que os bits são transmitidos em série, eles fluem de LSB para MSB: 20. .
. 27, 28. . . 35 e assim por diante.
• No último byte de dados, o status das saídas 38-36 é mostrado como o valor do
byte 05 hex ou binário 0000 0101.
• A saída 38 está na sexta posição do bit a partir da esquerda e a saída 36 é o LSB
deste byte.
• Os cinco bits de ordem superior restantes são preenchidos com zeros.
61

MODBUS
Conceitos iniciais: Código de função
62

MODBUS
Conceitos iniciais: Transações entre os dispositivos
63

MODBUS
Conceitos iniciais: Transações entre os dispositivos
64

MODBUS
Conceitos iniciais: Transações entre os dispositivos
– O escravo repete o código da função indicando uma resposta
normal.
– A quantidade de bytes especifica quantos itens estão sendo
retornados.
65

MODBUS
Conceitos iniciais: Transações entre os dispositivos
– A identificação dos
comandos (funções)
de leitura e escrita
são diferentes de
acordo com o tipo
de dado a ser lido
ou escrito.
66

MODBUS
Conceitos iniciais: Camada Física MODBUS – RS485

RS485 é o protocolo de camada física mais comum usado pelo


MODBUS.
O padrão RS485 permite variações nas seguintes
características :
 Polarização
 Terminação de linha
 Distribuição de potencial de referência
 Número de escravos
 Comprimento do barramento
67

MODBUS
Conceitos iniciais: Camada Física MODBUS – RS485
68

MODBUS
Conceitos iniciais: Camada Física MODBUS RTU – RS485

MODBUS RS485 - REDE 2 FIOS Master

T
R

5V

650 ohms

Balanced pair
120 ohms 650 ohms 120 ohms
1 nF Common 1 nF

PG
R R
T T

Slave 1 Slave n Max. length:


Main segment: 1,000 meters at 19,200 bits/s
Drops: 40 meters in total
69

MODBUS
Conceitos iniciais: Camada Física MODBUS RTU – RS485

MODBUS RS485 - REDE 4 FIOS Master

T
R 5V

650 ohms

Slave pair
650 ohms

120 ohms 5V 120 ohms


1 nF 1 nF

Master pair
120 ohms
1 nF
Common 120 ohms
1 nF

R R
PG
T T

Slave 1 Slave n
70

MODBUS
Conceitos iniciais: Camada Física MODBUS RTU – RS485

DEVICE 2 FIOS - REDE 4 FIOS Master

T
R 5V

650 ohms

650 ohms
120 ohms
1 nF

Common 120 ohms


1 nF

R R
T T

Slave 1 Slave n
71

MODBUS
Conceitos iniciais: Camada Física MODBUS RTU – RS485

DEVICE 4 FIOS - REDE 2 FIOS Master

T
R

5V

650 ohms

Balanced pair
120 ohms 650 ohms 120 ohms
1 nF Common 1 nF

R R
T T

Slave 1 Slave n
72

MODBUS
Conceitos iniciais: Camada Física MODBUS RTU – RS485

ARQUITETURAS
SISTEMA DE AUTOMAÇÃO DAS SUBESTAÇÕES

SEPAM

MODBUS RTU RS485


ETHERNET MODBUS TCP/IP

PREMIUM

IHM TOUCH

MODBUS RTU RS485


73

MODBUS
Conceitos iniciais: Camada Física MODBUS RTU – RS485
ARQUITETURA GERAL DO SISTEMA
SISTEMA DE
REDE ETHERNET SUPERVISÃO E
CONTROLE

PREMIUM PREMIUM
ANEL OPTICO ETHERNET
SUBESTAÇÃO MODBUS TCP/IP VENTILAÇÃO
PRINCIPAL AR CONDICIONADO
EXAUSTÃO

PREMIUM PREMIUM
SUBESTAÇÃO AR COMPRIMIDO
AUXILIAR DISTR. VAPOR
VÁCUO

PREMIUM PREMIUM
COGERAÇÃO DISTR. GASES
DE ENERGIA ALARME INCÊNDIO
74

MODBUS
Vídeo 1 – Vídeo apresentando um resumo sobre o Protocolo MODBUS.

Você também pode gostar