Anda di halaman 1dari 63

UNIVERSIDADE FEDERAL DE SANTA MARIA UFSM CENTRO DE TECNOLOGIA CT CURSO DE ENGENHARIA ELTRICA NCLEO DE PESQUISA E DESENVOLVIMENTO EM ENGENHARIA ELTRICA

NUPEDEE PROGRAMA DE EDUCAO TUTORIAL PET-EE

Int r o duo ao

7 .0

S ant a Mar ia, J ul ho de 2 0 0 7

Sumrio
Captulo 1 Introduo ..............................................................................4 Captulo 2 Construindo um VI (Instrumento Virtual)...............................5
2.1 Abrindo um novo VI pelo template.........................................................................5 2.2 Adicionando um controle para o painel frontal.......................................................6 2.3 Alterando o tipo de Sinal.........................................................................................7 2.4 Conectando objetos no diagrama de blocos............................................................9 2.5 Executando o VI......................................................................................................9 2.6 Modificando o sinal...............................................................................................10 2.7 Mostrando dois sinais no grfico...........................................................................11 2.8 Alterando as propriedades do potencimetro (knob)............................................12 2.9 Alterando as propriedades do grfico....................................................................13

Captulo 3 Analisando e salvando dados.................................................15


3.1 Abrindo um novo VI atravs de uma template:....................................................15 3.2 Modificando o diagrama de blocos:......................................................................16 3.3 Alterando o painel frontal......................................................................................17 3.4 Analisando a amplitude do sinal...........................................................................17 3.5 LED de aviso.........................................................................................................18 3.6 Configurando o limite para acionar o alerta..........................................................19 3.7 Configurando o VI para salvar dados....................................................................21 3.8 Salvando os dados em um determinado perodo...................................................23

Captulo 4 Personalizando um VI...........................................................25


4.1 Abrindo um novo VI..............................................................................................25 4.2 Adicionando um VI que simular um sinal...........................................................26 4.3 Modificando o sinal...............................................................................................26 4.4 Personalizando interface do usurio pelo diagrama de blocos.............................27 4.5 Configurando o VI para executar continuamente.................................................28 4.6 Exemplos de VI.....................................................................................................29 4.7 Controlando a velocidade de execuo ................................................................30 4.8 Usando uma tabela de dados e mostrando no painel frontal.................................30

Captulo 5 Exemplo de projeto utilizando LabVIEW.............................32


5.1 Tarefa 1: Criando um programa para o controle de temperatura..........................34 5.2 Tarefa 2: Utilizando estruturas de realimentao de dados..................................37

5.3 Tarefa 3: Lendo arquivos de texto e criando um subVI........................................39 5.4 Tarefa 4: Utilizando um subVI..............................................................................42 5.5 Tarefa 5: Trabalhando com datas e plotando dados em um grfico.....................43 5.6 Tarefa 6: Comunicando-se com o mundo externo atravs da serial.....................45 5.7 Tarefa 7: Implementando uma aplicao completa de medio e automao.....48
5.7.1 Parte A: Mdulo Escravo......................................................................................................48 5.7.2 Parte B: Mdulo mestre.........................................................................................................50

Captulo 6 Tecnologias para aquisio de dados.....................................52


6.1 Principais interfaces disponveis no mercado.......................................................53 6.2 Como escolher uma interface I/O especfica?.......................................................55 6.3 Como configurar e utilizar os dados adquiridos no LabVIEW?...........................55

Apndice A.................................................................................................57
1. Ligao da porta serial em curto-circuito ou loop-back............................................57 2. Conexo de dois computadores atravs da porta serial..............................................57

Apndice B Atalhos do LabVIEW 7.......................................................59 Referncias.................................................................................................63

Captulo 1 Introduo
LabVIEW uma linguagem de programao grfica que usa cones no lugar de linhas de texto para criar aplicaes. Em contraste com as linguagens baseadas em texto, onde as instrues determinam a execuo do programa, o LabVIEW usa uma programao tipo fluxo de dados, onde este fluxo determina a execuo. Esta linguagem (acrnimo para Laboratory Virtual Instruments Engineering Workbench) foi desenvolvida no final da dcada de 80 pela National Instruments, Inc para ambientes de janelas (tipo Windows). Tornou-se popular e largamente aceito no meio cientfico, sendo similar a outras linguagens grficas oferecidas por outras empresas, como o pacote HPVEE da Hewlett-Packard. No LabVIEW, pode-se construir uma interface usufruindo de um conjunto de ferramentas e objetos. A interface do usurio conhecida como painel frontal. Ento, os cdigos so adicionados usando representaes grficas das funes, para controlar os objetos do painel frontal. O diagrama de blocos contm este cdigo. De muitas formas, o diagrama de blocos imita um fluxograma. Utiliza-se uma linguagem de programao grfica chamada G, mas no necessrio conhec-la para usufruir das possibilidades do LabVIEW. Pode-se adquirir muitos conjuntos de ferramentas para o desenvolvimento de aplicaes especficas. Todos estes conjuntos de ferramentas integram perfeitamente o LabVIEW. Tambm compatvel com ferramentas de desenvolvimento similares e pode trabalhar com programas de outra rea de aplicao, como o Matlab. Alm desta facilidade no desenvolvimento de aplicaes computacionais, de simples integrao com os componentes fsicos do sistema, especialmente com placas de medio, aquisio e processamento de dados, incluindo aquisio de imagens. Encontra aplicabilidade em sistemas de medio, como monitoramento de processos e aplicaes de controle. muito utilizado no processamento digital de sinais (Wavelets, FFT, anlise de contedo harmnico etc.), em processamento em tempo real de aplicaes biomdicas, na manipulao de imagens e udio, automao, no projeto de filtros digitais, gerao de sinais, e outras.

Captulo 2 Construindo um VI (Instrumento Virtual)


Neste exerccio voc construir um VI que ir gerar um determinado sinal e este sinal ir ser plotado num grfico. Quando voc completar este exerccio, o painel frontal do VI ficar semelhante ao da figura 2.1.

Figura 2.1 Projeto final do exemplo construindo um VI

2.1 Abrindo um novo VI pelo template


O LabVIEW possui uma srie de templates que facilitam o usurio a construir seus VIs. Complete os seguintes passos para criar um VI que gere um sinal e mostre no painel frontal. 1. Abra o LabVIEW. 2. V na opo New. 3. Escolha a opo VI from Template>>Tutorial (Getting Started)>>Generate and Display. Note que na parte central da tela existe uma visualizao do painel central e tambm do diagrama de bloco. 4. Observe no painel frontal do VI que este possui um fundo cinza e inclui indicadores e controladores. A barra azul, no topo da pgina indica o arquivo que est aberto e se este est ou no painel central ou no diagrama de blocos. 5. Ainda no painel frontal pressione as teclas <Ctrl+E> e perceba que voc ir automaticamente para a rea do diagrama de blocos, ou se preferir v no menu window>>show block diagram. O diagrama de blocos possui um fundo 5

branco e inclui VIs e estruturas que controlam os elementos do painel frontal. Perceba que agora a barra azul, no topo da pgina indica o arquivo aberto e se est no painel frontal ou no diagrama de blocos, neste caso confirme que voc est no diagrama de blocos. 6. Volte para a janela do painel frontal e faa que o programa rode. Voc poder realizar este comando atravs de trs maneiras, clicando no boto acessando o menu operate>>run ou simplesmente clicando <Ctrl+R>. 7. Pare o VI clicando no boto STOP operate>>stop ou ainda <Ctrl+.> (Control e ponto). , ou se preferir menu ,

2.2 Adicionando um controle para o painel frontal


Controles no painel frontal simulam a entrada de instrumentos fsicos e fornecem dados para o diagrama de blocos do VI (relembrando que VI significa Visual Instrument, a partir de agora iremos apenas nos referir a esses instrumentos virtuais da forma contrada). Muitos instrumentos fsicos possuem potencimetros que possibilitam uma alterao em determinados sinais. Neste exemplo iremos adicionar um potencimetro, para isso, siga os passos. 1. V at a paleta de controles window>>Show Controls Pallete. 2. Mova o cursor at os cones de controle numrico (Numeric Controls). 3. Clique no cone de controles numricos. 4. Selecione o potencimetro (knob) e o coloque no painel frontal, ao lado direito do grfico de forma de onda. 5. Delete o grfico de ondas. 6. Para desfazer alguma operao que voc realizou basta digitar <Ctrl+Z>, digite e faa com que o grfico de ondas retorne a tela. 7. Aps isso, salve o VI com o nome de sinal de aquisio de dados.vi.

