AC250_01/2013 Cristiane Martins AQUISIÇÃO DE DADOS / LABVIEW BÁSICO Semana 5.
Transcript of AC250_01/2013 Cristiane Martins AQUISIÇÃO DE DADOS / LABVIEW BÁSICO Semana 5.
AC250_01/2013Cristiane Martins
AQUISIÇÃO DE DADOS / LABVIEW BÁSICOSemana 5
AC250_01/2013Cristiane Martins
Introdução ao LabView
Semana 4 –Revisão –
Assunto a tratar
- For Loop, While Loop e Shift Registers
AC250_01/2013Cristiane Martins
Introdução ao LabView
REVISÃO – 10 MINUTOS
AC250_01/2013Cristiane Martins
LabVIEW Básico
Três passos:
1. Familiarizar-se com o ambiente.
2. Familiarizar-se com as funções LabVIEW.
3. Aprender como desenvolver uma aplicação.
AC250_01/2013Cristiane Martins
1. Ambiente LabVIEWPainel Frontal x Diagrama de Blocos
Ambos lado a lado. Repare que Painel Frontal possui fundo cinza enquanto Diagrama de Blocos branco. Para que a tela apareça neste formato clique em Windows>>Tile Left and Right ou simplesmente Ctrl + T
AC250_01/2013Cristiane Martins
1.1 – PAINEL FRONTALPaleta de Controle (controls palette)selecione: Windows>>Show Controls Palette
A paleta de controle consiste de ferramentas como indicadores e controles e é utilizada para editar o painel frontal.
AC250_01/2013Cristiane Martins
• O painel frontal é o rosto do programa
• Contém indicadores (saídas) como por exemplo indicadores numéricos, gráficos e LEDs
• Contém também controles (entradas) como por exemplo botões, interruptores e controles numéricos
• Os controles e indicadores do painel frontal têm uma representação no diagrama de blocos que permite a sua ligação ao programa
• No entanto, só podem ser apagados no painelfrontal
DICA: Por “default”, o painel frontal tem um fundo cinzento
1.1 PAINEL FRONTAL
AC250_01/2013Cristiane Martins
1.2 – DIAGRAMA DE BLOCOSPaleta de Funçõesselecione: Windows>>Show Functions
Palette
A paleta de funções consiste de ferramentas como indicadores e controles e é utilizada para editar o diagrama de blocos.
AC250_01/2013Cristiane Martins
1.2 Diagrama de Blocos
• É no diagrama de blocos (Block Diagram) que a programação dos VIs é feita
• Todos os objetos presentes no painel frontal (Front Panel) estão representados no diagrama de blocos
• Os diferentes objetos (controles, indicadores, funções e VIs) são ligados por fios que geram o fluxo de dados e controlam a ordem de execução do programa
• Cada fio só pode ter uma origem (source) mas podem ter diversos destinos (sinks)
DICA: Por ‘’default’’, o fundo do diagrama de blocos é brancoDICA: Para encontrar um objeto no painel frontal (diagrama de blocos), fazer duplo clique sobre a sua representação no diagrama de blocos (painel frontal)
AC250_01/2013Cristiane Martins
Diagrama de Blocos (Fios)
• Os fios finos representam variáveis escalares,enquanto que arrays de uma dimensão são representados por linhas grossas e arrays deduas dimensões por linhas paralelas
• Waveforms são trilhos marrons
AC250_01/2013Cristiane Martins
1.6 Paleta de ferramentas (tools palette) _ interage tanto no Painel Frontal quanto no Diagrama de Blocos
selecione: Windows>>Show Tools PaletteUtilizada para editar as VIs. Pressionando a tecla <Tab> altera-se as ferramentas comumente mais utilizadas na janela ativa. Os ícones que compõe esta paleta:
AC250_01/2013Cristiane Martins
2. Técnicas
Neste tópico revisaremos algumas técnicas
AC250_01/2013Cristiane Martins
2.1 Conectando objetos (somente no diagrama de blocos)
Para conectar um terminal a outro selecione o ''conecta objetos'', clique uma vez sobre a saída do primeiro objeto, mova o mouse até a entrada do segundo objeto e clique novamente. A definição para quem é o primeiro e quem é o segundo objeto independe para o funcionamento.Quando o ''conecta objetos'' está sobre um terminal, a área do terminal pisca indicando que o clique liga o fio no terminal. Um exemplo de ligação é mostrado na Figura
AC250_01/2013Cristiane Martins
Selecionando e apagando fiosPara selecionar um fio escolha a ferramenta ''posiciona objetos'' clique sobre o fio e <delete>.
2.2 Fio tracejado
Um fio tracejado representa uma ligação incompatível. Você pode ter um fio tracejado por uma série de razões, como conectar dois controles, ou uma fonte com saída de dados incompatíveis (por exemplo, gerar dados numéricos e utilizar indicadores booleanos). Para removê-los escolha edit>>remove bad wires ou simplesmente CTRL + B. Não confunda fio tracejado com pontuado. O pontuado representa um dado tipo booleano. Abaixo um exemplo de fio tracejado (indica erro) ao lado de uma ligação pontuada.
0,00
AC250_01/2013Cristiane Martins
2.3 Criar constantes e Indicadores
Para objetos atuando como entradas ou saídas no diagrama de blocos, o LabVIEW possui uma forma de se criar uma constante ou indicador sem a necessidade de utilizar a paleta de funções. Posiciona-se o mouse sobre o terminal que se deseja criar uma constante ou indicador, clica-se, com o botão direito do mouse, sobre este terminal e seleciona create>>control ou create>>constant ou ainda create>>indicator.
AC250_01/2013Cristiane Martins
2.4 Context Help (ajuda resumida)
O Context Help é uma janela, que se pode abrir no LabVIEW, que fornece um pequeno resumo sobre qualquer objeto do programa. Pode-se abrir o Context Help selecionado Help>>Show Context Help ou através Ctrl+H e posionando o mouse sobre o objeto.
AC250_01/2013Cristiane Martins
2.7 Técnicas para encontrar erros (debbugging)
2.7.1 Utilização do ''Probe data'‘
Uma forma de encontrar erros é lendo os sinais em toda a VI. Para ler um sinal em um ponto específico pode-se utilizar uma ponta de prova. "Probe data'‘ que está disponível na paleta de ferramentas. Basta selecioná-lo e clicar sobre o ponto do fio que se quer conhecer o valor
2.7.2 Utilização do ''Highlight Execution'‘
Esta ferramenta permite a visualização do fluxo do sinal no diagrama de blocos.
AC250_01/2013Cristiane Martins
Vamos construir uma VI com um While Loop e um chart para aquisição e visualização de dados em tempo real.
Para tal geraremos dados randômicos e os apresentaremos sobre um chart. Um botão (knob control) sobre o painel frontal ajustará a taxa de loop entre 0 e 2 segundos e uma chave parará a VI.
Vamos seguir os dados com o ‘’Probe’’.
AC250_01/2013Cristiane Martins
2.5 Executar uma VI
1. Deixar o painel frontal ativo clicando sobre a janela ou escolhendo windows>>show front painel.2. Execute uma VI clicando ''run button'' na barra de ferramentas do painel frontal.
3. Caso deseje executar repetidamente, clique sobre o ''continuous run button''.
AC250_01/2013Cristiane Martins
2.6 Atente para as CORES
BLUE número inteiro / ORANGE número com ponto flutuanteGreen representa lógica booleanaPurple representa string
2.7 Indicadores/Controles
Somente podem ser deletados no Painel Frontal
2.8 Atente para ESPESSURA
Indicadores têm bordas finas.Controles têm bordas grossas.
AC250_01/2013Cristiane Martins
Breve Revisão – construa a VI abaixo
AC250_01/2013Cristiane Martins
Symbols
AC250_01/2013Cristiane Martins
AC250_01/2013Cristiane Martins
AC250_01/2013Cristiane Martins
Follow to Help>>Find Examples>>Switch>> Mechanical Action of Booleans
AC250_01/2013Cristiane Martins
AC250_01/2013Cristiane Martins
In LV, "latch" means the buttons holds its value until the terminal is read in the block diagram, at which time the button returns to its default state. The "switch" buttons are the ones where the button will hold its value until the user goes and hits the button again to release it back
A latch is mechanical type of a hardware that is used to join two or more objects, it is a special type of a fastener that can join surfaces together and allowing them eventually open only a little bit.
AC250_01/2013Cristiane Martins
Aula 3 - Sub VI
Esta lição mostrou como criar um ícone e terminal de ligações de tal forma que se possa utilizar uma VI como SubVI em outra VI.
Uma SubVI é análoga a uma subrotina em uma linguagem de programação baseada em texto. Utilizar SubVI simplifica o diagrama de blocos e ajuda a gerenciar modificações nas VIs.
AC250_01/2013Cristiane Martins
Ícone
1. Cada VI é representada por um ícone que aparece no canto superior direito do Painel Frontal e Diagrama de Blocos.
2. Por ''default'‘ este ícone indica o número de novas VI você abriu desde que iniciou o LabVIEW. Abra uma nova VI e observe o número indicado.
AC250_01/2013Cristiane Martins
3. Com o mouse sobre o ícone clique com a direita. Selecione Edit Icon.
Você poderá substituir o ícone “default” pelo seu através de Icon Editor. Clique com a direita sobre o ícone e selecione Edit Icon ou simplesmente sobre o ícone duplo clique com a direita.
AC250_01/2013Cristiane Martins
Para utilizar uma VI como subVI você deverá construir uma caixinha de terminais (terminal de ligações). O terminal de ligações é uma série de terminais que definem entradas e saídas da VI. Você deverá associar aos terminais do conector controles e indicadores presentes no Painel Frontal.
A seguir os passos para construção de um terminal de ligações.
AC250_01/2013Cristiane Martins
Sem conectores não é possível entrar e sair de dados através da VI
O item Show Connector mostrará o símbolo de entradas e saídas.
AC250_01/2013Cristiane Martins
Existe a liberdade para mudança de padrões de representação.
Você poderá ainda variar o arranjo espacial do padrão escolhido através de Flip Horizontal, Flip Vertical ou Rotate 90.
AC250_01/2013Cristiane Martins
Para identificar qual controle ou indicador está associado ao determinado terminal, clique no terminal. O controle ou indicador associado mostrará uma borda de seleção.
AC250_01/2013Cristiane Martins
Resumo
Uma VI no interior de outra VI é denominado SubVI.
Para utilizar uma VI como SubVI, você deverá necessariamente construir um ícone e terminal de ligações.
Utilize Icon Editor para criar seu próprio ícone.
O terminal de ligações é um conjunto de terminais que correspondem a controles e indicadores no Painel Frontal da VI. Defina a conexão por associar controle ou indicadores do Painel Frontal a conectores da caixa de terminais.
AC250_01/2013Cristiane Martins
Após construir VI e criar ícone e terminal de ligações, você poderá utilizá-la como subVI.
Será mostrado:- Adicionar uma SubVI no Diagrama de Blocos de outra VI.-Abrir uma subVI a partir de uma VI.-Especificar quais conexões são exigidas, recomendadas ou opcionais.
AC250_01/2013Cristiane Martins
Para inserir uma subVI no Diagrama de Blocos de uma VI, clique Select a VI na paleta Functions.
AC250_01/2013Cristiane Martins
Duplo click na VI que você quer utilizar como subVI.
AC250_01/2013Cristiane Martins
O ícone da VI aparecerá. Posicione no Diagrama de Blocos.
AC250_01/2013Cristiane Martins
Você pode abrir e editar uma subVI.
Qualquer modificação que fizer afetará somente a VI em andamento até que você salve a subVI. Quando salvar as variações afetarão todas as VIs que utilizam esta subVI, não somente a atual.
AC250_01/2013Cristiane Martins
New VI Library
AC250_01/2013Cristiane Martins
Salve as >>New VI Library
AC250_01/2013Cristiane Martins
Nomeie a Library e clique VI library
AC250_01/2013Cristiane Martins
Para adicionar qualquer VI Save as>>path
AC250_01/2013Cristiane Martins
AC250_01/2013Cristiane Martins
Adding VIs and Controls to the User Library and the Instrument Library
The simplest method for adding VIs and controls to the Controls and Functions palettes is to save them in the labview\user.lib directory.
Find the directory on your machine (your path may differ)
When you restart LabVIEW, the Functions>>Express User Libraries and Controls>>Express User Controls palettes contain subpalettes for each directory, VI library (.llb), or menu (.mnu) file in the labview\user.lib directory, and icons for each file in the labview\user.lib directory. After you add files to or remove files from specific directories, LabVIEW automatically updates the palettes when you restart LabVIEW.
"C:\Program Files\National Instruments\LabVIEW 7.1 \user.lib"
AC250_01/2013Cristiane Martins
Formula Node Ciclo For, For Loop Ciclo While, While Loop Shift Registers
AC250_01/2013Cristiane Martins
AC250_01/2013Cristiane Martins
AC250_01/2013Cristiane Martins
contém o número atualizado de iterações finalizadas, 0 na 1a, 1 na 2a e etc..
AC250_01/2013Cristiane Martins
Ciclo For
Executa o subdiagrama n vezes, até que o valor se iguale ao valor do terminal contador;
O terminal contador pode ser explicitamente ajustado ou através auto-indexing;
O terminal do contador está localizado internamente tal que pode ser acessado no interior do loop;
AC250_01/2013Cristiane Martins
Formula Node para cálculo de duas equações e o resultado no gráfico.
Functions>>Structures>> Formula NodeFunctions>>Structures>> Loop ForFunctions>>Array>>Build ArrayControls>> Graph>> Waveform Graph
Y1 = x3 – x2 + 5Y2 = mx + b
AC250_01/2013Cristiane Martins
Plote a equação y = f(x)^3 + f(x),
onde f(x) = tanh(x) + cos(x).
AC250_01/2013Cristiane Martins
AC250_01/2013Cristiane Martins
AC250_01/2013Cristiane Martins
psuedo code
for i = 0 to 199x = i /15a = tanh(x) + cos(x)y = a^3 + aarray [i] = ynext iGraph (array)
AC250_01/2013Cristiane Martins
AC250_01/2013Cristiane Martins
Ciclo While
LabVIEW checa o terminal de condição ao final de cada iteração.
se o valor é TRUE
ocorre outra iteração (Continue if True)
ou pára caso esteja em (Stop if True)
Execução do subdiagrama (loop) depende do terminal de condição.
Desta forma, o loop será executado no mínimo uma vez;
AC250_01/2013Cristiane Martins
Functions>>Structures>> While LoopFunctions>>Structures>> Case Functions>>Time&Dialog>>One Button Dialog
AC250_01/2013Cristiane Martins
AC250_01/2013Cristiane Martins
Caso vc coloque o terminal de controle da Booleana fora do Loop um Loop infinito será criado.Se valor do Control for ‘True’ na partida, mesmo que vc varie para FALSE no Painel Frontal não parará a execução do Loop, isto ocorre porque este valor não é propagado até que o Loop pare e a VI seja reiniciada.
Solução: Para abortar a VI utilize o STOP
AC250_01/2013Cristiane Martins
For Loop e While Loop podem indexar e criar arrays em suas fronteiras automaticamente. Esta capacidade é chamada “auto-indexing”.
AC250_01/2013Cristiane Martins
auto – indexing Para habilitar ou não o auto-indexing no túnel do Loop, você deverá pop up no túnel e escolher Enable Indexing ou Desable Indexing.
AC250_01/2013Cristiane Martins
Control>>Graph>> XY GraphFunctions>>Structures>> For Loop Functions>>Numeric>> Random Number (0-1)Functions >> Time & Dialog >> Wait (ms)Functions >> Cluster >> Bundle
AC250_01/2013Cristiane Martins
Control>>Graph>> XY GraphFunctions>>Structures>> For Loop Functions>>Numeric>> Random Number (0-1)Functions >> Time & Dialog >> Wait (ms)Functions >> Cluster >> Bundle
AC250_01/2013Cristiane Martins
AC250_01/2013Cristiane Martins
Shift Register
Click com direita do mouse na borda da estrutura
AC250_01/2013Cristiane Martins
Média aleatória – Shift Register
AC250_01/2013Cristiane Martins
AC250_01/2013Cristiane Martins
Shift Registers estão disponíveis em For Loop e While Loop, são variáveis locais que transferem valores do final de uma iteração para o começo de outra.
AC250_01/2013Cristiane Martins
Shift Register - exemplo
Functions>>Structures>> While Loop Functions>>Numeric>> Random Number Functions>>Array>>Build Array Functions>>Numeric>> Multiply Functions>>Mathematics>> Probability
and Statistics >> Mean.VI
AC250_01/2013Cristiane Martins
Shift Register – ex. (cont)
AC250_01/2013Cristiane Martins
Para inicializar o shift register, conecte um valor fora do loop no terminal a esquerda. Caso vc não inicialize o registrador, o loop usará como valor inicial o último valor inserido no registrador quando o loop executou pela última vez, ou o default para este tipo de dado se o loop ainda não foi executado nenhuma vez.
Solução: Sempre inicialize o Shift Register para assegurar comportamento consistente.
AC250_01/2013Cristiane Martins
Construa uma VI com um While Loop que compare dois números e mostre o valor de máximo até que o valor seja igual a 100.