Introdução ao Labview Parte IIvalner.brusamarello/inst/labview2.pdf · Introdução ao Labview...

71
Introdução ao Labview Parte II Prof. Dr.Valner J. Brusamarello – DELET – UFRGS www.chasqueweb.ufrgs.br/~valner.brusamarello

Transcript of Introdução ao Labview Parte IIvalner.brusamarello/inst/labview2.pdf · Introdução ao Labview...

Page 1: Introdução ao Labview Parte IIvalner.brusamarello/inst/labview2.pdf · Introdução ao Labview Parte II Prof. Dr.Valner J. Brusamarello ... array 1D ou 2D de números com precisão

Introdução ao LabviewParte II

Prof. Dr.Valner J. Brusamarello – DELET – UFRGSwww.chasqueweb.ufrgs.br/~valner.brusamarello

Page 2: Introdução ao Labview Parte IIvalner.brusamarello/inst/labview2.pdf · Introdução ao Labview Parte II Prof. Dr.Valner J. Brusamarello ... array 1D ou 2D de números com precisão

Acesso a arquivos de dados

• Acesso a arquivos - High Level: Estas funçoes fornecem um elevado grau de abstraçao ao usuário. Os arquivos são abertos e fechados automaticamente em uma operaçao transparente aousuário:

• Escreve em (spreadsheet file) arquivo tipo tabela - Converte um array 1D ou 2D de números com precisão simples para ums string de texto e escreve essa string em um novo arquivo ASCII ouadiciona a string em um arquivo existente.

• Lê de um arquivo (spreadsheet file) tipo tabela – Lê um específiconúmero de linhas ou colunas desde o início de um arquivo textonumérico e converte os dados para um array 2D de dados.

• Escreve em um arquivo de Medidas - Express VI que escrevedados em um arquivo de medidas (.lvm) de texto ou binário (tdm).

• Lê de um arquivo de medidas – Um Express VI que lê de um arquivo de medidas (.lvm) ou (tdm)

Page 3: Introdução ao Labview Parte IIvalner.brusamarello/inst/labview2.pdf · Introdução ao Labview Parte II Prof. Dr.Valner J. Brusamarello ... array 1D ou 2D de números com precisão

Acesso a arquivos de dados: faça estes pequenos programas:

Page 4: Introdução ao Labview Parte IIvalner.brusamarello/inst/labview2.pdf · Introdução ao Labview Parte II Prof. Dr.Valner J. Brusamarello ... array 1D ou 2D de números com precisão

Modelo genérico de acesso a arquivos

Page 5: Introdução ao Labview Parte IIvalner.brusamarello/inst/labview2.pdf · Introdução ao Labview Parte II Prof. Dr.Valner J. Brusamarello ... array 1D ou 2D de números com precisão

Acesso a arquivos

• Use os I/O VIs de arquivos e funções para abrire fechar arquivos, ler e escrever, criar diretório(além de outras funçoes – pesquise com o help).

• Use os high-level I/O VIs de arquivos para fazeroperaçoões comuns como leitura e escrita de diferentes tipos de dados.

• Use low-level I/O VIs de arquivos e funçõesavançadas para controlar operações individuaisde arquivos.

Page 6: Introdução ao Labview Parte IIvalner.brusamarello/inst/labview2.pdf · Introdução ao Labview Parte II Prof. Dr.Valner J. Brusamarello ... array 1D ou 2D de números com precisão

Formato spreadsheet

• Trata-se de arquivos ASCII com certa formatação.

• Usualmente utilizam TAB entre colunas e END OF LINE entre linhas

• O LABview possui Vis que executam essas funções ou concatenam strings

Page 7: Introdução ao Labview Parte IIvalner.brusamarello/inst/labview2.pdf · Introdução ao Labview Parte II Prof. Dr.Valner J. Brusamarello ... array 1D ou 2D de números com precisão

Formato spreadsheet

• Write to Spreadsheet File – Pega array 1D ou 2D de dados numéricos, formata esses dados e escreve em um arquivo.

• Format Into File – Pega diferentes tipos de dados (string, numeric, Boolean) e escreve essa informação em um arquivo, utilizando um caminho (path). Estafunção pode incluir vários terminais de dados se necessário.

• Array to Spreadsheet String – é uma funçao que formata um array de dados em uma string que pode ser escrita em um arquivo de dados.

• Concatenate String – Função utilizada para criar estrings longos a partir de strings curtos pré-existentes.

