Home Soluções Comunicação Modbus entre host e Smart Display com controle de chaves e indicadores

Comunicação Modbus entre host e Smart Display com controle de chaves e indicadores

Oct 26, 2023

Introdução

Comunicação Modbus entre o host e o Smart Display

Para facilitar os primeiros passos dos desenvolvedores com os Smart Displays da WINSTAR e tornar seu funcionamento mais fácil de compreender, continuamos disponibilizando projetos de demonstração práticos para diferentes cenários de aplicação. Neste artigo, apresentamos mais um exemplo com Modbus, desenvolvido para ajudar tanto iniciantes quanto desenvolvedores experientes a compreender rapidamente os conceitos fundamentais dessa comunicação.

O Modbus é amplamente utilizado na automação industrial para comunicação e controle de diferentes dispositivos e sensores. Nesta aplicação, uma placa Arduino atua como controlador host para a integração do sistema. Por meio do Modbus, o Arduino trabalha com diferentes sensores e Toggle Buttons para controlar o Smart Display, o Gauge, o Indicator e os LEDs. Nesta demonstração, é utilizado um Arduino Mega 2560 com um shield RS485 para estabelecer a comunicação Modbus com o Smart Display.

O programa demonstra como ler os valores dos sensores, alternar as páginas de exibição e controlar os LEDs de acordo com as leituras dos sensores por meio dos registradores Modbus.

Diagrama de blocos do sistema
Diagrama de blocos do sistema

 

Os seguintes componentes são necessários para esta aplicação:

  1. Smart Display de 7 polegadas com Modbus
  2. Arduino Mega 2560
  3. Shield RS485 Modbus para Arduino Mega 2560
  4. Arduino IDE v2.0.4
  5. Dongle Modbus RS485
  6. Botão físico
  7. Sensor de ângulo rotativo com resistor variável (Variable Resistor / Rotary Angle Sensor)
  8. LED
  9. GUI Builder v0.4.2 ou posterior
 

A demonstração é dividida em três etapas:

  1. Criar o projeto de demonstração no GUI Builder.
  2. Compilar e carregar o projeto.
  3. Programar o host Arduino.
 

Criar o projeto de demonstração no GUI Builder

Primeiro, abra uma versão atualizada do GUI Builder e crie um novo projeto. Insira o nome do projeto e verifique a pasta de destino selecionada automaticamente por padrão. Em seguida, selecione o tipo de dispositivo correspondente ao Smart Display de 7 polegadas utilizado nesta demonstração e escolha o protocolo de comunicação. Mantenha a orientação da tela no modo paisagem padrão, selecione « Blank » em UI Template e, por fim, clique em « Create » para criar o novo projeto, conforme mostrado abaixo.

Criar o projeto de demonstração no GUI Builder - 1

 

Após a criação do projeto, a página a seguir será exibida.

Criar o projeto de demonstração no GUI Builder - 2

 

De acordo com o cenário desta demonstração, é necessário adicionar uma segunda página. Para isso, clique no botão « Page » e, em seguida, no botão « + ».

Criar o projeto de demonstração no GUI Builder - 3

 

Um plano de fundo personalizado pode ser selecionado no painel Resource.

Criar o projeto de demonstração no GUI Builder - 4

 

O estilo do plano de fundo também pode ser selecionado diretamente na seção Page.

Criar o projeto de demonstração no GUI Builder - 5

 

Em seguida, retorne à primeira página e acesse a seção Controls. De acordo com o cenário da demonstração, selecione o Toggle Button e arraste-o para a área de layout da página. Repita o mesmo procedimento para adicionar os widgets Gauge e Indicator.

Criar o projeto de demonstração no GUI Builder - 6

 

Compilar e carregar o projeto

Após concluir as etapas anteriores, criando duas páginas e adicionando os widgets Toggle Button, Gauge e Indicator à primeira página, o projeto pode ser compilado e carregado no Smart Display. Acesse a seção Page Info, clique em « Device » e selecione « Device Properties ». Verifique o protocolo configurado, selecione a porta COM e defina a taxa de transmissão (baud rate). Em seguida, clique em « Connect to device » para estabelecer a conexão com o Smart Display. Por fim, clique em « Upload » para carregar o projeto, conforme mostrado abaixo, e aguarde a conclusão do processo.

Compilar e carregar o projeto - 1

 

Quando o carregamento do projeto for concluído, clique em « OK », conforme mostrado abaixo.

Compilar e carregar o projeto - 2

 

Após a conclusão do carregamento, a tela inicial será exibida conforme mostrado abaixo.

Compilar e carregar o projeto - 3

 