Figura 2.2 Paleta de Controle

2.3 Alterando o tipo de Sinal


O diagrama de bloco possui um cone azul, denominado Simulate Signal. Este sinal tem como forma padro a onda senoidal. Complete os seguintes passos para mudar a forma de onda para dente de serra (sawtooth wave). 1. V at paleta de controles, window >>Show Controls Pallete. 2. V at a janela do diagrama de blocos <Ctrl+E>. 3. Com o boto direito do mouse clique sobre o simulador de sinal e selecione a opo propriedades, aps isso abrir uma nova janela denominada Configure Simulate Signal (barra azul). 4. Selecione a forma de onda dente de serra (sawtooth) no campo Signal type.

Figura 2.3 Configurao do Sinal Simulado

5. 6.

Clique no boto OK e feche a janela de Configure Simulate Signal. Aumente a caixa do simulador de sinal, puxando-a para baixo, at o item

Amplitude aparecer disponvel. Com esta operao voc poder alterar a amplitude atravs de um elemento auxiliar como um potencimetro na entrada.

Figura 2.4 Aumentando a caixa da simulao de sinal.

2.4 Conectando objetos no diagrama de blocos


Para alterar a amplitude do sinal simulado voc ir precisar adicionar um potencimetro (knob) e realizar a conexo entre este e a entrada de Amplitude. 1. Certifique-se que o knob est dentro do lao (retngulo de bordas cinzas), portanto todos os elementos que sero mencionados neste exemplo devem estar dentro do lao para haver uma repetio no processamento. 2. Verifique onde se encontra o knob em relao ao Simulador de Sinal, faa com que ele esteja posicionado esquerda do simulador, para movimentar o componente, voc deve clicar com o mouse com o boto esquerdo e arrastar de tal modo que faa uma rea e dentro dessa rea esteja o componente a ser movimentado. 3. Aps isso, mova o cursor do mouse at o canto direito do knob, onde h um smbolo de uma flecha, observe o aparecimento de uma carretilha at a entrada do Simulador de Sinal, denominada Amplitude. .

4. Quando a carretilha aparecer, pressione o boto esquerdo do mouse e arraste

Figura 2.5 Potencimetro

5. Clique em qualquer lugar em branco para desativar a ferramenta de criao de fio ou pressione ESC. 6. Salve o VI.

2.5 Executando o VI
1. V para a janela do painel frontal.

2. Execute o programa 3. Mude o valor da amplitude atravs do modo de controle knob. 4. Perceba a mudana no grfico conforme a interveno no knob, e observe tambm que o eixo y possui o sistema de auto escala. Observe tambm que enquanto o programa roda, o boto indicador modifica seu estado, ficando . .

5. Pare o programa no boto

2.6 Modificando o sinal


1. No diagrama de bloco, d um duplo clique no fio que liga o simulador de sinal at o grfico de ondas. 2. Delete esse fio. 3. Abra a paleta de funes. 4. Selecione a funo Scaling and Mapping, na aba Arithmetic & Comparison, e a coloque dentro do lao, entre o simulador de sinal e o grfico de ondas. Caso no exista espao suficiente para esta funo ocupar este lugar mova o grfico de ondas para direita. Observe que uma caixa Configure Scaling Mapping ir abrir automaticamente. 5. Defina o valor do fator de escala em 10 no campo slope(m). A caixa de dilogo dever ficar da seguinte maneira. 6. Clique no boto OK para aplicar as alteraes e feche a janela de configurao. 7. de sinal. 8. Quando a carretilha aparecer, ligue a sada de Mova o
Figura 2.6 Valor da escala

cursor at o sinal de sada do simulador

10

sawtooth (simulador) at a ntrada Signals (Scaling and Mapping). 9. Usando os fios, ligue a sada scaled signals at a entrada do grfico de ondas.

Figura 2.7 Disposio do diagrama de blocos

10. Salve o VI.

2.7 Mostrando dois sinais no grfico


Para comparar os sinais gerados pelo simulador com os sinais em que foram aplicados um determinado fator de escala, iremos seguir os seguintes passos. 1. Mova o cursor at a sada Sawtooth do simulador de sinal. 2. Usando as conexes, ligue a sada Sawtooth no terminal do grfico de ondas. Perceba que automaticamente ser criado um n no ramo que vai at o grfico. 3. Salve o programa, voc poder salvar o programa apenas clicando <Ctrl+S>. 4. Retorne ao painel frontal, rode o programa e altere a amplitude do sinal simulado. Observe as escalas no eixo y de cada grfico.

11

2.8 Alterando as propriedades do potencimetro (knob)


Nesta etapa do exemplo iremos alterar as caractersticas do comando de controle knob. 1. V at o menu de propriedades do knob atravs de um clique com o boto direito no elemento. 2. Na aba Appearance, na seo Label altere Knob por Amplitude.

Figura 2.8 Propriedades do potencimetro

3. Clique na aba de escala e selecione o estilo da escala, complete a caixa da rampa visvel (Ramp Visible). 4. Clique OK para efetivar as mudanas. 5. Salve o VI <Ctrl+S>. 6. Experimente modificar outras propriedades do knob, escolha algumas como, por exemplo, mudar o mximo da escala ou ainda, no menu Text Labels, dividir as escalas em quantas desejar e ainda colocar nomes nestas escalas, como na Figura 2.9.

12

Figura 2.9 Painel frontal

2.9 Alterando as propriedades do grfico


Perceba que neste grfico temos dois sinais, mas apenas uma legenda, portanto vamos resolver este pequeno problema. 1. D um simples clique no Sawtooth (Scaled) e arraste para cima, de modo que apaream as outras escalas do grfico.

Figura 2.10 Acrescentando legenda ao grfico

2. D um clique com o boto direito no meio do grfico e v at o menu propriedades.

13

3. Na aba Plots selecione sawtooth. Mude a cor da linha do grfico. 4. Desmarque a caixa Do not use waveform names for plot names. Dessa maneira voc poder alterar o nome do grfico. 5. Altere o label do grfico para Scaled Sawtooth. 6. Clique OK para efetivar as mudanas e saia das propriedades, perceba as alteraes de cor nas linhas das formas de onda. Altere outras propriedades do grfico para praticar, por exemplo, tire a auto escala do eixo Y. 7. Salve o programa depois de praticar um pouco e feche esse VI.

14

Captulo 3 Analisando e salvando dados


O LabVIEW possui vrios VIs para ajudar voc a analisar sinais. Neste exemplo voc ir aprender como fazer uma anlise bsica de um sinal e como salvar os dados deste sinal. Voc ir construir um VI que ir gerar um sinal, extrair o valor DC, indicar se o sinal excedeu um certo limite e armazenar os dados. Ao trmino deste exemplo o seu painel frontal dever ficar como na Figura 3.11.

Figura 3.11 Painel frontal ao trmino do exemplo.

3.1 Abrindo um novo VI atravs de uma template:


Para construir este VI, voc pode comear abrindo uma nova caixa de dilogo. Siga os prximos passos para selecionar uma nova template que gere, analise e mostre um sinal. 1. Ao abrir o programa, clique no boto com a opo New.

15

2. Selecione o VI from Template >> (Getting Started) >> Generate, Analyze, and Display template e clique no boto OK. 3. V ao diagrama de blocos, pressione <Ctrl+H> para ativar o bloco de ajuda de cada elemento, basta deixar o cursor do mouse sobre um elemento que automaticamente o bloco de ajuda ir informar as caractersticas do elemento em questo.

3.2 Modificando o diagrama de blocos:


O Simulador de sinal deste template tem como onda padro a senoidal. Siga os passos para alterar a forma de onda: 1. V at o simulador, ainda no diagrama de blocos, e clique com boto

direito sobre ele, selecione a ltima opo do menu que aparecer, no caso propriedades.

Figura 3.12 Diagrama de blocos

2. 3. 4.

Ao abrir as propriedades do simulador de sinal, mude o tipo de onda Adicione rudo forma de onda (marque a caixa add noise). Especifique 5.1 na amplitude do rudo (Noise Amplitude).

para DC.

16

5. 6. as.

V at o painel frontal e faa rodar o VI. Perceba que o sinal aparece Pare o programa, salve o VI como Analise.vi utilizando a funo save

no grfico e o valor RMS aparece no indicador digital.

3.3 Alterando o painel frontal


