Este artigo visa auxiliar no desenvolvimento de projetos de automação utilizando o Arduino UNO, juntamente com o software SCADA Action₀NET. Apresentamos conceitos introdutórios para que o usuário possa criar aplicações cada vez mais elaboradas.


Definição do hardware


Utilizamos como hardware um sistema composto por um Arduino UNO, um led, e uma resistência com um valor de 280Ω. O objetivo deste projeto é desenvolver um sistema em que o usuário pode efetuar o acionamento do led.


KUxpZy2FnoU-tq-OUaKBiFhqRJ-VI7zv_Q.png


Código para o Arduino  


Inicialmente, inclua as bibliotecas necessárias para que o código a ser inserido no Arduino UNO funcione adequadamente por meio do protocolo Modbus. Esta se encontra no pacote anexo a este artigo (ModbusSlave.zip). Para incluir a biblioteca, abra o programa de configuração do Arduino, acesse Sketch > Incluir Biblioteca > adicionar biblioteca.ZIP e busque a pasta a qual se localiza a biblioteca.


Na mesma pasta na qual se encontra a biblioteca está o código do Arduino deste artigo. 


No início do código, encontram-se as definições das bibliotecas importadas:


#include <modbus.h>

#include <modbusDevice.h>

#include <modbusRegBank.h>

#include <modbusSlave.h>  


Em seguida, declaram-se dois parâmetros das bibliotecas modbusDevice e modbusSlave:


modbusDevice regBank;

modbusSlave slave;


Na função setup(), listam-se informações na seguinte ordem: a função responsável por definir o endereço de identificação do escravo, o endereço da variável de saída, velocidade da comunicação serial e a saída física do Arduino.


void setup()

{

regBank.setId(1); 

regBank.add(13);

slave._device = &regBank;

slave.setBaud(9600);

pinMode(13,OUTPUT);

}


O conteúdo da função loop() define a dinâmica de ligar e desligar o led.


while(1){

byte D13 = regBank.get(13); 

if (D13 <= 0 && digitalRead(13) == HIGH)digitalWrite(13,LOW); 

if (D13 >= 1 && digitalRead(13) == LOW)digitalWrite(13,HIGH); 

slave.run();  


Configuração do Action₀NET


Agora iremos realizar a interação do Arduino UNO com o Action.NET. 


Crie um novo projeto. Abra o aplicativo Action₀NET, acesse New Project e, após preencher os dados do projeto, clique em Create New Project. Em seguida, crie uma tag que será usada para controle do led. Acesse Edit > Tags > Objects e configure as colunas citadas como:


Name: Arduino

Type: digital


Em seguida, acesse Edit > Devices > Channels, clique em Create new e configure conforme a imagem:


18VmNcyUATeZCX-xtU9oBoWRB_Gil8_Yow.png


Na linha criada, clique no campo Protocol Options e defina a seguinte configuração:


BdC8NSEKGYELFfvMpOwBnTktBeyaR-Is5w.png


Clique em Settings e defina a configuração de acordo com os seguintes parâmetros:


uBsuLb4LQeNycOATF-DVpBodWH5pyaq2aQ.png


Nota: o campo Com deve ser configurado conforme a porta padrão do Arduino utilizado.


Acesse Edit > Devices > Nodes e clique em New. Siga a seguinte configuração:


1e69RCBwYkpHU5qzOcR0m2TZIZMf_AXerQ.png


Clique no campo PrimaryStation e insira o valor definido para o endereço do slave, neste caso: 1. 


Acesse a coluna Points, e em TagName, insira o nome da tag criada. A linha ficará configurada desta forma:


9KMczqULjMRWObTzmH_rfhpodQaG98mp5Q.png


Um clique no campo Address revelará os tipos de operações próprias do protocolo Modbus:


-P3AyU_RHjDzEk1YFUbaJZ7p0WrgxdwWjA.png


Neste exemplo, será utilizado o tipo Coils. No campo Address, insira o endereço configurado no código anterior (13). Observe a imagem do ponto final:


zjzSaHz0jAyErZZlU1Sq-4CRFXM9DctvYQ.png


Execute a aplicação, acessando Run > Startup. Marque os campos opções conforme a imagem: 


9qTDRjKDqLupZGwov91xcS9GSZOuTZNYeA.png


Clique em Run Startup: a comunicação entre o ActionNET e o Arduino será iniciada.


Na tela Watch, aberta após o final da execução, pode se efetuar o acionamento do led, alterando-se o valor da tag Arduino para 1 ou 0. 


Projeto Default (Arduino)


Anexo a este artigo, há um projeto que pode ser usado como modelo, no qual já se encontram telas configuradas para aplicações desktop e mobile.