Embarcando ScadaBR com Yocto na Toradex Colibri i.MX6

Introdução

  

Caro leitor, neste artigo iremos comentar sobre o que se trata um Sistema Scada, o que é o ScadaBR e o passo a passo para embarcar o ScadaBR em uma Placa Base IRIS e o módulo SOM Colibri i.MX6 da Toradex, e utilizar o Yocto Project para gerar uma imagem final pronta para receber o ScadaBR.

 

 

O que é um Sistema Scada

 

Um Sistema Scada vem do inglês referendo ao Sypervisory Control And Data Acquisition, em português conhecido como Supervisório e Aquisição de Dados. É um sistema que irá realizar o interfaceamento entre equipamentos, máquinas e sensores, ao computador onde o mesmo estará instalado, podendo atuar com diversas características como armazenamento de registros ("datalogger") e IHM (Interface Homem-Maquina) apresentando um painel de controle e gerenciamento para o operador.

 

 

Sobre o ScadaBR

 

O ScadaBR surgiu de um trabalho da MCA Sistemas com grande parceria e desenvolvimento da Fundação CERTI, Unis Sistemas e Conetec.

 

Um projeto 100% nacional, e o mais interessante é ser open-source, possibilitando a modificação e redistribuição do projeto respeitando as premissas do licenciamento adotado.

 

Um dos requisitos para o correto funcionamento deste software é possuir Java e o Apache Tomcat, o mesmo pode ser instalado em computadores com Windows ou Linux. Neste artigo estaremos portando para uma plataforma embarcada utilizando um processador ARM, e no final o sistema pode ser acessado via navegador de qualquer ponto que esteja na mesma rede do ScadaBR.

 

Os recursos para obter dados de sensores/equipamentos é bem amplo, por exemplo sendo Modbus (RS-232, RS485, TCP/IP, UDP/IP, HTTP, SNMP, SQL ou Data Source Virtual) e OPC DA baseado no OLE COM e DCOM da Microsoft e adotado por diversos desenvolvedores/fabricantes.

 

 

Preparando o ambiente host

 

O projeto foi customizado baseado no Yocto Project krogoth. Para sucesso neste processo as seguintes distribuições são oficialmente suportadas: 

  • Ubuntu
  • Fedora
  • OpenSUSE
  • CentOS
  • Debian

 

Para o correto funcionamento do ecossistema Yocto Project algumas ferramentas devem ser instaladas, mais detalhes acesse Required Packages for the Host Development System.

 

Ubuntu and Debian

 

 

Fedora

 

 

OpenSUSE

 

 

CentOS

 

 

Todas dependências do host estão instaladas baseado em cada distribuição.

 

 

Baixando o manifesto do projeto

 

Para facilitar o trabalho de preparar no ambiente host o Yocto Project e baixar todas as camadas bem como suas revisões, foi criado um manifesto para auxílio, onde utilizando a ferramenta repo do Google irá gerenciar os repositórios e branchs para o projeto.

 

Instalando a ferramenta repo: 

 

Utilizando o repo para baixar e sincronizar os repositórios e branchs, para facilitar iremos criar o diretório scadabr-yocto para realizar o build: 

 

 

Construindo a image

 

Desta maneira, no diretório scadabr-yocto teremos um diretório chamado poky-krogoth onde dentro do mesmo irá ter varias camadas que foram baixadas pelo repo, o próximo passo é criar o projeto e realizar pequenas alterações para nossa placa.

 

Esta etapa poderia ser automatizada também informando ao repo para usar configurações do projeto copiando o local.conf e bblayers.conf da camada meta-b2open, camada esta que possui a descrição da image scadabr-image e a receita para baixar, descompactar, configurar e instalar o Apache Tomcat 6, nesta camada também foi acrescentado um script que é configurado na image final para iniciar o Apache Tomcat6 durante o boot e encerrar no desligamento, e um arquivo que defini usuário e senha para acesso ao manager do Apache Tomcat6.

 

Porém, serão poucas alterações e é importante conhecer o arquivo que pode-se alterar para preparar o ambiente Java, Apache Tomcat6 e demais dependências para outras placas como Raspberry PI, Beaglebone Black entre outras.

 

Agora, criando o projeto, daremos o nome de build-scadabr

 

Altere o build-scadabr/conf/local.conf conforme abaixo: 

 

Altere o build-scadabr/conf/bblayers.conf conforme abaixo: 

 

Com as camadas configuradas, local.conf corretamente configurado podemos construir a image, usando a receita 'scadabr-image': 

 

Teremos o seguinte conteúdo no diretório build-scadabr e seus respectivos tamanhos após a conclusão da construção: 

 

Agora será feito o download de todas dependências de pacotes, ferramentas e utilitários, e o processo de build de cada item, este processo pode levar várias horas, no final a imagem será criada em build-scadabr/tmp/deploy/images/colibri-imx6/, bem como outros arquivos como bootloader, módulos do kernel, kernel, rootfs e o manifesto do rootfs. Veja o que foi gerado em nosso processo de construção: 

 

 

Gravando a image e realizando boot

 

Nesta etapa deverá ter em mãos um cartão microSD, insira o mesmo e olhe nos logs do 'dmesg' para confirmar o nome do device, algo como /dev/sdX. Em seguida, acesse build-scadabr/tmp/deploy/images/colibri-imx6/scadabr-image-colibri-imx6.sdcard.gz, agora será feito a descompressão da image e na sequência a gravação para o microSD: 

 