Page 8: Introdução ao Labview Parte IIvalner.brusamarello/inst/labview2.pdf · Introdução ao Labview Parte II Prof. Dr.Valner J. Brusamarello ... array 1D ou 2D de números com precisão

Utilizando os controles• Waveform charts: um único ponto por vez.

Page 9: Introdução ao Labview Parte IIvalner.brusamarello/inst/labview2.pdf · Introdução ao Labview Parte II Prof. Dr.Valner J. Brusamarello ... array 1D ou 2D de números com precisão

Utilizando os controles

• Waveform graph: ‘vários pontos de uma única vez.

Page 10: Introdução ao Labview Parte IIvalner.brusamarello/inst/labview2.pdf · Introdução ao Labview Parte II Prof. Dr.Valner J. Brusamarello ... array 1D ou 2D de números com precisão

Utilizando os controles

• Graphs também permitem a criaçao de gráficos de alta qualidade (paraartigos) com a funçao “export simplified image” . Botão direito no gráfico , selecione Data Operations»Export Simplified Image…

Page 11: Introdução ao Labview Parte IIvalner.brusamarello/inst/labview2.pdf · Introdução ao Labview Parte II Prof. Dr.Valner J. Brusamarello ... array 1D ou 2D de números com precisão

Exercício 5

• Crie um VI que Create a VI que produzum seno com uma freqência específica.

• Mostre os dados em um Waveform Chart até ser parado pelo usuário.

• Utilize o Simulate Signal Express VI• Utilize o Tone Measurements Express

VI (Express»Signal Analysis»ToneMeasurements).

• Crie indicadores para a frequência e a amplitude

• Adicione controles de amplitude e frequência no simulador

Page 12: Introdução ao Labview Parte IIvalner.brusamarello/inst/labview2.pdf · Introdução ao Labview Parte II Prof. Dr.Valner J. Brusamarello ... array 1D ou 2D de números com precisão

Exercício 6 - Escrita em arquivo Spreadsheet

• Selecione File I/O » Open/Create/Replace File. • Botão direito no terminal da funçao Open/Create/Replace File e selecione Create » Constant. Selecione

open or create. • Adicione um laço While loop da paleta Structures. • Coloque a funçao Write Text File function dentro do laço While. Botão direito no diagrama de blocos e

selecione File I/O » Write To Text File. • Ligue o terminal refnum da funçao Open/Create/Replace File ao terminal da funçao Write Text File.• Ligue o terminal error da funçao Open/Create/Replace File a entrada de erro da funçao Write Text File. • Coloque uma funçao Array to Spreadsheet String dentro do while loop e para a esquerda da funçao

Open/Create/Replace File function. Botão direito no diagrama de blocos e selecione String » Array to Spreadsheet String.

• Botão direito no terminal format strin da funçao Array to Spreadsheet e selecione Create » Constant e entre com “%0.4f” no formato da string.

• Coloque uma funçao Build Array. Botão direito no diagrama de blocos e selecione Array » Build Array.• Coloque um número aleatório dentro do laço While. Botão direito no diagrama de blocos e selecione

Numeric » Random Number (0-1). • Ligue o terminar error out da funçao Write Text File para uma saída do laço.• Botão direito no diagrama de blocos para selecionar Cluster & Variant » Unbundle By Name.• Ligue a saída error out da funçao Write Text File a funçao Unbundle By Name. • Abra a apaleta de funçao e selecione Boolean » Or. • Mude para o front panel e coloque um botão stop button. • No diagrama de blocos, ligue o elemento de status do error cluster a entrada x da funçao Or.• Ligue o botão sop a entrada y. • Ligue a saída da funçao Or ao terminal condicional da laço While.

Page 13: Introdução ao Labview Parte IIvalner.brusamarello/inst/labview2.pdf · Introdução ao Labview Parte II Prof. Dr.Valner J. Brusamarello ... array 1D ou 2D de números com precisão

Exercício 6 - Escrita em arquivo Spreadsheet

• Adicione uma funçao Close File na direita do laçoWhile. File I/O »Close File.

• Ligue a saída refnum output tunnel ao terminal de entradarefnuminput da funçao Close File.

• Ligue a saída error output tunnel ao terminal error in da funçaoClose File.

• Rode o VI. Você verá a mensagem “Choose or enter path of file to open”, entre: “spreadsheet.xls”.

Page 14: Introdução ao Labview Parte IIvalner.brusamarello/inst/labview2.pdf · Introdução ao Labview Parte II Prof. Dr.Valner J. Brusamarello ... array 1D ou 2D de números com precisão

