ScadaBR Arduino Comunicando através do protocolo TCP/IP

De acordo com os artigos anteriores foi demonstrado para o leitor que, para realizar a interação entre o Arduino UNO e o ScadaBR foi necessário utilizar um protocolo de comunicação chamado Modbus, no entanto, este protocolo possui basicamente duas versões que podem cumprir este papel, estas são: Modbus Serial e Modbus TCP/IP. Vamos então para mais um posto ScadaBR Arduino.

O objetivo deste conteúdo é abordar novamente a questão da comunicação entre o Arduino UNO e o ScadaBR, porém, desta vez, por meio da versão Modbus TCP/IP. Como pode-se perceber, esta abordagem possibilita que as informações provenientes das leituras das variáveis e as utilizadas nos acionamentos, possam ser transmitidas via rede.

 

Produtos Utilizados no Projeto:

 

Montagem Física (Hardware):

Esquemático Projeto para Comunicação ScadaBR com Arduino

 

Desenvolvimento do Código para ScadaBR Arduino:

Neste ponto, serão demonstrados todos os passos para o desenvolvimento do código que deve ser inserido no Arduino UNO para que seja possível realizar as leituras provenientes do sensor DHT11 através do ScadaBR.

O primeiro passo para o estabelecimento da comunicação entre os dois elementos consiste na inclusão das bibliotecas adequadas para a utilização do protocolo Modbus TCP/IP no código do Arduino UNO. As bibliotecas utilizadas neste artigo foram desenvolvidas pelo André Sarmento e estão disponíveis aqui.

O desenvolvimento do código começa com a inclusão da bibliotecas Modbus.h e ModbusIP.h por meio da diretiva #include.

 

 

Em seguida, deve-se criar o objeto do tipo DHT para representar o sensor DHT11 no código do Arduino UNO.

 

 

Como o objetivo desta aplicação é simplesmente realizar a leitura de dados, utiliza-se a instância denominada Input Register. Lembre-se que, neste caso, deseja-se obter tanto os valores de temperatura quanto os de umidade, portanto, duas instâncias do tipo citado devem ser utilizadas para armazenar as informações em questão. Sendo assim, determina-se os offsets das instâncias citadas anteriormente.

 

 

Antes de prosseguir para a função setup(), deve-se criar o objeto do tipo ModbusIP.

 

 

Além disso, declara-se uma variável do tipo long para auxiliar na contagem de tempo para a realização da leitura do sensor (recomenda-se que seja utilizado um valor de aproximadamente 2 segundos na realização das leituras).

 

 

Na função Setup(), pode-se perceber que existem três blocos de código, de modo que, o primeiro diz respeito à configuração dos parâmetros de comunicação do protocolo (deve-se ficar atento apenas à escolha de um endereço de ip compatível com a rede local que está sendo utilizada) e à inicialização da comunicação propriamente dita.

O segundo bloco de código é responsável pela criação das instancias utilizados do tipo Input register, citadas anteriormente.

Por último, deve-se inicializar o sensor DHT11 e preencher a variável ts com o valor proporcionado pela função millis(), para então, realizar a leitura do sensor em intervalos de tempo predeterminados.

 

 

Já dentro da função loop(), encontra-se a função task(), utilizada para gerenciar a comunicação e a troca de dados entre os dispositivos que estão conectados através do protocolo Modbus.

Além da função citada, pode-se perceber a existência de uma estrutura condicional IF cujo conteúdo consiste em determinar que seja feita a leitura do sensor a cada 2 segundos. Observe que as funções utilizadas para inserir os dados nas instâncias criadas são: readTemperature() e readHumidity().

 

 

Desenvolvimento da Estrutura de Controle no Scadabr Arduino

Assim como nos artigos anteriores, o primeiro passo para prosseguir com o desenvolvimento de uma aplicação no ScadaBR consiste na criação de um Data source, ou seja, na definição do elemento responsável por fornecer os dados do processo para o ScadaBR.

 

Data Source Criado Scadabr Arduino

 

Posteriormente, deve-se fornecer algumas informações para o ScadaBR visando a identificação do dispositivo e a definição do tempo em que os dados serão atualizados no ScadaBR Arduino (esta informação é muito importante, sendo assim, torna-se fundamental que o leitor tenha conhecimento da aplicação que está desenvolvendo para que a escolha deste parâmetro resulte em um funcionamento eficaz do projeto).