Após o término da gravação, insira o cartão na Placa Base IRIS, antes de alimentar será necessário conectar um cabo serial na Placa Base IRIS, alimentar a placa e interromper o bootloader e informar que o boot será através do microSD (run sdboot), este procedimento está descrito em detalhes no artigo Toradex Colibri iMX6 e Yocto Project Fido (1.8) na sessão Primeiro boot.

 

A seguir acessando algumas informações da imagem gerada, como versão do Java, as portas na escuta entre outras informações do ambiente em execução: 

 

 

Instalando e acessando ScadaBR

 

No final do boot o Apache Tomcat6 irá iniciar automaticamente, para confirmar que está funcionando. Abra o navegador e digite o IP da placa com a porta 8080, por padrão a placa irá subir como DHCP e irá aguardar atribuir um IP, sendo assim acesso com IP:8080, no meu caso o IP é http://10.20.30.2:8080. Na Figura 1 a tela inicial do Apache Tomcat.

 

ScadaBR com Yocto: Tela inicial Apache Tomcat
Figura 1 - Tela inicial Apache Tomcat

 

Próximo passo será realizar download do ScadaBR através do Downloads do site, baixando um arquivo chamado ScadaBR.war.

 

Em seguida, voltar à página do Tomcat e clicar no menu do lado esquerdo em Tomcat Manager, um usuário e senha é solicitado o default da instalação é admin/admin.

 

Deve rolar a página até em Deploy na parte referente a WAR file to deploy, como na Figura 2, onde irá procurar pelo arquivo ScadaBR.war baixado e salvo no computador e clicar em Deploy.

 

Tela Deploy arquivo WAR no Apache Tomcat
Figura 2 - Tela Deploy arquivo WAR no Apache Tomcat

 

Este processo pode levar alguns minutos, logo a seguir clicando em List Applications em Manager surgirá uma nova opção ScadaBR/, como pode ser visto na Figura 3.

 

Application Manager Apache Tomcat6
Figura 3 - Application Manager Apache Tomcat6

 

A aplicação ainda não está em execução para isso deve-se clicar na opção start logo à frente de ScadaBR/ e aguardar alguns minutos até a aplicação iniciar corretamente e ficar com a opção Running em true, como na Figura 4.

 

Iniciando aplicação ScadaBR no Application Manager do Apache Tomcat
Figura 4 - Iniciando aplicação ScadaBR no Application Manager do Apache Tomcat

 

Para confirmar que está funcionando com o mesmo IP que acessou o Tomcat, colocar IP:8080/ScadaBR/. Uma página como da Figura 5 será carregada, para acessar o logar no sistema o usuário e senha padrão é admin/admin.

 

Tela inicial do ScadaBR na Toradex Colibri i.MX6
Figura 5 - Tela inicial do ScadaBR na Toradex Colibri i.MX6

 

 

Considerações finais

 

A partir deste momento você possui uma image enxuta, com poucas ferramentas, sem interface gráfica e com script de inicialização automático para o Apache Tomcat6, dependências do Java e o ScadaBR operando.

 

Com poucas alterações pode-se portar esta image para outras placas alvos como Raspberry Pi e Beaglebone Black como já mencionado.

 

Foi customizado o arquivo /etc/tomcat-users.xml onde o usuário e senha para acessar do Manager é admin/admin. Este arquivo pode ser customizado a gosto do operador, recomendado a troca desta senha e criar outros perfis de acesso.

 

O database padrão é o Derby que já vem incorporado na aplicação, porém, o mesmo suporta MySQL mas para configurar o suporte deve-se alterar o .war, mais detalhes para este procedimento baixe o Manual do Software ScadaBR – 8. Dicas.

 

Para configurar e testar o ScadaBR, pode acessar e usar a série que o Daniel Madeira escreveu:

 

Estabelecendo comunicação via protocolo Modbus com ScadaBR

Criação de sistemas supervisórios simples com ScadaBR e Arduino

Criação de sistemas supervisórios dinâmicos com ScadaBR

Geração de relatórios com ScadaBr

Envio de dados por e-mail com ScadaBR

 

Esperamos que você tenha gostado do artigo, fique à vontade para enviar sugestões ou algum comentário.

 

Boa diversão!

 

 

Repositórios

 

https://github.com/cleitonbueno/scadabr-yocto-manifest/tree/krogoth

https://github.com/cleitonbueno/meta-b2open/tree/krogoth

 

 

Referências

 

http://www.scadabr.org.br/?q=node/1

https://www.embarcados.com.br/toradex-colibri-imx6-e-yocto/

http://www.yoctoproject.org/docs/2.1/mega-manual/mega-manual.html#packages

 

NEWSLETTER

Receba os melhores conteúdos sobre sistemas eletrônicos embarcados, dicas, tutoriais e promoções.

Obrigado! Sua inscrição foi um sucesso.

Ops, algo deu errado. Por favor tente novamente.

Licença Creative Commons Esta obra está licenciada com uma Licença Creative Commons Atribuição-CompartilhaIgual 4.0 Internacional.

Cleiton Bueno
Proprietário da B2Open onde oferecemos consultoria, treinamentos e desenvolvimento em Sistemas Embarcados. Entusiasta a filosofia open-source, mais de 10 anos de experiências em Linux e FOSS. Em sistemas embarcado do firmware baremetal ao Linux Embedded, e há aproximadamente 8 anos desenvolvendo em (C, Python, Qt e muito Shell Script), além de profiling, hardening e tuning para targets com Linux Embarcado. Graduado em Engenharia da Computação pela UNICEP com ênfase em robótica e sistemas embarcados.

Deixe um comentário

avatar
 
  Notificações  
Notificar