• SEQÜÊNCIASFlat sequenceStacked sequence

• LAÇOSCaseWhileForVariáveis LocaisShift RegisterFeedback Nodes

Alguns recursos de programação

Page 15: Introdução ao Labview Parte IIvalner.brusamarello/inst/labview2.pdf · Introdução ao Labview Parte II Prof. Dr.Valner J. Brusamarello ... array 1D ou 2D de números com precisão

Flat Sequence

Diagrama de Blocos»Functions Palette»Structures»Flat Sequence

Área selecionada

Flat sequencia criada

Page 16: Introdução ao Labview Parte IIvalner.brusamarello/inst/labview2.pdf · Introdução ao Labview Parte II Prof. Dr.Valner J. Brusamarello ... array 1D ou 2D de números com precisão

Flat Sequence

• Consiste de um ou mais subdiagramas, ou frames, que são executadas sequencialmente.

• Clique com o botão direito na borda da estrutura para adicionar e deletar frames.

• Use a estrutura Flat Sequence para garantir que um subdiagrama execute antes ou depois de outro subdiagrama.

• Os frames em uma estrutura Flat Sequence são executados da esquerda para a direita e quando todos os valores ligados ao frame estão disponíveis.

• Os dados saem do frame quando a execuçao do mesmo estiver concluída.

Page 17: Introdução ao Labview Parte IIvalner.brusamarello/inst/labview2.pdf · Introdução ao Labview Parte II Prof. Dr.Valner J. Brusamarello ... array 1D ou 2D de números com precisão

Stacked Sequence: Similar a flat sequence, porém “frames empilhados”

Diagrama de Blocos»Functions Palette»Structures»Stacked Sequence

Área selecionada Stacked sequence criada

Page 18: Introdução ao Labview Parte IIvalner.brusamarello/inst/labview2.pdf · Introdução ao Labview Parte II Prof. Dr.Valner J. Brusamarello ... array 1D ou 2D de números com precisão

Stacked Sequence

Próximo quadro – Botão direito do mouse» Add Frame After

Quadro seguinte criado

Page 19: Introdução ao Labview Parte IIvalner.brusamarello/inst/labview2.pdf · Introdução ao Labview Parte II Prof. Dr.Valner J. Brusamarello ... array 1D ou 2D de números com precisão

Case Structure

Diagrama de Blocos»Functions Palette»Structures»Case Structure

Page 20: Introdução ao Labview Parte IIvalner.brusamarello/inst/labview2.pdf · Introdução ao Labview Parte II Prof. Dr.Valner J. Brusamarello ... array 1D ou 2D de números com precisão

Case Structure

Case Case BooleanoBooleano::

Page 21: Introdução ao Labview Parte IIvalner.brusamarello/inst/labview2.pdf · Introdução ao Labview Parte II Prof. Dr.Valner J. Brusamarello ... array 1D ou 2D de números com precisão

Case Structure

Menu superior daestrutura alterna osestados.

Apenas um “Case” évisível por vez.

Page 22: Introdução ao Labview Parte IIvalner.brusamarello/inst/labview2.pdf · Introdução ao Labview Parte II Prof. Dr.Valner J. Brusamarello ... array 1D ou 2D de números com precisão

Cases Booleanos e Numéricos

É necessário conectar todas as possibilidades do case se for utilizado um Tunnel

Page 23: Introdução ao Labview Parte IIvalner.brusamarello/inst/labview2.pdf · Introdução ao Labview Parte II Prof. Dr.Valner J. Brusamarello ... array 1D ou 2D de números com precisão

Laço WHILE : implemente e analise com a ferramenta debugg o código abaixo

• O laço WHILE executa determinado código ENQUANTO uma condição for satisfeita.

• Analogia: WHILE em C X WHILE em G (Labview):

x = 0; while (x < 3) { x++; }

Page 24: Introdução ao Labview Parte IIvalner.brusamarello/inst/labview2.pdf · Introdução ao Labview Parte II Prof. Dr.Valner J. Brusamarello ... array 1D ou 2D de números com precisão

Adicionando o WHILE

1. Selecione o Laço While

2. Arraste o Mouse para “desenhá-lo” em torno do código desejado

Page 25: Introdução ao Labview Parte IIvalner.brusamarello/inst/labview2.pdf · Introdução ao Labview Parte II Prof. Dr.Valner J. Brusamarello ... array 1D ou 2D de números com precisão

Tipos de Condição do WHILE: Implemente os dois

códigos e analise-os com a ferramenta debugg

