Você está na página 1de 60

Instituto Federal de Educação, Ciência e Tecnologia de Pernambuco

Redes Industriais
Campus Garanhuns

Rede ModBus Professor: Diego Lopes

Semana 13 GARANHUNS, 2021 1/60


Introdução a Rede Modbus
•Criado em 1979 para comunicação entre
controladores (CLP) MODCON;
•É o protocolo mais antigo e mais popular em
automação de processos e SCADA;
•Padrão aberto, todas as especificações podem
ser acessadas em: https://modbus.org/
•Protocolo simples:
• Fortemente baseado em entradas e saídas
mapeadas na memória.
• Tornou-se um padrão de fato adotado por vários
fabricantes.
• Adotado principalmente na interface de
supervisão e controle.

Semana 13 REDE MODBUS 2/60


Introdução a Rede Modbus
•Consiste em um protocolo de troca de
mensagens na camada de aplicação 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+ (uma rede de acesso ao meio baseada
em token com suporte a multi-mestre).

Semana 13 REDE MODBUS 3/60


Introdução a Rede Modbus

Semana 13 REDE MODBUS 4/60


Introdução a Rede Modbus
•Exemplos de arquiteturas de rede com Modbus:

Semana 13 REDE MODBUS 5/60


Rede Modbus – Camada de Aplicação
•Estrutura da mensagem no Modbus:
• PDU – Protocol Data Unit;
• ADU – Application Data Unit.

•Function Code: 8 bits – 1 a 255, função de código “0” não é válido.


• Códigos de 128 a 255 são reservados e usados para respostas de exceção.
• 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.
Semana 13 REDE MODBUS 6/60
Rede Modbus – Camada de Aplicação
•O tamanho do PDU é limitado em 256 bytes:
• Esse limite mantém a compatibilidade com as primeiras versões em barramento serial.

•O PDU então será composto como:


• PDU = 256 - (endereço escravo/servidor: 1byte) – (2 bytes CRC, CRC16) = 253 bytes.

•A depender do meio os ADUs são:


• RS232/RS485 ADU = 253 (PDU) + 1 byte (endereço) + 2 bytes (CRC) = 256 bytes.
• TCP MODBUS ADU = 253 (PDU) + 7 bytes (MBAP – Modbus appl protocol) = 260 bytes.

Semana 13 REDE MODBUS 7/60


Rede Modbus – Camada de Aplicação
•Transações na camada de aplicação do Modbus – Sem erro:

Semana 13 REDE MODBUS 8/60


Rede Modbus – Camada de Aplicação
•Transações na camada de aplicação do Modbus – Com erro:

Semana 13 REDE MODBUS 9/60


Rede Modbus – Camada de Aplicação
•Por padrão o Modbus implementa o modo de comunicação “Big Endian”:
• Significa que quando uma quantidade numérica maior que 1 byte é transmitida, o byte mais
significativo é enviado primeiro.;
• Esse detalhe pode causar erros de configuração em equipamentos que utilizam “little endian”.

Semana 13 REDE MODBUS 10/60


Rede Modbus – Camada de Aplicação
•Modelo de dados do Modbus;
•Modelo de dados são abstrações utilizadas para organizar a memória:
• Em C, define-se os tipos int, char, double, etc.

•O modelo de dados no Modbus é organizado em tabelas, que tem características distintas.

Semana 13 REDE MODBUS 11/60


Rede Modbus – Camada de Aplicação
•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 de memória com 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 por zero.

Semana 13 REDE MODBUS 12/60


Rede Modbus – Camada de Aplicação
•Exemplos de organização de memória no dispositivo.

Com blocos separados Com apenas um bloco

Semana 13 REDE MODBUS 13/60


Rede Modbus – Camada de Aplicação
•Em PDUs Modbus, cada dado é endereçado de
0 a 65535.
•Aplicação Modbus define claramente um
modelo de dados composto de 4 blocos que
compreende vários elementos numerados de
1 a N.
• No modelo de dados Modbus cada elemento
com um bloco de dados é numerado de 1 a N.
Depois esse modelo tem que ser relacionado
com a aplicação no dispositivo.
• O pré-mapeamento entre o modelo de dados
Modbus e a aplicação no dispositivo é
totalmente específica conforme o fabricante do
dispositivo.

Semana 13 REDE MODBUS 14/60


