Você está na página 1de 12

2 LabVIEW - Exerccios de introduo

LabVIEW - Exerccios de introduo ................................................................................................................. 1


2.1

Objectivo .................................................................................................................................................... 1

2.2

Introduo .................................................................................................................................................. 1

2.3

Ambiente de programao......................................................................................................................... 2

2.4

Paleta de Funes e Paleta de Controlos.................................................................................................. 3

2.5

Paleta de Ferramentas .............................................................................................................................. 3

2.6

Ajuda em Contexto .................................................................................................................................... 4

2.7

VI Hello World ......................................................................................................................................... 4

2.8

Executar um VI .......................................................................................................................................... 5

2.9

Exerccios resolvidos ................................................................................................................................. 6

2.9.1

Soma de dois nmeros ....................................................................................................................... 6

2.9.2

Ligar e desligar um LED no Painel Frontal ......................................................................................... 7

2.9.3

Contador de vezes que se prime um boto ........................................................................................ 8

2.9.4

LED "pisca-pisca" ............................................................................................................................... 8

2.9.5

Processador de Texto ...................................................................................................................... 9

2.9.6

Ficheiro de dados ............................................................................................................................. 11

2.10

2.1

Exerccios propostos.............................................................................................................................. 11

Objectivo

Esta abordagem linguagem de programao 'G' tem por objectivo dar a conhecer o ambiente de programao
do LabVIEW e proporcionar a possibilidade de desenvolver e executar alguns exerccios simples, criando
aplicaes informticas.
Com a realizao deste trabalho pretende-se que o aluno fique capaz de:
- distinguir as diferentes aces especficas da programao no Painel Frontal (Front Panel) e no Diagrama de
Blocos (Block Diagram);
- usar as diferentes Paletas (de funes, controlos e ferramentas) e conhecer a forma como esto agrupadas e
organizadas as vrias funes disponveis;
- modificar as propriedades dos elementos grficos do Painel Frontal;
- desenvolver e executar pequenos programas.

2.2

Introduo

O desenvolvimento de uma aplicao informtica em LabVIEW segue uma lgica que tem algumas semelhanas
com o desenho simblico de circuitos electrnicos.
Na Figura 2.1 pode observar-se um exemplo de programao em que os dois valores numricos (12 e 3) no
interior das respectivas molduras (rectngulos) esto ligados por linhas a um dos lados da funo soma (de
forma triangular) estando, do outro lado, uma outra linha. Nesta linha est o resultado da execuo da
programao, ou seja, a soma dos valores numricos. H muita semelhana com o desenho simblico de um
amplificador operacional em que um sinal entra atravs de fios, amplificado e fica disponvel sada.
Figura 2.1 - Exemplo de programao em G - soma de dois nmeros.

Verso 2.01 - Abril 2013 - Instrumentao II - Faculdade de Cincias e Tecnologia da UNL

1/12

Enquanto que num circuito electrnico a corrente elctrica que flui, em LabVIEW pode imaginar-se que a
informao que flui atravs de uma linha ("fio") at funo que a ir processar. A linguagem de programao
assume assim um aspecto grfico (G) e caracteriza-se por ser uma programao orientada por fluxo de
informao.
Numa linguagem de programao convencional a programao desenvolve-se principalmente com o recurso a
variveis que so manipuladas por funes. Em linguagem G no h variveis (ver-se-o mais tarde algumas
excepes), o que obriga a uma estratgia de programao completamente diferente.
A aplicao desenvolve-se atravs do recurso a elementos grficos de programao e do "desenho" das
ligaes entre si.
No s a forma algo semelhante ao desenho de circuitos que faz com que a programao em G seja apelativa
para quem desenvolve instrumentao baseada em computadores. Com efeito, a linguagem de programao G
foi desenvolvida com o objectivo de facilitar a programao da comunicao entre os computadores e a
electrnica de aquisio de dados e de controlo de processos. A este objectivo acrescentou ainda a facilidade de
comunicao, atravs de vrios protocolos, entre computadores e instrumentos.

2.3

Ambiente de programao

