Está en la página 1de 72

Realizao:

Gustavo Lambert
Jos Gregrio do Rozrio
Minicurso LabVIEW 8.2


Grupo PET Engenharia Eltrica Universidade do Estado de Santa Catarina



2
SUMRIO

1. Introduo ........................................................................................................ 3
1.1. Conhecendo o LabVIEW.......................................................................... 3
1.2. A tela de boas vindas: ............................................................................. 3
2. A interface do LabVIEW:............................................................................. 5
2.1. Os cursores:................................................................................................. 8
2.2. Configurando sua prpria paleta ......................................................... 9
2.3. Tipos de Execuo................................................................................... 10
2.4. Utilizando a ajuda do LabVIEW.............................................................. 13
3. Fluxo de dados (Data Stream) ............................................................... 15
3.1. Ligao de componentes....................................................................... 15
4. Tipos de dados.............................................................................................. 16
5. Funes bsicas............................................................................................ 18
6. Funes booleanas e portas lgicas ..................................................... 22
7. cones............................................................................................................... 22
8. SubVIs.............................................................................................................. 23
9. A estrutura Case .......................................................................................... 24
10. A funo Select............................................................................................. 26
11. Temporizao ................................................................................................ 29
12. Enum e Ring................................................................................................... 31
13. Framed Color Box........................................................................................ 32
14. Formula Node................................................................................................ 35
15. Shift Registers............................................................................................... 38
16. Arrays ............................................................................................................... 39
16.1. Criando arrays........................................................................................... 40
15.2. Paleta Array.................................................................................................... 41
17. Clusters............................................................................................................ 42
18. Grficos............................................................................................................ 43
18.1. Waveform Chart ....................................................................................... 45
18.2. Waveform Graph...................................................................................... 46
18.3. XY Graph ..................................................................................................... 46
19. Gerador de sinais......................................................................................... 47
20. Variveis Locais ............................................................................................ 49
21. Property Nodes ............................................................................................. 51
22. Mquinas de estado.................................................................................... 53
23. Arquivos de Entrada/Sada ...................................................................... 57
24. Chamadas funes em Linguagem C/C++.................................... 60
25. Aquisio de dados...................................................................................... 64
25.1. Aquisio e gerao de dados digitais............................................. 64
25.2. Aquisio e gerao de dados analgicos...................................... 69
26. Configurao do BCC32............................................................................. 71


Minicurso LabVIEW 8.2


Grupo PET Engenharia Eltrica Universidade do Estado de Santa Catarina



3
1. Introduo

Esse minicurso visa, atravs de aulas expositivas, difundir entre
os acadmicos um conhecimento bsico do ambiente de
desenvolvimento LabVIEW, da National Instruments. O curso divide-
se em aulas tericas, nas quais sero passadas as funcionalidades
dos principais componentes do software e aulas prticas. E aulas
prticas, com a utilizao de placas de aquisio de dados (DAQ),
para melhor fixar o contedo e de disponibilizar mais uma ferramenta
aos alunos.
Nesse tutorial usaremos as expresses do software em ingls,
pois torna-se problemtico para quem est aprendendo, ter que
traduzir novamente o que j estava em ingls. Sugere-se que o aluno
tenha um conhecimento bsico de programao, preferencialmente
em linguagem C.
1.1. Conhecendo o LabVIEW

A ferramenta de desenvolvimento LabVIEW (Laboratory Virtual
Instrument Engineering Workbench) foi criada h 23 anos, com o
intuito de colocar no mercado um tipo de linguagem de programao
ainda no existente at ento. Seu ambiente grfico possibilita a
programao em blocos, de acordo com o fluxo de dados primeiro a
ter o valor o primeiro a executar, diferente do tradicional
esquerda para direita, cima para baixo.

1.2. A tela de boas vindas:

O primeiro contato do usurio com o ambiente grfico a tela de
boas vindas Getting Started. Nela o usurio decide o que far,
dentre uma gama de escolhas, a saber:
- Blank VI Instrumento virtual vazio
- Empty Project Projeto vazio
- VI from template Instrumento virtual a partir de modelo
- More... Mais opes
- Uma caixa de VIs abertos recentemente
Existem outras opes para o usurio, na tela de boas vindas, porm,
com relevncia posterior. Algumas dessas opes sero tratadas
nesse texto.
Minicurso LabVIEW 8.2


Grupo PET Engenharia Eltrica Universidade do Estado de Santa Catarina



4

Ilustrao 1 - A Janela Getting Started
Minicurso LabVIEW 8.2


Grupo PET Engenharia Eltrica Universidade do Estado de Santa Catarina



5
2. A interface do LabVIEW:

VI significa, na essncia da expresso, Virtual Instrument, o
que faz jus ao seu nome, j que o que se obtm no LabVIEW so
instrumentos virtuais. o ambiente de desenvolvimento composto de
duas telas: Front Panel, onde so dispostos os controles, indicadores
e afins, e o Block Diagram, que contm a parte de programao do
VI.
O Front Panel (FP) possui uma cor cinza, com grade
quadriculada para facilitar o posicionamento dos controles. Nesse
painel colocamos os indicadores, grficos, botes e tudo que ficar
visvel ao usurio final do VI. Clicando com o boto direito do mouse
em qualquer parte do FP, em que no haja algum componente, pode-
se visualizar a Controls Palette, que uma janela flutuante contendo
todos os controles disponveis do LabVIEW e uma funo para buscar
controles externos ao programa. Pode-se verificar que os botes,
LEDs e indicadores do LabVIEW so muito parecidos com os de uma
mquina, visto que esse software busca parecer-se o mximo
possvel com o painel desse tipo de dispositivo.


Ilustrao 2 - Front Panel
Minicurso LabVIEW 8.2


Grupo PET Engenharia Eltrica Universidade do Estado de Santa Catarina



6

Ilustrao 3 - Controls Palette

Pressionando-se ctrl+e pode-se navegar do FP para o Block
Diagram (BD). Pode-se tambm ir em:

Window -> Show Block Diagram

O BD possui um fundo branco e os mesmos menus do Front
Panel.



Ilustrao 4 - Block Diagram

Minicurso LabVIEW 8.2


Grupo PET Engenharia Eltrica Universidade do Estado de Santa Catarina



7
Clicando-se com o boto direito do mouse em algum ponto
vazio abre-se a Functions Palette. Nela existem todas as funes do
LabVIEW alm da funo especial para importar uma funo externa
ao programa: um subVI, por exemplo, que ser tratado mais a
frente.


Ilustrao 5 - Functions Palette


Podemos notar que tanto a Controls Palette quanto a Functions
Palette possuem uma espcie de percevejo no canto superior
esquerdo. Esse serve para manter a paleta sempre visvel ao usurio,
mesmo que seja clicado fora da mesma. Esse percevejo chamado
pushpin.
Tambm comum s paletas o mecanismo de busca. Para
utiliz-lo basta clicar em Search (canto superior direito da paleta) e
digitar o que se quer buscar no campo de texto. O LabVIEW pode
dispor o FP e o BD lado-a-lado para facilitar a visualizao. Para fazer
isso basta clicar ctrl+t.
Minicurso LabVIEW 8.2


Grupo PET Engenharia Eltrica Universidade do Estado de Santa Catarina



8
2.1. Os cursores:

No BD ou no FP pressione shift + clique com o boto direito do
mouse em algum lugar vazio. A Tools Palette ser exibida:


Ilustrao 6 - Tools Palette

Voc tambm pode visualizar essa paleta atravs do seguinte
comando:
View -> Tools Palette
A diferena entre os comandos que abrindo a paleta pelo
menu View, consegue-se que a mesma permanea sempre visvel ao
usurio.
Na Tools Palette o usurio pode escolher qual o tipo de cursor:

Escolha automtica o LabVIEW escolhe
automaticamente qual o cursor utilizar.
Operao Muda o valor de um controle.
Posicionamento Posiciona, dimensiona e seleciona objetos.
Escrever cria um comentrio, um rtulo, edita um comentrio
ou um rtulo existente ou altera o valor literal de algum componente.
Ligao Conecta componentes (no BD).
Atalho da componente abre o popup-menu da componente
selecionada; o mesmo que clicar com o boto direito do mouse na
componente, quando a seleo automtica est ativada.
Rolagem movimenta a tela como se a estivesse arrastando.
Breakpoint insere pontos de parada (para depurao).
Ponto de prova retm o valor daquela conexo (como a ponta
.de um osciloscpio).
Recuperar cor retm a cor da componente selecionada para
utilizar na ferramenta Colorir.
Minicurso LabVIEW 8.2


Grupo PET Engenharia Eltrica Universidade do Estado de Santa Catarina



9
Colorir pinta o plano de fundo e a frente conforme as
cores selecionadas.

2.2. Configurando sua prpria paleta

O LabVIEW permite que voc configure as suas paletas
conforme a utilizao dos VIs.
Para fazer isso basta ir em:
Tools -> Advanced -> Edit Palette Set...
tanto no BD quanto no FP:
Note que voc pode editar tanto a Functions Palette quanto a
Controls Palette. Para inserir funes ou controles nas paletas faa o
seguinte:
- Entre em uma subpaleta (preferencialmente, para no poluir a
paleta principal)
- Clique com o boto direito em algum lugar vazio da sub-paleta
- V para insert
- Para inserir um subVI (espcie de sub-rotina) clique em VIs; Para
inserir uma sub-paleta clique em Subpalette
Minicurso LabVIEW 8.2


Grupo PET Engenharia Eltrica Universidade do Estado de Santa Catarina



10
2.3. Tipos de Execuo

Note a barra superior do BD, logo abaixo do menu:



Ela possui as opes para voc executar o VI de diferentes maneiras.
Da esquerda para a direita, seus significados:
Run executa o VI.
Run Continuosly executa ciclicamente o VI (ininterruptamente)
at que se clique novamente nesse boto.
Abort Execution pra a execuo do VI (no recomendado).
Pause pausa a execuo do VI. Quando pausado, retorna a
execuo do VI.
Highlight Execution exibe o fluxo de dados, bem como os valores
das ligaes, durante a execuo.
Retain Wire Values utilizado em uma ligao para recuperar o
valor da mesma durante a execuo do VI. Similar a um Watch em
IDEs.
Step into executa o VI fazendo-o entrar em um n e pra aps
isso. Esse n pode ser um subVI, ento, esse tipo de execuo pode
levar a abertura de outros VIs..
Step over executa o VI fazendo-o parar no prximo n.
Step out encerra a execuo do n atual e paralisa o VI.
Minicurso LabVIEW 8.2


