Você está na página 1de 12

Seminário de Rede Industriais

Modbus TCP

Celso Semenssi 11717995


Heitor Uttembergue 11718890
Rafael Frediani 11719231
Introdução ao Modbus TCP
Modbus é um protocolo de comunicação para transmissão de
informações entre dispositivos eletrônicos em linhas seriais (versão original) ou
via Ethernet, e é comumente usado em automação de processo e
fábrica. Embora seja um protocolo aberto e qualquer pessoa possa usá-lo,
“Modbus” é uma marca registrada da Schneider Electric USA, Inc. (atual
proprietário da marca Modicon). 
A organização Modbus.org foi criada para promover o uso do Modbus e
a Schneider Electric tem sido sua parceira. Este artigo é uma introdução ao
Modbus e suas funções básicas— Modbus.org tem ampla cobertura sobre
Modbus, as especificações para os vários tipos de Modbus, software, teste,
código de interface e muito mais. A Internet também tem tutoriais disponíveis e
informações específicas sobre implementações Modbus de dispositivos
individuais.
O protocolo serial Modbus (a versão original) é um protocolo mestre /
escravo, por exemplo, um mestre que controla as transações de dados Modbus
com vários escravos que respondem às solicitações do mestre para ler ou
gravar dados nos escravos. O Modbus TCP, também conhecido como Modbus
TCP / IP, usa uma arquitetura cliente / servidor.  Essas arquiteturas de rede
são mostradas nas Figuras 1 e 2.
Em uma rede serial Modbus padrão, há um mestre e até 247 escravos,
cada um com um endereço de escravo exclusivo. O Modbus TCP é
normalmente implementado em uma rede Ethernet e as transações de dados
de um cliente Modbus são direcionadas a um servidor Modbus por meio de um
endereço IP.
O Modbus vem em diversas variedades, incluindo serial RTU, Serial
ASCII, TCP / IP e UDP / IP. Dialetos Modbus, como Enron, Daniel e Pemex
Modbus, surgiram devido a pessoas modificando o Modbus padrão para lidar
com dados de ponto flutuante, dados de inteiro longo e outros requisitos de
dados. Ler a interface Modbus e a documentação do escravo é a chave para
entender e implementar esses tipos de redes Modbus e misturar dispositivos de
diferentes fabricantes na mesma rede Modbus, o que deve ser feito com
cuidado.

O fieldbus original
O protocolo Modbus é o avô dos barramentos de campo modernos. A
popularidade do Modbus se deve à sua simplicidade, abertura e natureza
onipresente - ele é usado em qualquer lugar. Ele resistiu ao teste do tempo e
ainda está chutando depois de quase quatro décadas. O Modbus foi publicado
originalmente pela Modicon em 1979, principalmente para uso com seus
próprios PLCs. Quando a Ethernet industrial apareceu, o Modbus TCP foi
desenvolvido, mantendo muito da simplicidade do Modbus em um invólucro
TCP / IP.

O Modbus é um protocolo da camada de aplicação, independente do


meio de transmissão de dados. As transações de dados são baseadas no
mestre / cliente solicitando dados ou gravando dados no escravo / servidor. As
transações de dados são controladas pelo mestre / cliente e não há dados por
exceção transmitidos no Modbus padrão. Os dados são baseados em registros
de 16 bits que podem conter valores on / off discretos ou inteiros de 16
bits. Algumas implementações usam dois ou mais registradores inteiros para
representar dados flutuantes ou valores inteiros longos. Os dados de
diagnóstico podem ser solicitados por um mestre serial Modbus do escravo, e o
escravo / servidor pode enviar códigos de erro ao mestre / cliente se perceber
que há algo errado com a solicitação recebida. 
As transações de dados do Modbus contêm apenas um código de
função, endereços de registro e dados.
Modbus TCP ou TCP / IP é basicamente Modbus RTU envolvido em um
pacote Ethernet (IEEE 802.3) com o endereço de destino como um endereço
IP usando o protocolo de transação TCP / IP. A porta TCP 502 é reservada
para Modbus, enquanto o novo Modbus / TCP Security usa a porta 802.
Endereçamento e mensagens
O endereçamento de memória Modbus é geralmente organizado em
torno de registros de 16 bits que contêm 16 bobinas ou estados on / off (0/1) ou
valores inteiros em registros de 16 bits (registros de entrada / saída ou de
retenção). Embora alguns dispositivos usem seu próprio endereçamento
Modbus, o endereçamento Modbus típico pode ser visto na Figura 3.
As mensagens do Modbus são baseadas no que é chamado de unidade
de dados de aplicativo (ADU) e Unidade de dados de protocolo (PDU). A
mensagem do Modbus inclui o endereço do escravo / servidor para o escravo /
servidor envolvido, um código de função, endereços de início de dados e os
dados sendo enviados (gravados) ou enviados de volta (lidos) para o mestre /
cliente, com um erro checksum no final (CRC / LRC / Checksum).
O tamanho da PDU serial do Modbus é limitado pela restrição de
tamanho que foi herdada da primeira implementação da rede serial do Modbus
de 256 bytes. Os endereços dos escravos Modbus são limitados a 1-255. Os
endereços 1-247 estão disponíveis para o usuário e os endereços 248-255 são
reservados.
Uma transação típica de dados seriais do Modbus é mostrada na Figura
3. As transações de dados do Modbus TCP são essencialmente as mesmas,
exceto que o endereço do servidor é um endereço IP, há algum overhead de
Ethernet e a soma de verificação de erro é diferente. Os dados do Modbus
podem incluir endereços de dados iniciais, quantidade ou contagem de dados e
dados reais que são lidos ou devem ser gravados. Se o escravo / servidor
Modbus tiver um problema com a solicitação do mestre / cliente, o escravo /
servidor emitirá uma resposta de erro ao mestre / cliente.
No formato de mensagem Modbus TCP / IP, o Modbus PDU é
normalmente incluído no pacote Ethernet e consiste no código de função do
Modbus e na solicitação de dados do Modbus. O endereço do escravo e o
código de erro (CRC) normalmente não são necessários, pois o pacote Modbus
TCP / IP é roteado pela rede para o endereço IP desejado (a menos que haja
uma conexão em uma rede serial), e a verificação de erro é feita como parte do
pacote Ethernet. 
As transações de dados do Modbus são baseadas em código de função,
que informa ao escravo / servidor Modbus que tipo de transação de dados está
ocorrendo. Os códigos de função podem ser divididos em códigos públicos,
códigos de usuário e códigos reservados. Os códigos de função do usuário
podem ser implementados e não são suportados pela especificação
Modbus. Não há garantia de que o código de função do usuário será
exclusivo. Códigos de função reservados são códigos de função usados
atualmente por algumas empresas para produtos legados e não estão
disponíveis para uso público.

