Software Modbus para teste e depuração

O Modbus é um protocolo de comunicação comumente usado em sistemas de automação industrial, sistemas domésticos inteligentes, redes automatizadas de pequenos objetos (armazéns, estufas, etc.). O protocolo serve para conectar equipamentos de vários tipos a um computador doméstico. O desenvolvimento de projetos como Arduino e Raspberry Pi aumentou significativamente o interesse em tarefas relacionadas à robótica e automação. Tudo isso garante o crescimento da popularidade do Modbus entre amadores e profissionais.

Neste artigo, abordaremos os principais recursos das soluções de software e hardware existentes para testar e depurar dispositivos e redes com base no protocolo Modbus.

Se você estiver familiarizado com a arquitetura do protocolo, poderá pular diretamente para a descrição do software Modbus. Caso contrário, você encontrará uma breve introdução ao Modbus.

Tabela de conteúdo:

  1. Sobre o protocolo Modbus
  2. Desenvolvendo e testando dispositivos Modbus
  3. Depuração de sistemas de automação baseados em dispositivos Modbus
  4. Desafios da comunicação Modbus

Sobre o protocolo Modbus


O Modbus é um protocolo comum usado em sistemas de automação nos níveis médio e baixo (campo). O nível intermediário é o nível dos controladores - dispositivos que coletam dados e controlam o processo tecnológico. O nível de campo é o nível de interação entre sensores e controladores ou sensores e o servidor.

A estrutura típica de um sistema de automação que usa o Modbus como protocolo básico é mostrada abaixo.

Protocolo Modbus

O 'ambiente' padrão para o protocolo Modbus é RS485/422/232. Modbus RTU ou Modbus ASCII trabalha nisso. Nas redes TCP/IP, no entanto, o protocolo de nível superior é o protocolo de transporte TCP e essa variante é chamada Modbus TCP. Neste artigo, falaremos sobre o modo de transmissão Modbus RTU.

O protocolo Modbus é implementado usando um relacionamento mestre-escravo. Isso significa que a comunicação é sempre iniciada por um dispositivo, o mestre, que envia uma solicitação a um escravo (servidor) e aguarda uma resposta. Há sempre um mestre na rede e de 1 a 247 escravos.

O mestre interage com dispositivos escravos no formato solicitação-resposta. A solicitação contém uma sequência de bytes, chamada de quadro, na qual o tempo entre bytes é padronizado dependendo da taxa de transferência de dados e não excede o intervalo durante o qual 1,5 bytes de dados podem ser transmitidos. No modo RTU, as mensagens começam com um intervalo silencioso de pelo menos 3,5 vezes.

Uma mensagem de solicitação é enviada no seguinte formato:

Protocolo Modbus

ID - endereço do dispositivo (1 byte),
FN - Função Modbus (1 byte),
[args] - argumentos da função (N bytes, dependendo da função),
CRC - uma soma de verificação CRC-16 (2 bytes).

O formato de uma mensagem de resposta:

Protocolo Modbus

Como você pode ver, os quadros de resposta e solicitação têm construções semelhantes, exceto o campo Dados, que fornece conteúdo diferente, dependendo da função executada.

Caso a função solicitada não seja suportada pelo dispositivo escravo ou os argumentos no campo [args] da solicitação estejam incorretos para este servidor, no campo FN da resposta, o bit alto será definido como 1 e o campo Data será contém informações adicionais sobre o erro ocorrido.

Além disso, determinados dispositivos escravos podem ter registros específicos com informações adicionais.

Os tipos de registros mencionados nos dispositivos Modbus incluem o seguinte:

Campo Acesso Tamanho Descrição
Entradas Discretas
somente leitura
1 bit
usado como entradas
Saídas de bobinas
leitura/escrita
1 bit
usado para controlar discreto
Registradores de entrada
somente leitura
16 bit
usado para entrada
Mantendo registros
leitura/escrita
16 bit
usado para uma variedade de coisas, incluindo entradas, saídas, dados de configuração, etc.

A descrição completa do protocolo Modbus RTU é fornecida em sua especificação funcional.

Ao configurar uma rede Modbus, um ponto a considerar é que o protocolo permite a transmissão de dados de vários dispositivos a serem recebidos por um único servidor ou controlador que possui um driver Modbus instalado. Um aplicativo serial pode controlar a porta de comunicação de um servidor (por exemplo, COM1) ao receber dados Modbus de vários sensores.

Infelizmente, há uma limitação, pois abrir a porta de recebimento em vários aplicativos simultaneamente pode representar um desafio significativo.

Existe uma solução para esse dilema. Virtual COM Port Driver PRO da Eltima permite a criação de portas virtuais RS485 e a divisão de dados Modbus para que várias portas possam receber os dados ao mesmo tempo.

Experimente o
Virtual Serial Port Driver Pro agora
Avaliação gratuita de 14 dias

Agora você pode duplicar o fluxo de dados que entra em uma porta física para várias portas virtuais. Ao conectar vários aplicativos a cópias virtuais da sua porta COM1, todos os aplicativos podem obter acesso compartilhado à sua porta física.

Desenvolvendo e testando dispositivos Modbus


Ao desenvolver e depurar dispositivos Modbus RTU, os especialistas usam ferramentas especializadas de software e hardware. Quanto aos dispositivos de hardware, a solução mais simples será o conversor RS485/USB. De todos os dispositivos desse tipo, provavelmente a solução mais eficiente é o MOXA UPORT 1130/UPORT 1150. O dispositivo foi projetado para ser fácil de usar e requer habilidades mínimas para ser montado. Existem também soluções mais complexas, como Ethernet/RS-485 (por exemplo, NPORT da MOXA).