Para construir a aplicao que se apresenta como exemplo na Figura 2.2, o LabVIEW disponibiliza um vasto
conjunto de possibilidades a que se chama, de forma genrica, ambiente de programao.
O Painel Frontal [Front Panel, Figura 2.2.a)] e o Diagrama de Blocos [Block Diagram, Figura 2.2.b)] constituem
um VI - Virtual Instrument e fazem parte do ambiente de programao. Os VI podem ser gravados no disco rgido
num ficheiro nico. Uma aplicao (ou programa) desenvolvida em LabVIEW tem que ter pelo menos um VI.
no VI que realizada toda a programao em G, tanto no Painel Frontal como no Diagrama de Blocos. Estas
janelas esto interligadas, pelo que uma aco numa delas pode ter correspondncia na outra. Um VI no uma
aplicao, mas pode funcionar como tal no ambiente de programao.
No Diagrama de Blocos o programador desenvolve a aplicao dispondo as vrias funes pretendidas e
ligando-as por linhas ("fios"). No Painel Frontal o programador desenvolve a interface grfica que ir permitir a
interaco do utilizador final com a aplicao.

a)

b)

Figura 2.2 - Janelas para desenvolvimento de VI: a) Diagrama de Blocos e b) Painel Frontal.

1.

Execute o LabVIEW e, na janela que se abre, escolha criar um novo VI New, Blank VI.

Depois da aco anterior so visualizados os vrios menus do ambiente de programao bem como as janelas
com os Diagrama de Blocos e Painel Frontal, prontos para comear a serem programados. Porm, til
conhecer primeiro, genericamente, as principais aces que podem ser exercidas directamente sobre eles.
2.

Abra o menu WINDOW e seleccione SHOW BLOCK DIAGRAM. Abra novamente o menu WINDOW,
observe e memorize a combinao de teclas da opo SHOW FRONT PANEL. Com o teclado, execute
a combinao de teclas vrias vezes para se familiarizar com a activao do Diagrama de Blocos ou do
Painel Frontal.

Se, em dado momento, uma das janelas, do Diagrama de Blocos ou do Painel Frontal, no se encontrar visvel
(ou activa), possvel activ-la atravs do menu WINDOW/SHOW BLOCK DIAGRAM ou WINDOW/SHOW
FRONT PANEL ou da combinao de teclas atrs referida.
3.

Verifique que tambm pode alternar entre as janelas premindo o boto esquerdo do rato com o cursor
em cima da janela (Diagrama de Blocos ou Painel Frontal) que quer activar.

Verso 2.01 - Abril 2013 - Instrumentao II - Faculdade de Cincias e Tecnologia da UNL

2/12

O ambiente de programao disponibiliza tudo o que necessrio para efectuar a programao do VI. Todos os
elementos grficos de programao esto em janelas ou menus e podem ser colocados no Diagrama de Blocos
ou no Painel Frontal do VI. O ambiente de programao disponibiliza ainda Ajuda (Help), Ajuda em Contexto
(Context Help), acesso a exemplos e instrues para uso dos elementos grficos de programao.

2.4

Paleta de Funes e Paleta de Controlos

A maior parte dos elementos grficos de programao encontra-se em duas janelas: a Paleta de Funes
(Function Pallete) e a Paleta de Controlos (Controls Pallete) (ver Figura 2.3). A primeira dispe da maioria dos
elementos grficos de programao a serem usados no Diagrama de Blocos [Figura 2.3.a)] e a segunda a
maioria dos que se destinam a ser usados no Painel Frontal [Figura 2.3.b)]. Como s uma destas janelas est
activa de cada vez (ou o Diagrama de Blocos ou o Painel Frontal), apenas possvel aceder a uma destas
paletas de cada vez.
As paletas podem no estar visveis (para no ocuparem espao no monitor do computador, por exemplo).
Podem tambm estar visveis apenas provisoriamente.
4.

Active ou desactive a visualizao das paletas no menu VIEW/FUNCTION PALETTE ou


VIEW/CONTROLS PALLETE, conforme a janela activa do VI. Repita a aco anterior com a outra
janela do VI activa.

5.

Active, vez, cada uma das paletas e observe-as enquanto desloca o cursor do rato sobre elas.
Observe a organizao das paletas com as vrias funes e controlos.

6.

Desactive ambas as paletas.

7.

Com o Diagrama de Blocos activo, pressione o boto direito do rato com o cursor sobre uma zona livre
do mesmo (sem nenhum elemento grfico de programao).

8.

Repita a aco com o Painel Frontal activo.

Figura 2.3 - Paletas com elementos grficos de


programao. a) Paleta de Funes, do Diagrama
de Blocos. b) Paleta de Controlos, do Painel
Frontal.

a)

b)

As paletas disponibilizam os elementos grficos de programao, mas estes precisam depois de ser deslocados,
modificados, ligados, etc. Para isso esto disponveis vrias ferramentas especficas para cada uma dessas
aces.

2.5

Paleta de Ferramentas