Se voc usar um template e no quiser utilizar determinado indicador, basta delet-lo, entretanto voc deve tomar algumas precaues para evitar problemas. Siga os passos para aprender o modo correto de remover indicadores. 1. 2. Selecione o indicador RMS e delete-o. V para o diagrama de blocos, perceba que o fio que conectava o

indicador RMS est quebrado e, alm disso, que o boto utilizado para executar o programa foi alterado, agora ele indica uma lista de erros que impossibilitam a simulao. 3. 4. Clique no boto para rodar o programa. Observe o erro indicado, d um duplo clique no erro wire: has loose

ends, perceba que ir mostrar na tela justamente o erro j mencionado anteriormente. 5. Voc tem duas formas de deletar os fios que esto sem conexo, uma delas selecionando um a um e deletando, outra pressionado as teclas <Ctrl+B> que ir deletar todos os fios sem conexo. Escolha uma das opes e delete o fio. 6. Perceba que o boto para rodar o programa est novamente como padro, indicando que agora no h erros e possvel rodar o programa.

3.4 Analisando a amplitude do sinal


O VI The Amplitude and Level Measurements Express possui opes que faz com que voc possa analisar nveis de tenso de um sinal. Complete os passos para medir valores pico a pico deste sinal.

17

1. 2. 3.

V at o diagrama de blocos e clique com o boto direito sobre o VI Desmarque a caixa de RMS. Pressione o boto Help para descobrir qual caixa voc dever marcar

citado anteriormente, e v at as propriedades.

para obter uma medida do pico mximo ao mnimo.

Figura 3.13 Usando o menu Help

4.

Minimize a janela de ajuda e selecione a medida conforme a pesquisa

realizada no Help.

3.5 LED de aviso


Se voc quiser um indicador visual para valores que excedam um determinado limite pr-estabelecido, siga os prximos passos. 1. Na paleta de controle, selecione a paleta de LEDs, e na paleta de

LEDs, selecione o LED redondo, conforme Figura 3.14.

18

Figura 3.14 Adicionando LEDs

2. 3. 4.

Coloque o LED na esquerda do grfico. Abra o menu das propriedades do LED e altere o label para LED de Salve o projeto como LED de aviso.vi

Aviso, clique OK para confirmar a alterao.

3.6 Configurando o limite para acionar o alerta


Para especificar o valor aceitvel do sistema, use o Comparison Express VI e desse modo para valores acima do especificado o LED ir ligar alertando o usurio. Para realizar tal tarefa, siga os passos: 1. No diagrama de blocos, selecione o VI Comparison Express na paleta Arithmetic & Comparison>>Express Comparison (para a paleta de funes aparecer, basta clicar com o boto direito em algum lugar em branco na tela).

19

Figura 3.15 Adicionando um comparador ao diagrama de blocos

2. V at o menu propriedades do VI Comparison e selecione a opo > greater, que ir fazer com que um sinal seja emitido toda vez q o sinal recebido passar de um determinado nvel estipulado por voc. 3. Observe a caixa Comparison Inputs, marque a caixa use um valor constante e a seguir defina esse valor como 0,195, aps isso clique OK para efetuar as mudanas. 4. Ligue a sada peak to peak, do VI Amplitude and Levels Measurements, entrada Operand I do comparador, e em seguida ligue a sada Result na entrada do LED. 5. Clique com o boto direito no fio, que liga a sada peak to peak entrada Operand I, e crie um indicador numrico. Arrume o layout do diagrama de blocos para ficar de uma maneira compacta, conforme Figura 3.16.

20

Figura 3.16 Layout geral do diagrama de blocos

6. V at o painel frontal e rode o programa, observe se o LED est acendendo. Se estiver funcionando, pare o programa e salve, caso contrrio analise novamente seu diagrama de bloco e tente achar o erro.

3.7 Configurando o VI para salvar dados


Para armazenar informaes que seu VI gera, use o VI chamado Write LabVIEW Measurement File Express. Complete os prximos passos para construir um VI que ir salvar os valores pico a pico de sua simulao. 1. Abra a paleta de funes no diagrama de blocos, selecione a opo de outputs e a seguir escolha o VI Write LVM. 2. Quando voc adicionar o novo VI, ir surgir uma janela de configurao. No campo que diz se um arquivo j exista (If a file already exists), selecione a opo Append to file, ou seja, todos os dados sero gravados sem a hiptese de perder dados em funo de gravar um arquivo novo sobre um arquivo antigo de mesmo nome.

21

3. Selecione a opo One header only na opo Segment Headers, desse modo o cabealho do programa aparecer uma vez a cada gravao, pelo mtodo one header per segment, ele iria apresentar estes dados a cada iterao, fato que iria poluir o documento visualmente. 4. Coloque como descrio do arquivo Amostras de valores de pico a pico. 5. Descubra onde a entrada de sinal do novo VI e ligue ela at o fio que possui os valores de pico a pico. Utilize o atalho <Ctrl+H> para obter informaes sobre o VI e saber o que cada entrada representa, basta abrir a janela de ajuda e deixar o cursor sobre o componente que deseja informaes. 6. Salve o VI como salvar dados.vi . 7. V at o painel de controle e rode o programa para os dados serem salvos. 8. Pare o programa. 9. Para ver os dados que voc salvou, volte ao diagrama de blocos, v at as propriedades do VI Write LVM, copie o endereo onde salvou as informaes, abra o bloco de notas e procure pelo arquivo test.lvm, voc dever colocar a opo de abrir todos os arquivos, pois a princpio o bloco de notas no reconhece esse tipo de arquivo lmv.

22

Figura 3.17 Abrindo arquivos lmv pelo bloco de notas

10. Observe os dados que foram salvos e depois volte ao diagrama de blocos

3.8 Salvando os dados em um determinado perodo


Se voc quiser salvar os dados apenas em determinado perodo da simulao, uma soluo usar um boto que, quando pressionado, habilita a armazenagem dos dados. Complete os seguintes passos para adicion-lo ao seu projeto. 1. No painel frontal escolha o rocker button no menu Buttons & Switches. 2. V at as propriedades deste boto, mude o nome (label) para salvar dados. Na aba de operao, selecione a opo Latched when pressed. Observe o funcionamento do boto no menu Preview. Aps observar o funcionamento, clique no boto OK e salve o VI. 3. V at o diagrama de blocos nas configuraes do VI Write LVM e altere o nome do arquivo a ser salvo, mudando de test.lvm para amostras.lvm.

23

Figura 3.18 Configurando o VI que salva os dados no formato lmv

4. Aps alterar as configuraes do item 3, certifique-se que a entrada Signals est ligada ao terminal de pico a pico e ligue a sada do boto salvar dados com a entrada enable do VI Write LVM, se necessrio, utilize o menu de ajuda <Ctrl+H>. 5. V para o painel frontal e rode o programa, aperte vrias vezes no boto salvar os dados. Pare o programa e v observar os dados salvos.

24

Captulo 4 Personalizando um VI
Neste exemplo, voc ir montar um VI mais complexo, para isso ir utilizar VIs j existentes e acrescentar indicadores e controles. Voc construir um VI que gera um sinal, reduz o nmero de amostras no sinal e mostra o resultado em uma tabela no painel frontal. Quando voc completar o exerccio, o painel frontal do VI ser similar com o da Figura 4.19.

Figura 4.19 Painel frontal ao trmino do exemplo 3

4.1 Abrindo um novo VI


Para um VI em branco, siga os seguintes passos. 1. 2. 3. Ao abrir o programa, clique no boto com a opo New. Selecione o Blank VI ou pressione <Ctrl+N> para abrir um novo VI. Se a paleta de funes no estiver visvel, clique com o boto direito

que ela aparecer temporariamente.

25

4.2 Adicionando um VI que simular um sinal


Complete os seguintes passos para achar o VI que voc quer usar e adicion-lo no diagrama de blocos. 1. 2. Se o Help do programa no estiver visvel pressione <Ctrl+H>. Na paleta de funes, observe os componentes da aba Input, movendo

o cursor sobre eles. Procure por um VI que possa gerar uma onda senoidal e adicione este ao diagrama de blocos. 3. 4. Ajuste o valor da freqncia para 10.7 Hz e a amplitude para 2 . Clique em OK para salvar as modificaes.

4.3 Modificando o sinal


Complete os seguintes passos para obter uma amostra reduzida do sinal gerado. 1. 2. Selecione o menu Help>>VI, Function, & How- To Help para abrir Ao abrir a janela de ajuda do LabView, v na aba pesquisar, na qual

