20
SISTEMAS SUPERVISÓRIOS MECATRÔNICA www.meccomeletronica.com Página 1 SISTEMAS SUPERVISÓRIOS INDUSTRIAIS Em plantas industriais um sistema supervisório faz-se necessário para o acompanhamento de uma produção e um controle centralizado, sendo assim foram elaborados sistemas de interface amigável e eficiente. O sistema SCADA (supervisory control and data aquisition) está entre os melhores sistemas de gerenciamento, informando o usuário em tempo real qualquer evento importante que venha a acontecer em uma planta. Um sistema assim pode ser implantando para atender tanto uma pequena unidade de produção, como grandes áreas industriais, integrando os sistemas lógicos da automação. Por meio de coleta de dados dos processos, onde por muitas vezes afastados geograficamente, as remotas industriais como CPs (controladores programáveis), formatam esses dados e apresentam ao operador em recursos gráficos elaborados, planilhas e gráficos. PRINCIPAIS COMPONENTES DE UM SISTEMA SUPERVISÓRIO Para que o operador obtenha todas informações que compõem uma planta industrial e assim poder acompanhar e controlar em tempo real de execução de uma tarefa, o sistema supervisório dependem de componentes físicos como sensores e atuadores, rede de comunicação, estações remotas e estação de monitoramento central. SENSORES E ATUADORES São dispositivos acoplados aos componentes que convertem parâmetros físicos (pressão, velocidade, temperatura...) em sinais analógicos e digitais, e os atuadores são componentes utilizados para acionar ou desacionar determinados equipamentos durante o processo industrial. REDE DE COMUNICAÇÃO Plataforma de transmissão das informações, onde são considerados alguns requisitos do sistema e distância de transmissão dos dados, sendo feito sob análise e escolhendo o melhor meio de transmissão ethernet, fibras óticas, rádio... ESTAÇÕES REMOTAS onde inicia-se o processo de aquisição e controle dos dados, fazendo leitura dos valores do dispositivo que podem ser digitais ou analógicos, de entrada ou de saída, controlando e atualizando os dados. REDE DE INFORMAÇÃO GERENCIAL integra a rede de supervisão com a de controle, possibilitando ao supervisor da empresa a análise do desempenho da produção. REDE DE SUPERVISÃO E CONTROLE reponde pelo funcionamento do sistema. REDES DE CONTROLE DE CAMPO responsável direta pelo processo de informações do controle em tempo real, podem ser inseridas nesse grupo todas as redes industriais, seja fieldbus, modbus, profibus, devicenet..

SISTEMAS SUPERVISÓRIOS MECATRÔNICAmeccomeletronica.com/site/data/uploads/supervisorio.pdf · SISTEMAS SUPERVISÓRIOS MECATRÔNICA Página 3 PROTOCOLO MODBUS NO ARDUINO Existem diversos

  • Upload
    vuque

  • View
    236

  • Download
    0

Embed Size (px)

Citation preview

SISTEMAS SUPERVISÓRIOS MECATRÔNICA

www.meccomeletronica.com Página 1

SISTEMAS SUPERVISÓRIOS INDUSTRIAIS Em plantas industriais um sistema supervisório faz-se necessário para o acompanhamento de uma produção e um controle centralizado, sendo assim foram elaborados sistemas de interface amigável e eficiente. O sistema SCADA (supervisory control and data aquisition) está entre os melhores sistemas de gerenciamento, informando o usuário em tempo real qualquer evento importante que venha a acontecer em uma planta. Um sistema assim pode ser implantando para atender tanto uma pequena unidade de produção, como grandes áreas industriais, integrando os sistemas lógicos da automação. Por meio de coleta de dados dos processos, onde por muitas vezes afastados geograficamente, as remotas industriais como CPs (controladores programáveis), formatam esses dados e apresentam ao operador em recursos gráficos elaborados, planilhas e gráficos. PRINCIPAIS COMPONENTES DE UM SISTEMA SUPERVISÓRIO Para que o operador obtenha todas informações que compõem uma planta industrial e assim poder acompanhar e controlar em tempo real de execução de uma tarefa, o sistema supervisório dependem de componentes físicos como sensores e atuadores, rede de comunicação, estações remotas e estação de monitoramento central.

SENSORES E ATUADORES

São dispositivos acoplados aos componentes que convertem parâmetros físicos (pressão, velocidade, temperatura...) em sinais analógicos e digitais, e os atuadores são componentes utilizados para acionar ou desacionar determinados equipamentos durante o processo industrial.

