• Nenhum resultado encontrado

3.1 Protocolos de Comunicação

5.2.2 Hardware e Software

Para o desenvolvimento do presente projeto, foram utilizados os seguintes hardwares, captados com recursos dos projetos gerenciados pelo Laboratório:

• Datalogger CR1000, fabricado pela Campbell Scientific para o armazena- mento dos dados coletados pelos sensores. A comunicação entre este dis- positivo e o computador é feita por meio de interface RS-232. A escolha desse equipamento foi devido a sua precisão nas medições, protocolos de

comunicação e disponibilidade para uso no laboratório onde o trabalho foi desenvolvido, além de uso há um longo tempo pela equipe do grupo de pes- quisa.

• Um motor de indução de 220V trifásico e 2 polos fabricado pela WEG Au- tomação, para agitação dos reagentes no interior do reator.

• Inversor de frequência CFW-08, fabricado pela WEG Automação, para o controle da rotação do motor de indução.

• Sensor de potencial hidrogeniônico (pH) para líquidos CSIM11 fabricado pela Campbell Scientific, em caráter experimental.

• Termopares do tipo T, para captura de temperatura, pelo fato de que a tem- peratura é um fator que influencia na velocidade da conversão dos trigli- cerídeos em biodiesel (28). A escolha desse tipo de termopar foi pelo seu intervalo de operação, que é da ordem de −200◦C a +350C, embora esse

intervalo não seja um limitante para os processos de fabricação d biodiesel. Além do hardware envolvido, também foram utilizados os seguintes softwa- res, linguagens de programação e frameworks:

• Campbell Scientific PC400 versão 4.0, para o desenvolvimento da aplicação executável no dispositivo de aquisição de dados. Essa ferramenta é fornecida pelo próprio fabricante do equipamento e é necessária para a sua manipula- ção.

• GNU Compiler Collection (GCC) versão 4.5.2, para a compilação dos códi- gos em linguagem C.

• Servidor HTTP Apache versão 2.2.22, para fornecer acesso às páginas da interface web do sistema desenvolvido.

• Linguagem de programação C, no padrão American National Standards Ins- titute(ANSI).

• Linguagem de programação PHP, na versão 5.3.8.

• Framework Highcharts desenvolvido em linguagem JavaScript, para a ge- ração de gráficos na interface gráfica. A opção por esse framework para o desenvolvimento da interface foi devido ao fato de além de prover as fer- ramentas necessárias para essa etapa do projeto, ter disponível uma docu- mentação online, suporte a diversos navegadores disponíveis no mercado e a possibilidade de trabalhar offline, diferentemente do Google Charts, que era uma outra possibilidade para uso no trabalho.

O sistema operacional utilizado no funcionamento do projeto foi o Slackware Linux versão 13.37 32 bits. Essa opção deu-se ao fato dele seguir a licença de distribuição GNU General Public License (GNU GPL) e manter uma política de prezar pela simplicidade e estabilidade (29).

5.3 Métodos

O método utilizado neste trabalho é o enumerado a seguir: 1. Ligar os sensores ao dispositivo de aquisição de dados. 2. Ligar os atuadores na interface paralela do computador.

3. Ligar o dispositivo de aquisição de dados ao computador por meio de inter- face serial.

4. Ler os dados dos sensores e gravá-los no computador.

5. Desenvolver interface gráfica para interpretar os dados dos sensores e con- trolar os atuadores.

Dados os passos descritos anteriormente, descreve-se a forma, a aquisição e o controle do sistema proposto.

A aquisição é feita com um dispositivo datalogger e um conjunto de sensores que é utilizado na aplicação onde, por meio do desenvolvimento de um programa para o datalogger, tem-se uma saída periódica das leituras dos sensores em um for- mato pré-determinado. Esses dados são enviados ao computador e lá armazenados para posterior utilização na interface.

A proposta de integração deste projeto com o reator desenvolvido no Labo- ratório envolve o controle da injeção de catalisador e o controle da agitação da mistura dos reagentes no interior do reator. Para tanto é proposto um método que utiliza um bico injetor baseado em solenoides que é controlado pela interface para- lela do computador para a injeção de catalisador e, um motor de indução, que tem seu sentido e velocidade de giro manipulados por frequência, para a agitação dos reagentes no interior do reator que também é controlado pela interface paralela do computador.