a ajuda do LabView. voc pode digitar alguma dvida especfica, no caso deste exerccio voc dever procurar informaes sobre sample compression, que consiste em reduzir as amostras dos dados de um sinal. 3. 4. Observe que h um VI j feito que possui esse bloco denominado Aps abrir o VI denominado Data Reduction, copie o bloco sample compression, observe o endereo que ele est e abra este VI. denominado sample compression e cole no seu projeto, ao lado direito do simulador de sinal. 5. 6. 7. V nas propriedades do novo bloco e coloque 25 como fator de Conecte a o gerador de sinal com o sample compression. Salve o VI como amostra reduzida.vi reduo.

26

4.4 Personalizando interface do usurio pelo diagrama de blocos


Nos exerccios anteriores, voc adicionou controles e indicadores no painel frontal usando a paleta de controle. Voc tambm adicionar controles e indicadores no diagrama de blocos. Complete os seguintes passos para adicionar controles e indicadores no diagrama de blocos. 1. 2. No diagrama de blocos, clique com o boto direito em mean que est Novamente clique com o boto direito em Mean que est no VI

no VI sample compression e selecione Create>>Numeric indicator. sample compression e selecione Select Input/Output e marque a opo enable. 3. Clique com o boto direito na opo enable do VI e selecione Create>>Control. Se o terminal aparecer no lado esquerdo do bloco, isto indica que controle, ao contrrio se o terminal aparecer no lado direito, isto indica que um terminal indicador. 4. 5. Clique com o boto direito no fio que conecta a sada do gerador de Clique com o boto direito em mean no VI sample compression e sinal e selecione Create>>Graph Indicator . selecione signal manipulation palette, por fim selecione o item merge signals. 6. Arranje os elementos conforme a Figura 4.20.

27

Figura 4.20 Utilizando a ferramenta merge signals

7.

Observe que os blocos que so adicionados possuem seu equivalente

do painel frontal. Salve o VI.

4.5 Configurando o VI para executar continuamente


Neste estgio, o programa simula o VI uma vez, gera o sinal e para de executar. Para simular o VI continuamente, voc pode usar um lao while. Complete os seguintes passos para adicionar um lao while no diagrama de blocos. 1. 2. Abra o painel frontal e simule o VI. O programa simula o VI uma vez e No diagrama de blocos, selecione o lao while na paleta Execution

ento pra. O painel frontal no tem um boto para interromper a simulao. Control e adicione-o ao VI de tal maneira que todo o VI j existente dever ficar dentro dele, conforme Figura 4.21.

28

Figura 4.21 Adicionando um lao while

3. 4.

Este lao while configurado para parar quando o usurio clicar no Abra o painel frontal e simule o VI. Perceba que agora o programa

boto STOP. simular o VI at que o usurio clique no boto STOP.

4.6 Exemplos de VI
Para saber mais como usar um especifico VI, voc pode procurar por um ou analisar um exemplo que usa um VI. Complete os seguintes passos para encontrar um exemplo que usa o Delay Values VI. 1. Select Help>> Find Examples para mostrar o NI Example Finder. 2. Clique em Browse e procure pela pasta New Examples for LabVIEW 7.0 . 3. Na pasta Express VIs voc encontrar o arquivo Delay Values.vi. 4. Clique uma vez no arquivo e na caixa ao lado, chamada descripition, aparecer a descrio do exemplo. 5. Para abri-lo clique no arquivo duas vezes, e ele aparecer no painel frontal.

29

4.7 Controlando a velocidade de execuo


Para plotar os pontos, ou seja, realizar a simulao de uma forma mais lenta, voc pode adicionar um tempo de atraso no diagrama de blocos. Complete os seguintes passos para controlar a velocidade na qual o VI simulado. 1. No diagrama de blocos, procure por Time Delay Express VI na paleta de funes e coloque-o dentro do lao while. 2. Coloque 0.250 no Time delay (segundos). O ajuste do Time delay especifica quo rpido ocorrer a iterao. A cada 0.250 segundos, ocorrer uma. 3. Clique em OK para salvar as novas configuraes e feche Configure Time Delay.

4.8 Usando uma tabela de dados e mostrando no painel frontal


Complete os seguintes passos para mostrar os dados em uma tabela no painel frontal. 1. No painel frontal, procure por Express Table que se encontra na paleta de controle e coloque-o no painel frontal no lado direito da curva do painel. 2. V at o diagrama de blocos e verifique se o terminal da tabela est conectado no menu table do VI Express Table . 3. Conecte o menu Mean do VI Sample Compression no menu Signals.
Figura 4.22 Construindo uma tabela

30

Figura 4.23 Diagrama de blocos do VI amostragem reduzida

4. A tabela mostra os principais valores a cada 25 amostras do sinal. Se a chave esta desligada a tabela no mostra os dados e se a chave esta ligada a tabela ir mostrar os dados na tabela. 5. V at o painel frontal e simule o VI, perceba que a cada 25 amostras o indicador Mean apresentar um valor apenas. Altere o estado do switch e observe que quando desligado, nem o valor Mean do sinal aparece to pouco os valores na tabela. 6. Salve e feche o VI.

31

Captulo 5 Exemplo de projeto utilizando LabVIEW


O projeto de um Sistema de Controle e Monitoramento da Temperatura de uma Casa de Vegetao ser desenvolvido ao longo do curso com o intuito de fazer o estudante aprender a utilizar o software LabVIEW de uma maneira mais prtica e intuitiva. Assim, o processo de aprendizado tende a tornar-se mais atraente e eficiente em contrapartida com outros em que o conhecimento dividido em mdulos aparentemente desconexos, dificultando muito ao estudante juntar tais mdulos para produzir uma aplicao real usando o software. O sistema proposto pretende simular uma aplicao do LabVIEW atravs do desenvolvimento de um programa que gerencie informaes de temperatura de uma casa de vegetao ou estufa, gerando relatrios dos dados coletados e enviando mensagens para acionar os atuadores genricos aquecedor e refrigerador na casa de vegetao. Como no se tem disposio todos os dispositivos necessrios para a implementao do projeto, grande parte deles ser simulado no prprio software. Abaixo, tem-se a lista de alguns itens que existiriam em um projeto real e quais seriam os respectivos substitutos para uma simulao da operao.
Tabela 5.1 Comparao entre itens de uma aplicao real e os simulados neste projeto

Aplicao Real
Computador gerente dos dados com software para o usurio que controlar o sistema Placa de aquisio de dados e atuadores Variao real da temperatura ambiente de acordo com a hora do dia

Simulao
Software do n mestre (mestre)

Software do n escravo (escravo) Controlador numrico e, depois, leitura dos dados em arquivo texto (escravo) Variao de 3C na temperatura interna da estufa a cada ciclo ou iterao se o Interferncia de atuadores reais no ambiente aquecedor ou o refrigerador estiverem ligados (escravo) Comunicao entre o computador com o Comunicao entre o computador gerente e a software do n mestre e o computador placa de aquisio de dados atravs de um do n escravo atravs da porta serial meio qualquer utilizando cabo cross-over (mestre e escravo) O presente projeto ser desenvolvido a partir da execuo de pequenas tarefas. Em cada tarefa dada, propem-se aes a serem feitas de modo a complet-la e evoluir para a prxima. Assim, consegue-se partir de um programa bsico e evoluir at a verso final do

32

projeto de modo que a complexidade de um programa para o outro cresa de forma linear e natural.

Figura 5.24 Diagrama de um exemplo de aplicao real

Nota-se que toda a parte de medio e condicionamento ser feita neste projeto por um outro programa no LabVIEW, que gerar os dados referentes temperatura interna de uma estufa com base na variao da temperatura ambiente e na influncia dos atuadores.

Figura 5.25 A simulao de vrios dispositivos ser feita no LabVIEW

33

5.1 Tarefa 1: Criando um programa para o controle de temperatura


Um exemplo de como pode ficar o painel frontal aps a realizao desta tarefa pode ser visto na Figura 5.26.

Figura 5.26 Painel frontal resultante da tarefa 1