STOP IF TRUE

Condição de Parada

Contador De

Iterações

CONTINUE IF TRUE

Condição de Parada

Page 26: Introdução ao Labview Parte IIvalner.brusamarello/inst/labview2.pdf · Introdução ao Labview Parte II Prof. Dr.Valner J. Brusamarello ... array 1D ou 2D de números com precisão

Exercício laço while: entenda o código e os blocos envolvidos

Page 27: Introdução ao Labview Parte IIvalner.brusamarello/inst/labview2.pdf · Introdução ao Labview Parte II Prof. Dr.Valner J. Brusamarello ... array 1D ou 2D de números com precisão

Laço FOR

• O laço FOR executa um código um número N de vezes• Analogia: FOR em C X FOR em G (Labview)

for (x=0; x++; x<100){ CÓDIGO}

No LabVIEW a estrutura de repetição FOR funciona de maneira parecida, porém o código deve estar dentro de uma estrutura denominada subdiagrama (For Loop: executa N vezes o que está no interior do loop e i é o índice que varia de 0 até N-1).

Page 28: Introdução ao Labview Parte IIvalner.brusamarello/inst/labview2.pdf · Introdução ao Labview Parte II Prof. Dr.Valner J. Brusamarello ... array 1D ou 2D de números com precisão

Adicionando o FOR

1. Selecione o Laço FOR

2. Arraste o Mouse para “desenhá-lo” em torno do código desejado

Page 29: Introdução ao Labview Parte IIvalner.brusamarello/inst/labview2.pdf · Introdução ao Labview Parte II Prof. Dr.Valner J. Brusamarello ... array 1D ou 2D de números com precisão

Inserindo um Delay em um Laço: implemente o código e analise-o com a ferramenta debugg

*Delay em ms

Page 30: Introdução ao Labview Parte IIvalner.brusamarello/inst/labview2.pdf · Introdução ao Labview Parte II Prof. Dr.Valner J. Brusamarello ... array 1D ou 2D de números com precisão

Cronometrando um Programa: implemente o código abaixo

Tempo = Tinicial - Tfinal

Page 31: Introdução ao Labview Parte IIvalner.brusamarello/inst/labview2.pdf · Introdução ao Labview Parte II Prof. Dr.Valner J. Brusamarello ... array 1D ou 2D de números com precisão

Fórmula Node

• Executa as funções no interior do quadro• Principais funções:• abs(x), acos(x), acosh(x), ..., cos(x), sin(x), exp(x),

gamma(x), int(x), ln(x), log(x), log2(x), max(x,y), min(x,y), mod(x,y), pow(x,y), rand(), sqrt(x), entre outras.

• Principais operadores:• ** (exponenciação), +, -, ++, -- (pré-pós-incremento-

decremento), ! (negação lógica), ~ (complemento de bits), *, /, %, +, -

• >>, << (deslocamentos)• <, >, >=, <=, !=, == (comparações)• &, ^, |, &&, || (operações lógicas)

Page 32: Introdução ao Labview Parte IIvalner.brusamarello/inst/labview2.pdf · Introdução ao Labview Parte II Prof. Dr.Valner J. Brusamarello ... array 1D ou 2D de números com precisão

Fórmula Node: implemente o VI abaixo

Page 33: Introdução ao Labview Parte IIvalner.brusamarello/inst/labview2.pdf · Introdução ao Labview Parte II Prof. Dr.Valner J. Brusamarello ... array 1D ou 2D de números com precisão

Select: implemente o VI abaixo

• Select • Retorna o valor ligado

na entrada t ou f, dependendo do valor de s. Se s é V,afunçao retorna o valor de t. Se s é F, retornao valor de f.

Page 34: Introdução ao Labview Parte IIvalner.brusamarello/inst/labview2.pdf · Introdução ao Labview Parte II Prof. Dr.Valner J. Brusamarello ... array 1D ou 2D de números com precisão

Exercício 7 - Loop while

• gerar um número aleatório entre 0 e 1 mediante a função Functions, Numeric, RandomNumber. O resultado serárepresentado mediante um gráfico no painel de controle: Control, Graph, Waveform Chart. A execução deve parar quando o usuário selecionar um botão On/Off.

Page 35: Introdução ao Labview Parte IIvalner.brusamarello/inst/labview2.pdf · Introdução ao Labview Parte II Prof. Dr.Valner J. Brusamarello ... array 1D ou 2D de números com precisão

Exercício 7 - Loop while