Grupo PET Engenharia Eltrica Universidade do Estado de Santa Catarina



11
Exemplo: Hello World

Como um pequeno exemplo podemos mostrar o famoso Hello
World. A sada desse aplicativo fica da seguinte forma:



Essa uma caixa de dilogo que no aparece no painel frontal
mas somente no momento da execuo do VI. O diagrama de blocos
para esse aplicativo fica da seguinte forma:



Como dito, trata-se de uma caixa de dilogo com uma
mensagem para o usurio, nesse caso, Hello World. Pode-se notar
que h uma String (retngulo rosa) sendo passada como parmetro
para a funo. Essa a mensagem que ser exibida ao usurio.
Minicurso LabVIEW 8.2


Grupo PET Engenharia Eltrica Universidade do Estado de Santa Catarina



12
Tambm possvel passar como parmetro outra String, com o
texto que ser exibido no boto (ao invs do OK, padro). A caixa de
dilogo pode ser encontrada em:

Functions Palette -> Dialog & User Interface -> One Btn Dialog

Para inserir a String Hello World:
- Functions Palette -> String -> String Constant
Ligue essa String no local de entrada (do parmetro) do VI One
Btn Dialog, como indicado na figura
ou
- Clique com o boto direito no local de entrada (do parmetro)
do VI One Btn Dialog, v em Create, Constant

A prtica citada acima muito til, visto que nem sempre voc sabe
qual o tipo que deve ser ligado na entrada ou na sada. Acostume-
se a fazer o que foi exposto.
Minicurso LabVIEW 8.2


Grupo PET Engenharia Eltrica Universidade do Estado de Santa Catarina



13
2.4. Utilizando a ajuda do LabVIEW

O LabVIEW possui um mecanismo de ajuda do tipo Windows
Help. Para acess-lo basta ir em:

Help -> Search the LabVIEW Help

Ou pressionar ctrl + ?.


Ilustrao 7 - A janela de ajuda do LabVIEW


Voc pode utilizar a busca por contedo, ndice, ou pesquisa. Se
o usurio sabe qual o tipo de busca, se funo, que tipo de funo
etc, o melhor buscar por contedo ou por ndice. O mais indicado
ainda a busca por pesquisa.
Faa uma busca simples: coloque na aba pesquisa e digite
Formula Node e pressione enter ou clique em Listar Tpicos.
Alguns tpicos sero listados na lista. Clique no oitavo e observe a
pgina explicativa de um Formula Node.

Minicurso LabVIEW 8.2


Grupo PET Engenharia Eltrica Universidade do Estado de Santa Catarina



14

Ilustrao 8 - Explicao de um Formula Node


Veja que o Help d informaes sobre o funcionamento da
funo (do controle ou do subVI) bem como os parmetros e um
caminho para exemplos. A ajuda do LabVIEW tambm disponibiliza
outros dois botes: um para posicionar o Formula Node (nesse caso)
no BD ou para mostr-lo na Functions Palette (nesse caso).
Como um exerccio voc pode encontrar, atravs da ajuda do
LabVIEW ou da busca nas paletas a transformada rpida de Fourier
(FFT). Posicione-a na tela correspondente (FP ou BD). Qual das duas
telas a correta para posicionar essa transformada?

Minicurso LabVIEW 8.2


Grupo PET Engenharia Eltrica Universidade do Estado de Santa Catarina



15
3. Fluxo de dados (Data Stream)

Voc deve ter notado que o LabVIEW no uma linguagem
estruturada, ou seja, a leitura no se faz de cima para baixo. A
leitura de fluxo de dados no LabVIEW um pouco mais difcil de se
fazer. Ela ocorre da seguinte maneira: a componente que possuir
todos os dados necessrios para sua execuo, executa e o fluxo
continua at que tudo tenha sido executado.
Observe o exemplo:


Ilustrao 9 - Bloco "Soma"

A componente acima realiza a soma entre dois nmeros e
retorna o valor da mesma. Ela s pode executar se possuir dois
valores na entrada, ou seja, ela no realiza a soma antes que os dois
nmeros da entrada tenham chegado.
Existem componentes no LabVIEW que foram o fluxo conforme
o usurio o deseja. Esses componentes so Flat Sequence e Stacked
Sequence. Esses componentes sero vistos mais a frente.

3.1. Ligao de componentes

Quando o usurio dispe componentes no BD h necessidade
de se interlig-los. Essa ligao feita atravs de fios coloridos cujas
cores sero explicadas mais frente. Quando o cursor est no modo
Seleo automtica e o usurio posiciona o mouse em cima de um
local de ligao de um VI, o carretel mostrado .


Ilustrao 10 - Local para ligao de um VI


Para ligar dois componentes basta clicar no local de ligao de
um deles e (sem precisar manter o boto do mouse clicado) levar o
cursor at o outro componente e clicar no local de ligao do mesmo.


Ilustrao 11 - Ligao entre uma constante numrica inteira e um indicador
numrico de 32 bits

Minicurso LabVIEW 8.2


Grupo PET Engenharia Eltrica Universidade do Estado de Santa Catarina



16

Nota: s possvel ligar entradas em sadas e elementos do mesmo
tipo. O LabVIEW gera erro se houver tentativa de se ligar tipos
diferentes ou sadas em sadas, etc.


Ilustrao 12 - Tentativa de conexo entre duas sadas


Posicionando o cursor do mouse sobre o fio (wire) problemtico
surge um tooltip com a informao do erro. Tambm h a
possibilidade de pressionar crtl+L para listar o(s) erro(s) no VI. Se o
usurio tentar rodar o VI pressionado ctrl+R ou , o LabVIEW listar
os erros do VI. No caso, o boto Run (figura de seta) no estar
branco e inteiro mas sim quebrado e cinza: .

Dica: para remover TODOS os fios rompidos (com conexo imprpria
ou conectados a um componente) basta pressionar crtl+B. Cuidado
pois todos os fios rompidos sero removidos.

4. Tipos de dados

O LabVIEW possui um auxlio ao usurio que se mostra muito
til: ele divide por cores os tipos de dados.

Alguns tipos e suas cores, a saber:
Inteiros: azul escuro (sem tranado).
Ponto flutuante, reais e complexos: laranja.
String: rosa (com tranado).
Booleano: verde escuro (pontilhado).

No LabVIEW, como em todas as linguagens de programao,
existem arrays, que sero abordados com mais profundidade nesse
tutorial. As cores para os arrays so as mesmas que para seus tipos
fundamentais, contanto que ao invs de um fio fino ou somente um
fio daquela cor exibido um fio mais grosso (array unidimensional)
ou so exibidos fios paralelos (array multidimensional).
Para alterar um tipo de ponto flutuante para inteiro ou vice-versa
basta posicion-lo no BD (ou no FP para o caso de indicadores e
controles) e clicar com o boto direito do mouse, v a Representation
e selecione o tipo desejado. Lembre-se que economia de memria
necessrio.
Minicurso LabVIEW 8.2


Grupo PET Engenharia Eltrica Universidade do Estado de Santa Catarina



17


Ilustrao 13 - Representaes dos valores numricos, no LabVIEW


Os tipos existentes no menu acima so, conforme a linha a que
pertencem:
1- Adquire o tipo ao qual se liga. No recomendado por consumir
memria.
2- Nmeros de ponto flutuante com tamanhos variados. Seus usos
devem ser restritos por eles consumirem memria em demasia.
3- Inteiros sinalizados, ou seja, podem assumir valores negativos.
4- Inteiros no sinalizados. S podem adquirir valores positivos
5- Valores complexos (com coeficientes reais, ou seja, no inteiros)
de tamanhos variados.
Minicurso LabVIEW 8.2


Grupo PET Engenharia Eltrica Universidade do Estado de Santa Catarina



18
5. Funes bsicas

Para exibir valores no LabVIEW voc pode abrir mo de
indicadores, que se encontram na Controls Palette.

Note o FP abaixo:


Perceba que h dois controles e um indicador. Os dois controles
so: o boto de parada (Stop) e o controle numrico X (com valor 2).
O indicador o retngulo com fundo acinzentado, Y, com valor
4,71828.

Minicurso LabVIEW 8.2


Grupo PET Engenharia Eltrica Universidade do Estado de Santa Catarina



19
O respectivo BD:



Perceba que o n que realiza a soma precisa de duas entradas:
os dois nmeros a serem somados. Se voc ligar somente um
nmero entrada do somador, o VI no poder ser executado.
Note tambm que o loop precisa de uma condio de parada
(booleana). Nesse caso, o loop pra quando a condio for
verdadeira. Se voc pressionar com o boto direito do mouse sobre o
quadrado com crculo (que define a condio de parada) e clicar em
Continue if true o loop parar se a condio for falsa e o smbolo
ser substitudo por um . Clicando com o boto esquerdo do mouse
sobre o crculo vermelho produz o mesmo efeito. O i na esquerda
embaixo o ndice da iterao do loop, iniciando a contagem em 0.
Para inserir um loop v :

Functions Palette -> Structures -> While Loop

Clique em algum lugar do BD e arraste para ajustar o tamanho
do loop. Deve-se tomar cuidado com o uso de loops While. Na
verdade, para quem programa em linguagens como C ou Java, num
loop While, a condio verificada antes da execuo do loop. O
While do LabVIEW equivalente, na verdade, a um loop Do-While, ou
seja, a condio verificada DEPOIS da execuo do loop.
O smbolo de relgio, dentro do loop, significa que a execuo
do mesmo levar 1 milissegundo, que o nmero inteiro passado
como parmetro para a funo Wait. Esse artifcio utilizado, pois,
em loops que precisam da entrada do usurio (que lenta em
Minicurso LabVIEW 8.2


Grupo PET Engenharia Eltrica Universidade do Estado de Santa Catarina



20
comparao a um ciclo de mquina) ocorre o problema de
SATURAO DO PROCESSADOR.
Veja o que ocorre no Windows quando o usurio utiliza e deixa
de utilizar uma funo Wait dentro de um loop While:


Ilustrao 14 - Com Wait Ilustrao 15 - Sem Wait

fcil notar que a utilizao da funo Wait necessria em
aplicaes que no dependem do tempo, para evitar utilizao
desnecessria da CPU.
O trecho de BD abaixo referente a um VI que executa
exatamente o mesmo que o VI que soma o nmero nepperiano a
uma entrada do usurio. O respectivo FP idntico ao anterior.