Como forma de gerenciar o funcionamento dos equipamentos do sistema e ser uma ferramenta de análise dos dados coletados pelos sensores, o método utilizado propõe uma interface interativa que usa de gráficos e gauges para exibir os dados coletados e armazenados pelo computador em tempo real e também contém botões e inputs de texto que controlam o funcionamento do motor de indução e do bico injetor.

Um esquemático em alto nível do método de desenvolvimento aplicado no projeto pode ser visto na Figura7.

6 Resultados e Discussão

Os resultados deste trabalho foram obtidos em três etapas: sistema de aquisi- ção de dados, controle de equipamentos e a interface do usuário, esta que gerencia todo o funcionamento do projeto.

Nesta seção são apresentados os resultados relacionados à área de Ciência da Computação.

6.1 Aquisição de dados

A aquisição de dados de teste para o projeto envolveu um dispositivo data- logger Campbell CR1000, termopares tipo T, um sensor Campbell CSIM11 para medição de potencial hidrogeniônico (pH) em líquidos e o software para a leitura dos dados vindos da interface serial do datalogger. A montagem dos sensores no painel do dispositivo de aquisição de dados foi feita de acordo com a indicação passada pelo próprio software SCWin Short Cut, que indica em quais pinos do painel deve ser ligado cada cabo de cada sensor. Outras alterações no programa do dispositivo de aquisição de dados foram feitas diretamente no seu código fonte para padronizar o formato de saída de dados e enviá-los através de interface serial para o computador.

Os dados do dispositivo são lidos a cada segundo, e montados em uma saída padrão que é enviada para a interface serial. Essa saída é uma linha formatada no padrão JavaScript Object Notation (JSON) e com um terminador de linha com- posto por um carriage return (\r) e um line feed (\n), como pode ser visto no exemplo onde são exibidas duas linhas de uma leitura de pH e temperatura de uma solução neutra:

{"date":"2013-02-28 12:28:41.06";"pH":"7.103";"temperatura":"24.719"} {"date":"2013-02-28 12:28:42.06";"pH":"7.109";"temperatura":"24.635"}

Um programa escrito na linguagem C, faz a configuração da porta serial do computador de modo a operar em conjunto com o datalogger e executa um looping infinito lendo os dados de entrada da porta e gravando-os em um arquivo de saída chamado “datalogger_data.dat”. Em adicional, esse programa também possui um modo que simula dados quando não existe o arquivo de dispositivo para a porta especificada. E como forma de interromper a execução do looping e restaurar as configurações originais do arquivo do dispositivo da porta, o programa faz uso de uma função chamada por meio do tratamento de um SIGINT recebido do sistema. O tratamento desse sinal de sistema mencionado anteriormente é feito vincu- lando um sinal a uma função no programa. Essa função é chamada toda vez que o programa receber o sinal a ela vinculado. Para associar um sinal a uma função, usa-se uma expressão da seguinte forma:

s i g n a l ( SIGINT , t r a t a r _ t e r m i n o ) ; Com a função implementada sendo a seguinte: void t r a t a r _ t e r m i n o ( ) { / ∗ R e s t a u r a m o s i m e d i a t a m e n t e as c o n f i g u r a c o e s ∗ a n t i g a s da p o r t a s e r i a l c a s o o s i n a l ∗ s e j a d i s p a r a d o ∗ / t c s e t a t t r ( f d _ t t y , TCSANOW, &o l d _ t e r m i o s ) ; f c l o s e ( o u t p u t _ f i l e ) ;

e x i t ( EXIT_SUCCESS ) ;

}

E, para enviar o sinal para o processo, pode se fazer:

$ killall -s 30 serial_read (ou ao utilizar o descritor do processo, usar a cha- mada kill)

A linha de execução para que o programa seja executado lendo o arquivo de dispositivo correspondente à porta porta serial especificada é dada por (conside- rando que o executável esteja no diretório atual):

$ ./serial_read

Caso o comando acima não consiga ler o arquivo de dispositivo da porta, automaticamente é executado o modo de simulação e linhas no formato JSON são geradas aleatoriamente e gravadas no arquivo de saída.

Para entrar direto em modo de simulação, deve ser adicionado o argumento -s à chamada do programa, desda forma:

$ ./serial_read -s

Os dados coletados e armazenados pela aplicação em C são exibidos pela interfacegráfica em forma de gráficos em tempo real e também podem ser usados na geração de relatórios. Essas características do projeto são discutidas no tópico

