CONTROLAR AS PORTAS DE COMUNICAÇÃO TCP/IP UTILIZANDO SOCKET JAVA PARA MONITORAMENTO DE EQUIPAMENTOS



Documentos relacionados
Sistemas Distribuídos

DESENVOLVENDO APLICAÇÃO UTILIZANDO JAVA SERVER FACES

Sistemas Distribuídos. Professora: Ana Paula Couto DCC 064

Programação Orientada a Objetos com PHP & MySQL Cookies e Sessões. Prof. MSc. Hugo Souza

Plano de Gerenciamento do Projeto

Rotina de Discovery e Inventário

Java para Desenvolvimento Web

Histórico de Revisão Data Versão Descrição Autor

Noções de. Microsoft SQL Server. Microsoft SQL Server

Um Driver NDIS Para Interceptação de Datagramas IP

TRBOnet MDC Console. Manual de Operação

Versão /10. Xerox ColorQube 9301/9302/9303 Serviços de Internet

NETALARM GATEWAY Manual Usuário

Manual do sistema SMARsa Web

IMPLEMENTAÇÃO DE SOCKETS E THREADS NO DESENVOLVIMENTO DE SISTEMAS CLIENTE / SERVIDOR: UM ESTUDO EM VB.NET

Comm5 Tecnologia Manual de utilização da família MI. Manual de Utilização. Família MI

CONCEITOS INICIAIS. Agenda A diferença entre páginas Web, Home Page e apresentação Web;

Associação Carioca de Ensino Superior Centro Universitário Carioca

Satélite. Manual de instalação e configuração. CENPECT Informática cenpect@cenpect.com.br

Hardware (Nível 0) Organização. Interface de Máquina (IM) Interface Interna de Microprogramação (IIMP)

MÓDULO 7 Modelo OSI. 7.1 Serviços Versus Protocolos

Manual de Instalação. GPRS Universal

TRANSMISSÃO DE DADOS Prof. Ricardo Rodrigues Barcelar

Introdução ao Modelos de Duas Camadas Cliente Servidor

SMTP, POP, IMAP, DHCP e SNMP. Professor Leonardo Larback

Manual de Instalação do Agente Citsmart

5 Mecanismo de seleção de componentes

Desenvolvimento WEB II. Professora: Kelly de Paula Cunha

Automação Industrial Parte 2

Sistema de Telemetria para Hidrômetros e Medidores Aquisição de Dados Móvel e Fixa por Radio Freqüência

INDICE 1. INTRODUÇÃO CONFIGURAÇÃO MÍNIMA INSTALAÇÃO INTERLIGAÇÃO DO SISTEMA ALGUNS RECURSOS SERVIDOR BAM...

1 Sumário O Easy Chat Conceitos Perfil Categoria Instalação O Aplicativo HTML...

2 Diagrama de Caso de Uso

CDE4000 MANUAL 1. INTRODUÇÃO 2. SOFTWARE DE CONFIGURAÇÃO 3. COMUNICAÇÃO

ALTERNATIVA PARA CONEXÃO VIA INTERNET DE IP MASCARADO A IP REAL

ESPECIFICAÇÕES TÉCNICAS e OPERACIONAIS. BioMatch Server e BioMatch Client

Rede Corporativa. Tutorial 10 mar 2009 Fabio Montoro. Introdução

Índice. Para encerrar um atendimento (suporte) Conversa Adicionar Pessoa (na mesma conversa)... 20

MANUAL DE UTILIZAÇÃO Aplicativo Controle de Estoque Mobile

PARANÁ GOVERNO DO ESTADO

MANUAL DE UTILIZAÇÃO Aplicativo Controle de Estoque Desktop

PÉGASUS (ETHERNET POCKET) STUDIO V1.00 MANUAL DE INSTALAÇÃO E OPERAÇÃO

Lista de Erros Discador Dial-Up

SISTEMAS OPERACIONAIS CAPÍTULO 3 CONCORRÊNCIA

Servidor de Gerenciamento de Chaves de Encriptação Aérea OTAR

SUMÁRIO Acesso ao sistema... 2 Atendente... 3

O programa Mysql acompanha o pacote de instalação padrão e será instalado juntamente com a execução do instalador.

Aplicativo da Manifestação do Destinatário. Manual

Wireshark. Captura de Protocolos da camada de aplicação. Maicon de Vargas Pereira

Cadastramento de Computadores. Manual do Usuário

APLICAÇÃO REDE APLICAÇÃO APRESENTAÇÃO SESSÃO TRANSPORTE REDE LINK DE DADOS FÍSICA 1/5 PROTOCOLOS DE REDE

Administração de Sistemas de Informação I

Conceitos Básicos de Telefonia Celular

Permite a coleta de dados em tempo real dos processos de produção, possuindo, também, interfaces para a transferência dos dados para os sistemas

Curso de Aprendizado Industrial Desenvolvedor WEB

Registro e Acompanhamento de Chamados