REDE DE COMUNICAÇÃO Plataforma de transmissão das informações, onde são considerados alguns requisitos do sistema e distância de transmissão dos dados, sendo feito sob análise e escolhendo o melhor meio de transmissão ethernet, fibras óticas, rádio...

ESTAÇÕES REMOTAS onde inicia-se o processo de aquisição e controle dos dados, fazendo leitura dos valores do dispositivo que podem ser digitais ou analógicos, de entrada ou de saída, controlando e atualizando os dados.

REDE DE INFORMAÇÃO GERENCIAL integra a rede de supervisão com a de controle, possibilitando ao supervisor da empresa a análise do desempenho da produção.

REDE DE SUPERVISÃO E CONTROLE reponde pelo funcionamento do sistema.

REDES DE CONTROLE DE CAMPO responsável direta pelo processo de informações do controle em tempo real, podem ser inseridas nesse grupo todas as redes industriais, seja fieldbus, modbus, profibus, devicenet..

SISTEMAS SUPERVISÓRIOS MECATRÔNICA

www.meccomeletronica.com Página 2

MÓDULOS DE UM SISTEMA SUPERVISÓRIO Dividindo o sistema supervisório em módulos, suas tarefas se tornam mais flexíveis e robustas, ficando disponível conforme a necessidade do usuário. De um modo geral, essas tarefas podem ser divididas em :

Núcleo de processamento Comunicação com CPs/ RTUs Gerenciamento de alarmes Interface gráfica Relatórios Banco de dados Histórico Lógica de programação interna ou controle Comunicação com outras estações Comunicação com sistemas externos.

O SOFTWARE SUPERVISÓRIO INDUSOFT No mercado atual existem diversos softwares SCADA que podem atender a necessidade de qualquer tipo de produção seja de uma pequena linha até grandes sistemas automatizados como Usinas Sucroalcooleiras, empresas dos mais diversos tipos de envases, empresas responsáveis pela geração de alimentos entre outras. O software que utilizado é o INDUSOFT. Esse software SCADA é de fácil integração e pode ser baixado gratuitamente direto do site: http://www.indusoft.com/br/ . E outra facilidade é que no próprio software vem alguns drivers de comunicação que possibilitam a comunicação com sistemas remotos, no qual vamos destaca o Protocolo ModBus. PROTOCOLO MODBUS Desenvolvido pela Modicon na década de 70, trata-se de uma estrutura de mensagem aberta e utilizada para comunicação entre dispositivos mestre-escravo/ cliente-servidor. Vastamente utilizado como protocolo em equipamentos industriais, o protocolo ModBus está presente em: instrumentos e equipamentos de laboratórios, automação residencial e automação naval. Sua simplicidade e facilidade de implementação faz com que sua utilização na automação industrial seja aplicada em diversos padrões de meios físicos como: RS-232, RS-485 e Ethernet TCP/IP, limitando-se a velocidade de comunicação de cada um desses padrões bem como comprimento e numero máximo de dispositivos conectados.

SISTEMAS SUPERVISÓRIOS MECATRÔNICA

www.meccomeletronica.com Página 3

PROTOCOLO MODBUS NO ARDUINO Existem diversos de usuários que fazem uso do protocolo ModBus no Arduino, usando uma biblioteca originalmente desenvolvida por Juan Pablo Zometa, podendo ser alterada para suportar funções ModBus conforme a necessidade do usuário. O código do drive ModBus pode ser baixado nesse LINK, ou no final do artigo, onde estarei disponiblizando o projeto completo para download. O que facilita com que o Arduino possa comunicar com o Sistema SCADA é a comunicação RX/ TX que está no Atmega. EXEMPLO 01 O PROJETO INDUSOFT + ARDUINO Depois de carregar o código exemplo do protocolo ModBus, vamos começar a montar alguns componentes onde vai ser possível a monitoração em tempo real. O circuito que devemos montar como exemplo é bem simples. Vamos demonstrar controle via Indusoft de um Arduino no protocolo de comunicação ModBus.

SISTEMAS SUPERVISÓRIOS MECATRÔNICA

www.meccomeletronica.com Página 4

EXEMPLO 02 Este é um supervisório para Arduíno desenvolvido em C# no SharpDevelop 4.2 . Ele se comunica com o arduíno via comunicação serial, utilizando o protocolo firmata, que é um protocolo genérico para comunicação entre microcontroladores e um computador. Os meios de comunicação são o caso usb (o mesmo usado para fazer a gravação do arduíno) um adaptador bluetooth. O arquivo utilizado para esta simulação se chama standardFirmata . Após instalar vá em exemplos | Firmata | StandardFirmata. Feito isso, é só abrir o programa, e escolher a porta serial do Arduíno. Clique em um pino qualquer, e aparecerá as opções. Os pinos podem ser configurados como saída, entrada(analógica ou digital), PWM(pinos 3, 5, 6, 9, 10 e 11) ou servo.