1. Ao entrar com uma determinada temperatura (ambiente) por meio de um controlador numrico, necessrio fazer uma verificao desse valor na faixa de 20C a 28C. O programa deve indicar se o valor estiver acima ou abaixo dos limites estabelecidos. 2. A seguir, deve-se fazer uma simulao da influncia de dois atuadores na temperatura: um aquecedor e um refrigerador. A influncia desses atuadores resume-se a aumentar ou reduzir 3C da temperatura de entrada. O usurio dever receber uma notificao caso acione os dois atuadores simultaneamente. A funo temperatura a ser implementada ser T = T0 + 3. A 3.R T = temperatura final da estufa Ti = temperatura ambiente de entrada (manipulada pelo usurio) A = valor do aquecedor (ligado=1 e desligado=0) R = valor do resfriador (ligado=1 e desligado=0) (1)

onde

34

3. Depois de cumprir os itens 1 e 2, passa-se para a ltima etapa, que fazer o programa ser executado ciclicamente com um tempo de atualizao definido pelo usurio. Toda essa estrutura inicial ser til para o aprimoramento constante do programa at o fim de todas as tarefas. Segue, na Figura 5.27, duas classes de funes e os devidos elementos em destaque para serem utilizados na elaborao desta tarefa.

(a) (b) Figura 5.27 Funes utilizadas das classes (a) Lgica e (b) Comparao

A partir de ento, voc dever se familiarizar com a janela de funes do LabVIEW, explorando cada funo e pesquisando por funes com o mecanismo Search na paleta de funes. Portanto, voc dever procurar, por conta prpria, as funes especficas que atendam s necessidades de cada problema. A tabela a seguir lista os elementos sugeridos para serem empregados na tarefa 1. Ressalta-se que no h uma soluo nica para as tarefas propostas.

35

Tabela 5.2 Elementos sugeridos para executar a tarefa 1

Painel Frontal

Classe da funo controladores indicadores comparao numrico lgico temporizao estrutura seqencial

Diagrama de Blocos

Funo especfica numrico e lgico numrico e lgico >e< soma e multiplicao AND converso para numrico espera de tempo definido lao while

Tendo verificado o funcionamento deste programa, passa-se para a tarefa 2, na qual voc deve criar uma estrutura para alterar a temperatura conforme a influncia dos atuadores e o nmero de iteraes do programa.

36

5.2 Tarefa 2: Utilizando estruturas de realimentao de dados


Aps a execuo desta tarefa, espera-se que o seu painel frontal tenha a mesma funcionalidade que o apresentado na Figura 5.28.

Figura 5.28 Painel frontal resultante da tarefa 2

Usando uma cpia do arquivo da tarefa anterior, substitua a entrada que controla a temperatura ambiente por um valor inicial da temperatura e uma estrutura seqencial que possa armazenar o valor da varivel temperatura da ltima iterao. A funo que descreve o comportamento da temperatura : Ti +1 = Ti + 3. A 3.R

(2)

onde

Ti +1 = temperatura da estufa da iterao [i + 1] Ti = temperatura da estufa da iterao [i] A = valor do aquecedor (ligado=1 e desligado=0) R = valor do resfriador (ligado=1 e desligado=0)

Alm dos elementos j utilizados, voc pode tambm empregar os indicados na tabela a seguir.

37

Tabela 5.3 Elementos sugeridos para executar a tarefa 2

Classe da funo Painel Frontal Diagrama de Blocos decorao estruturas seqenciais

Funo especfica caixa em baixo relevo n de realimentao, registrador de deslocamento

As duas estruturas seqenciais mostradas na Figura 5.29 tm em comum o fato de armazenar dados de uma varivel de uma iterao para a outra, fato esse que as limita a serem usadas somente em estruturas do tipo while ou for. A diferena entre elas emerge da propriedade que o registrador de deslocamento possui de armazenar dados de mais de uma iterao anterior e no somente o valor da ltima.

(b) (a)
Figura 5.29 (a) Registrador de deslocamento e o (b) n de realimentao

38

5.3 Tarefa 3: Lendo arquivos de texto e criando um subVI


Em vez de trabalharmos com um valor atemporal de temperatura, podemos utilizar dados da variao da temperatura ambiente em um determinado dia, lidos de um arquivo texto. Ento, nesta tarefa, o principal objetivo ser ler um arquivo de texto plano que contm uma matriz de dados e processar as informaes nele contidas por meio de um indexador, que retorna os valores contidos na matriz quando especificadas a linha e coluna desejada. Na figura a seguir, voc tem uma idia de como pode ficar o painel frontal ao fim desta tarefa.

Figura 5.30 Exemplo de painel frontal ao fim da tarefa 3

1. Crie um arquivo texto e salve no computador. 2. Use a funo Read from Spreadsheet da classe File I/O para ler o arquivo e mostrar no painel frontal em formato de matriz. 3. Utilize uma funo da classe Matrizes para ler um elemento especfico. 4. Depois de realizada com sucesso a leitura do arquivo texto e o processamento dos valores, voc deve salvar esse VI e transform-lo numa funo, ou seja, um subVI. Essa funo personalizada ter o mesmo formato

39

que o das funes que voc utilizou at agora: blocos que recebem os dados por meio de suas entradas, executam funes internamente e disponibilizam o resultado das operaes nas suas sadas. Voc ver como fazer um subVI nas prximas etapas desta tarefa. Como criar um subVI? 1. V ao painel frontal do seu programa e clique com o boto direito no cone do VI posicionado no canto superior direito da janela. Voc deve, portanto selecionar o item Show Connector. A Figura 5.31 ilustra o procedimento. 2. O cone se transformar em um diagrama de conexes que sero configuradas para o subVI conforme a Figura 5.32. 3. Selecionando o item Patterns, voc tem a possibilidade de configurar o esquema do diagrama de conexes. Escolha o melhor esquema para o seu subVI, sabendo que ele ter, a princpio, trs entradas (arquivo a ser lido, linha e coluna da matriz) e uma sada (elemento correspondente linha e coluna especificadas).
Figura 5.32 Editando conexes Figura 5.31 Criando um subVI

4. Tendo escolhido um esquema, clique com o Figura 5.33 Associao boto esquerdo onde voc deseja posicionar o conector e, em seguida, clique na respectiva varivel a ser associada no painel frontal, conforme Figura 5.33. Fazendo isso com todas as variveis, voc j pode salv-lo normalmente e utilizlo em qualquer outro programa que voc fizer como um bloco com terminais, assim como so as demais funes do LabVIEW. Executando todas as etapas adequadamente, o programa dever ler o arquivo texto, coletar os dados de linha e coluna do arquivo (planilha) e informar o valor do

40

respectivo elemento da matriz. Somente a informao da variao da temperatura ambiente contida no arquivo ser pertinente ao clculo da temperatura interna da estufa. A Tabela 5.4 lista alguns elementos que ainda no foram vistos e que podem ser teis para executar esta tarefa.
Tabela 5.4 Elementos sugeridos para executar a tarefa 3

Classe da funo Painel Frontal Diagrama de Blocos indicador file I/O matrizes

Funo especfica matricial ler arquivo de planilha indexador de elemento

41

5.4 Tarefa 4: Utilizando um subVI


Voltemos agora ao programa principal. Devemos utilizar nosso subVI para fornecer a variao da temperatura ambiente e calcular sua influncia na estufa segundo a equao (2). 1. Insira o subVI no diagrama de blocos atravs da paleta de funes. 2. Conecte seus terminais de modo a implementar a funo da equao (2). 3. Sugere-se que se faa a hora do dia ser determinada pela varivel i de um lao for e esse lao seja executado de modo a i variar de 0 a 23 iteraes. Para cada iterao, ou seja, para cada hora, deve ser lido o valor da variao de temperatura correspondente. 4. Voc deve continuar utilizando um valor inicial de temperatura. Ao fim desta tarefa, o programa dever calcular a temperatura interna da estufa baseado na temperatura inicial, na informao dos atuadores e na variao da temperatura ambiente lida do arquivo.
Tabela 5.5 Elementos novos sugeridos para executar a tarefa 4

Painel Frontal Diagrama de Blocos

Classe da funo Funo especfica utilize os elementos j estudados e explore outros, tendo em mente que esta a interface que o usurio interage subVI inserir subVI estruturas seqenciais lao for

Voc ainda ver que o programa possui um erro estrutural. Tente descobri-lo! (soluo na tarefa 5)

42

5.5 Tarefa 5: Trabalhando com datas e plotando dados em um grfico


Nesta tarefa ns corrigiremos o erro pendente da tarefa 4 e mostraremos os dados de temperatura da estufa em um grfico. Ao final, o painel frontal resultante da execuo com sucesso da tarefa 5 possuir o seguinte aspecto:

Figura 5.34 Exemplo de painel frontal ao fim da tarefa

1. Remova o lao for clicando com o boto direito no contorno do lao e selecionando Remove For Loop. 2. Suponha que o contador de iteraes do lao while externo informa o nmero de horas transcorridas. Voc deve usar uma funo de diviso inteira, que retorna o quociente (dias) e o resto (horas). 3. Aps isso, informe as horas no painel frontal no formato [hh:mm]. Um modo de fazer isso concatenar a string :00 com o nmero referente hora atual. Ento, concatenando o nmero inteiro 11 e a string :00, o painel frontal ir indicar a string 11:00. 4. Exiba o valor da temperatura da estufa em um grfico. Na Tabela 5.6, so sugeridos alguns elementos que podem ser empregados nesta tarefa.

43

Tabela 5.6 Elementos sugeridos para executar a tarefa 5

Classe da funo Painel Frontal Diagrama de Blocos grfico numrico string

Funo especfica forma de onda quociente e resto converso numrico para string concatenar

44

5.6 Tarefa 6: Comunicando-se com o mundo externo atravs da serial


Nessa tarefa, antes de partirmos para utilizar a comunicao serial no nosso projeto, vamos ver uma breve introduo sobre como utilizar a porta serial do computador com o auxlio do LabVIEW. A National Instruments, juntamente com outras empresas de medio e automao, desenvolveu uma arquitetura chamada VISA (Virtual Instrument Software Architecture), especfica para o controle de recursos de entrada/sada de baixo nvel de dispositivos de hardware do tipo VXI, GPIB e, dentre outras, a comunicao serial. No LabVIEW, VISA uma simples biblioteca de funes que possui os drivers necessrios para a comunicao com grande parte dos recursos anteriormente mencionados e outros. Ela pode ser acessada na paleta de funes por Instrument I/O >> VISA (ver Figura 5.35). Para acessar as funes especficas para a comunicao serial (ver Figura 5.36) utiliza-se o caminho Instrument I/O >> Serial.

Figura 5.35 Biblioteca VISA

Figura 5.36 Funes para a comunicao serial

Na tabela a seguir, tem-se uma descrio de algumas funes que podem ser usadas para a comunicao serial.

Tabela 5.7 Funes relevantes no uso da comunicao serial

Funo VISA Configure Serial Port

Descrio Configura parmetros da porta serial como taxa de bauds, paridade, controle de fluxo dos dados.

45

VISA Write

Escreve os dados fornecidos pelo terminal write buffer no dispositivo especificado pelo VISA resource name.* L o respectivo no de bytes indicados em byte count no processo e os retorna em read buffer. Finaliza uma sesso ou evento especificado pelo VISA resource name. Cada evento aberto deve ser fechado. Retorna o nmero de bytes em espera na porta serial. Envia pedido de parada para a sada especificada.
Tabela 5.8 - Portas Recurso Porta ASRL1 COM1 ASRL2 COM2 ASRL3 COM3 ASRL10 LPT

VISA Read VISA Close VISA Bytes at Serial Port VISA Break

*O terminal VISA resource name ir especificar a porta utilizada durante a operao: COM1, COM2, LPT etc. No entanto, o LabVIEW poder representar tais portas com seu nome real, ou seja, o nome do recurso, como ASRL1. A usada. Uma vez entendidas as informaes contidas nesta introduo:

Tabela 5.8 evidencia alguns dos recursos exibidos e sua respectiva relao com a porta