Software de segurança em redes para monitoração de pacotes em uma conexão TCP/IP

Manual de Usuário INDICE

ori Portaria á su R al Time e U o dlauna M

Aplicação Prática de Lua para Web

04/08/2012 MODELAGEM DE DADOS. PROF. RAFAEL DIAS RIBEIRO, MODELAGEM DE DADOS. Aula 2. Prof. Rafael Dias Ribeiro. M.Sc.

Sistema de Controle de Solicitação de Desenvolvimento

Administração do Windows Server 2003

O que são sistemas supervisórios?

Uma Proposta de Tecnologia Embarcada na Internação Domiciliar Capítulo 3 Implementação do SMD 93

Projeto Arquitetural do IEmbedded

MODULO SERVIDOR DE GERENCIAMENTO DE CHAVES DE ENCRIPTAÇÃO AÉREA OTAR P25, FASE 2

Java II. Sérgio Luiz Ruivace Cerqueira

Relatorio do trabalho pratico 2

ECD1200 Equipamento de Consulta de Dados KIT DE DESENVOLVIMENTO

Documento de Análise e Projeto VideoSystem

DarkStat para BrazilFW

MINISTÉRIO DO DESENVOLVIMENTO AGRÁRIO SUBSECRETARIA DE PLANEJAMENTO, ORÇAMENTO E ADMINISTRAÇÃO COORDENAÇÃO-GERAL DE MODERNIZAÇÃO E INFORMÁTICA

3 Um Framework Orientado a Aspectos para Monitoramento e Análise de Processos de Negócio

CONFIGURAÇÃO DE REDE SISTEMA IDEAGRI - FAQ CONCEITOS GERAIS

Programação para Web Artefato 01. AT5 Conceitos da Internet

FTIN Formação Técnica em Informática Módulo Sistema Proprietário Windows AULA 04. Prof. André Lucio

Redes de Computadores. Prof. Dr. Rogério Galante Negri

FTP Protocolo de Transferência de Arquivos

Modelo R02 - Volume 4 - Aplicativo Web Embarcado

MANUAL RASTREAMENTO 2013

Arquitetura de Redes: Camadas de Protocolos (Parte I) Prof. Eduardo

Especialização em Engenharia de Software com Ênfase em Software Livre ESL2/2008. Projeto Agenda Saúde Requisitos e Modelagem UML

5.2 MAN s (Metropolitan Area Network) Redes Metropolitanas

SERVICE DESK MANAGER SDM. Manual do Sistema - DPOI

Gravação e Transmissão

Considerações a serem feitas antes da implantação.

FTP - Protocolo. O protocolo FTP é o serviço padrão da Internet para a transferência de arquivos entre computadores.

ArpPrintServer. Sistema de Gerenciamento de Impressão By Netsource Rev: 02

NetEye Guia de Instalação

04/08/2012 MODELAGEM DE DADOS. PROF. RAFAEL DIAS RIBEIRO, MODELAGEM DE DADOS. Aula 1. Prof. Rafael Dias Ribeiro. M.Sc.

CONTRA CONTROLE DE ACESSOS E MODULARIZADOR DE SISTEMAS

TÍTULO: PROGRAMAÇÃO DE CLP PARA UMA MÁQUINA DE SECÇÃO SEGMENTOS ORGÂNICOS

SISTEMAS OPERACIONAIS LIVRES GERENCIAMENTO DE SERVIÇOS NO WINDOWS. Professor Carlos Muniz

QUESTINAMENTOS AO EDITAL DE CONCORRÊNCIA 01/2013

Manual do Usuário CFCWeb BA

Transcrição:

PRÓ-REITORIA DE PESQUISA E PÓS-GRADUAÇÃO ESPECIALIZAÇÃO EM DESENVOLVIMENTO DE SISTEMAS PARA AMBIENTES WEB BASEADOS EM TECNOLOGIA JAVA CONTROLAR AS PORTAS DE COMUNICAÇÃO TCP/IP UTILIZANDO SOCKET JAVA PARA MONITORAMENTO DE EQUIPAMENTOS RINALDO ZELI DOS SANTOS Presidente Prudente SP 2008

PRÓ-REITORIA DE PESQUISA E PÓS-GRADUAÇÃO ESPECIALIZAÇÃO EM DESENVOLVIMENTO DE SISTEMAS PARA AMBIENTES WEB BASEADOS EM TECNOLOGIA JAVA CONTROLAR AS PORTAS DE COMUNICAÇÃO TCP/IP UTILIZANDO SOCKET JAVA PARA MONITORAMENTO DE EQUIPAMENTOS RINALDO ZELI DOS SANTOS Monografia apresentada a Pró-Reitoria de Pesquisa e Pós-Graduação, da Universidade do Oeste Paulista, como parte dos requisitos para obtenção do título de Especialista em Desenvolvimento de Sistemas para Ambientes Web baseados em Tecnologia Java. Orientador: Msc. Francisco Assis da Silva Presidente Prudente SP 2008