6.3.

Uma demonstração do resultado obtido com a etapa do projeto que envolve o hardwarede aquisição de dados pode ser visto na Figura8. Além do datalogger,

foi utilizado um sensor de pH e um termopar, cujos modelos já foram citados nesta seção, para a medição de uma solução neutra. A medição de temperatura, além de ser um fator de influência na velocidade da conversão de triglicerídeos em biodiesel, neste caso também é utilizada como referência para o sensor de pH.

Figura 8: Montagem de teste do hardware de aquisição de dados

6.2 Controle de Equipamentos

Essa etapa do projeto envolveu o controle do motor de indução usado na agi- tação da mistura no interior do reator e o bico injetor de catalisador. A base desse processo está no uso de comunicação paralela para o controle dos bournes do in-

versor de frequência e dos pinos do bico injetor, por meio de um circuito cujo esquema elétrico é demonstrado na Figura9.

Figura 9: Diagrama da montagem do controle dos equipamentos do projeto

Para a agitação da mistura no interior do reator, um motor de indução deve ter seu sentido de rotação invertido durante certos intervalos de tempos. Esse período desse ser maior em um dos sentidos tal que proporcione um avanço da mistura no interior do reator gerando uma vazão de saída. No motor do tipo indutivo a tensão trifásica aplicada nos terminais do estator do motor gera, de acordo com a Lei de Indução de Faraday, um fluxo magnético induzido, por unidade de tempo (E =

H

c~E · d~l = −dφdtm), no rotor que tem sua energia convertida em energia mecânica

da corrente trifásica de entrada ( f ) e o número de polos do rotor (P), conforme expresso abaixo:

Ns= 120 ∗ fP

A partir dessa relação, que desconsidera o percentual de escorregamento de um motor de indução, a solução desenvolvida usa um inversor de frequência para a manter a frequência do motor em um valor fixo e também controla a variação de sentido nos intervalos determinados na interface do usuário. Com isso, foi de- senvolvido um programa em linguagem C que controla os pinos da porta paralela conectados ao inversor e responsáveis por ligar, desligar e inverter o sentido de rotação do motor. Esse controle é feito pelo tratamento de interrupções do sistema enviadas ao programa, sendo elas SIGUSR1 para disparar a função que liga ou desliga o motor e SIGUSR2 para inverter o seu sentido de giro. Em especial, a inversão de sentido de giro também pode ser tratada dinamicamente no programa pela leitura, a cada de segundo, de um arquivo chamado “motor.dat” onde está escrita uma única linha que contém dois números inteiros positivos, separados por vírgula, representando segundos, sendo o primeiro obrigatoriamente menor. Essa diferença nos valores dos número é devido ao fato de que a inversão de sentido do motor deve prover um avanço da mistura no interior do reator gerando uma vazão de saída. Caso os valores da primeira linha do arquivo não respeitem as restrições impostas, o programa é inicializado com o pino da porta paralela responsável pelo motor desativado, como forma de proteger o sistema, pressupondo que possa ter havido alguma interferência maliciosa no arquivo.

O controle da porta paralela via software é feito por uma instrução que trata cada pino de dados (Dx, onde x identifica o pino) a partir de uma representação

Tabela 1: Exemplo de numeração de pinos da interface paralela

Pinos Decimal Binário Hexadecimal

- 0 00000000 0x0 D0 1 00000001 0x1 D1 2 00000010 0x2 D0, D1, D2 7 00000111 0x7 D4, D6 33 01010000 0x50 D0 a D7 255 11111111 0xFF

binária de uma potência de 2 e o somatório desses números representa a ativação de diversos pinos, como pode ser visto no exemplo da Tabela1.

Como forma de injetar o catalisador na mistura o projeto utilizou um bico in- jetor baseado em solenoides, alimentado por uma tensão de +12V e ativado pelo coletor de um transistor darlington NPN TIP122. Para evitar que, como elucidado pela Lei de Lenz, uma tensão induzida no sentido oposto ao da tensão na sole- noide danifique o circuito assim que desativado, é utilizado um diodo polarizado inversamente para proteção. O controle dessa injeção é feito via interface para- lela com o auxílio de um software em linguagem C que manipula o intervalo de abertura e fechamento do bico em microssegundos. Esse período pode ser alterado dinamicamente no programa pela leitura, a cada de segundo, de um arquivo cha- mado “bico.dat” onde está escrita uma única linha que contém um número inteiro positivo entre [0,1000000] que representa o intervalo de abertura e fechamento da solenoide. Caso o valor na primeira linha do arquivo seja um número fora da faixa limite ou não seja um número, o pino responsável pelo bico injetor é desati- vado como forma de proteger o sistema, pressupondo que possa ter havido alguma interferência maliciosa no arquivo.