Rede Modbus – Camada de Aplicação
•A associação de cada endereço com uma
região na memória em cada equipamento da
rede modbus deve ser planejada e feita pelo
gestor da rede.
•Esse é o ponto de maior desafio em se utilizar
a rede modbus.
•Equipamentos diferentes possuem modos de
mapeamento diferentes os quais devem ser
consultados nos manuais dos fabricantes.

Semana 13 REDE MODBUS 15/60


Rede Modbus – Camada de Aplicação
•O diagrama de estados de uma transação
Modbus é apresentado ao lado.
•Dependendo do resultado do processamento,
dois tipos de respostas podem ser gerados
para uma requisição:
• Resposta Modbus positiva:
• Cód. Da função resp. = Cód. Da função de requisição.
• Resposta Modbus de Exceção (erro):
• O objetivo é informar ao mestre/cliente alguma informação
relevante referente ao erro durante o processamento.
• Um código de exceção é retornado para indicar a razão do
erro.
• Cód. De função exceção = Cód. De fun. de requisição + 0x80.

Semana 13 REDE MODBUS 16/60


Rede Modbus – Camada de Aplicação
•No Modbus existem três categorias de funções
de código:
•Público:
• Códigos de funções bem definidos;
• Garantidamente únicos;
• Validados pela comunidade Modbus.org;
• Documentados publicamente;
• Possuem testes de conformidades disponíveis;
• Incluem tanto funções de código associadas a
definições públicas como também funções de
códigos não associadas reservadas para uso
futuro.

Semana 13 REDE MODBUS 17/60


Rede Modbus – Camada de Aplicação
•No Modbus existem três categorias de funções
de código:
•Definidos pelo usuário:
• Existem duas faixas: 65 a 72 e 100 a 110
(decimal).
• Usuário pode selecionar e implementar um
código de função que não é suportado pela
especificação Modbus.
• Não existe garantia que o código seja único.
• Se o usuário desejar reposicionar a
funcionalidade como um código público, ele
precisa iniciar uma RFC para introduzir a
mudança na categoria pública e ter um novo
código de função associado.

Semana 13 REDE MODBUS 18/60


Rede Modbus – Camada de Aplicação
•No Modbus existem três categorias de funções
de código:
•Reservados:
• Códigos de função utilizados por algumas
empresas para produtos legados e que são
disponíveis para uso público.

Semana 13 REDE MODBUS 19/60


Rede Modbus – Camada de Aplicação
•Definição de códigos de funções públicos

Semana 13 REDE MODBUS 20/60


Rede Modbus – Camada de Enlace
•No modo serial o Modbus é um protocolo Mestre/escravo diferente da arquitetura
cliente/servidor da camada de aplicação.
•Está localizado na camada 2 do modelo OSI:

Semana 13 REDE MODBUS 21/60


Rede Modbus – Camada de Enlace
•O Modbus serial é um protocolo
mestre/escravo (método de acesso ao meio via
polling):
• Apenas 1 mestre é conectado em um barramento
serial.
• 1 a 247 escravos podem ser conectados no
mesmo barramento.
• Toda comunicação é sempre iniciada pelo mestre.
• Escravos nunca transmitem sem receber uma
requisição do nó mestre.
• Escravos nunca se comunicam entre si.
• O mestre inicia apenas uma transação Modbus
por vez.
• O mestre gera requisições com dois modos de
endereçamenteo: Unicast e multicast.

Semana 13 REDE MODBUS 22/60


Rede Modbus – Camada de Enlace
•Modo Unicast: mestre endereça um escravo específico. Depois de receber e processar a
requisição, o escravo retorna uma mensagem ao mestre.
• Transação com duas mensagens: requisição + resposta.
• Cada escravo tem que ter um único endereço (1 a 247), de forma que possa ser endereçado
independentemente dos outros.

Semana 13 REDE MODBUS 23/60


Rede Modbus – Camada de Enlace
•Modo Broadcast: mestre pode enviar uma requisição para todos os escravos.
• Nenhuma resposta é retornada de uma requisição broadcast;
• São requisições de comandos de escrita;
• Todos os dispositivos tem que aceitar o broadcast para função de escrita.

Semana 13 REDE MODBUS 24/60


Rede Modbus – Camada de Enlace
•Com relação ao endereçamento:
•O endereço 0 é reservado para o broadcast.
•O mestre não tem endereço específico, apenas escravos têm que ter um endereço.
•Cada escravo deve ter um endereço único no respectivo barramento serial.

