ibp155_15

10
Copyright 2015, Instituto Brasileiro de Petróleo, Gás e Biocombustíveis - IBP Este Trabalho Técnico foi preparado para apresentação na Congresso Rio Automação, realizado em maio de 2015, no Rio de Janeiro. Este Trabalho Técnico foi selecionado para apresentação pelo Comitê Técnico do evento, seguindo as informações contidas no trabalho completo submetido pelo(s) autor(es). Os organizadores não irão traduzir ou corrigir os textos recebidos. O material conforme, apresentado, não necessariamente reflete as opiniões do Instituto Brasileiro de Petróleo, Gás e Biocombustíveis, Sócios e Representantes. É de conhecimento e aprovação do(s) autor(es) que este Trabalho Técnico seja publicado nos Anais do Congresso Rio Automação 2015. ______________________________ 1 Engenheiro de Computação - CHESF 2 Doutor, Engenheiro de Computação – UFRN DESENVOLVIMENTO DE UM SERVIDOR OPC PARA O SISTEMA SUPERVISÓRIO DE AUTOMAÇÃO DA ELEVAÇÃO (SISAL) Thiago F. Paulo 1 , Anderson L. O. Cavalcanti 2 Resumo Com o desenvolvimento e crescente importância dos processos de automação industrial, a supervisão desses se torna uma tarefa cada dia mais essencial. O Sistema Supervisório de Automação da Elevação (SISAL) usado pela Petrobras é um exemplo claro desta realidade, monitorando e gerenciando informações de poços de petróleo com os mais diversos métodos de elevação artificial. O protocolo OLE for Process Control (OPC) é um padrão industrial de conectividade que permite transferir dados de automação entre hardware e software de maneira simples e unificada. Essa tecnologia é baseada na arquitetura cliente/servidor onde o servidor disponibiliza os dados para um, ou até mesmo vários aplicativos clientes. Algumas aplicações referentes aos poços supervisionados pelo SISAL necessitam que os dados de supervisão sejam acessados via OPC. Atualmente, todas as informações necessárias são obtidas diretamente do Banco de Dados SISAL através de um software comercial. O presente trabalho tem como objetivo desenvolver um servidor OPC destinado ao SISAL. O servidor deverá ser capaz de realizar a leitura dos dados necessários na Base de Dados SISAL e disponibilizá-los no formato de tagsOPC. Estas tags deverão ser cadastradas e gerenciadas através de um arquivo de configuração XML e/ou interface gráfica. Abstract With the development and increasing importance of industrial automation processes, the supervision of these processes become ever more essential. The "Sistema Supervisório de Automação da Elevação - SISAL" used by Petrobras is a clear example of this reality, monitoring and managing information from oil wells with different methods of artificial lift. The OLE for Process Control (OPC) protocol is an industry standard connectivity that allows to transfer data between automation hardware and software in a simple and unified way. This technology is based on the client / server architecture, which the server provides the data for one or even several client applications. Some applications concerning SISAL wells need to access the supervised data via OPC. Currently, all the necessary information is obtained directly from the SISAL database through a commercial software. The present study aims to develop an OPC server for the SISAL. The server should be able to read the necessary data in the SISAL database and make them available in the form of OPC tags. These tags must be registered and managed through an XML configuration file and / or graphical interface. 1. Introdução O crescente desenvolvimento dos processos de automação industrial vem acompanhado do aumento da complexidade dos mesmos, sendo cada vez mais necessários equipamentos e ferramentas específicas para as diversas situações encontradas. A comunicação entre os hardwares de chão de fábrica com as aplicações clientes (softwares e sistemas supervisórios) se tornou uma tarefa delicada, pois a grande variedade de fabricantes de hardware necessitava

Upload: andrew-bailey

Post on 30-Sep-2015

3 views

Category:

Documents


0 download

DESCRIPTION

DESENVOLVIMENTO DE SERVIDOR OPC PARA SISTEMAS DE PRODUÇÃO DE PETRÓLEO