Page 36: Introdução ao Labview Parte IIvalner.brusamarello/inst/labview2.pdf · Introdução ao Labview Parte II Prof. Dr.Valner J. Brusamarello ... array 1D ou 2D de números com precisão

Exercício 7 - Loop while

A função tem como entrada um valor em milisegundos O valor máximo que se deseja selecionar e 10, portanto, o atraso máximo = 10 * 100ms = 1 segundo.

Page 37: Introdução ao Labview Parte IIvalner.brusamarello/inst/labview2.pdf · Introdução ao Labview Parte II Prof. Dr.Valner J. Brusamarello ... array 1D ou 2D de números com precisão

Exercício 7 - Loop while

Page 38: Introdução ao Labview Parte IIvalner.brusamarello/inst/labview2.pdf · Introdução ao Labview Parte II Prof. Dr.Valner J. Brusamarello ... array 1D ou 2D de números com precisão

Exercício 7 - Loop while

Page 39: Introdução ao Labview Parte IIvalner.brusamarello/inst/labview2.pdf · Introdução ao Labview Parte II Prof. Dr.Valner J. Brusamarello ... array 1D ou 2D de números com precisão

Exercício 7 - Loop whilePara o sistema, situaremos a função dentro de um laço whileque será executado no mínimo 1x até que a condição determinada pelo botão On/Off seja falso (no caso utilizei um botão do tipo booleano). O número de decimais que aparece no visualizador pode ser modificado mediante a propriedade associada FORMAT & PRECISION da janela ou menu contextual.

Page 40: Introdução ao Labview Parte IIvalner.brusamarello/inst/labview2.pdf · Introdução ao Labview Parte II Prof. Dr.Valner J. Brusamarello ... array 1D ou 2D de números com precisão

Exercício 8 – Repita o exercício 7 para um laço for

Page 41: Introdução ao Labview Parte IIvalner.brusamarello/inst/labview2.pdf · Introdução ao Labview Parte II Prof. Dr.Valner J. Brusamarello ... array 1D ou 2D de números com precisão

Exercício 9

• Implemente um programa, onde uma chave determina se a operação entre dois números é adiçao (V) ou subtraçao (F)

Page 42: Introdução ao Labview Parte IIvalner.brusamarello/inst/labview2.pdf · Introdução ao Labview Parte II Prof. Dr.Valner J. Brusamarello ... array 1D ou 2D de números com precisão

Exercício 10

Faça um programa em que você entra com um número de 0 a 1000. O código deve gerar aleatoriamente números variando de 0 a 1000. O software deve ter como saída, o tempo para que o número gerado coincida com o número digitado.

Page 43: Introdução ao Labview Parte IIvalner.brusamarello/inst/labview2.pdf · Introdução ao Labview Parte II Prof. Dr.Valner J. Brusamarello ... array 1D ou 2D de números com precisão

Construindo arrays com loops

• Laços For e While podem indexar e acumular arrays. Isto é conhecidocomo auto-indexação.

• O ponto de indexaçao é chamado de túnel.

• O laço For, por default possui auto-indexação habilitada.

• O laço While, por default possuiauto-indexação desabilitada.

• Exemplos:• Habilite auto-indexação para coletar

valores no laço e construir o array. Todos os valores são colocados emarray ao sair do loop.

• Disabilite auto-indexação se vocêestiver interessado apenas no valor final.

Page 44: Introdução ao Labview Parte IIvalner.brusamarello/inst/labview2.pdf · Introdução ao Labview Parte II Prof. Dr.Valner J. Brusamarello ... array 1D ou 2D de números com precisão

Criando um array

• Selecione um array em Controls»Modern»Array, Matrix, and Cluster palette, arrasteao front panel.

• Arraste um controle ou indicator • Você deve inserir um objeto no array antes de usá-lo no diagrama de blocos!

Page 45: Introdução ao Labview Parte IIvalner.brusamarello/inst/labview2.pdf · Introdução ao Labview Parte II Prof. Dr.Valner J. Brusamarello ... array 1D ou 2D de números com precisão

Criando um array

• Para adicionar dimensões em um array, botão direito no index display e selecione Add Dimension do menu.

• 1D Array Single Element:

• 1D Array Multiple Elements:

• 2D Array Single Element:

• 2D Array Multiple Elements:

Page 46: Introdução ao Labview Parte IIvalner.brusamarello/inst/labview2.pdf · Introdução ao Labview Parte II Prof. Dr.Valner J. Brusamarello ... array 1D ou 2D de números com precisão

Criando um array

