Escolar Documentos
Profissional Documentos
Cultura Documentos
Centro de Tecnologia - CT
Curso de Engenharia Mecatrônica
Natal
2022
Universidade Federal do Rio Grande do Norte - UFRN
Sistema de Bibliotecas - SISBI
Catalogação de Publicação na Fonte. UFRN - Biblioteca Central Zila Mamede
Natal
2022
Agradecimentos
À minha avó, Maria Selma da Câmara Lima Pereira, minha maior inspiração como
ser humano. Dona de um espírito caridoso, uma mente brilhante e um semblante terno.
Aos meus pais, Flávia Simone Lima Pereira e Alessandro Falleiro Cassel, que
compartilharam seus atos de motivação e carinho, desde de minha tenra idade. Par que
sempre acreditou na educação e cultura como elementos transformadores de vida para sua
prole.
Ao meu professor orientador Samaherni Morais Dias, por todas as oportunidades
por ele concebidas nas áreas de monitoria e pesquisa, além da sua dedicação ao ensido do
conhecimento teórico e prático de seus alunos.
À Antônio Carlos Brasileiro de Almeida Jobim, que em 1970 lançou seu álbum
Stone Flower pela gravadora CTI Records. Compostitor das melodias que preencheram
meus ambientes de estudo nos momentos de pesquisa e foco.
Aos meus amigos, por todos os sorrisos, risadas, desabafos e concelhos.
“Longa é a arte.
Tão breve a vida.”
(Antônio Carlos Jobim)
Resumo
Com o avanço da industria de extração do petróleo, desde a segunda metade do século
XIX até o dias atuais, tornou-se notório o potencial industrial, energético e econômico
do nomeado “ouro negro”. Assim, a comunidade industrial aperfeiçoou as técnicas de
perfuração e extração de poços produtivos e desenvolveu cada vez mais produtos derivados
de petróleo, afim de expandir seu potencial. Com o objetivo de desenvolver-se, a indústria
passou de poços onshore, para perfuração em ambientes marítimos de alto estresse aos
sistemas mecânicos e elétricos, em poços offshore. Tamanho o potencial econômico vislum-
brado pela indústria e o histórico do uso óleo, que erguemos plataformas de perfuração,
com equipamentos sofisticados e custosos, em ambientes que apresentam riscos expressivos.
Com o objetivo de garantir que tal investimento tenha uma base sólida de operação e
apresente as condições mínimas de planejamento, a indústria vem requisitando que suas
plataformas de perfuração sejam cada vez mais proativas nas tarefas de aquisição de
dados, controle e atuação de equipamentos. Este trabalho propõe um modelo de atuação e
aquisição de dados para plataforma de petróleo onshore, localizada na base TechCenter da
Geowellex do Brasil Serviços Petrolíferos LTDA, utilizando equipamentos proprietários da
National Instruments e programação em ambiente LabVIEW. Os resultados são obtidos
através da utilização do modelo na plataforma real de escala média presente na base, afim
de garantir a fidelidade da funcionalidade do modelo desenvolvido em um ambiente que
componha uma simulação mais próxima possível da realidade da indústria.
cRIO CompactRIO
NI National Instruments
E/S Entrada/Saída
VI Virtual Instrument
NF Normalmente Fechado
NA Normalmente Aberto
DO Digital Output
DI Digital Input
AI Analog Input
1 Introdução . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
1.1 Motivação . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
1.2 Objetivo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
1.3 Revisão Bibliográfica . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
1.4 Visão geral dos capítulos seguintes . . . . . . . . . . . . . . . . . . . . . 13
2 Contextualização . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
2.1 Instalação Mecânica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
2.1.1 Elementos da Torre de Perfuração . . . . . . . . . . . . . . . . . . . . . 15
2.1.2 Elementos adjacentes à Torre de Perfuração . . . . . . . . . . . . . . . . 16
2.1.3 Elementos Sensores . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
2.2 Instalação Elétrica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
2.2.1 Quadro dos Soft-Starters . . . . . . . . . . . . . . . . . . . . . . . . . . 23
2.2.2 Quadro do Inversor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
2.2.3 Quadro do cRIO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
2.3 Elementos de Operação e Sinalização . . . . . . . . . . . . . . . . . . . 27
3 Fundamentação teórica . . . . . . . . . . . . . . . . . . . . . . . . . 29
3.1 Arquitetura Combinacional de Circuitos Digitais . . . . . . . . . . . . . 29
3.1.1 Lógica da Álgebra Booleana . . . . . . . . . . . . . . . . . . . . . . . . 29
3.1.2 Propriedades da Álgebra Booleana . . . . . . . . . . . . . . . . . . . . . 32
3.2 Interpolação Polinomial . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
3.3 Arquitetura do Armazenamento FIFO . . . . . . . . . . . . . . . . . . . 33
3.4 Arquitetura de Software para LabVIEW . . . . . . . . . . . . . . . . . . 34
3.4.1 Queued Message Handling (QMH) . . . . . . . . . . . . . . . . . . . . . 34
3.4.2 Escopos de Variáveis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
3.4.2.1 Local Variable . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
3.4.2.2 Global Variable (Single Process Shared Variable) . . . . . . . . . . . . . 37
3.4.2.3 Shared Variable Network-Published . . . . . . . . . . . . . . . . . . . . 37
3.4.3 Formatação e Tratamento de Erro . . . . . . . . . . . . . . . . . . . . . 38
4 Desenvolvimento . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
4.1 Sistema Real Time . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
4.1.1 Inicialização do Sistema . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
4.1.2 QMH do Sistema Real Time . . . . . . . . . . . . . . . . . . . . . . . . 40
4.1.3 Bloco Lógico Combinacional do Guincho . . . . . . . . . . . . . . . . . 41
4.1.4 RPM da Bomba de Lama . . . . . . . . . . . . . . . . . . . . . . . . . . 45
4.1.5 Cálculo de movimentação vertical de tubos por Encoder . . . . . . . . . 46
4.1.6 Tratamento de erro e prevenção de falha . . . . . . . . . . . . . . . . . . 49
4.2 Sistema de Interface de Usuário . . . . . . . . . . . . . . . . . . . . . . 50
4.2.1 QMH da Interface de Usuário . . . . . . . . . . . . . . . . . . . . . . . . 50
4.2.2 Conexão com os elementos monitorados pelo sistema Real Time . . . . 51
4.2.3 Calibração dos Sensores . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
4.2.4 Armazenamento de parâmetros de calibração . . . . . . . . . . . . . . . 55
4.2.5 Criação de dataset de operação em CSV . . . . . . . . . . . . . . . . . . 58
4.2.6 Organização visual da IHM . . . . . . . . . . . . . . . . . . . . . . . . . 59
4.2.6.1 Tela “Operar” . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
4.2.6.2 Tela “Configurar” . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
5 Resultados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
5.1 Resultados do Sistema Real Time . . . . . . . . . . . . . . . . . . . . . 63
5.2 Resultados do Sistema IU . . . . . . . . . . . . . . . . . . . . . . . . . . 66
6 Conclusões . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69
6.1 Conclusões acerca do projeto desenvolvido . . . . . . . . . . . . . . . . . 69
6.2 Planos futuros de expansão do sistema . . . . . . . . . . . . . . . . . . . 69
Referências . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
11
1 Introdução
1.1 Motivação
Durante o século XX o petróleo se consolidou como uma das commodities de
maior importância no mercado internacional. É através de derivados do petróleo de onde
é retirada a matéria prima para a elaboração de produtos globalmente consumidos em
larga escala. Dentre esses produtos, temos combustíveis automotivos, óleos lubrificantes,
gás liquefeito de petróleo (GLP), produtos asfálticos e produtos plásticos. Apesar da
exploração comercial do petróleo ter começado somente na segunda metade do século XIX,
a história mostra que o produto participou da cultura de povos de tempos anteriores à
história moderna. De acordo com THOMAS (2001, p. 1):
1.2 Objetivo
O objetivo desse trabalho consiste na arquitetura e programação de um Software em
ambiente LabVIEW, para um CompactRIO (cRIO) 9053 em comunicação com uma sonda
petrolífera onshore e elementos sinalizadores na cabine de operação. Como objetivo basilar,
o sistema deve ser capaz de se comunicar com o motor que controla a movimentação do
guincho da instalação mecânica, processar os sinais de elementos de operação e realizar o
controle de movimentação e freio do sistema mecânico. Além disso, o projeto deve adquirir
e converter os sinais analógicos de sensores presentes no ambiente de sonda, bem como ser
capaz de calibrar dados de pressão, temperatura, rotação e comprimento de tubulação. O
sistema deve ser modular, fisicamente seguro e pronto para responder a possíveis erros
computacionais. Por fim, deve-se criar um ambiente homem-máquina para visualização
dos dados e operação do sistema.
2 Contextualização
Fonte: CEPEP
a ação do motor que traciona o cabo de aço. Este conjunto conta com um gancho
em formato de pinça;
• Cabeça de injeção (Swivel): bloco que injeta fluido de perfuração para dentro da
coluna e separa os elementos rotativos dos estacionários;
• Motor Guincho: elemento de força motriz que transforma energia elétrica para
rotacionar o eixo do guincho, visível na Figura 4, e tensionar o cabo de aço responsável
pelo içamento, descida e freio da tubulação;
• Motor Hidráulico: motor nomeado de “Motor Hidráulico”, por fazer parte de uma
futura unidade hidráulica, responsável pelo acionamento de uma bomba hidráulica
(ainda não instalada). A força gerada por suas revoluções irá acionar a bomba, que
através da pressurização de óleo armazenado será responsável pela rotação do Power
Swivel e controle futuro de um freio hidráulico.
• Sensor de Nível: elemento sensor que mede o nível de liquido, do tipo Dolphin,
presente no tanque de lama. O sensor é calibrado para retornar o valor mínimo
quando o tanque tiver em 0% e o valor máximo quando o tanque estiver em 100%
da capacidade;
• Sensor de de Fluxo (Flow Out): sensor que mede o fluxo de retorno do fluido de
perfuração, junto do ponto de saída da lama;
• Sensor de Pressão: sensor que mede pressão na linha hidráulica do Motor a Diesel,
responsável pelo bombeiamento do fluido de perfuração. Este fator é de grande
significância para averiguação da eficiência de bombeamento, que apresenta um papel
fundamental no processo de perfuração.
Figura 15 – Encoder
funcionamento para cargas que possuem potencial indutivo. Por fim, contamos com um
relé, para cada Soft-Starter, que chaveia uma tensão de 220V a partir de uma entrada de
24V, que terá o origem na saída do cRIO.
O sistema pode ser visualizado na Figura 16.
descida e freio. Estes sinais acionam os relés, que por sua vez alimentam o inversor com
o comando do controle. Por fim, pelo fato do motor operar com uma tensão de entrada
de 380V a 420V e necessitar de uma corrente contínua, usa-se a ponte retificadora para
transformar o sinal de alimentação analógico em digital.
Um primeiro importante adendo a se fazer é citar que o Inversor pode ser configurado
para trabalhar em diversos tipos de sistemas, adaptando aos seus requisitos. O sistema
já havia tido seus parâmetros previamente configurados, como tempo de rampa, tipo de
freio, corrente do motor, proteções de sobrecarga e outras especificações.
Como segundo importante adendo, é importante relembrar que esta aplicação
lida com uma carga reativa. Tendo em vista que experiências passadas mostraram que a
presença da carga reativa no inversor pode levá-lo a falha, foi importante a instalação de
um Resistor de Frenagem, para dissipar esta carga energética em calor.
O sistema pode ser visualizado na Figura 17.
bem como adquirindo e processando os dados dos sensores, que serão apresentados em IHM
separada. O cRIO é programável através da linguagem de programação visual proprietária
da NI, o LabVIEW.
O cRIO e os sensores conectados ao controlador são alimentados por uma fonte de
tensão de 24V e protegidos por um disjuntor C25. Além disso, para garantir a segurança dos
componentes, todas as entradas e saídas dos sensores e do hardware da NI são protegidos
por um conjunto de oito barreiras de dois canais.
O sistema pode ser visualizado na Figura 18.
• NI 9375: Contém 32 canais, sendo 16 canais para entradas digitais, do tipo Sinking
Input e 16 canais para saídas digitais, do tipo Sourcing Output. Utilizado para
conectar o sistema com os botões, chaves, joystick e saídas digitais de sensores da
sonda;
Capítulo 2. Contextualização 27
• NI 9423: Contém 8 canais de entrada digital do tipo Sinking Input, com no máximo
1 µs de tempo de atraso. Utilizado exclusivamente para detectar o indicador de
rotação do motor da bomba de lama;
• NI 9411: Contém 6 canais de input digital de ±5V até 24V do tipo diferencial ou
simples, com taxa de atualização de 500 ns. Utilizado para medir o posicionamento
do guincho através do Encoder.
• Três (3) chaves de tipo Switch, que servem para se comunicar com o sistema de
controle e requisitar o acionamentos de três elementos distintos: Inversor, Bomba de
Mistura e Motor Hidráulico;
• Um botão normalmente fechado especial para emergência, que tem como função
requisitar a uma parada manual do sistema de movimentação do guincho em caso
de emergências visuais;
• Três (3) sinalizadores luminosos, cuja função é identificar por meio de uma iluminação
pontual o atual funcionamento dos elementos: Inversor, Bomba de Mistura e Motor
Hidráulico;
3 Fundamentação teórica
tanto A quanto B também assumirem o valor 1 (verdadeiro). Para todos os demais casos
a operação AND retorna o valor 0 (falso).
O bloco OR realiza a disjunção inclusiva, ou soma lógica, entre duas variáveis
booleanas. Neste bloco, o retorno verdadeiro de uma preposição já gante a resposta
verdadeira da operação. Desse modo, sendo A e B variáveis booleanas, a operação OR só
retorna o valor 0 (falso), quando tanto A quanto B também assumirem o valor 0 (falso).
Para todos os demais casos a operação OR retorna o valor 1 (verdadeiro).
As representações dos blocos operacionais, padronizadas pela norma militar ameri-
cana MIL-STD-806B (Defense Standard), atrelados a suas tabelas verdade são visíveis na
Figura 20.
Em adição aos três blocos lógicos principais, comumente mais quatro blocos opera-
cionais podem ser formados através de interações recorrentes entre os blocos de NOT, OR
e AND.
Os blocos NAND e NOR são, respectivamente, representados pela combinação
lógica das portas AND e OR com um inversor lógico (NOT) na saída do bloco. Assim,
NAND e NOT apresentam, respectivamente, as respostas invertidas de AND e OR. Dessa
forma, NAND apresenta valor 0 (falso) somente quando suas duas entradas possuem
valor 1 (verdadeiro), retornando 1 (verdadeiro) para todos os outros casos. Por fim, NOR
apresenta valor 1 (verdadeiro) somente quando suas duas entradas possuem valor 0 (falso),
retornando 0 (falso) para todos os outros casos.
O bloco XOR realiza a disjunção exclusiva entre duas variáveis booleanas.
Assemelhando-se a conjunção “ou” da língua portuguesa, este bloco retorna 1 (verdadeiro)
quando apenas uma das entradas apresentam um valor 1 (verdadeiro). De outro modo,
podemos também interpretar que este bloco apresenta uma saída 1 (verdadeira) quando
as duas variáveis apresentam valores dicotômicos opostos.
Capítulo 3. Fundamentação teórica 31
Operação Notação
NOT A A
A OR B A+B
A AND B A · B ou AB
A NAND B AB
A NOR B A+B
A XOR B A⊕B
A XNOR B A⊕B
Fonte: Autoria Própria
Capítulo 3. Fundamentação teórica 32
n
X
fn (x) = Li (x)f (xi ) (3.1)
i=0
n
Y x − xj
Li (x) = (3.2)
j=0,j̸=i xi − xj
A propriedade FIFO de uma fila faz com que ela funcione como uma
fileira de pessoas em uma caixa registradora. A fila tem um início (ou
cabeça) e um fim (ou cauda). Quando um elemento é inserido na fila,
ocupa seu lugar no fim da fila, exatamente como um cliente que acabou
de chegar ocupa um lugar no final da fileira. O elemento retirado da fila
é sempre aquele que está no início da fila, como o cliente que está no
início da fileira e esperou por mais tempo.
1. Booleana;
2. Numérica;
3. String;
4. Array;
5. Enum;
Essas variáveis se tornam entradas dos blocos operacionais, que processam os dados
e por sua vez podem ou não retornar saídas com o mesmo, ou outro, tipo de variável. O
conjunto de interações entre blocos, que comumente gera subsistemas que adquirem dados
de entradas e retornam saídas processadas é chamado de Virtual Instrument (VI).
As Global Variables, Single Process Shared Variable (SPSV), são variáveis de escopo
geral, que possuem presença e usabilidade em todos os VIs dentro de um sistema. Esta
variável é criada de forma semelhante a uma VI, com a divergência que o arquivo da Global
Variables apresenta somente o painel frontal com entradas do tipo da variável preconfigurada.
Vale notar que essa variável de escopo geral é atrelada a um determinado hardware. Dessa
forma, caso o sistema projetado possua intercomunicação entre dois hardwares diferentes,
que estejam rodando rotinas em LabVIEW, a Global Variable iniciada em um dos hardwares
não pode ser acessada pelo outro.
(NPSV). Assim como as SPSVs, a variável NPSV é criada de forma semelhante a uma
VI, com a divergência que o arquivo da variável apresenta somente o painel frontal com
entradas do tipo da variável preconfigurada. Pelo fato da existência das possíveis flutuações
em taxas de leitura e escrita devido a instabilidade dos sistemas de rede, é possível acionar
um buffer de rede para garantir a integridade da informação.
• Status: variável booleana que assume o valor true caso algum erro tenha acontecido
no bloco atual ou no fluxo de dados;
• Code: variável numérica do tipo Long signed integer que indica a codificação do
erro ou advertência ocasionada, pretabelados pela NI. O valor zero (0) nessa variável
indica que o sistema não teve erro ou advertência. Entretanto, para valores diferentes
de zero (0), o sistema aponta um erro caso o status tenha o valor true, caso contrário
o code denota uma advertência;
• Source: variável do tipo string que contêm a origem do erro ocasionado. Esta variável
apresenta a significância de localizar e depurar o elemento causador do erro, tendo
em visto que o tratamento do erro comumente é feito após a junção dos clusters
durante o fluxo de dados.
4 Desenvolvimento
1. Iniciar o cluster de erro com os elementos básicos de forma nulificados, ou seja, com
o status em valor false, o code igual a zero (0) e o source com string vazio;
2. Iniciar a Global Variable nomeada de All RT Loop Stop em valor false. Essa variável
é responsável por parar todos os laços de repetição dentro da rotina do RT, quando
seu valor modificado para true;
3. Iniciar todas as saídas digitais do cartucho NI 9375 em false. Este passo é feito para
garantir a não flutuabilidade da possível resposta do sistema em suas saídas. Dessa
forma, garantimos que nenhuma saída digital está requisitando comandos indevidos
durante a inicialização. Ademais, a saída DO1 é ligada ao freio eletromecânico. Este
freio, por segurança, é do tipo Normalmente Fechado (NF). Desse modo, o estado de
false significa que estamos com o sistema freado. Consequentemente, quando DO1
recebe true o sistema libera o freio do guincho;
4. O Merge Errors junta os clusters de erro das operações realizadas para passá-los
para a entrada Error In do próximo bloco;
5. O bloco Obtain Message cria uma FIFO de cluster de mensagem, assim, logo após,
o bloco Enqueue Message enfileira a mensagem “Initialize” para o MHL;
6. Por fim, define a variável global Control State como Safe State. Este modo define
que o sistema está funcionando de modo seguro, em tarefa de inicialização. Ademais,
o modo Safe State pode ser utlizado para denotar um modo de segurança do sistema,
em que os objetos de atuação se mantenham em stand-by. O Control State é uma
variável personalizada do tipo enum de words (de até 16 bits).
Com a finalização desse fluxo de dados, passamos o Error Out advindo da variável
global Control State e a linha da FIFO de mensagens, advinda do bloco Enqueue Message
para a próxima página do Stacked Sequence Structure. Desse modo, finaliza-se o processo
de inicialização do sistema RT.
do erro no log do sistema. Em caso de erro crítico, o sistema entra em modo Safe
State e impede-se a operação;
• Exit: estado saída do código. Responsável por finalizar a FIFO de mensagens, impõe
ao sistema o modo Safe State, finaliza a comunicação entre o RT e a Interface de
Usuário e, por fim, para todos os laços de repetição.
• Subida:
• Decida:
• Liberar Freio:
3. O freio deve ser acionado quando nenhuma das saídas de Subida ou Descida,
respectivamente Equações 4.6 e 4.7, está acionada;
4. O freio deve ser acionado quando, por algum motivo não previsto, ambas as
saídas Subida e Descida estão acionadas;
5. Alem disso, o freio deve ser acionado sempre que a entrada Run, que denota a
movimentação do motor do guincho, retornar uma resposta false.
Com isso, podemos aplicar mais uma vez De Morgan em cada um dos termos
resultantes, deixando a equação com a formula de:
Lf r = (Saf e · Run) · ((Sub · Sub) + (Sub · Dsc) + (Dsc · Sub) + (Dsc · Dsc)) (4.14)
2. Calcular o diferencial de tempo entre dois pulsos e dividir esse diferencial pelo
tamanho de um minuto, assim retornando do RPM entre dois pulsos.
Apesar da primeira abordagem calcular o RPM com exatidão, não se torna favorável
à aplicação da qual ela participaria, pelo fato de tomar um minuto para conseguir atualizar
os dados requisitados. Este delay não é compatível com tarefas de sensoriamento em tempo
real. Dessa forma, seguiu o desenvolvimento da segunda abordagem para o problema. Já
esta abordagem nos garante uma taxa de atualização célere, sempre atualizando seu valor
na próxima revolução do eixo do motor.
Dessa forma, deve-se fazer um laço de repetição que mantenha-se adquirindo os
dados da entrada digital do cartucho NI 9423, utilizado para receber o sinal do motor.
Entretanto, o laço deve realizar a operação de contar exclusivamente uma vez para cada
Capítulo 4. Desenvolvimento 46
pulso, ou seja, sem distinguir as larguras dos pulsos. Para isso, utiliza-se o bloco One Shot
Rising, que detecta a borda de subida de um pulso digital e somente mantém o valor true
durante a duração de um ciclo do laço de repetição que o contém. Dessa forma, garantimos
que uma entrada true vinda do cartucho irá contar como apenas um pulso. Em seguida,
atualizamos a contagem de pulsos para um (1) e esperamos o próximo pulso. A partir de
agora, todo ciclo dado pelo laço de repetição tem seu tempo de execução contabilizado
e somado. Então, quando o segundo pulso é dado, o sistema detecta a entrada, soma a
quantidade pulsos para dois (2) e libera a estrutura de case que divide a quantidade de
milissegundos gastos nos ciclos do laço de repetição, entre o primeiro e segundo pulso,
com o valor de sessenta mil (60000), referente a quantidade de milissegundos presentes em
um minuto. Por fim, o sistema retorna ao estado de um pulso dado, para que no próximo
pulso seja calculado o diferencial de tempo entre o segundo e terceiro pulso.
Assim, a estrutura programática de cálculo do RPM, através do diferencial de
tempo entre pulsos, é exemplificada em ambiente LabVIEW pela Figura 26.
Este modo de funcionamento foi implementado pelos blocos One Shot Rising e
One Shot Falling, para identificar as bordas de subida e descida, respetivamente. Para
cada identificação, é gerado um código em string que cataloga o evento. Quando ambos
sinais tiverem eventos catalogados nós concatenamos as strings, gerando um código. A
partir desse código, é possível identificar quem liderou os eventos a partir de uma lista de
combinações possíveis. Assim, soma-se, ou subtrai-se, de acordo com o entendimento da
liderança. O desenvolvimento do código por ser visto na Figura 29.
o erro não seja catalogado como um erro crítico, a arquitetura de atuação segue o fluxo
de dados. Por fim, em caso contrário, em que o sistema cataloga um erro crítico, o freio
eletromecânico é acionado e o sistema de movimentação é travado. Além disso, o buzzer
de emergência alterna sua ativação de dois em dois segundos, para denunciar uma falha
detectada por software.
Figura 31 – Modificação da rotina de atuação do guincho para abarcar situações com erro
• EHL:
para o MHL do IU. Entretanto, caso o Control State esteja em modo Running,
o evento produz a mensagem Update System Status;
– Botão Connect: verifica o pressionamento do botão Connect. Após a veri-
ficação que o sistema não se encontra conectado ao RT, o evento produz a
mensagem Connect;
– Mudança de IP: verifica a mudança de valor na string de IP. Produz a
mensagem IP Change;
– Seleção no Control State: verifica a mudança de seleção no seletor do Control
State. Produz a mensagem Control System atrelado ao dado modo selecionado.
• MHL:
• De forma programática:
– Valor bruto (em mA) dos sensores analógicos de pressão, nível, fluxo, tempera-
tura, densidade e carga;
– Valor lógico dos elementos digitais status do inversor, bomba de mistura, motor
hidráulico, botão de emergência, freio eletromecânico, comando de subida do
gancho e comando de descida do gancho.
– Valor (em porcentagem) do uso dos processador do RT.
• De forma direta:
1. O sistema recebe como parâmetro uma matriz de calibração C 6x4, tal que:
escolhido. De outra forma, caso o botão não tenha sido pressionado o sistema continua
seu fluxo de funcionamento;
5. Ao fim dos passos anteriores, o sistema realiza o tratamento dos dados, dando início
a rotina de pré-interpolação:
• Resetar:
• Atualizar:
1. Caso a flag retorne o valor false, Figura 34, significa que o sistema conseguiu
identificar o arquivo de inicialização e não precisou criá-lo. Assim, procedemos com
a leitura dos parâmetros presentes no arquivo. Por duas estruturas de for, que criam
a matriz de calibração C. O for mais interno lê os quatro parâmetros de um sensor,
devolvendo uma vetor 1x4 com os valores dos pontos de calibração. Já for mais
externo replica seis (6) vezes a aquisição do vetor de um sensor, assim formando
uma matriz 6x4 pela concatenação desses vetores. Esta matriz é usada como entrada
na rotina de calibração;
2. Caso a flag retorne o valor true, Figura 35, significa que o sistema não encontrou o
arquivo de inicialização de parâmetros e precisou criar um arquivo no diretório local.
Desse modo, o fluxo da rotina segue montando uma matriz 6x4 pela concatenação de
seis (6) vetores padronizados com valores [0, 0, 4, 20]. Esta matriz é escrita, seguindo
o mesmo método de leitura, no arquivo recém criado. Por fim, passa-se a matriz
para o canal de entrada da rotina de calibração.
Capítulo 4. Desenvolvimento 57
Hora/Data Pressão (psi) Nível (bbl) Fluxo (%) Temperatura (°C) Densidade Carga (ton) Profundidade (m)
• Idle: este é o estado inicial de espera e ao mesmo tempo responsável pela pela
criação do arquivo. Enquanto a checkbox de confirmação não for ativada, o sistema
espera o início do próximo laço de repetição. Entretanto, caso a checkbox venha a ser
acionada, a rotina cria no diretório local de documentos um arquivo CSV que contém
os elementos organizados na formatação da Tabela 4. Ademais, a nomeação do
arquivo no diretório local segue um padrão que explicita a data e hora de requisição
do armazenamento das variáveis do sistema. Terminada a rotina, o estado “Idle”
transita para o estado “Save”;
• Save: este estado é responsável por escrever linhas na tabela presente no arquivo
CSV, a cada três (3) segundos. A rotina desse estado adquire o tempo atual do
sistema, junto dos valores presentes em cada um dos sensores. Ao adquirir estes
dados, os valores numéricos são traduzidos para strings e concatenados em ordem
pré definida. Subsequentemente, o resultado da concatenação dos strings é usado de
entrada no bloco responsável pela escrita na tabela CSV. Caso a checkbox continue
acionada, o estado se mantém em “Save” por mais três segundos, até que ele faça
Capítulo 4. Desenvolvimento 59
A Tela “Operar” tem como objetivo ser a tela principal de atuação e monitoramento
do sistema. Desse modo, sua composição compreende:
A Tela “Configurar” tem como objetivo ser uma tela secundária, tendo como cerne
a configuração, conexão e calibração do sistema. Dessa forma, sua composição compreende:
• Dois (2) gráficos que explicitem o consumo de processamento dos sistema envolvidos
na operação, sendo o processador que roda a rotina de interface do usuário e o
processador do cRIO;
• Três (3) indicadores de diretório para sinalizar os diretórios onde serão salvos os
arquivos de calibração de sensores, encoder e o dataset de operação;
• Uma caixa de logs do sistema. Responsável por alertar as operações mais recentes
feitas pelo usuário e manter um histórico operacional;
• Seis (6) indicadores numéricos para informar ao usuário a aquisição dos dados brutos
advindos dos sensores instalados na plataforma de perfuração. Estes dados são
formatados para retornar o valor em miliamperes;
• Uma lista seletora de sensores, para lidar com a escolha de que sensor terá seu vetor,
participante da matriz da calibração, reiniciada ou atualizada;
• Três (3) botões e um interruptor, que atuam como os ativadores das rotinas de
calibração e armazenamento. Assim, representam os elementos “Salvar Calibração”,
“Resetar Calibração”, “Atualizar Calibração” e “Habilitar Calibração”;
• Quatro (4) seletores numéricos que definem valores em ponto flutuante. Estes dados
irão participar como referência para o interpolador polinomial e atuar na atualização
da calibração. Dessa forma, substituem-se os valores anteriormente presentes nos
vetores que formam a matriz de calibração.
5 Resultados
capaz de exibir os valores calibrados dos sensores da plataforma. Não obstante, é visível
pela Figura 47 alguns valores não retornados pela tela. Dentre eles:
• Carga: o valor encontra-se em zero (0) pelo fato de não estar devidamente conectado
ao hardware do sistema. Este comportamente pode ser verificado pelo retorno de 0
mA na Figura 46;
• RPM: o valor está relacionado as revoluções dadas pela bomba de lama, que tem
como sua força motriz o motor a diesel. Durante o teste feito para captura dessas
imagens, não foi possível opera-la. Entretanto, durante a construção das rotinas, esse
valor foi corretamente detectado pelo software;
• Profundidade do Poço: Durante o teste feito para captura dessas imagens, não
estava planejada nenhuma inserção ou retirada de tubulação. Dessa forma, o numérico
se encontrou zerado.
6 Conclusões
• Uma reorganização geral para adequar todas as rotinas ao padrão de projeto do tipo
Produtor/Consumidor, através do QMH;
que nos rege a sempre buscar pela otimização de nossas práticas e a evolução de nossas
criações.
71
Referências
CHAPRA, S. C. Métodos Numéricos para Engenharia. [S.l.: s.n.], 2008. 409 p. ISBN
978-85-8055-011-5. Citado 2 vezes nas páginas 12 e 33.
VAHID, F. Sistemas digitais: projeto, otimização e HDLs. [S.l.: s.n.], 2008. 7-89 p. ISBN
978-85-7780-190-9. Citado 5 vezes nas páginas 12, 29, 30, 31 e 32.
NATIONAL INSTRUMENTS. Using the LabVIEW Shared Variable. NI, 2022. Disponível
em: <shorturl.at/fhuY2>. Acesso em: 26 jun. de 2022.