Para desenvolver (desenhar) a programao o LabVIEW disponibiliza uma Paleta de Ferramentas (Tools
Pallete). Com a escolha da ferramenta adequada possvel seleccionar e deslocar os elementos grficos de
programao, desenhar os fios (linhas), inserir texto e vrias outras aces. A escolha da ferramenta pode ser
feita pelo utilizador ou ento ser completamente automtica. O cursor do rato assume diferentes formas
consoante a ferramenta que estiver seleccionada e pronta a ser usada.

Verso 2.01 - Abril 2013 - Instrumentao II - Faculdade de Cincias e Tecnologia da UNL

3/12

Figura 2.4 - Paleta de Ferramentas.

9.

No menu VIEW escolha a opo SHOW TOOLS PALETTE. Observe as imagens associadas a cada
uma das ferramentas.

Na tabela 1 esto identificadas algumas das ferramentas disponveis. Certifique-se que a escolha de ferramenta
est em modo automtico e mantenha esse estado.
Tabela 1 - Algumas das ferramentas da Paleta de Ferramentas.
Automtico (o LabVIEW determina, em funo da posio do cursor, qual a ferramenta adequada).
Seleccionar o elemento grfico, desloc-lo, redimension-lo, etc...
Inserir ou editar texto
Estabelecer ligaes (desenhar linhas)

2.6

Ajuda em Contexto

No ambiente LabVIEW esto disponveis vrias formas de ajuda programao. A mais imediata a existncia
de uma janela com as informaes mais relevantes acerca de algumas funes ou elementos grficos de
programao. Para activar a janela de Ajuda em Contexto v ao menu Help e seleccione Context Help. De
seguida, para experimentar o seu funcionamento, active a janela com o Diagrama de Blocos e a Paleta de
Funes. Com o cursor aponte para um dos vrios elementos grficos de programao existentes na paleta.
Observe o que acontece na janela da Ajuda em Contexto. Nesta janela ir aparecer um conjunto de informaes
teis acerca do elemento grfico. Na janela de ajuda poder ainda haver uma ligao ao manual da funo, que
explica em detalhe o seu funcionamento (Detailed Help) e que poder dispor de VIs com exemplos de como
pode ser usada.

2.7

VI Hello World

Neste exerccio iremos criar uma pequena aplicao que ter por objectivo simplesmente fazer aparecer, no
monitor do computador, a frase Hello World.
10. Active o Painel Frontal.

11. Recorrendo Paleta de Controlos, coloque o cursor do rato sobre Strings & Path

e, na janela que

se abre, pressione o boto esquerdo do rato sobre String Indicator


. Desloque o cursor do rato
para uma zona sobre o Painel Frontal, observe a indicao visual de que est a deslocar um elemento
grfico e pressione o boto esquerdo do rato no local onde quer posicion-lo (em qualquer altura
poder mover o elemento para outra posio).
Iniciou a programao em G. O elemento que acabou de posicionar chama-se String. Tanto as funes como os
controlos so deslocados para o Diagrama de Blocos ou para o Painel Frontal atravs dum processo semelhante
ao que acabou de executar. Verifique se obteve um resultado semelhante ao da Figura 2.5.a).
12. Seleccione a janela do Diagrama de Blocos e observe que nele passou a existir um elemento grfico
designado String.
O elemento que acabou de observar a representao do elemento String colocado anteriormente no Painel
Frontal. O nome obrigatoriamente o mesmo porque correspondem ao mesmo. Aquilo que vier a ser feito sobre
a String no Diagrama de Blocos reflectir-se- no que o utilizador final ir observar na String existente no Painel
Frontal.

13. Atravs do mesmo processo coloque no Diagrama de Blocos a funo String


, String Constant
, esquerda do elemento String l colocado previamente e utilize o teclado para escrever
imediatamente Hello World. Para editar ou reeditar o texto pressione o boto esquerdo do rato duas
vezes em sucesso rpida com o cursor sobre o texto.
Verso 2.01 - Abril 2013 - Instrumentao II - Faculdade de Cincias e Tecnologia da UNL

4/12

Figura 2.5 - VI Hello World: a) Painel Frontal, e b)


Diagrama de Blocos.

a)

b)