Page 47: Introdução ao Labview Parte IIvalner.brusamarello/inst/labview2.pdf · Introdução ao Labview Parte II Prof. Dr.Valner J. Brusamarello ... array 1D ou 2D de números com precisão

Time delay e loops temporizados

• O Time Delay Express VI atrasa a execução por um específico número de ms. O laço while não vai executar a iteração até que todas as tarefas no seu interior estiverem completas.

• Use o Loop temporizado quando você quiser desenvolver VIs com características dinâmicas de temporização, ou em situações diversas.

• Duplo-click no nó de entrada e selecione Configure Timed Loop para mostrar a tela de configuração.

• Wait Until Next ms Multiple: espera até que o valor de um timer (ms) se torne um determinadomúltiplo de um valor em ms.

• Use esta função para sincronizar atividades• Functions»Programming»Timing»Wait Until Next ms Multiple

Page 48: Introdução ao Labview Parte IIvalner.brusamarello/inst/labview2.pdf · Introdução ao Labview Parte II Prof. Dr.Valner J. Brusamarello ... array 1D ou 2D de números com precisão

Exercício 11

• Abra o exercício 5 e salve-o com o nome de exercício 11 • Remova o laço While Loop (clique na borda do laço). Remova também o botão stop. • Substitua o waveform chart por um waveform graph (

Replace»Modern»Graph»Waveform Graph).• Clique com o botão direito no gráfico e selecione Visible Items»Cursor Legend. • Setar dois cursores (free cursor)• Mude o valor máximo da “Frequency In” no dial para 100.• Ajuste um valor default –botão direito - selecione Data Operations»Make Current

Value Default.• Rode o VI e observe o sinal no gráfico. Se você não ver o sinal selecione X

Scale»AutoScale X. • Mude a frequência do sinal. • Manualmente meça a frequência e a amplitude do sinal no gráfico usando

cursoreshe signal on the graph using cursors. Para fazer os cursores aparecerem natela, clique em um dos três botões na legenda. Uma vez que os cursores sãomostrados você pode arrastá-los e suas coordenadas aparecem nas legendas do cursor.

Page 49: Introdução ao Labview Parte IIvalner.brusamarello/inst/labview2.pdf · Introdução ao Labview Parte II Prof. Dr.Valner J. Brusamarello ... array 1D ou 2D de números com precisão

Exercício 12

Construir uma matriz que armazenará 100 dados. Primeiro inserir no painel frontal um arrayControl, Array & Cluster/Array. Depois introduzir dentro de uma seqüência.

Page 50: Introdução ao Labview Parte IIvalner.brusamarello/inst/labview2.pdf · Introdução ao Labview Parte II Prof. Dr.Valner J. Brusamarello ... array 1D ou 2D de números com precisão

Matrizes

Page 51: Introdução ao Labview Parte IIvalner.brusamarello/inst/labview2.pdf · Introdução ao Labview Parte II Prof. Dr.Valner J. Brusamarello ... array 1D ou 2D de números com precisão

Matrizes

Page 52: Introdução ao Labview Parte IIvalner.brusamarello/inst/labview2.pdf · Introdução ao Labview Parte II Prof. Dr.Valner J. Brusamarello ... array 1D ou 2D de números com precisão

Matrizes

Page 53: Introdução ao Labview Parte IIvalner.brusamarello/inst/labview2.pdf · Introdução ao Labview Parte II Prof. Dr.Valner J. Brusamarello ... array 1D ou 2D de números com precisão

Mathscript Node

• Depois da versão 8, é possível combinar a linguagem do labview com outras ferramentas através de uma espécie de nó de scripts chamado de mathscript.

• O próprio LabVIEW possui um modo texto nativo: MathScript node, Formula node

• Ainda pode Comunicar-se com outros softwares: Xmath node, MATLAB script node, Maple* node, IDL* node

• Inclusive, a comunicação pode ser feita por VI Server: Mathematica* VIs, and Mathcad* VIs

• No LabVIEW 8, pode-se combinar a programação gráfica do LabVIEW com uma linguagem textual orientada para aplicações matemáticas, geralmentecompatível com a linguagem dos scripts m-files.

Page 54: Introdução ao Labview Parte IIvalner.brusamarello/inst/labview2.pdf · Introdução ao Labview Parte II Prof. Dr.Valner J. Brusamarello ... array 1D ou 2D de números com precisão

Mathscript Node