Após a tela inicial, o Smart Display muda automaticamente para a primeira página do projeto. Com isso, o processo de compilação e carregamento do projeto por meio do GUI Builder está concluído, conforme mostrado abaixo.

Compilar e carregar o projeto - 4

 

Programar o host Arduino

A figura abaixo apresenta os endereços de registradores e as principais definições utilizadas no programa desenvolvido no Arduino IDE. O programa começa definindo os pinos do botão físico, do sensor de ângulo rotativo com resistor variável e dos LEDs. Em seguida, a comunicação Modbus é inicializada por meio da biblioteca ModbusMaster. Também são definidos os endereços dos registradores Modbus utilizados para alternar as páginas do display e controlar os widgets Indicator, Gauge e Toggle Button.

Programar o host Arduino - 1

 

Para compreender melhor o processo de comunicação, consulte a seção Test Device ou Simulator do log de comunicação do GUI Builder. Nela, é possível verificar como ocorre a comunicação entre o dispositivo host e o Smart Display via Modbus RS485.

A figura abaixo apresenta os dados do log de comunicação do « Toggle Button ». Esses dados permitem identificar o endereço utilizado para acessar o widget no Smart Display. O segundo byte do campo Data Byte contém o valor hexadecimal 00 06, que corresponde ao endereço do Toggle Button. Convertido para decimal, esse valor é igual a 6. Esse endereço pode ser utilizado para gravar dados no widget. Nesta aplicação, porém, o Toggle Button é utilizado para a leitura de dados provenientes do Smart Display. Para isso, é utilizado o endereço de registrador « 7 ».

Programar o host Arduino - 2

 

Por que o endereço de registrador « 7 » é utilizado para ler o estado do Toggle Button? Para obter informações mais detalhadas sobre o mapeamento dos registradores e o processo de comunicação, consulte o datasheet do Smart Display Modbus. A imagem abaixo apresenta um trecho do datasheet com os endereços utilizados pelo primeiro objeto (widget), o Toggle Button.

Programar o host Arduino - 3

 

A figura a seguir apresenta os dados do log de comunicação do « Gauge ». Por meio desses dados, é possível identificar o endereço do widget Gauge. O segundo byte do campo Data Byte contém o valor hexadecimal 00 6A, que corresponde ao endereço do Gauge. Convertido para decimal, esse valor é igual a 106. Esse endereço pode ser utilizado para gravar dados no widget Gauge.

Programar o host Arduino - 4

 

A figura a seguir apresenta os dados do log de comunicação do « Indicator ». Por meio desses dados, é possível identificar o endereço do widget Indicator. O segundo byte do campo Data Byte contém o valor hexadecimal 00 CE, que corresponde ao endereço do Indicator. Convertido para decimal, esse valor é igual a 206. Esse endereço pode ser utilizado para gravar dados no widget Indicator.

Programar o host Arduino - 5

 

A constante ADC_REF é definida como 5 V e representa a tensão de referência do ADC (conversor analógico-digital). GROVE_VCC é definida como 5 e corresponde à tensão VCC da interface Grove utilizada no circuito. A constante FULL_ANGLE é definida como 300 e representa o ângulo máximo de rotação do sensor utilizado nesta aplicação, expresso em graus.

Programar o host Arduino - 6

 

Em seguida, são declaradas as variáveis necessárias e seus respectivos tipos de dados, com os valores inicializados em zero.

Programar o host Arduino - 7

 

Na sequência, são configurados os modos dos pinos e os parâmetros dos componentes externos, como o botão físico e os LEDs. Também é definida a taxa de transmissão da comunicação serial, conforme mostrado abaixo.

Programar o host Arduino - 8

 

A figura a seguir apresenta a definição da função « ChangePageFunction ». A função « writeSingleRegister » é utilizada para gravar os dados no registrador Modbus correspondente.

Programar o host Arduino - 9

 

A figura a seguir mostra o processamento do valor do sensor de ângulo rotativo com resistor variável (Variable Resistor / Rotary Angle Sensor). Quando o host Arduino detecta uma alteração no valor do sensor, esse valor é enviado ao Smart Display via Modbus para atualizar o Gauge. Quando o valor do Gauge é inferior a 120, o LED conectado ao pino 13 permanece desligado e o Indicator é exibido em verde. Quando o valor atinge ou ultrapassa 120, o LED é ligado e o Indicator passa para vermelho.

Programar o host Arduino - 10

 

A figura a seguir mostra o processamento do estado do botão físico. Quando o host Arduino detecta uma alteração no estado do botão, o valor correspondente é enviado ao Smart Display via Modbus para alternar a página exibida.

Programar o host Arduino - 11

 