FICHA CATALOGRÁFIC 0004 Santos, Rinaldo Zeli dos. Controlar as portas de comunicação TCP/IP utilizando socket JAVA para monitoramento de equipamentos/ Rinaldo Zeli dos Santos. Presidente Prudente SP: UNOESTE. 52 f. : il. Monografia (Especialização em Desenvolvimento de Sistemas para Ambientes baseados em Tecnologia Java) Universidade do Oeste Paulista UNOESTE: Presidente Prudente SP, 2008. Bibliografia 1. Transmissão de dados TCP/IP, 2. Receber dados utilizando sistema Java DeskTop, 3. Sistema Web Java de monitoramento, 4. Sistema Web Java de cadastro e relatório de campo. I. Autor. II. Título.

RINALDO ZELI DOS SANTOS CONTROLAR AS PORTAS DE COMUNICAÇÃO TCP/IP UTILIZANDO SOCKET JAVA PARA MONITORAMENTO DE EQUIPAMENTOS Monografia apresentada a Pró-Reitoria de Pesquisa e Pós-Graduação, da Universidade do Oeste Paulista, como parte dos requisitos para obtenção do título de Especialista em Desenvolvimento de Sistemas para Ambientes Web baseados em Tecnologia Java. Presidente Prudente, 20 de junho de 2008. BANCA EXAMINADORA Prof. Msc. Francisco Assis da Silva Prof. Msc. Emerson Silas Doria Prof. Msc. Dione Jonathan Ferrari

AGRADECIMENTOS Agradeço minha esposa, filhos e enteados pelo incentivo e compreensão nos compromissos que faltei e muitos deles adiados para que eu me dedicasse a realizasse mais esse desafio.

DEDICATÓRIA Dedico este projeto para minha esposa, uma mulher maravilhosa, que me incentivou a continuar estudando mesmo depois de tanto tempo parado, dando apoio e compreensão nos momentos de estudo e concentração.

[...] Para Sócrates a sabedoria começa pelo reconhecimento da própria ignorância. Só sei que nada sei [...] Sócrates

RESUMO CONTROLAR AS PORTAS DE COMUNICAÇÃO TCP/IP UTILIZANDO SOCKET JAVA PARA MONITORAMENTO DE EQUIPAMENTOS Com o crescimento das áreas de plantio no campo (soja, café, algodão, etc.), faz-se necessário a aquisição de equipamentos de irrigação mecanizados para manter a boa qualidade da umidade no solo. Esses equipamentos possuem tecnologia mecânica sem inteligência, necessita da mão-de-obra humana para se movimentar, para realizar a verificação de problemas como, falta de água, falta de combustível, obstáculos, aumentando assim o custo operacional. Visando diminuir esse custo operacional, foram desenvolvidos aplicativos que somados a equipamentos de automação e comunicação remota, possibilitam fornecer inteligência ao equipamento de irrigação. O procedimento consiste em instalar equipamentos de automação, tais como: Controlador Lógico Programável (CLP), sensores e módulo de comunicação modem celular. Ambos os equipamentos se comunicam por meio do protocolo de comunicação TCP/IP. Os dados são transmitidos para o Centro de Controle Operacional (CCO), que por meio de um aplicativo Java Desktop, armazenando-os em um banco de dados Postgres. O resultado dos dados recebidos são exibidos em uma página HTML, monitorada por um operador que acionará o pessoal de campo caso seja necessário corrigir possíveis defeitos. Agilizando desta forma, o processo de irrigação e diminuindo o custo operacional. Palavras-Chave: Sistema de irrigação, Automação, Monitoramento remoto, Java.

ABSTRACT CONTROL THE COMUNICATION DOORS TCP/IP USING SOCKET JAVA FOR MONITORING EQUIPAMENTS With the growth of planting areas like soybean, coffee, cotton, etc., it has been necessary to purchase mechanized irrigation equipments to maintain good quality of the humidity in the soil. These equipments have mechanical technology without artificial intelligence, requiring the human labour to move and to check problems such as lack of water, lack of fuel, obstacles, thus increasing the operational cost. To reduce the operational cost, applications were developed which, in addition to automated equipments and remote communication, provides artificial intelligence to the irrigation system. The procedure consists in the installation of automated equipments such as, Programmable Logical Control (PLC), sensors and cellular modem module. Both equipments communicate through the protocol TCP/IP. Data will be transmitted to the Operational Control Center (OCC) which, using Java DeskTop application, stores them in the database Postgres. The result of the data received will be shown on a HTML page, monitored by an operator that triggers the field staff if it is necessary to fix possible defects. Making agile the process of irrigation and reducing the operational cost. Key-Words: Irrigation system, Automation, Remote monitoring, Java.

