O Modbus é um protocolo de comunicação amplamente utilizado na indústria para transmitir dados entre dispositivos eletrônicos. Ele é empregado em várias aplicações, como automação industrial, controle de processo, transporte e monitoramento remoto. O Modbus é compatível com uma variedade de dispositivos, incluindo PLCs, controladores de processo, sensores, válvulas e outros dispositivos embarcados. Esse protocolo compacto e flexível é amplamente adotado e pode ser adaptado para diferentes meios de comunicação, como linhas seriais, telefone celular, rádios licenciados e satélite. Sua longevidade e versatilidade o tornaram um padrão de fato na indústria.
O protocolo de comunicação serial Modbus foi desenvolvido pela Modicon (agora Schneider Electric) e publicado em 1979 para uso com seus Controladores Lógicos Programáveis (PLCs). As primeiras raízes do Modicon começaram em 1968 com um grupo central de engenheiros liderados por Dick Morley que inventou o primeiro controlador lógico programável.
O Modbus é um padrão aberto, o que significa que os fabricantes podem incorporá-lo em seus equipamentos sem pagar royalties. É o protocolo de comunicação mais difundido na automação industrial e é o meio mais comumente disponível para conectar dispositivos eletrônicos industriais.
O Modbus introduziu o conceito de dados no chão de fábrica. O Modbus tornou possível conectar todo um grupo de dispositivos usando apenas dois fios no controlador. Só isso economizou um grande investimento em fios, mão de obra e tempo de instalação. Em vez de quilômetros e quilômetros de fios conectando centenas de dispositivos, um simples par de dois fios poderia ser encadeado de um dispositivo para o outro. Foi revolucionário para a época.
O Modbus encontrou seu caminho em centenas de milhares – senão milhões – de dispositivos. Você pode encontrá-lo em tudo, desde controladores de válvulas e acionamentos de motores até IHMs e sistemas de filtragem de água. Seria realmente difícil nomear uma categoria de produto em automação industrial ou automação predial que não usa Modbus.
Por que o Modbus teve tanto impacto na indústria de Automação Industrial que ainda sobrevive até hoje como uma das principais redes industriais do século XXI? Aqui estão as três chaves principais para o seu sucesso:
Outra razão pela qual o Modbus foi tão bem-sucedido foi que ele poderia ser facilmente entendido por não programadores. A simplicidade levou a uma quantidade incrível de atividade e propagação do Modbus em muitos setores diferentes em todo o mundo.
A estrutura padrão de uma solicitação Modbus e uma resposta Modbus é idêntica para todas as formas de mensagens Modbus. Essa estrutura começa com um byte indicando a função que o servidor deve executar e termina com o último byte de dados da mensagem.
Os componentes gerais de uma mensagem Modbus são os seguintes:
Código de Função (FC) | O código de função identifica a solicitação ao servidor Modbus. Há um grande número de solicitações de mensagens possíveis, mas cerca de oito são comumente usadas. |
Endereço Inicial | O endereço inicial é o índice na área de dados no dispositivo Modbus. Se o código de função visa bobinas, este campo especifica o índice das bobinas (bits) do espaço de endereço da bobina. Se a função se aplica a registradores, este campo especifica o índice nos registradores para aquela parte do espaço de endereço. Nota: Os espaços de endereço Modbus são baseados em um – o primeiro registro ou bobina é um. O protocolo Modbus é baseado em zero. O primeiro registrador ou bobina é zero. O endereço no fio é sempre um a menos que o endereço na solicitação de dados Modbus. |
Comprimento do bit | O número de bits a serem lidos ou gravados. |
Contagem de palavras | O número de registradores a serem lidos ou gravados. |
Contagem de bytes | O número de bytes de dados incluídos na solicitação ou resposta da mensagem. |
Código de resposta | Este byte indica a conclusão bem-sucedida da solicitação de mensagem. É idêntico ao pedido de mensagem original. |
Resposta de Exceção (FC) | Uma resposta de exceção é indicada pela combinação do Código de Resposta da Solicitação de Função Modbus original com 80 hexadecimais. Por exemplo, uma resposta de exceção do Modbus para o Código de função 3 é 83 hexadecimais. Um único valor de byte de dados com o código de erro Modbus sempre segue o byte de resposta de exceção. |
Os fornecedores de CIP Security são obrigados a oferecer suporte a ambos os modelos de confiança. Os usuários finais podem decidir o que faz mais sentido para suas instalações e comissionar seu dispositivo adequadamente.
Três novos objetos
Todas as tecnologias Common Industrial Protocol™ (CIP) – EtherNet/IP™, CompoNet™, ControlNet™ e DeviceNet™ – são tecnologias baseadas em objetos. Isso significa que os usuários interagem com os dispositivos CIP interagindo com os objetos implementados nesses dispositivos.
Existem três novos objetos implementados para oferecer suporte à segurança CIP: o objeto CIP Security, o objeto de gerenciamento de certificados e o objeto de segurança EtherNet/IP.
Como tudo no Modbus, a representação de dados é simples. Existem apenas dois tipos de dados no Modbus: bobinas e registradores.
A forma como movemos uma mensagem de uma estação para outra é chamada de Camada de Transporte. Agora, a Camada de Transporte pode ser complicada. Você pode usar qualquer transporte que desejar. A sequência de mensagens Modbus é uma sequência de mensagens Modbus independentemente de você enviá-la em Ethernet, RS232 ou RS485. O transporte é simplesmente o mecanismo que você usa para mover a mensagem do remetente para o destinatário.
Existem vários transportes padrão usados para mover mensagens do protocolo Modbus: RS-232, RS-485 e Ethernet. Você pode usar outros, mas esses são os mais comuns.
RS232 significa Recomendar padrão número 232. Esta é a antiga porta serial que costumávamos encontrar em computadores há vários (ok, mais de vários) anos atrás. O padrão RS-232C completo especifica um conector “D” de 25 pinos. Agora, se encontrarmos um conector serial, ele usa os conectores do tipo D de 9 pinos, geralmente referenciados como DB9.
RS485 é um sucessor do RS-232. Funciona de maneira semelhante em relação aos bits de sincronização que sincronizam a transferência de bits de uma estação transmissora para uma estação receptora. Existem, no entanto, duas características definidoras que tornam o RS-485 diferente do RS-232. A primeira é a capacidade de conduzir vários destinos. Os transmissores RS-485 podem sinalizar eletricamente até 32 dispositivos de destino. Isso torna o RS-485 a maneira preferida de transportar mensagens Modbus em série.
A outra característica definidora do RS-485 é a imunidade aprimorada a ruídos. O RS-485 não utiliza o comum elétrico como referência para seu sinal elétrico. Em vez disso, o RS-485 usa um par de fios e aciona um sinal definindo um potencial de tensão no par. Ao fazer isso, qualquer ruído elétrico ambiental afeta ambos os fios igualmente e o potencial entre os dois fios não muda.
As comunicações Modbus sobre Ethernet são conhecidas como Modbus TCP. O Modbus deu um grande passo à frente quando começou a usar a Ethernet como protocolo de transporte. Agora, com o aumento da velocidade da Ethernet, há muito mais largura de banda para enviar muito mais mensagens. Você pode conectar milhares de dispositivos em uma rede Modbus TCP, não apenas os 32 dispositivos como no RS-485, e também pode suportar vários Clientes, não apenas um único Cliente.
A maioria das organizações comerciais especifica um teste de protocolo que deve ser executado com êxito para obter uma declaração de certificação ou logotipo que um fornecedor de dispositivo possa usar para indicar que o dispositivo está em conformidade com a especificação da tecnologia. Por muitos anos, não houve teste de conformidade para produtos Modbus. Um desenvolvedor criaria algo, testaria de alguma forma e o enviaria. Foi deixado para o usuário descobrir o que funcionou e o que não funcionou.
A Organização Modbus acabou resolvendo esse problema. Eles não apenas estabeleceram um procedimento de teste, mas também contrataram a Universidade de Michigan para implementá-lo. Existem agora duas opções para certificação do seu servidor Modbus Dispositivo do servidor Modbus TCP.
Outra coisa a observar sobre o teste do Modbus é que apenas seu dispositivo Escravo ou Servidor pode ser testado. Não há teste para dispositivos cliente. O raciocínio por trás disso é que é muito mais difícil validar a operação do lado do cliente. Além disso, agora apenas os dispositivos do servidor Modbus TCP podem ser testados. O teste de Conformidade Modbus é projetado para dispositivos Modbus TCP Ethernet, não para dispositivos seriais Modbus.
Se você é novo em Modbus ou em segurança, já sabe tudo o que há para saber sobre segurança Modbus: nada. Não há segurança em Modbus, Modbus RTU ou Modbus TCP. Não existe.
Muitas pessoas pensam que só porque têm seu controlador Modbus atrás de um firewall, elas estão protegidas. É verdade que o controlador não está na Internet, mas isso não significa que esteja protegido. Mover-se para trás do firewall apenas move sua vulnerabilidade para um nível acima. Agora, qualquer servidor que esteja do outro lado do firewall autorizado a acessar aquele controlador está vulnerável.
O Modbus não foi construído para segurança. Ele não tem senhas, nem autorizações, nem facilidade para passar certificados ou qualquer outra coisa que seria necessária se você o construísse hoje. Curiosamente, o protocolo Modbus RTU está sendo usado continuamente devido a questões de segurança.
A diferença mais básica entre o Modbus RTU e o Modbus TCP (também conhecido como Modbus IP ou Modbus TCP/IP) é que o Modbus TCP é executado em uma camada física Ethernet e o Modbus RTU é um protocolo de nível serial. O Modbus TCP também usa um cabeçalho de 6 bytes para permitir o roteamento e remover o CRC.
Um cliente Modbus RTU é um barramento de cliente único. Ele envia uma mensagem para um dispositivo servidor RTU e obtém uma resposta. O Modbus RTU é limitado a um único cliente. Apenas um conjunto de sinais pode estar no link RS-485 por vez. O único cliente RTU está transmitindo ou um dos dispositivos cliente RTU está transmitindo.
Com a introdução do Modbus TCP, esse limite foi removido. Com o Modbus TCP, os controladores podem usar a largura de banda na Ethernet com muito mais eficiência para serem clientes de centenas de dispositivos Modbus TCP. Onde o RS-485 tinha uma limitação elétrica de 32 dispositivos, a Ethernet é ilimitada. RAM operacional é a única limitação prática. Com o Modbus TCP, um projetista de rede pode usar vários clientes, se assim o desejar. O Modbus TCP permite vários clientes.
Com o Modbus TCP, você precisa envolver switches de rede. Com o Modbus RTU (serial), você pode encadear todos os dispositivos juntos. Dispositivos com processadores antigos de 8 bits e um pouquinho de memória podem facilmente implementar Modbus serial, mas você precisará de uma plataforma mais cara para implementar Ethernet.
Existem dois modos básicos de transmissão encontrados em conexões Modbus seriais, ASCII e RTU. Esses modos de transmissão determinam a forma como as mensagens Modbus são codificadas. No formato ASCII, as mensagens são legíveis, enquanto no RTU as mensagens estão em codificação binária e não podem ser lidas durante o monitoramento. A desvantagem é que as mensagens RTU são menores, permitindo mais troca de dados no mesmo intervalo de tempo. Deve-se estar ciente de que todos os nós dentro de uma rede Modbus devem ser do mesmo modo de transmissão, o que significa que o Modbus ASCII não pode se comunicar com o Modbus RTU e vice-versa.
No Modbus ASCII, as mensagens são codificadas com valor hexadecimal, representadas com caracteres ASCII abrangentes. Os caracteres usados para esta codificação são 0…9 e A…F. Para cada byte de informação, dois bytes de comunicação são usados porque cada byte de comunicação só pode definir 4 bits no sistema hexadecimal. O Modbus RTU, no entanto, troca dados em um formato binário onde cada byte de dados é codificado em um byte de comunicação.
As mensagens Modbus em uma conexão serial não são transmitidas em formato simples. Eles são construídos de forma a permitir aos receptores uma maneira fácil de detectar o início e o fim de uma mensagem. Os caracteres iniciam e terminam um quadro no modo ASCII. Para sinalizar o início de uma mensagem, dois pontos ‘:’ são usados e cada mensagem é finalizada com uma combinação de Retorno de carro/Avanço de linha.
O Modbus RTU usa um método diferente. Na RTU, o enquadramento é construído medindo os intervalos de silêncio na linha de comunicação. Antes de cada mensagem, deve haver um espaço mínimo de 3,5 caracteres. Para se preparar para novas mensagens, o receptor limpa o buffer quando uma lacuna de 1,5 caracteres é detectada. Uma das principais diferenças entre o Modbus ASCII e o Modbus RTU é que o ASCII permite intervalos entre os bytes de uma mensagem com duração máxima de 1 segundo. Com o Modbus RTU, fluxos contínuos de mensagens devem ser enviados.
Embora o Modbus TCP/IP seja uma especificação técnica totalmente formada para a ampla adoção do Modbus, o padrão de certificação vago e os primeiros a adotar a Ethernet levaram a várias implementações não padronizadas que ainda estão presentes no mercado. Se você vir Modbus Ethernet ou Modbus over Ethernet listado em um produto, pode ser necessária alguma verificação adicional. Ainda existem vários produtos que apresentam pacotes Modbus RTU padrão encapsulados dentro de um pacote TCP/IP. Esses dispositivos não funcionarão em implementações típicas de Modbus TCP/IP.
INOVEX DIGITAL. Todos os direitos reservados.