14. Prima o boto esquerdo do rato com o cursor numa zona livre do Diagrama de Blocos (para sair do
modo de edio de texto). Desloque o cursor sobre os elementos grficos que colocou no Diagrama de
Blocos. Observe que a forma do cursor muda consoante o local onde se encontra posicionado sobre os
elementos grficos.
15. Aproxime o cursor do rato da parte direita da moldura do elemento String Constant (representado
apenas por uma moldura rectangular). Procure a posio certa para que o cursor tenha a forma
.
Nessa altura prima o boto esquerdo do rato e desloque-o em direco parte esquerda do elemento
String. Visualize o desenho, provisrio, de uma linha. Volte a pressionar o boto esquerdo do rato no
momento em que houver uma alterao visual do elemento String. O objectivo unir por um fio os dois
elementos: String Constant a String. Verifique se foi o que aconteceu ao aparecer uma linha
permanente de aspecto diferente da linha provisria. O aspecto dever ser semelhante ao ilustrado na
Figura 2.5.b)
Acabou de desenvolver um VI que pode ser executado no ambiente de programao.
A interface grfica, desenvolvida no Painel Frontal, a principal forma de interaco do utilizador com um VI (e
portanto, com uma aplicao informtica). Uma aplicao que no permita a interaco do utilizador ter pouco
valor (salvo excepes especficas).
No Painel Frontal h duas formas principais de interaco com o utilizador: aquelas que permitem alterar dados
que so processados pela aplicao ou condies de execuo; e as que mostram os resultados teis para o
utilizador. As primeiras so designadas Controlos e as segundas Indicadores. O elemento (nico) no Painel
Frontal do VI Hello World um Indicador mostra um resultado.

2.8

Executar um VI

Observe os primeiros quatro botes na parte superior de qualquer uma das janelas do VI:
primeiro, esquerda,

. O

, permite iniciar a execuo do VI.

16. Seleccione a janela do Painel Frontal e execute o VI. Observe o resultado; dever ser semelhante ao da
Figura 2.6.
O ambiente de programao no permite a execuo de um VI que tenha erros. Nessas circunstncias o boto
de execuo fica desactivado e apresenta-se com o smbolo
. Ao tentar a execuo nestas circunstncias o
ambiente de programao ir abrir uma janela com a identificao dos erros detectados.

Figura 2.6 - Resultado da execuo do VI.

Ao premir o boto de execuo o VI ir ser executado uma nica vez. No entanto, em ambiente de programao,
possvel fazer com que o VI, depois de executado, volte novamente a ser executado de forma automtica e
sucessiva. Este modo de execuo, em contnuo, consegue-se premindo o segundo boto

Verso 2.01 - Abril 2013 - Instrumentao II - Faculdade de Cincias e Tecnologia da UNL

5/12

Na execuo de um VI em contnuo necessrio haver a possibilidade de interromper a sua execuo. Isso


feito atravs do terceiro boto
. Este boto serve para interromper tambm a execuo de um VI em qualquer
altura, mesmo que no esteja a ser executado em contnuo.
O quarto boto,
, permite parar a execuo do VI, seja em modo nico seja em modo contnuo, e retomar
posteriormente a sua execuo no local onde foi interrompida.
As funes que estes quatro botes providenciam so muito teis na execuo de VI em ambiente de
programao, mas no devem fazer parte da aplicao final a desenvolver (embora possam).

2.9

Exerccios resolvidos

Apenas uma parte muito reduzida de funes do ambiente de programao foram usadas at ao momento.
Espera-se que com a execuo dos exerccios que se propem de seguida sejam criadas oportunidades de
explorao livre de outras funes.

2.9.1

Soma de dois nmeros

Exerccio 1: Desenvolva um VI que permita ao utilizador introduzir dois nmeros e visualizar o resultado da sua
soma.
Soluo:
Na abordagem resoluo de um problema, ajuda pensar em termos do que necessrio que exista no Painel
Frontal. O utilizador final precisa de, no Painel Frontal, introduzir dois nmeros. Isso pode ser feito com dois
Controlos Numricos (Numeric Control) que esto disponveis na Paleta de Controlos. Para visualizar o resultado
da soma precisa de um Indicador Numrico (Numeric Indicator), disponvel na mesma paleta. O Painel Frontal
precisa ento de ter dois controlos e um indicador (todos eles numricos). A programao no Painel Frontal
consiste em colocar nele estes elementos grficos de programao e distribu-los na forma que parecer mais
adequada e intuitiva de usar.
A programao no Diagrama de Blocos simples: faz-se chegar os valores numricos entrada de uma funo
soma e a sada desta liga-se ao indicador. A funo soma est disponvel na Paleta de Funes. As ligaes so
feitas com linhas (fios).

Painel Frontal

Diagrama de Blocos

Figura 2.7 - Soma de dois nmeros.