LISTA DE FIGURAS Figura 1 Controlador Lógico Programável (CLP)....17 Figura 2 Exemplo da linguagem de programação Ladder...18 Figura 3 Exemplo da linguagem Ladder que habilita a porta serial, realiza a limpeza do buffer e inicia as rotinas de transmissão de dados....19 Figura 4 Comandos AT do modem celular...19 Figura 5 Equipamentos do processo de comunicação...21 Figura 6 Modem Celular Motorola G24....21 Figura 7 Bóia de Nível...22 Figura 8 Centro de Controle Operacional...23 Figura 9 Processo de conexão...24 Figura 10 Diagrama de Classes simplificado....29 Figura 11 Classe Usuario....30 Figura 12 Classe Empresa....31 Figura 13 Classe Equipamento...32 Figura 14 Classe Monitora....33 Figura 15 Classe Pirriga....34 Figura 16 Classe UsuarioDao...35 Figura 17 Classe EmpresaDao...35 Figura 18 Classe EquipamentoDao....36 Figura 19 Classe MonitoraDao...37 Figura 20 Classe AlertaDao...37 Figura 21 Classe PirrigaDao...38 Figura 22 Classe ConnectionFactory...38 Figura 23 Classe validalogin...39 Figura 24 Tela do aplicativo de gerenciamento...41 Figura 25 Tela do relatório de campo...42 Figura 26 Tela de monitoramento....43 Figura 27 Tela de entrada (login)...44 Figura 28 Tela do aplicativo Desktop (RecebeDados)....46 Figura 29 Primeira parte código-fonte método Janela....47 Figura 30 Segunda parte do código-fonte do método Janela....48

Figura 31 Diagrama da Classe Historico....48 Figura 32 Diagrama da Classe HistoricoDao....49 Figura 33 Modelo do banco de dados scinet...50

LISTA DE SIGLAS SciNet Sistema de controle de irrigação. HTML HyperText Markup Language. JAVA Linguagem de programação orientada a objeto. JSP JavaServer Pages. DAO Data Access Object. IEC International Electrotechnical Commission. Ladder Linguagem de programação elétrica. GSM Global System for Mobile. GPRS General Packet Radio Service. APN Access Point Name. VPN Virtual Private Network. CCO Centro de Controle Operacional. CLP Controlador Lógico Programável. IP Internet Protocol. TCP Transmission Control Protocol.

SUMÁRIO 1 INTRODUÇÃO...13 1.1 Problemas Encontrados no Sistema da Sabesp...13 1.2 Proposta Deste Trabalho...14 2 FUNDAMENTOS BÁSICOS...15 2.1 Automação...15 2.2 Telemetria...16 2.3 Controlador Lógico Programável (CLP)...16 2.4 Configuração do Controlador Lógico Programável (CLP)...20 2.5 Equipamento de Transmissão...20 2.6 Comunicação...20 2.7 Sensores...22 2.8 Centro de Controle Operacional (CCO)...23 2.9 Procedimentos de conexão...23 2.10 Páginas Java JSP...24 2.11 Classes Java...25 2.12 Classes Java DAO...26 2.13 Servlet...27 3 APLICAÇÃO SCINET...29 3.1 Modelagem das classes em UML...29 3.2 Classe Usuario...29 3.3 Classe Empresa...30 3.4 Classe Equipamento...31 3.5 Classe Monitora...32 3.6 Classe Pirriga...33 3.7 Classes UsuarioDAO...34 3.8 Classes EmpresaDAO...35 3.9 Classe EquipamentoDao...36 3.10 Classe MonitoraDao...36 3.11 Classe AlertaDao...37 3.12 Classe PirrigaDao...38

3.13 Classe ConnectionFactory...38 3.14 Classe validalogin...39 4 APLICATIVO WEB...40 4.1 Aplicativo Web de Gerenciamento...40 4.2 Aplicativo Web de Relatório de campo...41 4.3 Aplicativo Web de monitoramento...42 4.4 Página de Login...44 5 APLICATIVO DESKTOP...45 5.1 Classe RecebeDados...45 5.2 Método Janela...46 5.3 Classe Historico...48 5.4 Classe HistoricoDao...49 6 BANCO DE DADOS...50 7 CONCLUSÕES...51 REFERÊNCIAS BIBLIOGRÁFICAS...52

13 1 INTRODUÇÃO Observando os equipamentos que executam o processo de irrigação no plantio de soja, arroz, milho e algodão, notou-se que estava faltando ao processo, inteligência à parte mecânica. Com o incentivo do Governo Federal em difundir o processo de irrigação, essa atividade teve crescimento instantâneo, ficando caracterizado os problemas provenientes da distribuição dos equipamentos na propriedade com distâncias diferentes, dificultando o deslocamento dos operadores no que se refere à movimentação dos equipamentos e na detecção de problemas, perda de produtividade e aumento dos custos operacionais (REVISTA RURAL, 2002). A Sabesp (Companhia de Saneamento Básico do Estado de São Paulo) sub sede de Presidente Prudente, possui um sistema de automação e telemetria que permite monitorar à distância as estações elevatórias de esgoto, informando o nível do esgoto, informando se a bomba está ligada ou desligada, falta de fase, alarme de presença, além de possibilitar o controle de câmeras de monitoramento. As estações elevatórias de esgoto estão localizadas nos pontos mais baixos e distantes de cada grupo de bairros das cidades e é responsável pelo bombeamento do esgoto coletado para a estação de tratamento. Devido à distância das estações elevatórias de esgoto em relação ao centro de controle operacional, foi necessário criar um sistema automático de controle pelo qual os mecanismos verificam seu próprio funcionamento, efetuando medições e introduzindo correções, sem a necessidade da interferência do homem. 1.1 Problemas Encontrados no Sistema da Sabesp O aplicativo que faz parte do sistema de automação utilizado pela Sabesp foi desenvolvido na linguagem de programação Visual Basic, e a sua principal função é abrir uma porta de comunicação (TCP), no servidor onde está instalado sendo responsável por aceitar as solicitações de conexões dos equipamentos de automação.