Semana 13 REDE MODBUS 25/60


Rede Modbus – Camada de Enlace
•No Modbus em comunicação serial, o endereço é sempre do escravo.
• Na resposta, o escravo põe o próprio endereço no campo para informar ao mestre quem está
respondendo.
• O código de função indica ao escravo que ação realizar, esse código pode vir seguido pelo campo de
dados que contém parâmetros de requisição e resposta.
• Verificação de erros utilizam o “Redundancy Check” calculado sobre o conteúdo da mensagem. Dois
tipos de cálculo são usados a depender do tipo de transmissão RTU (binário) ou ASCII.
• O quadro Modbus é:

Semana 13 REDE MODBUS 26/60


Rede Modbus – Camada de Enlace
•O mestre Modbus pode ser implementado através da seguinte máquina de estado:

Semana 13 REDE MODBUS 27/60


Rede Modbus – Camada de Enlace
•O escravo Modbus pode ser implementado através da seguinte máquina de estado:

Semana 13 REDE MODBUS 28/60


Rede Modbus – Camada de Enlace
•O algorítmo utilizado no Modbus é semelhante ao stop n’ wait.

Semana 13 REDE MODBUS 29/60


Rede Modbus – Camada de Enlace
•O modo de transmissão definem o conteúdo dos
campos da mensagem transmitida serialmente
no barramento, podendo ser de duas formas:
RTU (Remote terminal Unit) ou ASCII.
•O modo de transmissão define como a
informação é empacotada dentro dos campos e
decodificada.
•O modo de transmissão necessita ser igual em
todos os dispositivos de um barramento
modbus, inclusive os parâmetros da porta serial.
•O modo de transmissão pode ser configurado
pelo usuário, mas por padrão é definido como
RTU.

Semana 13 REDE MODBUS 30/60


Rede Modbus – Camada de Enlace
•Em geral o modo ASCII é mais utilizado no momento da configuração da rede.
•As informações em ASCII são mais fáceis de serem interpretadas por quem configura a rede.
•Ao final da configuração da rede é possível chavear todos os equipamentos para funcionar em
RTU.

Semana 13 REDE MODBUS 31/60


Rede Modbus – Camada de Enlace
•No RTU:
• Cada byte transmitido é composto por 2 nibble
em hexadecimal.
• Tem como principal vantagem maior densidade de
dados permitindo maior vazão de dados em
relação ao modo ASCII utilizando a mesma taxa de
baud.
• Cada mensagem necessita ser transmitida em um
fluxo contínuo de caracteres (hex).
• Apesar da utilização do CRC no nível de aplicação,
é possível a utilização de paridade por byte no
RTU.
• Caso não seja utilizado o bit de paridade é
entendido como outro stop bit.

Semana 13 REDE MODBUS 32/60


Rede Modbus – Camada de Enlace
•O RTU respeita o padrão RS-485 em que o
formato de cada “byte” (11 bits) no modo RTU
é:
• Sistema de codificação: 8 bits.
• Bits por “byte”:
• 1 start bit;
• 8 bits de dados (LSB primeiro – na aplicação é big endian já no
enlace se torna litte endian).
• 1 bit verificação de paridade (padrão paridade par).
• 1 stop bit.

Semana 13 REDE MODBUS 33/60


Rede Modbus – Camada de Enlace
•Exemplo da forma como a informação é transmitida:

Semana 13 REDE MODBUS 34/60


Rede Modbus – Camada de Enlace
•Com vários “bytes” RTUs é possível compor um frame RTU.

•O tamanho máximo de um frame RTU é 256 bytes.

Semana 13 REDE MODBUS 35/60


Rede Modbus – Camada de Enlace
•Uma mensagem é transmitida em um frame com um início e fim pré-definido (> 3,5 char em que
o char é o tempo necessário para transmitir um caracter).
•Isso permite que um dispositivo saiba quando uma mensagem está completa ou incompleta.
•Mensagens parciais devem ser detectadas e um erro deve ser gerado como resultado.

Semana 13 REDE MODBUS 36/60