Uma soluo mais sofisticada para o Painel Frontal pode ser a da Figura 2.8. O Diagrama de Blocos
exactamente o mesmo. O exemplo no para ser reproduzido; destina-se apenas a demonstrar que a interface
grfica com o utilizador pode ser melhorada a partir dos elementos de programao grfica iniciais
disponibilizados pelo ambiente de programao.

Verso 2.01 - Abril 2013 - Instrumentao II - Faculdade de Cincias e Tecnologia da UNL

6/12

Figura 2.8 - Painel Frontal alternativo (as imagens esto todas na mesma escala)
Esta soluo funciona bem em modo de execuo contnua. Ao alterar uma das parcelas deve premir-se de
seguida a tecla Return do teclado. S depois o valor da soma actualizado no indicador com o resultado da
soma. Pode-se obter a mesma aco premindo o boto esquerdo do rato com o cursor fora da zona de edio
do nmero.
Na verso final de uma aplicao deve evitar-se a necessidade de usar o modo de execuo contnua: as
aplicaes a desenvolver devem permitir uma forma de funcionamento equivalente e permitir a sua interrupo
atravs de um boto prprio (o equivalente funo "Sair", "Quit" ou "Exit" em aplicaes como, por exemplo, o
MS Word).
Exerccio 2: Altere a funo aritmtica usada. Escolha a funo multiplicao ou outra, da Paleta de Funes.

2.9.2

Ligar e desligar um LED no Painel Frontal

Exerccio 1: Desenvolva um VI que permita ao utilizador actuar um interruptor e observar atravs do estado de
um LED (aceso ou apagado) o estado do interruptor (ligado ou desligado). O VI deve funcionar em modo
contnuo, sem recorrer funo existente no ambiente de programao, e por isso o utilizador deve ter
disposio um boto para interromper o modo de execuo.
Soluo:
H necessidade de colocar dois controlos no Painel Frontal: um interruptor para o LED e um boto para parar a
execuo. E ainda um indicador: o LED. No Diagrama de Blocos, para fazer com que as funes do VI estejam
em permanente execuo, necessrio utilizar um ciclo, while, por exemplo, associado ao boto de paragem.

Painel Frontal

Diagrama de Blocos

Painel Frontal alternativo

Figura 2.9 - Acender e apagar um LED.

Num ciclo while, o cdigo no seu interior executado repetidamente at que a condio de paragem seja
atingida. Neste caso a presso no boto stop com o consequente envio de uma varivel booleana Verdade
(True) para a condio de paragem de execuo do ciclo, . Este elemento grfico, bem como o elemento
grfico , surge quando se introduz o ciclo while no diagrama de blocos (no esto na Paleta de Funes). O
elemento
indica o nmero de ordem de execuo do cdigo no interior do ciclo while nmero da iterao
em execuo.
Exerccio 2: Observe, adicionando um indicador no Painel Frontal, o nmero de iteraes executadas

Exerccio 3: Insira o seguinte bloco de programao no interior do ciclo while e observe novamente o nmero de
iteraes executadas.

Verso 2.01 - Abril 2013 - Instrumentao II - Faculdade de Cincias e Tecnologia da UNL

7/12

Exerccio 4: Observe a diferena de funcionamento mecnico do interruptor e do boto de presso. Altere a


forma de funcionamento do interruptor para que funcione como um boto de presso. A alterao do
comportamento mecnico do interruptor pode fazer-se premindo o boto direito do rato com o cursor sobre o
interruptor. No menu que disponibilizado existe a funo Aco Mecnica (Mechanical Action) que permite
escolher um de vrios comportamentos mecnicos.

2.9.3

Contador de vezes que se prime um boto

Exerccio 1: Desenvolva um VI que disponha de um boto a ser premido pelo utilizador e que informe este do
nmero de vezes que o boto j foi premido. A execuo s dever ser interrompida quando o utilizador premir
um boto especfico para o efeito.
Soluo:
No Painel Frontal dever haver dois botes e um indicador numrico. No Diagrama de Blocos iremos utilizar
novamente um ciclo while com o respectivo boto de stop associado.
No Diagrama de blocos, e em cada iteraco, preciso verificar se o utilizador premiu o boto ou no
precisa uma comparao. Se o boto for premido necessrio adicionar uma unidade ao valor do contador
actual; caso contrrio no ser necessrio alterar o contador preciso uma funo que incremente uma
unidade a um dado valor. A dificuldade est em saber, em cada iteraco, qual o valor actual do contador.
necessrio guardar o valor do contador de umas iteraces para as outras, mas o ambiente de programao no
dispe de variveis (h excepes). Por outro lado, ao terminar a execuo de uma iteraco termina tambm o
fluxo da informao. Como faz-la transitar para o ciclo seguinte? H trs possibilidades para o fazer em
LabVIEW. Iremos utilizar o Shift Register, mas tambm poderamos usar o Feedback Node. No existe o
equivalente a estas funes noutras linguagens de programao. Esta uma forma, grfica, de resolver a
necessidade de transpor uma determinada informao duma iteraco para a seguinte.