14 Para que a porta de comunicação fique disponível para novas conexões, o aplicativo cria índices internos que são responsáveis pela recepção dos dados. O problema da linguagem de programação Visual Basic está relacionado na indexação das portas de comunicação (TCP), uma vez que os objetos de programação dessa linguagem, não possuem recursos que permitam a aplicação perceber quando a conexão está inativa. Com o crescimento dos pontos de monitoramento, inicia-se o processo de recusa de novas conexões travando a aplicação devido à falta de porta de comunicação (TCP). O problema foi contornado configurando o aplicativo para re-iniciar as portas de comunicação (TCP) a cada 10 (dez) minutos, causando a desconexão de todos os equipamentos. 1.2 Proposta Deste Trabalho Desenvolver uma aplicação utilizando a linguagem de programação Java com o propósito de identificar possíveis desconexões dos equipamentos de transmissão. Essa aplicação após identificar a desconexão ou inatividade, libera a porta de comunicação (TCP) para ser reutilizada. A aplicação (RecebeDados), utiliza recursos de programação Java implementando os Objetos: ServerSocket, responsável por abrir a porta de comunicação (TCP) no servidor onde o aplicativo está rodando; Socket, responsável por aceitar e conectar o equipamento de transmissão à porta de comunicação (TCP); Innet, verifica a existência de porta de comunicação livre, repassa a conexão, cria índice e identifica possíveis perdas de conexão. Dessa forma a aplicação desenvolvida aumenta a área de abrangência do sistema de monitoramento, podendo ser utilizada em controle de alarme residencial, industrial, rastreamento de veículos, câmeras de segurança e monitoramento de sistemas de irrigação.

15 2 FUNDAMENTOS BÁSICOS Neste capítulo são apresentados os fundamentos básicos de automação, telemetria, controlador lógico programável, comunicação de dados, sensores e aplicativos desenvolvidos com a tecnologia Java, View (JavaServer Pages JSP, Desktop), Model (Java Classes JavaBeans), Controller (Java Classes Data Access Object DAO) e controle de acessos ao usuário (Servlets) e conceitos para o desenvolvimento do projeto (View, Controller e Model): View (JSP e Desktop), responsável pela apresentação visual do aplicativo ao usuário, envia e recebe os dados do Controller; Controller (classes JavaBeans), apresenta os dados solicitados pelo usuário ao aplicativo, que manipula e controla todas as transações, realizando a interação entre o View e o Model; Model (Classes DAO), responde solicitações do usuário, recebe dados e instruções do Controller, executa as instruções e retorna o resultado. 2.1 Automação Automação é um sistema automático de controle pelo qual os mecanismos verificam seu próprio funcionamento, efetuando medições e introduzindo correções, sem a necessidade da interferência do homem. Aplicando as técnicas computadorizadas ou mecânicas, diminui o uso de mão-de-obra em qualquer processo, exemplo: robôs nas linhas de produção, diminuindo os custos e aumentando a produtividade. Está presente em diferentes níveis de atividades do homem, desde a medicina até a astronomia, ampliando a capacidade de interação com a natureza e os processos (LACOMBE, 2004), Santos (2006). Nas seções deste capítulo são descritos conceitos e equipamentos que criam o processo de automação como: telemetria, Controlador Lógico Programável (CLP), sensores, equipamento de transmissão, Centro de Controle Operacional (CCO).