Os resultados da montagem do hardware do controle de equipamentos podem ser vistos em duas imagens. A Figura10exibe o bico injetor de catalisador, o cir-

cuito usado para comunicação e isolamento entre os periféricos e a porta paralela e suas ligações. Já a Figura11mostra a ligação entre o motor indutivo, inversor de frequência e o circuito de comunicação.

Figura 10: Bico injetor de catalisador, circuito usado para comunicação e isolamento entre os periféricos e a porta paralela e suas ligações

6.3 Desenvolvimento da Interface

A interface do projeto é responsável pela renderização em tempo real dos da- dos coletados pelos sensores e também por ser uma ferramenta de controle, consi- derando que é por meio dela que o responsável pelo sistema manipula a frequência de inversão do motor indutivo e também o tempo de abertura e fechamento do bico injetor.

Figura 11: Ligação entre o motor indutivo, inversor de frequência e o circuito de comu- nicação

Para a renderização dos dados dos sensores, foi desenvolvido em linguagem PHP, uma função que, a cada segundo, faz a leitura da última linha do arquivo “datalogger_data.dat”, que contém um JSON, como mostrado no tópico6.1. Essa função também retorna um JSON que é o resultado dos dados dessa linha filtrados, ou seja, só alguns campos dela são retornados, dependendo da entrada da função. A chamada dessa função pode ser feita da seguinte forma (a partir de localhost e considerando o diretório raiz da aplicação como sendo “monografia” e o parâmetro da função passado por “campos” - sistema em modo de simulação):

Tabela 2: Intervalo de valores de entrada para a função de manipulação de atuadores

Campo Intervalo Unidade

ligar [0,1] -

bico [0,1000000] µs

motor {(x, y) ∈ (N, N)| x < y} (s, s)

http://localhost/monografia/get_data.php?campos=["t1","t2"] Com uma entrada

{"date":"2013-03-10 16:37:12.29";"t0":"61";"t1":"39";"t2":"58";"t3":"12"}, a execução do Uniform Resource Locator (URL) anterior produziu a saída {"date":"2013-03-10 16:37:12.29";"t1":"39";"t2":"58"}.

A obtenção desse JSON pela interface foi feita por meio de uma requisição Asynchronous Javascript and XML(AJAX) que utilizou um URL no padrão mos- trado anteriormente. A partir desses dados, com o uso do framework Highcharts, foram renderizados os gráficos e gauges para a visualização do usuário, que são atualizados a cada segundo.

O controle dos equipamentos na interface foi feito com inputs de texto e bo- tões. Cada ação dispara uma chamada AJAX com um URL no formato:

http://localhost/monografia/set_data.php? campos={"ligar":1;"bico":500000;"motor":[2,3]}

O URL exibido diz para o motor ser acionado, especifica o intervalo de aber- tura e fechamento do bico injetor (500000 µs) e o tempo de retrocesso e avanço do motor (respectivamente 2 e 3 segundos). A Tabela2mostra a faixa de valores possíveis para cada campo de “set_data.php”.

Para ligar ou desligar o motor, a função criada em PHP em “set_data.php” en- via um SIGUSR1 para o processo chamado parallel_control, por meio da chamada de sistema kill. E, para ajustes dinâmicos nos tempos do bico injetor e do motor indutivo, o valor da posição “bico” do JSON de entrada é gravado na primeira linha do arquivo “bico.dat” e a dupla de valores de “motor” é gravada, separada por vírgula, na primeira linha de “motor.dat”. Esses arquivos, como discutido no tópico6.2são analisados a cada segundo.

Uma visão da interface desenvolvida nesta etapa do projeto pode ser vista em duas imagens. Na Figura12, é mostrada a aquisição de dados de um sensor de pH e de um sensor de temperatura, sendo o primeiro exibido em um gráfico de linhas e o segundo em um gauge. Já a Figura13mostra os botões e inputs de texto de controle de atuadores do sistema. Os dados utilizados na leitura dos sensores provêm de simulações e há a possibilidade de rápida alteração entre os tipos de gráficos e suas características.