A figura a seguir mostra como o host Arduino lê o estado do Toggle Button a partir do Smart Display via Modbus. De acordo com o valor recebido, o LED conectado ao pino 12 é ligado ou desligado.

Programar o host Arduino - 12

 

Uma parte importante do programa é a utilização das funções « writeSingleRegister » e « readHoldingRegisters ». A função « writeSingleRegister » é utilizada para gravar dados nos registradores do Smart Display, enquanto « readHoldingRegisters » permite ler os dados provenientes do Smart Display. Na comunicação com widgets ativos, como o Gauge, também é necessário considerar um intervalo adequado entre as operações Modbus. Após o envio de uma solicitação e o recebimento da respectiva resposta, a próxima operação pode ser executada. Por isso, o programa utiliza intervalos entre as operações de leitura e gravação.

Programar o host Arduino - 13

 

Após verificar e carregar o programa com sucesso por meio do Arduino IDE, os diferentes cenários da demonstração podem ser executados. Quando o Toggle Button está no estado OFF, o LED externo conectado ao pino 12 também permanece desligado. Quando o Toggle Button passa para ON, o LED é ligado imediatamente, conforme mostrado abaixo.

Programar o host Arduino - 14

 

Neste cenário de demonstração, o Gauge é controlado pelo sensor de ângulo rotativo com resistor variável. Quando o valor do Gauge é inferior a 120, o Indicator é exibido em verde e o LED conectado ao pino 13 permanece desligado. Quando o valor atinge ou ultrapassa 120, o Indicator passa para vermelho e o LED conectado ao pino 13 é ligado, conforme mostrado abaixo.

Programar o host Arduino - 15

 

Neste cenário, também é possível alternar entre as páginas utilizando o botão físico. Ao pressionar o botão pela primeira vez, o Smart Display muda para a segunda página. Ao pressioná-lo novamente, o Smart Display retorna à primeira página, conforme mostrado abaixo.

Programar o host Arduino - 16

 

Com isso, o projeto de demonstração no Smart Display de 7 polegadas está concluído. O exemplo utiliza diferentes sensores e LEDs para alternar as páginas por meio de um botão físico e controlar o Gauge, o Indicator e os LEDs externos. Para baixar o programa e obter mais informações sobre este projeto de demonstração, consulte o programa de demonstração no GitHub.

Observação: para obter mais informações sobre o Modbus RS485 Shield utilizado neste projeto de demonstração, consulte a documentação do Modbus RS485 Shield. A configuração real do hardware é apresentada abaixo.

Programar o host Arduino - 17

 

Conclusão

De modo geral, este programa demonstra, na prática, como utilizar uma placa Arduino e o protocolo Modbus para se comunicar com um Smart Display e controlar diferentes elementos do sistema. O exemplo mostra como ler os valores dos sensores, alternar as páginas de exibição e controlar o Indicator e os LEDs por meio dos registradores Modbus. Dessa forma, o projeto oferece uma introdução prática à comunicação Modbus com um Smart Display, tanto para desenvolvedores iniciantes quanto para profissionais que desejam aprofundar seus conhecimentos sobre essa integração.

Tem perguntas sobre as soluções de displays para a sua empresa? Entre em contato conosco!

Assinar

Receba e-mails sobre novas atualizações da Winstar

Entre em contato conosco

Preço/Ficha de dados/Consulta geral

Suporte técnico

Entre em contato conosco para qualquer informação técnica

go top
Contato
close

Valorizamos sua privacidade

Ao clicar em "Permitir todos os cookies", você concorda com o armazenamento de cookies no seu dispositivo para melhorar a navegação no site, analisar o uso do site e auxiliar nossos esforços de marketing e desempenho. Você pode encontrar mais informações sobre esse assunto em nossa política. Política de privacidade

Valorizamos sua privacidade

A Winstar e certos terceiros utilizam cookies no site www.winstar.com.tw. Os detalhes sobre os tipos de cookies, sua finalidade e as partes terceiras envolvidas estão descritos abaixo e em nossa Política de Cookies. Clique em “Permitir todos” para consentir o uso de cookies e obter a melhor experiência possível em nossos sites. Você também pode definir suas preferências ou rejeitar cookies (exceto os estritamente necessários).

Gerenciar preferências de consentimento

Sempre ativo
Cookies essenciais

Esses cookies são essenciais para permitir que você navegue pelo site e utilize seus recursos, como definir suas preferências de privacidade, fazer login ou preencher formulários.

Cookies de análise

Também conhecidos como "cookies estatísticos", esses cookies coletam informações sobre como você utiliza um site, como quais páginas você visitou e em quais links você clicou. Veja os detalhes.