Painel Frontal

Diagrama de Blocos

Painel Frontal alternativo

Figura 2.10 - Contador de "cliques".

O Shift Register faz parte do prprio ciclo while. Para o criar posicione o cursor em cima do lado direito (ou
esquerdo) da fronteira do ciclo e pressione o boto direito do rato. O Shift Register uma das opes da lista
que apresentada.
Exerccio 2: Acrescente a terminao automtica da execuo do VI quando o boto for premido cinco vezes.
Ser preciso comparar o valor do contador com a constante numrica 5 e, caso se verifique uma igualdade,
enviar uma varivel booleana Verdade para a condio de terminao do ciclo. Mantenha o boto stop; faa com
que o ciclo termine caso seja premido o boto stop ou seja atingida a igualdade.

2.9.4

LED "pisca-pisca"

Exerccio 1: Desenvolva um VI que permita ao utilizador actuar um interruptor e, sempre que este estiver ligado,
dever haver um LED no Painel Frontal que estar, sucessivamente, ligado durante meio segundo e desligado
durante outro meio segundo. A execuo do VI s dever terminar quando o utilizador pressionar um boto
especfico para tal.
Soluo:
No Painel Frontal dever haver um boto, um interruptor e um LED. O boto servir para interromper a execuo
do ciclo while. No Diagrama de Blocos, para alm do ciclo while, ter que haver uma funo para controlar o
tempo que o LED ir estar acesso ou apagado. necessrio saber em que estado est o LED dumas iteraces
para as outras para que, decorrido meio segundo, possa ser alterado.
Verso 2.01 - Abril 2013 - Instrumentao II - Faculdade de Cincias e Tecnologia da UNL

8/12

Figura 2.11 - LED "pisca-pisca".

Optou-se por utilizar a funo Elapsed Time para controlar o tempo que o LED est aceso ou apagado. Ao inserir
esta funo no Diagrama de Blocos ir-se- abrir uma janela. Observe as opes e altere Elapsed time (seconds)
para 0.5. Pressione o boto OK para executar a alterao. Para transferir o valor do estado do LED dumas
iteraces para as outras associou-se um Feedback Node (
) ao ciclo while (a sua funo equivalente do
Shift Register) A programao do ciclo if - False limita-se a transferir o estado do LED sem qualquer alterao
para a iteraco seguinte.
A funo Feedback Node est na Paleta de Funes, no entanto ela pode ser colocada automaticamente no
Diagrama de Blocos quando se desenha uma "retroaco" dum determinado dado.
Exerccio 2: Altere o VI por forma a que o tempo que o LED est acesso (0.2 s, por exemplo) seja diferente do
tempo em que est apagado (0.8 s, por exemplo). Pretende-se temporizar tempos diferentes usando a mesma
funo Elapsed Time. Assim, ao acender o LED deveremos transferir para esta funo o novo Time Target (o
tempo que se pretende que o LED esteja acesso) e, da mesma forma, quando se apagar o LED deve-se
transferir para Elapsed Time o novo valor de Time Target (o tempo que se pretende que o LED esteja apagado).
O Time Target est disponvel como um parmetro de entrada da funo Elapsed Time. Com a Ajuda em
Contexto activa, posicione o cursor do rato sobre a funo Elapsed Time e observe a designao dos
parmetros de entrada e sada da funo.
A definio dos dois tempos a usar pela funo Elapsed Time deve ser feita no ciclo if - True uma vez que aqui
que o estado do LED alterado. O valor do Time Target deve ser escolhido e transferido para a funo Elapsed
Time na iteraco seguinte (sugere-se o uso de um Shift Register).
Exerccio 3: Faa com que o LED fique azul claro quando estiver aceso e azul escuro quando estiver apagado.
Use a possibilidade de editar as propriedades do LED. As propriedades do LED podem ser acedidas na janela
que se abre quando se prime o boto direito do rato com o cursor sobre o LED. Esta a tcnica para aceder s
propriedades de qualquer elemento grfico, tanto no Diagrama de Blocos como no Painel Frontal.
Exerccio 4: Acrescente uma nova funo Elapsed Time e use-a para mostrar ao utilizador o tempo decorrido
(em segundos) desde que o VI foi executado.