Na prática, quando se trata do desenvolvimento de dispositivos Modbus RTU, a função escrava é implementada com mais frequência. Os dispositivos escravos incluem vários sensores, relés controlados, módulos de E/S, etc. Os dispositivos mestre são criados com menos frequência. Nas redes de automação, a função principal geralmente é executada por um controlador, que já possui uma pilha Modbus implementada, ou por um sistema OPC Server/SCADA equipado com um driver Modbus.

Não consideraremos o desenvolvimento da pilha Modbus neste artigo. A única coisa que vale a pena mencionar é a biblioteca FreeMODBUS, com base na qual é bastante fácil criar um dispositivo que suporte as funções escravas Modbus.

Software eficiente para teste Modbus


Os testes podem ser realizados em diferentes níveis de desenvolvimento do dispositivo Modbus. As soluções de software e hardware de teste Modbus diferem dependendo do estágio de desenvolvimento e da finalidade do teste.

Durante o processo de desenvolvimento, uma situação pode surgir quando um dispositivo recebe uma solicitação e responde a ela (isso pode ser indicado pelos LEDs de recepção / transmissão de pacotes, se esses elementos são fornecidos no design, ou detectados usando um depurador e configuração um ponto de interrupção), mas os dados não são exibidos no terminal ou em outro programa especializado. Nesse caso, você precisará de um sniffer de porta serial dedicado.

Serial Port Monitor é um dos melhores softwares de monitoramento Modbus disponíveis atualmente. Esta solução Modbus pode facilmente ler e gravar quaisquer dados seriais que passam pelas portas COM do sistema. A funcionalidade avançada do aplicativo permite capturar dados em tempo real, para que um desenvolvedor possa resolver todos os problemas após a detecção.

O Monitor de porta serial pode funcionar no modo terminal que é emular a transferência de dados de uma porta COM monitorada para um dispositivo inserido nela. Esta opção é especialmente conveniente para o teste de comunicação Modbus, pois permite observar a reação de um dispositivo específico a um comando e dados específicos.

Modbus Tester da Eltima Software

Serial Port Monitor logo

Serial Port Monitor

Registrar e analisar a actividade da porta serial
4.8 Classificação baseado em 41+ usuários, Сomentários(75)
Baixar 14 dias do ensaio totalmente funcional
Serial Port Monitor

O software dedicado é útil quando é necessário não apenas verificar se um dispositivo funciona (ou seja, responder corretamente às solicitações), mas também medir o tempo até a falha.

A solução do testador Modbus permite registrar os fluxos de dados recebidos e recebidos. Além disso, todos os dados coletados podem ser mostrados em diferentes visualizações (tabela, linha, despejo, terminal), o que simplifica a comparação e a análise.

Depuração de sistemas de automação baseados em dispositivos Modbus


Existem muito mais especialistas que depuram sistemas e dispositivos de automação que suportam o protocolo Modbus do que aqueles que desenvolvem esses dispositivos. Portanto, com base nas especificidades das tarefas, os requisitos para o software Modbus serão ligeiramente diferentes.

Se for necessário conectar um controlador a um único dispositivo escravo, você pode estabelecer uma comunicação serial usando o conversor RS-485 / USB, um PC e um software ou terminal especializado. Nesse caso, não há necessidade de testes longos seguidos pela análise de vários arquivos de log. Portanto, a lógica da operação e o conjunto de ferramentas não serão diferentes daqueles usados no estágio de teste do desenvolvimento do dispositivo escravo.

Caso você já tenha uma rede pronta de dispositivos, as seguintes tarefas podem ser diferenciadas:

  • verificar a operacionalidade de todos os dispositivos na rede (ou seja, comunicação com cada dispositivo separado e verificação da exatidão de sua resposta);

  • teste de carga (identificação da capacidade operacional máxima do dispositivo). Recomenda-se realizar várias sessões e analisar os dados coletados em busca de falhas, não respostas, corrupção de dados, etc.

Para realizar essas tarefas, você precisará de um terminal com a capacidade de criar uma lista de solicitações ou de uma ferramenta especializada, como o Modbus Poll, um simulador mestre do Modbus que permite monitorar vários escravos do Modbus e/ou áreas de dados ao mesmo tempo.

Desafios da comunicação Modbus


Alguns dispositivos Modbus podem ter configurações específicas da interface RS-485 (número de bits de dados, paridade, número de bits de parada). Dispositivos com configurações diferentes não podem funcionar na mesma rede com o mesmo mestre. A ferramenta mais conveniente para testar e configurar esses dispositivos é um programa de terminal que suporta troca rápida entre parâmetros de porta pré-instalados ou trabalha com várias linhas simultaneamente.

Outro desafio é fornecer troca de dados com um dispositivo que trabalha com um protocolo diferente da especificação padrão do Modbus RTU. Por exemplo, o protocolo do escravo pode ser logicamente semelhante ao Modbus (estrutura do pacote, tempos limites, etc.), mas usa algumas funções além do padrão.

Nesse caso, será uma boa ideia usar o Modbus Poll, que permite formular solicitações arbitrárias, ou um terminal que suporte funcionalidade semelhante.

O sistema SCADA padrão não é eficiente para trabalhar com esses dispositivos e a comunicação com o equipamento é estabelecida através de um servidor OPC especial.

Serial Port Monitor

Requisitos: Windows (32-bit e 64-bit): XP/2003/2008/Vista/7/8/10, Windows Server 2012, Windows Server 2012/2016/2019 , 9.16MB tamanho
Versão 7.0.342 (16/01/2018) Notas de versão
Categoria: Serial Port Software