16 2.2 Telemetria As informações desta seção foram obtidas em Telemetria (2007). Telemetria envolve a comunicação entre máquinas, permitindo o monitoramento e controle à distância. Dessa forma, o equipamento remoto é conectado a um aplicativo capaz de converter os dados em linguagem compatível com a rede de telecomunicações, onde as informações irão trafegar. O processo possui características de leituras (velocidade de um avião, valor de tensão dos medidores, ou o fluxo de água em hidrômetros, por exemplo), medições realizadas remotamente, transmissão das leituras ao Centro de Controle Operacional (CCO), onde são gravadas e analisadas. A telemetria permite que as informações sejam analisadas a partir de uma posição segura (ou conveniente), permitindo que o monitoramento seja feito à distância. Um sistema da telemetria é composto basicamente por três subsistemas: o Controlador Lógico Programável (CLP); Equipamento de transmissão e Centro de Controle Operacional (CCO). 2.3 Controlador Lógico Programável (CLP) O Controlador Lógico Programável é o equipamento mais importante do sistema de automação, sendo responsável por coletar e formatar os dados, transmitir as informações ao Centro de Controle Operacional (CCO). Os sensores (seção 2.7), medidores de gás, água, energia elétrica e outros, são responsáveis por coletar e disponibilizar os dados para o módulo de controle central do Controlador Lógico Programável (CLP), que trata as informações disponibilizando-as para o sistema de transmissão. A Figura 1 apresenta uma imagem de exemplo do Controlador Lógico Programável (CLP).

17 Figura 1 Controlador Lógico Programável (CLP). O Controlador Lógico Programável (CLP), executa um software embarcado, utilizando a linguagem de programação gráfica Ladder. A linguagem Ladder utiliza representações de conexões de relés, realizando leitura em contadores, comutadores, sinais de relógio, linhas de comunicação, operações de comparação, sensores, cálculos de valores e operações de conversão. A Figura 2 apresenta trechos da linguagem de programação Ladder que carrega os códigos ASCII (American Standard Code for Information Interchange) na memória do CLP, esses códigos são responsáveis pela preparação dos dados a serem enviados pelo modem celular para o Centro de Controle Operacional (CCO), obedecendo a configuração do CLP, adicionando informações dos sensores digitais on e off (Figura 2) em informações para transmissão como, por exemplo: 00 01 12, 22 ou todas as combinações possíveis.

18 Figura 2 Exemplo da linguagem de programação Ladder. A Figura 3 mostra um exemplo da linguagem Ladder que executa e habilita o processo de comunicação serial entre o Controlador Lógico Programável (CLP) com o modem celular, em seguida esvazia o buffer do modem celular e inicia as rotinas de transmissão dos dados.

19 Figura 3 Exemplo da linguagem Ladder que habilita a porta serial, realiza a limpeza do buffer e inicia as rotinas de transmissão de dados. A Figura 4 Mostra um exemplo da linguagem Ladder que executa os comandos AT para transmissão dos dados. Figura 4 Comandos AT do modem celular.

20 2.4 Configuração do Controlador Lógico Programável (CLP) A configuração do Controlador Lógico Programável (CLP), para este projeto, possui quatro entradas digitais conectadas a sensores que são responsáveis por coletar os dados da bóia de nível de água, bóia de nível de combustível, sensor de falta de fase e sensor de movimento, uma saída digital que desligará todo o sistema no caso de falhas e uma porta serial para comunicação conectada ao equipamento de transmissão (seção 2.5). 2.5 Equipamento de Transmissão O equipamento de transmissão pode utilizar vários meios de transmissão (rádio, celular, cabo, fibra óptica, telefonia), sendo estes a "estrada" pelo qual as informações trafegam. Tendo como objetivo uma solução de telemetria que utilize a rede mais acessível do ponto de vista técnico, econômico, financeiro e administrativo, foi utilizando para este projeto o modem celular (Figura 6 da seção 2.6). 2.6 Comunicação O Controlador Lógico Programável (CLP), possui uma porta de comunicação serial (Figura 1 seção 2.3) que realiza a leitura dos endereços de memória do CLP, consolidando os dados com os comandos de acionamento do modem celular (modem celular, bóia de nível e CLP). A Figura 5 apresenta os equipamentos que envolvem o processo de comunicação.

21 Figura 5 Equipamentos do processo de comunicação. Modem Celular foi o equipamento de comunicação escolhido para transmissão dos dados no projeto, ele possui a tecnologia celular GPRS que pode ser utilizada nos locais mais distantes, desde que haja sinal de celular. A comunicação através do sistema GPRS utiliza uma tecnologia de comutação de pacotes orientados em protocolo IP. Nesse caso, os canais de comunicação são compartilhados entre os diversos usuários dinamicamente, de modo que um usuário tem somente um canal designado quando está realmente transmitindo dados. A Figura 6 apresenta o modem celular Motorola G24 utilizado no processo de comunicação que é conectado ao Controlador lógico Programável (CLP). Figura 6 Modem Celular Motorola G24.

22 2.7 Sensores Os sensores são dispositivos que recebem e respondem a um estímulo ou a um sinal, podendo se classificar em dois tipos: sensor analógico, que converte um tipo de energia em outro (exemplo: sensor de temperatura, sensor de pressão); e sensor digital, que verifica o status do equipamento ligado ou desligado (exemplo: bóia de nível posição horizontal "on - ligado", posição vertical "off - desligado"). Os sensores disponibilizam os dados em tempo real para o Controlador Lógico Programável (CLP). A Figura 7 apresenta três modelos de sensores Bóia de Nível. Figura 7 Bóia de Nível. O software embarcado no Controlador Lógico Programável (CLP), recebe informações instantâneas a cada alteração de status dos sensores, tomando decisões pré-definidas, exemplo: bóia de nível posição vertical "off - desligado" significa que o equipamento está sem água ou combustível. A informação é encaminhada para o Centro de Controle Operacional (CCO), que desliga o equipamento de irrigação. No caso do equipamento ficar mais de cinco minutos sem transmitir dados, o software enviará as informações do status interno do equipamento para o Centro de Controle Operacional (CCO).