Fiação serial e velocidade


O Modbus serial tradicionalmente usa fiação RS-232 e RS-485 para
coletar dados de escravos Modbus. O Modbus original era baseado em RS-
232, mas a necessidade de conectar vários escravos logo expandiu o Modbus
para usar métodos de fiação multiponto. RS-422 foi usado, mas RS-485 é mais
capaz e é mais comumente usado. Um mestre Modbus pode se comunicar com
até 247 escravos Modbus (limitado pela capacidade do driver RS-422/485), que
podem ser PLCs, dispositivos inteligentes, DCS e unidades de telemetria
remota (RTUs), que é onde o Modbus RTU obteve seu nome.
Para conectar mais de dois dispositivos e distâncias maiores que 50 pés,
uma rede de dispositivos multiponto, RS-485 ou RS-422, deve ser usada. Para
redes multidrop, o RS-485 é de longe o mais popular e suporta até 32 nós sem
repetidores em uma faixa de até 4.000 pés (1.200 m).
A velocidade com que as mensagens Modbus são enviadas é conhecida
como taxa de baud (ou bits por segundo) e todos os dispositivos da rede
devem usar a mesma taxa de baud, normalmente 9.600-19.200 Baud, mas
velocidades de rede tão rápidas quanto 115 kb / s não são
desconhecido. Geralmente, quanto maior a velocidade de transmissão, mais
curto é o cabo e mais importante ter os resistores de terminação de
extremidade de rede corretos para minimizar as reflexões (igual ao
componente de resistência da impedância característica do cabo).