2.9.5

Processador de Texto

Exerccio 1: Desenvolva um VI que permita ao utilizador escrever um pargrafo e que, atravs da presso num
boto, o envie para uma janela de texto onde ser acrescentado ao texto que j l existir. A execuo do VI s
dever terminar quando o utilizador pressionar um boto especfico para tal.
Soluo:
No Painel Frontal dever haver dois botes, um controlo de texto (String Control) e um indicador de texto (String
Indicator). Um dos botes servir para enviar o pargrafo para a janela de texto e o outro para terminar a
execuo do VI. O controlo de texto permitir a insero de texto a partir do teclado (chamemos-lhe Text to
send) e o indicador de texto servir como janela onde os pargrafos se iro acumulando (chamemos-lhe
Report).
No Diagrama de Blocos iremos utilizar novamente um ciclo while com o respectivo boto de stop associado.
necessrio saber, em cada ciclo, qual o texto que est no Report para que, em qualquer um dos ciclos

Verso 2.01 - Abril 2013 - Instrumentao II - Faculdade de Cincias e Tecnologia da UNL

9/12

posteriores, o utilizador possa acrescentar um novo pargrafo premindo o respectivo boto. Para isso
necessrio um Shift Register, por exemplo.

Figura 2.12 - Processador de Texto.

Exerccio 2: Acrescente as seguintes funcionalidades: a) depois do utilizador premir o boto Send o texto em
Text to Send apagado; b) o utilizador deve poder apagar, em qualquer altura, o texto que estiver em Report; c)
e, finalmente, o utilizador deve ter a possibilidade de gravar o texto em Report num ficheiro de texto.
Soluo:
No Painel Frontal devero ser acrescentados mais dois botes: um que permita apagar todo o texto em Report; e
outro que permita gravar o texto em Report num ficheiro. Apagar o texto em Text to Send deve ser feito de forma
"automtica", sem necessidade de acrescentar mais controlos no Painel Frontal.
No Diagrama de Blocos, para implementar as duas novas funes (apagar tudo e gravar) iremos recorrer a ciclos
if (ver Figura 2.13): se um boto for premido ir-se- executar um conjunto de instrues, caso no seja premido,
no se far nada (o texto em Report enviado inalterado para o ciclo seguinte). Para apagar apenas o texto em
Text to Send iremos recorrer a uma Varivel Local (
).

Figura 2.13 - Processador de Texto melhorado.

Tanto os Controlos como os Indicadores podem ter (vrias) Variveis Locais. Estas foram criadas para resolver
algumas dificuldades da programao por fluxo de dados. Porm, a sua utilizao pode trazer dificuldades
acrescidas ao entendimento do funcionamento do VI e ser motivo para dificuldades na deteco de erros de
programao o seu uso deve por isso ser evitado ou moderado. Neste exerccio ela foi utilizada para se
sobrepor vontade do utilizador, ou seja, sendo Text to Send um controlo disposio do utilizador, atravs da
correspondente Varivel Local forou-se a que o seu contedo fosse modificado. H outras formas de conseguir
este mesmo resultado.
Para criar uma Varivel Local coloque o cursor sobre o controlo ou o indicador pretendido, prima o boto direito
do rato e no menu que se abre escolha Criar/Varivel Local (Create/Local Variable). Uma Varivel Local pode
ser usada como uma representao do controlo ou indicador. Pode ainda ser usada para ler o contedo ou para
se poder escrever o contedo do controlo ou indicador. Para alterar esta situao pode premir-se o boto direito
do rato com o cursor sobre a Varivel Local e, no menu disponibilizado, escolher a opo pretendida (Change to
Read ou Change to Write).

Verso 2.01 - Abril 2013 - Instrumentao II - Faculdade de Cincias e Tecnologia da UNL

10/12

2.9.6

Ficheiro de dados

