AC250_01/2013 Cristiane Martins AQUISIÇÃO DE DADOS / LABVIEW BÁSICO Semana 5

Preview:

Citation preview

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.

Recommended