You are on page 1of 10

DESENVOLVIMENTO DE UM SERVIDOR OPC PARA O

SISTEMA SUPERVISRIO DE AUTOMAO DA ELEVAO


(SISAL)
1
Thiago F. Paulo , Anderson L. O. Cavalcanti2

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.

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

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

Congresso Rio Automao 2015


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
2

Congresso Rio Automao 2015


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
3

Congresso Rio Automao 2015


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
4

Congresso Rio Automao 2015


(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

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
6

Congresso Rio Automao 2015


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
7

Congresso Rio Automao 2015


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


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
9

Congresso Rio Automao 2015


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.

10

You might also like