23 2.8 Centro de Controle Operacional (CCO) O Centro de Controle Operacional é responsável pela administração do sistema, recebe, processa e toma as decisões com relação aos dados medidos, sendo responsável pelo controle e configuração de todo o sistema de automação, sendo composto por um ou vários sistemas de informações, banco de dados PostGres, servidor Java Web e Desktop, e sistema de monitoramento, que é administrado por um operador que acompanha o processamento dos dados e verifica as possíveis falhas. A Figura 8 apresenta as características do Centro de Controle Operacional. Figura 8 Centro de Controle Operacional. 2.9 Procedimentos de conexão O Controlador Lógico Programável (CLP), solicita ao modem celular uma conexão com a operadora de telefonia celular. O modem celular se conecta a operadora de telefonia celular informando a APN (Access Point Name), usuário e senha. Após a conexão com a operadora de telefonia celular, é fornecido endereço o IP (Internet Protocol), para o modem celular, que a partir desse momento será responsável pela manutenção da conexão e transmissão dos dados. A Figura 9 apresenta o processo de conexão entre os sensores, Controlador Lógico Programável (CLP) e modem celular, instalados no equipamento

24 de irrigação transmitindo para o Centro de Controle Operacional (CCO) utilizando a operadora de telefonia celular com meio para a transmissão dos dados. Figura 9 Processo de conexão. 2.10 Páginas Java JSP As páginas Java Server Pages (JSP) são baseadas na linguagem Java, que fornece dinamismo às páginas HTML, são criadas para executar tarefas em servidores de aplicação web, passando informações especiais de processamento inerentes à página. Na seqüência são apresentas algumas das bibliotecas personalizadas disponíveis (CESTA, 2008; FALBO e SOUZA, 2006). <%@ page info="projeto elaborado por Rinaldo Zeli dos Santos" %>, usado para inserir informações na página, não havendo restrições ao seu tamanho; <%@ page language="java" %>, especifica a linguagem de criação de script para a página; <%@ page contenttype="text/html" %>, indica qual o tipo de resposta está sendo gerada; <%@ page import="java.util.list" %>, estende um conjunto de classes Java que poderão ser usadas nas páginas JSPs; <%@ page session="true" %>, indica se a página está participando do gerenciamento de sessão;

25 <%@ include file="urldoarquivo" %> ou <jsp:directive.include file="urldo Arquivo" />, inclui o conteúdo de um arquivo em outro e não há limite para inclusões. Atributos e métodos das classes JavaBean podem ter o tipo e valor alterados ou lidos através de ações que são executadas pelo controlador denominadas actions, exemplo: <jsp:setproperty/> que altera a propriedade existente e <jsp:getproperty/> que captura o valor existente na propriedade, podendo ser exibido na página JSP. No projeto SciNet, foram utilizadas páginas JSP para as telas de login, manutenção e relatórios. 2.11 Classes Java As Classes Java utilizadas no projeto, são do tipo JavaBeans, essas classes obedecem a um conjunto de regras, utilizando métodos get e set. O JavaBeans é utilizando no projeto para modelar sistemas gráficos Desktop, e aplicações Web em conjunto com páginas JSP, seguindo regras básicas (CESTA, 2008; FALBO e SOUZA, 2006): Construtor deve ser implícito sem argumentos e sem nenhuma utilidade, assim o interpretador Java irá considerar que já faz parte da definição da linguagem; Persistência, para impossibilitar que o aplicativo seja salvo em arquivo ou enviado de um computador para outro em aplicações distribuídas; Atributos, o JavaBeans possui atributos que oferecem a opção de leitura e gravação de seus parâmetros, eles devem ser acessíveis por métodos públicos que possuem o mesmo nome mais o prefixo "set" para gravar e "get" para ler. Os valores dos parâmetros enviados pelo cliente JSP para o servidor são sempre do tipo texto. Esses valores são convertidos para outros tipos de dados para serem utilizados pelas propriedades encontradas no JavaBeans. Além das propriedades JavaBeans, foi utilizado o atributo de "scope", que indica a utilização dos quatro escopos de um objeto:

26 Escopo page: são objetos válidos até a resposta ser enviada ou o pedido ser encaminhado para outro programa no mesmo ambiente, podendo apenas ser referenciados nas páginas onde foram declarados e é removido no fim da execução da página declarada; Escopo request: são objetos válidos durante o pedido e são acessíveis mesmo quando esse pedido é encaminhado a outro programa no mesmo ambiente, estando disponível durante a execução do request, a cada novo pedido, um JavaBeans é instanciado para atender a requisição; Escopo session: são objetos válidos enquanto a sessão existir, sendo removida quando a sessão expirar ou for encerrada; Escopo application: são objetos acessíveis por páginas no mesmo servidor de aplicação e removidos quando o servidor Web é parado ou quando a aplicação é reiniciada. 2.12 Classes Java DAO As Classes Java Data Access Object (DAO), fornecem interface independente das páginas (JSP), que é utilizada para persistir objetos referentes ao banco de dados e possui métodos de inserção, seleção, atualização e exclusão de objetos (GONÇALVES, 2007). Visando a implementação de segurança e persistência das informações, foi necessária a utilização de classes do tipo DAO, para criar uma camada entre os objetos de domínio e a tecnologia de persistência. Para cada classe de usuário, foi implementada uma classe DAO, que é responsável por manipular os dados no servidor, atribuindo ações de persistência (inclusão, alteração, exclusão, conexão ao banco de dados) e segurança, com a finalidade de garantir a integridade dos dados.

27 2.13 Servlet Um servlet é a tecnologia que insere novos recursos a um servidor, estende as funcionalidades do servidor Web, com as características (CESTA, 2008; FALBO e SOUZA, 2006): Geração dinâmica de páginas HTML, instaladas em servidores Web para processar informações transmitidas via HTTP a partir de formulários; Balanceamento de carga entre servidores, com capacidade de se comunicarem com outros Servlets e redirecionar as requisições dos usuários; O Servlet é carregado uma única vez na memória e permanece lá até que seja necessário modificá-lo, sendo possível desenvolver aplicações que exijam persistência; Concorrência: os Servlets estão aptos a lidar com centenas de acessos simultaneamente, disparando para cada acesso um novo thread. Os threads são uma execução seqüencial de um conjunto de instruções de um mesmo aplicativo utilizam um espaço de endereçamento de memória comum a todos, isto permite que eles compartilhem dados e recursos do sistema; Modularização do código: os Servlets podem executar outros Servlets, mesmo que remotamente, desta forma é possível executálos em corrente. Esta característica possibilita modularização dos aplicativos, criando Servlets com funções específicas. No aplicativo SciNet, o cliente necessita de autenticação e para isso foi criado um Servlet responsável apenas pela tarefa de autenticação, que redireciona o cliente para outras aplicações. A estrutura básica de um Servlet estende as funcionalidades de um servidor Web oferecendo mecanismos adequados a qualquer servidor baseado em requisições e respostas. No desenvolvimento do Servlet para autenticação foi utilizada a API javax.servlet, que define a interface Servlet. Nela estão definidos todos os métodos que estabelecem a comunicação com clientes.

28 A classe que implementa a interface Servlet é a HttpServlet, utilizada para desenvolver Servlets que são instalados em servidores Web e que usam o protocolo HTTP para enviar e receber informações. A comunicação entre um Servlet e um cliente se dá por meio de dois objetos instanciados das classes ServletRequest, que encapsula as funções de comunicação do cliente para o servidor, permitindo que o Servlet receba dados como o conteúdo de um formulário HTML, e ServletResponse, que encapsula as funções de comunicação do servidor para o cliente. As classes HttpServletRequest e a HttpServletResponse, implementam métodos para lidar com informações transmitidas via HTTP.

29 3 APLICAÇÃO SCINET 3.1 Modelagem das classes em UML As classes que abrangem todo o projeto são as seguintes: classe Usuario, Empresa, Equipamento, Monitora, Alerta, Pirriga (possuem os métodos get e set, que se comunicam com as paginas JSP (seção 2.10)), UsuarioDao, EmpresaDao, EquipamentoDao, MonitoraDao, AlertaDao, PirrigaDao (responsáveis pela manutenção do banco de dados, possui os métodos de inclusão, exclusão, alteração e List) e ConnectionFactory (resposavel pela conexão ao banco de dados). Figura 10 Diagrama de Classes simplificado. 3.2 Classe Usuario Usuario (Figura 11): É a classe responsável pela manutenção do cadastro dos usuários do sistema, alem dos métodos get e set para manipulação dos dados, esta classe implementa os métodos adicionar (setadiciona), alterar (setaltera), excluir (setexclui) e consultar (setconsulta).

30 Figura 11 Classe Usuario. 3.3 Classe Empresa Empresa (Figura 12): É a classe responsável pela manutenção do cadastro das empresas do sistema, alem dos métodos get e set para manipulação dos dados, esta classe implementa os métodos adicionar (setadiciona), alterar (setaltera), excluir (setexclui) e consultar (setconsulta).

31 Figura 12 Classe Empresa. 3.4 Classe Equipamento Equipamento (Figura 13): é a classe responsável pela manutenção do cadastro dos equipamentos do sistema, alem dos métodos get e set para manipulação dos dados, esta classe implementa os métodos adicionar (setadiciona), alterar (setaltera), excluir (setexclui) e consultar (setconsulta).