Minicurso LabVIEW 8.2


Grupo PET Engenharia Eltrica Universidade do Estado de Santa Catarina



21
Note a utilizao de um frame no interior do loop While. Isso
um Formula Node. Ele serve para o clculo de expresses no
LabVIEW, alm de operaes de escolha e afins. uma das poucas
ferramentas, nesse ambiente de desenvolvimento, que permite
linguagem literal.

Minicurso LabVIEW 8.2


Grupo PET Engenharia Eltrica Universidade do Estado de Santa Catarina



22
6. Funes booleanas e portas lgicas

As funes booleanas no LabVIEW encontram-se, em sua
maioria, nesses dois locais:

Functions Palette -> Boolean
Functions Palette -> Comparision

Na primeira paleta voc encontra as j conhecidas Portas
Lgicas, bem como constantes booleanas, e composies para portas
lgicas (mais de duas entradas por porta).

Exerccio:

Faa um VI que tenha como entrada um nmero inteiro e que
d como sada um booleano informando se o nmero par ou mpar.

7. cones

Cada instrumento virtual possui um cone no canto superior
direito. Por padro o LabVIEW insere um como cone. O usurio
pode editar o cone clicando com o boto direito do mouse sobre o
cone e clicando em edit icon. Tambm h a possibilidade de se
importar cones externos.
Os autores sugerem que desde j os alunos criem o costume de
alterar o cone do VI, para o caso de se utilizar o instrumento como
subVI.
A National Instruments disponibiliza uma biblioteca de cones:
http://www.ni.com/zip/idnet/library/us/Icon_Library.zip

Ou baixar somente os cones preferidos:
http://zone.ni.com/devzone/cda/tut/p/id/6453

O cone vinculado ao VI ser mostrado no BD quando o instrumento
for utilizado como subVI.

Minicurso LabVIEW 8.2


Grupo PET Engenharia Eltrica Universidade do Estado de Santa Catarina



23
8. SubVIs

O LabVIEW permite que o usurio reutilize cdigo. Isso significa
que VIs podem ser reutilizados como subVIs em outros instrumentos
virtuais. Para isso o usurio deve abrir o VI e fazer o seguinte:
Clique com o boto direito no cone do VI e selecione Show
Connector, somente no FP.
Um smbolo como um ser mostrado. Esse o conector do
VI, nele que se conectam as entradas e sadas do mesmo para que
esse possa ser usado como subVI. de praxe que se conectem as
estradas na esquerda e as sadas na direita, mas nada impede que se
misturem entradas e sadas de qualquer lado.
Pode-se mudar o tipo de conector clicando com o boto direito
do mouse em cima do e clique em Patterns. L existe uma gama
de conectores, apropriados para cada aplicao. Para se vincular um
tipo de entrada ou sada ao conector basta fazer, em qualquer ordem,
o seguinte:
Clique no componente que seria a entrada ou a sada e clique
no retngulo do conector no qual se quer que haja a vinculao.
Depois disso, clique em qualquer lugar do FP, para encerrar a
vinculao. Aconselha-se o usurio a salvar o subVI com um nome
diferente do VI original.
O LabVIEW tem dois tipos de SubVIs: os normais e os Express.
Os SubVIs normais so sub-rotinas de mais baixo nvel, ou seja,
necessitam de mais entradas do programador.
J os Express so SubVIs de alto nvel.

Exerccio:

Utilize o VI feito no exerccio anterior como um subVI para
realizar a mesma aplicao.

Inserindo comentrios

Assim como em outras linguagens de programao possvel
criar comentrios nos VIs para que o programador possa lembrar do
que se trata o cdigo. Para inserir um comentrio, basta clicar duas
vezes em um local vazio do BD e escrever o comentrio. Aps
terminado, clique fora do comentrio.
Minicurso LabVIEW 8.2


Grupo PET Engenharia Eltrica Universidade do Estado de Santa Catarina



24
9. A estrutura Case

Algo fundamental em uma linguagem de programao poder
fazer escolhas. O LabVIEW disponibiliza algumas opes. Uma delas
a Case Structure.

A estrutura Case se encontra em:

Functions Palette -> Structures -> Case Structure

Para utiliz-lo voc pode conectar sua condio um booleano,
uma String, um inteiro ou uma Enum. Se voc ligar um booleano
condio do Case, esse funcionar como um If-Else tradicional.
Porm, se voc ligar quaisquer dos outros tipos (String, inteiro ou
Enum) a estrutura de escolha funcionar como um Switch-Case-
Default.

Vamos mostrar um exemplo simples de uso do Case Structure:
um painel com um boto de dois estgios que deixa o usurio
escolher entre a opo 1 e a opo 2. Conforme a escolha, uma caixa
de dilogo mostrada dizendo qual foi a opo escolhida.
Esse o painel do VI:


Ilustrao 16 - FP do exemplo de Case

Minicurso LabVIEW 8.2


Grupo PET Engenharia Eltrica Universidade do Estado de Santa Catarina



25
O respectivo BD:




Quando a condio for verdadeira




Quando a condio for falsa

Minicurso LabVIEW 8.2


Grupo PET Engenharia Eltrica Universidade do Estado de Santa Catarina



26
Case Structure



O booleano fornece condio (ponto de interrogao no centro
da borda esquerda do quadro) do Case qual dos dois frames deve ser
executado. Os contadores de tempo dentro de cada frame indicam ao
LabVIEW que ele deve esperar 2000 milissegundos antes fornecer o
controle do fluxo de dados para o prximo componente, nesse caso o
loop While. A utilizao de loops, como o While, ser abordada mais
frente.

10. A funo Select

O usurio tambm pode fazer escolhas atravs da funo
select.
Para posicion-lo no BD v em:
Functions Palette Comparision Select
Ao contrrio da estrutura Case, a funo Select s aceita
booleanos como condicionais. Em alguns casos, como no anterior,
melhor utilizar um Select ao invs de um Case, devido simplicidade
das execues. Veja como fica a mesma aplicao feita com Case,
agora escrita com Select:

Parmetro:
1. Condio para execuo de um frame. Pode ser um
booleano, uma String, um inteiro, uma Enum ou uma Ring.
S possvel entrar com um tipo de condicional, ou seja, se
for utilizado um inteiro como condicional, os demais
condicionais tambm devem ser inteiros.
Retorno:
1. Executa o frame que se enquadra com a condio satisfeita
pelo parmetro de entrada ou o frame definido como
Default.

Minicurso LabVIEW 8.2


Grupo PET Engenharia Eltrica Universidade do Estado de Santa Catarina



27



O FP desse VI foi omitido visto que idntico ao anterior. Um
usurio que executasse os dois aplicativos no notaria diferena entre
os mesmos.

Funo Select



Note que s h duas opes de entrada no Select, alm do
condicional. Essas duas entradas DEVEM ser do mesmo tipo, ou seja,
no adianta querer ligar uma String em uma entrada e um inteiro na
outra. No caso anterior foram ligadas duas Strings s entradas para
que houvesse a escolha de uma delas e posterior sada para a caixa
de dilogo.
Um outro exemplo de aplicao da funo Select mostrado a
seguir. Nesse VI o usurio informa que dia hoje (do ms) e o VI diz
se a informao est correta, de acordo com o calendrio do
computador.

Parmetros:
1. Objeto a ser escolhido, caso a condio seja verdadeira.
Pode ser booleano, numrico, String, entre outros.
2. Condio para que a funo escolha entre as opes de
entrada (parmetros 1 e 3).
3. Objeto a ser escolhido, caso a condio se falsa. Deve ser do
mesmo tipo que o parmetro 1.

Retorno:
1. Objeto escolhido, conforme a condio passada para a
funo Select.

Minicurso LabVIEW 8.2


Grupo PET Engenharia Eltrica Universidade do Estado de Santa Catarina



28


As funes aqui utilizadas e que no haviam sido citadas antes so:
- Get Date/Time String, que encontra-se em: Functions Palette
Timing.
- Scan Strings For Tokens, que encontra-se em: Functions Palette
String Additional String Functions

A funo Get Date/Time String, que est mais na esquerda, no frame
da direta da Flat Sequence, utilizada quando se necessita de data
ou hora em algum VI. Como um exemplo pode-se citar a criao de
um relatrio: o usurio pode precisar que o VI recupere a informao
de data para que essa seja inserida no cabealho do relatrio, caso
ele no queira digitar essa informao cada vez que for criar um
relatrio.
Para utiliz-la o usurio pode fornecer informaes como: o formato
da data (se abreviado, por extenso...), se deseja-se utilizar uma data
pr-fornecida para convert-la em outro formato e se deseja-se que
os segundos tambm sejam exibidos na data.
A funo Scan String For Tokens funciona da mesma maneira que a
funo strtok da linguagem C: ela admite duas Strings como
parmetros, uma com a String que se quer separar e a outra com o
separador.
No exemplo anterior a String que se quer separar a data fornecida
pela funo Get Date/Time String e o separador passado para a
funo atravs de um array de Strings, ou seja, mais de um
separador pode ser passado para essa funo.
O resultado o seguinte: da data, fornecida pela funo Get
Date/Time String no formato DD/MM/AAAA, retirado somente o dia,
ou seja, a primeira substring que aparece na String pesquisada que
vem antes do primeiro separador, a barra (/).
Minicurso LabVIEW 8.2


Grupo PET Engenharia Eltrica Universidade do Estado de Santa Catarina



29
11. Temporizao

necessrio em vrias aplicaes que se utilizam de linguagem
computacional ter o controle sobre a execuo de determinados
eventos, uma sada control-los atravs do tempo. Na linguagem
LabVIEW isso pode ser feito utilizando-se de um grupo de funes
dentro de Timing. Dentro desse encontramos funes como Wait,
Elapsed Time, Wait Until Next, entre outras. Todas elas possuem um
nico objetivo, garantir que um conjunto ou determinada ao ocorra
dentro, aps ou entre um determinado intervalo de tempo.


Ilustrao 17 - Paleta de funes Timing




Minicurso LabVIEW 8.2


Grupo PET Engenharia Eltrica Universidade do Estado de Santa Catarina



30
As funes que esto dentro de Timing so:


Exerccios:

1 Utilizando as funes de temporizao crie um cronometro que
funcione em contagem regressiva ou progressiva.

2 Crie dois semforos que atuem simultaneamente e que as
posies Verde, Amarelo e Vermelho tenham entre si um intervalo
de: 8, 4 e 12 segundos respectivamente. Alm disso, enquanto um
semforo estiver verde ou amarelo o outro deve permanecer
vermelho.

