Baixe o app para aproveitar ainda mais
Prévia do material em texto
UNIVERSIDADE FEDERAL DO CEARÁ CENTRO DE CIÊNCIAS E TECNOLOGIA DEPARTAMENTO DE ENGENHARIA ELÉTRICA PROGRAMA DE PÓS-GRADUAÇÃO EM ENGENHARIA ELÉTRICA MESTRADO ACADÊMICO EM ENGENHARIA ELÉTRICA ITALO CASTELO BRANCO TECNOLOGIAS WEB APLICADAS NA AUTOMAÇÃO INDUSTRIAL UTILIZAÇÃO EM UM SISTEMA DE VARREDURA AÉREO FORTALEZA 2021 ITALO CASTELO BRANCO TECNOLOGIAS WEB APLICADAS NA AUTOMAÇÃO INDUSTRIAL UTILIZAÇÃO EM UM SISTEMA DE VARREDURA AÉREO Dissertação apresentada ao Curso de Mes- trado Acadêmico em Engenharia Elétrica do Programa de Pós-Graduação em Engenharia Elétrica do Centro de Ciências e Tecnologia da Universidade Federal do Ceará, como requisito parcial à obtenção do título de mestre em Engenharia Elétrica. Área de Concentração: Engenharia Elétrica Orientador: Prof. Dr. Fabrício Gonzalez Nogueira FORTALEZA 2021 Dados Internacionais de Catalogação na Publicação Universidade Federal do Ceará Biblioteca Universitária Gerada automaticamente pelo módulo Catalog, mediante os dados fornecidos pelo(a) autor(a) C345t Castelo Branco, Italo Rosse Alves. Tecnologias web aplicadas na Automação Industrial : utilização em um sistema de varredura aérea / Italo Rosse Alves Castelo Branco. – 2021. 73 f. : il. color. Dissertação (mestrado) – Universidade Federal do Ceará, Centro de Tecnologia, Programa de Pós- Graduação em Engenharia Elétrica, Fortaleza, 2021. Orientação: Prof. Dr. Fabrício Gonzalez Nogueira. 1. Automação Industrial. 2. Arquitetura em microsserviços. 3. API REST. 4. Serviços RESTFul. I. Título. CDD 621.3 ITALO CASTELO BRANCO TECNOLOGIAS WEB APLICADAS NA AUTOMAÇÃO INDUSTRIAL UTILIZAÇÃO EM UM SISTEMA DE VARREDURA AÉREO Dissertação apresentada ao Curso de Mes- trado Acadêmico em Engenharia Elétrica do Programa de Pós-Graduação em Engenharia Elétrica do Centro de Ciências e Tecnologia da Universidade Federal do Ceará, como requisito parcial à obtenção do título de mestre em Engenharia Elétrica. Área de Concentração: Engenharia Elétrica Aprovada em: BANCA EXAMINADORA Prof. Dr. Fabrício Gonzalez Nogueira (Orientador) Universidade Federal do Ceará (UFC) Prof. Dr. Bismark Claure Torrico Universidade Federal do Ceará (UFC) Prof. Dr. Pedro Pedrosa Rebouças Filho Universidade Federal do Ceará (UFC) Prof. Dr. Thiago Damasceno Cordeiro Universidade Federal de Alagoas (UFAL) À minha mãe, por ter acreditado e investido em mim. À minha família, por me suportar nos momentos difíceis. AGRADECIMENTOS Ao Prof. Dr. Fabrício Gonzalez, por me orientar durante a trajetória do mestrado. Aos professores do Departamento de Engenharia Elétrica, pela difusão do conheci- mento. Aos colegas do Grupo de Pesquisa em Automação, Controle e Robótica (GPAR), que contribuíram com suas experiências e disponibilidade. Aos colegas que participaram do projeto ISAA, pelas discussões e trabalho árduo. Ao Doutorando em Engenharia Elétrica, Ednardo Moreira Rodrigues, e seu assistente, Alan Batista de Oliveira, aluno de graduação em Engenharia Elétrica, pela adequação do template utilizado neste trabalho para que o mesmo ficasse de acordo com as normas da biblioteca da Universidade Federal do Ceará (UFC). Ao trabalho, empenho e dedicação de minha mãe, Maria Gorete Alves Castelo Branco, que hoje descansa em paz. E à EDP Brasil, EDP Pecém e ao programa de Pesquisa e Desenvolvimento Tecnoló- gico do Setor de Energia Elétrica da ANEEL por todo apoio recebido durante a elaboração e execução do projeto PD-07267-0016/2018. “Não podemos resolver nossos problemas com o mesmo pensamento que tínhamos quando os criamos.” (Albert Einstein) RESUMO Este trabalho apresenta o desenvolvimento de uma plataforma web para suporte operacional de um sistema de volumetria aérea e gerenciamento de inventário de carvão mineral. O sistema é composto por um Veículo Aéreo Não Tripulado equipado com um sensor de alta precisão que realiza o mapeamento dimensional das pilhas de minério e um aplicativo web, que é responsável pelo gerenciamento e monitoramento das informações coletadas. A plataforma web foco deste documento, atua de forma a oferecer serviços de persistência de dados, disponibilização de leituras e integração com o sistemas automatizados já existentes na planta. Sua construção foi baseada em uma arquitetura em microsserviços e a troca de informações é realizada por meio de uma API REST integrada. Para avaliação do desempenho foram determinados parâmetros de referência com base na quantidade esperada de usuários que utilizará a plataforma, executados ensaios nos comandos de leitura, criação, atualização e exclusão de dados e coletados os resultados para posterior comparação. Os resultados obtidos mostraram que o código foi capaz de trabalhar de forma satisfatória, operando com tempos de resposta inferiores aos estipulados e atendendo um número de requisições superior ao esperado. Ao final, são discutidas as contribuições, pontos de melhoria e trabalhos futuros. Palavras-chave: Automação. Arquitetura em microsserviços. API REST. Serviços RESTFul. ABSTRACT This work presents a web platform that supports the operation of an aereal volumetry and coal stock manegement system. This system is composed by a drone equipped with a LiDAR sensor for geometric mapping of stockpiles and a web application, responsable for monitoring and management of acquired information. The proposed web platform acts offering data persistence services, providing several measurements and implementing integration with other plant automation systems. It’s implementation was based on microservices architecture and data exchange is done by a integrated REST API. For performance evaluation, comparation between previosialy defined reference parameters and read, creation, update and exclusion data tests were performed. The results were promising, indicating acceptable code performance. Finally, contributions, improvement points and future works were discussed. Keywords: Automation. Microservices architecture. REST API. RESTFul services. LISTA DE FIGURAS Figura 1 – Visão geral - Transportador de Correia de Longa Distância (TCLD) . . . . . 19 Figura 2 – Balança dinâmica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 Figura 3 – Fotogrametria: em objeto (esquerda) e aérea (direita) . . . . . . . . . . . . 22 Figura 4 – Modicon 084 (esquerda) e CLPs modernos (direita) . . . . . . . . . . . . . 25 Figura 5 – IHM: gráfica (esquerda) e textual (direita) . . . . . . . . . . . . . . . . . . 25 Figura 6 – Arranjo clássico de rede industrial . . . . . . . . . . . . . . . . . . . . . . 27 Figura 7 – Arquitetura típica de um sistema automatizado . . . . . . . . . . . . . . . . 27 Figura 8 – Primeiro navegador e página web . . . . . . . . . . . . . . . . . . . . . . . 30 Figura 9 – Linguagens mais utilizadas durante os anos . . . . . . . . . . . . . . . . . . 31 Figura 10 – Modelo tradicional x modelo Ajax . . . . . . . . . . . . . . . . . . . . . . 32 Figura 11 – Exemplo de Application Programming Interface (API) Representational State Transfer (REST) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33 Figura 12 – Número total de pessoas utilizando a internet . . . . . . . . . . . . . . . . . 34 Figura 13 – Máquina real executando máquinas virtuais . . . . . . . . . . . . . . . . . 34 Figura 14 – Máquina real executando containers . . . . . . . . . . . . . . . . . . . . . 35 Figura 15 – Arquitetura simplificada do sistema proposto . . . . . . . . . . . . . . . . . 38 Figura 16 – Sistema de varredura aérea . . . . . . . . . . . . . . . . . . . . . . . . . . 39 Figura 17 – Arquitetura inicial do backend . . . . . . . . . . . . . . . . . . . . . . . . 42 Figura 18 – Arquitetura final do backend do Interface do Sistema Aéreo Automático (ISAA): baseada em microsserviços . . . . . . . . . . . . . . . . .. . . . . 43 Figura 19 – ISAA DB Server: Diagrama de esquema do banco de dados . . . . . . . . . 45 Figura 20 – ISAA DB Admin: Detalhe do phpMyAdmin . . . . . . . . . . . . . . . . . 45 Figura 21 – ISAA Modbus: Integração com automação existente . . . . . . . . . . . . . 47 Figura 22 – Aplicativo web lendo dados do ISAA DB Manager . . . . . . . . . . . . . 49 Figura 23 – Histórico de missões - visão do aplicativo web . . . . . . . . . . . . . . . . 54 Figura 24 – Arranjo empregado nos ensaios . . . . . . . . . . . . . . . . . . . . . . . . 57 Figura 25 – Tempos médios de execução: método GET . . . . . . . . . . . . . . . . . . 58 Figura 26 – Tempos médios de execução: método POST . . . . . . . . . . . . . . . . . 60 Figura 27 – Tempos médios de execução: método PUT . . . . . . . . . . . . . . . . . . 61 Figura 28 – Tempos médios de execução: método DELETE . . . . . . . . . . . . . . . 62 Figura 29 – Configurações de rede do CLP . . . . . . . . . . . . . . . . . . . . . . . . 71 Figura 30 – Configurações de dados . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71 Figura 31 – Alterações de lógica 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72 Figura 32 – Alterações de lógica 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73 Figura 33 – Alterações de lógica 3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74 Figura 34 – Alterações de lógica 4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75 LISTA DE TABELAS Tabela 1 – ISAA DB Server: Tabelas e suas funcionalidades . . . . . . . . . . . . . . 44 Tabela 2 – ISAA Modbus: Métodos HTML disponíveis . . . . . . . . . . . . . . . . . 47 Tabela 3 – ISAA Modbus: Conteúdo de "station.json" . . . . . . . . . . . . . . . . . . 47 Tabela 4 – ISAA DB Manager: Serviços disponíveis . . . . . . . . . . . . . . . . . . . 48 Tabela 5 – massDataByUser: Métodos HTML disponíveis . . . . . . . . . . . . . . . 49 Tabela 6 – massDataByUser: Descrição dos parâmetros . . . . . . . . . . . . . . . . . 49 Tabela 7 – massDataByPile: Métodos HTML disponíveis . . . . . . . . . . . . . . . . 50 Tabela 8 – massDataByPile: Descrição dos parâmetros . . . . . . . . . . . . . . . . . 51 Tabela 9 – pointCloudData: Métodos HTML disponíveis . . . . . . . . . . . . . . . . 52 Tabela 10 – pointCloudData: Descrição dos parâmetros . . . . . . . . . . . . . . . . . . 53 Tabela 11 – droneData: Métodos HTML disponíveis . . . . . . . . . . . . . . . . . . . 54 Tabela 12 – Parâmetros de referência . . . . . . . . . . . . . . . . . . . . . . . . . . . 56 Tabela 13 – Requisições por segundo: leitura . . . . . . . . . . . . . . . . . . . . . . . 59 Tabela 14 – Requisições por segundo: criação . . . . . . . . . . . . . . . . . . . . . . . 59 Tabela 15 – Requisições por segundo: atualização . . . . . . . . . . . . . . . . . . . . . 61 Tabela 16 – Requisições por segundo: exclusão . . . . . . . . . . . . . . . . . . . . . . 62 LISTA DE ABREVIATURAS E SIGLAS TCLD Transportador de Correia de Longa Distância API Application Programming Interface REST Representational State Transfer ISAA Interface do Sistema Aéreo Automático CIPP Complexo Industrial e Portuário do Pecém UTE usina termelétrica SIN Sistema Interligado Nacional CSU Continuous Ship Unloader TT torres de transferência STR Stacker & Reclaimer ONS Operador Nacional do Sistema Elétrico VANT Veículo aéreo não tripulado PID Proporcional, Integral e Derivativo CLP Controlador Lógico Programável IHM Interface Homem-Máquina HMI Human Machine Interface DCS Distributed Control System SCADA Supervisory Control and Data Aquisition ERP Enterprise Resource Planning CERN Conselho Europeu de Pesquisa Nuclear HTML HyperText Markup Language URI Uniform Resource Identifier HTTP HyperText Transfer Protocol W3C World Wide Web Consortium CSS Cascading Style Sheets XML Extensible Markup Language SSL Secure Sockets Layer AJAX Asynchronous JavaScript e XML SOA Service Oriented Architecture ESB Enterprise Service Bus GPS Global Positioning System VM Virtual Machine SO Sistema Operacional UG unidades de geração GPAR Grupo de Pesquisa Automação, Controle e Robótica UFC Universidade Federal do Ceará LiDAR Light Detection and Ranging IMU Inertial Measurement Unit ROS Robot Operating System RDBMS Relational Database Management System BD banco de dados SUMÁRIO 1 INTRODUÇÃO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 1.1 Motivações e justificativa do trabalho . . . . . . . . . . . . . . . . . . . . 17 1.2 Objetivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 1.3 Divisão do trabalho . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 2 O SISTEMA DE TRANSPORTE DE CARVÃO E SUAS NECESSIDADES 19 2.1 O sistema de transporte de carvão . . . . . . . . . . . . . . . . . . . . . 19 2.2 A necessidade de monitorar o pátio de carvão . . . . . . . . . . . . . . . 20 2.2.1 Balanças dinâmicas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 2.2.2 Fotogrametria aérea . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 3 FUNDAMENTAÇÃO TEÓRICA . . . . . . . . . . . . . . . . . . . . . . 23 3.1 A indústria e a Automação Industrial . . . . . . . . . . . . . . . . . . . . 23 3.1.1 Sistemas automatizados - o estado da arte . . . . . . . . . . . . . . . . . . 24 3.2 Tecnologias, arquiteturas e serviços web . . . . . . . . . . . . . . . . . . 29 3.2.1 O JavaScript . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30 3.2.2 Arquitetura baseada em serviços e serviços RESTful . . . . . . . . . . . . 31 3.2.3 Tecnologia de containers e aplicações web . . . . . . . . . . . . . . . . . . 33 4 METODOLOGIA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37 4.1 A solução de monitoramento proposta . . . . . . . . . . . . . . . . . . . 37 4.2 Sistema de varredura aérea . . . . . . . . . . . . . . . . . . . . . . . . . 38 4.3 Servidor de aplicação . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39 4.4 Serviços back-end do sistema de volumetria aérea . . . . . . . . . . . . . 40 4.5 ISAA DB Server . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43 4.6 ISAA DB Config . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44 4.7 ISAA Modbus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46 4.8 ISAA DB Manager . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48 4.8.1 massDataByUser . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48 4.8.2 massDataByPile . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49 4.8.3 pointCloudData . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51 4.8.4 droneData . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54 5 RESULTADOS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55 5.1 Metodologia de ensaios . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55 5.1.1 Resultados: comandos de leitura . . . . . . . . . . . . . . . . . . . . . . . 58 5.1.2 Resultados: comandos de criação . . . . . . . . . . . . . . . . . . . . . . 59 5.1.3 Resultados: comandos de atualização . . . . . . . . . . . . . . . . . . . . 60 5.1.4 Resultados: comandos de exclusão . . . . . . . . . . . . . . . . . . . . . . 62 6 CONCLUSÕES E TRABALHOS FUTUROS . . . . . . . . . . . . . . . 64 REFERÊNCIAS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66 APÊNDICES . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71 APÊNDICE A–ISAA MODBUS: ALTERAÇÕES NO CLP EXISTENTE 71 16 1 INTRODUÇÃO Desde o advento da Revolução Industrial, a necessidade de consumo humano fez com que máquinas e processos produtivos passassem por diversas evoluções e transformações, tanto no campo conceitual quanto no estrutural. Para que todas essas adequações fossem factíveis, a automatização de componentes era inevitável. Nesse ensejo, surgiu a Automação Industrial, que combinandosensores, CLPs, IHMs, redes industriais e sistemas SCADA ditaram por vários anos o padrão de como o ambiente do "chão de fábrica" deveria ser controlado, monitorado e supervisionado. Contudo, existem aplicações que, mesmo necessitando também de controle e aquisição de dados, não operam de forma satisfatória quando são empregados esses "pacotes de ferramentas clássicas" na sua construção. Um exemplo para esse caso particular, é o sistema de volumetria aérea desenvolvido para uma usina termelétrica instalada em São Gonçalo do Amarante no Ceará. É uma plataforma completamente automática, responsável pelo cálculo de volume e gestão de inventário do carvão mineral estocado no pátio de operações da usina. A aquisição de informações é realizada por um drone e pela instrumentação local existente e a visualização ocorre por meio de um aplicativo web. Dada a variedade de equipamentos e linguagens diferentes envolvidas em seu desenvolvimento, era pouco provável que uma solução comercial genérica atendesse aos requisitos desejados. Considerando essa problemática, foi desenvolvida uma API REST capaz de adquirir, persistir, disponibilizar, gerenciar e integrar todas as informações geradas e consumidas pelos diferentes módulos e tecnologias presentes na plataforma. Além disso, visando a máxima dispo- nibilidade operacional da solução, foi implantada uma arquitetura baseada em microsserviços, onde cada módulo funcional pode ser executado em um ambiente dedicado e independente. Ao contrário dos sistemas de automação comerciais, essa abordagem permite que qualquer aplicativo ou dispositivo que possua suporte para o protocolo HTTP envie e receba informações. Outras vantagens que merecem destaque são a possibilidade de realizar um escalonamento horizontal da aplicação, a capacidade de implantar uma política de replicação de serviços e a total independência de sistemas operacionais proprietários. 17 1.1 Motivações e justificativa do trabalho Dado o alto custo da tonelada de carvão mineral (EIA, 2021) aliada a confirmação de forte elevação no preço desta commodity 1 no mercado internacional (BUSINESSINSIDER, 2021), é simples inferir que os processos de aquisição, transporte e manejo desse insumo são cruciais para a saúde financeira e a correta operação de uma planta térmica de geração de energia elétrica. Seguindo esse raciocínio, foi explorada a tarefa de acompanhamento e geração de inventário de estoque de produto, tarefa essa que hoje é essencialmente manual no local foco do estudo e que possui suas informações de entrada e saída de produto com várias incertezas e erros de medição intrínsecos ao processo. Com isso, após análise da questão por parte da equipe de projeto, foi proposta uma solução completamente automática para o gerenciamento do inventário de carvão - o sistema de varredura aéreo. Com necessidade de integrar os diversos módulos, tecnologias e aplicativos que compõem esta solução, surgiu a proposta de criação da plataforma auxilar tema deste trabalho. 1.2 Objetivos Este trabalho visa o desenvolvimento de uma estrutura de software auxilar que permita adquirir, persistir, disponibilizar, gerenciar e integrar os diferentes módulos e tecnolo- gias presentes no sistema de varredura aérea automática. Além disso, os seguintes objetivos específicos também são considerados: – Promover integração entre diferentes tecnologias e linguagens de programação; – Permitir execução multiplataforma – Implantar acesso ao banco de dados de forma “transparente” – Aquisitar dados de automação existente – Disponibilizar informações adquiridas de forma simples e padronizada – Desenvolver solução automatizada industrial capaz de operar em sistema operacional Linux 1 Bem em estado bruto, de origem agropecuária ou de extração mineral ou vegetal, produzido em larga escala mundial e com características físicas homogêneas, seja qual for a sua origem, destinado ao comércio externo (OXFORD, 2021). 18 1.3 Divisão do trabalho O documento inicia com uma apresentação do local de implantação da plataforma em questão - o sistema de transporte de carvão mineral e o pátio de estocagem - e os desafios e necessidades deste. Em seguida, uma revisão bibliográfica sobre o estado da arte dos sistemas de automação tradicionais e dos sistemas web é realizada. Na sequência, o detalhamento da solução proposta é apresentada, juntamente com os ensaios a que foi submetida e resultados obtidos. Por fim, são realizadas as considerações finais e propostas para trabalhos futuros. 19 2 O SISTEMA DE TRANSPORTE DE CARVÃO E SUAS NECESSIDADES Nesta seção será apresentado o pátio de armazenamento de carvão mineral e seus sistemas auxiliares. 2.1 O sistema de transporte de carvão A EDP Pecém, sediada no Complexo Industrial e Portuário do Pecém (CIPP) da cidade de São Gonçalo do Amarante do estado no Ceará, é uma usina termelétrica (UTE) composta por duas unidades geradoras que totalizam 720 MW de potência disponibilizada para o Sistema Interligado Nacional (SIN). Interligando a usina e o porto do Pecém, um sistema de transportadores de correias foi criado com o objetivo de deslocar carvão mineral, o principal insumo do empreendimento, entre píer e o pátio de estocagem (ou pátio de carvão) da UTE. Esse sistema de transporte possui aproximadamente 13 km de extensão sendo conhecido como TCLD. A Figura 1 mostra um diagrama simplificado do sistema de transporte. Figura 1 – Visão geral - TCLD Fonte: Autor (2021). Chegando no porto, o carvão mineral é retirado dos porões dos navios por um equipamento especializado chamado de Continuous Ship Unloader (CSU), que descarrega o produto na primeira correia de um conjunto de sete transportadores tubulares, conhecidos simplesmente por "TCs" numerados de 01 à 07. O carvão então é movido entre os transportadores e suas respectivas torres de transferência (TT). Chegado na última correia, a TC07, o carvão é depositado em pilhas no pátio por máquinas empilhadeiras/retomadoras chamadas de Stacker & Reclaimer (STR) e assim permanecem até que seja necessário manejo ou utilização. 20 2.2 A necessidade de monitorar o pátio de carvão Considerando um despacho típico solicitado pelo Operador Nacional do Sistema Elétrico (ONS), com os dois geradores operando em carga nominal vinte e quatro horas por dia e sete dias por semana e considerando também que o pátio de carvão esteja completamente abastecido, a usina possui uma autonomia máxima de sessenta e dois dias corridos de operação. A princípio, esse intervalo oferece condições favoráveis para adequações em estratégias de negócio (aquisições baseadas em melhor preço, cancelamento/solicitação de cargas e longos tempos fora de operação por exemplo), porém, um fator limitante torna esses trâmites mais pragmáticos: o tempo médio entre a solicitação de carga de navio na mina e a descarga deste no porto do Pecém, leva sessenta dias em média. Dito isso, é possível deduzir que falhas nas estimativas de consumo de carvão e atrasos nas solicitações e entregas de matéria-prima causados por uma quantificação ineficiente podem levar a cenários operacionais críticos (BRANCO et al., 2020), que podem variar desde uma redução de carga não planejada até a perda total da geração por falta de insumo. Dada a elevada quantidade de matéria envolvida no processo, é crucial para as operações desse tipo de negócio a utilização de um sistema de manejo de matéria-prima eficiente e eficaz, que permita fornecer a máxima quantidade de minério exigida pela produção de energia e a mínima aquisição combustível sólido para ser estocado. Para que esse “balanço de massa” ocorra de forma financeiramente satisfatória, são necessárias informações precisas sobre a quantidade de material que entra e que sai do pátio de armazenamento. Esses dados possuem várias incertezas e imprecisões, de forma que erros na consolidação de um inventário de um pátio de carvão podem variar de algumas centenas de toneladas até milhares delas, a dependerde diversos fatores como métodos de medição empregados, periodicidade entre as medições, calibração de instrumentos e até mesmo a quantidade de umidade absorvida pelo carvão. Dessa forma, para que seja possível reduzir esse tipo de incerteza, um acompanhamento assertivo do estoque disponível deve ser realizado. Considerando as metodologias mais comuns empregadas nesse mercado (e também na usina), pode-se destacar a medição de vazão mássica de consumo por balança integradora e a fotogrametria aérea. 21 2.2.1 Balanças dinâmicas As balanças dinâmicas são dispositivos aplicados na medição contínua de sólidos a granel em transportadores de correia (GAO; PANG, 2009). Um diagrama esquemático pode ser visto na Figura 2. Figura 2 – Balança dinâmica Fonte: coalhandlingplants (2021). O funcionamento do aparato é simples: uma estrutura dotada de células de carga, instalada na face inferior da correia, cria uma zona capaz de monitorar a quantidade de massa que por ela atravessa. Essa informação é enviada para uma unidade eletrônica, onde é combinada com o sinal de velocidade linear para obter a taxa de variação da massa no tempo. A unidade eletrônica integra então todas essas medidas obtidas, o que confere o adjetivo "integradora" ao equipamento. Mesmo existindo modelos de balanças que ofereçam erros máximos de 0,5% ou e até 0,25% do valor lido, é comum que este tipo de instrumento não ofereça esse dado dentro dos padrões que afirmam seus fabricantes. As fontes desses desvios são variadas e trabalhos como os de (ZHAO; COLLINS, 2002) e (GAO; PANG, 2009) propõem tratativas para as variações de saturação em motores de tração, ruídos nos sensores e alterações de temperatura. Erros de calibração e desvios em ajustes mecânicos como variação da tensão mecânica da correia e desalinhamento de cavaletes (CONTROLSYSTEMS, 2020) também influenciam negativamente na medição. 2.2.2 Fotogrametria aérea Outra metodologia de medição usual consiste na realização de um mapeamento em três dimensões da região ou objeto de interesse. Nesse quesito, vale apontar uma técnica bastante difundida: a fotogrametria. A fotogrametria é uma alternativa que pode ser considerada 22 simples e de baixo custo, pois necessita basicamente de uma câmera fotográfica (item padrão dos aparelhos celulares atuais) e um aplicativo capaz de compor as imagens e reconstruir a superfície fotografada (diversas opções grátis e suporte multiplataforma). Além disso, a fotogrametria é extremamente flexível, pois pode ser empregada em aplicações como a prototipagem rápida de peças (BOCANET et al., 2017), na preservação de artefatos históricos e culturais (MOUSSA, 2014) e no mapeamento e cálculo de pilhas em pedreiras (RAEVA et al., 2016). Em resumo, a fotogrametria é uma técnica que permite reconstruir a posição, orientação, forma e tamanho dos objetos a partir de fotografias (VERMEER; AYEHU, 2018). A Figura 3 ilustra o processo. Figura 3 – Fotogrametria: em objeto (esquerda) e aérea (direita) Fonte: Esquerda: PixPro (2021) e direita: Leão (2019). Considerando o caso particular da fotogrametria aérea, uma câmera fotográfica acoplada a um veículo aéreo permite o mapeamento de grandes áreas, sendo este um recurso muito aplicado nas ciências geodésicas como a Cartografia e a Topografia. Contudo, a perda de qualidade e detalhes nas imagens podem ocorrer como consequência da refração atmosférica causada pelas longas distâncias do solo (VERMEER; AYEHU, 2018) durante a aquisição das imagens. Nesse caso, caso sejam necessárias fotografias mais precisas do local, é comum o emprego de um Veículo aéreo não tripulado (VANT) para desempenhar a tarefa. 23 3 FUNDAMENTAÇÃO TEÓRICA Neste capítulo serão abordados o histórico, a evolução e o estado da arte dos sistemas de Automação Industrial, bem como o surgimento, crescimento e as tecnologias aplicadas aos sistemas web. 3.1 A indústria e a Automação Industrial Entre os séculos XVIII e XIX a fabricação de produtos essenciais, como peças de vestuário por exemplo, era essencialmente artesanal. As peças produzidas eram rústicas, possuíam qualidade extremamente variável e a quantidade produzida era limitada. Considerando a necessidade de atendimento de uma demanda cada vez maior por melhores produtos, o aumento da produção (e dos lucros por consequência) era uma condição inevitável. Pensando nessa problemática, os empresários europeus da época (especialmente os resididos na Inglaterra, país que possuía uma burguesia rica e uma privilegiada localização geográfica que propiciava condições favoráveis para a exploração do comércio marítimo) investiram no desenvolvimento de novas máquinas e processos que fossem capazes de atingir esses objetivos. Nessa busca, surgiu o conceito conhecido atualmente como "indústria de manufatura" e, dado o impacto que este evento causou na sociedade, o período ficou marcando na história humana com a "Revolução Industrial"(BRITANNICA, 2021). Com o passar dos anos, a necessidade de consumo por produtos industrializados foi crescendo e fez com que a importância da indústria, dentro de um contexto global, também crescesse na mesma proporção. Esses produtos, de uma forma geral, ofereciam comodidade e entretenimento. Aliado a isso, descobertas realizadas em áreas como Medicina e Engenharia também foram materializadas pela indústria, propiciando assim melhorias significativas na condição de vida das pessoas. Essas melhorias permitiram uma maior longevidade ao ser humano, que descobriu que o seus bens mais valiosos são o seu tempo livre e bem-estar (CHADEEV; ARISTOVA, 2017). Mesmo a indústria oferecendo um suporte essencial para a evolução da sociedade e dispondo de máquinas e linhas de produção automáticas, muitas atividades desenvolvidas no chão de fábrica são extremamente dependentes de intervenção humana e é inegável que os processos fabris possuam ambientes e situações perigosas que oferecem riscos das mais variadas naturezas e níveis. Esse tipo de situação já tinha sido ludicamente retratada no filme 24 "Tempos Modernos" de Charles Chaplin. Como resultado, esse cenário forneceu subsídios para uma escalada na quantidade de acidentes de trabalho do setor (MONTHLYLABOR, 1951). Considerando a preservação da saúde dos trabalhadores sem causar interferências negativas nos níveis de produção (e nos lucros adquiridos por consequência), melhorias que garantissem que a exposição de pessoas a tarefas repetitivas e perigosas deveriam ser implantadas. Surgia assim o cenário para o desenvolvimento da Automação Industrial, nos moldes que é conhecida hoje. 3.1.1 Sistemas automatizados - o estado da arte Na década de 1950, os controladores automáticos (pneumáticos, hidráulicos, mecâ- nicos e elétricos) estavam completamente integrados em vários nichos da atividade industrial. Eram controladores simples e que atuavam em uma única variável, porém, eram poderosos o bastante para implementar uma lógica de controle com o princípio Proporcional, Integral e Derivativo (PID) nos sistemas que controlavam. Contudo, foi apenas em 1959 que os primeiros exemplares completamente eletrônicos foram amplamente fabricados e aceitos pelo mercado. Além de possuírem todas as funções implementadas pelas suas contrapartes eletromecânicas já existentes, os novos dispositivos possuíam habilidades mais aprimoradas como a capacidade de executar soma, multiplicação, potenciação e outras operações matemáticas diversas (BENNET, 2000). Mesmo sendo totalmente possível controlar plantas inteiras com esse tipo de equipa- mento, a combinação dessa abordagem com a dificuldade em implementar alterações na lógica funcional dos processos (originária do emprego de longas e complexas cadeias de circuitos de relés), elevavam os custos de produção e do produto final, pois requisitavam mais tempo de trabalho e uma maior quantidade de material para concluir até as mais simples mudanças. Além disso, essas tecnologias não conseguiam suprir o nível de segurança mínimoconsiderado adequado para as pessoas. Dessa forma, ao final da década de 1960 surgiu o Controlador Lógico Programável (CLP), um dispositivo baseado em semicondutores que permitia que complexas mudanças físicas fossem substituídas por simples alterações lógicas, desenvolvidas em um tipo de linguagem que todo especialista em eletrônica na indústria conhecia e utilizava bem (SAN- VER et al., 2018) - o Ladder. Dada essa flexibilidade, foi possível reduzir custos e automatizar tarefas que colocavam em risco a integridade física dos operários, tornado o CLP como padrão de facto para sistemas de controle automatizados. A Figura 4 mostra o Modicon 084, o primeiro CLP já produzido, ao lado de suas contrapartes modernas. 25 Figura 4 – Modicon 084 (esquerda) e CLPs modernos (direita) Fonte: Esquerda: Ferraz (2018) e direita: Schneider (2021), Siemens (2021) e Alibaba (2021). Com os avanços tecnológicos ocorridos nos ramos da Eletrônica e da Computação, dispositivos cada vez mais poderosos e uma maior diversidade de acessórios permearam a área produtiva, possibilitando a expansão das funcionalidades e capacidades dos CLPs. Um dos acessórios que merece destaque é a Interface Homem-Máquina (IHM) 1, que é um equipamento que disponibiliza uma interface gráfica capaz de conectar pessoas a máquinas (INDUCTIVEAU- TOMATION, 2018). Nessa interface é apresentada uma reconstrução animada do processo como forma de facilitar o controle e simplificar a identificação de falhas ou outras condições adversas indesejadas. Nos modelos mais modernos, versões simplificadas de sistemas operacionais, funcionalidades de data logger 2 e notificações por email também estão disponíveis. A IHM típica é ilustrada na Figura 5. Figura 5 – IHM: gráfica (esquerda) e textual (direita) Fonte: Esquerda: AUTOMATIONDIRECT (2020) e direita: Esis (2021). 1 Human Machine Interface (HMI) em língua inglesa 2 Data logger é um instrumento que monitora e registra alterações em condições ao longo do tempo (OMEGA, 2018). 26 Aplicações que empregam um dueto composto de CLP e IHM são extremamente simples e funcionais e podem ser consideradas como "base" para qualquer sistema automatizado. Contudo, esse tipo de solução cria "ilhas" de controle e informação, pois requer que o controlador seja instalado próximo ao sistema controlado ao custo de "confinar" os dados gerados nas imediações do processo local. Além disso, os modelos mais simples e antigos de IHM eram monocromáticas e apresentavam apenas informação textual. Isso reduz o tempo de reação dos operadores no caso de eventos de falha pois textos necessitam do sistema cognitivo e da memória, ao contrário dos estímulos visuais que operam no nível do sistema perceptual humano (MUNZNER, 2014). Nesse caso, painéis sinóticos poderiam ser empregados, porém, mesmo com um elevado número de fios no painel (a depender do número de sensores envolvidos) a quantidade de dados era mínima e a qualidade rudimentar (BAILEY; WRIGHT, 2003). Esse foi o mote para a criação dos fieldbuses. O barramento de campo, ou fieldbus, foi a solução encontrada para esse problema. Por meio de combinação entre camadas processamento de software e interfaces físicas interco- nectadas, era possível criar uma rede de dados capaz transportar informações entre os vários CLPs distribuídos pela fábrica e estender a distância existente entre um controlador e sua IHM. Classicamente, a camada física era formada por interfaces elétricas RS-485 e as ligações empre- gavam cabos de pares trançados ou fibras ópticas (a depender da distância envolvida) conectadas em "linha" ou "barra", garantindo o nome "barramento" ao arranjo. Já para a troca de dados, foram desenvolvidos protocolos de comunicação industriais. Esses protocolos podiam ser abertos (pode ser implementado por qualquer pessoa, sem custos) ou proprietários (desenvolvidos ou geridos por uma organização, necessário pagar licença). Dentre os mais populares é possível citar o Modbus, Profibus, AS-i e o Hart. Nos últimos anos, a interface Ethernet despontou como novo padrão elétrico e as conexões sem fio são cada vez mais aplicadas no chão de fábrica. A Figura 6 mostra um arranjo clássico de uma rede industrial. Mesmo após todos os avanços e novas tecnologias, o desafio do gerenciamento da informação criada no chão de fábrica ainda permanecia presente. Respostas para as perguntas: com que velocidade o produto "x" é fabricado ou qual é o nível de perda da máquina "y" são cruciais para o desenvolvimento de um plano de investimento assertivo, capaz de maximizar lucros e minimizar perdas. Nesse sentido, utilizando os barramentos de campo e seus protocolos de comunicação, surgiram os Distributed Control System (DCS) 3 e os Supervisory Control 3 Plataforma automatizada que combina IHM, solucionadores lógicos, historiador, gerenciamento de alarmes, banco de dados e aplicativos de engenharia em ambiente único (YOKOGAWA, 2021) 27 Figura 6 – Arranjo clássico de rede industrial Fonte: Autor - adaptado de Reynders et al. (2005). and Data Aquisition (SCADA) 4, formando a base dos sistemas automatizados disponíveis na atualidade. Apesar de apresentarem propostas funcionais diferentes, ambas plataformas aplicam o princípio de aquisição de dados como a característica mais relevante do sistema pois, além de eliminar a necessidade de coletar manualmente as informações da planta, reduz o tempo para que sejam criadas correlações entre essas informações coletadas. Essa situação cria condições para remover gargalos e atingir substanciais ganhos de produção (MACKAY et al., 2004). A Figura 7 ilustra uma arquitetura típica dos sistemas de automação modernos. Figura 7 – Arquitetura típica de um sistema automatizado Fonte: Electrical4U (2020). Na ilustração, é possível identificar que todos os equipamentos responsáveis pelo 4 É um tipo de sistema de controle que a arquitetura utiliza computadores, troca de dados via rede e interfaces gráficas que permitem controle e gerenciamento de alto nível em processos industriais (MUTHUKRISHNAN, 2021) 28 controle do processo fabril estão na base: sensores, atuadores e controladores. Esses dispositivos estão distribuídos dentro da planta e todas as informações oriundas deste nível são transportadas pelas redes de dados de controle - fieldbuses - compostas por enlaces cabeados empregando protocolos de comunicação como: Modbus, Profibus, Profinet e Ethernet/IP. No nível inter- mediário, estão alocados os servidores de aplicação, os servidores de bancos de dados e os sistemas SCADA. Todo o gerenciamento de alarmes, histórico de eventos e controle remoto de processos é realizado neste nível. Vale destacar uma característica comum das plataformas SCADA comerciais utilizadas neste nicho: a falta de interoperabilidade entre componentes. Essa situação dificulta e por vezes inviabiliza a troca de dados nesse nível. O topo da hierarquia está relacionado com o nível gerencial. Neste ponto, as informações adquiridas do campo e salvas no controle de processo, podem ser replicadas em sistemas do tipo Enterprise Resource Planning (ERP) e utilizadas para acompanhar a saúde financeira do negócio ou como fator de decisão para o desenvolvimento de novos planos de investimento, quer estes sejam de curto, médio ou longo prazo. Mesmo o conjunto formado por SCADA, redes, CLP e sensores sendo a configuração padrão dos sistemas industriais modernos, as necessidades geradas a partir das constantes mu- danças nas percepções humanas requerem que novos tipos de abordagem sejam incluídas nessas tecnologias. Dentre essas necessidades, é possível citar a disponibilização das informações oriundas do processo de produção em dispositivos e plataformas variadas (computadores, tablets, telefones móveis, aplicativos web, etc) e a inclusão de realidade aumentada. Nesse sentido, os grandes fabricantes mundiais enfrentam dificuldades pois, além do elevado investimento financeiro envolvido, a adoção de um modelo de negócio que dependade menos aplicativos ou equipamentos proprietários gera menos receita. Com isso, evoluções mais lentas são presencia- das. Contudo, pesquisadores independentes continuam a desenvolver trabalhos para esses casos: (NICOLA et al., 2018) apresenta uma aplicação que democratiza os dados de processo pela integração entre servidores web e sistemas de controle industriais via protocolo OPC e (BYVALTSEV, 2020) discute os avanços, aspectos e impactos da utilização de realidade aumentada na indústria. 29 3.2 Tecnologias, arquiteturas e serviços web Em 1989, o pesquisador do Conselho Europeu de Pesquisa Nuclear (CERN) Tim Berners-Lee escreveu um documento intitulado "Information Management: A Proposal". Esse documento continha uma abordagem para um problema crescente dentro do centro de pesquisa nessa período: a constante perda de informação de seus projetos. De acordo com o texto, a causa raiz para essa falha era a frequente troca de pessoas nos times de pesquisa. No geral, não era a total inexistência de documentação a maior preocupação, mas sim a dificuldade em identificar onde essa documentação estava guardada, já que eventualmente esses arquivos eram encontrados. Outro fator que contribuía para o problema era que o CERN funcionava como uma grande "teia de aranha", onde suas interconexões evoluíam com o tempo (BERNERS-LEE, 1989) e as pessoas novas que entravam também precisavam de algum tempo para se habituarem e entenderem onde poderiam encontrar as informações e os recursos que necessitavam para desenvolver seus trabalhos. Mesmo rejeitando inicialmente a ideia e escrevendo a nota "vago mas excitante" na capa do documento, em Setembro de 1990 o chefe de Tim, Mike Sendall, autorizou que seu subordinado trabalhasse no assunto. Como resultado do trabalho, em Outubro do mesmo ano, Tim desenvolveu os três conceitos fundamentais que formam a base dos sistemas web atuais: a linguagem HyperText Markup Language (HTML), o identificador Uniform Resource Identifier (URI) e o protocolo HyperText Transfer Protocol (HTTP). Além disso, ele escreveu também o primeiro navegador (chamado de WorldWideWeb) e o primeiro servidor web (o httpd) (WEBFOUNDATION, 2021). Seguindo no projeto, em Novembro de 1990 a primeira página web foi posta em operação (CAILLIAU, 1995). A Figura 8 mostra uma imagem do navegador e da página criada. Esses eventos formam o prelúdio da grande e interligada rede de computadores conhecida apenas como internet hoje. Com a criação do World Wide Web Consortium (W3C) em 1994, uma comunidade totalmente dedicada ao desenvolvimento de padrões abertos para a web, as tecnologias criadas por Tim Berners-Lee (que lidera até hoje a organização) puderam ser abertas ao público geral que rapidamente encontrou formas de expandir essas ideias, criando novas tecnologias que permitiam melhorar a experiência das pessoas durante a navegação, tornando-a mais rica e interativa. Nasciam assim as sucessivas revisões do HTML e a criação do Cascading Style Sheets (CSS), Extensible Markup Language (XML), Secure Sockets Layer (SSL), JavaScript, Flash, Asynchronous JavaScript e XML (AJAX) e outros que incluíram uma gama de conteúdos, funcionalidades e serviços (EVOLUTIONOFTHEWEB, 2012). 30 Figura 8 – Primeiro navegador e página web Fonte: Cailliau (1995). 3.2.1 O JavaScript Inicialmente, os portais da web eram construídos em puro HTML, o que tornava todo o conteúdo destas páginas estático. Isso quer dizer que para alterar ou atualizar qualquer característica de uma página que já estava apresentada na tela do computador cliente (cor, formato, texto, figura ou até uma nova página), era necessária uma nova interação com a máquina servidora, pois um novo documento HTML com o formato desejado deveria ser enviado e processado. Esse excesso de interações entre cliente e servidor elevava o tempo necessário para realizar algumas tarefas simples (como preencher um formulário) e reduzia a responsividade dos portais da internet, quando comparados com os aplicativos desenvolvidos para desktop. Considerando a necessidade de aprimorar essa experiência do usuário, em Novembro de 1995 a equipe desenvolvedora do Netscape Navigator criou uma nova linguagem chamada de LiveScript para seu navegador. Essa linguagem possuía dois propósitos básicos: fornecer subsídios para que administradores web gerenciassem seus servidores e conectassem suas páginas a outros serviços (bancos de dados por exemplo) e permitir que os desenvolvedores de portais incluíssem novas funcionalidades do lado do cliente que reduzissem a necessidade de troca de dados entre este e o servidor (GOODMAN, 2001). Em Dezembro de 1995, o LiveScript foi renomeado e lançado publicamente como JavaScript. O JavaScript é uma linguagem leve, interpretada, que possui funções de primeira classe (MDN, 2020) e que se tornou o padrão de facto na criação de sites para a web. De acordo com a pesquisa de 2020 realizada pelo portal Stack Overflow, 67,7% das pessoas que 31 participaram do processo afirmaram que utilizam JavaScript de forma regular. Esse resultado garantiu pelo oitavo ano seguido a hegemonia do JavaScript como linguagem de programação mais comum da web (STACKOVERFLOW, 2020). Um resultado semelhante também pode ser visto na plataforma colaborativa GitHub, como pode ser visto na Figura 9. Figura 9 – Linguagens mais utilizadas durante os anos Fonte: GitHub (2020). Mesmo sendo o "padrão da web" da atualidade, o JavaScript enfrentou muitos desa- fios de aceitação, dada sua natureza prolixa e problemas de incompatibilidade entre navegadores (DEGROAT, 2019). Foi então que em 2005, Jesse James Garrett apresentou uma proposta de abordagem utilizando múltiplas tecnologias, onde o JavaScript possuía um papel fundamental na integração de todos estes aplicativos. O artigo foi intitulado de "Ajax: A New Approach to Web Applications" e descrevia um modelo que permitia que páginas da web trocassem informação com servidores de forma assíncrona, ou seja, sem a necessidade de atualização do que está sendo apresentado e contrastando com o modelo síncrono tradicional ou clássico empregado até aquele momento. Com um interesse renovado sobre o assunto, a comunidade de desenvolvedores criou frameworks (como o JQuery) e bibliotecas que facilitavam o uso da linguagem e a criação de portais interativos. A Figura 10 mostra um comparativo entre os dois modelos abordados. 3.2.2 Arquitetura baseada em serviços e serviços RESTful Como comentado na seção 3.2.1 e ilustrado na Figura 10, a arquitetura clássica utilizada em sistemas web consiste na utilização de um aplicativo conhecido como navegador (ou browser em inglês) instalado na máquina cliente que solicita páginas, programas ou mídias a uma máquina servidora, que por sua vez responde as requisições do cliente com as informações ou arquivos desejados. Essa arquitetura é simples e funcional, porém, quando aplicada nesse 32 Figura 10 – Modelo tradicional x modelo Ajax Fonte: Garrett (2005). contexto enfrenta dificuldades quanto a escalabilidade e o desenvolvimento e integração de componentes (FIELDING, 2000). Essas dificuldades ocorrem devido a aplicação ser monolítica, ou seja, os componentes da aplicação são logicamente separados, porém são implementados como um único grande programa e essa abordagem torna mais difícil para substituir ou adaptar componentes sem afetar todo o sistema (TANENBAUM; STEEN, 2007), em especial quando considerados os sistemas de grande porte como os bancários ou industriais. Estas limitações de performance e usabilidade levaram ao desenvolvimento do Service Oriented Architecture (SOA), um estilo arquitetural destinado à construção de soluções empresariais baseadas em serviços (ROSEN et al., 2008). Contudo, o SOA possui uma forte tendência de ser dependente de Enterprise Service Bus (ESB) (RIZKI et al., 2020) ou outras tecnologias, sendo elas proprietárias em vários casos. Essas dificuldades e limitações levaram Roy Thomas Fielding apropor em sua tese de doutorado um novo estilo arquitetural que possuía a capacidade para tratar essas condições indesejadas: o REST. Essa metodologia definia claramente os papéis de clientes e servidores dentro desse contexto e reforçava a separação das tarefas em serviços independentes, que por sua vez eram integrados de uma forma simples e familiar para os desenvolvedores, pois empregava uma formatação padronizada de URI e o HTTP como protocolo de transporte (mesmo sem ter sido criado para este fim), em detrimento de outras tecnologias proprietárias. Outra vantagem dessa abordagem estava no fato de ser possível criar uma API para a rede, pois disponibilizaria um conjunto de pontos de entrada (entry points) e seus respectivos conjuntos de símbolos/parâmetros 33 associados, de tal sorte que um programador pudesse utilizar o código de outro, desde que fossem respeitadas as restrições criadas (FIELDING, 2000). Quando existe uma combinação dessas duas metodologias, ou seja, uma API REST, o resultado é chamado de serviço RESTful. A Figura 11 mostra um diagrama simplificado de uma API REST. Figura 11 – Exemplo de API REST Fonte: adaptado de Massé (2012). Na figura, é interessante apontar que estão sendo disponibilizados vários serviços independentes. Esses serviços podem estar contidos em um mesmo servidor ou distribuídos em servidores diferentes, dentro da estrutura de backend. Mesmo operando com apenas um único servidor, é possível obter a individualização dos serviços, de forma que falhas ou alterações em um deles não comprometa a funcionalidade dos demais. Dentro deste escopo, é possível considerar duas alternativas: a virtualização de hardware e software através de máquinas virtuais ou a utilização de containers, opção que será discutida na seção 3.2.3. 3.2.3 Tecnologia de containers e aplicações web Com as sucessivas melhorias e avanços tecnológicos que os dispositivos eletrônicos sofreram nas últimas décadas, sistemas computacionais começaram a despontar como solução para diversos tipos de problemas enfrentados. O sistema de localização geográfica por Global Positioning System (GPS), os sistemas de controle industriais com CLPs e aplicativos SCADA e a própria internet com seus variados tipos de serviços podem ser citados como exemplos. No caso particular da internet, de acordo com a Figura 12 extraída do portal ourworldindata.org, em 2016 já existiam 3,4 bilhões de pessoas com acesso a rede mundial de computadores, sendo este valor aproximadamente 46% da população total do planeta nesse mesmo ano (WORLDBANK, 2021). Considerando o contexto do atendimento dessa demanda sempre crescente por 34 Figura 12 – Número total de pessoas utilizando a internet Fonte: adaptado de Roser et al. (2015). recursos, é simples concluir que a escalabilidade é uma característica fundamental para o sucesso de uma plataforma web. Um sistema é dito escalável caso ele permaneça funcional quando ocorrer um aumento expressivo no número de recursos e no número de usuários (COULOURIS et al., 2012). Porém, independente do fato de ter sido implantado um conceito escalabilidade vertical (servidor com mais poder de processamento e maior capacidade) ou horizontal (mais servidores atendendo requisições de uma mesma tarefa), existe um custo financeiro envolvido que é diretamente proporcional a capacidade que se deseja dar ao sistema. Com isso, duas alternativas foram desenvolvidas: a virtualização e o emprego de containers. Virtualização na computação normalmente se refere a uma abstração de um compo- nente físico em um objeto lógico (PORTNOY, 2016). Isso quer dizer que uma máquina física pode ter todas as suas características de hardware e sistema operacional guardados em um único arquivo denominado de imagem, que por sua vez pode ser posteriormente executado por um aplicativo especial, comumente chamado de máquina virtual ou Virtual Machine (VM). A Figura 13 mostra um diagrama de um computador real executando máquinas virtuais. Figura 13 – Máquina real executando máquinas virtuais Fonte: Autor (2021). De acordo com a figura, é possível perceber que máquinas virtuais possuem uma 35 cópia digital de todas as partes que as máquinas reais possuem. É interessante notar também a existência do hypervisor, um aplicativo instalado no sistema operacional hospedeiro (host OS) responsável pelo gerenciamento das VMs e o acesso aos recursos físicos do computador. Esse tipo de abordagem permite a criação de diversas máquinas virtuais completamente funcionais e independentes dentro de uma única máquina real. Porém, é simples concluir que a capacidade de processamento da máquina real é um fator que limita fortemente a quantidade de máquinas virtu- ais que podem ser disponibilizadas para execução simultânea, dado o fato que cada virtualização possui sua cópia particular de um conjunto de hardware e sistema operacional. Nesse âmbito, outra tecnologia semelhante às VMs que merece atenção são os containers. Containers são instâncias executáveis de uma imagem, que nesse caso específico, possuem uma versão reduzida de um sistema operacional e todas as dependências necessárias para executar uma dada aplicação (POULTON, 2018), porém, sem a necessidade de integrar as informações de hardware. O controle e o gerenciamento dos containers é realizado por um aplicativo chamado de container engine. A Figura 14 ilustra o diagrama de blocos simplificado do processo. Figura 14 – Máquina real executando containers Fonte: Autor (2021). Como pode ser visto na figura, as imagens dos containers possuem idealmente o aplicativo que se deseja executar e suas dependências. Esse fato, reforçado pela cópia seletiva do Sistema Operacional (SO) convidado, garantem que menos espaço no disco rígido seja utilizado. Outra vantagem que merece destaque é a menor dependência de elevadas capacidades de memória e processamento da máquina real. A combinação dessas características pode ser entendida como menor investimento por aplicação específica disponibilizada. Essa situação de menor custo por plataforma específica forma uma condição ideal para o desenvolvimento e disponibilização de sites da web. Dentre as várias opções disponíveis, o 36 Docker tem sido uma opção bastante difundida e empregada pelos desenvolvedores na atualidade, sendo suportado por grandes empresas como a Amazon, Google e RedHat (BELAGATTI, 2020). Por esses motivos e por possuir uma versão sem restrições de uso sem necessidade de custos extras, o Docker foi escolhido como uma das soluções que compõem este trabalho. 37 4 METODOLOGIA Neste capítulo será apresentada metodologia utilizada para tratar o problema da área alvo, bem como a metodologia aplicada no desenvolvimento da plataforma proposta. 4.1 A solução de monitoramento proposta De acordo com o exposto nas seções 1.1 e 2, fica clara a necessidade de um acompa- nhamento cuidadoso do estoque contido no pátio de carvão da EDP Pecém. Atualmente, esse inventário é realizado combinando as informações do laudo de arqueação 1 oficial do navio (como entrada de estoque) e as leituras das balanças dinâmicas instaladas nas correias transportadoras internas (como saídas de estoque). Esses dados fornecem insights da dinâmica de consumo diário das unidades de geração (UG). Ao final de cada mês, ocorre uma consolidação de todo esse acompanhamento: são realizadas uma fotogrametria aérea e uma densimetria das pilhas no pátio de carvão, a fim de determinar a quantidade real de insumo restante. Da comparação de todas essas informações e da previsão de despacho do ONS, é gerado um relatório que norteia a estratégia de compra de carvão. Dito isso, é simples perceber que esse método é excessivamente manual e possui fontes variadas de erros, que podem ser resumidas basicamente por problemas na instrumentação, falhas nos apontamentos dos dados de entrada e saída de material e elevado intervalo de tempo entre cada fotogrametria. Para os piores casos, em alguns fechamentos anuaispodem ser detectadas divergências de milhares de toneladas. Com essa problemática em mente, o Grupo de Pesquisa Automação, Controle e Robótica (GPAR) da Universidade Federal do Ceará (UFC), propôs uma solução para essa situação: o desenvolvimento de uma plataforma automática de coleta e gerenciamento dos dados do pátio de carvão. A arquitetura simplificada do sistema é apresentada na Figura 15. Como pode ser visto na figura, a plataforma é formada basicamente por um sistema aéreo de varredura e um servidor de dados. Nas próximas seções, serão discutidos com mais detalhes cada um dos componentes. 1 Cálculos hidrostáticos para determinação da quantidade de carga embarcada ou desembarcada de um navio (LOPES, 2017). 38 Figura 15 – Arquitetura simplificada do sistema proposto Fonte: Autor (2021). 4.2 Sistema de varredura aérea O sistema de varredura aéreo, apresentado na Figura 16, possui como principal função a captura da geometria das pilhas de carvão. Com essa geometria bem definida, é possível estimar o volume contido no pátio que, ao ser combinado com os dados fornecidos pela densimetria, torna simples o cálculo da quantidade de matéria armazenada. Esse módulo de aquisição é composto por um VANT, um computador embarcado e um sensor Light Detection and Ranging (LiDAR). Esse sensor, que é um dispositivo capaz de medir distâncias até um objeto emitindo feixes de laser e processando a onda refletida (AMANN et al., 2001), foi selecionado pela equipe de projeto por possuir uma alta a capacidade de mapeamento, oferecendo uma nuvem de pontos 2 de alta densidade, capaz de reproduzir as mais tênues variações do terreno, mesmo na existência de interferências como poeira e gotículas de água suspensas no ar (SICK, 2021). Para a aplicação em questão, foi utilizado o sensor 3D LD-MRS de fabricação SICK AG. O computador embarcado (ASUS Tinker Board) faz a fusão das informações da nuvem de pontos, da Inertial Measurement Unit (IMU) e do GPS, de forma que esses pontos sejam georreferenciados. Além disso, métodos matemáticos como os filtros de Kalman e operações 2 Trata-se basicamente de um conjunto de pontos em um sistema 3D de coordenadas, normalmente definidos por coordenadas x, y, e z (SCIENCEDIRECT, 2021). 39 Figura 16 – Sistema de varredura aérea Fonte: Autor (2021). com quatérnions para normalização, translação e rotação dos pontos foram implantados por (FORTE, 2018) e (SANTOS et al., 2019) respectivamente. Outra função desse computador é estabelecer comunicação com a instrumentação interna do VANT, com o LiDAR via Robot Operating System (ROS) e com o servidor de aplicação. O ROS é um sistema de código aberto e meta operacional 3 que disponibiliza ambientes de desenvolvimento especializados diversos para o desenvolvimento de aplicações robóticas (PYO et al., 2017). Para o controle e acompanhamento do Wind 4 (quadricóptero de fabricação DJI) durante as missões de varredura, um aplicativo Android foi desenvolvido para trocar dados com o VANT por um link especial disponibilizado pelo controle remoto da aeronave. É interessante apontar que informações como umidade relativa do ar e velocidade do vento, sinais provenientes da estação meteorológica integrante da automação existente no local, são consideradas para a liberação de decolagem da aeronave. 4.3 Servidor de aplicação No servidor de aplicação estão alocados uma série aplicativos essenciais para o completo funcionamento do sistema automatizado proposto. O ambiente ROS comunica com sua contraparte para adquirir os dados de instrumentação e as nuvens de pontos adquiridas pelo VANT. Em seguida, as nuvens passam por um pré-processamento automático onde os pontos 3 Um sistema que executa processos como agendamento, carga, monitoramento e gerenciamento de erros utilizando uma camada de virtualização entre as aplicações e os recursos computacionais distribuídos (PYO et al., 2017). 40 são filtrados e segmentados, são criados os sólidos e calculados os volumes das pilhas. Como opção, ferramentas em Python foram criadas para permitir que um usuário edite as nuvens de forma manual, caso seja desejado. Outra funcionalidade consiste em hospedar o servidor da ISAA, aplicativo web desenvolvido como plataforma de gestão dos dados do pátio de carvão (SOUSA, 2020). Por fim, estão instalados também um aplicativo responsável por comunicar com a estação meteorológica, parte integrante do sistema de automação existente na usina, os serviços web, que fornecem dados para todas as diferentes necessidades e interfaces do sistema proposto e o servidor de bancos de dados, que possui a tarefa de salvaguardar todas as informações provenientes de todas as fontes que chegam ao servidor. Todas essas últimas funcionalidades citadas, serão tratados com mais detalhes nas seções a seguir. 4.4 Serviços back-end do sistema de volumetria aérea Como pôde ser visto na seção 4.1, o sistema de volumetria aéreo é composto por variados componentes e tecnologias, quer estes sejam de hardware ou software. Essa diversificação é oriunda dos desafios enfrentados por cada equipe de desenvolvimento e os objetivos finais que estas pretendiam alcançar. Contudo, era mandatória a necessidade de integração dessas entidades, visto que todas as informações deveriam ser reunidas de forma que fossem facilmente acessadas pelos usuários finais. Nesse aspecto, as soluções SCADA comerciais não poderiam ser empregadas pois não oferecem suporte direto para esse tipo de condição mais específica de diversidade. Além disso, outro agravante para a adoção de um sistema automação comercial reside no fato de esses aplicativos são, em sua grande maioria, desenvolvidos para o SO Microsoft Windows, ao contrário do sistema proposto que é completamente baseado em Linux. Uma possível solução para essa questão consistia em construir um middleware 4 dedicado para esse contexto. Esse programa poderia ser mais abrangente como proposto por (BLAGA, 2007) ou mais simplista e direto como o de (SCHOLL; ROCHA, 2016). Dado fato que todos os componentes da aplicação possuírem capacidade de comunicar via HTTP e do ISAA ser um aplicativo web, um direcionamento mais alinhado com a primeira opção foi adotado. Para o caso específico dos dados adquiridos, criados ou consumidos pelos compo- 4 É um software que fornece serviços e recursos comuns a aplicações (REDHAT, 2021), criando uma camada que mascara a heterogeneidade existente entre redes, hardware, sistemas operacionais e linguagens de programação (COULOURIS et al., 2012). 41 nentes do sistema de volumetria aérea, ocorre que uma grande parcela dessas informações não é utilizada no exato momento que é gerada. Com isso, o sistema deve oferecer um mecanismo de persistência que seja suportado por diferentes linguagens e que garanta que os dados julgados como importantes não sejam perdidos. Dada a característica web da aplicação outrora discutida, uma alternativa clássica trata da implantação de um sistema de banco de dados relacional ou Relational Database Management System (RDBMS) na lingua inglesa. Esse tipo de programa permite que o usuário crie, atualize e administre bases de dados de forma que estas sejam facilmente acessíveis (CODECADEMY, 2021). Contudo, a presença das diferentes linguagens de programação envolvidas (C++, Python, Java e Javascript) requerem soluções individuais e particulares para o acesso ao banco de dados (BD). Essa situação cria dificuldades extras tanto para o desenvolvimento quanto para a manutenção da plataforma automatizada, pois exige que o desenvolvedor incorpore em seu código as requisições e respostas enviadas ao BD e que o mantenedor seja mais especializado para executar a sua tarefa. Considerando essa problemática, foi criado um serviço RESTful para permitir que a plataforma ISAA tivesse acesso ao banco de dados. Essa abordagem garante uma completa abstração do BD, não sendo necessário assim qualquer tipo de conhecimento prévio sobre as particularidades deste e permitindoainda que qualquer linguagem que opere com simples métodos HTTP troque mensagens, independente se estas sejam de leitura ou de escrita. Esse tipo de aplicação é semelhante às proposições de (MEDRANO et al., 2018) e (HIRANKITTI, 2019). Dada a flexibilidade promovida pelo estilo arquitetural adotado, a solução foi expandida para outros aplicativos que habitam no backend da plataforma de aquisição, dentre eles é interessante apontar o código que implementa a interface de comunicação com a automação existente, o de recepção, guarda e busca de nuvens de pontos, a lógica que recebe e salva os sinais oriundos da instrumentação interna do VANT e os aplicativos de configuração e controle do banco de dados. Nessa condição, mesmo considerando a existência de diversos serviços completamente independentes, a aplicação ainda possuia um forte alinhamento monolítico, dadas as interdependências entre os blocos que a compõem. Um diagrama ilustrativo é apresentado na Figura 17. Mesmo sendo uma opção completamente funcional, a operação da plataforma nessa configuração pode se tornar instável quando ocorrer a concorrência por recursos de proces- samento e memória durante períodos de elevada utilização. Esses eventos podem levar a um colapso que gere a perda total de funcionalidade, nos piores casos. 42 Figura 17 – Arquitetura inicial do backend Fonte: Autor (2021). Dessa forma, visando promover uma maior tolerância às falhas e a outras condições operacionais restritivas, quer estas sejam adversas ou planejadas, foi incorporada a tecnologia de containers na plataforma. Encapsulando os módulos funcionais auxiliares e de serviço em ambientes virtuais que exijam um baixo custo computacional, é possível garantir uma completa independência entre todas as partes. Além disso, é possível mover completamente um serviço qualquer de uma máquina física para outra sem a necessidade de realizar nenhuma configuração extra, pois o ambiente contido já está completamente preparado. Outra vantagem dessa abordagem consiste na possibilidade de replicar um mesmo serviço quantas vezes forem necessárias, a depender da capacidade computacional da máquina hospedeira. Essa estratégia pode ser implementada em uma mesma máquina ou em várias máquinas diferentes, permitindo elevar a disponibilidade individual de cada componente e a velocidade final de resposta do portal, sendo que mais instâncias de um mesmo serviço estarão disponíveis para atender as solicitações dos usuários. Para a aplicação em questão, foi empregado o Docker para a tarefa de gerenciar e controlar os containers criados. A Figura 18 mostra a arquitetura final proposta. Com isso, é possível afirmar que uma arquitetura baseada em microsserviços foi instituída. As seções a seguir descreverão com mais detalhes cada módulo funcional apresentado. 43 Figura 18 – Arquitetura final do backend do ISAA: baseada em microsserviços Fonte: Autor (2021). 4.5 ISAA DB Server Dada a quantidade de dados criada e consumida por todos os módulos funcionais, aliado ao fato de que esse consumo pode ocorrer de forma assíncrona e dependente eventos, quer estes sejam disparados automaticamente ou pelos usuários, mostrou que a aplicação possuía a necessidade de promover a implantação de um mecanismo capaz de salvaguardar e recuperar essas informações quando fosse desejado. Em aplicações industriais e web, é comum aplicar um banco de dados relacional para desempenhar esse papel. No sistema de aquisição proposto, o BD escolhido foi o MariaDB. A escolha do MariaDB como servidor de banco de dados foi fundamentada nas suas características: é um aplicativo de código aberto, sem custos de utilização ou licenças (para o caso em questão) e é suportado por diversos provedores de serviços web, incluindo a Amazon Web Services e o Google Cloud Platform. Além disso, o MariaDB foi criado pelos mesmos desenvolvedores do MySQL (MARIADB, 2021), o que confere compatibilidade entre plataformas e uma sólida base de conhecimento sobre o assunto. Outro fator contribuinte, foi a utilização desse tipo de servidor pelo sistema SCADA atualmente utilizado pelos transportadores 44 de correia. O esquema do banco de dados é apresentado na Figura 19. As tabelas foram criadas de forma a atender as necessidades gerais de cada aplicativo, com as informações organizadas de forma simples e intuitiva. A função de cada tabela é apontada na Tabela 1. Tabela 1 – ISAA DB Server: Tabelas e suas funcionalidades Nome Função types list Lista contendo tipos de registro enviados pelo ISAA status list Lista de estados de validade da varredura do drone pcd Dados adquiridos pelo drone durante missão de varredura drone data Dados gerais do drone e das missões volume Volume das pilhas calculado pelo aplicativo de tratamento de nuvem de pontos density Densidade declarada/medida das pilhas de carvão mass Dados de massa diários gerados de forma manual ou automática masss totalized Massa das pilhas totalizadas automaticamente (regime diário) last mass reference Massa considerada como "última referência válida" last density reference Densidade considerada como "última referência válida" latest register Listagem de registros gerados/declarados para consultas rápidas do ISAA Fonte: Autor (2021). 4.6 ISAA DB Config Outra parte de extrema importância para a construção da plataforma era a implantação de um ambiente de desenvolvimento que permitisse a criação de forma simples e prática das tabelas, elementos e condições necessárias para que o BD que suportasse a lógica do negócio. No caso mais específico do MariaDB, não existe uma ferramenta de administração oficial que ofereça uma interface gráfica, entretanto, muitas opções de aplicativos, quer estes sejam pagos ou não, estão disponíveis no mercado. Aproveitando a condição de compatibilidade existente entre o MariaBD e o MySQL comentada na seção 4.5, foi adotado o phpMyAdmin, aplicativo completamente sem custos, criado para web e contando com mais de quinze anos de experiência, sendo empregado no desenvolvimento dos mais variados projetos web (PHPMYADMIN, 2021). No backend do ISAA, foi utilizada a versão Docker da citada aplicação. A Figura 20 mostra uma ilustração do aplicativo. A existência da imagem pronta para criação de container foi um fator determinante para a escolha do phpMyAdmin, pois facilitou o processo de criação e disponibilização de um módulo auxiliar alinhado com o contexto da aplicação ofertada. Outras vantagens consistem na existência das seguintes ferramentas: árvore com hierarquia de bancos e tabelas existentes no servidor, gerenciamento de usuários e senhas e importação/exportação de backups em di- 45 Figura 19 – ISAA DB Server: Diagrama de esquema do banco de dados Fonte: Autor (2021). Figura 20 – ISAA DB Admin: Detalhe do phpMyAdmin Fonte: Autor (2021). versos formatos. Essas características são extremamente interessantes também nas tarefas de manutenção futura da plataforma. 46 4.7 ISAA Modbus Para um correto funcionamento e manutenção da vida útil do sistema de volumetria, o conhecimento da situação climática no momento da varredura aérea torna-se essencial e mandatório. Mesmo contando com características industriais como a capacidade de enfrentar ventos com velocidade de 10 m/s e IP56 5 (DJIARSMADRID, 2020), devido a proximidade da usina com a região litorânea oeste do estado do Ceará, é comum a ocorrência de rajadas de vento com velocidades acima desse limite, bem como a existência de altos níveis de umidade com chuvas repentinas no pátio de carvão, especialmente durante o período da quadra chuvosa da região. Avaliando a questão funcional da plataforma de captura, variações bruscas de velocidade reduzem a qualidade da nuvem de pontos coletada, provocando maiores erros na estimação de volume e, por consequência, provocando distorções no valor final da quantidade de matéria contida nas pilhas. Considerando essa dificuldade, foi prevista a verificação regular dos parâmetros climáticos locais.Essas informações seriam então utilizadas como sinais "permissivos" para a liberação de voo do drone. Para que isso fosse possível, era necessário estabelecer uma integração entre a aplicação proposta e a estação meteorológica existente, item que pertence a rede de automação local do pátio de carvão. Essa tarefa foi implementada pelo serviço ISAA Modbus. A Figura 21 apresenta a arquitetura da rede após incluída a conexão com o citado módulo. O módulo desenvolvido em JavaScript, comunica com o CLP do sistema de aspersão das pilhas de carvão via protocolo Modbus TCP (com o auxílio da biblioteca modbus-serial) como servidor, com o objetivo de receber os dados que este coleta da estação meteorológica. Essa conexão indireta foi implantada devido a característica "mestre - escravo" intrínseca do Modbus (cliente - servidor para a vertente TCP), que permite a existência de apenas um único elemento "ativo"6 na rede e essa função já estava delegada ao controlador da asperão. Com isso, alterações na lógica do CLP foram realizadas, de forma a compatibilizar o serviço proposto com a condição operacional do conjunto. As configurações necessárias e as lógicas inseridas são mostradas no Apêndice A. Pelo lado da API REST, foram criados os comandos descritos na Tabela 2. O comando retorna um arquivo JSON contendo as variáveis climáticas monitoradas pela estação meteorológica e o estado dos links de dados estabelecidos entre o módulo de 5 Metodologia que define o nível de proteção de um equipamento contra a entrada de objetos sólidos estranhos, como poeira, e água (LEGRAND, 2017). 6 No caso do Modbus, "ativo" pode ser interpretado como mestre para o RTU e cliente para o TCP. 47 Figura 21 – ISAA Modbus: Integração com automação existente Fonte: Autor (2021). Tabela 2 – ISAA Modbus: Métodos HTML disponíveis Método Comando Descrição GET http://<host>:<port>/assets/station.json Retorna arquivo JSON com grandezas climáticas POST - - PUT - - DELETE - - Fonte: Autor (2021). aquisição e o CLP e entre o CLP e a estação. A lista de variáveis é mostrada na Tabela 3. Tabela 3 – ISAA Modbus: Conteúdo de "station.json" Variável Faixa Unidade Descrição plcComms false:offline - true:online - Estado da comunicação: módulo e CLP stationComms false:offline - true:online - Estado da comunicação: CLP e estação intVoltage 7 - 16,17 V Tensão interna da fonte da estação intTemperature -40 - +85 ◦C Temperatura interna da estação intHumidity 0 - 100 % Umidade relativa do ar interna da estação extTemperature -40 - +85 ◦C Temperatura externa extHumidity 0 - 100 % Umidade relativa do ar externa extPressure 490 - 1090 hPa Pressão barométrica solarRadiation 0 - 1539 W/m2 Radiação solar windVelocity 0 - 30 m/s Velocidade do vento windDirection 0 - 359 graus Direção do vento Fonte: Autor (2021). Com os dados sendo continuamente coletados (ciclos de 1 segundo), a interface de controle da missão de varredura possui plenas condições de realizar uma liberação assertiva de 48 voo, garantindo assim as condições mínimas de conservação do equipamento, pois a decisão é baseada em informações em tempo real da situação climática do pátio de carvão. 4.8 ISAA DB Manager O ISAA DB Manager é o principal módulo de serviços do ISAA. Ele fornece total abstração do banco de dados, não sendo necessário o conhecimento prévio dos desenvolvedores dos outros aplicativos da plataforma de aquisição sobre o funcionamento interno do servidor ou sobre a linguagem SQL utilizada na programação do BD. Para viabilizar a troca de requisições entre essas diferentes aplicações, foram padronizadas mensagens HTML onde cada serviço possui endpoints que disponibilizam ações dedicadas, criadas de acordo com os dados contidos no BD e as necessidades específicas de cada aplicativo que utilizará essas informações. A divisão e descrição dos serviços é mostrada na Tabela 4 e um exemplo de leitura de dados (interface web ISAA) é ilustrada pela Figura 22. Tabela 4 – ISAA DB Manager: Serviços disponíveis Serviço Endpoint Descrição massDataByUser massDataByUser Troca registros organizados por usuário massDataByPile formData Troca registros organizados por pilhalatestRegisterssearchRegisters closingData pointCloudData pointCloudData Troca registros e arquivos de nuvem de pontos droneData droneData Troca registros de dados de instrumentação do VANTdeltaData Fonte: Autor (2021). Uma descrição mais detalhada de cada serviço será realizada na sequência. 4.8.1 massDataByUser O serviço massDataByUser troca mensagens contendo dados de massa das pilhas, totalizadas por usuário do pátio de carvão. Essa condição permite que o ISAA extraia e apresente em qualquer tempo e de forma simples e intuitiva um resumo dos quantitativos atuais e passados do estoque de insumo. Os comandos criados são apresentados na Tabela 5. As respostas das requisições são retornadas em forma de texto no formato JSON e os parâmetros e seus respectivos formatos são indicados na Tabela 6. É interessante notar que as datas são representadas por textos que respeitam o formato interno do MariaDB. 49 Figura 22 – Aplicativo web lendo dados do ISAA DB Manager Fonte: SOUSA (2020). Tabela 5 – massDataByUser: Métodos HTML disponíveis Método Comando Descrição GET http://<host>:<port>/massDataByUser Retorna massa totalizada por usuário dos últimos 9 dias http://<host>:<port>/massDataByUser? initDate=<date1>&endDate=<date2> Retorna massa totalizada por usuário para o período especificado POST - - PUT - - DELETE - - Fonte: Autor (2021). Tabela 6 – massDataByUser: Descrição dos parâmetros Parâmetro Formato/Tipo Descrição host IPv4 inteiro 32 bits Nome ou endereço IP do servidor port Inteiro sem sinal 16 bits Número da porta TCP no servidor date1 yyyy-mm-dd hh:mm:ss Data inicial do período desejado date2 yyyy-mm-dd hh:mm:ss Data final do período desejado Fonte: Autor (2021). 4.8.2 massDataByPile O massDataByPile é o serviço que trata das leituras e escritas de informações relacionadas com as entradas e saídas de material das pilhas. Isso permite que o ISAA monitore e intervenha (caso necessário) em todas movimentações de carvão, fazendo com que o inventário do pátio seja efetivamente realizado. No caso particular das intervenções manuais, dados de massa e densidade podem ser enviados. Os registros de densidade são combinados com o volume calculado a partir da nuvem de pontos (oriundo do serviço pointCloudData) para determinar a massa contida. Já os registros de massa manuais são utilizados para as situações onde não foi 50 possível realizar a varredura com o aparato de mapeamento aéreo (manutenção ou condições climáticas adversas) ou quando são necessários pequenos ajustes de estoque. Os comandos disponíveis são apresentados na Tabela 7. Tabela 7 – massDataByPile: Métodos HTML disponíveis Método Comando Descrição GET http://<host>:<port>/latestRegisters Retorna registros do dia atual criados pelos usuários http://<host>:<port>/searchRegisters? initDate=<date1>&endDate=<date2> Retorna registros criados para o período solicitado http://<host>:<port>/closingData? initDate=<date1>&endDate=<date2> Retorna registros de massa totalizados por dia para o período solicitado POST http://<host>:<port>/formData + bodyData: { mdate:<mdate>, type:<type>, created_by:<userID>, stp_1a:<stpValue>, stp_1b:<stpValue>, stp_2a:<stpValue>, stp_1b:<stpValue>, stp_2c:<stpValue>, stp_2d:<stpValue>, stp_3a:<stpValue>, stp_3b:<stpValue>, } Cria registros de entrada e saída de material e densidade PUT http://<host>:<port>/latestRegisters + bodyData: { id:<id>, mdate:<mdate>, changed_by:<userID>, destination:[ {stockpile:"1A",qtdd:<stpValue>}, {stockpile:"1B",qtdd:<stpValue>}, {stockpile:"2A",qtdd:<stpValue>}, {stockpile:"2B",qtdd:<stpValue>}, {stockpile:"2C",qtdd:<stpValue>}, {stockpile:"2D",qtdd:<stpValue>}, {stockpile:"3A",qtdd:<stpValue>}, {stockpile:"3B",qtdd:<stpValue>}, ]} Altera registros de entrada e saída de material e densidade vinculados a um ID existente no
Compartilhar