Sei sulla pagina 1di 56
Introdução ao Labview Parte I Prof. Dr.Valner J. Brusamarello – DELET – UFRGS
Introdução ao Labview
Parte I
Prof. Dr.Valner J. Brusamarello – DELET – UFRGS
www.chasqueweb.ufrgs.br/~valner.brusamarello
Instrumentação Virtual • Integração hardware / software transparente e fácil. The Virtual Instrumentation
Instrumentação Virtual
• Integração hardware / software
transparente e fácil.
The Virtual Instrumentation Approach
• 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).
Instrumentação Virtual • Um instrumento virtual consiste de computadores ou estaçoes de trabalho equipados com
Instrumentação Virtual
• Um instrumento virtual consiste de
computadores ou estaçoes de trabalho
equipados com softwares de aplicações
em,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.
The NI Approach – Integrated Hardware Platforms
PXI Modular Instrumentation
Desktop PC
Laptop PC
PDA
• A principal característica dos instrumentos
virtuais reside na exploração profunda da
flexibilidade de software agregada a um
hardware fundamental.
High-Speed
Digitizers
High-Resolution
Digitizers and DMMs
Multifunction
Dynamic
Instrument
Digital I/O
Counter/
Machine
Motion
Data Acquisition
Signal Acquisition
Control
Timers
Vision
Control
Distributed I/O and
Embedded Control
Signal Conditioning
• Além do esperado aumento de
desempenho com a introdução de técnicas
flexíveis e customizadas de
processamento, existe ainda a vantagem
da reduçao de custos, uma vez que a
plataforma é sempre a mesma.
and Switching
Unit Under Test
• Comentário: A NI, além de criar uma
ferramenta poderosa que disseminou a
sua marca, incrementou de forma
impressionante o seu mercado de
hardware, liderando tentativas de
padronizações nesse sentido.
Instrumentação Virtual • PXI – PCI Extensions for Instrumentation • Sistemas modulares multi-funcionais
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);
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
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 web
resources.
Ambiente LabVIEW • Cada VI possui duas janelas: • Painel Frontal e Diagrama de blocos
Ambiente LabVIEW
• Cada VI possui
duas janelas:
• Painel Frontal e
Diagrama de
blocos
Painel frontal – Ambiente visual
Controles = Entradas
Indicadores = Saídas
Ambiente LabVIEW Diagrama de Blocos – Ambiente de Programação Componentes do Painel frontal e blocos
Ambiente LabVIEW
Diagrama de Blocos – Ambiente de Programação
Componentes 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 Palette Contém os controles e indicadores Acesso: Botão Direito
Painel Frontal – Controls Palette
Controls Palette
Contém os controles e
indicadores
Acesso:
Botão Direito no Painel Frontal
Painel Frontal - Controles e Indicadores Barra de Ferramentas Ícone Legenda Label do do Gráfico
Painel Frontal - Controles e
Indicadores
Barra de
Ferramentas
Ícone
Legenda
Label do
do Gráfico
Gráfico de
Formas de
Onda
Barra de
Rolagem
Gráfico de
Eixo X
Formas de
Onda
Controle:
Ferramentas do
Gráfico
Parar
Diagrama de Blocos – Functions Palette Functions Palette Contém as funções Acesso: Botão Direito (mouse)
Diagrama de Blocos – Functions
Palette
Functions Palette
Contém as funções
Acesso:
Botão Direito (mouse) no Diagrama de Blocos
Diagrama de Blocos Barra de Ferramentas Função de Divisão Terminal de Gráfico de Forma de
Diagrama de Blocos
Barra de
Ferramentas
Função de
Divisão
Terminal de
Gráfico de
Forma de
Onda
Estrutura de
Loop While
Conexão
De Dados
Constante
Numérica
Terminal de um
Controle
Booleano
Função De Tempo
Criação de projeto New»Empty Project para criar um novo projeto
Criação de projeto
New»Empty Project para criar um novo projeto
Criando um novo VI My computer»New»VI
Criando um novo VI
My computer»New»VI
Criando um SubVI • Um SubVI é um VI que é utilizado por outro VI.
Criando um SubVI
• Um SubVI é um VI que é utilizado por outro VI.
• É utilizado para simplificar o programa
Área selecionada
SubVI criado
Edit»Create SubVI
SubVIs • Modularidade • No LabVIEW componentes separados de um VI são chamados subVIs. •
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 assim
ser chamado de programa.
Criando um subvi: implementar esse exemplo.
Criando um subvi: implementar
esse exemplo.
SubVI • Um subVI corresponde a uma chamada de subrotina em uma linguagem texto •
SubVI
• Um subVI corresponde a uma chamada de subrotina em uma
linguagem texto
• Os controles do subVI e os seu indicadores recebem e retornam
dados 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ões
existentes.
• Veja Help»Search the LabVIEW Help…».
Em outras linguagens
Em outras linguagens
subvi
subvi
Icon e connect panel • O Icon e Connector Pane permite definir os dados transferidos
Icon e connect panel
• O Icon e Connector Pane permite definir os dados
transferidos para e do subVI e também a sua aparência
no código LabVIEW principal.
• Todo VI mostra um ícone no canto superior direito das
janelas 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ótipo
da função em linguagens texto. Existem muitas opções
para o connector pane, mas alguns padrões gerais são
especificados.
• No canto superior direito do front panel voce tem acesso
ao connect panel e ao Icon editor. Explore-o!
Icon e connect panel
Icon e connect panel
Exercício – explorar!! • Crie um subVI de um novo VI – adicione 2 entradas
Exercício – explorar!!
• 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 / controle
desejado
Exercício – criando um subvi • Botão direito no Connector Panel e selecione Edit Icon….
Exercício – criando um subvi
• 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 caso
adiçao.
• Salve o SubVI.
Criando uma Library My Computer»New»Library
Criando uma Library
My Computer»New»Library
Adicionando um SubVI a uma Library My Computer»Library»New»VI
Adicionando um SubVI a uma Library
My Computer»Library»New»VI
Barra de Ferramentas Run button Font ring Continuous Run button Alignment ring Abort button Distribution
Barra de Ferramentas
Run button
Font ring
Continuous Run button
Alignment ring
Abort button
Distribution ring
Pause/Continue button
Resize ring
Reorder ring
Botões adicionais da barra
do diagrama em blocos
Context Help Button
Warning indicator
• Execution Highlighting button
Enter button
• Step Into button
• Step Over button
Broken Run button
• Step Out button
HELP do LabVIEW Para visualizar a janela de Context Help, selecione Help»Show Context Help, ou
HELP do LabVIEW
Para 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 de
ferramentas
Mova o cursor até o objeto
para visualizar seu help
específico
Simple/Detailed Context Help
Lock Help
More Help
LabVIEW HELP - Examples Help»Find Examples
LabVIEW HELP - Examples
Help»Find Examples
LabVIEW - Discussion Forums http://www.ni.com/support/
LabVIEW - Discussion Forums
http://www.ni.com/support/
Demonstração 1: Criando um VI • Abra o Labview e abra uma área para um
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
Demonstração 1: Criando um VI • Vá para o diagrama de blocos e clique com
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
Demonstração 1: Criando um VI • Basicamente, mandamos o labview rodar uma vez apenas! •
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.
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 computador
tiver processadores múltiplos, os dois pedaços de código poderiam rodar
totalmente independentes um do outro.
Labview
Labview
Técnicas de “Debugging” • Quando o VI não está executável uma seta quebrada é mostarda
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 ou
clique 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
Exemplo de construção de um VI • No diagrama de blocos com o clicar com
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
Painel de controle
Tipos de funções • Express VIs: VIs interativos configuráveis: borda azul • Standard VIs: VIs
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 dados
Que tipos de funções são disponibilizadas?
Entrada e saída:
Simulação de sinais e dados
Aquisição e geração de sinais com DAQs
Comunicação (serial (USB, TCP-IP), GPIB)
ActiveX para comunicação com outros programas
Análise:
Processamento de sinais
Estatística
Matemática avançada e fórmulas
Continuos 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 1 Realização de uma soma de dois números Inserir os elementos no Block Diagram.
Exercício 1
Realização de uma soma de dois
números
Inserir 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 controles Desenvolver um programa para somar, subrair, dividir e multiplicar
Exercício 2
Outras operações e
controles
Desenvolver 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 Connect
Wire do Tools Palette.
Exercício 3: • Utilize as técnicas de debugging para encontrar os erros no programa ao
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
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 ) • 2: Selecione blank VI (VI
Exercício 4 (calma!
Estamos
recapitulando o que vimos
)
• 2: Selecione blank VI (VI é
Passo
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
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 Panel
e 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
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
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
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
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
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, execution
control em “while
loop”, 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á
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
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.