Figura 12: Interface gráfica do projeto. Visão da leitura de sensores de temperatura e pH

7 Conclusão 7.1 Conclusão

Com base na metodologia desenvolvida e nos resultados obtidos neste traba- lho, conclui-se que:

• Com o auxílio do equipamento de aquisição de dados e o software desen- volvido, poupa-se o tempo que poderia ser gasto com coletas periódicas no reator e análises em laboratório. O processo desenvolvido é realizado em tempo real e sem interferência humana, sendo uma ferramenta de suporte para a tomada de decisão para o operador do sistema.

• O controle dos equipamentos foi feito de forma que o usuário possa mani- pular as variáveis de rotação do motor indutivo e de abertura e fechamento do bico injetor de catalisador com o uso simples de botões e inputs de texto, com ação imediata sobre o sistema.

• Os testes de integração entre as etapas de Aquisição de Dados, Controle de Equipamentos e Desenvolvimento de Interface mostraram a capacidade do projeto em monitorar e atuar sobre características físicas de um sistema inovador de produção de biodiesel, sendo uma ferramenta que opera em tempo real e com o uso de uma interface gráfica online. A partir desse protótipo final espera-se uma ferramenta que atue de forma diferencial na cadeia de produção do biodiesel.

7.2 Trabalhos Futuros

Tendo em vista a continuação do desenvolvimento deste projeto, além de seu aprimoramento, propõe-se os seguintes trabalhos futuros:

• Integração entre o sistema de aquisição de dados e controle e os dois reato- res de transesterificação, sendo o primeiro de processo contínuo e o segundo contínuo ou em batelada, para adequação do biodiesel nos padrões aceitá- veis.

• Implementar o controle da variação de frequência do motor de indução via software, visto que atualmente apenas o sentido de giro pode ser manipu- lado dessa forma. Esse controle, a partir da saída de um pino de dados na interface paralela, pode ser feito convertendo este sinal digital para um sinal analógico com o uso de uma rede em escada R-R2.

• Substituição do inversor de frequência WEG CFW-08 pelo modelo CFW- 10, que trabalha com alimentação monofásica e faz a conversação para saída trifásica internamente.

• Para melhor controle da dosagem de catalisador injetado no reator, inclusão de um transdutor de pressão antes da entrada do catalisador no bico injetor. Por meio dos dados obtidos do transdutor, via software, será possível cal- cular o tempo ideal de abertura e fechamento do bico, injetando no reator a quantidade necessária de catalisador conforme os padrões estabelecidos.

Referências Bibliográficas

1 BRASIL, P. Matriz Brasileira. Acessado em 10/12/2012. Disponível em: <http://www.brasil.gov.br/sobre/economia/energia/matriz-energetica>.

2 MME, M. d. M. e. E. Biodiesel - Programa Nacional de Pro- dução e Uso de Biodiesel. Acessado em 10/12/2012. Disponível em: <http://www.mme.gov.br/programas/biodiesel/menu/programa/historico.html>. 3 CNPE, C. N. d. P. E. Resolução No2, de 13 de Março de 2008. 2008. Diário Ofi-

cial da União em 14 de março de 2008. Disponível em: <http://www.anp.gov.br>. 4 KNOTHE, G.; GERPEN, J. V.; KRAHL, J. The Biodiesel Handbook. 1. ed. [S.l.]: AOCS Press, 2005. 319 p. ISBN 978-1893997790.

5 CNPE, C. N. d. P. E. Resolução No 6, de 16 de Setembro de 2009.

2009. Diário Oficial da União em em 26 de outubro de 2009. Disponível em: <http://www.mme.gov.br>.

6 BRASIL, C. C. d. P. d. R. Lei 11.097, de 13 de janeiro de 2005. 2005. Diário Oficial da União em 14 de janeiro de 2005. Disponível em: <http://www.planalto.gov.br/ccivil_03/_ato2004-2006/2005/Lei/L11097.htm>. 7 PARENTE, E. J. d. S. Processo de Produção de Combustíveis a Partir de Fru- tos ou Sementes Oleaginosas – Biodiesel. Outubro 1983. Patente: Privilégio de

Documentos relacionados