Upload
buiquynh
View
216
Download
0
Embed Size (px)
Citation preview
2012 Joo Paulo Coelho
INTRODUO AO
1
OBJECTIVOS:o Introduo ao ambiente LabVIEWo Modelo de programao em Go Conceito de instrumentos virtuais (VI)
o Aquisio de dados e Data Logging
Curso de Curta DuraoCurso de Curta DuraoCurso de Curta DuraoCurso de Curta Durao2012
2012 Joo Paulo Coelho
0.0 SCADA SCADA - supervisory control and data acquisition
2
2012 Joo Paulo Coelho
Hacker ganha acesso no autorizado a sistema de controle de gua nos Estados Unidos e consegue destruir uma bomba de uma concessionria
3
0.1 SCADA
2012 Joo Paulo Coelho
0.2 Aplicaes do LabView
4
O que que o LabView capaz de fazer?
2012 Joo Paulo Coelho
O LabVIEW funciona segundo um modelo de fluxo de dados.
Um programa designado por Virtual Instrument ou VI.
A informao flui de fontes para drenos atravs de ligaes.
A informao (dados) so alterados ao longo do percurso.
5
1.0 Instrumentos Virtuais
2012 Joo Paulo Coelho
6
1.0. Instrumentos Virtuais
O LabVIEW suporta dois tipos de VI: VI internos VI criados pelo utilizador
VI internos so fornecidos pela aplicao e executam tarefas bsicas.
VI criados pelo utilizador consistem num GUI e num diagrama de blocos.
Um programa em LabVIEW definido sob duas plataformas:
2012 Joo Paulo Coelho
7
1.0. Instrumentos Virtuais
FONT-END Permite interagir directamente com o utilizador. Apresenta informao sobre o processo a
monitorizar ou controlar.
Permite ao utilizador modificar parmetros do sistema (SCADA)
2012 Joo Paulo Coelho
8
1.0. Instrumentos Virtuais
BACK-END Programa por detrs do FRONT-END. Programao feita numa linguagem grfica: G Tem a forma de um (ou mltiplos) diagrama de
blocos.
Permite a realizao de tarefas concorrentes
2012 Joo Paulo Coelho
2.0 Construo de um VI
New VI
9
2012 Joo Paulo Coelho
10
2.0 Ol Mundo...
1 Seleccionar sobre o menu Buttons & Switches um interruptor e coloc-lo no Front Panel.2 Seleccionar sobre o menu LEDs um indicador e coloc-lo ao lado do objecto anterior.
3 Alterar etiquetas dos objectos: fonte, tamanho, posio e cor.
2012 Joo Paulo Coelho
11
2.0 Ol Mundo...
4 Observe atentamente o Diagrama de Blocos.5 Posicione o ponteiro do rato em frente do boto ON/OFF e faa click com o boto esquerdo do mesmo.6 Posicione o ponteiro do rato em frente do pequeno tringulo do bloco Estado e faa click com o mesmo boto.7 Observe o aparecimento de uma ligao entre os dois blocos.
Ligaes distinguidas por cores e perfs.Essa distino depende do tipo de dados e blocos que se esto a ligar. Por exemplo:
Verde BooleanoRosa StringAzul Nmero InteiroLaranja Nmero real
2012 Joo Paulo Coelho
12
2.0 Ol Mundo...
8 Execuo e Teste... Para alm disso:Outras propriedades dos objectos...
2012 Joo Paulo Coelho
13
2.1 Propriedades
1 click com o boto direito do rato sobre o objecto...
2 seleco da opo Properties
2012 Joo Paulo Coelho
14
2.1 Propriedades
3 efectue as seguintes alteraes e observe o comportamento do objecto...
2012 Joo Paulo Coelho
15
4 efectue as seguintes alteraes e observe o comportamento do objecto...
2.1 Propriedades
2012 Joo Paulo Coelho
16
5 efectue as seguintes alteraes e observe o comportamento do objecto...
Alguns objectos podem comutar de papel CONTROL/INDICATOR ou INDICATOR/CONTROL
6 altere os comportamentos do interruptor e LED. Execute a simulao e conclua...
2.1 Propriedades
2012 Joo Paulo Coelho
17
2.1 Exerccios
EX1: Faa com que o LED fique com a cor preto quando inactivo e vermelho quando activo
EX2: Adicione outro LED ao Front Panel. Faa com que o mesmo interruptor ligue ambos os LEDs
EX3: Faa uma grelha (matriz) de 25 LED (cinco linhas com cinco LEDscada)
Utilize as ferramentas de alinhamento
2012 Joo Paulo Coelho
18
EX4: Coloque dois botes associados matriz anterior conforme se mostra na imagem direita.
A activao do boto da esquerda liga apenas os LED na diagonal. O boto da esquerda liga todos os outros. O boto da esquerda apenas permanece activo enquanto o utilizador o mantiver premido.(Utilize as opes em MechanicalAction para atribuir essas caractersticas aos botes)
2.1 Exerccios
2012 Joo Paulo Coelho
19
2.2 Operaes Lgicas
Operaes Lgicas Elementares
NEGAO (NOT)CONJUNO (AND)
DISJUNO (OR)
NEGAO
click com o boto direito do rato sobre a janela BlockDiagram e seleccionar:
ARITH&COMP\BOOLEAN\NOT
2012 Joo Paulo Coelho
20
2.2 Operaes Lgicas
Exemplo: Um Interruptor deve comandar o estado de dois LEDs. Quando um LED estiver ligado o outro deve estar desligado e vice-versa.
TABELA VERDADES:
ENTRADA SADA
VERDADE (1) FALSO (0)
FALSO (0) VERDADE (1)
2012 Joo Paulo Coelho
21
CONJUNO (E)
click com o boto direito do rato sobre a janela Block Diagram e seleccionar:ARITH&COMP\BOOLEAN\AND
2.2 Operaes Lgicas
MODELO DE COMPORTAMENTO
2012 Joo Paulo Coelho
22
Exemplo: Um LED apenas deve ligar quando dois interruptores se encontrarem fechados.
Exerccio: Um LED deve ligar quando dois interruptores estiverem ligados e um terceiro desligado.
2.2 Operaes Lgicas
2012 Joo Paulo Coelho
2323
DISJUNO (OU)
click com o boto direito do rato sobre a janela Block Diagram e seleccionar:ARITH&COMP\BOOLEAN\OR
MODELO DE COMPORTAMENTO
2.2 Operaes Lgicas
2012 Joo Paulo Coelho
2424
Exemplo: Um LED deve ligar quando um ou ambos os interruptores se encontrarem fechados.
Exerccio: Um LED deve ligar quando dois interruptores estiverem ligados OU quando um terceiro se encontrar desligado.
2.2 Operaes Lgicas
2012 Joo Paulo Coelho
252525
2.2 Operaes Lgicas
EX5: Obtenha as tabelas de verdades das operaes lgicas AND e OR
BOTO 1 BOTO 2 LEDF F ?F V ?V F ?V V ?
EX6: Desenhe um diagrama de blocos de modo que o LED apenas ligue quando o estado dos botes for diferente.
EX7: Controlo de uma bomba de gua... "Um depsito de gua alimentado por uma bomba que tira a gua de um
poo. O depsito serve para rega e abastecimento de gua a uma casa de
habitao. Pretende-se que a bomba s entre em funcionamento quando se tira
gua para rega, e simultaneamente, para a casa de habitao, ou quando a
gua do depsito no estiver acima de um determinado nvel"
2012 Joo Paulo Coelho
26
Procedimento de resoluo:1 Coloque a imagem (disponvel em www) como pano de fundo
Como?!
(1) Click com o boto
direito do rato na
barra de scroll
(2) Seleccionar
Properties no pop-up
menu
(3) Seleccionar Browse e
escolher a imagem
(4) Seleccionar Center
da pop-up box
(5) Confirmar em OK
2.2 Operaes Lgicas
2012 Joo Paulo Coelho
27
2.2 Operaes Lgicas
2 Utilize um LED (vermelho) para assinala a activao da bomba, LED (verdes) para assinalar a demanda de gua por parte da habitao e da rega e LED (azul) para o indicador de nvel de gua no tanque.
3 Utilize interruptores para simular o indicador de nvel do tanque e a demanda de gua pela habitao e rega.
E j est... O vosso primeiro prottipo de um ambiente SCADA
2012 Joo Paulo Coelho
28
2.3 Controlos numricos
1 Seleccionar sobre o menu NumericControls o objecto Knob
2 Seleccionar sobre o menu NumericIndicators o objecto numeric indicator
2012 Joo Paulo Coelho
29
3 Efectuar a seguinte ligao no diagrama de blocos e testar ...
4 Explorar as propriedades dos objectos:- Escalas- Aspecto- Etiquetas- etc.
2.3 Controlos numricos
2012 Joo Paulo Coelho
30
Boto direito do Rato sobre painel frontal abre lista de CONTROLOS
Numeric Indicators[Num Inds][Meter]
Arrastar o objecto e posicion-lo no painel frontal.Observe o objecto que criado na janela do diagrama de blocos.
2.3 Controlos numricos
2012 Joo Paulo Coelho
31
Boto direito do Rato sobre painel frontal
[Knob]
3.1 Controlos numricos
2012 Joo Paulo Coelho
32
1 Executar a ligao entre os dois blocos na janela Block Diagram
2 Executar Programa [Run Continuously]
3 Com ajuda do Rato girar o boto rotativo Knob e observar o movimento do painel de medida.
2.3 Controlos numricos
2012 Joo Paulo Coelho
33
2.4 Operaes de Comparao
Traduz num valor lgico o resultado de comparao de dois valores numricos.
EXEMPLO: O utilizador introduz dois valores, A e B. Se A for maior que B um LED vermelho aceso, se A for menor que B um LED verde aceso. Caso contrrio um LED azul aceso.
2012 Joo Paulo Coelho
34
Penso que o LabView a
resposta a todos os problemas...
EXEMPLO: Alarme de Temperatura Um LED deve acender se a temperatura aumentar acima de um valor pr-definido (SET-POINT). Esse limite deve ser definido por um objecto do tipo pointer slider e a temperatura do processo simulada por um knob
2.4 Operaes de Comparao
2012 Joo Paulo Coelho
35
1 Abrir caixa de ferramentas2 Seleccionar [Edit Text]3 Alterar o nome dos controlos.
4 Inserir Pointer SLIDER2 Inserir LED [Round LED]3 Alterar cor do LED:
Apagado = PretoAceso = Vermelho
2.4 Operaes de Comparao
2012 Joo Paulo Coelho
36
1 Inserir COMPARISION no diagrama de blocos2 Efectuar as seguintes ligaesNota: necessrio editar as propriedades do bloco COMPARISION de modo a admitir duas variveis de entrada
2.4 Operaes de Comparao
?!
2012 Joo Paulo Coelho
37
2.4 Operaes Aritmticas
OL... masquisto?
EXEMPLO: Converso de um ngulo de graus para radianos.
2012 Joo Paulo Coelho
38
Mquina de somar simples
A operao deve realizar-se sempre que o boto Executa premido.
2.4 Operaes Aritmticas
2012 Joo Paulo Coelho
39
EXERCCIO: Clculo do volume do fludo num tanque cilndrico.- O utilizador estabelece os parmetros geomtricos do tanque : altura e dimetro- Indicao de sobrecarga.
1 Colocar o modelo de um tanque no front panel
Num Inds > Tank
2.4 Operaes Aritmticas
2012 Joo Paulo Coelho
40
2 Alterar o comportamento do tanque de Indicador para Controlo.
3 Completar o resto da interface grfica com os seguintes objectos...
2.4 Operaes Aritmticas
2012 Joo Paulo Coelho
41
4 As seguintes condies devem verificar-se:i) O dimetro e altura do tanque so definidos pelo utilizador;ii) Admite-se que o valor da altura do lquido fornecido por um sensor;iii) Se o nvel do fludo estiver acima de da altura do tanque o LED deve acenderiv) O valor do volume do fludo deve ser apresentado no indicador numrico.
NOTA:
Volume do lquido = Altura do lquido x r2Onde r se refere ao raio do tanque (metade do dimetro)
Soluo ...
2.4 Operaes Aritmticas
2012 Joo Paulo Coelho
42
5 A altura do lquido nunca pode ser superior altura do tanque
necessrio alterar o valor mximo do tanque em funo do valor da altura do tanque introduzido pelo utilizador.
COMO FAZER ISSO?
J estou a ficar baralhada!
2.4 Operaes Aritmticas
2012 Joo Paulo Coelho
43
Qualquer propriedade de qualquer objecto pode ser alterada dinamicamente.(enquanto o programa est a ser executado).
!
click com o boto direito sobre o objecto cujo comportamento se pretende alterar(neste caso o bloco Tank no Block Diagram)
No pop-up menu seleccionar:
CREATE> PROPERTY NODE> SCALE> RANGE> MAXIMUM
2.4 Operaes Aritmticas
2012 Joo Paulo Coelho
44
Um novo objecto criado no Block Diagram. Por defeito aparece no modo READ (LEITURA)
Como pretendemos alterar o valor desse objecto necessrio alterar o modo para WRITE (ESCRITA)
O procedimento simples: click com o boto direito do rato sobre o objecto e seleccionar All to Write
2.4 Operaes Aritmticas
2012 Joo Paulo Coelho
45
Associando o valor introduzido pelo utilizador em Altura do Tanque na propriedade Maximum Scale do objecto Tank obtm-se o seguinte diagrama de blocos!
Ya! Ficou bem fixe...
2.4 Operaes Aritmticas
2012 Joo Paulo Coelho
46
2.4 Exerccios
EX 8: Desenhe um programa para LabView que execute as seguintes funes:- Soma dois nmeros e apresenta o resultado;- Multiplica os mesmos dois nmeros e apresenta o resultado;- Compara os dois resultados e acende um LED verde caso os valores
sejam idnticos.
EX 9: Pretende-se um programa para LabView que calcule o volume de um tanque (cilndrico) em dois sistemas distintos de unidades: em litros ou em galo (sistema Americano). Para isso o programa deve possuir um boto que permita seleccionar entre essas duas unidades.
NOTAS:
- 1 litro = 0.227 Galo e 1 Galo = 4.405 litros
- 1 dm3 = 1 litro
- Considere o dimetro do Tanque constante e igual a 1m- A altura do lquido no tanque dada em metros.
2012 Joo Paulo Coelho
47
2.5 Sequncias de caracteres
Sequncias de caracteres = STRINGS
Podem ser usadas em vrias situaes:- Mensagens de texto;- Passagem de dados numricos como strings;- Gravao de ficheiros de dados;
Existem controlos e indicadores do tipo string.
Aceitam todo o tipo de caracteres ASCII (incluindo o ENTER)
Os SINAIS e OBJECTOS no diagrama de blocos aparecem com a cor ROSA.
2012 Joo Paulo Coelho
48
2.5 Controlos STRING
EXEMPLOS: um programa elementar e as suas variantes...
Coloque os objectos String Ctrl e String Ind no Front Panel e efectue a ligao apresentada em baixo...
2012 Joo Paulo Coelho
49
2.5 Controlos STRING
Execute o programa e escreva Ol Mundo! na caixa de controlo. Comente o que observa...
clique com o rato fora da caixa e veja o que acontece...
Modifique a seguinte caracterstica da CAIXA de CONTROLO da String:
Execute o programa e volte a escrever Ol Mundo! . O que que se pode concluir?
2012 Joo Paulo Coelho
50
2.5 Controlos STRING
Altere a posio e dimenso dos objectos conforme se mostra na figura seguinte.
Preencha o EMISSOR com a seguinte lista de frutos (separados por ENTER) : Laranja, Pra, Abacate, Maa, Kiwi, Banana, Cco e Limo.
2012 Joo Paulo Coelho
51
Adicionar um Scroll s caixa de texto:
2.5 Controlos STRING
2012 Joo Paulo Coelho
52
2.5 Constantes STRING
Adicionar uma constante STRING ao diagrama de blocos...
2012 Joo Paulo Coelho
53
Adicionar um String Ind ao Front Panel, efectuar a ligao...Executar o programa!
2.5 Constantes STRING
Alguns atalhos !!!!
clique no pin para manter a paleta activa...
2012 Joo Paulo Coelho
54
2.5 Constantes STRING
2012 Joo Paulo Coelho
55
2.5 Constantes STRING
EXEMPLO O cdigo secreto.Desenhar um programa que acende um LED se o utilizador acertar na
palavra cdigo (password) composta por 4 caracteres.
1 Colocar um objecto String Ctrl e alterar as propriedades de acordo com a figura ao lado...
2012 Joo Paulo Coelho
56
2 Adicionar um LED ao painel frontal e um bloco comparador no diagrama de blocos
3 Efectuar as seguintes ligaes e executar o programa
2.5 Constantes STRING
2012 Joo Paulo Coelho
57
2.5 Constantes STRING
EXEMPLO O cdigo secreto - Parte II.Adicione um indicador numrico que apresente o nmero de caracteres
introduzidos.
2012 Joo Paulo Coelho
58
EX 10: O cdigo secreto.Considere a seguinte interface para uma aplicao para introduo de
password:
O LED ACESSO deve ficar verde se o cdigo introduzido for o correcto.
O LED ERRO deve ficar vermelho no caso do utilizador introduzir mais do que
quatro caracteres.
2.5 Exerccios
2012 Joo Paulo Coelho
59
3.0 Sinais e Grficos
Um SINAL algo que transporta INFORMAO
SINAIS
2012 Joo Paulo Coelho
60
3.1 Sinais e Grficos
Em instrumentao electrnica esse sinal normalmente elctrico:
- Variao de tenso;- Variao de corrente;- Variao de resistncia;- Variao de frequncia, fase, etc.
Tipos elementares de sinais:- Rudo;- Sinais peridicos;
. Sinusoidal;
. Triangular;
. Rectangular
DEMO com GERADOR DE
SINAIS
2012 Joo Paulo Coelho
Um grfico do tipo chart armazena e mostra um conjunto de valores. Esses pontos so guardados internamente num buffer (memria).
61
3.2 Grficos: charts
Chart?... Ento no
charter
2012 Joo Paulo Coelho
62
3.2 Grficos: charts
EXEMPLO: Gerador de rudo branco...
1 coloque o objecto Random Num no diagrama de blocos.
Este objecto gera um valor aleatrio entre 0 e 1
2012 Joo Paulo Coelho
63
3.3 Grficos: charts
2 Adicione um objecto chart interface grfica.
3 Efectue a ligao entre os dois componentes e execute o programa...
SUGESTO: Explore as propriedades do objecto chart clicando no boto direito do rato sobre o objecto.
2012 Joo Paulo Coelho
64
3.3 Grficos: graphs
Um grfico do tipo graph requer a informao seja introduzida como vector.
O vector funciona como buffer (memria).
Dou nota 20 ao chart e nota 20 ao graph...
2012 Joo Paulo Coelho
65
3.4 Gerador de Sinais
Sinais peridicos podem ser gerados facilmente com o bloco Simulate Sig
2012 Joo Paulo Coelho
66
3.4 Gerador de Sinais
A frequncia ( f ) no mais do que o inverso do perodo ( T ):
1f
T=
2012 Joo Paulo Coelho
67
Realizar um programa que apresente, num grfico, um sinal sinusoidal contaminado com rudo branco. A relao sinal/rudo deve poder ser alterada atravs de um knob
1 Inserir Grfico2 Inserir KNOB
3 Inserir SINAL
3.4 Gerador de Sinais
2012 Joo Paulo Coelho
68
4 Alterar propriedades do SIGNAL
6 Efectuar as ligaes
5 Alterar propriedade Maximum e Minimum do KNOB
3.4 Gerador de Sinais
2012 Joo Paulo Coelho
69
7 Simular: Girar o KNOB e verificar a evoluo da forma de onda.
Exerccio:
Repita o exerccio anterior adicionando botes para controlar a amplitude e frequncia do sinal.
Na mesma janela de visualizao possvel observar mais do que um trao simultneamente.
COMO? Atravs de um multiplexador
3.4 Gerador de Sinais
2012 Joo Paulo Coelho
70
3.5 Mux. de Sinais
Para juntar sinais num mesmo grfico deve aceder paleta Sig Manip e seleccionar o objecto Merge Signals
Utilizando o rato, e redimensionando o objecto Merge Signals no diagrama de blocos, extende-se o nmero de sinais que podem ser agregados...
2012 Joo Paulo Coelho
71
3.5 Mux. de Sinais
EXEMPLO: Apresentar na mesma janela uma onda sinusoidal e uma onda triangular com igual amplitude e frequncia.
EXERCCIO: Adicione ao grfico do exemplo anterior uma onda quadrada cujo ciclo de trabalho (dutty-cycle) possa ser alterado por um knob.
2012 Joo Paulo Coelho
72
3.6 Aritmtica com Sinais
possvel efectuar operaes algbricas sobre sinais: Soma, subtraco, multiplicao e diviso; Funes transcendentes (logaritmos,
exponenciais, etc.)
EXEMPLO: Apresentar o grfico da soma de duas sinusides com diferena de fase igual a 180. Devem ser apresentados os traados das funes individuais.
2012 Joo Paulo Coelho
73
EX 11: Faa um programa para LabView que seja capaz de apresentar a soma de uma sinuside com o seu harmnico de segunda ordem (sinal igual mas com o dobro da frequncia).
3.7 Exerccios
EX 12: Apresente num grfico o aspecto de um sinal do tipo rudo branco com valor mdio nulo.
A configurao desse sinal apresentado na figura ao lado. Deve ser adicionado um LED que deve acender sempre que a amplitude do sinal for maior que 0.5 ou menor que -0.5.
2012 Joo Paulo Coelho
74
4.0 Arranjos (arrays)
At ao momento apenas se trabalhou com nmeros escalares.
Em LabView um arranjo (array) consiste numa coleco de elementos todos do mesmo tipo.
Um array pode ter uma ou mais dimenses.
Num arranjo os elementos so acedidos pelos seus ndices.
Os ndices so numerados de 0 a N-1onde N se refere ao nmero de elementos do array.
Formas de onda so normalmente armazenadas em arrays.
...
0 1 2 N-1
Que complicado... Valha-me D. Afonso
Henriques!
2012 Joo Paulo Coelho
75
Quando se cria um arranjo necessrio atribuir-lhe um tipo de dados. Assim devem efectuar-se dois passos:
4.0 Arranjos (arrays)
1 Colocar o objecto ARRAY no diagrama de blocos
2012 Joo Paulo Coelho
76
2 Atribuir-lhe um tipo de DADOS:
4.0 Arranjos (arrays)
Numrico:(a) Seleccionar controlo numrico
(b) arrast-lo para dentrodo objecto ARRAY
(c) Libertar o boto do rato e ... volil
2012 Joo Paulo Coelho
77
ndice do elemento
Valor do elemento
Utilizando o rato a capacidade do array pode ser alterada para acomodar
mais elementos...
Entre outras formas, o array pode ser
preenchido elemento a elemento...
4.0 Arranjos (arrays)
2012 Joo Paulo Coelho
78
4.0 Arranjos (arrays)
EXEMPLO: Apresentao do contedo de um vector num grfico.
Afinal isto no tem nada que saber...
2012 Joo Paulo Coelho
79
4.0 Arranjos (arrays)
EXEMPLO: Aceder a elementos num vector.
Introduza o seguinte ARRAY no diagrama de blocos...
Acrescente o objecto Index Array
2012 Joo Paulo Coelho
80
4.0 Arranjos (arrays)
Ao Front Panel acrescente um knob e um Numeric Ind.
O knob ser responsvel por definir o ndice do elemento a aceder e o valor do elemento apontado por esse ndice ir ser apresentado no Numeric Indicator.
Como o ndice deve ser um nmero inteiro vamos alterar o tipo de representao do knob para Inteiro 32 bits.
2012 Joo Paulo Coelho
8181
4.0 Arranjos (arrays)
Efectuar as seguintes ligaes e testar........
Questo: O que acontece quando se tenta aceder a um elemento do vector que ainda no foi definido?
Elementos que esto fora-de-jogo?
2012 Joo Paulo Coelho
82
6.1 ARRAY de STRINGS
String:
possvel definir ARRAYS de outro tipo de dados ou at objectos.
Um tipo muito til o ARRAY de STRINGS.
Criar um array de strings semelhante criao de um array numrico:
1 Colocar o objecto ARRAY no diagrama de blocos
2 Atribuir-lhe(1) o objecto String Ctrl
(1) drag and drop sobre o objecto ARRAY no diagrama de blocos.
3 Preencher as posies pretendidas com caracteres alfanumricos.
2012 Joo Paulo Coelho
83
4.1 ARRAY de STRINGS
EXEMPLO:
1 Introduzir uma sequncia de 8 nomes masculinos.
2 completar o programa de acordo com o esquema em baixo...
2012 Joo Paulo Coelho
84
4.2 ARRAYS no FRONT PANEL
At ao momento os ARRAYS foram considerados como CONSTANTES no diagrama de blocos.
Alternativamente podem ser considerados OBJECTOS no FRONT PANEL
COMO?
No FRONT PANEL clicar com o boto direito do rato e aceder ao objecto ilustrado na figura ao lado...
A cor PRETO indica que o ARRAY deve ser inicializado!
2012 Joo Paulo Coelho
8585
4.2 ARRAYS no FRONT PANEL
Inicializao com valores numricos...
Inicializao com strings...
2012 Joo Paulo Coelho
86
Inicializao com outros objectos...
EXEMPLO: Implemente e teste o seguinte programa...
iiiiiiii...tanto botozinho!
4.2 ARRAYS no FRONT PANEL
2012 Joo Paulo Coelho
87
4.3 ARRAYS: operaes
NMERO DE ELEMENTOS: retorna o nmero de elementos de um ARRAY
Algumas operaes elementares que podem ser realizadas sobre ARRAYS:
2012 Joo Paulo Coelho
8888
4.3 ARRAYS: operaes
ARITMTICA ENTRE ARRAYS NUMRICOS
Exemplo: Calcular o valor mdio de um vector
2012 Joo Paulo Coelho
898989
4.3 ARRAYS: operaes
1 Aceder operao ADD ARRAY ELEMENTS
2 Efectuar as ligaes...
2012 Joo Paulo Coelho
90
EXERCCIO: Modifique o programa anterior de modo a poder ser calculado automaticamente a mdia de um ARRAY de dimenso arbitrria
4.3 ARRAYS: operaes
EXERCCIO: Desenhe um programa capaz de calcular o desvio padro de um ARRAY
Alterar um elemento
2012 Joo Paulo Coelho
91
Adicionar um elemento
Remover um elemento
4.3 ARRAYS: operaes
2012 Joo Paulo Coelho
92
5.0 SUBVIs
O carcter modular do LabVIEW potenciado com o conceito de SUBVI
Um SUBVI um VI (instrumento virtual) utilizado dentro de outro VI
A utilizao de SUBVI permite: Tornar mais fcil a leitura e a depurao de um
programa; Possibilita a reutilizao de elementos de cdigo j
desenvolvidos.
Ser que vou conseguir entender esta estria de SUBVIs?
VIs podem ser aninhados em nmero arbitrrio (VIs dentro de VIs que j envolvem outros VIs ...)
2012 Joo Paulo Coelho
93
5.1 Construo de SUBVIs
EXEMPLO: SUBVI capaz de calcular a mdia de trs valores.
1 Construir o programa...
2 (opcional) Atribuir um cone ao programa...
2012 Joo Paulo Coelho
94
5.1 Construo de SUBVIs
Programa de desenho de cones...
Uma proposta sorridente...
Boa tentativa...mas o meu sorriso mais
gracioso....
2012 Joo Paulo Coelho
95
3 atribuir sinais de entrada e sada...
5.1 Construo de SUBVIs
Seleccionar no connector pane a topologia que mais se adapta ao programa.
Por conveno os terminais mais esquerda so associados a entradas e os terminais mais direita so associados s sadas
normalmente considerada boa prtica escolher um padro de terminais que possua mais pares entrada/sada do que as necessrias de forma a contemplar possveis alteraes no SUBVI.
2012 Joo Paulo Coelho
96
Atribuir terminais aos controlos e indicadores
5.1 Construo de SUBVIs
seleccionar no connector pane um dos terminais disponveis(o terminal passa de branco para preto)
seleccionar no FrontPanel qual o indicador/controlo a associar a esse terminal
O terminal recentemente associado passa a apresentar a cor laranja.
2012 Joo Paulo Coelho
97
5.1 Construo de SUBVIs
Cada terminal associado pode ter um de trs modos distintos: Necessrio Recomendado Opcional
Por defeito o valor recomendado...
Aspecto do connector pane aps todas as entradas e sadas serem associadas a um terminal...
2012 Joo Paulo Coelho
98
5.1 Construo de SUBVIs
4 (opcional mas recomendado) documentar o programa ...
click no boto direito do rato sobre connector pane ou sobre o cone e seleccionar VI Properties
Na janela VI Properties escolher em Category o item Documentation
2012 Joo Paulo Coelho
99
5.1 Construo de SUBVIs
Exemplo...
Se o Context Help for activado...
2012 Joo Paulo Coelho
100
5.1 Construo de SUBVIs
Inserir e utilizar um SUBVI num VI:
12
34
2012 Joo Paulo Coelho
101
5.1 Construo de SUBVIs
Criar um SUBVI a partir de um excerto de um digrama de blocos...
Considerar o seguinte VI...
2012 Joo Paulo Coelho
102
5.1 Construo de SUBVIs
Seleccionar a fraco do diagrama de blocos que se pretende substituir.
No menu Edit escolher Create SubVI.
2012 Joo Paulo Coelho
103
5.1 Construo de SUBVIs
Aspecto final j com novo cone.
DeoDeoDeoDeo GratiasGratiasGratiasGratias... Estou sem palavras....
2012 Joo Paulo Coelho
104
5.2 Exerccios
EX 13: Construa um SubVI capaz de calcular as quatro operaes aritmticas elementares entre dois vectores (o produto e a diviso dizem respeito ao produto de Hadamard entre os dois vectores ou ente um dos vectores e outro obtido a partir do inverso dos elementos do segundo)
EX 14: Utilize o SubVI desenhado anteriormente para calcular a seguinte sequncia de operaes entre os vectores V1, V2 e V3:
(V1+V2*V3)/(V4+1)
EX 15: Construa um SubVI capaz de gerar um nmero inteiro aleatrio entre 1 e 49
2012 Joo Paulo Coelho
105
6.0 Estruturas de Controlo
Para alm dos controlos, indicadores e VI, um diagrama de blocos pode tambm conter sequncias para controlo de fluxo de dados.
O LabVIEW suporta, entre outras, as seguintes estruturas de controlo:
Ciclos FOR Ciclos WHILE Estruturas condicionais CASE
Afinal o LabVIEW que o SPECIAL ONE
2012 Joo Paulo Coelho
106
6.1 Ciclos FOR
Utilizam-se sempre que se conhece, partida, o nmero de ciclos a executar.
2012 Joo Paulo Coelho
107
6.1 Ciclos FOR
Um ciclo FOR possui dois terminais:
Terminal de contagem.
Terminal de iterao.
Cdigo que deve ser executado repetidamente (subdiagrama).
Exemplo:
Execute com Highlight Execution ligado
2012 Joo Paulo Coelho
Os tneis permitem a passagem de informao atravs do ciclo. Tnel
108
6.1 Ciclos FOR: tneis
O ciclo FOR frequentemente utilizado para inicializar ARRAYS.
O programa indicado ao lado preenche um ARRAY com os nmeros inteiros de 0 a 9.
Um tnel pode possuir a indexao automtica habilitada ou no.
2012 Joo Paulo Coelho
109
Quando a indexao automtica se encontra activa o valor calculado num conector enviado atravs do tnel em cada iterao do ciclo.
Quando a indexao automtica se encontra inactiva o valor calculado num conector enviado atravs do tnel apenas aps a concluso do ciclo.
Na primeira situao a sada do tnel um ARRAY e na segunda a sada um ESCALAR.
6.1 Ciclos FOR: tneis
2012 Joo Paulo Coelho
110
6.1 Ciclos FOR: tneis
O valor de N (nmero de iteraes do ciclo) pode no ser explicitado no caso de se enviar dados, por tnel, para o interior do ciclo.
Quando a indexao se encontra ACTIVA no tnel de entrada, o valor de N admitido como sendo igual ao nmero de elementos do ARRAY.
2012 Joo Paulo Coelho
111
6.1 Exerccios
EX 18: Construa um VI que preencha um ARRAY numrico com 10 valores aleatrios inteiros entre 1 e 49. (sugesto: utilize o subVI que desenvolveu para o exerccio 15)
EX 17: Repita o mesmo exerccio mas agora o valor i deve comear em -5. Para alm disso um grfico da funo deve ser traado.
EX 16: Construa um VI capaz de preencher um vector com os primeiros 100 valores da funo:
f(i)=sin(pi*i/100)onde i um inteiro de 0 a 99
2012 Joo Paulo Coelho
112
6.2 Ciclos FOR: aninhados
possvel colocar ciclos FOR no interior de outros ciclos FOR.
...utilizar esta estratgia para preencher ARRAYS multidimensionais...
2012 Joo Paulo Coelho
113
6.3 Ciclos FOR: Registos deDeslocamento
Frequentemente existe a necessidade de se utilizarem valores calculados numa iterao anterior do ciclo FOR.
O modo de aceder a valores passados consiste na criao de registos de deslocamento (Shift Registers).
EXEMPLO:
Execute com HighlightExecution ligado
2012 Joo Paulo Coelho
114
6.3 Ciclos FOR: Registos deDeslocamento
Podem ser adicionados um nmero arbitrrio de shift registers.
EXEMPLO:
... Ou ento um shift registercom profundidade superior a 1 ...
2012 Joo Paulo Coelho
115
6.3 Ciclos FOR: Registos deDeslocamento
Os shift registers podem ser inicializados com valores diferentes de 0.
EXEMPLO:
2012 Joo Paulo Coelho
116
EX 19: Construa um ARRAY bidimensional, utilizando ciclos FOR, com o seguinte aspecto:
6.3 Exerccios
EX 20: Faa um VI capaz de apresentar num ARRAY os k primeiros nmeros da sequncia de Fibonacci:
0, 1, 1, 2, 3, 5, 8, 13, 21, ...O valor de k deve ser introduzido pelo utilizador a partir de um controlo numrico e deve ser superior a 2.
2012 Joo Paulo Coelho
117
6.4 Ciclos WHILE
Executa um conjunto de operaes AT que uma condio lgica seja satisfeita.
A estrutura WHILE j contm o seu prprio contador [i] que inicia em zero e incrementa automaticamente.
No requer o conhecimento a priori do nmero de ciclos a efectuar.
2012 Joo Paulo Coelho
118
6.4 Ciclos WHILE
Construa e execute o seguinte VI:
2012 Joo Paulo Coelho
119
EXEMPLO: Terminar o ciclo WHILE caso o utilizador pressione STOP ou a amplitude de um sinal sinusoidal atinja o valor 0.9.
6.4 Ciclos WHILE
2012 Joo Paulo Coelho
120
6.4 Ciclos WHILE
O LabVIEW permite a execuo concorrente de vrios processos simultaneamente.
EXEMPLO: Colocar a execuo em paralelo de dois ciclos WHILE com diferentes tempos de atraso (1 e 2 segundos).
2012 Joo Paulo Coelho
121
6.4 Ciclos WHILE
Tal como o ciclo FOR, o ciclo WHILE tambm permite instaurar tneis para a passagem de dados.
EXEMPLO: Construa e simule o seguinte VI...
2012 Joo Paulo Coelho
122
6.4 Exerccios
EX 21: Construa um ciclo que se mantenha em execuo at que o valor originado, por um gerador de nmeros aleatrios inteiros entre 0 e 100, seja igual a 50. Coloque um atraso de 100 ms dentro do ciclo e apresente, no front panel, o nmero de iteraes produzidas.
EX 22: Apresente um VI capaz de fazer um LED piscar com uma frequncia igual a 1Hz:a) Com recurso a shift-registersb) Sem recurso a shift-registers (quando [i] for par o LED acende e quando [i] for mpar o LED apaga)
EX 23: Desenvolva um VI capaz de calcular o factorial de um valor arbitrrio (positivo, inteiro e menor que 100)
2012 Joo Paulo Coelho
123
6.5 Estrutura CASE
Estruturas do tipo CASE permitem que determinadas aces tomem lugar em funo de possveis valores de uma varivel de deciso.
EXEMPLO: Construa e simule o seguinte VI...
2012 Joo Paulo Coelho
124
6.5 Estrutura CASE
C
ON
DI
ES
LG
ICA
S
2012 Joo Paulo Coelho
125
C
ON
DI
ES
LG
ICA
S
6.5 Estrutura CASE
2012 Joo Paulo Coelho
126
C
ON
DI
ES
:IN
TEIR
OS
6.5 Estrutura CASE
2012 Joo Paulo Coelho
127
6.5 Estrutura CASE
2012 Joo Paulo Coelho
128
6.5 Estrutura CASE
Por defeito a estrutura CASE apresentada com dois casos distintos: TRUE e FALSE .
A paleta de opes pode ser facilmente estendida para situaes no-booleanas.
O objecto CASE adapta-se automaticamente ao controlo associado varivel de deciso.
2012 Joo Paulo Coelho
129
O nmero de situaes a serem contempladas pela estrutura CASE podem ser aumentadas ou diminudas recorrendo ao pop-up menu associado a esse objecto...
6.5 Estrutura CASE
2012 Joo Paulo Coelho
130
C
ON
DI
ES
:STR
ING
S
8.4 Estrutura CASE
CASE dentro de WHILE
2012 Joo Paulo Coelho
131
EX 24: Um LED deve ser comandado por um String Control de acordo com as seguintes ordens: Acende, Apaga e Pisca.
6.5 Exerccios
EX 25: Controlo da cor do fludo no interior de um tanque.
2012 Joo Paulo Coelho
132
EX 26a: Construa um SubVI capaz de gerar o efeito do lanamento, ao ar, de uma moeda. A sada ser booleana, i.e. VERDADEIRO para CARA e FALSO para CORA.
EX 26b: Pretende-se construir um jogo de apostas com base no subVI do exerccio anterior. O jogador possui a capacidade de apostar no resultado do prximo lanamento da moeda usando um boto. Quando o boto estiver ON admite-se que o jogador aposta em caras caso contrrio aposta em coroas.
Aps o lanamento (gerado por um segundo boto) o resultado ganhou ou perdeu deve ser apresentado num string indicator.
6.5 Exerccios
2012 Joo Paulo Coelho
133
EX 26c: Adicione ao programa anterior um controlo e um indicador numrico. O indicador numrico ser responsvel por apresentar o saldo do jogador e o controlo dever representar o valor apostado pelo jogador numa determinada jogada. A figura em baixo ilustra a nova interface grfica.
Caso o jogador ganhe, o valor da aposta acrescentado ao saldo. Se o jogador perder o valor da aposta ser retirado do saldo
EX 26d: O saldo deve ser iniciado com 50. Para alm disso o jogo deve terminar quando o saldo do jogador chegar a zero ou ento desistir. No devem ser permitidas apostas superiores ao saldo.
6.3 Exerccios
2012 Joo Paulo Coelho
A necessidade da execuo sequencial de diagramas obriga utilizao de um tipo alternativo de estrutura de controlo: sequncias
134
7.0 Sequncias
Por defeito, no diagrama de blocos, todos os eventos ocorrem de forma concorrente.
ADORO CONCORRENTES!!!!
2012 Joo Paulo Coelho
135
7.1 Sequncias Planas
Sequncias planas (flat sequences) So sempre executadas da esquerda para a direita. iniciado apenas com uma frame e permite a adio de outros
quadros.
MAU! DA ESQUERDA PARA A DIREITA QUE NO PODE SER...
Frame
2012 Joo Paulo Coelho
136
EXEMPLO: Construa e simule o seguinte VI...
7.1 Sequncias Planas
Observe-se a existncia de Tneisde e para a sequncia...
EXEMPLO: Jogo dos Nmeros...
Construir um VI que apresente dois nmeros inteiros entre 0 e 10, aguarde 2 segundos e apresente o resultado da soma durante 1 segundo.
EXEMPLO: Jogo dos Nmeros...
Construir um VI que apresente dois nmeros inteiros entre 0 e 10, aguarde 2 segundos e apresente o resultado da soma durante 1 segundo.
Subdiagrama
2012 Joo Paulo Coelho
137
7.1 Sequncias Planas
ESTE PROGRAMA CAPAZ DE ME DAR JEITO... ANDO-ME A ENGANAR
COM AS CONTAS DA REFORMITA!
2012 Joo Paulo Coelho
138
7.2 Sequncias Sobrepostas
EX 27: Altere o Jogo dos Nmeros de modo a que o utilizador tenha a possibilidade de escolher uma das quatro operaes elementares.
Referem-se a sequncias cujas frames se encontram sobrepostas
2012 Joo Paulo Coelho
139
7.2 Sequncias Sobrepostas
Passagem de parmetros entre frames: variveis locais
O valor de uma varivel local criada num frame ficar disponvel para todas as frames criadas apenas subsequentemente.
2012 Joo Paulo Coelho
140
EXEMPLO: Construa e simule o seguinte VI...
7.2 Sequncias Sobrepostas
2012 Joo Paulo Coelho
141
7.2 Sequncias Sobrepostas
EXEMPLO: Construa e simule o seguinte VI...
2012 Joo Paulo Coelho
142
7.3 Sequncias: algumas consideraes
Uma varivel local s pode ser instanciada UMA vez
Uma varivel local inicializada com o valor 3.141... Na frame 0 e no pode ser alterada, na frame 2, com o valor 2.718...
Duas frames NO podem atribuir valores ao mesmo tnel
Na frame 0 pretende-se atribuir a string OL a um indicador e na frame 2 uma string diferente ao mesmo objecto. Recorde a necessidade de efectuar justamente o contrrio numa
estrutura CASE.
2012 Joo Paulo Coelho
143
EX 28: Dois ciclos so executados simultaneamente. Para ambos o critrio de paragem consiste na igualdade de um nmero inteiro, entre 0 e 100, gerado aleatoriamente dentro do ciclo ser igual a 50. Quando ambos os ciclos terminarem deve ser efectuada a soma do nmero de iteraes de ambos. Se esse valor for menor que 100 deve ser accionado um LED vermelho. Caso seja maior, ou igual a 100, deve ser ligado um LED verde.
7.4 Exerccios
EX 29: Deve ser construdo um VI que repita dez vezes o exerccio anterior e preencha uma tabela com o resultado da soma dos ciclos em cada ensaio.
EX 30: Um ciclo FOR executado 10 vezes. Em cada iterao gerado um nmero aleatrio inteiro entre 0 e 100. Quando este ciclo terminar, um segundo ciclo FOR executado onde N ser o maior dos valores aleatrios gerados no ciclo anterior.
2012 Joo Paulo Coelho
144
8.0 I/O em ficheiros
Com frequncia existe a necessidade de transferir informao do LabVIEW para um ou mais arquivos em disco.
Existem diversos formatos de ficheiros: ASCII e Binrios.
EXEMPLO 1: Escrita em ficheiros de texto (ASCII)
2012 Joo Paulo Coelho
145
8.0 I/O em ficheiros
EXEMPLO 2: E se for um valor numrico?
Converso de um nmero numa string....
Testar....
2012 Joo Paulo Coelho
146146
8.0 I/O em ficheiros
EXEMPLO 3: E se for um array?
Testar....
EX 31: Criar um ficheiro com 100 amostras da funo:y = sin (pi*k/100 )
para k=0,...,99
Posteriormente utilize o Microsoft Excel para visualizar, num grfico, os valores existentes no ficheiro.
2012 Joo Paulo Coelho
147
EXEMPLO: Construa e simule o seguinte VI
9.0 Janelas de Dilogo
2012 Joo Paulo Coelho
148
EXEMPLO: Personalizao da caixa de dilogo...
9.0 Janelas de Dilogo
2012 Joo Paulo Coelho
149
10.0 Aquisio de Dados
Aquisio de Dados: Placa de Som DAQ
Data Logging: Escrita de dados em ficheiro Leitura de dados de ficheiros
2012 Joo Paulo Coelho
150
Aquisio e apresentao de 1 segundo de som obtido a partir do microfone.
10.1 Placa de Som
Um canal apenas
2012 Joo Paulo Coelho
151
10.1 Placa de Som
2012 Joo Paulo Coelho
152
Repetir agora para STEREO. Cada canal grfico diferente!
10.1 Placa de Som
2012 Joo Paulo Coelho
153
10.1 Placa de Som
2012 Joo Paulo Coelho
154
10.1 Placa de Som
2012 Joo Paulo Coelho
155
10.2 DAQ NI USB 6008
2012 Joo Paulo Coelho
156
Tipo de Conversor ........................................ APROXIMAES SUCESSICVASEntradas Analgicas ..........................8 SINGLE-ENDED, 4 DIFFERENTIAL,SOFTWARE SELECTABLEResoluo de Entrada........................................12 BITS DIFFERENTIAL, 11 BITS SINGLE-ENDEDMxima razo de amostragem .................................10 KS/STenso de referncia (SINGLE-ENDED)....................................10 VTenso de referncia (DIFFERENTIAL) ...............20 V, 10 V, 5 V, 4 V,2.5 V, 2 V, 1.25 V, 1 VTenso de trabalho .....................................10 VImpedncia de entrada.....................................144 KProteco de sobretenso ...........................35V
10.3 Entradas Analogicas
MODELO INTERNO
2012 Joo Paulo Coelho
157
Tipo de converso........................................ APROXIMAES SUCESSIVASN Sadas ....................................... 2Resoluo.................................... 12 BITSTaxa mxima de actualizao ............................ 150 HZ, SOFTWARE-TIMEDGama de sada........................................... 0 TO +5 VImpedncia de sada.................................. 50 Corrente de sada ................................5 mATenso de inicializao ........................................0 VSLEW RATE .................................................1 V/mSCorrente de curto-circuito................................50 mA
10.3 Sadas Analgicas
MODELO INTERNO
2012 Joo Paulo Coelho
P0. .........................................8 LINES
PI. ..........................................4 LINES
Direco de controlo.........CADA CANAL PODE SER PROGRAMADO INDIVIDUALMENTE
Tipo de sada........................................COLECTOR ABERTO (OPEN-DRAIN)
Compatibilidade ..........................................TTL, LVTTL, CMOS
Gama de tenso mxima absoluta ..........0.5 A 5.8 V (RELATIVAMENTE A GND)
Resistncias de Pull-Up ........................................4.7 K 158
10.3 Sadas/Entradas Digitais
2012 Joo Paulo Coelho
159
10.4 Ensaio 1: A/D
AI0 (2)
+5v(31)
Gnd (32)
DAQ Board