introdução ao labview parte i - chasqueweb.ufrgs.brvalner.brusamarello/inst/labview1.pdf · icon...
TRANSCRIPT
Introdução ao LabviewParte I
Prof. Dr.Valner J. Brusamarello – DELET – UFRGSwww.chasqueweb.ufrgs.br/~valner.brusamarello
Instrumentação Virtual
• Integração hardware / software transparente e fácil.
• Linguagem modular.• Programação gráfica.• Integração de diferentes
aplicações em uma única linguagem.
• Aplicações diversas: Jigas de testes, automação de processos, supervisão de sistemas, etc.
• Atualmente o LABVIEW pode rodar em diferentes plataformas: multitarefas (ex.: windows), plataforma de tempo real, embedded systems (ex.: FPGA,s).
The Virtual Instrumentation Approach
Instrumentação Virtual• Um instrumento virtual consiste de
computadores ou estaçoes de trabalhoequipados com softwares de aplicaçõesem,hardware como placas de aquisiçao de dados, além de drivers de comunicação, os quais, juntos assumem as funçoes de instrumentos tradicionais.
• A principal característica dos instrumentosvirtuais reside na exploração profunda daflexibilidade de software agregada a um hardware fundamental.
• Além do esperado aumento de desempenho com a introdução de técnicasflexíveis e customizadas de processamento, existe ainda a vantagemda reduçao de custos, uma vez que a plataforma é sempre a mesma.
• Comentário: A NI, além de criar umaferramenta poderosa que disseminou a sua marca, incrementou de forma impressionante o seu mercado de hardware, liderando tentativas de padronizações nesse sentido.
The NI Approach – Integrated Hardware Platforms
High-SpeedDigitizers
High-ResolutionDigitizers and DMMs
Multifunction Data Acquisition
DynamicSignal Acquisition
Digital I/OInstrumentControl
Counter/Timers
MachineVision
Motion Control
Distributed I/O andEmbedded Control
Laptop PC PDADesktop PCPXI Modular Instrumentation
Signal Conditioningand Switching
Unit Under Test
Instrumentação Virtual
• PXI – PCI Extensions for Instrumentation• Sistemas modulares multi-funcionais
controlados pelo labview
O que é o LabVIEW?
• Ambiente de desenvolvimento de programas em linguagem gráfica (VI);
• Os VIs (Virtual Instruments) são programas gráficos: ícones são utilizados ao invés de linhas de código.
• Possibilitam controle de processos, fluxo, aquisição e processamento de dados.
• Principal característica: facilidade de integração.• O Labview possui uma variedade de funções, porém
você pode adquirir módulos específicos (por exemplo de real time applications) .
• Você também pode construir bibliotecas de Vis.
Introdução: Inicializando o Labview
• Inicialize o Labview• Podemos iniciar um novo
programa: Blank VI.• Ou podemos explorar a
extensa biblioteca de exemplos.
• Explore também o poderoso Help do Labview.
• Finalmente, em caso de dúvidas, busque apoio na Internet: temos várias opçoes em webresources.
Ambiente LabVIEW
Painel frontal – Ambiente visualControles = Entradas Indicadores = Saídas
• Cada VI possui duas janelas:
• Painel Frontal e Diagrama de blocos
Ambiente LabVIEW
Diagrama de Blocos – Ambiente de ProgramaçãoComponentes do Painel frontal e blocos de funções são conectados com
wires, que mudam de acordo com o tipo de dados.
Painel Frontal – Controls Palette
Controls PaletteContém os controles e
indicadores
Acesso:Botão Direito no Painel Frontal
Painel Frontal - Controles e Indicadores
Barra deFerramentas
Legenda do Gráfico
Controle:Parar
Gráfico de Formas de Onda
Ícone
Ferramentas doGráfico
Label doGráfico de Formas de Onda
Barra de Rolagem Eixo X
Diagrama de Blocos – FunctionsPalette
Functions PaletteContém as funções
Acesso:Botão Direito (mouse) no Diagrama de Blocos
Diagrama de Blocos
Conexão De Dados
Terminal deGráfico de Forma de Onda
Estrutura de Loop While
Função deDivisão
Terminal de um Controle Booleano
Constante Numérica
Função De Tempo
Barra deFerramentas
Criação de projeto
New»Empty Project para criar um novo projeto
Criando um novo VI
My computer»New»VI
Criando um SubVI
Edit»Create SubVIÁrea selecionada SubVI criado
• Um SubVI é um VI que é utilizado por outro VI. • É utilizado para simplificar o programa
SubVIs
• Modularidade• No LabVIEW componentes separados de um VI
são chamados subVIs.• Utilizados quando um determinado código
precisa ser executado sistematicamente com diferentes entradas.
• Analogo às funçoes do c.• Qualquer cógigo ou parte de código LabVIEW
pode ser transformado em um SubVI e assimser chamado de programa.
Criando um subvi: implementar esse exemplo.
SubVI
• Um subVI corresponde a uma chamada de subrotina em umalinguagem texto
• Os controles do subVI e os seu indicadores recebem e retornamdados do VI de chamada.
• Criando um SubVIs de partes de um VI• Converta a parte do VI em um subVI usando a ferramenta
Positioning para selecionar a parte do diagrama de blocos que vocêquer utilizar e seleciona Edit»Create SubVI.
• Um ícone para o novo subVI substitui a parte selecionada. O LabVIEW cria controles e indicadores para o novo subVI, automaticamente configura o mesmo e liga o subVI às conexõesexistentes.
• Veja Help»Search the LabVIEW Help…».
Em outras linguagens
subvi
Icon e connect panel
• O Icon e Connector Pane permite definir os dados transferidos para e do subVI e também a sua aparênciano código LabVIEW principal.
• Todo VI mostra um ícone no canto superior direito dasjanelas do front panel e do block diagram.
• DEpois de construir um VI, construa o ícone e o connector pane assim você pode usar o VI como um subVI.
• O icon e o connector pane correspondem ao protótipoda função em linguagens texto. Existem muitas opçõespara o connector pane, mas alguns padrões gerais sãoespecificados.
• No canto superior direito do front panel voce tem acessoao connect panel e ao Icon editor. Explore-o!
Icon e connect panel
• Crie um subVI de um novo VI – adicione 2 entradas e e uma saída que é a soma das entradas. • Abra um new VI (Ctrl+N).• Posicione a funçao Add (Programming » Numeric) no diagrama de blocos. • Crie controles e indicadores com um duplo clique e selecionando Create » Control or Indictor. O diagrama de blocos e o Front Panel devem
parecer.
• No Front Panel-> botão direito no ícone no canto superior direito e selecione Show Connector para revelar o Connector Pane.
• Atribua terminais do ícone aos dois controles e indicadores com botão esquerdo no ícone terminal e e esntão clicando o indicador / controledesejado
Exercício – explorar!!
• Botão direito no Connector Panel e selecione Edit Icon…. Isso vai carregar o Editor de ícones.
• Modifique os gráficos para uma representação mais correta da funçao do SubVI, nesse casoadiçao.
• Salve o SubVI.
Exercício – criando um subvi
Criando uma Library
My Computer»New»Library
Adicionando um SubVI a uma Library
My Computer»Library»New»VI
Barra de Ferramentas
Run buttonContinuous Run buttonAbort buttonPause/Continue button
• Execution Highlighting button• Step Into button• Step Over button• Step Out button
Warning indicator
Enter button
Broken Run button
Font ringAlignment ringDistribution ringResize ringReorder ringContext Help Button
Botões adicionais da barra do diagrama em blocos
HELP do LabVIEWPara visualizar a janela de Context Help, selecione Help»Show Context Help, ou pressione as teclas <Ctrl-H>, ou ainda pressione o botão Show Context Help Window na barra deferramentasMova o cursor até o objeto para visualizar seu helpespecífico
Simple/Detailed Context Help Lock Help More Help
LabVIEW HELP - Examples
Help»Find Examples
LabVIEW - Discussion Forums
http://www.ni.com/support/
Demonstração 1: Criando um VI
• Abra o Labview e abra uma área para um blank VI.• Separe o painel frontal do diagrama de blocos• No painel frontal, clique com o botão direito do
mouse e entre na paleta de ferramentas do tipo graph. Escolha waveform graph e arraste o ícone para a área de trabalho.
• Novamente clique com o botão direito e entre no menu numeric. Escolha dois knobs e arraste-os para a área de trabalho.
• Utilize a ferramenta para alinhar os knobs.
Demonstração 1: Criando um VI
Demonstração 1: Criando um VI
• Vá para o diagrama de blocos e clique com o botão direito do mouse para ter acesso às funçoes.
• Entre em express e escolha o bloco simulate signal.• Aceite os defaults dando um OK.• Na área de trabalho, “abra” o bloco com o mouse.• Faça a conexão da saída desse bloco para o gráfico.• Faça a conexão de um dos knobs ao “pino” Amplitude.• Repita a operação para o pino Frequência.• Antes de rodar, clique com o botão da direita no knob
ligado na frequência e mude a escala para variar de 0 a 10000 em “propriedades”.
• Rode! O que aconteceu?
Demonstração 1: Criando um VI
Demonstração 1: Criando um VI• Basicamente, mandamos o labview rodar uma vez apenas!• O bloco de simulação, gera 1000 pontos e os mesmos são impressos
no gráficos e fim!• Se quisermos que o programa rode indefinitivamente, devemos
adicionar um laço.• Se quisermos ter controle devemos colocar um controle – um botão
stop.• Clique com o botão da direita do mouse. Entre em strutures e arraste o
laço while em volta do VI. • O pequeno “i” na esquerda indica o número de interações. Você pode
adicionar um indicador (clique com o botão direito do mouse no terminal do “i” create indicator).
• O sinal vermelho no canto direito indica a parada. Devemos adicionar um botão de controle (clique com o botão direito do mouse no terminal do dispositivo create control).
• Rode novamente!• Ao tentar mudar a frequência você verá uma mensagem de erro.
Conserte o problema!
Labview• O LabVIEW segue um modelo de fluxo dos dados para rodar os VIs. • Um nó do diagrama de blocos é executado quando todas as entradas estão
disponíveis. • Quando um nó é executado, o dado é então disponibilizado para as saídas
(indicadores). Esse modelo é propagado para os nós seguintes. • Visual Basic, C++, JAVA, e a maioria das linguagens de programação
baseadas em texto tem o controle do fluxo determinado pela oerdem de sequência dos elementos do programa.
• Considere um diagrama de blocos com dois números sendo adicionados. O resultado é então multiplicado por 2.
• Nesse caso, a execução do programa ocorre da esquerda para direita. • A funçao de multiplicação só passa a ser válida após a soma estar
concluída.• Quando dois blocos de programa estão em paralelo e são independentes, os
mesmos são executados e tem seus fluxos independentes. Se o computadortiver processadores múltiplos, os dois pedaços de código poderiam rodartotalmente independentes um do outro.
Labview
Técnicas de “Debugging”
• Quando o VI não está executável uma seta quebrada é mostarda no botão de Run.
Encontrando Erros: Para listar, clique na seta quebrada. Para localizar o objeto com problemas, clique na mensagem de erro.Execution Highlighting (pequena lâmpada no toolbar do painel): Anima o diagrama e mostra o fluxo dos dados, permitindo a visualização de valores intermediários. Probe: Usada ver valores em arrays e clusters. Clique nos “wires” com a ferramenta Probe ouclique com o botão direito do mouse.Retain Wire Values: Usado em conjunto com as probes para ver os valores da última interação do programa. Breakpoint: Arma pausas em diferentes locais do diagrama. Clique nos “wires” ou objetos com a ferramenta Breakpoint.
Exemplo
Exemplo de construção de um VI
• No diagrama de blocos com o clicar com o botão direito e entrar no menu express. Escolha o bloco Simulate Signal e arraste-o duas vezes para a área de trabalho.
• Configure o bloco – botão direito do mouse – propriedades.• Express->Signal Analysis-> Filter.• Configure o bloco para um passa baixas com freq. De corte de 100
Hz.• Express->Output-> Write to Measurement File.• Com o botão direito-> propriedades.• Express->Signal Manipulation->Merge (para unir dois sinais)• Vá ao painel de trabalho e escolha o gráfico: Botão direito na área
de trabalho->Graph->waveform graph.• Clique com o botão direito na área de trabalho e escolha em
Numeric->Vertical Point slide• Clique com o botão direito na área de trabalho e escolha em
Numeric->Meter• No diagrama de blocos, insira um laço while: Programming-
>structures->while loop• Por fim,no diagrama de blocos clique com o botao direito no STOP e
adicione um controle (botão).• Veja que os controles colocados na área de trabalho do front Panel
aparecem como ícones no diagrama de blocos.
Painel de controle
Tipos de funções
• Express VIs: VIs interativos configuráveis: borda azul
• Standard VIs: VIs modulares customizados
• Funções: Operações básicas
Que tipos de funções são disponibilizadas?
• Entrada e saída:Simulação de sinais e dadosAquisição e geração de sinais com DAQsComunicação (serial (USB, TCP-IP), GPIB)ActiveX para comunicação com outros programas
• Análise:Processamento de sinaisEstatísticaMatemática avançada e fórmulasContinuos time solver
• Armazenamento:I/O de arquivos
• Observação: MUITAS FERRAMENTAS DO LABVIEW PODEM SER ADQUIRIDAS NA FORMA DE PACOTES ESPECÍFICOS: Real Time, Processamento de Imagens, FPGA, entre outros
• http://www.ni.com/toolkits
Exercício 1Realização de uma soma de dois númerosInserir os elementos no Block Diagram.
Selecionar os elementos:(a) Na janela Functions selecionar Programming, Numeric e Add(b) Arrastar o VI Add para o espaço de trabalho;(c) Clicar 1X com o botão direito do mouse (sobre o VI de interesse). Irá abrir uma janela que permite criar rótulos (labels), apresentar terminais, criar dispositivos de entrada e saída (quando for o caso), apresentar o correspondente help, entre outras funções. O rótulo deste VI deve ser SOMADOR (clicar sobre o rótulo default, apagando-o e digitando SOMADOR).
Exercício 2
Outras operações e controlesDesenvolver um programa para somar, subrair, dividir e multiplicar dois números X e Y. Selecionar outros dispositivos de saída (usar agora o painel frontal para seleção de novos VIs de saída). Para realizar as ligações utilizar o botão ConnectWire do Tools Palette.
Exercício 3:
• Utilize as técnicas de debugging para encontrar os erros no programa ao lado
Exercício 4
• Ok! Agora vamos explorar alguns recursos (que depois serão detalhados). Siga as instruções:
• Passo 1: Inicie o Labview. Você verá esta tela:
Exercício 4 (calma!... Estamos recapitulando o que vimos...)
• Passo 2: Selecione blank VI (VI éa sigla de VIRTUAL NSTRUMENT). Fazendo isso você terá acesso a área de trabalho, a qual é dividida em duas janelas: a janela de visualização do VI –Front Panel e a janela do diagrama de blocos, onde os programas são desenvolvidos.
• Passo 3: No diagrama de blocos com o menu de funções aberto (Figura anterior), abra a função express – Signal Analysis e escolha Simulate signal.
Exercício 4 (calma!... Estamos recapitulando o que vimos... Adicionando novos componentes)
• Arraste este componente para a área de trabalho e se desejar você pode modificar as propriedades do mesmo clicando com o botão direito. O default é uma onda senoidal de 10 Hz.
• Passo 4: Vá ao Front Panele no menu de controles, selecione Modern e arraste a ferramenta Graph.Novamente com o botão direito do mouse você pode modificar as propriedades da ferramenta.
Exercício 4 (calma!... Estamos recapitulando o que vimos... Adicionando novos componentes)
• Passo 5: Volte ao diagrama de blocos e ligue a saída do bloco simulador a entrada da ferramenta de gráficos. Mande rodar e você verá o sinal simulado na ferramenta de gráfico.
• Você deverá ver no gráfico o seguinte resultado:
Exercício 4 (calma!... Estamos recapitulando o que vimos... Adicionando novos componentes)
•Que é uma onda senoidal com 10Hz.
• Passo 6: Agora vamos adicionar uma formula matemática para manipular o sinal de saída e mostrar isso no gráfico. No Diagrama de Bloco abra a Paleta de Funções e selecione Mathematics, Scripts e Formulas e vá em Fórmula.
• Insira a fórmula no bloco de diagrama, e aparecerá a seguinte tela:
•Onde é possível assim como se fosse uma calculadora criar funções e executá-las. Iremos multiplicar por 10 a nossa onda para termos um incremento na amplitude da onda.
• Em Label X1, iremos substituir “X1” por “Sine”ou “Seno” como desejar, qualquer valor éaceito.
• Em seguida a tela da formula ira mostrar “Sine”ou o valor digitado, agora nesta tela colocaremos *10 ou seja, multiplicaremos o valor por 10.
• Note que há um quadro verde ao lado da tela, caso ele esteja verde indica que a formula estácorreta, em caso estar cinza, indica que a formula escrita está incorreta.
• Deverá ficar assim:
Exercício 4 (calma!... Estamos recapitulando o que vimos... Adicionando novos componentes)
• Após de um clique em ok. E retornaremos para o bloco de diagrama, onde deveremos ligar a formula ao Simulador de Sinal.
• Da seguinte maneira:• Ligamos o sinal de saída
ao Sine que é a nossa variável de entrada na fórmula. Agora no Painel Frontal, criamos um Gráfico (waveform graph) para que este mostre o sinal multiplicado por 10.
Exercício 4 (calma!... Estamos recapitulando o que vimos... Adicionando novos componentes)
•Onde desta forma o resultado da fórmula émostrado graficamente.
• O resultado deverá ser esse para um Sinal de 10Hz:
• Dica: O gráfico pode mostrar ao mesmo tempo o sinal advindo diretamente do simulador de sinal assim como o gráfico pode apresentar o sinal que passou pela fórmula matemática assim épossível compará-los.
• Onde temos este exemplo:
Exercício 4 (calma!... Estamos recapitulando o que vimos... Adicionando novos componentes)
• Passo 7: Como inserir um Loop (para o sistema ficar rodando continuamente)
• Vá no bloco de diagrama, no view em functions palette, express, executioncontrol em “whileloop”, você terá de fazer um quadrado ao redor de todos os componentes que serão incluídos no loop.
Exercício 4 (calma!... Estamos recapitulando o que vimos... Adicionando novos componentes)
• O resultado será o seguinte:• No painel frontal irá surgir um
botão de stop, com o qual pode-se parar o processo do loop.
• Pode-se também definir o tempo do loop, adicionando outra função, que é Time Delay, que pode ser adiocinado no mesmo menu onde se encontra o Loop.
• Automaticamente quando inserimos o Time Delay, o mesmo abre a janela de configuração e pede o tempo para o processo.
•Após adicionar o time delay, rode o processo e verifique se o tempo para o delay ésuficiente para rodar o processo de forma satisfatória.
Desafio
• 1) Faça um programa que concatena duas strings• 2) Explore o desafio 1: entre com um número e um
string – obtenha na saída uma única string concatenada com o número. (procure o bloco build text)
• 3) Faça um programa que simule uma entrada analógica (simulando variaçao de temperatura). Coloque um controle que possibilite escolher temperatura em C, F e K e mostre em um indicador (termômetro).
• 4) Com o programa feito em 3) faça um subvi e implemente um sistema que emite um alarme assim que uma temperatura sair de uma faixa de valor mínimo e valor máximo. Utilize um loop while com uma temporizaçao de 1 s e salve os dados em um arquivo.