159
©2012 João Paulo Coelho INTRODUÇÃO AO 1 OBJECTIVOS: o Introdução ao ambiente LabVIEW o Modelo de programação em G o Conceito de instrumentos virtuais (VI) o Aquisição de dados e Data Logging Curso de Curta Duração Curso de Curta Duração Curso de Curta Duração Curso de Curta Duração 2012

Curso de Curta Duração - ipb.ptjpcoelho/CCD/LABVIEW_CCD_2012.pdf · Execute a simulação e conclua... 2.1 Propriedades ... CONJUNÇÃO (AND) DISJUNÇÃO ... para assinalar a demanda

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