SISTEMAS SUPERVISÓRIOS MECATRÔNICA

www.meccomeletronica.com Página 5

Recomendável a instalação do net framework v4.0.30319 SISTEMAS DE COMUNICAÇÃO UTILIZANDO PROTOCOLO MODBUS COM SCADABR o ScadaBR consiste em um sistema supervisório completo que por sua vez é disponibilizado em licença Open Source. Além disso, possui suporte para uma vasta gama de protocolos de comunicação, sendo portanto, compatível com um grande número de hardwares dos mais diversos fabricantes, característica essencial para ser utilizado, por exemplo, no campo de controle e automação industrial. O ScadaBR conta com uma história de mais de 70 mil downloads. Amplamente utilizado para desenvolver aplicações automatizadas em qualquer tipo de ambiente: Indústrias, Laboratórios, Automação Predial, Saneamento, Sistemas de Energia. 1. EXEMPLO DE UTILIZAÇÃO O hardware que será utilizado será um Arduino UNO, um led (e o respectivo resistor para o acionamento do mesmo, com um valor de resistência de 280Ω) e um potenciômetro de 4.7kΩ. O objetivo do projeto desenvolvido consiste em produzir um sistema onde o usuário pode definir o valor do PWM a ser utilizado no acionamento do led existente através do potenciômetro, para por exemplo, controlar a intensidade luminosa do mesmo.

SISTEMAS SUPERVISÓRIOS MECATRÔNICA

www.meccomeletronica.com Página 6

CONSTRUÇÃO DO CÓDIGO

Inicialmente deve-se incluir as bibliotecas necessárias para que o código a ser inserido no Arduino UNO funcione adequadamente. Utilizaremos somente a biblioteca desejada para estabelecer a comunicação entre o Arduino UNO e o ScadaBR através do protocolo Modbus. Os arquivos para montagem estão disponíveis em Modbus RTU libraries for Arduino. O código a ser utilizado foi derivado diretamente do exemplo disponível que vem junto com a biblioteca em questão. Portanto, caso o leitor queira, pode apenas modificar o exemplo citado. #include <SimpleModbusSlave.h> Em seguida realizou-se o uso da diretiva #define para associarmos a palavra LED ao pino 9 do Arduino UNO. #define LED 9 Posteriormente pode-se observar um bloco chamado enum, neste estarão escritos os registradores que conterão as informações utilizadas na leitura ou no acionamento de dispositivos. São denominados no ScadaBR como Registradores Holding. Para declará-los basta escrever seus nomes seguidamente. O Registrador Holding é utilizado para conter o valor proveniente do potenciômetro denominado VALOR_POT, enquanto o responsável por armazenar o valor que será utilizado no acionamento do led via PWM é denominado VALOR_PWM. É importante ressaltar que após as declarações dos respectivos Registradores Holding, deve-se escrever HOLDING_REGS_SIZE (informação utilizada pela biblioteca para identificar a quantidade de Registradores Holding que estão sendo utilizados) e em seguida cria-se a variável holdingRegs para a manipulação dos registradores em questão. enum VALOR_POT, VALOR_PWM, HOLDING_REGS_SIZE ; unsigned int holdingRegs[HOLDING_REGS_SIZE]; Na função setup() utiliza-se primeiramente a função modbus_configure() para determinar os parâmetros necessários para estabelecer a conexão via comunicação serial utilizando o protocolo Modbus. Os parâmetros mais importantes para este artigo são o segundo, o terceiro e o quarto que dizem respeito à taxa de transmissão de dados, o formato do pacote utilizado no protocolo Modbus e a identificação do escravo, respectivamente. Note que estes três argumentos citados devem estar em conformidade com as configurações do ScadaBR. Em seguida temos a função modbus_update_comms() que também é responsável pela comunicação via Modbus, enquanto a função pinMode() determina o modo de operação (como saída) do pino onde está conectado o led. void setup() modbus_configure(&Serial, 9600, SERIAL_8N1, 1, 2, HOLDING_REGS_SIZE, holdingRegs); modbus_update_comms(9600, SERIAL_8N1, 1); pinMode(LED, OUTPUT);