TRANSCRIPT

  • Copyright 2015, Instituto Brasileiro de Petrleo, Gs e Biocombustveis - IBP Este Trabalho Tcnico foi preparado para apresentao na Congresso Rio Automao, realizado em maio de 2015, no Rio de Janeiro. Este Trabalho Tcnico foi selecionado para apresentao pelo Comit Tcnico do evento, seguindo as informaes contidas no trabalho completo submetido pelo(s) autor(es). Os organizadores no iro traduzir ou corrigir os textos recebidos. O material conforme, apresentado, no necessariamente reflete as opinies do Instituto Brasileiro de Petrleo, Gs e Biocombustveis, Scios e Representantes. de conhecimento e aprovao do(s) autor(es) que este Trabalho Tcnico seja publicado nos Anais do Congresso Rio Automao 2015.

    ______________________________ 1 Engenheiro de Computao - CHESF 2 Doutor, Engenheiro de Computao UFRN

    DESENVOLVIMENTO DE UM SERVIDOR OPC PARA O

    SISTEMA SUPERVISRIO DE AUTOMAO DA ELEVAO (SISAL)

    Thiago F. Paulo1, Anderson L. O. Cavalcanti2

    Resumo Com o desenvolvimento e crescente importncia dos processos de automao industrial, a superviso desses se torna uma tarefa cada dia mais essencial. O Sistema Supervisrio de Automao da Elevao (SISAL) usado pela Petrobras um exemplo claro desta realidade, monitorando e gerenciando informaes de poos de petrleo com os mais diversos mtodos de elevao artificial. O protocolo OLE for Process Control (OPC) um padro industrial de conectividade que permite transferir dados de automao entre hardware e software de maneira simples e unificada. Essa tecnologia baseada na arquitetura cliente/servidor onde o servidor disponibiliza os dados para um, ou at mesmo vrios aplicativos clientes. Algumas aplicaes referentes aos poos supervisionados pelo SISAL necessitam que os dados de superviso sejam acessados via OPC. Atualmente, todas as informaes necessrias so obtidas diretamente do Banco de Dados SISAL atravs de um software comercial. O presente trabalho tem como objetivo desenvolver um servidor OPC destinado ao SISAL. O servidor dever ser capaz de realizar a leitura dos dados necessrios na Base de Dados SISAL e disponibiliz-los no formato de tagsOPC. Estas tags devero ser cadastradas e gerenciadas atravs de um arquivo de configurao XML e/ou interface grfica.

    Abstract With the development and increasing importance of industrial automation processes, the supervision of these processes become ever more essential. The "Sistema Supervisrio de Automao da Elevao - SISAL" used by Petrobras is a clear example of this reality, monitoring and managing information from oil wells with different methods of artificial lift. The OLE for Process Control (OPC) protocol is an industry standard connectivity that allows to transfer data between automation hardware and software in a simple and unified way. This technology is based on the client / server architecture, which the server provides the data for one or even several client applications. Some applications concerning SISAL wells need to access the supervised data via OPC. Currently, all the necessary information is obtained directly from the SISAL database through a commercial software. The present study aims to develop an OPC server for the SISAL. The server should be able to read the necessary data in the SISAL database and make them available in the form of OPC tags. These tags must be registered and managed through an XML configuration file and / or graphical interface.

    1. Introduo

    O crescente desenvolvimento dos processos de automao industrial vem acompanhado do aumento da complexidade dos mesmos, sendo cada vez mais necessrios equipamentos e ferramentas especficas para as diversas situaes encontradas. A comunicao entre os hardwares de cho de fbrica com as aplicaes clientes (softwares e sistemas supervisrios) se tornou uma tarefa delicada, pois a grande variedade de fabricantes de hardware necessitava

  • Congresso Rio Automao 2015

    2

    disponibilizar drivers de comunicao especficos e limitados para seus produtos, seguindo as necessidades de seus clientes. Na tentativa de unificar e simplificar a integrao entre hardware e software surgiu a especificao OPC (acrnimo para OLE for Process Control) voltada para a indstria de automao e suas necessidades nicas em comunicao de dados.

    O OPC um padro de comunicao aberto, que teve sua primeira verso funcional desenvolvida por volta de 1996, como fruto do esforo conjunto de vrias empresas e fornecedores de sistemas para automao industrial. Como resultado deste trabalho, surgiu tambm a OPC Foundation, uma organizao sem fins lucrativos que define os padres e especificaes do OPC e busca sua evoluo e aprimoramento desde ento. Alm da premissa de garantir comunicao universal, o padro OPC foi desenvolvido tendo em vista simplicidade de implementao e flexibilidade para atender s necessidades de diversos segmentos da indstria, agregando o mximo de funcionalidade sem comprometer sua eficincia [SOUZA n.d]. Por esses e outros fatores, todos os grandes fornecedores de produtos ligados automao esto disponibilizando interfaces OPC relacionadas a seus produtos atualmente.

    Os sistemas supervisrios, com o decorrer dos anos, se tornaram ferramentas indispensveis para o monitoramento e controle dos mais variados ambientes industriais. O Controle Supervisrio e Aquisio de dados (SCADA - do ingls Supervisory Control and Data Aquisition) o nome dado a todo o sistema que faz aquisio de dados em campo, supervisiona-os e permite ao operador controlar ou tomar decises baseados nos valores aferidos [ALMEIDA 2009].

    O SISAL (Sistema Supervisrio para Automao da Elevao) um sistema supervisrio que tem como objetivo proporcionar uma interface simples para superviso de poos de petrleo equipados com sistemas de elevao artificial [NASCIMENTO 2010]. Esse sistema foi desenvolvido pela Petrobrs (UO-RNCE) em parceria com a UFRN Universidade Federal do Rio Grande do Norte. O supervisrio baseado em uma arquitetura cliente/servidor, onde os clientes se comunicam com o servidor atravs de um Protocolo de Comunicao Inter-Redes (PCI).

    A maioria das informaes obtidas em campo pelo SISAL so salvas em sua base de dados e atualizadas constantemente. Algumas aplicaes referentes aos poos supervisionados necessitam acessar as informaes do banco de dados (BD) SISAL e disponibiliz-las atravs do protocolo OPC, para isso, uma conexo direta com o BD (sem utilizar o protocolo PCI) deve ser criada. Como exemplos das aplicaes mencionadas temos: telas de superviso InTouch e o Process Information (PI). No contexto atual, os usurios do SISAL corporativo que necessitam realizar esse tipo operao, o fazem utilizando um software comercial (servidor OPC). Desenvolver um programa que disponha das mesmas funcionalidades do servidor OPC comercial utilizadas hoje em dia foi a principal motivao encontrada para a realizao do presente trabalho, criando assim um servidor OPC destinado aos usurios SISAL, com a flexibilidade de futuramente modific-lo e atualiz-lo seguindo as necessidades dos mesmos. A soluo comercial tambm apresenta algumas limitaes no que diz respeito sobrecarga no Banco de Dados SISAL, logo, o desenvolvimento de um servidor que consiga interpretar dados atravs do protocolo PCI um ponto importante para a melhoria do sistema como um todo. A aplicao desenvolvida neste trabalho obtm alguns dados necessrios atravs do protocolo PCI. Isso permite que a quantidade de consultas diretas ao banco de dados diminua e que qualquer informao obtida pelo protocolo PCI (mesmo aquelas que no esto na base de dados) tambm possam ser disponibilizada pelo servidor OPC em futuras atualizaes.

    O objetivo deste trabalho o desenvolvimento da capacidade de comunicao do SISAL atravs do protocolo OPC, fazendo com que os dados adquiridos pelo supervisrio sejam acessados por softwares clientes de acordo com a especificao OPC Data Access 3.0 determinada pela OPC Foundation. O objetivo elaborar um Servidor OPC que fornea esses dados no formato de TAGS OPC (variveis OPC). O programa dever ser capaz de realizar a leitura dos dados diretamente da base de dados SISAL e disponibiliz-los para qualquer cliente OPC. A escolha e o gerenciamento das variveis devem ser feitos atravs de um arquivo de configurao XML (padro de arquivo largamente utilizado atualmente) ou pela interface grfica.No desenvolvimento da aplicao foi utilizado o toolkit Softing OPC Toolbox (para criao do servidor OPC) em conjunto com as bibliotecas para conexo com o banco de dados (libpq) e manipulao do arquivo XML (tinyxml). 2. OLE for process Control (OPC) A necessidade de compartilhar dados entre mltiplas aplicaes deu origem tecnologia DDE (Dynamic Data Exchange), desenvolvida pela Microsoft e introduzida em 1987 com o lanamento do Windows 2.0. A comunicao de dados era estabelecida por um modelo simples estruturado em cima de comandos DDE. Alguns anos depois, o protocolo DDE deu lugar ao seu sucessor, o OLE (Object Linking and Embedding). Enquanto o DDE era limitado em relao quantidade de dados transferidos entre aplicaes, o OLE trazia melhorias nesse sentido e em questes de segurana e desempenho. Em 1993, a Microsoft lanou plataforma COM (Component Object Model), orientada a objetos, que possibilitava a comunicao entre componentes de software sendo utilizada para criar e ligar processos no desenvolvimento de aplicativos que tiravam vantagem dos servios Windows. A criao dinmica de objetos COM podia

  • Congresso Rio Automao 2015

    3

    ser feita nas vrias linguagens de programao que suportassem a tecnologia, definindo um modo padronizado para a implementao das interfaces disponibilizadas pelo OLE. Como extenso do COM, lanado em conjunto com o Windows NT, foi desenvolvido o DCOM (Distribuited Component Object Model) que permitia a comunicao entre objetos em sistemas distribudos, ou seja, interligados em rede. Segundo [FONSECA 2002], DCOM um conjunto de definies para permitir a implementao de aplicaes distribudas em uma arquitetura clente-servidor. Desta forma, um cliente pode acessar diferentes servidores ao mesmo tempo e um servidor pode disponibilizar suas funcionalidades para diferentes clientes ao mesmo tempo.O OPC uma verso destinada indstria para o OLE que utiliza as plataformas de comunicao COM/DCOM com a finalidade de interligar aplicaes Windows com hardwares de controle de processos.

    um protocolo aberto que permite um mtodo consistente de acesso aos dados de inmeros equipamentos dos mais diversos fabricantes. O mtodo o mesmo, independente da origem dos dados, o que vem oferecer ao usurio final uma maior liberdade na escolha dos equipamentos independentemente da disponibilidade de drivers de comunicao proprietrios [CARVALHO 2008]. Como mencionado anteriormente, o OPC foi desenvolvido por um conjunto de grandes companhias relacionadas automao juntamente com o apoio e assistncia da Microsoft. Sua primeira especificao foi disponibilizada em Agosto de 1996, sendo ela denominada de OPC Specification Version 1.0. Em Setembro do mesmo ano, foi estabelecida a OPC Foundation, atualmente com mais de trezentas empresas associadas, que desde ento vm coordenando o desenvolvimento de todas as especificaes, mantendo e adicionando funcionalidades ao padro OPC de acordo com as necessidades da indstria. As principais especificaes lanadas at o momento foram:

    OPC Data Access Specification responsvel pela leitura e escrita de dados em tempo real. OPC Alarms and Events Specification monitora alarmes e eventos. OPC Historical Data Access Specification gerencia dados histricos. OPC and XML Specification integrao entre OPC e XML para aplicaes web. OPC Unified Architecture especificao mais recente que apresenta uma nova arquitetura unificada para o

    OPC. O objetivo principal deste trabalho se encontra na especificao OPC Data Access Specification 3.0 (OPC

    DA 3.0). 2.1. Arquitetura Cliente/Servidor Um importante conceito relacionado estrutura em que o protocolo OPC trabalha a arquitetura cliente/servidor, herdada da tecnologia OLE. Uma aplicao cliente basicamente tem o papel de requisitar os dados de uma aplicao Servidor que dever disponibiliz-los. Baseado neste contexto, existe dois tipos de componentes OPC: os Clientes OPC e os Servidores OPC.De acordo com [CNDIDO 2004], a introduo de uma interface padronizada entre programas Windows fez com que a quantidade de drivers desenvolvidos para os hardwares fosse reduzido para apenas um: o OPCServer (Servidor OPC - responsvel por disponibilizar os dados). Da mesma forma, apenas uma nica interface de driver fosse requerida para o fabricante do software: a interface do OPC Client (Cliente OPC - responsvel por requisitar os dados). Conseqentemente, os benefcios no so somente para os fabricantes, mas para os clientes tambm. Isso porque, no passado, existia normalmente apenas uma quantidade limitada de drivers compatveis com componentes individuais de automao. 2.2. Especificao de Acesso de Dados

    A especificao de acesso de dados (OPC Data Access), ou apenas OPC DA, fornece uma maneira padro e uniforme de acessar dados em tempo real de softwares e hardwares relacionados a controle de processo. Atravs da OPC DA, a comunicao entre todos os dispositivos e aplicaes se torna consistente, pois ela define os componentes COM que devem ser utilizadas no desenvolvimento de servidores e clientes OPC. De forma geral o funcionamento dos servidores OPC consiste em fazer a aquisio dos dados e deixar essa informao acessvel para os clientes OPC que nele se conectarem. Esta disponibilizao se d atravs do que a especificao em questo chama de Itens. Um item um dado que pode ser uma temperatura, presso, estado de uma vlvula, etc, disponvel para ser lido ou escrito por um cliente OPC [LEITO 2006].

    Com o intuito de melhor estruturar e organizar os dados disponibilizados pelo servidor, o cliente deve criar grupos de itens que deseja acessar. Nesse contexto, um item dever sempre pertencer a um grupo e por conseqncia no mnimo um grupo deve existir. Os grupos so responsveis por definir as principais caractersticas de leitura dos itens (taxa de atualizao, estado ativo/inativo, banda morta, leitura sncrona/assncrona) [FONSECA 2002]. A criao, denominao e a quantidade de grupos ficam a critrio do cliente OPC. No caso deste trabalho, um item ser um valor lido diretamente do Banco de Dados SISAL ou atravs do protocolo PCI.

    2.3. Namespace

    O conjunto de itens disponibilizados pelo servidor e a organizao dos mesmos d origem ao conceito de espao de nomes ou namespace OPC. O namespace pode possuir uma estrutura plana (flat namespace) representada por um

  • Congresso Rio Automao 2015

    4

    nico nvel, ou uma estrutura de rvore com qualquer profundidade, sendo assim denominado de namespace hierrquico (hierarchical namespace). Ambos os tipos devem apresentar um n raiz (root), que no visvel aos clientes, tendo como finalidade dar origem estrutura do espao de nomes.

    Um namespace hierrquico dispe de uma construo mais complexa, na qual ns (nodes) podem ser utilizados para montar uma estrutura de rvore de acordo com as necessidades e funcionalidades de cada servidor OPC. A cada n podem ser associados outros ns ou itens que sero disponibilizados aos clientes de acordo com a disposio criada. O Servidor OPC ao qual esse trabalho se refere apresenta uma estrutura hierrquica, em que os ns representam os poos supervisionados pelo SISAL que esto cadastrados na base de dados e as informaes ligadas a cada um deles so os itens fornecidos. A figura 1 ilusta a estrutura do namespace descrito.

    Figura 1. Estrutura do namespace hierrquico do Servidor OPC SISAL

    O namespace ainda pode ser classificado em esttico ou dinmico. Um namespace esttico aquele que j est

    disponvel na inicializao do servidor, sendo criado diretamente. Nos casos em que o espao de nomes muito grande ou no conhecido no momento de partida (aplicaes dinmicas), como o caso do Servidor OPC SISAL, necessria a implementao de um namespace dinmico, que vai se formando medida que as informaes so recebidas ou modificadas.

    3. SISAL Sistema Supervisrio de Automao da Elevao O SISAL um sistema de superviso que visa monitorar e controlar poos de petrleo que utilizam mtodos de elevao artificial. Foi criado a partir de uma parceria entre a Petrobras e a UFRN Universidade Federal do Rio Grande do Norte, e atualmente mantido pela empresa RN Tecnologia. Seu principal objetivo disponibilizar uma interface simples, porm eficiente, para os diversos mtodos de elevao suportados: bombeio mecnico, bombeio centrfugo submerso, bombeio por cavidades progressivas, gs lift e plunger lift (em desenvolvimento). Este captulo tem como objetivo descrever a arquitetura e os principais conceitos envolvidos no supervisrio. A arquitetura do SISAL baseada em cinco mdulos: Cliente, Servidor, Mestre de Campo, Mestre de Banco e SGBD (Sistema de Gerenciamento de Banco de Dados). O cliente responsvel por interagir diretamente com os usurios atravs de uma interface grfica que apresenta a lista de poos, telas de superviso e opes de controle e gerenciamento. Os dados devem ser solicitados atravs de requisies enviadas pelo cliente ao servidor.

    O servidor tem a funo de rotear as informaes que trafegam pelo sistema. Ele deve receber as requisies, envi-las aos seus respectivos mestres, obter uma resposta e repass-la ao cliente. Ao servidor cabe, ainda, o controle de acesso dos usurios, gerenciamento da segurana do sistema e das aes automticas [NASCIMENTO 2010].

    Cada poo supervisionado deve estar associado a um controlador que armazena informaes de campo e realiza o controle da planta. Os mestres de campo so responsveis pela comunicao do sistema com os controladores. Sua tarefa receber uma requisio do servidor e saber interpret-la de acordo com o tipo de controlador utilizado e mtodo de elevao aplicado. Basicamente ele deve associar os dados requisitados aos endereos de memria do controlador. tambm de responsabilidade dos mestres de campo realizar o pooling de dados dos poos de maneira cclica.

    O mdulo mestre de banco recebe solicitaes de leitura ou escrita na base de dados vindas do servidor e as repassa ao SGBD, que por sua vez responsvel por armazenar os dados do sistema e gerenci-los. O PostgresSQL o SGBD atualmente utilizado pelo SISAL.

    A comunicao entre os mdulos se d atravs de dois protocolos desenvolvidos em nvel de aplicao encapsulados no TCP/IP: o Protocolo de Comunicao Inter-Redes (PCI) e o Protocolo de Comunicao com os Mestres

  • Congresso Rio Automao 2015

    5

    (PCM). O primeiro citado realiza troca de informaes entre cliente/servidor e o segundo a comunicao entre servidor/ mestres.

    A Figura 2 ilustra a arquitetura descrita.

    Figura 2. Arquitetura do SISAL

    4. Metodologia 4.1. Introduo e Contextualizao O trabalho de [CARVALHO NETO 2010] apresenta uma soluo para listar o conjunto de poos supervisionados pelo SISAL e disponibilizar as variveis cod_poco,Estao,GrauAPI e End_Controlador referentes a cada poo no formato de tagsOPC. O resultado de seu trabalho foi uma aplicao denominada Servidor OPC SISAL 1.00, que utiliza um cliente SISAL encapsulado em uma DLL (Dynamic Link Library) para se comunicar com o servidor SISAL por meio do protocolo PCI. Atravs desta DLL a lista de poos obtida e o programa gera um namespace que disponibiliza esses dados para qualquer cliente OPC que nele se conectar. Para desenvolver sua aplicao, [CARVALHO NETO 2010] fez uso da ferramenta Softing OPC ToolBox que fornece uma biblioteca de classes em C++ para criar e gerenciar todos os objetosOPC necessrios. Uma descrio mais detalhada e as principais vantagens, funcionalidades e limitaes do ToolBox so expostas em seu trabalho, assim como uma documentao tcnica e de uso do que foi implementado. O servidor OPC qual esse trabalho se refere teve como ponto de partida o software desenvolvido por [CARVALHO NETO 2010], adicionando funcionalidades e diminuindo algumas de suas limitaes. Baseado neste contexto e na necessidade de alguns usurios do SISAL, o novo Servidor OPC SISAL alm de todas as funes da verso anterior, apresenta as seguintes atualizaes:

    capaz de realizar uma conexo direta com o SGBD (independente do servidor SISAL e mestre banco SISAL) para acessar qualquer informao desejada na base de dados SISAL e adicion-la ao namespace.

    capaz de disponibilizar as variveis BSW, Mestre, OBS e VazaoSIP para todos os poos. capaz de disponibilizar todas as variveis de um poo Plunger Lift, sendo elas obtidas diretamente do

    mestre campo atravs de uma funo do protocolo PCI. capaz de adicionar, remover e alterar as variveisdo namespace atravs de um arquivo de configurao

    XML. Dispe de uma interface grfica.

    4.2. Viso Geral do Servidor OPC Proposto A arquitetura final do software elaborado apresentada na Figura 3, na qual podemos observar todos os elementos relacionados ao Servidor OPC e como estes esto interligados.

  • Congresso Rio Automao 2015

    6

    Figura 3. Arquitetura do Servidor OPC SISAL

    Baseado nas metodologias que sero apresentadas nesta seo e na arquitetura demonstrada, o fluxograma da

    Figura 4 fornece uma viso geral do funcionamento bsico da soluo proposta. O desenvolvimento da aplicao foi realizado na linguagem de programao C++ atravs do ambiente Microsoft

    Visual C++ 2005 Express Edition em conjunto com as bibliotecas libpq para comunicao do software com o banco de dados, e tinyxml para a manipulao do arquivo XML. Como algumas alteraes na DLL foram necessrias, a IDE BorlandC++ Builder 5 tambm foi utilizada.

    Figura 4. Fluxograma com o funcionamento bsico do Servidor OPC SISAL

    4.3. Arquivo de Configurao XML

    No contexto do Servidor OPC desenvolvido, um arquivo XML (eXtensible Markup Language) utilizado com o objetivo de gerenciar os dados disponveis para a criao do namespace. Sua principal funo armazenar as tagsOPC que foram cadastradas, fazendo com que o servidor acesse este documento toda vez que inicializado para carregar a lista de variveis e que o mesmo seja alterado sempre que uma nova varivel cadastrada, sendo salvo um documento atualizado no trmino da aplicao. importante salientar que uma tagOPC cadastrada no necessariamente estar presente no namespace, para isto ela dever ser adicionada. Um atributo ativo dos elementos do arquivo responsvel

  • Congresso Rio Automao 2015

    7

    por determinar quando uma varivel deve estar ou no presente no namespace. Isto torna a aplicao mais fexvel, pois nem sempre desejvel que todas as variveis cadastradas sejam disponibilizadas por um servidor OPC.

    A estrutura do arquivo XML foi elaborada de acordo com os trs possveis tipos de variveis que o Servidor OPC SISAL pode disponibilizar:

    Variveis fixas (dados obtidos a partir da lista de poos) - representado pela tagXML Poco. Todos os elementos que se encontram dentro desta tag possuem um atributo ativo que indica se a varivel a qual se refere faz parte do namespace. A tag Poco foi criada apenas para o usurio poder selecionar quais itens deseja inserir no namespace, logo no possvel cadastrar variveis desse tipo.

    Variveis lidas do Banco de Dados SISAL - representado pela tagXML Banco que contm todos os elementos relacionados a este tipo de dado. Cada um destes elementos deve receber em seu nome a nomenclatura referente aos itens OPC que sero gerados, um atributo ativo que indica se a tagOPC faz parte do namespace e um atributo consulta contendo a consulta SQL destinada ao banco de dados para obter a informao.

    Variveis de um poo Plunger Lift acessadas diretamente do mestre campo -representado pela tagXML WellStatusPL. Cada elemento contido nesta tag possui um atributo cod_poco com o cdigo do poo Plunger Lift de interesse e um atributo ativo que indica se os dados referentes a este poo devem ser adicionados ao namespace.

    A Figura 5 apresenta um exemplo do arquivo XML utilizado.

    Figura 5. Exemplo do arquivo XML utilizado

    4.4. Comunicao com o Banco de Dados SISAL A comunicao com o SGBD do SISAL realizada atravs da biblioteca libpq. A libpq uma interface do programador de aplicativo C com o PostgreSQL (fornecida pelo seu prprio desenvolvedor), sendo um conjunto de funes que permitem os programas clientes enviarem comandos para o servidor PostgreSQL, e receber os resultados destes comandos [DOC LIBPQ n.d]. 4.5. Funcionamento da DLL e alteraes realizadas

    A DLL proposta no trabalho de [CARVALHO NETO 2010] tem como finalidade solicitar e obter dados do SISAL atravs de funes PCI. Quando as respostas dessas solicitaes so recebidas, o Servidor OPC SISAL acessa as informaes atravs dos mtodos criados pela DLL. Basicamente, uma parte do cdigo do cliente SISAL com algumas funes PCI compe sua estrutura, isso permite que um login seja efetuado junto ao servidor SISAL e em seguida que a lista de poos seja solicitada. Essa lista ento passada ao Servidor OPC que tem como tarefa gerar seu namespace de acordo com a mesma. Ao longo do desenvolvimento do trabalho, houve a necessidade de realizar algumas alteraes na DLL. Sendo assim, foram adicionadas algumas funes para obter os dados de um poo Plunger Lift diretamente do mestre de campo. Tanto funes do cdigo do Cliente SISAL responsveis por esta finalidade foram includas (exemplo: WellStatusPL), como tambm foram criados novos mtodos para transferir as informaes entre a DLL e o servidor OPC. Somadas a

  • Congresso Rio Automao 2015

    8

    essas modificaes, pequenas atualizaes foram realizadas para tornar a DLL compatvel com as ltimas verses do servidor e mestre banco SISAL. 4.6. Interface Grfica

    Na tentativa de facilitar o gerenciamento do servidor OPC do ponto de vista do usurio, foi elaborada uma interface grfica com algumas funcionalidades que sero expostas a seguir. A janela principal apresentada assim que o programa inicializa. Na sua regio esquerda, de acordo com a Figura 6, podemos visualizar em uma estrutura de rvore todas as tagsOPC cadastradas at o momento. Elasso lidas diretamente do arquivo XML e distribudas entre os ns Poo, Banco e WellStatus dependendo dos tipos de variveis apresentados na seo 4.3.2 deste captulo. Na espao localizado direita, o quadro Namespace Ativo apresenta a lista de todas as tags ativas no namespace . Como se pode observar na Figura 6 existem dois botes responsveis pelo cadastro e remoo das tags do servidor.

    Figura 6. Janela Principal

    As variveis do tipo Banco so as nicas que podem ser cadastradas/removidas atravs da interface grfica. Para efetuar um cadastro, o boto Cadastrar TAG deve ser acionado, fazendo com que a janela apresentada na figura 4.8 seja visualizada. O usurio ento deve inserir o Nome da tag a ser registrada e sua respectiva consulta SQL, confirmando sua ao atravs do boto Cadastrar Tag.

    5. Resultados e Discusso 5.1. Cadastrando TagsOPC e Gerando um Namespace Aps efetuar o processo de conexo com o servidor OPC, onamespace com a lista de poos supervisionados pode ser acessado pelo cliente, onde cada n corresponde ao nome dos poos. Com o intuito de ampliar o namespace disponibilizado nesse exemplo, algumas variveis foram cadastradas atravs da interface grfica do Servidor OPC SISAL e em seguida inseridas na rea de Namespace Ativo. Dentre as variveis adicionadas temos: cod_poco, Estacao, GrauAPI, BSW, VazaoSIP, cpm, curso, contrapeso1, conrapeso2, cod_bomba, tipo_coluna, rgo, prev e pcab.

    As modificaes realizadas no namespace podem ser diretamente observadas no cliente que agora dispe de todos os itens adicionados associados aos seus respectivos poos. A partir deste ponto, o cliente pode selecionar qualquer tag ou n para ser monitorado bastando clicar duas vezes no item desejado, fazendo com que este seja incluso no grupo OPC que foi renomeado para Testes OPC SISAL. A Figura 7 ilustra o que foi descrito.

    5.2. Aquisio de dados do Mestre Campo

  • Congresso Rio Automao 2015

    9

    Um teste foi realizado para obter dados referentes a um poo PL simulado atravs de um CLP ZAP-500 da empresa HI Tecnologia. Atravs do protocolo PCI, os ltimos dados referentes a este poo armazenados no buffer do mestre campo so acessados e, em seguida, disponibilizados no formato de tagsOPC..

    Figura 7. Namespace gerado e grupo de itens Testes OCP SISAL

    Para monitorar os itens escolhidos pelo cliente, a aba DA Items foi selecionda, onde so exibidos todos os

    valores relacionados s tagsOPC ( Value, Quality e Timestamp). A Figura 8 ilustra essa situao.

    Figura 8. Monitoramento dos itens pelo Cliente

    6. Concluses

  • Congresso Rio Automao 2015

    10

    O protocolo OPC vem de fato ganhando espao a cada dia no contexto da indstria de automao. Com sua proposta de fornecer dados de forma rpida, confivel e, sobretudo padronizada, a comunicao entre os mais diversos dispositivos de cho de fbrica e qualquer outro elemento dos sistemas de automao se tornou prtica e eficiente. Baseados nessa conjuntura, alguns usurios do SISAL necessitam que dados supervisionados por este, sejam disponibilizados no formato de tagsOPC. A soluo direta para este problema o desenvolvimento de um Servidor OPC para o SISAL. A aplicao Servidor OPC SISAL resultado deste trabalho capaz de obter os dados necessrios da Base de Dados SISAL e criar um namespace flexvel, de maneira que seus usurios possam gerenci-lo livremente, adicionando ou removendo itens. Este tipo de dinamismo nas variveis torna a soluo mais eficiente no que diz respeito a atingir os objetivos de cada usurio. A escolha e criao de um arquivo XML foram de fundamental importncia para efetuar o cadastro das variveis, permitindo que as informaes associadas a cada tag fiquem armazenadas no trmino da execuo do programa e sejam recuperadas quando este for reinicializado. A flexibilidade do documento XML possibilita ainda que futuras atualizaes realizadas no servidor sejam integradas facilmente, com a criao de novos elementos XML.

    A soluo proposta neste trabalho apresentou bons resultados nos testes realizados, possibilitando que um Cliente OPC tivesse acesso a todas as variveis adicionadas ao namespace. Nesse contexto, o servidor OPC desenvolvido mostra-se uma alternativa simples e eficiente para os usurios do SISAL que hoje em dia utilizam um Servidor OPC comercial para os mesmos fins.

    Um ponto importante a ser considerado em futuras atualizaes do software, aprimorar sua interface grfica de acordo com as necessidades de seus usurios, criando novas janelas e aperfeioando as j existentes com as configuraes desejadas. Elaborar um sistema para deteco de falhas tanto para o protocolo PCI, quanto para a conexo com o banco de dados tambm fundamental. Este sistema seria capaz de identificar todos os erros de comunicao que ocorrerem e registr-los em um arquivo, ou at mesmo visualiz-los pela interface grfica.

    Tambm como perspectiva futura, disponibilizar atravs do Servidor OPC SISAL dados adquiridos diretamente dos controladores responsveis pelos poos uma proposta interessante. Assim como ter acesso a outros dados presentes no mestre campo, como por exemplo: entradas e sadas analgicas, entradas e sadas digitais, pontos medidores e informaes referentes aos outros mtodos de elevao alm do Plunger Lift. Para isso, vrias alteraes na DLL devem ser feitas acompanhadas de suas respectivas atualizaes no servidor.

    7. Referncias [SOUZA n.d] SOUZA L. C. Andrade, Filho C. Seixas, Pena R. Tadeu (n.d). Padro de Acesso a dados OPC e sua implementao em um driver OPC-MODBUS. [ALMEIDA 2009] de ALMEIDA F. R. Mximo, (2009). Sistema SCADA e Aplicao, Monografia de Graduao, Universidade Federal do Cear. [NASCIMENTO 2010] NASCIMENTO J. M. Arajo, GOMES H. Penalva, SOUZA R. Barbosa (2010). Manual do Usurio SISAL V 2.20. [FONSECA 2002] FONSECA M. Oliveira. (2002). Comunicao OPC Uma Abordagem Prtica, VI Seminrio de Automao de Processos, Associao Brasileira de Metalurgia e Materiais, 9-10 de outubro de 2002, Vitria, ES. [CARVALHO 2008] CARVALHO A. Siqueira, NASCIMENTO D. Barbosa, da SILVA R. Coutinho (2008). Sistema de Comunicao OPC para uma Coluna de Destilao Piloto. [CNDIDO 2004] CNDIDO R. V. Bas (2004). Padro opc: Uma Alternativa de Substituio dos Drivers Proprietrios para Acessar Dados de PLCs, Monografia de Concluso de Curso, FUMEC. [CARVALHO NETO 2010] CARVALHO NETO J. T. (2010). Desenvolvimento da Capacidade de Comunicao Segundo o Protocolo OPC (OLE for Process Control) para o Sistema Supervisrio SISAL (Sistema Supervisrio de Automao da Elevao),Trabalho de Concluso de Curso, Universidade Federal do Rio Grande do Norte. [LEITO 2006] LEITO G. B. Paz (2006). Arquitetura e Implementao de um Cliente OPC para Aquisio de Dados na Indstria do Petrleo, Monografia de graduao, Universidade Federal do Rio Grande do Norte. [IWANITZ 2001] IWANITZ F., LANGE J. (2001). OLE for Process Control, Hunthig. [MACORATTI n.d] MACORATTI J. Carlos. XML Introduo, disponvel em http://www.macoratti.net/xml.htm, acessado em 08/06/2011. [TUTORIAL TINYXML n.d] Tiny XML Tutorial. Disponvel em http://www.grinninglizard.com/tinyxmldocs/tutorial0.html, acessado em 09/06/2011. [DOC LIBPQ n.d] Documentao do PostgresSQL 8.0.0, Capitulo 27. Disponvel em http://pgdocptbr.sourceforge.net/pg80/libpq.html, acessado em 09/06/2011.