Além destas configurações, deve-se especificar também os parâmetros relativos à comunicação, como por exemplo: o Tipo de transporte utilizado e também o Endereço IP do Arduino UNO.

 

Propriedades do Data source Scadabr Arduino

 

Após a determinação do Data source deve-se criar os Data points correspondentes aos elementos de hardware que serão utilizados. Inicialmente, cria-se um novo Data point para interagir com a instância do tipo Input register denominada TEMP_IREG e em seguida deve-se definir seus campos da seguinte forma:

 

  • No campo Faixa do registro deve-se selecionar a opção Input register.
  • O campo Tipo de dados modbus estará automaticamente definido como Inteiro de 2 bytes sem sinal.
  • Deve-se atribuir o valor 0 ao campo Offset, devido ao fato de o Input register TEMP_IREG ter sido a primeira instância deste tipo a ser adicionada no código (lembre-se que a ordem começa a ser contada a partir do 0 e não do 1).
  • Lembre-se de deixar a caixa de seleção desmarcada para que o Data point não possa ser alterado manualmente.

 

Data point Temperatura Scadabr Arduino

 

O segundo Data point a ser criado servirá para interagir com a instância do tipo Input

register denominada UMI_IREG. Seus campos devem ser definidos da seguinte forma:

 

  • No campo Faixa do registro deve-se selecionar a opção Input register.
  • O campo Tipo de dados modbus estará automaticamente definido como Inteiro de 2 bytes sem sinal.
  • Deve-se atribuir o valor 1 ao campo Offset, devido ao fato de o Input register UMI_IREG ter sido a primeira instância deste tipo a ser adicionada no código (lembre-se que a ordem começa a ser contada a partir do 0 e não do 1).
  • Lembre-se de deixar a caixa de seleção desmarcada para que o Data point não possa ser alterado manualmente.

 

Data Point Umidade Scadabr Arduino

 

A figura a seguir mostra como os Data points estão organizados os após a criação realizada anteriormente. Neste momento, deve-se habilitar o Data point clicando no ícone adequado, conforme apresentado na figura abaixo.

 

Data points criados Scadabr Arduino

 

Neste momento o leitor deve acessar a Watch list para conferir se o Data Point em questão foi criado e clicar na seta para visualizar o conteúdo dos Data points criados.

 

Data points em funcionamento Scadabr Arduino

 

 

Este foi mais um conteúdo que preparamos com bastante cuidado para você. Esperamos que tenha gostado do artigo “ScadaBR Arduino Comunicando através do protocolo TCP/IP”. Lembre-se de deixar suas dúvidas, críticas e sugestões nos comentários abaixo.

Conheça toda Linha de Produtos Arduino no Site UsinaInfo.

Categorias
ScadaBR

Engenheiro eletricista graduado com ênfase em Controle e Automação pela Universidade Federal do Espírito Santo - UFES e Técnico em Eletrotécnica pelo Instituto Federal do Espírito Santo - IFES. Parceiro do site UsinaInfo.
3 Número de Comentários
  • maria luiza
    14 julho 2017 at 19:16
    Deixe seu Comentário

    Nossa muito bom este artigo!
    Parabéns”
    Voltarei sempre aqui!

  • elvis
    30 dezembro 2017 at 14:17
    Deixe seu Comentário

    Funciona bem de mais!!!
    Muito obrigado!

  • Celso \Iha
    26 maio 2020 at 00:18
    Deixe seu Comentário

    Daniel
    Muito bom seu projeto funcionou muito bem.
    Como usamos DHT22 que tem precisão de uma casa decimal.Quando Lemos no SCADAbr ele perde essa precisão.
    Tem como ter essa casa decimal de precisão?

  • Deixe seu Comentário

    *

    *

    Sobre nós

    Hoje a Usinainfo é um dos maiores ecommerces de Ferramentas, Peças para Eletrônica, Componentes Eletrônicos, Sensores e Arduino do Brasil, contando com uma grande diversidade de produtos na linha de eletrônica.

    Sugestões

    Artigos Relacionados