1. Curto-circuite os pinos 2 e 3 (Receive Data e Transmit Data, respectivamente) da porta serial por meio de um jumper (para verificar a especificao dos pinos do conector DB-9, veja a figura A.1 do Apndice A. 2. Faa um programa que escreva algo na porta serial e indique o resultado da leitura no painel frontal. Se tiver dificuldade, oriente-se pelo diagrama de blocos da Figura 5.37. 3. Agora, em vez de escrever e ler um texto, tente escrever um nmero e mostrlo em um indicador grfico. Lembre-se que a porta serial aceita somente dados do tipo string. 4. Em seguida, modifique o programa de modo que ele escreva periodicamente na porta e leia o valor escrito e conecte o cabo cross-over na porta serial RS232 do seu computador e em outra mquina e tente interagir com um colega, pela porta serial, estabelecendo a comunicao entre os dois computadores. As funes sugeridas para emprego nesta tarefa e nas demais esto na Tabela 5.9.

46

Tabela 5.9 Elementos sugeridos para executar a tarefa 6

Painel Frontal

Classe da funo indicador controlador estruturas seqenciais VISA Serial

Diagrama de Blocos

Funo especfica leitura de string escrita de string lao while ou stacked sequence configurao da porta escrita de dados leitura de dados n de bytes na porta

Figura 5.37 Diagrama de blocos para uma operao simples de escrever e ler dados na porta serial.

47

5.7 Tarefa 7: Implementando uma aplicao completa de medio e automao


Aps voc ter se familiarizado com a comunicao serial do computador, chegou o momento de aplic-la no projeto para o controle e monitoramento da temperatura de uma casa de vegetao. Como foi dito na descrio do projeto, vamos implementar um programa que simular a parte de aquisio e transmisso dos dados (escravo) e outro programa que ter as funes de controlar os atuadores remotamente e armazenar os dados coletados (mestre).

5.7.1 Parte A: Mdulo Escravo


1. Leitura da porta serial: Estruture o seu programa de forma que os atuadores sejam acionados caso recebam do outro computador (mestre) uma mensagem da porta serial do tipo aquecer ou resfriar para acionar o aquecedor ou o refrigerador, respectivamente. Os atuadores devem permanecer ligados enquanto forem recebidas mensagens de ordem do mestre. Para isso, utilizam-se dois comparadores aps a leitura da porta serial e o seu sinal lgico (V ou F) ir para o conversor lgico-numrico, da mesma maneira que acontecia com os botes nas tarefas anteriores. 2. Escrita na porta serial: O mdulo escravo deve informar em sua sada os dados referentes ao dia, hora e valor da medio de temperatura. Isso pode ser feito concatenando uma string com todos esses dados (montando o pacote) e desmembrando-a no mdulo-mestre (desmontando o pacote). Voc pode escolher qualquer tipo de estrutura de dados para enviar o pacote com a informao das trs variveis. Na Tabela 5.10, h um modelo de pacote de 7 bytes sugerido.
Tabela 5.10 Estrutura do pacote de dados

Dia Hora Temp Posio (Byte) 0 1 2 3 4 5 6 Contedo D D H H T T T 3. Utilize a funo Build Array para montar um vetor linha com os dados do dia, hora e temperatura. Armazene os vetores linha em um arquivo texto

48

usando a funo Write To Spreadsheet File. Na Figura 5.38, apresentado um exemplo de como deve ficar o armazenamento dos dados no arquivo texto, onde cada coluna indica, respectivamente, o dia, a hora do dia e a temperatura.

Figura 5.38 Formato do armazenamento dos dados.

Para deixar mais clara a idia do pacote, vamos enviar, por exemplo, a temperatura de 23 C correspondente hora 18 do dia 3. O pacote enviado, segundo a estrutura da Tabela 5.11, seria:
Tabela 5.11 Exemplo

Dia Hora 3 1 8

Temp
6

0 1 2 3 4 5

2 3

Vale ressaltar que os espaos em branco tambm ocupam um byte na memria, assim como qualquer caractere do cdigo ASCII. Para chegar ao pacote final, ser necessria a experincia com converso numrico-string e concatenao dessas strings em uma s. Em resumo, na parte A desta tarefa, temos que nos ater a acionar os atuadores caso venha uma mensagem especfica para tal ao e montar o pacote de dados adequadamente para envi-lo ao mdulo mestre.

Funo Search/Split String Divide uma string em duas, sendo este ponto de diviso um ou mais caracteres que sero rastreados na string (search string/char). A funo, aps achar o ponto de diviso fornecido, fornece na sada a parte da string antes do ponto de

49

diviso (substring before match) e o resto da string original no outro terminal de sada (match + rest of string).

Figura 5.39 Terminais da funo Search/Split String.

No nosso caso, podemos separar usando a posio do byte onde queremos dividir a string entrando com um nmero no terminal offset. Ou seja, para o exemplo do pacote citado anteriormente [_ 3 1 8 _ 2 3], um offset de valor 2 iria dividir a string em uma antes do byte de posio 2 [_ 3] e outra com os bytes das posies 2 at 6 [1 8 _ 2 3] como mostrado na figura a seguir.

Figura 5.40 Exemplo de diviso da string original com offset 2.

5.7.2 Parte B: Mdulo mestre


1. Escrita na porta serial: Altere o programa feito na tarefa 5 de modo que ele escreva na porta serial aquecer ou resfriar caso sejam pressionados os botes que acionam os atuadores. Qualquer uma destas mensagens dever ser enviada ao mdulo escravo uma vez por ciclo de atualizao do sistema se for desejado um funcionamento contnuo dos atuadores. Caso contrrio, se a mensagem for enviada somente uma vez, o atuador em questo s ficar ligado por um ciclo. 2. Leitura da porta serial: O mdulo escravo dever transmitir uma mensagem com estrutura semelhante do pacote da Tabela 5.10. Cabe ao mestre dividir essa mensagem em quantas partes for necessrio de modo a interpretar os dados enviados. Seguindo o exemplo dado na Tabela 5.11, a 50

mensagem deveria ser partida em trs pedaos. Mas como dividir em trs? Basta fazer uma diviso em cascata usando apenas dois blocos da funo Search/Split String. Deve-se tomar muita ateno para manter a taxa de envio de dados do escravo e a taxa de atualizao (leitura) do mestre em concordncia. Caso contrrio, pode haver um acmulo de dados no-lidos na porta serial do mestre, podendo ocasionar erros na desmontagem do pacote. 3. Aps ter conseguido efetuar os passos 1 e 2 com sucesso, passa-se etapa de armazenamento desses dados vindos do escravo em um arquivo no computador. Para efetuar tal operao, veja o 3 passo da parte A desta tarefa.

Tabela 5.12 Elementos novos para a tarefa 7

Diagrama de Blocos

Classe da funo String Matrizes File I/O

Funo especfica diviso montar vetor montar arquivo texto

51

Captulo 6 Tecnologias para aquisio de dados


At o momento, j vimos como processar um sinal gerado pelo LabVIEW ou um conjunto de dados previamente salvo em um arquivo. Porm, ainda no discutimos um tpico bastante importante que a aquisio dos dados a serem trabalhados, atravs da utilizao de hardware especfico para tal fim. Voc j experimentou um pouco como se d esse processo atravs da utilizao da porta serial do seu computador. Basicamente, dessa maneira que se d a aquisio de dados, porm geralmente ela feita de maneira um pouco mais sofisticada, atravs de hardware e protocolos de comunicao especialmente desenvolvidos para isso. A figura a seguir ilustra algumas das tecnologias mais comuns utilizadas para aquisio de dados. Dentre elas, est a nossa j conhecida serial.

Figura 6.41 Tecnologias para aquisio de dados

Vamos ver aqui, de maneira geral, no que consiste cada uma dessas tecnologias. Para maiores detalhes, voc pode consultar alguma das bibliografias indicadas no final da apostila ou ento visitar o site da National Instruments. Nesse site voc pode entrar em contato com o que h de mais novo em termos de dispositivos para aquisio de dados, alm de poder ler e fazer o download de material tcnico, application notes e exemplos de programas.

Uma das interfaces mais antigas utilizadas para aquisio de dados a GPIB (General Purpose Interface Bus), que corresponde especificao IEEE 488. Antes mesmo da introduo dos computadores pessoais, na dcada de 80 do sculo passado, este barramento j era utilizado por controladores dedicados para comunicar-se com instrumentos de medio. Com o advento dos computadores pessoais, estes passaram a ser cada vez mais utilizados para o controle de instrumentos e empresas como a National Instruments cresceram bastante nessa poca. A NI j era, em 1983, o principal fornecedor de interfaces de hardware GPIB para a comunicao entre PCs e instrumentos/placas de aquisio. Nessa poca, praticamente todo software para controle de instrumentos, ou driver, era escrito em linguagem BASIC, o que dificultava o rpido desenvolvimento de aplicaes. nesse momento histrico, inclusive, que a NI decide investir na criao de uma linguagem visual, intuitiva e de fcil aprendizado para simplificar a utilizao de instrumentos e a aquisio e processamento de dados. Essa deciso daria origem ao LabVIEW e mudaria a histria da empresa.

6.1 Principais interfaces disponveis no mercado


O LabVIEW tornou-se em pouco tempo o ambiente de desenvolvimento preferencial para aquisio e processamento de dados e incorpora, alm de todas as ferramentas que j trabalhamos, uma vasta gama de bibliotecas contendo drivers para praticamente qualquer dispositivo que utilize as principais interfaces disponveis no mercado. Analisemos rapidamente, ento, algumas delas: Placas de aquisio de dados (plug-in DAQ boards): a maioria das placas de aquisio disponveis possui um determinado nmero de entradas e sadas analgicas, alm de bits de entrada/sada. Geralmente, possuem multiplexadores, conversores Analgico-Digital e Digital-Analgico e so conectadas a slots ISA, PCI e, mais recentemente, PCI-Express existentes na placa me de um computador. GPIB: acrnimo para General Purpose Interface Bus, a interface GPIB corresponde ao padro IEEE-488 e uma das arquiteturas mais utilizadas em placas de aquisio de dados. uma interface de comunicao de dados paralela que utiliza um conector

de 24 pinos e que permite que at 15 dispositivos dividam um barramento paralelo de 8 bits, conectados em topologia do tipo daisy-chain os dispositivos so conectados em srie, um aps o outro, e os sinais transmitidos vo primeiro para o primeiro dispositivo, depois para o segundo e assim por diante. Utiliza 16 linhas de sinal (8 bits para transferncia bidirecional de dados, 3 para handshake e 5 para gerenciamento do barramento) e as demais 8 so linhas de retorno de terra. A mxima taxa de transferncia de 8MB/s VXI: a arquitetura VXI uma plataforma aberta, padro, baseada numa arquitetura mais antiga chamada VMEbus. VXI significa VME eXtensions for Instrumentation e mantida por um consrcio de empresas dentre as quais esto a National Instruments e a Agilent Technologies. Sua principal utilizao em sistemas de teste automtico nas reas de aviao e militar. PXI: acrnimo para PCI eXtensions for Instrumentation, PXI uma plataforma para instrumentao modular introduzida em 1997 pela National Instruments e promovida por um consrcio de 59 empresas chamado PXI Systems Alliance. Foi desenvolvida para aplicaes industriais de medio e automao onde uma alta performance exigida e oferece todos os benefcios de se utilizar a arquitetura PCI, incluindo performance e robustez. Serial: ainda que existam vrias plataformas de comunicao serial, incluindo a amplamente utilizada USB, sempre que falamos em serial estivemos nos referindo especificao RS-232. A RS232 foi durante anos a interface serial padro e ainda hoje largamente utilizada, principalmente em aplicaes em que um dispositivo de hardware conectado ao PC e no exige taxas de transmisso de dados muito altas. Nesta altura deste curso, voc j teve a oportunidade de entrar em contato com a utilizao da interface RS232 e mais informaes sobre ela podem ser encontradas no Apndice A. Em ambientes industriais, utiliza-se o protocolo serial RS-485, que mais robusto, apresentando taxas de transmisso maiores e sendo mais imune a rudos.

6.2 Como escolher uma interface I/O especfica?


De maneira geral, no existem regras que determinem qual interface a mais adequada para uma determinada aplicao. Do ponto de vista do LabVIEW, praticamente qualquer interface I/O utilizada para instrumentao pode ser adotada e, nesse aspecto, o usurio livre para escolher. Porm, segundo a referncia [Gary W. Johnson], alguns fatores determinantes na escolha so: Experincia prvia (e positiva) com o equipamento ou recomendaes de Disponibilidade imediata de hardware: melhor utilizar algo que j foi

algum confivel, que j o tenha utilizado; utilizado em outro projeto e que possa ser comprado e entregue num perodo curto de tempo; Adequado ao propsito: no faz sentido possuir vrios dispositivos de hardware que no so adequados aplicao, melhor comparar especificaes e necessidades cuidadosamente antes de se comprometer com qualquer soluo de hardware; Disponibilidade de drivers: se o LabVIEW dispuser do driver para um determinado instrumento, voc ir poupar tempo e esforo, pois escrever um driver de dispositivo muitas vezes mais complexo do que desenvolver uma aplicao inteira; Confiabilidade e segurana: quanto mais altas estas exigncias, mais elas Por fim, o custo por canal tambm deve ser considerado como parmetro devem influenciar na sua escolha de (e tambm de software); de escolha.

6.3 Como configurar e utilizar os dados adquiridos no LabVIEW?


A configurao do hardware de aquisio bastante facilitada no LabVIEW, uma vez que ele geralmente possui os drivers necessrios instalados. Alm disso, ele possui uma classe de funes chamada Express que automatiza toda a configurao e utilizao da placa de aquisio,

inclusive detectando-a automaticamente. Utilizando o VI chamado DAQ Assistant, possvel configurar a placa de aquisio, escolher os canais da placa a serem utilizados e o tipo de dado que est sendo adquirido (analgico, digital, tenso, corrente, etc.). Cada vez que ele clicado, ele inicia um assistente que permite reconfigurar uma placa j configurada ou configurar novas placas, de maneira interativa. Ao final da configurao, possvel imprimir um diagrama esquemtico das configuraes da placa, contendo os canais utilizados, o label que est associado a cada um deles e os tipos de sinais que eles recebem. A classe Express possui ainda VIs dedicados ao processamento e/ou anlise dos dados, como por exemplo anlise espectral, anlise estatstica e filtragem. Tambm possui estruturas de controle do fluxo de execuo e VIs utilizados para sada de dados atravs de arquivos do tipo .lvm (LabVIEW Measurements File) e dos prprios canais da placa de aquisio. Obviamente, alm da classe Express, todas as demais classes de funes podem e devem ser utilizadas. Como lembrete final, no esquea que a discusso aqui apresentada considera que os limites de tenso e corrente de entrada do dispositivo de aquisio utilizado foram levados em conta e que o sinal, seja ele analgico ou digital, j encontra-se condicionado de modo a atender esses limites.

Apndice A
1. Ligao da porta serial em curto-circuito ou loop-back
Para executar o teste da tarefa 6, utilize jumper ou algo semelhante para curtocircuitar os pinos 2 e 3 (ver Figura A.1) do conector DB-9 da porta serial do computador que utiliza o protocolo RS-232.

Figura A.1 Especificao dos pinos do DB-9

2. Conexo de dois computadores atravs da porta serial


Para estabelecer a comunicao entre dois computadores diretamente, usa-se um cabo cross-over para conect-los atravs da porta serial. Existem dois modos: com suporte a controle de fluxo via hardware (Figura A.2) ou sem suporte (Figura A.3).

Figura A.2 Esquema de ligao com suporte a controle de fluxo via hardware

Figura A.3 Esquema de ligao sem suporte a controle de fluxo via hardware

Apndice B Atalhos do LabVIEW 7


Description Object/Movement Shift-click Selects multiple objects; adds object to current selection. Arrow keys Moves selected objects one pixel at a time. Shift-Arrow keys Moves selected objects several pixels at a time. Shift-click (drag) Moves selected objects in one axis. Ctrl-click (drag) Duplicates selected object. Ctrl-Shift-click (drag) Duplicates selected object and moves it in one axis. Shift-resize Resizes selected object while maintaining aspect ratio. Ctrl-resize Resizes selected object while maintaining center point. Ctrl-drag a rectangle Inserts more working space on the front panel or block diagram. Ctrl-A Performs last alignment operation on objects. Ctrl-D Performs last distribution operation on objects. Double-click open Places free label on the front panel or block diagram. space Scrolls through subdiagrams of a Case, Event, or Stacked Sequence Ctrl-mouse wheel structure. Navigating the LabVIEW Environment Ctrl-E Displays block diagram or front panel. Enables or disables alignment grid. On French keyboards, press the Ctrl-# <Ctrl-"> keys. Ctrl-/ Maximizes and restores window. Ctrl-T Tiles front panel and block diagram windows. Ctrl-F Finds objects or text. Ctrl-G Searches VIs for next instance of object or text. Ctrl-Shift-G Searches VIs for previous instance of object or text. Ctrl-Shift-F Displays Search Results window. Ctrl-Tab Cycles through LabVIEW windows. Ctrl-Tab Cycles backward through LabVIEW windows. Ctrl-I Displays VI Properties dialog box. Ctrl-L Displays Error List window. Ctrl-Y Displays History window. Ctrl-D Redraws Hierarchy window. Ctrl-A Shows all VIs in Hierarchy window. Finds next node that matches the search string after initiating a Enter search by typing in Hierarchy window. Finds previous node that matches the search string after initiating a Shift-Enter search by typing in Hierarchy window. Debugging Ctrl-Down arrow Steps into node. Ctrl-Right arrow Steps over node. Keyboard Shortcut

Ctrl-Up arrow Ctrl-N Ctrl-O Ctrl-W Ctrl-S Ctrl-P Ctrl-Q Ctrl-Z Ctrl-Shift-Z Ctrl-X Ctrl-C Ctrl-V Ctrl-H Ctrl-Shift-L Ctrl-? or <F1> Ctrl Shift Ctrl-Shift over open space Spacebar Shift-Tab Tab Arrow Keys Enter Esc Double-click subVI Ctrl-double-click subVI Drag VI icon to block diagram Shift-drag VI icon to block diagram Ctrl-right-click block diagram and select VI Ctrl-R Ctrl-.

Steps out of node. File Operations Creates new VI. Opens existing VI. Closes VI. Saves VI. Prints the window. Quits LabVIEW. Basic Editing Undoes last action. Redoes last action. Cuts an object. Copies an object. Pastes an object. Help Displays Context Help window. Locks Context Help window. Displays LabVIEW Help. Tools and Palettes Switches to next most useful tool. Switches to Positioning tool. Switches to Scrolling tool. Toggles between two most common tools if automatic tool selection is disabled. Enables automatic tool selection. Cycles through four most common tools if you disabled automatic tool selection by clicking the Automatic Tool Selection button. Otherwise, enables automatic tool selection. Navigates temporary Controls and Functions palettes. Navigates into temporary palette. Navigates out of temporary palette. SubVIs Displays subVI front panel. Displays subVI block diagram. Places that VI as a subVI on the block diagram. Places that VI as a subVI on the block diagram with constants wired for controls that have non-default values. Opens front panel of that VI from the Functions palette. Execution Runs VI. Stops VI, when used while VI is running.

Ctrl-M Changes to run or edit mode. Ctrl-Run button Recompiles current VI. Ctrl-Shift-Run button Recompiles all VIs in memory. Moves key focus inside an array or cluster, when used while VI is Ctrl-Down arrow running. Moves key focus outside an array or cluster, when used while VI is Ctrl-Up arrow running. Navigates the controls or indicators according to tabbing order, Tab when used while VI is running. Navigates backward through the controls or indicators, when used Shift-Tab while VI is running. Wiring Ctrl-B Removes all broken wires. Esc, right-click, or Cancels a wire you started. click terminal Single-click wire Selects one segment. Double-click wire Selects a branch. Triple-click wire Selects entire wire. A Disables automatic wire routing temporarily. Double-click (while Tacks down wire without connecting it. wiring) Spacebar Toggles automatic wiring while moving objects. Shift-click Undoes last point where you set a wire. Ctrl-click input on function with two Switches the two input wires. inputs Spacebar Switches the direction of a wire between horizontal and vertical. Text Double-click Selects single word in string. Triple-click Selects entire string. Ctrl-Right arrow Moves forward in string by one word. Ctrl-Left arrow Moves backward in string by one word. Home Moves to beginning of current line in string. End Moves to end of current line in string. Ctrl-Home Moves to beginning of entire string. Ctrl-End Moves to end of entire string. Adds new items when entering items in enumerated type controls Shift-Enter and constants, ring controls and constants, or Case structures. Esc Cancels current edit in a string. Ctrl-Enter Ends text entry. Ctrl-= Increases current font size. Ctrl-Decreases current font size. Ctrl-0 Displays Font dialog box. Ctrl-1 Displays Application font in Font dialog box. Ctrl-2 Displays System font in Font dialog box.

Ctrl-3 Ctrl-4

Displays Dialog font in Font dialog box. Displays current font in Font dialog box.

Referncias
1. National Instruments. Getting Started With LabVIEW 2. National Instruments. LabVIEW User's Guide 3. National Instruments. LabVIEW Fundamentals 4. Ertugrul, Nesimi. LabVIEW for Electric Circuits, Machines, Drives and Laboratories. Editora Prentice Hall 5. Johnson, Gary W. LabVIEW Graphical Programming: Practical Applications in Instrumentation and Control . Editora McGraw-Hill 6. http://www.rogercom.com/PortaSerial/PortaSerial.htm (acessado em 20/07/2007)