Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Int r o duo ao
7 .0
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
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
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
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.
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 ,
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.
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 . .
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.
11
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
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
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.
direito sobre ele, selecione a ltima opo do menu que aparecer, no caso propriedades.
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
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.
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
4.
realizada no Help.
18
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
19
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
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.
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
10. Observe os dados que foram salvos e depois volte ao diagrama de blocos
23
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.
25
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.
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
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
7.
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
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
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
30
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
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.
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.
33
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
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
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
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
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
41
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
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
Funo especfica forma de onda quociente e resto converso numrico para string concatenar
44
Na tabela a seguir, tem-se uma descrio de algumas funes que podem ser usadas para a comunicao serial.
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
Painel Frontal
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
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.
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).
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.
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.
Diagrama de Blocos
51
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.
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.
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.
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.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
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)