O conteúdo da função loop() começa com a função modbus_update() utilizada para a atualização dos valores dos registradores citados anteriormente. Em seguida, realiza-se a leitura da tensão aplicada à porta de entrada analógica A0 e posteriormente o valor encontrado é convertido em um número inteiro contido no intervalo entre 0 e 1023 utilizando a função analogRead() de forma que este é armazenado no Registrador Holding identificado como

SISTEMAS SUPERVISÓRIOS MECATRÔNICA

www.meccomeletronica.com Página 7

VALOR_POT . Por último, temos a função analogWrite() , responsável por acionar o led utilizando PWM (observe que o valor utilizado na largura do pulso está contido no Registrador Holding VALOR_PWM , que por sua vez será preenchido dentro do ScadaBR). void loop() modbus_update(); holdingRegs[VALOR_POT] = analogRead(A0); analogWrite(LED, holdingRegs[VALOR_PWM]);

CONSTRUÇÃO DO DATA SOURCE E DATA POINTS PARA AQUISI ÇÃO DE DADOS

Para a interação do Arduino UNO com o SCADABR, é necessário fazer com que o SCADABR identifique o elemento com o qual irá interagir, chamado dentro do programa de Data source, de modo que para a criação deste é necessário clicar no ícone correspondente presente na barra de ferramentas. Em seguida deve-se estabelecer qual tipo de comunicação existirá entre os 2 elementos. Como dito anteriormente utilizaremos o protocolo MODBUS através da comunicação serial, portanto basta na lista de seleção encontrar a opção Modbus Serial. Posteriormente algumas informações devem ser fornecidas para o SCADABR tanto para identificação do dispositivo escravo quanto para que a funcionalidade seja efetiva. Num primeiro momento o programador deve nomear o dispositivo escravo, bem como definir o tempo em que os dados serão atualizados (esta informação é muito importante, sendo portanto, fundamental que o programador 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 básicas, deve-se especificar mais alguns parâmetros relativos à comunicação estabelecida, como por exemplo: a porta COM utilizada, e a taxa de transmissão utilizada (9600 bps) . Neste momento, o programador deve recordar que ao escrever o código para o Arduino UNO, existiam duas funções dentro da função setup() em que um dos parâmetros era a sigla SERIAL_8N1 . Esta significa que estão sendo utilizados 8 bits para dados e um bit de parada na transmissão da informação entre os elementos, portanto, estas informações devem estar identificadas nos campos data bits e stop bits.

SISTEMAS SUPERVISÓRIOS MECATRÔNICA

www.meccomeletronica.com Página 8

Para conferir se o Arduino UNO foi encontrado, basta pesquisar a existência de um nó. Após esse teste é necessário inserir no SCADABR os registradores holding que foram declarados no código do Arduino UNO. Para realizar este procedimento deve-se criar os chamados data points, clicando no ícone encontrado na extremidade superior direita da figura abaixo. Após esse procedimento, uma nova janela é aberta para que seja possível determinar as propriedades do data point criado. Primeiramente é necessário nomeá-lo (aqui foi utilizado o nome POT) e em seguida definir 3 campos fundamentais: o primeiro é o Faixa do registro onde a opção a ser selecionada deve ser registrador holding, em seguida Tipo de dados modbus determinado como Inteiro de 2 bytes sem sinal e, por último, Offset (este campo, diz ao SCADABR qual dos registradores holding será escrito ou lido, de maneira que o número a ser utilizado vai de acordo com a sequência escrita no código do Arduino UNO, ou seja, como será lido o registrador VALOR_POT e este foi o primeiro a ser escrito na tabela, usa-se o valor 0 no Offset). Observe que ao efetuar a leitura, o SCADABR apresentará um valor que varia de 0 a 1023 conforme esperado, no entanto caso o leitor queira um valor entre 0 e 5V basta utilizar o valor adequado no campo Multiplicador. A figura a seguir mostra como a tabela onde estão organizados os data points ficará após a criação realizada anteriormente. Para habilitar o data point desejado basta clicar no ícone conforme a figura citada.

SISTEMAS SUPERVISÓRIOS MECATRÔNICA

www.meccomeletronica.com Página 9

O próximo passo é criar o data point responsável pelo acionamento do led via PWM. Este procedimento é idêntico ao anterior, exceto por uma diferença no campo Offset que desta vez é preenchido com o valor 1 (já que este refere-se ao segundo registrador da tabela escrita no código do Arduino UNO) e a opção configurável deve ser marcada.

Neste momento o programador deve retornar a watch list (primeiro ícone da esquerda na barra de ferramentas) e clicar nas setas para visualizar o estado dos data points criados.

Observe que nos valores das medições, o data point referente ao PWM mostra o valor 0, enquanto o data point que diz respeito ao valor lido através do potenciômetro possui um conteúdo de fato condizente com a posição do mesmo. Isto acontece porque em nenhum momento o registrador holding responsável por conter o valor a ser utilizado no PWM é atualizado.

CRIAÇÃO DO POINT LINK

Existem algumas maneiras de relacionar o valor a ser utilizado no PWM de acordo com a posição do potenciômetro, de forma que neste artigo esta correspondência será realizada dentro do SCADABR. Para isto é necessário clicar no item point links localizado na barra de ferramentas e adicionar um novo point link, onde o data point de origem é o POT e o de destino é o chamado PWM. O próximo passo é escrever o script que será responsável por proporcionar o valor desejado ao data point PWM, conforme a figura (o valor 51 é a constante de proporcionalidade para converter um valor de 0 a 5V em outro no intervalo entre 0 e 255) e posteriormente salvar (não esqueça de mudar o campo evento para atualização, pois caso este procedimento não seja feito, o valor só irá atualizar quando houver alguma modificação no data point de origem). Neste momento, o leitor pode retornar a watch list e conferir os valores adquiridos por meio do potenciômetro, bem como o responsável por acionar o led.

SISTEMAS SUPERVISÓRIOS MECATRÔNICA

www.meccomeletronica.com Página 10

A figura abaixo exibe o resultado do projeto desenvolvido, onde é possível ver a relação entre a posição do potenciômetro e o PWM gerado (gráfico) além da exibição dos valores referentes aos data points no SCADABR.

2. CRIAÇÃO DE SISTEMAS SUPERVISÓRIOS

O hardware que será utilizado para dar continuidade aos conceitos já demonstrados no artigo anterior será composto por um Arduino UNO, um led RGB(e os respectivos resistores para o acionamento dos mesmos, com valores de resistência de 280Ω), três potenciômetros de 4.7kΩ (responsáveis pelo acionamento do led RGB), um botão para o acionamento on/off de um outro led, além de uma chave seletora para definir os modos de operação automático e manual do sistema.

SISTEMAS SUPERVISÓRIOS MECATRÔNICA

www.meccomeletronica.com Página 11

CONSTRUÇÃO DO CÓDIGO

No decorrer desta seção serão explicados todos os passos utilizados para o desenvolvimento do projeto proposto, isto é, o código será comentado de modo que todo conhecimento aplicado seja facilmente compreendido. Num primeiro momento deve-se incluir as bibliotecas necessárias para que o código a ser inserido no Arduino UNO funcione adequadamente. Neste artigo utilizaremos somente a biblioteca desejada para estabelecer a comunicação entre o Arduino UNO e o SCADABR através do protocolo MODBUS. O código a ser utilizado foi derivado diretamente do exemplo disponível, juntamente com a biblioteca em questão. Portanto, caso o leitor queira, pode apenas modificar o exemplo citado. #include <SimpleModbusSlave.h> Em seguida realizou-se o uso da diretiva #define para associarmos as palavras que definem os componentes em questão aos seus respectivos pinos do Arduino UNO. #define LED_VM 11 #define LED_VD 10 #define LED_AZ 9 #define LED 8 #define BOTAO 12 #define CHAVE 13

Antes de prosseguirmos com o código, foi necessário criar algumas variáveis para uso posterior no acionamento dos componentes. int PWM_R; int PWM_G; int PWM_B; Neste momento serão definidos os registradores holding utilizados no SCADABR. Caso o leitor tenha alguma dúvida neste ponto, insistimos em pedir para o leitor consultar o link disponibilizado no início deste artigo, nele estão contidas todas as informações para que o leitor compreenda cada um dos pontos deste desenvolvimento de código. Os registradores holding POT_R/POT_G/POT_B são responsáveis por conter os valores referentes às leituras realizadas através dos potenciômetros enquanto os registradores LED_R/LED_G/LED_B estão diretamente ligados ao acionamento do led RGB . Os registradores BOT e LED_ON_OFF definem o comportamento do led on/off, enquanto o registrador MAN_AUTO está relacionado com a chave que determina o modo de operação (manual ou automático). enum POT_R, POT_G, POT_B, BOT, LED_R, LED_G, LED_B, LED_ON_OFF, MAN_AUTO, HOLDING_REGS_SIZE ; unsigned int holdingRegs[HOLDING_REGS_SIZE];

Na função setup() utiliza-se a função modbus_configure() para determinar os parâmetros necessários para estabelecer a conexão via comunicação serial utilizando o protocolo

SISTEMAS SUPERVISÓRIOS MECATRÔNICA

www.meccomeletronica.com Página 12

MODBUS. Os parâmetros "mais importantes" são o segundo, o terceiro e o quarto, que dizem respeito à taxa de transmissão de dados e o formato do pacote utilizado no protocolo MODBUS. Note que estes três argumentos citados devem estar em conformidade com as configurações do SCADABR. Em seguida temos a função modbus_update_comms(), que também é responsável pela comunicação via MODBUS, enquanto a função pinMode() determina os modos de operação (como saída) dos pinos onde estão conectados os diversos elementos presentes no sistema em questão. void setup() modbus_configure(&Serial, 9600, SERIAL_8N1, 1, 2, HOLDING_REGS_SIZE, holdingRegs); modbus_update_comms(9600, SERIAL_8N1, 1); pinMode(LED_VM, OUTPUT); pinMode(LED_VD, OUTPUT); pinMode(LED_AZ, OUTPUT); pinMode(LED, OUTPUT); pinMode(BOTAO, INPUT); pinMode(CHAVE, INPUT);

O conteúdo da função loop() começa com a função modbus_update() utilizada para a atualização dos valores dos registradores citados anteriormente. Em seguida, realiza-se a leitura das informações presentes nas portas de entrada analógica A0, A1 e A2 e posteriormente realiza-se o mesmo procedimento, porém nas portas de entrada digital, ou seja, onde está a chave seletora e o botão. Num primeiro momento é necessário verificar em que posição está a chave seletora para que o programa entenda a partir de que ponto o sistema está sendo controlado. Para isso utiliza-se uma estrutura condicional if(), cuja sentença a ser testada inclui o registrador holding MAN_AUTO. Caso o valor deste seja igual a zero, entende-se que o sistema está funcionando de forma manual, portanto, os valores a serem utilizados nos PWMs para o acionamento dos leds são provenientes diretamente dos valores obtidos através dos potenciômetros. E o led com comportamento on/off responde diretamente de acordo com o botão enquanto solto ou pressionado. Observe que apesar de não utilizarmos os registradores holding nos acionamentos (no caso do led RGB), estes ainda assim são atualizados para que seus valores sejam devidamente apresentados no SCADABR. Em contrapartida, caso a chave seletora aponte para o modo de operação automático, os acionamentos serão feitos utilizando diretamente os registradores holding, pois assim é possível realizar estes por meio da alteração de valores no supervisório que será apresentado a seguir. void loop() modbus_update(); holdingRegs[POT_R] = analogRead(A0); holdingRegs[POT_G] = analogRead(A1); holdingRegs[POT_B] = analogRead(A2); holdingRegs[BOT] = digitalRead(BOTAO); holdingRegs[MAN_AUTO] = digitalRead(CHAVE); if(holdingRegs[MAN_AUTO] == 0)

SISTEMAS SUPERVISÓRIOS MECATRÔNICA

www.meccomeletronica.com Página 13

PWM_R = map(holdingRegs[POT_R],0,1023,0,255); analogWrite(LED_VM,PWM_R); holdingRegs[LED_R] = PWM_R; PWM_G = map(holdingRegs[POT_G],0,1023,0,255); analogWrite(LED_VD,PWM_G); holdingRegs[LED_G] = PWM_G; PWM_B = map(holdingRegs[POT_B],0,1023,0,255); analogWrite(LED_AZ,PWM_B); holdingRegs[LED_B] = PWM_B; digitalWrite(LED,holdingRegs[BOT]); holdingRegs[LED_ON_OFF] = holdingRegs[BOT]; else analogWrite(LED_VM, holdingRegs[LED_R]); analogWrite(LED_VD, holdingRegs[LED_G]); analogWrite(LED_AZ, holdingRegs[LED_B]); digitalWrite(LED,holdingRegs[LED_ON_OFF]);

CRIAÇÃO DO DATA SOURCE E DATA POINTS PARA MANIPULA ÇÃO DE DADOS Neste momento iremos abordar os passos necessários para realizar interação do Arduíno UNO com o SCADABR. Vale ressaltar que neste artigo partiremos de uma parte mais avançada, no entanto, é conveniente que caso o leitor não esteja familiarizado com o conteúdo mostrado a seguir, veja como são feitos os procedimentos iniciais para tal objetivo em nosso artigo anterior cujo link encontra-se disponibilizado no início deste artigo. Primeiramente é necessário produzir o Data source referente ao Arduíno UNO utilizando a opção modbus serial como modo de conexão e em seguida criar os Data points que serão utilizados no programa. Por uma questão de didática e também para facilitar a programação e o entendimento do leitor, os nomes dos Data points são iguais aos dos registradores holding declarados no código (exceto os que possuem "/" no nome, pois este caractere não foi aceito no código, dessa maneira este foi substituído por "_"). Observe que neste artigo alguns Data points foram declarados como inteiros de 2 bytes sem sinal ao passo que outros foram tidos como binários.

SISTEMAS SUPERVISÓRIOS MECATRÔNICA

www.meccomeletronica.com Página 14

DESENVOLVIMENTO DO SISTEMA SUPERVISÓRIO Para desenvolver um sistema supervisório, o usuário deve inicialmente clicar no ícone referente ao modo que por sua vez proporciona o ambiente necessário para a produção de tal sistema. Este ícone possui o nome de representação gráfica.

Em seguida, o leitor deve escolher um nome para este sistema supervisório assim como uma imagem de fundo caso seja desejo do desenvolvedor (neste caso, após selecionar a imagem desejada, basta clicar no botão responsável por fazer o upload da imagem).

SISTEMAS SUPERVISÓRIOS MECATRÔNICA

www.meccomeletronica.com Página 15

Neste momento nosso supervisório recém criado se encontra desta maneira

Primeiramente serão criados os leds de sinalização do modo de operação, isto é, um mecanismo para que o usuário saiba se o sistema esta em modo manual ou automático. Como dito anteriormente, no modo manual, as alterações só podem ser realizadas através dos potenciômetros e pelo botão, ao passo que no modo automático, as mudanças só podem ser realizadas pelo supervisório. Observe que a única coisa que define o modo de operação é a chave seletora diretamente contida no hardware.

Para adicionar os componentes escritos, deve-se selecionar na lista de componentes a opção HTML e clicar no ícone ao lado da mesma lista. Posteriormente o desenvolvedor deve escrever as frases desejadas. Neste caso, o procedimento em questão foi repetido 3 vezes com as seguintes frases: "Modo de operação", "Automático" e "Manual".

SISTEMAS SUPERVISÓRIOS MECATRÔNICA

www.meccomeletronica.com Página 16

Já para inserir os elementos gráficos deve-se selecionar na lista de componentes a opção GIF Binário e clicar no ícone ao lado para adicioná-lo ao supervisório. Em seguida aparecerá um ícone igual ao mostrado na figura abaixo (extremidade esquerda), de modo que o leitor deve definir alguns parâmetros para que o item gráfico funcione de maneira efetiva. Num primeiro momento deve-se posicionar o mouse sobre ícone citado e aparecerão algumas opções, o leitor deve primeiramente clicar na opção marcada de vermelho e definir qual Data point estará "ligado" ao elemento gráfico em questão (no nosso caso, o Data point escolhido está relacionado ao registrador holding responsável por conter o valor relativo à leitura da chave seletora que define o modo de operação).

Depois de realizar o procedimento anterior, o leitor deve clicar no ícone abaixo do selecionado anteriormente, e então escolher qual tipo de elemento gráfico deseja utilizar. Neste caso foi selecionado o conjunto "leds24", composto por uma série de imagens onde o usuário deve determinar uma para o caso do Data point em questão atribuir o valor 0 (led apagado) ao registrador holding correpondente e outra para o caso deste possuir o valor 1 (led aceso). Observe que a intenção neste momento é fazer com que o led acenda caso o modo vigente seja automático, ou seja, quando a chave seletora apresentar nível alto na entrada correspondente do Arduino.

SISTEMAS SUPERVISÓRIOS MECATRÔNICA

www.meccomeletronica.com Página 17

Conforme citado, o elemento que foi adicionado anteriormente está ligado à sinalização do modo automático. Para inserir outro relacionado ao modo manual deve-se proceder da mesma forma, no entanto é necessário inverter as imagens pois, quando a chave seletora proporcionar nível baixo na entrada digital do Arduino, este deve entender que o sistema está em modo manual, acendendo portanto o led referente a este modo de operação. Lembre-se sempre de salvar as alterações clicando no ícone do disquete no canto superior direito. O próximo passo no desenvolvimento do supervisório consiste em construirmos estruturas para sinalizar as componentes do led RGB.

Basicamente, o procedimento para incluir os elementos gráficos, a ser realizado neste ponto, é idêntico ao anterior. No entanto, para esta aplicação nós não dispomos de Data points que representam registradores holding binários (como por exemplo MAN_AUTO) para controlar os 2 estados definidos pelas imagens dos leds acesos e apagados. Portanto deve-se criar alguns Data points virtuais (neste momento utilizaremos o led que controla a componente vermelha do RGB como exemplo, porém os passos a serem seguidos são os mesmos para as outras componentes), para isso deve-se criar no mesmo lugar onde foi criado o Data source responsável pela interação do Arduino UNO com o SCADABR via MODBUS e escolher a opção Data Source Meta.

O Data Source Meta criado neste artigo possui o nome "Auxiliares" e no momento em que este é criado, abre-se uma tela de configurações deste Data source onde o desenvolvedor deve procurar a área relativa à criação de Data points para adiciona-los. Após criar o Data point deve-se nomeá-lo, definir o tipo de dado como binário e selecionar outro Data point (já existente) no campo Contexto do Script para criar uma estrutura que irá definir quando este recém criado assumirá os valores 0 e 1, neste caso escolhemos o Data point LED_R (responsável por conter o valor utilizado no PWM para o acionamento do led). Observe que existe uma coluna na tabela onde foi adicionado este Data point já existente chamada Var, onde pode-se dar um nome para uma variável que irá conter o valor presente no registrador holding representado pelo Data point LED_R, cujo nome é pwm_vm. No script apresentado conforme a figura a seguir, utiliza-se uma estrutura condicional if() para que este Data point criado retorne 1 (returne true) caso a variável pwm_vm possua um valor maior do que 0 (if (pwm_vm.value > 0)) ou retorne 0 (returne false) caso o valor da mesma variável seja igual a zero (else return false).

SISTEMAS SUPERVISÓRIOS MECATRÔNICA

www.meccomeletronica.com Página 18

Voltando ao ambiente de desenvolvimento do sistema supervisório deve-se associar o Data point virtual criado ao elemento gráfico em questão da mesma maneira realizada anteriormente além de definir as duas imagens, uma para quando este for 0 e outra para quando este for 1. Repare que até o presente momento foram adicionados apenas elementos gráficos, no entanto agora será inserido na representação gráfica um dispositivo que mostre os valores que serão utilizados nos PWMs dos acionamentos dos leds. Para isso deve-se selecionar a opção Data point simples na lista de seleção de componentes e definir suas configurações. Primeiramente, deve-se atribuir o Data point desejado ao item (no caso o que está representando o registrador holding que contém o valor do PWM a ser utilizado no acionamento do led vermelho), em seguida o usuário pode ou não definir um texto para aparecer juntamente com o valor e por fim deve-se marcar as duas caixas de seleção. O próximo passo consiste em simplesmente escolher as duas imagens para representar os estados distintos de funcionamento.

Após estes procedimentos torna-se possível alterar os valores dos PWMs simplesmente posicionando o valor mostrado e clicando no ícone conforme mostrado na figura abaixo. Caso estes valores sejam alterados enquanto o sistema estiver no modo manual, ocorrerá somente a mudança no supervisório até a próxima atualização do sistema (que retornará o valor que estava antes), no entanto, não haverá alteração no acionamento pelo fato de o código ser protegido contra tal ação enquanto o sistema estiver operando de forma manual.

SISTEMAS SUPERVISÓRIOS MECATRÔNICA

www.meccomeletronica.com Página 19

Por último será desenvolvido o mecanismo utilizado para o controle do led on/off. Este pode ter sinalização criada exatamente da mesma maneira que foi feita no início deste item com os leds indicando os modos de operação, no entanto, o Data point escolhido para as imagens que representarão o led aceso e apagado deve ser o LED_ON_OFF.

Para inserir o botão mostrado na figura anterior basta ir na lista de componentes do ambiente de representação gráfica e selecionar a opção botão (escrita) e adiciona-lo. Num primeiro momento deve-se incluir o Data point correspondente (LED_ON_OFF) da mesma forma feita para os outros elementos além de marcar as caixas de seleção existentes. Posteriormente é necessário determinar os textos que aparecerão quando o Data point escolhido anteriormente assumir os possíveis valores além da altura e comprimento do botão.

SISTEMAS SUPERVISÓRIOS MECATRÔNICA

www.meccomeletronica.com Página 20

A figura a seguir exibe o resultado do projeto desenvolvido neste artigo, onde é possível ver o sistema supervisório em questão possibilitando a análise dos valores além da sua manipulação.

REFERÊNCIAS https://youtu.be/bRI5CuD61Hs http://www.scadabr.com.br/?q=downloads https://www.youtube.com/watch?v=FTtGxBwroWE https://drive.google.com/drive/folders/0B0B286tJkafVYnBhNGo4N3poQ2c?tid=0B0B286tJkafVSENVcU1RQVBfSzg