Segurança e cibersegurança
Em sistemas de controle como um DCS, quaisquer dados incorretos
podem potencialmente levar a um incidente de segurança, estando ou não
envolvido um sistema instrumentado de segurança (SIS). Portanto, devemos
nos preocupar com a integridade dos dados das transações de dados do
Modbus - os dados corretos, sem erros, indo e voltando de onde deveriam ir. O
Modbus padrão possui recursos de detecção de erros, como paridade, CRC /
LRC e somas de verificação, bem como diagnósticos das interfaces escravo /
servidor ou mestre / cliente. Essas proteções devem ser adequadas para
transações normais de dados, mas não contra ataques de segurança
cibernética ou violações de segurança interna.
O Modbus é comumente usado para ler dados e status do SIS para o
SIS HMI conforme exigido pelo padrão SIS IEC 61511, que normalmente está
no sistema de controle de processo básico (BPCS), geralmente um
DCS. Escrever no SIS via Modbus é menos comum e deve ser feito com
cautela. A falha do link de comunicação Modbus entre o BPCS e o SIS não
deve comprometer a integridade da segurança das funções de segurança no
SIS. Isso também significa que deve haver disposições para proteção contra a
gravação de dados incorretos do BPCS ou de outras fontes no SIS. Essa
mesma lógica deve ser aplicada a qualquer camada de proteção independente
(IPL) que usa Modbus.
O Modbus foi projetado para ler e gravar dados e não para
funcionalidade crítica de segurança. O uso de Modbus para ações críticas de
segurança deve ser avaliado quanto ao risco e, se for usado, proteções devem
ser implementadas para garantir a integridade de segurança dos dados do
Modbus que desempenham uma função crítica de segurança. O uso de links
de comunicação como Modbus no SIS é coberto pela IEC61511-1. 
Essencialmente, a falha do link Modbus não pode afetar a integridade de
segurança do SIS. As falhas potenciais incluem falhas causadas por uma
violação de segurança que afetam os dados do Modbus e a integridade de
segurança do SIS. Os relatórios técnicos do ISA sobre fieldbus (TR84.00.07) e
cibersegurança (TR84.00.09) fornecem orientação adicional.
Se o sistema de controle e as redes estiverem em conformidade com a
IEC 62443, a exposição das redes Modbus a ataques de segurança cibernética
é reduzida
Por sua natureza com fio, o Modbus serial tem menos exposição à
segurança cibernética do que as comunicações cliente / servidor baseadas em
Ethernet usando Modbus TCP, especialmente quando a Ethernet está
conectada a uma rede de controle de processo maior, que pode ser conectada
à rede corporativa e / ou ao Internet. O Modbus serial pode ser exposto a um
ataque de segurança cibernética no lado do sistema de controle do mestre ou
se ele estiver conectado a uma rede Modbus TCP. Usar o Modbus TCP
baseado em Ethernet sem proteção adicional pode aumentar muito as chances
de uma violação de segurança ser possível.
A exposição à segurança cibernética da rede Modbus TCP pode ser
ainda mais reduzida usando dispositivos de segurança ou firewalls projetados
especificamente para Modbus com inspeção profunda de pacotes.
Um dispositivo de segurança / firewall Modbus deve sempre ser
colocado entre uma rede Modbus TCP e uma rede Modbus serial, e entre
qualquer acesso remoto em uma rede Modbus Ethernet. (Aqui, o termo "firewall
Modbus" significa um firewall ou dispositivo de segurança projetado
especificamente para transações de dados Modbus que tem inspeção profunda
de pacotes, listas brancas e outros recursos de segurança relacionados ao
Modbus.) A Figura 4 mostra um exemplo de rede simples para Modbus TCP /
Serial com Sistemas SIS e divididos em zonas e conduítes de acordo com IEC
62443.
Existem muitas configurações de rede diferentes possíveis e apenas a
parte Modbus das zonas e conduítes são mostradas neste exemplo.

Resolução de problemas do Modbus


Resolução de problemas do Modbus pode ser dividido em duas partes
gerais, Modbus TCP / IP e Modbus Serial. A solução de problemas do Modbus
TCP / IP pode ser dividida em solução de problemas de rede, como certificar-
se de que os pacotes Modbus TCP / IP Ethernet com dados sem erros
cheguem e de onde deveriam ir para realizar as transações desejadas. A
solução de problemas de Ethernet é normalmente uma função de TI, mas pode
ser realizada por outra equipe se uma Ethernet industrial for usada. Uma vez
dentro do dispositivo de destino, a solução de problemas da transação de
dados é normalmente a mesma que em um dispositivo serial Modbus e a
solução de problemas é semelhante.
A primeira pergunta a ser feita ao solucionar problemas em um link
Modbus é se o problema é novo - o link Modbus funcionou no passado ou
nunca funcionou? Se funcionou antes para um link Modbus TCP, isso significa
que a Ethernet e as configurações do dispositivo estão provavelmente OK.
As indicações mais comuns de problemas do Modbus são um timeout de
E / S (uma solicitação de mensagem foi enviada e uma resposta não foi
recebida antes do tempo limite da interface expirar) ou um código de erro foi
recebido do dispositivo escravo / servidor. Isso normalmente seria mostrado
como uma variável de processo PV inválida ou uma indicação de um tempo
limite de E / S no DCS ou HMI. A maioria dos dispositivos Modbus tem luzes de
comunicação que piscam quando o dispositivo está se comunicando e alguns
usam LEDs coloridos para fornecer alguns recursos de solução de problemas.
Se você estiver enfrentando ruído ou problemas intermitentes ou
estranhos com um link serial do Modbus, o problema provavelmente está
relacionado ao aterramento, blindagem incorreta ou fiação dos fios de
alimentação próximos à fiação do Modbus. RS-485 de dois e quatro fios
requerem uma linha comum que seja aterrada em apenas um ponto, além dos
dois ou quatro fios.
Em resumo, o uso do Modbus em sistemas de controle de processo e
automação de fábrica é comum principalmente devido à sua simplicidade e
disponibilidade. O Modbus serial é baseado em uma arquitetura mestre /
escravo, enquanto o Modbus TCP é baseado em cliente / servidor. A
funcionalidade primária do Modbus é ler ou escrever dados entre o mestre /
cliente e escravos / servidores. Os dados do Modbus são baseados em
registros de 16 bits e cabe ao mestre / servidor ou escravo / cliente Modbus
entender o que os dados são e a que se referem.
O Modbus não tem nenhuma proteção inerente contra ataques
inadvertidos ou maliciosos em suas transações de dados de ataques de
segurança cibernética e requer proteções adicionais. O uso de Modbus para
ações críticas de segurança deve ser avaliado quanto ao risco e, se usado em
aplicações críticas de segurança, proteções devem ser implementadas para
garantir a integridade de segurança dos dados do Modbus que desempenham
uma função crítica de segurança.

Você também pode gostar