Instituto Federal Fluminense
Campus Campos Centro
Curso Labview básico e aquisição de dados.
Engenharia de Controle e Automação.
Prof. William da Silva Vianna
Conteúdo - Labview
Linguagem G versus linguagem estruturada;
●Uso do ambiente de desenvolvimento Labview (painel frontal,
diagrama de blocos, ajuda, exemplos, toolbox, etc);
●Conceito de VI e convenções;
●Tipos de dados;
●Estruturas de seleção e repetição;
●Ferramentas e técnicas de depuração do código;
●Registrador de deslocamento;
●Sub-VI;
●Documentação do código;
●Customização da aplicação;
●Compilação do código e Run Time Engine;
●Programação com thread e otimização do processamento;
●Máquina de estados;
●Customização da VI: property node;
●Aplicações práticas e exemplos.
●
William da Silva Vianna - [email protected]
2
Conteúdo - DAQ
Definições;
●Sinais versus tipos I/O;
●Tipos de dados de aquisição;
●Conceitos: trigger, amostras, taxa de amostragem, hardware
de aquisição;
●Circuitos de ligação: simples, diferencial, referenciado e não
referenciado;
●NI-DAQmx;
●MAX;
●Aplicações práticas;
●
William da Silva Vianna - [email protected]
3
Problema
O que você faz se precisa de uma
FERRAMENTA DE DESENVOLVIMENTO DE
SOFTWARE para implementar a solução de
problema de medição, automação ou até mesmo
P&D de forma rápida e com custo relativo baixo ?
William da Silva Vianna - [email protected]
4
Fica com cara de abandonado ?!
William da Silva Vianna - [email protected]
5
Definição de Labview
O LabVIEW (acrónimo para Laboratory Virtual
Instrument Engineering Workbench) é uma
linguagem de programação gráfica originária da
National Instruments®. A primeira versão surgiu
em 1986 para o Macintosh e atualmente existem
também
ambientes
de
desenvolvimento
integrados para os Sistemas Operacionais
Windows, Linux e Solaris.
William da Silva Vianna - [email protected]
6
Labview
Aplicação e programação
Os principais campos de aplicação do LabVIEW
são a realização de:
- medições;
- automação.
A programação é feita de acordo com o modelo
de fluxo de dados, o que oferece a esta
linguagem vantagens para a aquisição de dados
e para a sua manipulação.
William da Silva Vianna - [email protected]
7
Labview
Conceitos
Os programas em LabVIEW são chamados de
instrumentos virtuais ou, simplesmente, IVs. São
compostos pelo painel frontal, que contém a
interface, e pelo diagrama de blocos, que
contém o código gráfico do programa. O
programa não é processado por um interpretador,
mas sim compilado. Deste modo a sua
performance é comparável à exibida pelas
linguagens de programação de alto nível. A
linguagem gráfica do LabVIEW é chamada "G".
William da Silva Vianna - [email protected]
8
Linguagem G versus linguagem
estruturada
Linguagem G
Linguagem estruturada
#include <stdio.h>
#include <stdlib.h>
int main (void) {
int a, b;
double media;
scanf ("%d %d", &a, &b);
media = (a + b) / 2.0;
printf ("A média de %d e %d é %f\n",
a, b, media);
return EXIT_SUCCESS;
William da Silva Vianna} - [email protected]
9
Tão simples que sobra tempo
para outros afazeres.
William da Silva Vianna - [email protected]
10
Uso do ambiente de
desenvolvimento Labview
William da Silva Vianna - [email protected]
11
Menu do Labview
Na barra de ferramentas do menu do Labview existem alguns
botões importantes. Da esquerda para direita:
1 – executa o código uma vez. Deve ser usando quando o
programa tem loop de controle ou deseja-se executá-lo
apenas uma vez. Este botão também indica linhas (fios)
desconectados;
2 – executa o código indefinidamente. Não deve se utilizado
quando o programa possui alguma estrutura de loop para
controle;
3 – finaliza a execução;
4 – pausa a execução;
5 – debug do código.
William da Silva Vianna - [email protected]
12
Fios desconectados ou
quebrados
Os fios podem estar quebrados devido a ligação
que não leva a nenhum lugar ou devido a
incompatibilidade entre tipos de dados.
William da Silva Vianna - [email protected]
13
Labview
Conceitos
Os blocos de funções são chamados de
instrumentos virtuais - IV;
●O programador liga IVs com linhas (fios) de ligação;
●As cores e espessuras das linhas definem o tipo
de dado;
●Os
IVs podem estar interligados com muita
complexidade;
●Muitos
IVs e primitivas em LabVIEW são
polimorfos;
●
William da Silva Vianna - [email protected]
14
Labview
Conceitos
A entrada de dados no painel frontal é feita por IVs
de controle;
●A saída de dados no painel frontal é feita por IVs de
indicação;
●Os controles e indicadores no diagrama de blocos
possuem correspondentes no painel frontal;
●Por convenção, os IVs possuem entradas de dados
pela direita e saídas pela esquerda;
●O código deve ser comentado com descrições que
explicam o funcionamento. Este recurso deve ser
usado para documentar o código e é utilizado por
todo bom programador.
William da Silva Vianna - [email protected]
15
●
Tipos de dados numéricos
William da Silva Vianna - [email protected]
16
Tipos de dados
Tipos de dados são diferenciados pelas cores e
espessuras. Os arrays possuem espessuras tanto
maior quanto maior
a dimensão.
William da Silva Vianna - [email protected]
17
Tipos de dados
O tipo Waveform é um tipo especial.
É um cluster composto pelos seguintes tipos:
●Time;
●DBL;
●Array 1D (DBL).
William da Silva Vianna - [email protected]
18
Tipos de dados
Controles de arrays de uma e duas dimensões
William da Silva Vianna - [email protected]
19
Busca por IVs
A busca e ajuda devem ser utilizadas sempre que
necessários. O Labview possui muitos IVs prontos e
exemplos. No portal da National existem muitos
exemplos que ajudam no desenvolvimento (www.ni.com
).
William da Silva Vianna - [email protected]
20
Busca por soluções
O portal da National Instruments possui muitos
recursos http://www.ni.com .
●Exemplos de código;
●Tutoriais;
●Forums;
●Download de softwares diversos;
●Manuais;
●Etc.
USE-O.
William da Silva Vianna - [email protected]
21
Paletas do Labview
As paletas de funções, controles e indicadores
são distintas para o painel frontal e diagrama de
blocos.
Existem centenas de paletas de funções que
podem ser incorporadas ao Labview. Estas
paletas são criadas a partir do próprio Labview e
possuem funções específicas para as diversas
áres, como por exemplo: biologia, química, física,
espacial,
simulação,
controle
avançado,
financeira, etc.
William da Silva Vianna - [email protected]
22
Funções do diagrama de blocos
Numérico e String
William da Silva Vianna - [email protected]
23
Funções do diagrama de blocos
Booleano e Array
William da Silva Vianna - [email protected]
24
Funções do diagrama de blocos
Estruturas e Comparação
William da Silva Vianna - [email protected]
25
Funções do diagrama de blocos
Cluster e I/O de arquivo.
William da Silva Vianna - [email protected]
26
Funções do diagrama de blocos
Waveform e Análise
William da Silva Vianna - [email protected]
27
Painel Frontal
Booleano, Array & Cluster, Conteiner
William da Silva Vianna - [email protected]
28
Painel Frontal
Decorativo, Diálogo, Gráficos
William da Silva Vianna - [email protected]
29
Painel Frontal
I/O, Listas & Tabelas, Numéricos
William da Silva Vianna - [email protected]
30
Painel Frontal
Menu & Enumeração, Refnum, String & Path.
William da Silva Vianna - [email protected]
31
Atividades
Comente o código e organize as ligações. Deixe
o código legível e procure não fazer POG, pois na
linguagem ”G” esta é uma prática comum.
William da Silva Vianna - [email protected]
32
Não faça gambiarras, documente
o código.
William da Silva Vianna - [email protected]
33
Atividades iniciais
Cria um programas para:
1 - somar dois números e apresentar o resultado. A
entrada dos números deve ser feita por dois controles
numéricos. Execute e teste;
2 – faça um gráfico da soma dos números (1) usando o
chart. Observe a velocidade que os dados são plotados
no gráficos. Resolva o problema usando uma
temporização;
William da Silva Vianna - [email protected]
34
Atividades iniciais
3 – somar dois vetores (array 1D) de tamanho 1x4 de
double. Após plote em um gráfico. A entrada dos das
dos vetores deve ser feita por controles;
4 – crie um programa para gerar um sinal senoidal de
100 Hz com amplitude 1 e plotar em um gráfico (Graph);
5 – altere o programa anterior de forma a ajustar a
frequência com um slider;
6 – duplique o código de geração de sinal e plote no
mesmo gráfico (Graph). Use o build array;
William da Silva Vianna - [email protected]
35
Atividades iniciais
7 – faça a composição dos dois sinais senoidais e
plote em um gráfico (graph). Varie as frequências
base e observe o comportamento;
8 – calcule a FFT do sinal, resultante da
composição, removendo do domínio do tempo e
colocando no domínino da frequência. Plote o sinal
resultando no gráfico. Compare os picos com as
frequências iniciais geradas;
9 – insira ruído de amplitude 0,2 e verifique os
gráficos do sinal e FFT.
FFT – fast Fourier transform
William da Silva Vianna - [email protected]
36
Otimização do processamento do
PC (Dica)
Sempre que possível utilize no código ”Wait Until Next ms
Multiple”. Veja o comparativo do processamento da máquina
com e sem este IV. 95% de uso da CPU sem a IV e menos
de 1% com o uso.
William da Silva Vianna - [email protected]
37
Estruturas
William da Silva Vianna - [email protected]
38
Estrutura Case
A estrutura de seleção executará o código
conforme o resultado da condição.
Também pode-se implementar estrutura de
múltipla escolha com mais de duas opções.
William da Silva Vianna - [email protected]
39
Atividade – Estrutura Case
10 - Cria um programa para somar ou subtrair
dois números. A operação deve ser selecionada
por uma chave (boolean).
Se chave == 1 então
Resultado = número1 + número2
Senão
Resultado = número1 – número2
FimSe
William da Silva Vianna - [email protected]
40
Atividade – Case - Resposta
William da Silva Vianna - [email protected]
41
Atividade - Estrutura Loop
11 – Crie um programa para gerar 10 números
aleatórios entre 0 e 10 em intervalos de 1
segundo e apresentar na tela um por vez;
12 – Crie um programa para criar um array 1D
com 10 números aleatórios entre 0 e 10. Ao
finalizar o array 1D deve ser apresentado na
interface (use o Tunnel);
13 – Crie um programa para fazer a média dos
números do vetor 1D criado;
William da Silva Vianna - [email protected]
42
Atividade - Estrutura Loop
14 – Crie um programa com um slider ajustável
entre 0 e 10 de double. Deve ser calculada e
apresentada a média dos 3 últimos valores
ajustados com intervalo de 0,5 segundo, ou seja,
nos últimos 1,5 segundos passados (use o shift
register);
15 – Altere o programa para calcular a média
apenas quando houver novo valor no slider.
William da Silva Vianna - [email protected]
43
Ferramentas e técnicas básicas de
depuração do código
Execução highlight – permite observar o fluxo de
dados com os repectivos valores.
Breakpoints – para o execução do programa no
ponto indicado.
William da Silva Vianna - [email protected]
44
Ferramentas e técnicas básicas de
depuração do código
Probe – cria medidores nas linhas para visualizar
os dados trafegados no fluxo.
William da Silva Vianna - [email protected]
45
Sub-VI
Sub VI são utilizadas para tornar o código mais legível,
organizado e modularizado.
A criação de sub-VI pode ser feita de várias formas. No
canto superior direiro existe o ícone da VI, este pode ser
editado com o editor de icone. Assim como as entradas e
saídas da sub-VI podem ser definidas.
William da Silva Vianna - [email protected]
46
Atividade - Sub-VI
16 - Altere o programa 12 de forma a se tornar uma
sub-VI com os seguintes parâmetros;
Entrada – número de elementos do array 1D
Saída – Array 1D com os números aleatórios.
17 – Edite o ícone da sub-VI e altere o help desta
sub-VI. Vá em File → VI Properties →
Documentation
18 – Implemente um programa que use use a subVI criada no item 16. Durante a edição do
programa, clique em Ctrl + H e leia o texto da ajuda
sub-VI criada.
William da Silva Vianna - [email protected]
47
Customização da aplicação
A aplicação pode ser totalmente customizada
usando o menu ”VI Properties” acessível por ”File.”
William da Silva Vianna - [email protected]
48
Customização da aplicação
É possível:
- alterar o ícone da aplicação;
- documentar o código e ajuda;
- definir histórico de versões;
- definir senha para acesso ao diagrama de blocos da
aplicação;
- definir a aparência da janela e botões;
- definir a forma de execução;
- definir opções de impressão;
- e várias outras customizações.
Após compilado, as customizações são levadas para o arquivo
executável.
William da Silva Vianna - [email protected]
49
Compilação
O código do Labview pode ser compilado e
executado em outra máquina sem o Labview
instalado. Para isto é necessário instalar uma
biblioteca gratuita chamada Runtime Engene que
pode ser obtida no site na National (
http://www.ni.com).
http://www.ni.com Também é preciso possuir a
licença do Labview que permita a compilação do
código (Build Application).
William da Silva Vianna - [email protected]
50
Compilação
Muitos desenvolvedores distribuem seus programas criados
a partir do Labview. Estes programas são customizados
para remover as características que indicam o ambiente de
desenvolvimento.
Interface usada para compilar a aplicação.
William da Silva Vianna - [email protected]
51
Otimização do código
Máquina de estados
Uma máquina de estados finitos ou Autômato
Finito é uma modelagem de um comportamento,
composto por estados, transições e ações. Um
estado armazena informações sobre o passado,
isto é, ele reflete as mudanças desde a entrada
num estado, no início do sistema, até o momento
presente. Uma transição indica uma mudança de
estado e é descrita por uma condição que precisa
ser realizada para que a transição ocorra. Uma
ação é a descrição de uma atividade que deve
ser realizada num determinado momento.
William da Silva Vianna - [email protected]
52
Otimiação do código
Máquina de estados
O design da máquina de estados é uma ótima forma de
documentar o solução do problema baseado em estados.
William da Silva Vianna - [email protected]
53
Otimiação do código
Máquina de estados
No Labview a máquina de estados pode ser implementada
com as estruturas de loop e case. A sequência dos estados
é determinada por lógica ou estrutura de eventos com
auxílio do registrador de deslocamento.
William da Silva Vianna - [email protected]
54
Otimiação do código
Máquina de estados
William da Silva Vianna - [email protected]
55
Conteúdo - DAQ
Definições;
●Sinais versus tipos I/O;
●Tipos de dados de aquisição;
●Conceitos: trigger, amostras, taxa de amostragem, hardware
de aquisição;
●Circuitos de ligação: simples, diferencial, referenciado e não
referenciado;
●NI-DAQmx;
●MAX;
●Aplicações práticas;
●
William da Silva Vianna - [email protected]
56
DAQ - Definição
Aquisição de dados é o processo de medir um
fenômeno elétrico ou físico como tensão,
corrente, temperatura, pressão ou som. Aquisição
de dados baseada em PC utiliza uma
combinação de hardware modular, software de
aplicação e um computador para obter as
medições. Embora cada sistema de aquisição de
dados (DAQ) seja definido pelos seus requisitos
da aplicação, cada sistema compartilha um
objetivo em comum, adquirindo, analisando, e
apresentando a informação.
William da Silva Vianna - [email protected]
57
DAQ - componentes
Os componentes dos sistemas de aquisição de dados
incluem:
* Sensores que convertem parâmetros físicos em sinais
elétricos;
* circuito de condicionamento de sinal para converter os
sinais dos sensores em uma faixa que pode ser
convertida para valores digitais;
* conversores analógico-digitais, que convertem os
sinais do sensor condicionados nos valores digitias.
William da Silva Vianna - [email protected]
58
DAQ – esquema básico
William da Silva Vianna - [email protected]
59
NI-DAQmx
NI-DAQmx é o mais novo conjunto de drivers de
aquisição de dados da National Instruments. O
download pode ser feito gratuitamente em
http://www.ni.com/drivers/
NI-DAQmx oferece maior facilidade de uso e
desempenho comparado com o driver NI-DAQ
tradicional.
William da Silva Vianna - [email protected]
60
VISA
O Virtual Instrument Software Architecture
(VISA) é um padrão para a configuração,
programação, sistemas de instrumentação e
solução de problemas compreendendo GPIB,
VXI, PXI, Serial, Ethernet e/ou interfaces USB.
VISA fornece a interface de programação entre
os ambientes de hardware e desenvolvimento
como o LabVIEW, LabWindows / CVI e estúdio
de medição para o Microsoft Visual Studio. NIVISA é a implementação da National Instruments
para o padrão VISA I/O.
William da Silva Vianna - [email protected]
61
VISA
NI-VISA inclui bibliotecas de software, serviços
interativos, como o NI Spy e o VISA Controle interativo e
programas de configuração através Measurement &
Automation Explorer (MAX) para todas as suas
necessidades de desenvolvimento. NI-VISA é padrão de
toda a linha de produtos da National Instruments.
William da Silva Vianna - [email protected]
62
Tipos de sinais
Sinal analógico é um tipo de sinal contínuo que
varia em função do tempo. Um velocímetro
analógico de ponteiros, um termômetro analógico
de mercúrio, uma balança analógica de molas,
são exemplos de sinais lidos de forma direta sem
passar por qualquer decodificação complexa, pois
as variáveis são observadas diretamente.
Sinal digitial é um sinal que possui apenas dois
estados:
ligado/desligado,
aberto/fechado,
acesso/apagado, 0 volts/5 volts, etc.
William da Silva Vianna - [email protected]
63
Sensores/Transdutores
De forma geral, todos os sensores/transdutores
transformam grandezas físicas ou químicas do
mundo em real em sinais elétricos analógicos ou
digitiais de tensão, corrente e resistência. Estes
sinais relacionados com as grandezas originais e
condicionadados nos sistemas DAQ.
Cada sinal é ligado a um canal ou ponto de
medição do sistema DAQ.
William da Silva Vianna - [email protected]
64
Canais
Número de Canais – O número de sinais
analógicos/digital que o DAQ é capaz de medir.
Os canais analógicos podem possui ligação
single-ended, pseudo-diferencial e diferencial.
Os canais single-ended têm todas as entradas
referenciadas em um terra comum, que é
conectada ao terminal terra de um computador.
Canais
pseudo-diferenciais
são
todos
referenciados a um terra comum, mas este terra
não é conectado ao terra do computador.
Entradas diferenciais têm uma referência
independente para
cada canal.
William da Silva Vianna - [email protected]
65
Resolução
Resolução (Resolution) – O número de bits que o ADC
(A/D) utiliza para representar o sinal analógico. Quanto
maior a resolução, maior o número de divisões em que a
faixa do sinal será representada, sendo assim quanto
maior a resolução mais sensível é o ADC para as
variações de tensão em uma mesma faixa de entrada e
ganho. A menor variação de tensão detectável (também
chamada de largura de código – code width) para um
dispositivo DAQ ideal é determinada por:
Menor variação de tensão detectável = faixa /
(ganho*2^resolução)
William da Silva Vianna - [email protected]
66
Resolução
Resolução é apenas uma indicação da precisão de um
dispositivo DAQ. Deve-se considerar pelo menos a
precisão relativa (linearidade), tempo de ajuste, erros de
offset e erros de ganho para entender por completo a
precisão de um determinado produto DAQ.
William da Silva Vianna - [email protected]
67
Taxa de amostragem máxima
Taxa de Amostragem Máxima
(Max Sampling Rate) – A maior
taxa que o circuito pode
digitalizar um sinal analógico de
entrada. O produto pode
digitalizar
ou
operar
em
diversas outras taxas mais
lentas.
William da Silva Vianna - [email protected]
68
Faixa do sinal de entrada
Faixas do Sinal de Entrada (Input Signal Ranges)
– As escalas de tensão nas quais um dispositivo
DAQ pode ser configurado para aceitar e
converter um sinal com precisão. A combinação
da faixa de entrada e o ganho determinam qual o nível
de tensão é aplicado aos ADCs de um dispositivo DAQ,
é chamada de faixa do sinal de entrada atual. Pode-se
calcular a faixa do sinal de entrada atual da seguinte
maneira:
Faixa do sinal de entrada atual = Faixa do Sinal de
entrada / Ganho
William da Silva Vianna - [email protected]
69
Faixa do sinal de entrada
Exemplo
Um dispositivo que possui uma faixa de entrada de 0 a
10 V e ganho configurado para 100, isso significa que o
produto pode receber sinais com amplitude entre 0 a
0.1V. A faixa de entrada e o ganho são configurados no
hardware em alguns produtos ou através de software em
outros. A especificação da Tensão Máxima de Trabalho
é relacionada com a faixa do sinal de entrada para sinais
que apresentam tensão em modo-comum. A
especificação de Proteção de sobretensão indica o
quanto pode-se exceder a faixa do sinal de entrada sem
danificar o produto.
William da Silva Vianna - [email protected]
70
Trigger
O trigger é um sinal que pode ser utilizado para
iniciar o processo de conversão A/D ou D/A, ou
até mesmo uma leitura discreta. O tiger pode ser
analógico ou digital. Alguns hardwares DAQ
possuiem entradas específicas para trigger.
William da Silva Vianna - [email protected]
71
Tarefa de leitura/escrita NI-DAQ
A tarefa de leitura/escrita do sinal na analógico ou
digital em seu respectivo canal é realizada em
três etapas básicas no NI-DAQmx.
●Criação da tarefa;
●Leitura/escrita;
●Finalização da tarefa.
Podem existir outras etapas como: trigger, clock
externo/interno, etc.
William da Silva Vianna - [email protected]
72
Tarefa de leitura corrente
NI-DAQ
William da Silva Vianna - [email protected]
73
Tarefa de leitura com trigger
NI-DAQ
William da Silva Vianna - [email protected]
74
NI-DAQ Assistant
O DAQ Assistant é uma forma muito simples de
configurar a tarefa de leitura/escrita do sinal. Este
assistente resolve a maioria dos problemas de
aquisição. USE-O.
William da Silva Vianna - [email protected]
75
Tão simples que até a Barbie usa
o DAQ Assitant
William da Silva Vianna - [email protected]
76
Measurement & Automation
Explorer (MAX)
Measurement & Automation Explorer (MAX) possibilita
acesso a todos os seus dispositivos DAQ da National
Instruments, GPIB, IMAQ, IVI, Movimento, VISA, e VXI.
Com MAX, pode-se configurar o hardware National
Instruments e software, adicionar novos canais,
interfaces e instrumentos virtuais, executar diagnósticos
do sistema e visualizar os dispositivos e instrumentos
ligados
ao
seu
sistema.
MAX
é
instalada
automaticamente com o NI-VISA versão 2.5 ou superior
ou NI-VXI versão 3.0 ou superior. As versões mais novas
permitem criar hardware virtual para fins de teste.
William da Silva Vianna - [email protected]
77
Atividade DAQ
19 – Execute o MAX. Crei um hadware virtual
conforme o indicado e especificado pelo
professor;
20 – Ainda usando o MAX, use o assistente para
verificar como seria feita a ligação elétrica da
entrada analógica especificada pelo professor;
21 – Feche o MAX. Execute o Labview e crie um
programa para realizar a leitura da primeira
entrada analógica (use o DAQ Assistant). Plote o
sinal em um gráfico.
William da Silva Vianna - [email protected]
78
Continue os estudos, pois se ele
consegue também podemos.
William da Silva Vianna - [email protected]
79
Download

Labview