Exerccio 1: Crie um VI que permita ao utilizador, atravs da presso num boto, gerar aleatoriamente um
nmero entre 20 e 30. Os nmeros gerados devem ser guardados num array com um mximo de 11 nmeros.
Depois acrescente a funcionalidade do array poder ser gravado num ficheiro atravs da presso num boto.
Soluo:
No Painel Frontal devero existir trs botes e um indicador (com os dez nmeros gerados). Escolheu-se para
este indicador um array numrico.
Ao ser pressionado o boto "Gerar dados" executada a parte verdadeira de um ciclo if onde gerado um
nmero aleatrio. Cada valor gerado inserido num array, sempre no ndice 0 (zero), enquanto os valores j
guardados ficam com o seu ndice aumentado em uma unidade. O array vai sendo preenchido ao mesmo tempo
que a funo Delete From Array vai apagando (eliminando) o valor com o ndice 10 (se e quando existir). Isto
garante que, de uma forma simples, o array ter no mximo 11 valores. Os valores inseridos mais recentemente
tm ndices mais baixos do que os que foram inseridos h mais tempo, o que faz com que, cronologicamente, o
array esteja "invertido". O resultado pode ser observado no indicador array a que foi atribudo o nome Dados.

Figura 2.14 - Gravao de Ficheiro de dados.

Para gravar os dados (que esto acessveis a partir do contedo do indicador Dados) num ficheiro optou-se por
usar a funo Write to Measurement File. Quando se insere esta funo no Diagrama de Blocos aberta uma
janela com vrias opes. Seleccione a opo "Ask user to choose file", para que o utilizador possa decidir, na
altura, com que nome e em que local do disco rgido do computador ir gravar o ficheiro com os dados.
Seleccione ainda a opo Overwrite File (isto vai evitar a criao de muitos ficheiros enquanto se experimenta o
funcionamento do VI). Estas opes podem ser mudadas mais tarde, em qualquer altura.
Para ter acesso aos dados em qualquer momento, optou-se por criar uma Varivel Local do array Dados,
embora tambm pudesse ser utilizado um Shift Register ou um Feedback Node.
A gravao de um ficheiro de dados feita com a funo Write to Measurement File. Como o array de dados foi
construdo de forma "invertida" (em relao aos ndices), pode-se aproveitar a altura em que o utilizador grava os
dados em ficheiro para voltar a inverter os valores. Isso feito atravs do recurso funo Reverse 1D Array.
Depois de executar o VI e gravar um ficheiro de dados, abra-o numa folha de clculo (como o Excel) e verifique a
variedade de informao que l se encontra. Experimente gerar vrios conjuntos de nmeros aleatrios e ir
gravando-os. Observe o ficheiro gerado com os vrios conjuntos de resultados. Numa das opes da funo
Write To Measurement File pode escolher-se acrescentar mais dados a um ficheiro j criado.
Exerccio 2: Adapte o VI por forma a no recorrer varivel local.

2.10 Exerccios propostos

Verso 2.01 - Abril 2013 - Instrumentao II - Faculdade de Cincias e Tecnologia da UNL

11/12

Iteraes por segundo


Crie um VI com um ciclo while que permita a visualizao, actualizada a cada 0.5 segundos, do nmero de
iteraes executadas por segundo.
Sugesto: use a funo Elapsed Time.

Gerao de sinal
Crie um VI que simule um gerador de sinais peridicos e que permita a sua visualizao no tempo. O utilizador
dever poder escolher a forma, a amplitude e a frequncia do sinal.

Sugesto: use a funo

, disponvel na paleta de funes em Signal Processing.

Lanamento duma moeda


Crie um VI que simule o resultado do lanamento de uma moeda (que gere nmeros aleatrios inteiros 0 ou 1).
Com o resultado simule um grfico de barras com a frequncia de cada resultado obtido.
Sugesto: crie contadores para cada resultado e visualise-os atravs do indicador numrico Vertical Progress
Bar.

Factorial
Desenvolva um VI que permita ao utilizador introduzir um nmero (inteiro) e que mostre o factorial desse
nmero.
Sugesto: utilize um ciclo for com um Shift Register (o Shift Register deve pertencer ao ciclo for e no ao ciclo
while). (Nota: o factorial de 10 3 628 800)

Figura 2.15 - Exemplo de Painel Frontal para o VI Factorial.

Histrico de reviso
Verso

Descrio

0.0

Criao.

5/2012

1.0

Reviso.

6/2012

1.1

Alterao do ponto 2.9.6 para exemplificar o uso de arrays e simplificar a


gravao do ficheiro de dados.

7/2013

2.0

Reviso e adaptao ao novo programa de Instrumentao II.

3/2013

2.01

Alterao da ordem dos exerccios propostos no ponto 2.10, da sugesto no


exerccio "Factorial" e outras pequenas revises.
VERSO NO PUBLICADA.

4/2013

Verso 2.01 - Abril 2013 - Instrumentao II - Faculdade de Cincias e Tecnologia da UNL

Data

12/12