• Implemente o programa abaixo• Explore o bloco com o help• Programming»Structures• Para adicionar variáveis, botão direito e escolha Add Input ou Add Output.• Nomes de variáveis como usadas na formula. • Cada linha deve terminar com um ponto-vírgula.• Pode-se importar ou exporta m-files clicando no nó.

Page 55: Introdução ao Labview Parte IIvalner.brusamarello/inst/labview2.pdf · Introdução ao Labview Parte II Prof. Dr.Valner J. Brusamarello ... array 1D ou 2D de números com precisão

Mathscript window

• A MathScript Window é um ambiente interativo onde as equações podem ser prototipadas e os cálculos podemser feitos

• A MathScript Window e o MathScript Node utilizam a mesma sintaxe e variáveis globais.

• O painel de dados possibilita uma maneira rápida de analisar as variáveis como números, graficamente, ouaté ecutá-los (com a placa de som)

• Acesse o mathscript dentro do labview no menu tools.• Digite help na janela de comando para uma introduçao.• Tema de casa: explore essa ferramenta.

Page 56: Introdução ao Labview Parte IIvalner.brusamarello/inst/labview2.pdf · Introdução ao Labview Parte II Prof. Dr.Valner J. Brusamarello ... array 1D ou 2D de números com precisão

Mathscript window

Page 57: Introdução ao Labview Parte IIvalner.brusamarello/inst/labview2.pdf · Introdução ao Labview Parte II Prof. Dr.Valner J. Brusamarello ... array 1D ou 2D de números com precisão

Rode o seguinte scripti_menos=0;R=1;L=0.001;E=1delta_t=0.00001;i_array = [];for t = 0 : 0.1: 50,%for t = 0 : 50

i_mais=i_menos*(1-(R/L)*delta_t)+E*delta_t/L;

i_array = [i_array; i_mais];i_menos=i_mais;

endt = 0 : 0.1 : 50;figure;plot(t, i_array, 'r-');xlabel('time');ylabel('corrente (A)')

Page 58: Introdução ao Labview Parte IIvalner.brusamarello/inst/labview2.pdf · Introdução ao Labview Parte II Prof. Dr.Valner J. Brusamarello ... array 1D ou 2D de números com precisão

Exercício 13

• Create um VI que utiliza o MathScript Node para alterar um sinal simulado e mostre em um gráfico.

• Use o MathScript Window para ver e alterar os dados e então carregue novamente o script criadono MathScript Node.

• Abra o arquivo do exercício 11 onde foi feita uma análise manual.• Salve o VI com um novo nome – exercicio11.vi.• No diagrama de blocos delete a conexão do sinal simulado a Waveform Graph.• Coloque um MathScript Node (Programming»Structures»MathScript Node).• Botão direito na borda esquerda do MathScript Node - selecione Add Input. De um nome a essa

entrada - In.• Botão direito na borda direita do MathScript Node e selecione Add Output. Dê um nome a essa

saída -Out.• Converta o Dynamic Data Type da saída do VI Simulate Signals para 1D Array de Scalars para

entrar no MathScript Node. (Express»Signal Manipulation»Convert from Dynamic Data). • Ligue a saída do seno do VI do sinal simulado para a entrada do VI Convert from Dynamic Data.• Ligue a saída do array do VI Convert from Dynamic Data VI na entrada “In” do MathScript Node. • Para usar os dados do Simulate Signal VI no MathScript Window é necessário declarar a variável

de entrada como global. Dentro do MathScript Node digite “global In;”.• Retorne ao front panel e aumente a frequencia para um valor entre 50 e 100. Rode o VI.• Abra o MathScript Window (Tools»MathScript Window…).• No MathScript Window, na janela de comandos digite “global In”e pressione “Enter”. Isso

permitirá ver os dados passados a variável In no MathScript Node.

Page 59: Introdução ao Labview Parte IIvalner.brusamarello/inst/labview2.pdf · Introdução ao Labview Parte II Prof. Dr.Valner J. Brusamarello ... array 1D ou 2D de números com precisão

Exercício 13

Page 60: Introdução ao Labview Parte IIvalner.brusamarello/inst/labview2.pdf · Introdução ao Labview Parte II Prof. Dr.Valner J. Brusamarello ... array 1D ou 2D de números com precisão

Exercício 13

Use a paleta do gráfico parafazer zoom nos dados.

Botão direito no “Cursor 1” e selecione Bring to Center.

Explore algumas funçoesdo gráfico.

Page 61: Introdução ao Labview Parte IIvalner.brusamarello/inst/labview2.pdf · Introdução ao Labview Parte II Prof. Dr.Valner J. Brusamarello ... array 1D ou 2D de números com precisão