Rede Modbus – Camada de Enlace
•Uma mensagem inteira é enviada em um fluxo contínuo de bytes (caracteres hex).
• Se um intervalo de silêncio > 1,5 char (12 bits) ocorrer, o quadro é declarado como incompleto e deve
ser descartado pelo recptor.
• Para uma taxa de baud maior que 19200 bps, valores fixos de 2 tempos devem ser usados: é
recomendado utilizar t1,5 = 750 ms e t3,5 = 1750 ms, nesse caso.

Semana 13 REDE MODBUS 37/60


Rede Modbus – Camada de Enlace
•O diagrama de estados de uma transmissão RTU é dado por:

Semana 13 REDE MODBUS 38/60


Rede Modbus – Camada de Enlace
•No modo de Transmissão ASCII – (American
Standard Code for Information Interchange)
•Cada byte transmitido é composto de dois
caracteres ASCII.
•Esse modo é usado quando a comunicação
física, ou a capacidade do dispositivo, não
permite a conformidade com os requisitos de
restrição de tempo do modo RTU.
• Também utilizada na fase de comissionamento e
validação da rede (comandos mais legíveis). Ex:
Byte 5B é codificado em dois caracteres 0x35 (5)
e 0x42 (B), referente a tabela ASCII.

Semana 13 REDE MODBUS 39/60


Rede Modbus – Camada de Enlace
•O padrão do “byte” no ASCII é:
• Sistema de codificação: hexadecimal, caracteres
ASCII 0-9, A-F (um caracter hexadecimal contem 4-
bits de dados com caracter ASCII da mensagem).
• Bits por byte:
• 1 start bit;
• 7 bits de dados, menos significativo enviado primeiro;
• 1 bit de paridade;
• 1 stop bit.

Semana 13 REDE MODBUS 40/60


Rede Modbus – Camada de Enlace
•Com vários “bytes” ASCII é possível compor um frame ASCII.

•O char de start do frame é o dois pontos “:”, representado pelo código 0x3A.
•O fim do frame é indicado pelo CR, carriage return, representado por 0x0D e pelo LF, line feed,
representado por 0x0A.
•O tamanho máximo de um frame ASCII é 513 caracteres.

Semana 13 REDE MODBUS 41/60


Rede Modbus – Camada de Enlace
•O diagrama de estados de uma transmissão ASCII é dado por:

Semana 13 REDE MODBUS 42/60


Rede Modbus – Camada de Enlace
•O modo RTU é mais rápido e previsível que o
modo ASCII, por se tratar de uma rede com
tempos pré-determinados e atreladas ao baud
rate.
•O modo ASCII se torna mais aleatório devido a
espera de um caractere específico, sem tempos
predeterminados.
•Não é conveniente manter uma rede modbus
utilizando o modo de transmissão ASCII, o
mesmo deve ser utilizado para
comissionamento, diagnóstico de erros e
outras atividades realizadas manualmente na
rede.

Semana 13 REDE MODBUS 43/60


Rede Modbus – Camada Física
•Novas implementações de Modbus em redes
seriais devem ser implementadas utilizando o
padrão EIA/TIA-485, também conhecido como
RS-485.
• Comunicação em sistemas ponto a ponto ou
multiponto.
• Configuração com 2 fios ou 4 fios.

•Há também a implementação no RS-232.


•Em um sistema Modbus padrão, todos os
dispositivos são conectados em paralelo em um
cabo com 3 condutores (configuração 2 fios +
comum).
•Normalmente há transmissão half-duplex a
uma taxa de 9600 bps.
Semana 13 REDE MODBUS 44/60
Rede Modbus – Camada Física
•Pelo fato da transmissão ser assíncrona, é
comum períodos nos quais não existem
informações trafegando pelo barramento.
•Para evitar que o ruído eletromagnético, em
momentos como esse, sejam interpretado
como transmissões, é aplicado uma tensão de
5 V na rede, através da utilização de resistores
de pull-up e pull-down.
•Também são utilizados cabos e conectores
blindados para reduzir a interferência
eletromagnética.

Semana 13 REDE MODBUS 45/60


Rede Modbus – Camada Física

Semana 13 REDE MODBUS 46/60


Rede Modbus – Camada Física
•A conexão pode se dar:
• Diretamente no cabo principal, formando uma topologia Daisy chain.
• Usando conector TAP passivo com cabo de derivação.
• Usando conector TAP ativo com cabo específico.

Semana 13 REDE MODBUS 47/60


Rede Modbus – Camada Física
•Topologia a dois fios:

Semana 13 REDE MODBUS 48/60


Rede Modbus – Camada Física
•Para aumento da taxa de transmissão é possível utilizar a topologia a 4 fios:

Semana 13 REDE MODBUS 49/60


Rede Modbus – Camada Física
•O RS-485 limita o número de dispositivos sem
repetidor a 32. Dependendo de:
• Todos os endereços possíveis.
• Capacidade de fornecimento de energia no
barramento RS-485 pela unidade de carga.
• Da necessidade do barramento ser polarizado.

•A topologia em daisy-chain ou com pequenos


cabos de derivação necessita sempre terminação
no final do barramento.
• Esse resistor são conectados nas extremidades do
barramento e são de 150 ohms e 0,5 W.
• No caso de sinais polarizados entre os condutores, a
melhor solução é utilizar um resistor de 120 ohms E
0,25 W em série com um capacitor de 1 nF para
evitar ruídos no momento em que não transmissão.

Semana 13 REDE MODBUS 50/60


Rede Modbus – Camada Física
•O tamanho máximo entre os finais do
barramento são limitados em função de:
• Taxa de baud;
• Capacitância ou impedância do cabo;
• Número de dispositivos no barramento;
• Configuração da rede (2 ou 4 fios).

•Ex: Para 9600 baud, AWG 26 gauge, o tamanho


máximo é de 1000 m.
• Derivações são toleradas a no máximo 20 m.

•O aterramento tem que ser conectado


diretamente ao ponto de referência da rede e
deve ser, preferencialmente, conectado no
mestre.

Semana 13 REDE MODBUS 51/60


Rede Modbus – Camada Física
•Conectores – padrão 2 fios:

Semana 13 REDE MODBUS 52/60


Rede Modbus – Camada Física
•Conectores – padrão 4 fios:

Semana 13 REDE MODBUS 53/60


Rede Modbus – Camada Física
•O cabeamento de barramento Modbus Serial é
necessariamente blindado (shielded).
•O cabeamento em RS-485 tem que usar um par
balanceado (D0-D1) e um terceiro fio (comum).
•No padrão 4 fios, utiliza-se um segundo par
balanceado (RXD0-RXD1).
• É possível a utilização dos 4 pares do cabo CAT5
(máx 600m).

•Para minimizar erros de ligação no cabeamento,


um código de cores é recomendado para os fios
em cabos Modbus RS485.

Semana 13 REDE MODBUS 54/60


Rede Modbus – Camada Física
•Para um diagnóstico visual, o status de comunicação e do dispositivo tem que ser indicados por
LEDs, em dispositivos Modbus.

Semana 13 REDE MODBUS 55/60


Rede Modbus – Camada Física
•Fabricantes de produtos modbus precisam
fornecer informações ao usuário para previnir
qualquer erros de conexão, cabeamento ou má
utilização dos acessórios.
•O manual do usuário de qualquer dispositivo
Modbus devem incluir:
• Todas as requisições implementadas;
• Os modos de operação;
• Os diagnósticos visuais;
• Os registradores acessíveis e as funções de código
suportadas;
• Regras de instalação.

Semana 13 REDE MODBUS 56/60


Rede Modbus – Camada Física
•Cada dispositivo Modbus Serial deve respeitar todos os requisitos mandatórios de uma mesma
classe de implementação.
•Duas classes são propostas: Básica e Regular (tem que prover capacidade de configuração).

Semana 13 REDE MODBUS 57/60


Vantagens
•Bastante utilizado, com muitas
implementações disponíveis.
•Flexível.
•Especificação disponível livremente.
•Sua arquitetura de requisição-resposta
fornece acknowledgement no nível da
aplicação.

Semana 13 REDE MODBUS 58/60


Desvantagens
•O paradigma de requisição-resposta subutiliza a
rede ou complica o código da aplicação.
•Alto consumo de recursos da rede.
•O tamanho limitado dos pacotes aumenta o
consumo de recursos da rede e reduz a taxa
máxima de polling.
•O streaming de dados é difícil ou impossível.
•Não há suporte nativo a tipos de dados além de
bits e inteiros de 16 bits não sinalizados.
•Não incorpora recursos de segurança.
•Requer arquitetura de polling.

Semana 13 REDE MODBUS 59/60


Dúvidas?

Semana 13 REDE MODBUS 60/60

Você também pode gostar