DICA: Para as posies verde, amarelo e vermelho utilize os
booleanos control (led). Para alterar sua cor clique com o boto
direito sobre o boolean, escolha Properties e na aba Appearance
altere a cor do boolean.


FUNO UTILIDADE

A funo Time Count serve para contar a durao de
um evento assim que ele iniciado, sendo pausado ao
termino do mesmo.

A funo Wait (ms) espera um valor x determinado
pelo usurio ou no, assim que termina um evento.

A funo Wait Until Next ms Multiple espera a
execuo de uma rotina qualquer at o contador se
tornar um mltiplo do valor especificado em sua
entrada. Sendo assim, a execuo no ser
completada at que o valor especificado em
milissegundos tenha decorrido.

Possui um contador de tempo que reiniciado ao
atingir um tempo escolhido pelo usurio. Ao atingir o
tempo decorrido enviado um valor booleano true em
uma das suas sadas. Nas suas outras sadas ainda
possvel monitoras quanto tempo j foi decorrido.

Gera um atraso no local em que estiver

Criar uma constante de tempo (hora, data).
Minicurso LabVIEW 8.2


Grupo PET Engenharia Eltrica Universidade do Estado de Santa Catarina



31
12. Enum e Ring

Em alguns casos, torna-se difcil lembrar, em uma seqncia de
nmeros, a que atribuies eles pertencem. Por exemplo: se os
nmeros de 0 a 6 representassem as cores principais do espectro
visvel teramos que 0 vermelho, 1 laranja, 2 amarelo e assim
por diante.
Tornar-se-ia bem mais simples se, para cada ndice, tivssemos
o nome da cor correspondente, facilitando a visualizao.
O exemplo a seguir mostra uma aplicao de Enum, justamente
utilizando as cores do arco-ris.







As caixas de cores so do tipo inteiro e encontram-se:
No FP: Controls Palette Numeric Framed Color Box (para
torn-lo indicador clique com o boto direito do mouse e selecione
Change to Indicator)
No BD: Function Palette Dialog & User Interface Color Box
Constant


Minicurso LabVIEW 8.2


Grupo PET Engenharia Eltrica Universidade do Estado de Santa Catarina



32
13. Framed Color Box

Parmetro:
1. Inteiro do tipo unsigned, com 32 bits de comprimento. Falta
dizer qual o formato do inteiro j que o formato padro de
cores hexadecimal.
Retorno:
1. Exibe a cor passada em forma numrica atravs de uma caixa,
no Front Panel.

Cada cor tem seu respectivo caso na Case Structure e, em cada
caso, a caixa de cor (constante) tem uma cor diferente, referente ao
nome na Enum. Conforme o usurio seleciona uma cor diferente na
Enum a Case Structure muda de caso iterado e, por conseqncia,
muda-se tambm a cor da caixa indicativa (Color Box no FP).
Para inserir ou remover itens em uma Enum basta proceder da
seguinte maneira:
Clique com o boto direito do mouse sobre ela e selecione Edit
Itens... Se a Enum for um controle ou um indicador, voc deve fazer
isso no FP, seno, voc deve fazer isso no BD. Uma caixa de dilogo
aparecer:


Ilustrao 18 - Enum Properties

Veja que voc tem a opo de inserir ou remover itens e mov-
los na lista, porm, eles so ENUMERADOS na ordem em que
aparecem, ou seja, voc no pode alterar os ndices referentes s
Strings (nomes das cores, nesse caso) a no ser que voc altere a
Minicurso LabVIEW 8.2


Grupo PET Engenharia Eltrica Universidade do Estado de Santa Catarina



33
ordem dos itens na lista. Mesmo assim, os ndices se limitaro ao
mximo de n 1, onde n o nmero de itens na lista.
As Rings foram criadas para se contornar o problema acima
citado. Elas so idnticas s Enums, contudo, voc pode alterar os
ndices dos itens da maneira como achar melhor.
O exemplo acima ficaria como segue, usando um controle do
tipo Ring, que tem exatamente a mesma aparncia de uma Enum no
FP, portanto, o painel frontal no ser mostrado aqui.



Ilustrao 19 - Exemplo Ring

Voc pode observar que o smbolo do Ring se diferencia do
smbolo do Enum. Por padro uma varivel ou constante do tipo Ring
um Unsigned Integer, mas esse tipo pode ser alterado para
qualquer outro, menos complexos, clicando-se com o boto direito
sobre o seu bloco (no BD), selecionando Representation e o tipo
desejado.
O ndice inicial foi tomado como 10, por acaso, s para mostrar
a diferena de Enums para Rings.
Para editar a lista de itens proceda da mesma maneira que para uma
Enum. A lista de itens a seguinte (Ilustrao 20 - Ring Properties):


Minicurso LabVIEW 8.2


Grupo PET Engenharia Eltrica Universidade do Estado de Santa Catarina



34

Ilustrao 20 - Ring Properties

Se o checkbox Sequential Values estivesse selecionado, o
controle Ring funcionaria como uma Enum. Com ele no selecionado
voc pode clicar duas vezes no valor que se deseja mudar e alter-lo
da maneira que desejar, desde que o tipo da Ring (int, double...) seja
compatvel com o que se est digitando.

Minicurso LabVIEW 8.2


Grupo PET Engenharia Eltrica Universidade do Estado de Santa Catarina



35
14. Formula Node

O LabVIEW disponibiliza algumas caixas de entradas, no
formato de caixas de texto, para que o usurio possa inserir
programao literal (textual).
Uma dessas caixas se chama Formula Node e amplamente
utilizada por ser de simples aplicao.
A sintaxe do Formula Node bem similar da linguagem C,
com algumas peculiaridades, como a declarao de alguns tipos
primitivos, como inteiros, na forma int32, por exemplo. Uma
explicao completa sobre a sintaxe do Formula Node pode ser
encontrada ao final desse texto. Note que um Formula Node deve ser
utilizado exclusivamente para realizar frmulas e deve ser evitado
para outras finalidades.
Algo que deve ser ressaltado aqui : tambm possvel fazer
comparaes (escolhas) dentro do formula node, dessa forma, o
usurio pode usar If-Else e Switch-Case-Default, como em C.
Vamos mostrar agora um pequeno exemplo de utilizao do
Formula Node:



No exemplo acima, o VI conta de 0 a 99 e soma os resultados
no acumulador (acm). Posteriormente essa soma passada para o
indicador Soma de 0 a 99. A entrada x no foi usada, mas est ali
somente para ilustrar sua utilizao.
Repare que o Formula Node pode usar variveis externas a ele
(no declaradas dentro dele), como o x, e permite que variveis
declaradas em seu interior, como o acm, sejam usadas fora dele.
Para criar um Formula Node:
Functions Palette Structures Formula Node
Clique e segure com o boto esquerdo do mouse, no BD, e
arraste o cursor at que a caixa de texto fique do tamanho que voc
deseja.
Para que voc possa usar uma varivel externa ao Formula
Node, dentro dele, faa o seguinte:
Clique com o boto direito do mouse em qualquer parte da
borda do Formula Node. Clique em Add Input. Um retngulo
Minicurso LabVIEW 8.2


Grupo PET Engenharia Eltrica Universidade do Estado de Santa Catarina



