SISTEMAS DE SUPERVISÃO E AQUISIÇÃO DE DADOS PARA O SISTEMA OPERACIONAL ANDROIDTM Epifanio Dinis Benitez [email protected] Novus Produtos Eletrônicos Ltda. Tiago da Silva Cunha [email protected] Novus Produtos Eletrônicos Ltda. Fábio Coelho de Souza Silva [email protected] Novus Produtos Eletrônicos Ltda. Abstract Innovations in mobile technology have enabled the development of important features of supervisory and data acquisition system allowing users to have instant access to information from the monitored process and facilitate decisions about occurrences of alarms. This article presents a description of mobile operating systems available for mobile architectures and a case study of a system of supervision and data acquisition for the operating system ANDROID. Resumo As inovações em tecnologias móveis viabilizou o desenvolvimento de importantes funcionalidades dos sistemas de supervisão e aquisição de dados que permitissem aos seus usuários ter acesso imediato a informações do processo monitorado e facilitar a tomada de decisões sobre ocorrências de alarmes. Este artigo apresenta um descritivo sobre os sistemas operacionais móveis disponíveis para arquiteturas móveis e um estudo de caso de um sistema de supervisão e aquisição de dados para o sistema operacional ANDROID. Palavras chaves: sistemas, supervisão, mobilidade, SCADA, ANDROID. 1. INTRODUÇÃO As inovações em tecnologias móveis impulsionaram o desenvolvimento de equipamentos com alta capacidade de processamento, memória, armazenamento, localização e conectividade. Dotados com modernos sistemas operacionais, estes oferecem uma arquitetura baseada em aplicativos que vão desde aplicativos para entretenimento até ferramentas de produtividade. Este último abre a oportunidade para que sejam desenvolvidas soluções utilizadas na indústria. Para tirar o máximo dessas novas tecnologias e oferecer um ambiente agradável ao usuário, foram desenvolvidos sofisticados sistemas operacionais que disputam a popularidade a cada lançamento de versão. Até o momento, os principais sistemas operacionais que disputam a popularidade dos usuários são: iOS da Apple Inc. (proprietário) [APPLE] e o ANDROID da GOOGLE Inc (open source) [GOOGLE]. Apesar de mais novo no mercado, este último, foco deste trabalho, já conquistou ampla aceitação devido à sua robustez e custo benefício quando embarcado nos tablets e smartphones das mais diversas marcas e fabricantes. A arquitetura do sistema operacional ANDROID foi projetada para facilitar o desenvolvimento de aplicativos para qualquer área de negócio. Na camada próxima ao usuário existe uma interface API (Application Programming Interface) [API] para o desenvolvimento de aplicativos, enquanto que na camada mais próxima do hardware, o Kernel Linux oferece uma camada de abstração de hardware (HAL – Hardware Abstraction Layer) [EMC] que permite a portabilidade para microcontroladores e processadores de diversos fabricantes. Estes sistemas operacionais oferecem aos usuários uma IHM (Interface Homem Máquina) que provêm uma rica experiência no acesso das funcionalidades, interfaces de comunicação como USB, BlueTooth, WiFi, 3G entre outras, assim como acessórios de tecnologia como USB OTG (Onthe-Go) [OTG] e NFC (Near Field Communication) [NFC]. Com este conjunto de ferramentas, sistemas de supervisão e aquisição de dados para ANDROID podem oferecer as mais diversas funcionalidades de um SCADA (Supervisory System and Data Acquisition) [NCS], como monitoramento de equipamentos por protocolo Modbus TCP [MODBUS], visualização de dados em gráficos de tendência, telas com geolocalização de dados (canal associado a uma latitude e longitude por GPS (Global Positioning System)), escrita remota de setpoint, sistema de alarmes integrado ao sistema de notificação ANDROID, criptografia de dados, entre outras. Em um ambiente industrial podemos tipicamente diferenciar três importantes categorias de rede, contendo equipamentos e sistemas que interagem entre si e permitem uma visão transparente do que está ocorrendo: rede corporativa composta, por exemplo, de servidores e ERP (Enterprise Resource Planning), integrante da estrutura básica de tecnologia de informação; rede de automação (SCADA, operação), mais próximo ao usuário ou operador do sistema; e a rede de campo, onde pode estar entre outros o PLC (Programmable Logic Controller), aquisitores de dados, etc, composta pelos equipamentos que leem dados do campo a través de sensores e os repassam sobre algum protocolo industrial. Dentro desta topologia, as estações móveis como tablets e smartphones com sistema operacional ANDROID atuam como consumidoras de informação das redes de automação e como atuadoras remotas, enviando mensagens para os equipamentos que compõem a rede de campo. O resultado dessa visão estendida agrega mobilidade ao usuário e garante maior cobertura aos eventos que demandam rápida resposta. Baseado nesta abordagem, o restante do artigo está organizado da seguinte forma: a próxima seção aborda o assunto arquiteturas móveis com enfoque nos sistemas operacionais; em seguida a Seção 3 descreve sistemas de aquisições de dados para computador (PC – Personal Computer) e para arquiteturas móveis, além de um comparativo entre as mesmas; a Seção 4 apresenta um estudo de caso focado em um sistema de supervisão e aquisição de dados para o sistema operacional ANDROID e finalmente, a Seção 5 apresenta as conclusões. 2. ARQUITETURAS DE SISTEMAS OPERACIONAIS MÓVEIS Atualmente existem diversos sistemas operacionais para arquiteturas como tablets e smartphones de diversos fabricantes. Estes sistemas oferecem, dentre outras possibilidades, uma interface gráfica rica e eficiente para acessar os recursos de conectividade e interatividade para que o usuário possa tirar proveito do que está disponível. Afim de entender o que são esses sistemas operacionais e como funcionam, abaixo se encontram descrições sobre o ANDROID (GOOGLE) e o iOS (APPLE). 2.1 Sistema operacional ANDROID ANDROID é uma plataforma de software open source desenvolvida para tirar o maior proveito que os dispositivos móveis possam oferecer e é composta por três camadas: sistema operacional, middleware e aplicações. Através do sistema ANDROID a Google busca acelerar o desenvolvimento de aplicações e serviços, popularizar o sistema entre os usuários e se consolidar como a primeira plataforma móvel completa, aberta e livre. Nas subseções seguintes serão apresentadas a arquitetura, suas principais funcionalidades e usos, além de onde encontrar e como instalar aplicativos para serem instalados neste sistema. 2.1.1 Arquitetura A arquitetura do ANDROID é dividida em 5 (cinco) grandes componentes, descritos a seguir: Aplicações (Applications): conjunto de aplicações padrão disponíveis para o usuário tais como: cliente de e-mail, programa para envio de mensagens, calendário, acesso a mapas, navegador de internet, gerenciador de contatos, entre outros. Todas as aplicações foram desenvolvidas utilizando a linguagem de programação Java. Framework de aplicação (Application Framework): abaixo de todas as aplicações e serviços disponíveis para os usuários se encontra o ferramental necessário para criar aplicações ricas visualmente composta de objetos conhecidos como botões, caixas de texto, listas entre outros. Bibliotecas (Libraries): os conjuntos de bibliotecas disponíveis utilizados por vários componentes do sistema ANDROID e pelos aplicativos dos usuários permitem acessar camadas de sistema como interfaces de som e gráficos 2D/3D, renderização de textos, acesso à internet, base de dados relacionais entre outros. Android Runtime: responsável pelo funcionamento do sistema operacional e execução dos aplicativos em nível de usuário. No sistema ANDROID, todos os aplicativos executam de forma individual, portanto se algum deles parar de funcionar, o sistema continua funcionando sem prejuízo para o usuário. Linux Kernel: o Kernel é o núcleo base para a pilha de funcionalidades disponíveis no sistema ANDROID. Atua como uma camada de abstração de hardware (HAL) e os demais componentes do sistema. Oferece os principais serviços como: segurança, gerenciamento de memória, gerenciamento de processos, rede e drivers. Seu desenvolvimento foi baseado no Linux Kernel versão 2.6. A figura abaixo ilustra a interoperabilidade entre esses componentes. 1. Arquitetura do sistema operacional ANDROID1 2.1.2 Características O sistema ANDROID possui um conjunto de características que o tornam competitivo frente às outras alternativas de mercado e seus usuários. Abaixo se encontram listadas com uma breve explicação um conjunto de funcionalidades disponibilizadas. 1 Display gráfico: Começando pelos displays gráficos, o sistema ANDROID é flexível para ser utilizado em layouts tradicionais e com bibliotecas 2D e 3D. Também há suporte a telas de alta resolução e tamanho, além de displays multi-toque que permitem os aplicativos associar ações à forma como o usuário toca o display. Figura retirada do site http://elinux.org/Android_Architecture Internacionalização: permite que o ambiente seja traduzido para vários idiomas. Conectividade: dentre as tecnologias suportadas podemos citar GSM/EDGE, UTMS, 3G, 4G, WiFi, NFC entre outras. Armazenamento: os dados do sistema e dos aplicativos podem ser armazenados em memória interna, fixa ou memória externa removível, como SD Card ou tecnologias semelhantes. Interface gráfica: geralmente as interfaces gráficas dos aplicativos possuem um mesmo comportamento, pois a Google disponibiliza aos seus desenvolvedores um guia de como desenvolver a parte gráfica dos aplicativos. A aderência dos desenvolvedores a este fato garantem uma padronização da identidade visual do sistema e dos aplicativos. Aplicativos padrão: entre os disponíveis podemos citar o de envio de SMS, reconhecimento de voz, chamadas por vídeo, tocadores de som, navegador de internet entre outros. Os aplicativos são a principal ponte de acesso às funcionalidades dos recursos disponíveis em hardware. Como discutido na subseção anterior, o ANDROID possui uma camada de abstração de hardware. Essa camada dá a liberdade para que o sistema possa ser migrado ou portado para diversos microcontroladores e processadores. Dentre os componentes de hardware que são acessados pela camada de abstração podemos citar: Telefonia GSM, Bluetooth, EDGE, 3G, WiFi, Câmera, GPS, Compass, Acelerômetro. Esta lista não é definitiva, pois a API do ANDROID permite que a mesma seja atualizada caso haja novos hardwares necessários. 2.1.3 Aplicativos para ANDROID Os aplicativos são equivalentes aos softwares que são instalados em um computador pessoal. Em geral, os aplicativos não são tão completos, pois há uma grande variedade de dispositivos móveis e nem todos possuem recursos para comportar muita demanda. Para baixar aplicativos, o usuário deste sistema deve criar uma conta Google, ter acesso a uma rede internet e entrar no site (pela web) ou acessar o aplicativo Google Play. Lá o usuário encontra aplicativos gratuitos e pagos, separados em diversas categorias. A instalação é simples e intuitiva. Alguns aplicativos suportam atualizações automáticas pela WEB. Atualmente a Google estima que existam 600.000 aplicativos disponíveis e considerando que o número de ativações de dispositivos ANDROID é superior a 1.000.000 por dia, o número de desenvolvedores deve crescer para suprir a demanda por novos aplicativos. 2.2 Sistema operacional iOS O iOS (antes chamado de iPhone OS) é um sistema operacional móvel proprietário desenvolvido pela Apple, e a sua utilização é exclusiva para dispositivos da empresa, como iPAD, iPOD e o próprio iPhone. Este sistema operacional foi desenvolvido com o pensamento de que o usuário deve ter uma experiência rica em termos de usabilidade e praticidade de uso, tornando a experiência do usuário sempre agradável. Nas subseções seguintes serão apresentadas a arquitetura, suas principais funcionalidades e usos, além de onde encontrar e como instalar aplicativos para serem instalados neste sistema. 2.2.1 Arquitetura A arquitetura do iOS é dividida em camadas, onde as camadas superiores atuam como intermediário entre hardware e as aplicações. Existem 4 (quatro) camadas de abstração, descritas a seguir: Cocoa Touch: Camada que disponibiliza a infraestrutura para desenvolvimento da interface visual das aplicações, contempla os eventos gerados pelo usuário, reconhecimento gestos executados na tela do dispositivo, funcionalidades multitarefa (incluído na versão 4.0 do iOS), notificações locais e remotas, acesso a câmera do dispositivo e aos sensores como acelerômetro, bússola, etc. Serviços de Mídia (Media): A camada de mídia contem frameworks de gráficos, áudio e vídeo, voltados para criar a melhor experiência multimídia disponível em um dispositivo móvel. As tecnologias nesta camada foram projetadas para tornar mais simples o desenvolvimento de aplicações ricas em áudio e vídeo. A renderização de gráficos 3D é feita através da API OPENGL ES, uma versão simplificada do padrão OpenGL, projetada para sistemas embarcados. Serviços Essenciais (Core Services): A camada de serviços essências contem os serviços fundamentais de sistema que todos os aplicativos utilizam. Mesmo se o usuário não usar algum destes serviços diretamente, partes do sistema são construídas baseadas neles. Inclui, entre outros, frameworks de localização, persistência de dados e visualização de arquivos. Núcleo do Sistema Operacional (Core OS): Camada que contém as características de baixo nível, onde diversas outras tecnologias do sistema se baseiam. Mesmo que um aplicativo não utilize diretamente estas características, elas são utilizadas pelos frameworks utilizados nas aplicações. Em situações onde é necessário utilizar questões de segurança ou comunicação com acessórios de hardware externo, como comunicação Bluetooth e USB, são utilizados os frameworks disponibilizados nesta camada. A figura abaixo ilustra as camadas da arquitetura do iOS. 2 2. Arquitetura do sistema operacional iOS 2.1.3 Principais características O sistema iOS possui um conjunto de características com o objetivo de tornar a sua utilização uma experiência agradável e satisfatória para o usuário. Abaixo se encontram listadas com uma breve explicação um conjunto de funcionalidades disponibilizadas. 2 Qualidade e Usabilidade: O sistema tem como premissa a alta qualidade dos aplicativos disponibilizados e a sua facilidade e uso. Conectividade: Dentre as tecnologias suportadas podemos citar GSM/EDGE, UTMS, 3G, WiFi. Multi-touch: O sistema reconhece diversos toques na tela ao mesmo tempo, facilitando a criação de aplicativos que necessitam de uma grande interação com a tela, como jogos. Multi-tarefa: O sistema é capaz de executar aplicativos em segundo plano enquanto o usuário esta utilizando outros. Internacionalização: permite que o ambiente seja traduzido para vários idiomas. Performance: Como o iOS é apenas utilizado em hardware da Apple, o sistema tem um desempenho sempre estável, proporcionando suavidade e agilidade ao navegar pelos menus, abrir aplicativos e na realização de tarefas. Segurança: Um das principais características do iOS, e talvez a que gera mais discussões. Para manter um nível alto de segurança no sistema operacional, a Apple criou diversas barreiras para o acesso de seus dispositivos, como permitir comunicação bluetooth apenas entre dispositivos da empresa, a inserção de arquivos de mídia para os dispositivos é feita sempre pelo iTunes (aplicativo da empresa que gerência aplicativos e arquivos de mídia dos seus dispositivos), a instalação e compra de aplicativos é feita apenas pela App Store (Loja de aplicativos do sistema) e um processos de avaliação é aplicado aos aplicativos criados antes de poderem ser comercializados na loja de aplicativos. Inovação: Cada nova versão do sistema é desenvolvido pensando em trazer algo de inovador ao mercado, como o suporte a aplicativos, assistente pessoal controlado por voz, sistema de armazenamento de conteúdo em nuvem, e suporte a telas retina de alta resolução. Figura retirada do site http://developer.apple.com 2.1.4 Aplicativos para iOS Os aplicativos são equivalentes aos softwares que são instalados em um computador pessoal. Os aplicativos disponíveis para o iOS podem utilizar todo o potencial do sistema, pois utilizam um hardware padrão, garantindo performance satisfatória e que as funcionalidades estarão sempre disponíveis. Ao adquirir um dispositivo com iOS, o usuário deve criar uma conta no iTunes, com esta conta ele terá acesso a loja de aplicativos, além da loja de venda de mídia online. O conteúdo pode ser adquirido pelo próprio dispositivo ou pelo software iTunes para PC, neste caso, deve-se conectar o dispositivo no PC para sincronizar o conteúdo adquirido. Toda atualização de aplicativos é feita pelo iTunes ou pelo aplicativo da App Store, que é nativo do iOS. Por ser um sistema proprietário e seu desenvolvimento ser feito apenas pela Apple, o desenvolvimento de aplicativos para iOS passa por um sistema de qualidade extenso antes de ser incluído na sua loja de aplicativos, o que torna o desenvolvimento para este sistema operacional algo mais restrito em relação ao seu principal concorrente, o ANDROID. Porém, a loja de aplicativos da Apple é a que chama o maior interesse dos desenvolvedores, por ter usuários mais acostumados com a ideia de gastar dinheiro para adquirir aplicativos para seus dispositivos, além de que, ao desenvolver um aplicativo, o desenvolvedor não precisa se preocupar com diferentes hardwares dos dispositivos. No ultimo trimestre de 2011, 73% dos novos aplicativos móveis desenvolvidos, foram para a plataforma da Apple, contra 27% do Google. No mês de março 2012 a App Store alcançou a marca de 25 bilhões de downloads, como parâmetro para comparação, a Android Market em final de dezembro de 2011, atingiu a marca de 10 bilhões de aplicativos baixados3. 3. SISTEMAS DE SUPERVISÃO E AQUISIÇÃO DE DADOS Atualmente a utilização de meios computacionais e de ferramentas de Tecnologia da Informação nas empresas e indústrias, dos mais diversos ramos de atividades é cada vez maior. A utilização destas ferramentas para supervisão, controle e monitoramento de processos industriais está se tornando frequente e importante. Em indústrias e laboratórios de todas as áreas, por exemplo, encontramos máquinas e equipamentos para medir e controlar os mais diferentes tipos de processos físicos, e para o ser humano visualizar as informações extraídas por estes equipamentos, é necessário um tipo específico de software, que realiza a comunicação com estes dispositivos através de determinados protocolos. Os softwares de supervisão, controle e aquisição de dados, ou SCADA, capturam as informações destes dispositivos e traduzem dados de sensores em informações que exibem ao operador do sistema o estado atual do processo monitorado através de uma interface gráfica interativa. A fim de entender melhor o que são e que funções realizam, nas próximas seções serão mostrados os conceitos de SCADA. 3.1 Conceito geral sobre SCADA O termo SCADA (Supervisory Control and Data Acquisition) geralmente se refere a Sistemas de Controle Industriais [ICS] utilizados para controle de processos de coleta de dados em tempo real, com o fim de controlar equipamentos e condições. Os sistemas SCADA são usados para monitorar plantas ou equipamentos em indústrias das mais diversas áreas de atuação, como água e controle de resíduos, energia, petróleo e refino de gás, armazenamento de produtos em condições controladas, entre outros. Estes sistemas englobam transferência de dados entre uma estação central SCADA e uma Unidade Terminal Remota (RTU) [STOUFFER], ou entre a estação central e um terminal de operação. Reúne informações sobre o processo que esta sendo supervisionado e envia estas informações para estes terminais de operação, que uma vez visualizadas pelos operadores do sistema, possam ser utilizadas para tomar a decisão correta sobre como proceder com que esta ocorrendo no processo. Atualmente a arquitetura dos sistemas SCADA está na terceira geração. Na primeira geração usava-se uma arquitetura monolítica, onde os conceitos de computação em geral eram centrados em “mainframes”, redes eram geralmente inexistentes, com isto, os sistemas eram centralizados. Como resultado os sistemas SCADA eram independentes e praticamente sem conectividade com outros sistemas. Na segunda geração, estes sistemas começaram a utilizar uma arquitetura distribuída, onde o processamento das ações acontecia em varias estações conectadas através de uma LAN (Local Area Network), que trocavam as informações em tempo real. Estas informações geralmente 3 Informação retirada do site: http://colunas.revistaepocanegocios.globo.com/coffeebreak/2012/03/05/appstore-x-android-market/ eram transmitidas utilizando protocolos proprietários, o que levou a sérios problemas de segurança, onde hackers (conhecidos também como piratas virtuais) começaram a encontrar informações importantes sendo transmitidas. A terceira e atual geração de sistemas SCADA é chamada de “Networked”, pois utiliza todas as facilidades da rede mundial de computadores, utiliza protocolos industriais padronizados para troca de informações entre estações de trabalho e técnicas de segurança para manter estas informações protegidas. Sistemas SCADA podem ser altamente distribuídos, utilizados para monitorar e controlar unidades RTU dispersos geograficamente, onde a aquisição de dados e o controle centralizado das ações são criticas á operação do sistema. Por exemplo, uma unidade RTU monitora o nível de energia que uma estação recebe e repassa esta informação para um sistema SCADA central. Este sistema controla diversas outras estações de energia, e com esta informação, os operadores que atuam sobre este sistema podem alterar o nível de energia que a estação esta recebendo, aumentando ou diminuindo este nível, balanceando a energia recebida entre as estações existentes. Sistemas SCADA maduros devem ser compatíveis com os protocolos de comunicação mais utilizados na área de automação industrial, tais como os protocolos Modbus RTU, Modbus TCP, OPC (Ole Process Control) [BELL], entre outros. O protocolo Modbus é um protocolo de comunicação popular foi criado pela empresa Modicon [MODICON], na década de 70. A Modicon (atualmente parte do grupo Schneider Electric) disponibilizou em domínio publico para a comunidade industrial as especificações e normas que definem o protocolo Modbus. Como descrito nos parágrafos acima, sistemas SCADA realizam funções que incluem supervisão e controle de processos locais ou remotos em tempo real. Uma solução SCADA pode assumir complexidade e estar constituída de computadores, softwares e dispositivos utilizados para a aquisição de dados e atuação sobre os processos monitorados. Uma aplicação prática de um SCADA deve contemplar funcionalidades para que os dados repassados pelas unidades RTU possam ser transformadas em informações úteis aos operadores, de forma que se possa fazer uma analise ou controle do processo monitorado. Estas aplicações devem permitir a criação de telas de sinóticos para fazer a monitoração. Também agrega valor a funcionalidade de monitoramento e controle de alarmes, pois permite que sejam configurados valores de controle e notificações para que sejam tomadas ações para resolver a ocorrência. A visualização de dados em tempo real em gráficos de tendência ou outros objetos visuais e a visualização de arquivos de histórico em gráficos, tabelas, relatórios e arquivos exportados, são ferramentas que permitem extrair informação de negócio dos dados brutos lidos do campo. Quando se fizer necessário a automatização de uma sequencia de ações, a mesma pode ser feita a través da funcionalidade SCRIPT. Além disso, também deve ser possível poder executar fórmulas matemáticas afim de dar significado a informações simples ou parciais. Todo acontecimento importante que ocorre dentro de aplicação SCADA como alarmes e eventos devem ser registrados em Log para consulta futura. Determinas aplicações demandam ferramentas para controle e segurança da aplicação, como configuração de perfis e controle de acesso dos usuários. Sistema de login/logoff de usuários com bloqueio de telas de supervisão, ferramentas para assinatura eletrônica para ações criticas na aplicação e o reconhecimento de alarmes completam o pacote de funcionalidades disponibilizadas. 3.2 Sistemas para arquitetura PC Existe uma extensa variedade de sistemas SCADA para PC desenvolvidos para atender de forma básica as necessidades de uma aplicação industrial e outros dotados de funções complexas para atender aplicações críticas. O que difere um SCADA de outro é o seu nível de maturidade, onde se considera a evolução do mesmo em atender os requisitos básicos ou ainda oferecer funções que permitam o máximo de automatização de ações nos processos industriais. Considerando as três gerações citadas na seção anterior, alguns sistemas SCADA conservam características às atendem plenamente, enquanto outros focam na terceira e apontam um norte para o futuro adotando tecnologias inovadoras vindas de outras áreas. Aplicações distribuídas em processos petroquímicos, controle de reatores nucleares, aplicações na área de energia são exemplos de aplicações que demandam constante evolução dos sistemas. À medida que novas tecnologias vão surgindo na área de sistemas informatizados e tecnologia da informação, algumas são candidatas a serem portadas para sistemas SCADA. Exemplo de tecnologias adotadas são os servidores de páginas web e as interfaces para acesso remoto à rede de automação. Sem o devido cuidado, no aspecto segurança, estas tecnologias quando utilizadas para aplicações críticas podem abrir a oportunidade para “ataques virtuais” e colocar em risco as informações que representam valor de negócio ou ainda permitir que ações indevidas sejam executadas causando prejuízos. Alguns sistemas já pagaram um alto preço em sua reputação ao deixar a descoberto uma falha de segurança que permitiu a invasão remota e a 4 execução de ações remotas sem o devido controle . Atualmente é possível encontrar no mercado sistemas SCADA gratuitos que atendem diversos requisitos citados na seção anterior, sistemas de médio custo, usados em aplicações onde o nível de criticidade é baixo e sistemas de alto custo, que em alto nível de maturidade oferecem um ferramental completo para que seja desenvolvida praticamente qualquer lógica de processo. 3.3 Sistemas para arquiteturas móveis A partir da evolução computacional das arquiteturas móveis em termos de hardware, sistemas operacionais, acessibilidade (baixo custo) e disponibilidade (ampla oferta no mercado), as possibilidades de utilização destes recursos expandiram-se de forma exponencial. Aparelhos que antes possuíam recursos limitados como telefones celulares, deixaram de fornecer aos usuários apenas funções básicas de telefonia para permitir o envio de mensagens de texto (SMS), a navegação de internet (com algumas limitações) utilizando o protocolo WAP, envio de e-mails, instalação de aplicações, até o ponto em que passaram a serem chamados smartphones, fornecendo uma arquitetura computacional completa. Com a evolução das arquiteturas móveis, não só os seus recursos sofreram uma modificação, mas as suas aplicações também foram modificadas. Estes recursos passaram a ser aliados dos profissionais no mercado comercial e empresarial, permitindo aos mesmos se desligarem das suas estações de trabalho sem perder a conectividade com as suas ferramentas. Este fato trouxe um impulso na complexidade das aplicações disponíveis que muitas vezes se limitavam a jogos ou aplicativos multimídia. A maturidade dos recursos computacionais móveis e das aplicações disponíveis para os mesmos trouxe a oportunidade da sua utilização em ambientes que demandam uma maior confiabilidade dos sistemas, como ocorre no ambiente industrial. Este fato criou a oportunidade para que os sistemas SCADA, conhecidos e utilizados há décadas neste ambiente, passassem a ser adaptados para esta arquitetura nestes últimos anos. Podemos encontrar nos sistemas SCADA móveis algumas das funções básicas deste tipo de sistema discutidas no item 3.1, tais como a comunicação com as estações RTU, exibição dos dados (algumas vezes em tempo real), ações de controle realizadas pelos usuários, com uma grande variação das capacidades destes itens entre os sistemas atuais. Alguns sistemas permitem a comunicação com um conjunto limitado de equipamentos, limitado aos protocolos disponíveis, meios físicos de comunicação (serial, USB), ou até mesmo limitando este conjunto aos equipamentos de uma dada empresa. A exibição dos dados varia em termos do conjunto de dados disponível, como nos sistemas que limitam este conjunto a itens definidos ou selecionados previamente (muitas vezes no sistema SCADA principal que fornece os dados) e na forma de exibição que geralmente é limitada a gráficos e listas de valores. Um pequeno conjunto de sistemas oferece a exibição de telas complexas, porém exigem do usuário a utilização de equipamentos mais sofisticados. O conjunto de ações e ferramentas de controle e atuação disponíveis talvez seja um dos itens que sofre a maior limitação, já que a maioria dos sistemas limita-se a visualização dos dados. Alguns sistemas permitem o controle ativo, seja via escrita de valores, seja via aplicação de scripts e outras ações personalizáveis pelo usuário. Deve-se citar que nenhum dos sistemas presentes apresenta funcionalidades de controle automatizado, isto é, que permitem ao sistema atuar de forma proativa, realizando ações sem a necessidade da interação com o usuário. Um dos principais pontos negativos dos sistemas SCADA móveis diz respeito à confiabilidade temporal, e isto limita ou impede sua aplicação a sistemas considerados críticos. Isto se deve principalmente as formas de comunicação, limitações dos sistemas operacionais e limitações físicas dos equipamentos. Alguns aparelhos móveis contam apenas com interfaces de comunicação tais como os protocolos GRPS, GSM, 3G e WIFI, que sofrem com interferências, baixas taxas de transferência, disponibilidade de sinal e outras características que não são compatíveis com os requisitos de sistemas críticos. Os sistemas operacionais móveis atuais tem muitas vezes que lidar com aparelhos com baixas capacidades em termos de recursos computacionais, como limitações de memória disponível, o que faz com que os mesmos tenham que encerrar aplicações de forma inesperada, o que não é idealmente aceitável em um sistema deste tipo. Outras limitações físicas trazem mais problemas, como limitações de alimentação de energia de certos aparelhos, que poderiam ocasionar o desligamento completo do sistema por falta de bateria, por exemplo, limitações estas ainda mais críticas para a utilização destes sistemas em ambientes que demandam confiabilidade. 4 http://www.guardian.co.uk/world/2011/apr/17/iran-siemens-stuxnet-cyber-attack Quanto à evolução deste sistema, podemos abordar dois itens. O primeiro diz respeito ao nível de maturidade destes sistemas e o segundo quanto à classificação da geração deste tipo de sistema. As aplicações SCADA móveis atuais sofrem neste item tanto no que diz respeito à maturidade como confiabilidade, já que são sistemas com pouco tempo de mercado, e assim, pouco tempo para encontrar e corrigir erros, quanto nos critérios de maturidade definidos no item 3.1. Neste último item, podemos destacar a ausência do protocolo Modbus RTU em grande parte dos sistemas, do protocolo OPC em praticamente todos e de outras funcionalidades como a criação de telas customizadas, presença de scripts, autenticação de usuários e outras características que podem ser utilizadas para definir um sistema SCADA como maduro. Quanto à classificações de gerações de arquitetura discutidas no item 3.1, podemos classificar os SCADA disponíveis para as arquiteturas moveis como estando entre a segunda e a terceira geração. Alguns sistemas possuem apenas um modo de visualização de telas e dados que são fornecidos por outro sistema da mesma empresa, trabalhando assim dentro de um ambiente que pode ser considerado fechado, característica da segunda geração. A grande maioridade dos sistemas permite a sua utilização de forma distribuída, acessando equipamentos ou outros sistemas através da Internet, em qualquer parte do planeta, configurando assim um sistema SCADA de terceira geração. 3.4 Comparativo entre sistemas para diferentes arquiteturas Devido à diferença de tempo de existência das duas arquiteturas referenciadas anteriormente, e também do tempo de aplicação destes sistemas, e consequentemente, de mercado, podemos notar uma série de diferenças ao comparamos os sistemas disponíveis para as arquiteturas PC e móvel. Esta questão pode ser fundamental no momento da escolha pela utilização entre estas arquiteturas e por este motivo deve ser bem analisada pelos interessados. De forma esperada pela diferença entre tempo de aplicação destes sistemas, o número de sistemas em cada tipo de arquitetura apresenta uma grande discrepância. Enquanto existem centenas de sistemas SCADA para arquitetura PC, o número de sistemas para a arquitetura móvel restringe-se a casa das dezenas – no momento em que este artigo foi escrito encontravam-se disponíveis aproximadamente 30 sistemas. A variação entre as funcionalidades disponíveis em cada sistema é afetada por esta questão. Na arquitetura PC podemos encontrar sistemas com o conjunto adequado de funcionalidades para a aplicação desejada em qualquer nível de complexidade da mesma. Em termos de sistemas móveis este conjunto é bem limitado, tanto em termos de comparação com os sistemas PC (menor número de funcionalidades) quanto na variação dentro da mesma arquitetura. Enquanto nas versões PC deste sistema podemos encontrar funcionalidades únicas em alguns sistemas, nas versões móveis geralmente temos o mesmo conjunto de funcionalidade se repetindo entre diferentes aplicativos, com um conjunto limitado de funcionalidades únicas. A maturidade dos sistemas das duas arquiteturas talvez seja a questão que mais se destaque, e com isto talvez venha a influenciar a escolha pela adoção de uma das duas arquiteturas. Como apontado pelo item 3.2, os sistemas SCADA da plataforma PC atingiram um nível de maturidade tanto em termos de tempo de utilização quanto de funcionalidades, que permite aos mesmos serem aplicados a contextos críticos. Temos diversos exemplos de aplicações destes sistemas neste tipo de aplicação (crítica), e empresas com nome consolidado neste mercado. Na contramão, os sistemas móveis estão disponíveis a menos de 5 anos. Além disto, tanto as funcionalidades disponíveis, quanto a arquitetura móvel em si não atingiram um nível de confiabilidade aceitável para a aplicação em certos tipos de contextos. Enquanto temos alguns exemplos de SCADAs que são utilizados, por exemplo, para a validação de processos usando as normas ANVISA RDC 17/2010 [ANVISA] e FDA 21 CFR Parte 11 [FDA], nenhum dos sistemas móveis disponíveis possuem funcionalidades para este tipo de aplicação. Não se percebe, por exemplo, a preocupação com as questões de segurança e privacidade nos sistemas desta arquitetura, questões estas fundamentais para aplicações criticas. Temos ainda uma questão de confiabilidade comercial que envolve esta arquitetura, já que muitos destes sistemas não foram desenvolvidos por empresas sólidas, sendo algumas vezes desenvolvidas por estudantes ou como um hobbie. Como podemos ver na seção 3.3, alguns sistemas SCADA móveis podem ser considerados de terceira geração, da mesma forma como ocorre na plataforma PC. A grande diferença quanto a esta questão diz respeito ao futuro destes sistemas. Os sistemas da plataforma PC foram os responsáveis pela criação de todas as funcionalidades da terceira geração, e tendem a serem responsáveis pela criação da quarta (futura) geração. A plataforma móvel traz o beneficio da criatividade e muitos recursos novos (como as telas multi-toque, por exemplo), o que pode permitir que estes sistemas motivem inovações, porém atualmente não é isto que ocorre. Este tipo de sistema tem tendência, atualmente, a limitar-se a copiar funcionalidades disponíveis nos sistemas da arquitetura PC. Todas estas questões discutidas nesta seção afetam a questão comercial que envolve estes sistemas. Devido ao grande número de sistemas disponíveis na plataforma PC, que variam também em termos de número de funções e complexidade das mesmas, temos também disponível uma grande variação na faixa de preço entre os produtos. Isto torna possível adquirir um sistema a baixo custo que contemple praticamente todas as funcionalidades necessárias para a aplicação que será implantada. Os sistemas móveis estão naturalmente limitados neste sentido pelo pequeno conjunto de possibilidades disponíveis. Isto dificulta a competição, e com isto a aceitação deste tipo de sistema para certos grupos de interessados. Deve-se considerar também que este tipo de plataforma está ganhando aceitação, mas ainda não é unanimidade, e sua adoção implica em um custo extra para aquisição de um tablete ou smartphone. 4. ESTUDO DE CASO: SUPERVIEW MOBILE PARA ANDROID A fim de encerrar o presente trabalho e apresentar na prática um sistema de supervisão e aquisição de dados para ANDROID foi selecionado um sistema, dentre os disponíveis no Google Play, para servir como estudo de caso e ser analisado enquanto à sua apresentação, principais características, aplicação prática na indústria dentro daquela semântica das redes citada na Seção 1 e finalmente algumas telas gráficas com uma análise. Estas informações estão distribuídas nas subseções a seguir. 4.1 Apresentação SuperView Mobile é um sistema SCADA que permite monitorar e controlar remotamente equipamentos das plantas industrial, comercial ou residencial utilizando smartphones e tablets ANDROID. O sistema apresenta uma interface que segue os padrões de desenho ditados pelo Google para ANDROID e várias funcionalidades citadas e comentadas na Seção 3.3. No primeiro contato com o sistema, o usuário pode optar em configurar a aplicação de supervisão conforme seus conhecimentos ou acessar um assistente (wizard) de configuração que auxilia no desenvolvimento de uma aplicação completa. A comunicação com os equipamentos é realizada utilizando o protocolo Modbus TCP, portanto o dispositivo utilizado deve possuir WiFi, 3G, 4G, GPRS ou qualquer outro meio que permita conexão TCP/IP. A interface gráfica permite monitorar variáveis de equipamentos (tags) em telas de gráfico de tendência, lista (tag e valor), e mapa (inovadora em relação aos outros sistemas disponíveis) que permite a visualização dos dados tanto para leitura como para escrita. Os alarmes configurados estão automaticamente integrados ao sistema de notificação ANDROID. Os eventos importantes da aplicação, como ocorrência de alarmes 5 ou escrita em tags, são registrados em Log e podem ser visualizados com o Audit Trail . Neste estudo de caso foi utilizada a versão gratuita, SuperView Mobile Lite, disponível no site 6 Google Play . 4.2 Características 5 6 Suporte a múltiplas aplicações: Uma aplicação de supervisão é a representação de um processo real, físico, em um meio lógico, porém também operacional. Estas características permitem subdividir uma aplicação grande em partes para não sobrecarregar os recursos computacionais e manter uma boa resposta do sistema. Autenticação de usuários: Permitir o acesso remoto a um processo industrial é uma ferramenta preciosa para o operador, pois à medida que o mesmo é informado do que ocorre é possível usar a mesma ferramenta para disparar alguma ação corretiva. Porém, isso pode representar um risco, caso as ações remotas sejam executadas por pessoas não autorizadas. A autenticação de usuários é uma funcionalidade essencial para proteger as aplicações remotas e minimizar o risco de sua utilização. Conexões: A conexão com os equipamentos utiliza o protocolo industrial Modbus TCP, sobre TCP/IP ou o protocolo Modbus RTU, para comunicação via USB ou Bluetooth. Tags: As variáveis ou registradores lidos dos equipamentos são chamados de tags. Esses tags podem representar informações em alguns formatos como booleanos, inteiros, ponto Ferramenta utilizada para rastrear informações importantes ocorridas durante a supervisão. https://play.google.com/store flutuante ou data e hora. Um tag especial com recurso de geo-localização permite ao usuário informar seu posicionamento em um mapa através da latitude de longitude. Telas: as telas são representações em sinótico do processo real que está sendo supervisionado. As telas oferecidas neste sistema citadas na Seção 4.1 são objetivas, sem muita sofisticação, pois este sistema executa em dispositivos que podem estar limitados no tamanho de sua tela. Apesar disso, é possível visualizar alarmes, tendências e mapas com a indicação de valores dos tags. Alarmes: os alarmes são essenciais para o controle dos limites de operação estabelecidos no processo. O sistema de alarmes atua como complemento e não substitui o sistema de alarmes local. O usuário pode configurar alarmes de alta ou de baixa. Na sua ocorrência, o usuário será notificado diretamente no ANDROID. Fórmulas ou scripts: o módulo de fórmulas é uma ferramenta importante que permite agregar mais significado aos dados lidos nos tags e com isso construir condições mais ricas para a configuração de alarmes e exibição de objetos nas telas. Audit Trail: esta ferramenta registra eventos e ocorrências ocorridas durante a supervisão. Escrita de valores em tags, ocorrência de alarmes, queda de conexão, são exemplos de informações importantes que devem estar registradas e acessíveis caso seja necessário auditar a operação do sistema. Além das características citadas anteriormente, este sistema ainda permite o reconhecimento de alarmes recebendo notificações diretamente na barra de notificações do sistema, monitoração em segundo plano enquanto o usuário executa outra tarefa no dispositivo mobile, escrita em registradores de dispositivos conectados na rede em que o SuperView Mobile esta monitorando, importação e exportação de aplicações e também disponibiliza para o usuário estatísticas completas sobre a aplicação e sobre o uso do software. O SuperView Mobile é atualizado diretamente pelo Google Play, e o usuário é notificado quando existir uma atualização disponível. 4.3 Aplicação prática na indústria Em um ambiente industrial podemos tipicamente diferenciar três importantes categorias de rede contendo equipamentos e sistemas que interagem entre si para sincronizar informações e permitir uma visão transparente de tudo que está ocorrendo. Ver Figura 1. A figura abaixo ilustra a interoperabilidade entre esses componentes. 3. Topologia típica de redes em um ambiente industrial A rede de campo é responsável por dar visibilidade aos dados provenientes de sensores que estão medindo grandezas em um ambiente de supervisão. Equipamentos com conectividade TCP/IP usam essa rede para disponibilizar esses dados para a rede de automação, onde consumidores, como o sistema SCADA, os coletam e publicam para bancos de dados presentes na rede corporativa e que posteriormente serão consumidos por usuários em suas estações locais ou remotas. Dentro desta topologia, o SCADA SuperView Mobile em tablets ou smartphones entra como consumidor de informação e atuador remotos, conectando-se à rede de automação para acessar equipamentos. A mobilidade desta arquitetura dotado deste sistema proporciona ao operador a oportunidade de acompanhar o andamento de seu processo longe de sua posição de trabalho. Além de conectarem-se à rede de automação, os dispositivos ANDROID também podem conectar-se à rede corporativa para acessar bases de dados através de sistemas como ERP, MES, LIMS, PIMS, etc. 4.4 Exemplos de telas gráficas A visualização das variáveis supervisionadas e controladas em gráficos de tendência permite ao operador o acompanhamento da operação do processo a qualquer momento e em qualquer local da planta, contribuindo para a garantia da qualidade, redução de perdas e ações anteriores a falhas em potencial. Este sistema faz uso da forte interação dos sistemas móveis (tablets e smartphones) e ferramentas de mapas online e isto viabiliza a identificação geográfica dos tags. Este recurso de Localização é particularmente útil e didático em aplicações distribuídas em uma grande área, típicas em grandes plantas industriais, saneamento, logística, entre outras. Com o uso do GPS interno ao dispositivo e o acesso à Internet, os tags supervisionados podem ter suas coordenadas geográficas determinadas e apresentadas sobre um mapa ou imagem de satélite em sua exata localização, facilitando o acesso e a tomada de decisão baseado na localização do tag de interesse. As figuras 4, 5 e 6 a seguir apresentam telas de Alarmes, Tendência e Localização, respectivamente, do sistema SuperView Mobile rodando em um Tablet Android. Figura 4 – Tela de Alarmes Figura 5 – Tela de tendência Figura 6 – Tela de Localização 5. CONCLUSÃO Verificou-se que atualmente as arquiteturas computacionais presentes em tablets e smartphones comportam o desenvolvimento de aplicativos de produtividade que possam ser utilizados em ambientes industriais. Os sistemas operacionais para arquiteturas móveis apresentados e comparados demonstram evolução tecnológica e robustez, porém ficam atrás dos oferecidos para arquitetura PC. Na comparação das gerações de sistemas SCADA para PC e para arquiteturas móveis pode-se observar que os últimos ainda podem evoluir, puxados principalmente pela demanda do mercado por este tipo de tecnologia. O estudo de caso finaliza o trabalho apresentando um sistema SCADA para ANDROID, primeiro a ser oferecido no Google Play, que oferece aos seus usuários algumas funcionalidades de um SCADA para PC como: leitura de equipamentos, visualização em telas gráficas, configuração e notificação de alarmes e inova ao permitir geolocalizar um tag em um mapa online. Apesar da avaliação positiva, foi possível constatar que este tipo de sistema não pode substituir um sistema robusto para PC, pois a arquitetura no qual ele se baseia ainda não está madura o suficiente para ser utilizado em aplicações críticas. REFERÊNCIAS BIBLIOGRÁFICAS API, QuickStudy: Application Programmins Interface (API), acessado em 24 de Julho de 2012, disponível em http://www.computerworld.com/s/article/43487/Application_Programming_Interface APPLE, Apple Inc, acessado em 24 de Julho de 2012, disponível em http://www.apple.com/ BELL Michael, OLE for Process Control, Electricity + Control, June 1998, disponível em http://www.idc-online.com/technical_references/pdfs/instrumentation/oleprocesscontrol.pdf EMC Team, The HAL Handbook, 25 de Junho de 2007, disponível em http://linuxcnc.org/docs/2.1/HAL_User_Manual.pdf GOOGLE, Google Inc, acessado em 24 de Julho de 2012, disponível em http://www.google.com/about/company/ ICS, Industrial Control System, acessado em 25 de Julho de 2012, disponível em http://en.wikipedia.org/wiki/Industrial_control_system MODBUS, Modbus, acessado em 24 de Julho de 2012, disponível em http://pt.wikipedia.org/wiki/Modbus MODICON, Inc., Modicon Modbus Protocol Reference Guide, Industrial Automation Systems One High Street North Andover, Massachusetts 01845, June 1996. NFC, What is NFC? , acessado em 25 de julho de 2012, disponível em http://www.nfcforum.org/aboutnfc/ NCS, OFFICE OF THE MANAGER NATIONAL COMMUNICATIONS SYSTEM, Supervisory Control and Data Acquisition (SCADA) Systems, Novembro de 2004. Acessado em 25 de julho de 2012, Disponível em: http://www.ncs.gov/library/tech_bulletins/2004/tib_04-1.pdf OTG, Introduction to USB On-The-Go, acessado em 25 de Julho de 2012, disponível em http://www.usb.org/developers/onthego/USB_OTG_Intro.pdf STOUFFER Keith, FALCO Joel, KENT Karen, Guide to Supervisory Control and Data Acquisition (SCADA) and Industrial Control Systems Security - Recommendations of the National Institute of Standards and Technology. September 2006. ANVISA, RESOLUÇÃO RDC Nº 17, DE 16 DE ABRIL DE 2010, acessado em 25 de Julho de 2012, disponível em http://bvsms.saude.gov.br/bvs/saudelegis/anvisa/2010/res0017_16_04_2010.html FDA, CFR - Code of Federal Regulations Title 21, acessado em 25 de Julho de 2012, disponível em http://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfcfr/CFRSearch.cfm?CFRPart=11 DADOS DOS AUTORES Epifanio Dinis Novus Produtos Eletrônicos Ltda. Rua Álvaro Chaves 149 Tel: (51) 3323-3600 Fax: 55 (51) 3323-3644 [email protected] Tiago da Silva Cunha Novus Produtos Eletrônicos Ltda. Rua Álvaro Chaves 149 Tel: (51) 3323-3600 Fax: 55 (51) 3323-3644 [email protected] Fábio Coelho de Souza Silva Novus Produtos Eletrônicos Ltda. Rua Álvaro Chaves 149 Tel: (51) 3323-3600 Fax: 55 (51) 3323-3644 [email protected]