Exercício 13• Multiplique os dados por uma função exponencial decrescente:• a. Crie um array de 100 elementos de dados que constituem uma

rampa indo de 0.01 a 5 digitando “Array = [0.01:0.05:5];”• Na janela de comando pressione Enter.• b. Crie um array contendo uma exponencial decrescente. Digite “Exp

= 5*exp(-Array);” e pressione Enter.• c. Agora multiplique o Exp e o array In, elemento por elemento

digitando “Out = In.*Exp;” e pressione Enter.• d. Veja no gráfico a variável “Out”.• Vá até a aba History e use Ctrl-click para escolher os 4 comandos que você

entrou. Copie estes comandos usando <Ctrl-C>.• Na aba Script tab, faça o paste dos comandos no Script Editor usando <Ctrl-

V>.• Salve seu script clicando “Save” na base da janela. Salve como “myscript.txt”• Feche a MathScript Window.• Retorne ao diagrama de blocos e carregue o script que você acabou de

digitarcom um clique do bo^~ao direito na borda do MathScript Node e selecione selecting Import… Navegue até myscript.txt, selecione-o , e clique “OK”.

• Botão direito na variável “Out” e selecione Data Type»1D-Array»DBL 1D. O tipo da saída de dados deve ser ajustada manualmente no MathScript Node.

• Ligue a variável “Out” ao Waveform Graph e Retorne ao front panel e rode o VI.

Page 62: Introdução ao Labview Parte IIvalner.brusamarello/inst/labview2.pdf · Introdução ao Labview Parte II Prof. Dr.Valner J. Brusamarello ... array 1D ou 2D de números com precisão

Exercício 13

Page 63: Introdução ao Labview Parte IIvalner.brusamarello/inst/labview2.pdf · Introdução ao Labview Parte II Prof. Dr.Valner J. Brusamarello ... array 1D ou 2D de números com precisão

Extras:

• Array exercise.vi:Gera um array e controla o acesso dos seus dados colocando-os em um indicador

Page 64: Introdução ao Labview Parte IIvalner.brusamarello/inst/labview2.pdf · Introdução ao Labview Parte II Prof. Dr.Valner J. Brusamarello ... array 1D ou 2D de números com precisão

Extras• Calculator.vi: um case para selecionar uma de

quatro operaçoes, mostrando 1 resultado.

Page 65: Introdução ao Labview Parte IIvalner.brusamarello/inst/labview2.pdf · Introdução ao Labview Parte II Prof. Dr.Valner J. Brusamarello ... array 1D ou 2D de números com precisão

Extract 2D array

• Compõe e extrai um array 2D:

Page 66: Introdução ao Labview Parte IIvalner.brusamarello/inst/labview2.pdf · Introdução ao Labview Parte II Prof. Dr.Valner J. Brusamarello ... array 1D ou 2D de números com precisão

Leitura de arquivo

• Rode o Vi e procure entendê-lo

Page 67: Introdução ao Labview Parte IIvalner.brusamarello/inst/labview2.pdf · Introdução ao Labview Parte II Prof. Dr.Valner J. Brusamarello ... array 1D ou 2D de números com precisão

Escrita de arquivo

• Rode o Vi e procure entendê-lo

Page 68: Introdução ao Labview Parte IIvalner.brusamarello/inst/labview2.pdf · Introdução ao Labview Parte II Prof. Dr.Valner J. Brusamarello ... array 1D ou 2D de números com precisão

Extras

• Manipulação de arquivo texto. Entenda a funçaodo VI ao lado.

Page 69: Introdução ao Labview Parte IIvalner.brusamarello/inst/labview2.pdf · Introdução ao Labview Parte II Prof. Dr.Valner J. Brusamarello ... array 1D ou 2D de números com precisão

Extras

• Substitua o bloco DAQ por um sinal simulado somado a um sinal aleatório. Implemente e entenda o VI.

Page 70: Introdução ao Labview Parte IIvalner.brusamarello/inst/labview2.pdf · Introdução ao Labview Parte II Prof. Dr.Valner J. Brusamarello ... array 1D ou 2D de números com precisão

Extras

• Implemente e entenda o VI a seguir

Page 71: Introdução ao Labview Parte IIvalner.brusamarello/inst/labview2.pdf · Introdução ao Labview Parte II Prof. Dr.Valner J. Brusamarello ... array 1D ou 2D de números com precisão

Extras• Datalogger – escrita e leitura. Substitua o bloco DAQ por um simulador e

entenda o VI