36
pequeno, como o que envolve o x no exemplo acima, aparecer
vazio com o cursor do teclado pronto para insero de um nome de
varivel. Escreva um nome qualquer e o ligue a alguma varivel, de
algum tipo (int, double...) permitido no Formula Node (veja a lista do
fim desse tutorial). Se voc deixar quaisquer variveis de entrada
(Input) sem ligao, o VI no poder ser executado.
Para usar uma varivel interna ao Formula Node, fora dele, faa
o seguinte:
Clique com o boto direito do mouse na borda do Formula Node
e clique em Add Output. Insira um nome para a sada, idntico ao da
varivel que se deseja utilizar fora do Formula Node. Importante: da
mesma forma que todas as entradas devem estar ligadas para que o
VI execute, todas as sadas devem estar declaradas no Formula
Node, mas nenhuma precisa estar ligada variveis externas (como
indicadores).
Um Formula Node no precisa, necessariamente, ter entradas e
sadas, mas em grande parte de suas utilizaes, as entradas e
sadas so cruciais.
No se esquea de fazer comentrios em seus Formula Nodes.
Eles podem ser feitos da mesma maneira que em C++ ou Java: aps
duas barras (//) comentrios de uma linha, apenas; entre barra e
asterisco (/*) e asterisco barra (*/), que so comentrios de
mltiplas linhas.

Exerccios:

1- Sabendo que a sintaxe de um Formula Node permite que o
usurio utilize If-Else como na linguagem C faa o que se pede:
receba um valor de entrada do usurio e, se o valor for positivo
ou nulo, tire a raiz quadrada do mesmo (funo sqrt, do
Formula Node), seno, eleve o valor ao quadrado (**2). Exiba
o valor num indicador do FP.
2- Pea um valor de entrada e calcule o fatorial desse nmero.
No esquea que o nmero deve ser inteiro (pea somente
valores inteiros ao usurio, para evitar tratamento de valores) e
positivo. Teste se o nmero positivo antes de calcular o
fatorial. Utilize o mtodo iterativo.
3- Pea que o usurio indique dois valores e indique qual o
menor deles. O FP deve ter dois controles e um indicador para
esse intento.
4- Pea ao usurio que entre com o valor do raio de uma
circunferncia (valor positivo), calcule e exiba os valores de
permetro e rea dessa circunferncia. Dica: se voc utilizar a
expresso pi dentro do Formula Node, o LabVIEW substitui
automaticamente o valor dessa constante para voc.
Minicurso LabVIEW 8.2


Grupo PET Engenharia Eltrica Universidade do Estado de Santa Catarina



37
5- Pea ao usurio dois valores de entrada: um inteiro positivo e
um real. Escreva, utilizando o Formula Node, um VI capaz de
calcular a potncia de base real e expoente inteiro. Exiba o
valor numa caixa de dilogo (do tipo One Button Dialog). No
esquea de fazer a converso de tipo numrico para string
antes de passar o dado para a caixa de dilogo. Dica: utilize a
funo Number to Fractional String que pode ser encontrada
em:

Functions Palette String String/Number Conversion
Number to Fractional String

No utilize um loop While dessa vez, seno, o VI entrar em
processo de loop infinito.
Minicurso LabVIEW 8.2


Grupo PET Engenharia Eltrica Universidade do Estado de Santa Catarina



38
15. Shift Registers

So utilizados somente em loops e servem para armazenar
valores de iteraes anteriores. Sendo que podem ser usados
sozinhos ou em conjunto para guardar valores de uma ou mais
iteraes, conforme a quantidade deles que for criada.
Toda vez que um Shift Register for criado ele deve ter um valor
ligado sua entrada, que fica sempre esquerda do loop e um valor
ligado sada, direita do loop. Se esses valores estiverem sem
ligao, o VI no poder ser executado.
Para posicion-lo no BD voc deve criar um loop While ou For e
um valor de qualquer tipo.
No exemplo a seguir usaremos uma constante de tipo inteiro
que ceder o valor inicial de 0 para o loop For, que por sua vez
iterar 100 vezes, somando os valores de 0 99, da mesma forma
que o exemplo mostrado para o Formula Node.



Crie uma constante de tipo inteiro, clicando com o boto
esquerdo do mouse em um lugar vazio do BD, em Numerice e
Numeric Constant. Insira 0 como seu valor.
Crie um loop for e insira o nmero de iteraes: 100. Em
seguida ligue a constante ao loop For, como segue:



Em seguida, clique com o boto direito do mouse sobre o
quadrado que aparece na borda do loop e clique em Replace with
Shift Register:

Minicurso LabVIEW 8.2


Grupo PET Engenharia Eltrica Universidade do Estado de Santa Catarina



39


Voc notar que o VI no poder ser executado como est
porque a parte esquerda do Shift Register no est ligada. Agora,
insira um somador para realizar a soma entre a entrada e o ndice do
loop for:

Functions Palette Numeric Add





Pronto, a soma realizada pelo somador armazenada no Shift
Register (a parte direita dele) que repassa para a prxima iterao
esse valor, isso torna mais clara a idia do funcionamento desse tipo
de ferramenta do LabVIEW. Note que o valor de entrada, acrescido
de i (ndice do loop), no fica armazenado na varivel de origem, mas
sim, no Shift Register, ou seja, se voc precisar usar o valor da
constante inteira, esse continuar a ser 0, como deve ser, j que uma
constante no pode variar durante a execuo.
O que acontece se voc no usar Shift Register, ou seja, deixar
a ligao da constante inteira atravs de Tunnel?
16. Arrays

Um Array, vetor, um arranjo de valores distintos ou no que
so colocados organizados em linhas e colunas. Sendo que cada valor
ocupa uma posio nica e especifica. Os mesmo ainda podem
possuir mais de uma dimenso, matrizes. Os arrays tambm podem
ser de qualquer tipo de dado, como por exemplo: numerics, strings,
booleans, clusters entre outros.
Sendo assim, arrays so perfeitos para armazenar os diferentes
ou semelhantes resultados que vrias iteraes de um mesmo
programa podem gerar de maneira organizada.

Minicurso LabVIEW 8.2


Grupo PET Engenharia Eltrica Universidade do Estado de Santa Catarina



40
16.1. Criando arrays

Existem essencialmente duas maneiras de inserir arrays no
LabVIEW. O importante que independente do modo que for criado
no havero alteraes em seu funcionamento.
possvel construir um array diretamente no FP:

1. Clique com o boto direito em uma rea livre do FP;
2. Aponte para Array;
3. Clique em Array;
4. O insira no FP;

Ou ento insira um array diretamente no BD:

1. Clique com o boto direito em uma rea livre do BD;
2. Aponte para Array;
3. Escolha a opo Array Constant;
4. O insira no BD;

Criando no FP aparecer um array vazio control. Por sua vez,
criando a partir do BD criado um array constant. Para esse array
possuir algum tipo como o caso no array 2, que numrico,
preciso no FP arrastar algum tipo sobre o array vazio.
Em LabVIEW ao contrrio das linguagens de texto no
necessrio informar o tamanho do array. Sendo assim, o array
utilizado vai ter o tamanho da quantidade de dados que voc enviar
para ele, com um limite de 2
31
-1 elementos por dimenso , se a
memria permitir.


Array 1- Array vazio
Array 2 Array numrico
Paleta de Array, Matrix & Cluster
Minicurso LabVIEW 8.2


Grupo PET Engenharia Eltrica Universidade do Estado de Santa Catarina



41
15.2. Paleta Array

Para trabalharmos com arrays precisamos ter controle sobre
eles, para isso e para outras atividades, no BD, temos a paleta Array.
Nessa, algumas das principais funes so:

Nome
Representa
o
Utilidade
Array
Constant

Cria um vetor constante. Entretanto, esse
ainda no possui um tipo.
Array
Size

Indica o tamanho de um determinado
array conectado a ele.
Array
Subset

Seleciona uma parte de um array, sendo a
mesma definida pelo usurio.
Build
Array

Constri um array utilizando outros
arrays. Cada array ser uma dimenso do
array que ser criado
ndex
Array
Utiliza-se para pegar um valor de uma
determinada posio escolhida pelo
usurio ou no.

Exerccio:

1. Crie um vetor B
i
=i+1/i, com i=[0,40].

2. Crie uma matriz C
i,j
=(i+j)
2
/(1+i+j
1/2
), com i=[0, 20] e
j=[0,20].

SUGESTO: Utilize a estrutura Formula Node.

3. Utilizando a matriz gerada pelos termos abaixo, resolva o
seguinte sistema A*x=y:
Sendo, a matriz A
i,j
=j*(i+1); i ->[0,10], j ->[0,10] .
E o vetor y
i
ser composto por Y
i
= 5+i.

SUGESTO: Utilize a funo de inverso de matrizes do LabVIEW,
x=A
-1
*y. Ou a funo de soluo de sistemas lineares.

4. Construa uma matriz de Vandermonde de tamanho 10x10 e
encontre o elemento [2,8].

Minicurso LabVIEW 8.2


Grupo PET Engenharia Eltrica Universidade do Estado de Santa Catarina



42
17. Clusters

Os Clusters so utilizados para armazenar diferentes tipos de
dados, sendo que podem estar misturados. Em linguagem de texto
clusters so chamados de struct ou, como o caso de algumas
pseudo-linguagens, registro. Logo, em uma nica via de Cluster
podem ser transferidos diferentes tipos de dados, que estejam
presentes no cluster criado.
As suas funes no BD so:

Nome
Representa
o
Utilidade
Array to
Cluster

Converte um tipo array em um tipo
cluster.
Bundle

Agrupa diversos elementos em um s. Por
exemplo, podemos ligar 3 arrays do lado
esquerdo e transferi-los em um nico
cluster.
Build
Cluster

Agrupa vrios clusters em um cluster
resultante
Cluster
Constant

Cria uma constante do tipo cluster.
Cluster
to Array

Converte um Cluster em um Array.
Index &
Bundle

Indexa um conjunto de arrays dentro de
um cluster pelo ndice de cada elemento.
Ou seja, os elementos de mesmo ndice
estaro presentes nas mesmas colunas.
Unbundle

Separa os diferentes tipos presentes em
um cluster qualquer.


Exerccio:

1 Crie uma interface aonde so inseridos alguns valores das
variveis: Nome, Matricula, Fase e Curso de um aluno da UDESC.
Minicurso LabVIEW 8.2


Grupo PET Engenharia Eltrica Universidade do Estado de Santa Catarina



43
18. Grficos

comum utilizarmos grficos na engenharia, os mesmos nos
fornecem muita informao a respeito de um evento qualquer de
forma rpida e clara. Na linguagem LabVIEW dentre os grficos que
podem ser utilizados iremos abordar: Waveform Chart, Waveform
Graph e XY Graph. A diferena entre o Waveform Chart e Waveform
Graph o tipo de dado que fornecido para cada. No Waveform
Chart fornecemos um valor numrico e no Waveform Graph
fornecemos vetores, entretanto, em ambos o grfico construdo
com relao ao tempo. J no XY Graph, so fornecidos pares
ordenados.
Para inserir um grfico no FP clique com o boto direito em uma
rea livre e na paleta controles aponte para a opo Graph, em
seguida escolha o tipo de grfico desejado.


Paleta Graph


De um modo geral existem algumas opes que podem ser
escolhidas para qualquer grfico, como:

1. Todos podem ser redimensionados de acordo com sua
necessidade.
Minicurso LabVIEW 8.2


Grupo PET Engenharia Eltrica Universidade do Estado de Santa Catarina



44
2. Clicando com o boto direito sobre um grfico no FP, possvel
ter acesso as propriedades do mesmo. Assim so configurados
quaisquer grficos.
3. A escala de qualquer grfico pode ser alterada diretamente no
grfico, ou seja, clique duas vezes sobre um valor da escala e
altere conforme sua necessidade.


Na janela Propriedades, para os trs tipos de grfico, existem as
seguintes informaes:

Denominao Funo
Appearance So realizadas as mudanas quanto
aparncia do grfico. Tais como: Rtulo visvel
ou no e o que aparecer no mesmo,
Quantidade de grficos, Mostrar ou no
legenda da escala,
Format and
Precision
possvel escolher qual o tipo dos valores da
escala (ponto flutuante, cientifico, SI), O tipo
de preciso e a quantidade de dgitos,
Plots Escolhe-se como ser montado cada grfico
independentemente dos outros. possvel
escolher cor, formato de insero de pontos,
tipo de onda, nome do grfico.
Scales As principais ferramentas so escolher a escala
e o multiplicador da mesma,
Documentation Pode-se escrever uma descrio do que est
ocorrendo no grfico.
Data Binding possvel atravs da opo Data Binding
vincular informaes provenientes de uma
aquisio de dados, por exemplo, e inseri-las
diretamente no grfico.
Cursors Essa opo no existe para o Waveform Chart,
e serve para colocar um trao na origem no
grfico, para cada grfico que houver.

Minicurso LabVIEW 8.2


Grupo PET Engenharia Eltrica Universidade do Estado de Santa Catarina



45

Ilustrao 21 - Propriedade do Waveform Chart
Semelhante ao Waveform Graph e XY Graph -

18.1. Waveform Chart

O Waveform Chart gera grficos 2D de valores numricos no
domnio do tempo.



Ilustrao 22 - Waveform Chart


Minicurso LabVIEW 8.2


Grupo PET Engenharia Eltrica Universidade do Estado de Santa Catarina



46
18.2. Waveform Graph

O Waveform Graph cria grficos 2D como o Waveform Chart a
diferena que aqui no Waveform Graph os dados de entrada so
Arrays.


Ilustrao 23 - Waveform Graph




18.3. XY Graph

O XY Graph cria grficos em 2D utilizando valores alocados em
variveis do tipo Clusters, que so gerados a partir de vetores.


Ilustrao 24 - XY Graph

Minicurso LabVIEW 8.2


Grupo PET Engenharia Eltrica Universidade do Estado de Santa Catarina



47
19. Gerador de sinais

Esse um Express VI. Essa ferramenta de grande
importncia, principalmente se voc no possuir uma placa DAQ
(Data Acquisition). Para especificar o sinal desejado clique com o
boto direito sobre o cone e escolha a opo Properties e na janela
possvel especificar os seguintes itens:

Tipo de onda;
Freqncia;
Fase, Perodo;
Amplitude;
Nmero de amostras de informaes e tempo de coleta das
mesmas.

Para inserir um Simulate Signal (Simulador de Sinal), faa:

1. Clique com o boto direito no BD e aponte para Signal
Processing;
2. Depois para Waveform Generation;
3. Por fim, clique em Simulete Signal;
4. E insira-o no BD;



Ilustrao 25 - Janela Properties do Gerador de Sinais



Minicurso LabVIEW 8.2


Grupo PET Engenharia Eltrica Universidade do Estado de Santa Catarina



48
Exerccios:

1. Crie um grfico usando valores aleatrios em relao ao tempo.
2. Repita o exerccio anterior utilizando vetores de valores
aleatrios.
3. Utilizando as funes seno e cosseno, construa uma
circunferncia de raio 2, no XY Graph.
4. Utilizando um simulador de sinais, crie uma onda senoidal com
freqncia 100 Hz, amplitude 7 e fase 45.
Minicurso LabVIEW 8.2


Grupo PET Engenharia Eltrica Universidade do Estado de Santa Catarina



49
20. Variveis Locais

possvel o usurio alterar o valor de um controle ou exibir o
valor de um indicador em algum ponto do BD que est bastante
distante desse indicador sem ter que passar uma ligao no meio do
VI, tornando-o de difcil leitura. Para isso, e outras finalidades,
utilizam-se Local Variables.
O exemplo mostrado a seguir faz exatamente o que o exemplo
do Shift Register e do Formula Node fazem. Vamos somar de 0 a 99,
s que dessa vez, o valor incrementado ser armazenado na varivel
de origem.
Para criar uma Local Variable voc precisa clicar com o boto
direito sobre um indicador ou controle (constantes no), ir em Create
e Local Variable.
Um retngulo com o nome da varivel aparecer na ponta do
cursor do mouse para que voc possa posicion-lo onde quiser.
Opcionalmente, voc pode criar a varivel local (genrica) da
seguinte forma:

Funtions Palette Structures Local Variable

Um retngulo aparecer na ponta do cursor, s que dessa vez o
retngulo ser preto e com uma interrogao dentro. Para torn-lo
utilizvel clique com o boto esquerdo na interrogao e escolha uma
das variveis (controles ou indicadores) que existem no VI e que so
acessveis naquele escopo.
Vamos ao exemplo para tornar o entendimento mais rpido:
Crie um indicador numrico no FP. No BD, altere o tipo desse
indicador para I32 (Long). Agora, crie um loop For. necessrio que
o indicador esteja dentro do loop.
Crie uma varivel local para o indicador. Posicione-a dentro do
loop e, se ela for criada para escrita (Write), como de se esperar,
clique com o boto direito do mouse sobre a Local Variable recm-
criada e clique em Change to Read. A partir desse comando voc
pode ler um indicador, o que no possvel de se fazer diretamente
atravs do mesmo.
Crie mais uma Local Variable do indicador e posicione-a dentro
do loop. Disponha um somador dentro do loop e proceda da seguinte
forma:

Minicurso LabVIEW 8.2


Grupo PET Engenharia Eltrica Universidade do Estado de Santa Catarina



50


Dessa forma, voc soma de 0 a 99 armazenando o valor
incrementado na prpria varivel de origem. As variveis locais
tambm servem para escrever em (alterar o valor de) um controle. O
exemplo a seguir mostra como isso funciona.





Se escrevermos uma String diferente na String de escrita e
clicarmos fora dela a String de baixo (que tambm um controle)
receber o novo valor:
O referido BD:



Se voc escrever na String lida, o valor da mesma no se
alterar, j que o seu valor est VINCULADO ao valor da String
escrita (tente mudar para ver o que acontece). Porm, se voc
alterar o valor da String escrita notar que o valor da String lida
ser alterado por conseqncia.
Mais frente veremos que as variveis locais tambm ajudam
na manuteno do layout do VI, evitando a poluio do mesmo.
Minicurso LabVIEW 8.2


Grupo PET Engenharia Eltrica Universidade do Estado de Santa Catarina



51
21. Property Nodes

Aqui ser abordado algo que certos programadores de LabVIEW
desconhecem, mas que so muito teis no controle do VI: os
Property Nodes.
Para utiliz-los voc deve criar um uma varivel e clicar com o
boto direito do mouse sobre ela, ir em Create, em Property Node e,
por fim, clicar em uma propriedade que voc deseja acessar no seu
VI.
O exemplo abaixo mostra como iniciar em interromper a
execuo de um cronmetro que conta de 0 a 10 segundos, usando a
tecla F4, do teclado do computador:





Note que o controle ao qual se deseja controlar via teclado
DEVE estar visvel no FP, do contrrio, a tecla no ter efeito sobre o
referido controle.
Veja que o Property Node que controla a entrada via teclado
(tambm conhecida como Input Map em outras linguagens de
programao) o Toggle Key Binding. Os parmetros para essa
propriedade so passados via Cluster: trs booleanos e uma String.
Os booleanos referem-se ao seguinte, de cima para baixo:
Requisio do foco: se o boto associado esse controle for
pressionado, d o foco para esse controle
Minicurso LabVIEW 8.2


Grupo PET Engenharia Eltrica Universidade do Estado de Santa Catarina



52
Control: para disparar a propriedade deve-se pressionar, alm da
tecla definida pela String, a tecla ctrl
Shift: o mesmo que a tecla ctrl, s que para o shift
Observe a funo Crossing Boolean Point-by-point, que est
esquerda da Case Structure. Essa funo segue os modelos de borda
de subida e descida de varveis binrias. Os parmetros passados
para essa funo so: o booleano que se deseja avaliar e em quais
condies, se borda de subida, se borda de descida ou ambos.
Para criar o parmetro Enum (retngulo azul) basta clicar com
o boto direito do mouse onde seria ligado o valor dessa Enum
(coloque o cursor do mouse sobre o local da ligao e o nome do
parmetro aparece) v em Create Constant. Depois, basta escolher
sob qual condio voc deseja que essa funo retorne verdadeiro.
Esse artifcio foi utilizado para que o cronmetro fosse zerado
em cada chamada. Como o controle que inicia o temporizador (boto
no painel frontal) permanece em verdadeiro enquanto o cronmetro
estiver ligado, esse no serviria para reiniciar o valor de tempo, j
que ele ficaria zerando o contador indefinidamente, at que fosse
colocado na posio desliga.
Minicurso LabVIEW 8.2


Grupo PET Engenharia Eltrica Universidade do Estado de Santa Catarina



53
22. Mquinas de estado

Mquinas de estado so amplamente utilizadas no LabVIEW,
visto que so parte fundamental de mquinas reais: necessrio
saber em que ponto da produo determinada ferramenta se
encontra.
Uma mquina de estado bem simples pode ser vista no
exemplo abaixo. Cada estado ser explicado logo abaixo de sua
imagem.


Ilustrao 26 - Exemplo de Mquina de Estado

Essa ser a nica imagem onde se mostrar o loop While,
necessrio aplicaes com State Machines.
Note que as condies para o Case Structure so do tipo Enum. Elas
poderiam ser ou inteiros. As vantagens se usar Enums so: elas no
variam durante a execuo e programao, o nome auto-explicativo
e no h chances de se escrev-las errado durante a execuo do
programa, como o caso de Strings.
O Shift Register foi colocado para que o programa tenha a
informao do estado anterior da mquina e possa pass-lo para o
condicional do Case na prxima iterao.
O primeiro estado da mquina de estados o inicial, onde se
colocariam as funes de inicializao da mquina real.
Logo direita do Case h a informao do prximo estado a ir,
nesse caso, o estado Fabrica. Essa informao armazenada no
Shift Register e passada para o Case, na prxima iterao.
Note que o estado atual, Inicio, o estado Default dessa mquina,
ou seja, se algum estado desconhecido fosse passado para a
mquina, em forma de Enum, ela seria deslocada para o Inicio.

Minicurso LabVIEW 8.2


Grupo PET Engenharia Eltrica Universidade do Estado de Santa Catarina



54

O estado 2 (com ndice 1) o estado referente ao trabalho da
mquina, o momento que ela estaria fabricando o produto. Ele exibe
uma caixa de dilogo ao usurio e, assim que o mesmo pressionar o
boto dessa caixa, passa para o prximo estado: Testa.




Nesse estado a produo j estaria em fase de trmino e um
teste seria realizado para saber se o poduto fabricado est de acordo
com as especificaes ou no. Nesse caso, como no h integrao
com o meio fsico para se fazer um teste real, o VI exibe um prompt
(o mesmo que interface com o usurio) e pergunta se o resultado o
esperado. Nesse ponto o instrumento realiza uma escolha: se o
usurio transmitir ao VI que o resultado o esperado, a mquina vai
para o estado Fim, seno, vai para o estado Retorna.



Se a pea est de acordo com as especificaes, a mquina vai
para o estado Fim:



Minicurso LabVIEW 8.2


Grupo PET Engenharia Eltrica Universidade do Estado de Santa Catarina



55
Nesse ponto a mquina de estados exibe uma mensagem
possibilitando que o usurio escolha se ir recomear a produo, ou
se ir encerr-la ali mesmo.



No caso de a especificao no bater com a pea, uma
mensagem exibida ao usurio, indicando que a pea, ou o que quer
que seja o produto, deve ser retrabalhado. Isso seria, numa mquina,
o mesmo que devolv-la linha de produo, ou seja, o incio.

Se a pea estava de acordo e no estado Fim o usurio apertou
em No, para no continuar a produo, o estado seguinte o
Encerra:



Nesse estado, uma mensagem de encerramento exibida ao
usurio e o estado seguinte passado como nulo, ou seja, no h
estado seguinte.
Observe a constante booleana no canto inferior direito do Case.
Ela passada como condio de parada para o loop While. Note que
s no ltimo Case h uma constante booleana. Se voc fizer isso,
colocar uma varivel de qualquer tipo em algum Case (ou alguns) e
deixar um ou mais Cases sem esse mesmo tipo de varivel, no caso
de utilizar o valor dessa varivel fora do Case, voc dever clicar com
o boto direito do mouse sobre o quadrado que aparece na borda do
Case e pressionar em Use Default If Unwired. Isso significa que,
quando algum Case que no possua aquela varivel for executado, o
valor padro daquele tipo de varivel (false para booleano) ser
passado para o seu chamador, nesse caso, a condio de parada do
While.
Minicurso LabVIEW 8.2


Grupo PET Engenharia Eltrica Universidade do Estado de Santa Catarina



56
Aps esse estado, a mquina encerra sua execuo.

Exerccio: Uma fbrica produz arruelas de um dimetro interno
especfico, 25mm, sendo que h uma tolerncia de 1mm. Aps a
produo, a mquina realiza o teste de qualidade para saber se as
arruelas produzidas esto de acordo com o esperado. Monte uma
mquina de estados que faa, virtualmente, o processo de fabricao
das arruelas, tendo como entradas (sensoreamento) os valores de
dimetros da tabela abaixo. A mquina dever ter os seguintes
estados: Incio, Fabrica, Testa, Retorna, Fim e Encerra, no
necessariamente com esse nome. Voc pode usar Enums, Strings ou
inteiros para nomear seus estados. Coloque mensagens nos estados
para que o usurio possa saber onde a mquina se encontra.

ndice 1 2 3 4 5 6 7 8 9 10
Dimetro
(mm)
27 25 22 28 23 25 20 29 20 24

Minicurso LabVIEW 8.2


Grupo PET Engenharia Eltrica Universidade do Estado de Santa Catarina



57
23. Arquivos de Entrada/Sada

Os arquivos de entrada/sada tambm so conhecidos como
Files I/O e servem para escrever ou ler informaes. comum, aps
fazermos diversas medies utilizarmos as amostras, ou partes delas,
para outros fins. Para isso, temos algumas ferramentas da paleta File
I/O:

Nome
Representa
o
Utilidade
Read Binary
File
L um arquivo do tipo binrio.
Write Binary
File
Escreve um arquivo do tipo binrio.
Read
Measurement
File

L um arquivo de qualquer tipo
especificado pelo programador.
(Express VI)
Write
Measurement
File

Escreve um arquivo com variveis de
qualquer tipo. (Express VI)
Read
Spreadsheet
L arquivo do tipo array de uma ou 2
dimenses.
Write
Spreadsheet
Escreve arquivo do tipo array de
nmeros ou strings.
Read Text
File
L arquivo do tipo texto.
Write Text
File
Escreve arquivos do tipo texto.


Com as funes Read Measurement e Write Measurement
possvel desenvolver as atividades que as demais funes listadas.
Logo ao inserir a qualquer uma das duas funes se abrir uma
janela onde possvel configurar o formato do arquivo que ser lido
ou escrito, os delimitadores, o caminho onde ser escrito ou lido o
arquivo, entre outros. Se a funo j estiver inserida e voc desejar
alterar suas propriedades escolha a opo Propriedades ao clicar com
o boto direito sobre a funo inserida no BD e aparecer uma janela
com as configuraes do Write/Read.

Minicurso LabVIEW 8.2


Grupo PET Engenharia Eltrica Universidade do Estado de Santa Catarina



58

Ilustrao 27 - Janela para configurar o Write Mesureament File



Ilustrao 28 - Janela para configurar o Read Mesureament File







Minicurso LabVIEW 8.2


Grupo PET Engenharia Eltrica Universidade do Estado de Santa Catarina



59


Exerccio:

1. Construa uma matriz 10x10 de valores aleatrios e a escreva-a
em um arquivo, utilizando as seguintes funes:
Write Spreadsheet
Write Measurement

Agora leia a matriz criada anteriormente com as seguintes funes:
Read Spreadsheet
Read Measurement
Minicurso LabVIEW 8.2


Grupo PET Engenharia Eltrica Universidade do Estado de Santa Catarina



60
24. Chamadas funes em Linguagem C/C++

O LabVIEW permite que voc crie funes em linguagens como
C ou C++ (assembly, por conseqncia) e cham-las de dentro de
VI, atravs de uma Dynamic-link library (biblioteca de ligao
dinmica) ou Dynamic Loaded Library (biblioteca carregada
dinamicamente), as extenses dll.
Mostraremos como criar as suas prprias dll's usando diferentes
compiladores.
Para criar uma dll (compilar) usando o Borland Compiler 5.5.1
(bcc) voc deve fornecer a seguinte linha de comando, no prompt de
comando (ou shell que voc estiver utilizando):
bcc32 -IPasta_da_NI\LabVIEW 8.2\cintools -tWD -
eNome_da_dll.dll Nome_do_cdigo_fonte.c

Preste muita ateno!

Para os ESPAOS E PARA AS MAISCULAS E MINSCULAS. Se
voc digitar algo diferente do que est acima, o compilador pode
no funcionar.
Todo o comando acima deve ser escrito em uma linha, somente.
Aconselha-se que voc escreva um arquivo Batch (.bat) para que
no haja necessidade de reescrever a chamada para o compilador,
cada vez que voc quiser montar a dll.
Pasta_da_NI a pasta onde voc instalou o LabVIEW.
Nome_da_dll o nome que voc quer dar a dll. Evite espaos e
caracteres especiais.
Nome_do_cdigo_fonte.c o nome do arquivo .c ou .cpp, criado
pelo LabVIEW.

O argumento passado aps a opo -I indica ao bcc para incluir
cabealhos constantes na pasta indicada pelo usurio, como o
extcode.h. Os demais argumentos so tradicionais e parecidos com
opes de outros compiladores.
Ao fim desse texto fornecemos uma explicao de como instalar e
configurar o bcc.
Para criar uma dll usando o Microsoft Compiler (VC++) verso
12.00.8804 (uma das duas testadas e que realmente funcionou) faa
o seguinte:
cl -I Pasta_da_NI\LabVIEW 8.2\cintools -LD Nome_do_cdigo_fonte.c
-Fe Nome_da_dll.dll
Novamente aqui ns dizemos onde o compilador deve procurar
arquivos de cabealho.
Minicurso LabVIEW 8.2


Grupo PET Engenharia Eltrica Universidade do Estado de Santa Catarina



61
Preste ateno: os compiladores mostrados acima NO ACEITAM
espaos nos nomes dos arquivos, caminhos e afins, ou seja, voc
pode escolher uma das duas opes j que National Instruments e
LabVIEW 8.2 possuem espaos em seus caminhos:
1. Truncar os nomes segundo a conveno do DOS: pega-se as 6
primeiras letras do nome, se o mesmo possuir, seno, pega-se
somente as letras que o nome possui, e insere-se ~ e o
algarismo que indica o ndice dessa pasta (ou arquivo), por
exemplo, Nation~1. Nem sempre funciona.
2. Colocar aspas para o caminho inteiro: como ocorre em
C:\Arquivos de Programa\National Instruments\LabVIEW
8.2\cintools.

Sem dvida o segundo mtodo melhor, mas, fica a cargo do
usurio escolher qual utilizar.
Algo muito importante a ser levado em conta o seguinte: uma
dll pode conter muitas funes, porm, o VI s carregar aquela com
o mesmo nome da funo existente na Call Library Function. Voc
tem que informar o compilador qual funo ser chamada por um
agente externo e, para isso, utilizam-se as seguintes palavras
reservadas:
_declspec(dllexport)
Essas palavras devem ir ANTES DO PROTTIPO da funo que
ser exportada ( isso o que as palavras reservadas indicam) e
ANTES DA DECLARAO DA FUNO propriamente dita. Se voc no
inseri-las nos locais indicados, o VI no conseguir encontrar a
funo especfica e o mesmo no poder ser executado.
Como um exemplo de utilizao da Call Library Function
podemos citar o programa que somam os nmeros de 0 a 99.
Iremos escrev-lo em linguagem C, compilaremos a DLL
usando o compilador gratuito da Borland e por fim executaremos a
DLL dentro de um VI:
Primeiramente abra o LabVIEW e coloque o bloco da Call Library
Function no BD:

Functions Palette Connectivity Libraries and Executables Call
Library Function

Clique com o boto direito do mouse sobre o bloco dessa funo
e v em Configure.
Por enquanto no se preocupe com a primeira aba da janela Function.
S insira no lugar de funcName soma, para que o LabVIEW saiba
o nome da funo. V para a aba Parameters.
Na lista esquerda voc pode configurar o nome do valor de retorno
da funo escrita em C, bem como os parmetros passados a ela.
Minicurso LabVIEW 8.2


Grupo PET Engenharia Eltrica Universidade do Estado de Santa Catarina



62
Para inserir um parmetro clique no smbolo de mais um
pouco esquerda da lista citada pouco. Voc pode inserir quantos
parmetros precisar.
Para configurar um parmetro ou o tipo de retorno clique sobre
o nome do item desejado na lista e altere o nome do item e o tipo do
mesmo (inteiro, String, array, etc).
Para o nosso exemplo, coloque soma no lugar de return
type. Altere seu tipo para Numeric. No h necessidade de alterar
o tipo de retorno.
Note, no rodap da janela de configurao, o prottipo da
funo. Ele s utilizado para nortear o programador.
Clique em OK.
Clique com o boto direito do mouse sobre o bloco da Call
Library Function e clique em Create .c file....
Escolha um lugar conhecido para gravar esse esqueleto de
arquivo C.
Abra-o para terminar de preench-lo. Voc ir notar que o
LabVIEW deixa o arquivo semi-pronto para que voc insira seu
cdigo. Deixe o arquivo como o exemplo abaixo:

/* Call Library source file */

_declspec(dllexport) long soma(void);

_declspec(dllexport) long soma(void)
{
long soma = 0;
int count;

for( count = 0; count < 100; count++ )
soma += count;

return soma;
}

Veja que as palavras reservadas _declspec(dllexport) esto na
frente do prottipo e da declarao da funo. Lembre-se que isso
pode economizar um pouco de dor de cabea.
Para compilar esse arquivo, sugerimos que voc faa um
arquivo .bat para chamar o compilador bcc32.exe.
O arquivo .bat fica da seguinte maneira:

bcc32 -I"C:\Arquivos de programas\National Instruments\LabVIEW
8.2\cintools" -tWD -e"soma.dll" soma.c
pause
Minicurso LabVIEW 8.2


Grupo PET Engenharia Eltrica Universidade do Estado de Santa Catarina



63

Coloque toda a instruo, desde bcc32 at soma.c, em uma
linha s.
No gere essa DLL atravs de alguma rede, domstica ou no.
Isso evita alguns erros.
Aps ter gerado a DLL, v para o LabVIEW e clique com o boto
direito sobre a Call Library Function e v em configure.
No primeiro Campo de texto voc deve inserir o caminho para a
DLL criada. Clicando no smbolo de pasta, um pouco a direita do
campo de texto, voc pode procurar pela DLL.
Crie um indicador e o ligue sada do Call Library Function.
Agora s rodar o VI e voc ter a mesma sada que o VI feito
no comeo do curso, s que iterado em linguagem C.

Exerccios:

1- Faa o VI que exibe a mensagem Hello World!, no console do
DOS, utilizando a funo printf, da linguagem C.
2- Faa o VI que determina se um nmero par ou mpar, usando a
Call Library Function.
3- Faa um VI que determina, a partir de dois valores numricos
informados pelo usurio, qual o menor nmero.
4- Faa um VI que determina, usando o mtodo iterativo, o fatorial
de um nmero inserido pelo usurio.
5- Repita o exerccio anterior, utilizando o mtodo recursivo.
6- Escreva um VI que realize a operao de potenciao (expoente
sendo um nmero natural). A base e o expoente devem ser
fornecidos pelo usurio, dentro do VI.
8- Implemente, usando Call Library Function, um VI que escreve um
valor (inteiro) na porta paralela do computador. Utilize a DLL
inpout32.dll que pode ser baixada de:
http://logix4u.net/inpout32_source_and_bins.zip
9- Crie um VI que realize a operao de potenciao, mas, dessa vez,
tanto base quanto expoente podem ser nmeros reais, dados pelo
usurio. Para tal intento utilize Sries de Maclaurin, at o n-simo
elemento (n tambm deve ser fornecido pelo usurio). A srie para a
funo e
x
:
1 + x +x
2
/2! + x
3
/3! + x
4
/4! ...
Minicurso LabVIEW 8.2


Grupo PET Engenharia Eltrica Universidade do Estado de Santa Catarina



64
25. Aquisio de dados

25.1. Aquisio e gerao de dados digitais

A aquisio de dados e controle de processos via LabVIEW so
duas aes de suma importncia nesse ambiente de
desenvolvimento.
Empresas como National Instruments, Keithley e Agilent gastam
grande parte de seus rendimentos anuais em desenvolvimento na
rea de aquisio. Dentre esses hardwares existem os USBs, PCI, PCI
Express e muitos outros tipos.
Como parte integrante desse curso voc ser instrudo a utilizar o
mdulo NI DAQ USB-6009. Esse um mdulo robusto, com 12 I/O
digitais programveis, 8 entradas analgicas, 2 sadas analgicas e
um contador.
Nessa primeira parte mostraremos como configurar esse mdulo para
utiliz-lo no acionamento de 8 LEDs e na aquisio de 4 chaves, do
tipo push-button.
i. Ligue o mdulo USB no computador e espere at que o Sistema
Operacional reconhea o mesmo.
ii. Abra o LabVIEW, se o mesmo no estiver aberto. No h
problema em conectar esse tipo de mdulo se o LabVIEW
estiver aberto, desde que o mdulo tenha sido previamente
instalado naquele computador.
iii. Clique com o boto direito do mouse no BD, em qualquer lugar
vazio. V em:

Functions Palette -> Express -> Output -> DAQ Assistant

O LabVIEW abrir um assistente para configurar o mdulo DAQ.
Minicurso LabVIEW 8.2


Grupo PET Engenharia Eltrica Universidade do Estado de Santa Catarina



65

Ilustrao 29 - DAQ Assistant

A primeira janela mostra que tipo de utilizao voc quer utilizar.
Para o USB-6009 voc pode escolher entre Output (Generate Signals)
e Input (Acquire Signals).
Por hora, escolha Generate, j que faremos o acionamento de LEDs,
que so sadas.
Aps abrir o item de sada (Generate), escolha Digital Output e por
fim, Port Output. Aqui ns iremos mostrar o acionamento de uma
porta por inteiro, ou seja, escreveremos um valor tipo short na
porta. Escolha Port0. Clique em Finish.
A janela seguinte mostra um local para se testar a porta. Nela, voc
pode setar ou ressetar os bits da porta, para saber se a mesma est
funcionando. Para que o teste inicie, voc deve clicar em Run no
alto da janela.
Crie um BD similar ao mostrado abaixo:

Minicurso LabVIEW 8.2


Grupo PET Engenharia Eltrica Universidade do Estado de Santa Catarina



66

Ilustrao 30 - BD para acionamento dos LEDs

O respectivo FP:


Ilustrao 31 - FP para acionamento dos LEDs


Do jeito que esse VI est, o usurio pode acionar, manualmente, os
LEDs ligados Port0. Para isso, basta alterar o valor do elemento
dentro do array intitulado data. Voc ver que os LEDs acendem e
apagam conforme o valor inserido nesse elemento e que eles
refletem o equivalente binrio desse nmero.
Como podemos perceber, a Port0 possui 8 bits e pode representar
valores entre 0 e 255. Por conta disso, vamos alterar o tipo do
elemento do array data para que ele no ultrapasse esses limites.
Clique com o boto direito sobre o bloco data no BD. V em
representation e clique em U8 (Unsigned Byte).
Pronto. Agora voc garante que no ocorrer overflow.
Podemos fazer uma pequena mudana nesse VI para que o
acionamento dos LEDs acontea de maneira automtica e
incremental.
Faa o seguinte BD:

Minicurso LabVIEW 8.2


Grupo PET Engenharia Eltrica Universidade do Estado de Santa Catarina



67

Ilustrao 32 - FP para acionamento automtico dos LEDs

Note que s foram alteradas duas partes do BD: inseriu-se um
incrementador, para que o valor de data seja acrescido de 1 em cada
iterao e o valor incrementado escrito novamente na varivel
data, utilizando-se uma Local Variable.
Quando voc rodar esse VI voc ver que os LEDs acendem
seqencialmente, com um perodo igual (aproximadamente) ao valor
que inserido na funo Wait.
Altere o valor passado para a funo Wait e voc ver o resultado
refletido no acendimento dos LEDs.
Agora, utilizando o mesmo VI como base, vamos inserir a utilizao
das chaves digitais para que as mesmas controlem o acendimento
dos LEDs.
Crie um outro DAQ Assistant, dessa vez clique em Acquire Signals,
Digital Input, Port Input.
Selecione a Port1. Clique em Finish.
A mesma tela para teste do mdulo se abrir, s que dessa vez ela
tem as funcionalidades de entradas digitais. Clique em OK.
Deixe seu VI como o seguinte:

Minicurso LabVIEW 8.2


Grupo PET Engenharia Eltrica Universidade do Estado de Santa Catarina



68

Ilustrao 33 - BD para acionamento dos LEDs por intermdio das chaves digitais.

Quando voc pressionar as chaves, os respectivos LEDs se
acendero. Isso apenas um pequeno exemplo de utilizao de
entradas digitais, completamente intil.
Minicurso LabVIEW 8.2


Grupo PET Engenharia Eltrica Universidade do Estado de Santa Catarina



69
25.2. Aquisio e gerao de dados analgicos

A utilizao do mdulo USB-6009, para dados digitais, bastante
til, porm limitada. Agora, iremos cobrir a aquisio e gerao de
dados analgicos.
Abra o LabVIEW e crie um BD com um Loop While, um boto de
parada, uma funo Wait e uma constante numrica de valor 1 para
ser ligada na funo Wait. Crie um DAQ Assistant que adquira dados
analgicos, para tenses, utilizando a entrada ai0. A tela de teste do
mdulo se abrir. L, altere o valor de freqncia de amostragem
(Rate) para 10k.

Monte o BD e o FP mostrados abaixo:


Ilustrao 34 - BD para aquisio de dados analgicos


Com esse VI voc pode medir sinais entre -10V e 10V, como
num osciloscpio.
Para a utilizao nesse curso, geraremos um sinal analgico
com o mdulo USB-6009 e adquiri-lo com o prprio mdulo.
Crie outro DAQ Assistant, para adquirir dados analgicos, tipo
tenso, pela porta ao1.
Minicurso LabVIEW 8.2


Grupo PET Engenharia Eltrica Universidade do Estado de Santa Catarina



70
O seu BD deve ficar similar ao exemplo abaixo:


Ilustrao 35 - BD para aquisio e gerao de dados analgicos
Minicurso LabVIEW 8.2


Grupo PET Engenharia Eltrica Universidade do Estado de Santa Catarina



71
26. Configurao do BCC32

Baixe o pacote do compilador BCC32 no seguinte link:

http://cc.embarcadero.com/Free.aspx?id=24778

Instale o pacote onde voc quiser, s lembre-se bem onde fica
esse local.
Para poder utiliz-lo, crie um arquivo chamado bcc32.cfg, na
pasta bin, no local onde voc instalou o compilador.
Esse arquivo do tipo texto, portanto, voc pode edit-lo no bloco de
notas, por exemplo. Nesse arquivo escreva essas duas linhas:
-I"c:\Borland\Bcc55\include"
-L"c:\Borland\Bcc55\lib"

Crie, no mesmo local, um arquivo chamado ilink32.cfg e insira a
seguinte linha:
-L"c:\Borland\Bcc55\lib"

Com os privilgios de administrador, v no Painel de Controle.
Clique em Sistema, Avanado, Variveis de Ambiente.
Encontre a varivel de ambiente Path na lista de baixo e clique em
Editar.
V ao fim da lista e insira o caminho para os executveis do
BCC32.
Normalmente essa pasta fica em:
C:\Borland\BCC55\Bin
Mas o local onde voc instalou o pacote de ferramentas da
Borland.
Pronto, o conjunto de ferramentas da Borland j est pronto
para ser utilizado.
Minicurso LabVIEW 8.2


Grupo PET Engenharia Eltrica Universidade do Estado de Santa Catarina



72
MINICURSO DE LabVIEW 8.2

Escrito por: Jos Gregrio do Rozrio e Gustavo Lambert, 2009

Edio Revisada: Gustavo Lambert, 2010





APOIO:

También podría gustarte