Você está na página 1de 81

Universidade Federal de Goiás

Escola de Engenharia Elétrica

Mestrado em Engenharia Elétrica e de Computação

Núcleo de Estudo e Pesquisa em Processamento da Energia e Qualidade - PEQ

Prof. Adalberto José Batista, D.Sc.

Introdução ao LabVIEW

Edgar Martins Moura Maia

Goiânia, abril de 2002


Sumário

Índice de Figuras . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . iv
Índice de Tabelas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . vi
1. Introdução Geral . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
2. Introdução aos Instrumentos Virtuais . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
2.1. O Painel Frontal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
2.2. O Diagrama de Blocos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
2.2.1. Terminais . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
2.2.2. Nós . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
2.2.3. Fios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
2.2.4. Estruturas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
2.4. Usando e Adaptando VIs e SubVIs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
3. O Ambiente LabVIEW . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
3.1. A Paleta de Controles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
3.2. A Paleta de Funções . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
3.3. Comandando as Paletas de Controles e de Funções . . . . . . . . . . . . . . . . . . . 11
3.4. A Paleta de Ferramentas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
3.5. Menus e Barras de Ferramentas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
3.5.1. Menus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
3.5.2. Menus de Atalho . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
3.5.3. Barra de Ferramentas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
3.6.1.1. Adicionando Vis e Controles às Bibliotecas de Usuário e
de Instrumentos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
3.6.1.2. Criando e Editando a Visualização das Paletas . . . . . . . . . . . . . . . . . 15
3.6.1.3. Construindo Subpaletas ActiveX . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
3.6.1.4. Representando Conjuntos de Ferramentas nas Paletas . . . . . . . . . . 16
3.6.2. Configurando as Opções de Ambiente . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
3.6.2.1. Como o LabVIEW Armazena as Opções . . . . . . . . . . . . . . . . . . . . . . . 16
4. Construindo o Painel Frontal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
4.1.1. Mostrando e Ocultando Elementos Opcionais . . . . . . . . . . . . . . . . . . . . . . 18

i
4.1.2. Alternando entre Controles e Indicadores . . . . . . . . . . . . . . . . . . . . . . . . . . 18
4.1.3. Substituindo Objetos do Painel Frontal . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
4.1.4. Usando Gráficos Importados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
4.1.5. Agrupamento e Bloqueio de Objetos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
4.1.6. Redimensionando Objetos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
4.1.7. Proporcionalidade de Objetos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
4.1.8. Adicionando Espaço no Painel Frontal . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
4.2. Controles e Indicadores do Painel Frontal . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
4.2.1. Objetos em 3D e Clássicos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
4.2.2. Slides, Knobs, Dials, e Mostradores Digitais . . . . . . . . . . . . . . . . . . . . . . . 21
4.2.3. Botões, Chaves e Luzes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
4.2.4. Caixas de Texto, Letreiros e Mostradores de Caminho . . . . . . . . . . . . . . 23
4.2.5. Objetos Tipo Grupo e Vetor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
4.2.6. Controles e Indicadores Tipo Aba . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
4.2.7. Caixas de Listagem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
4.2.8. Objetos Tipo Anel e Enumerados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
4.2.9. Objetos para Gerenciamento de Entrada e Saída . . . . . . . . . . . . . . . . . . . 24
4.2.10. Referências a Objetos ou Aplicações . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
4.2.11. Controles Tipo Diálogo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
4.3. Rotulação . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
4.4. Características de Texto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
4.5. Projetando Interfaces de Usuário . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
5. Construindo o Diagrama de Blocos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
5.1. Relacionamento Painel Frontal e Diagrama de Blocos . . . . . . . . . . . . . . . . . . 27
5.2. Objetos do Diagrama de Blocos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
5.2.1. Fios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
5.2.2. Terminais . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
5.2.2.1. Tipos de Dados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
5.2.2.2. Constantes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
5.2.3. Nós . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
5.3. Funções - Visão Geral . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32

ii
5.4. Conectando Objetos do Diagrama de Blocos . . . . . . . . . . . . . . . . . . . . . . . . . . 34
5.4.1. Conexão Automática . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
5.4.2. Remoção de Fios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
5.4.3. Pontos de Compatibilidade por Conversão . . . . . . . . . . . . . . . . . . . . . . . . . 35
5.5. VIs e Funções Polimórficas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
5.6. Manipulação de Dados Variantes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
5.7. Unidades Numéricas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
5.8. Fluxo de Dados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
5.9. Projetando o Diagrama de Blocos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
6. Executando e Depurando VIs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
6.1. Técnicas de Depuração . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
7. Criando VIs e SubVIs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
7.1. VIs e Funções Embutidas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
7.2. SubVIs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
7.2.1. Instalação do Painel de Conexão . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
7.2.2. Gradação de Exigências . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
7.2.3. Criação de Ícones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
7.2.4. Criação de subVIs por Seleção . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
7.2.5. Projetando subVIs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
7.2.6. Hierarquia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
7.3. Armazenando VIs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
7.4. Disponibilização de VIs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
Apêndice A - IEEE 488: GPIB . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
Apêndice B - O IEEE 488.2 e o SCPI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
Bibliografia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69
Índice Remissivo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70

iii
Índice de Figuras

5
Fig. 2.1. Exemplo de um painel frontal
6
Fig. 2.2. Exemplo de um diagrama de blocos e correspondente
painel frontal
8
Fig. 2.3: O ícone default, e um painel de conexão
10
Fig. 3.1: A paleta Controls
11
Fig. 3.2: A paleta Functions
12
Fig. 3.3: A paleta Tools
26
Fig. 4.1: Barra de ferramentas do LabVIEW
28
Fig. 5.1: Os fios: exemplos de cores e espessuras
32
Fig. 5.2: A paleta Functions
41
Fig. 6.1: Os botões Run, Run Continuously, Abort Execution,
Pause/Continue, Highlight Execution e os três de controle
passo-a-passo: Step Into, Step Over, e Step Out
42
Fig. 6.2: Os botões Broken e Warning
47
Fig. 7.1: Alinhamento de terminais: 1. impróprio; 2. apropriado
48
Fig. 7.2: A janela Error list, com a caixa Show Warnings selecionada
49
Fig. 7.3: A janela Icon editor
54
Fig. A.1: O Conceito do barramento IEEE 488
55
Fig. A.2: O endereçamento GPIB
55
Fig. A.3: Instrumento IEEE 488
57
Fig. A.5: O conector GPIB e seus sinais
58
Fig. A.6: A configuração linear e em estrela

iv
63
Fig. A.7: Exemplo de utilização do GPIB no LAbVIEW. O VI está
expandido para mostrar o conteúdo dos quadros e dos
casos
63
Fig. B.1: O SCPI - modelo de instrumento

v
Índice de Tabelas

4
Tab. 2.1: Comparação entre instrumentação física e virtual
29
Tab. 5.1: Terminais de Controle e Indicação
56
Tab. A.1: Características elétricas do padrão IEEE 488
60
Tab. A.2: Mensagens e endereços de interfaceamento 488.1
62
Tab. A.3: Comandos Comuns 488.2

vi
1

1. Introdução Geral

LabVIEW é uma linguagem de programação gráfica que usa ícones no


lugar de linhas de texto para criar aplicações. Em contraste com as linguagens
baseadas em texto, onde as instruções determinam a execução do programa, o
LabVIEW usa uma programação tipo fluxo de dados, onde este fluxo determina a
execução.

Esta linguagem (acrônimo para Laboratory Virtual Instruments


Engineering Workbench) foi desenvolvida no final da década de 80 pela National
Instruments, Inc para ambientes de janelas (tipo Windows). Tornou-se popular e
largamente aceito no meio científico e de engenharia, sendo similar a outras
linguagens gráficas oferecidas por outras empresas, como o pacote HP-VEE da
Hewlett-Packard.

No LabVIEW, pode-se construir uma interface usufruindo de um


conjunto de ferramentas e objetos. A interface do usuário é conhecida como painel
frontal. Então, os códigos são adicionados usando representações gráficas das
funções, para controlar os objetos do painel frontal. O diagrama de blocos contém
este código. De muitas formas, o diagrama de blocos imita um fluxograma. Utiliza-se
uma linguagem de programação gráfica chamada G, mas não é necessário
conhecê-la para usufruir das possibilidades do LabVIEW.

Pode ser também um programa em tempo real (LabVIEW RT), onde a


aplicação trabalha sem a necessidade de outro sistema operacional, pois vem com
próprio Kernel, que encarrega-se de administrar os processos computacionais de
baixo nível, além do nível superior.

Pode-se adquirir muitos conjuntos de ferramentas para o


desenvolvimento de aplicações específicas. Todas estes conjuntos de ferramentas
integram perfeitamente o LabVIEW. Também é compatível com ferramentas de
desenvolvimento similares e pode trabalhar com programas de outra área de
aplicação, como o Matlab.

Além de desta facilidade no desenvolvimento de aplicações


computacionais, é de simples integração com os componentes físicos do sistema,
2
especialmente com placas de medição, aquisição e processamento de dados,
incluindo aquisição de imagens.

Encontra aplicabilidade em sistemas de medição, como


monitoramento de processos e aplicações de controle. É muito utilizado no
processamento digital de sinais (wavelets, FFT, análise de conteúdo harmônico
etc.), em processamento em tempo real de aplicações biomédicas, na manipulação
de imagens e áudio, automação, no projeto de filtros digitais, geração de sinais, e
outras.
3

2. Introdução aos Instrumentos Virtuais

A instrumentação sempre se usufruiu da tecnologia eletrônica


amplamente usada para conduzir sua própria inovação. O preciso movimento do
relógio foi primeiramente utilizado para construir medidores analógicos. O capacitor
variável, o resistor variável, e o tubo de vácuo de rádios foram usados para
promover o começo da eletrônica de instrumentação. A tecnologia de monitores foi
levada da televisão para uso em osciloscópios e analisadores.

Atualmente, a relação custo-benefício e elevada capacidade dos


computadores tipo desktop e notebook torna-os a pavimentação do caminho para
novos tipos de instrumentos, os instrumentos virtuais. Os instrumentos virtuais são
projetados e construídos pelo usuário, adaptados a necessidades específicas,
aproveitando-se desta capacidade e baixo custo dos computadores pessoais e
estações de trabalho.

O programa computacional é vital para os instrumentos virtuais. O


aplicativo investe o usuário com as ferramentas necessárias para construir
instrumentos virtuais e expande sua funcionalidade por prover conectividade com a
enorme capacidade dos computadores pessoais e estações de trabalho, como sua
variedade de aplicações, flexibilidade, e modularidade, enquanto diminui
simultaneamente o tempo de desenvolvimento e custo de manutenção. A Tab. 2.1
apresenta um comparativo entre os instrumentos físicos e os virtuais.
4
Tab. 2.1: Comparação entre instrumentação física e virtual

Instrumentação Tradicional Instrumentação Virtual


Definido por fabricante Definido pelo usuário
Específico em função, independente Orientado à aplicação, com
com conectividade limitada conectividade em nível de rede,
periféricos, e aplicações.
Os elementos eletrônicos e mecânicos O aplicativo computacional é vital
são vitais
Custo elevado Baixo custo, reutilizável
Pronto, com funcionalidade fixa Aberto, com funcionalidade flexível
acompanhando a tecnologia
computacional
Lenta renovação da tecnologia (ciclo de Rápida renovação de tecnologia
vida entre 5 e 10 anos) (ciclo de vida de 1 a 2 anos)
Alto custo de desenvolvimento e O aplicativo computacional minimiza
manutenção os custos de desenvolvimento e
manutenção

Os programas LabVIEW são chamados de instrumentos virtuais, ou


VIs (virtual instruments), pois sua aparência e operação imita instrumentos reais, tal
como osciloscópios e multímetros. Todo VI usa funções que manipulam entradas
da interface de usuário e outras fontes, e mostra esta informação ou a movimenta
para outros arquivos ou computadores.

Um VI contém os três seguintes componentes:

y Painel frontal - Atua como a interface de usuário;

y Diagrama de blocos - Contém o código-fonte gráfico que define a


funcionalidade do VI;

y Ícone e painel de conexão - Identifica o VI tal que possa ser usado em outro
VI. Um VI dentro de outro VI é chamado de subVI. Um subVI corresponde a uma
subrotina nas linguagens de programação baseadas em texto.
5

2.1. O Painel Frontal

O painel frontal é a interface de usuário do VI. A Fig. 2.1 mostra um


exemplo de painel frontal.

Fig. 2.1. Exemplo de um painel frontal.

Pode-se construir o painel frontal com controles e indicadores, que são


os terminais de entrada e saída interativos do VI, respectivamente. Controles são
botões, chaves, discos de ajuste, e outros dispositivos de entrada. Indicadores são
gráficos, LEDs, e outros mostradores. Os controles simulam dispositivos de entrada
de instrumentos e fornecem dados ao diagrama de blocos do VI. Os indicadores
simulam dispositivos de saída de instrumentos e mostram dados que o diagrama de
blocos adquire ou produz.

2.2. O Diagrama de Blocos

Após construir-se o painel frontal, adiciona-se o código usando as


representações gráficas das funções para controlar os objetos do painel frontal. O
diagrama de blocos contém este código-fonte gráfico. Os objetos do painel frontal
6
aparecem como terminais no diagrama de blocos. Não se pode eliminar um terminal
a partir do diagrama de blocos. O terminal desaparece somente após eliminar-se
seu correspondente objeto do painel frontal.

O VI na Fig. 2.2 mostra muitos objetos primários do diagrama de


blocos: terminais, funções, e fios.

Fig. 2.2. Exemplo de um diagrama de blocos e correspondente painel frontal.

2.2.1. Terminais

Os terminais representam os tipos de dados do controle ou indicador.


Por exemplo, um terminal DBL (v. Fig. 2.2), representa um controle ou indicador
numérico de ponto flutuante com dupla precisão.

Terminais são portas de entrada e saída que transportam informações


entre o painel frontal e o diagrama de blocos. Os dados que são colocados nos
controles no painel frontal vão para o diagrama de blocos através dos terminais de
entrada. Após completar-se o tratamento contido no diagrama de blocos, o
7
resultado, através dos terminais de saída, é conduzido aos indicadores no painel
frontal.

2.2.2. Nós

Os nós são objetos no diagrama de blocos que tem entradas e/ou


saídas e realizam operações quando o VI é executado. Eles são análogos às
proposições, operadores, funções, e subrotinas das linguagens de programação
baseadas em texto.

2.2.3. Fios

A transferência de dados entre os objetos do diagrama de blocos é


feita através dos fios. Cada fio tem somente uma fonte de dados, mas pode-se
ligá-lo em muitos VIs ou funções que o tipo de dado que ele conduz. Um fio rompido
aparece como uma linha preta tracejada.

2.2.4. Estruturas

As estruturas são representações gráficas dos laços e proposições


tipo caso das linguagens de programação baseadas em texto. São usadas no
diagrama de blocos para repetir blocos de código e para executar códigos
condicionalmente ou em ordem específica.

2.3. O Ícone e o Painel de Conexão

Depois de construir-se o painel frontal e o diagrama de blocos de um


VI, monta-se o ícone e o painel de conexão, tal que possa ser usado como um
subVI. Todo o VI mostra um ícone na extremidade superior direita da janela do
painel frontal e do diagrama de blocos. Um ícone é uma representação gráfica de
um VI. Pode conter textos, imagens, ou combinação de ambos. Se um VI é usado
como um subVI, o ícone identifica-o no diagrama de blocos.
8
É necessário também construir um painel de conexão, para usar o VI
como um subVI. O painel de conexão é um conjunto de terminais que corresponde
aos controles e indicadores do tal VI, similar a lista de parâmetros de uma chamada
de função nas linguagens de programação baseadas em texto. O painel de conexão
define as entradas e saídas do VI que podem ser usadas quando funcionando como
um subVI. Um painel de conexão recebe dados nos terminais de entrada e
transfere-os para o código do diagrama de blocos através dos controles do painel
frontal, e recebe os resultados nos terminais de saída, provenientes dos indicadores
do painel frontal. A Fig. 2.3 apresenta o ícone padrão e um exemplo de painel de
conexão.

Fig. 2.3: O ícone default, e um painel de conexão.

Quando vê-se o painel de conexão pela primeira vez, vê-se um


modelo de conexões. Pode-se selecionar um modelo diferente se necessário. O
painel de conexão geralmente possui um terminal para cada controle ou indicador
no painel frontal. Alterações nas entradas e saídas do VI automaticamente
refletem-se no painel de conexão. O painel de conexão suporta até vinte e oito
terminais. Apesar disso, recomenda-se não designar mais que dezesseis terminais
no VI, pois uma quantidade elevada pode reduzir a legibilidade do VI.

2.4. Usando e Adaptando VIs e SubVIs

Após construir-se um VI e criar seu ícone e painel de conexão,


pode-se usá-lo como um subVI.

Eles podem ser armazenados individualmente em arquivos, ou em


grupos dentro de uma biblioteca de VIs.
9
A aparência e características de um VI podem ser modificadas.
Também é possível criar menus individuais para todo o VI construído, e configurá-lo
para mostrar ou ocultar barras de menu.
10

3. O Ambiente LabVIEW

3.1. A Paleta de Controles

A paleta de controles é disponível apenas no painel frontal (Fig. 3.1).


Para mostrá-la, deve-se selecionar Window>Show Controls Palette ou pulsar o botão
direito do mouse. Ela é posicionável em qualquer parte da tela.

A sua aparência é modificável.

Fig. 3.1: A paleta Controls.

3.2. A Paleta de Funções

A paleta de funções é disponível apenas no diagrama de blocos (Fig.


3.2). Para torná-la visível usa-se a seleção Window>Show Functions Palette ou a
pulsação do botão direito do mouse sobre a janela do diagrama de blocos. É
posicionável em qualquer lugar da tela.

Sua aparência é modificável.


11

Fig. 3.2: A paleta Functions.

3.3. Comandando as Paletas de Controles e de Funções

Os botões de comando nas paletas de controles e de funções servem


para movimentação de nível e busca por controles, VIs, e funções. Quando pulsa-se
um ícone de subpaleta, a paleta muda para a subpaleta selecionada. Um VI pode
ser carregado na tela pulsando o botão direito do mouse sobre um ícone de VI na
paleta e selecionando Open VI no menu de atalho.

As paletas de controles e funções contém os seguintes botões de


comando:

Elevação (Up) - sobe um nível hierárquico da paleta;

Busca (Search) - coloca a paleta em modo de busca. Neste modo,


localizam-se controles, VIs, ou funções nas paletas realizando procura baseada em
texto.
12

Opções (Options) - Carrega a caixa de diálogo Function Browser Options,


onde a aparência das paletas é configurada.

3.4. A Paleta de Ferramentas

A paleta de ferramentas é disponível tanto do painel frontal quanto no


diagrama de blocos. Uma ferramenta é um modo especial de operação do ponteiro
do mouse. Quando selecionada uma ferramenta, o ícone do ponteiro muda para o
ícone da ferramenta. As ferramentas são usadas para operar e modificar os objetos
do painel frontal e do diagrama de blocos (Fig. 3.3).

Fig. 3.3: A paleta Tools.

A seleção de Window>Show Tools Palette mostra a paleta de


ferramentas. Também, no pressionamento da tecla Shift e do botão direito do
mouse surge uma versão temporária da paleta de ferramentas na locação do
ponteiro. Ela pode ser colocada em qualquer lugar da tela.

3.5. Menus e Barras de Ferramentas

Os menus e itens da barra de ferramentas operam e modificam os


objetos do painel frontal e diagrama de blocos. Os botões da barra de ferramentas
executam o VI.
13
3.5.1. Menus

Os menus no topo da janela do VI contém itens comuns a todos os


aplicativos, tal como Open, Save, Copy, e Paste, e outros itens específicos do
LabVIEW. Alguns dos seus itens possuem atalhos de teclado.

3.5.2. Menus de Atalho

O menu mais geralmente usado é o menu de atalho. Todos os objetos


LabVIEW e espaços vazios no painel frontal e diagrama de blocos tem menus de
atalho associados. Os seus itens servem para mudar a visão ou características dos
objetos do painel frontal ou diagrama de blocos. Para acessá-los, basta pulsar o
botão direito do mouse com seu ponteiro sobre o objeto.

Quanto um VI está sendo executado, ou em modo de execução, todos


os objetos do painel frontal tem um conjunto resumido de itens de menu de atalho.
Este conjunto possibilita cortá-los, copiá-los e colá-los, configurá-los para o valor
padrão, ou ler suas descrições.

Alguns dos controles mais complexos possuem opções adicionais. Por


exemplo, o menu de atalho do vetor (array) inclui itens para copiar uma faixa de
valores ou ir para o último elemento do vetor.

3.5.3. Barra de Ferramentas

Os botões da barra de ferramentas executam e editam um VI. Quando


um VI é executado, botões aparecem na barra de ferramentas que são usados para
depurar o VI.
14

3.6. Modificando o Ambiente de Trabalho

É possível alterar a aparência das paletas de controles e de funções,


além de escolher outras configurações para o ambiente de trabalho, pela caixa de
diálogo Options.

3.6.1. Modificando as Paletas de Controles e de Funções

As seguintes atitudes modificam as paletas de controles e de funções:

y Adição de VIs e controles às paletas;

y Configuração de distintas visualizações para usuários diferentes, ocultando


alguns VIs e funções para facilitar o uso para um usuário, enquanto provê
paletas completas para outro usuário;

y Rearranjo das paletas para tornar mais acessíveis VIs e funções de uso
freqüente;

y Conversão do conjunto de controles ActiveX em controles customizados e


sua adição às paletas;

y Adição de conjuntos de ferramentas às paletas.

3.6.1.1. Adicionando VIs e Controles às Bibliotecas de Usuário e de Instrumentos

O método mais simples para adicionar VIs e controles às paletas de


controles e de funções é armazená-los na pasta user.lib. Quando reinicializado, o
LabVIEW reconhece-os, apresentando-os nas paletas Functions>User Libraries e
Controls>User Libraries, que contém subpaletas para cada pasta, biblioteca de VI
(.llb) ou arquivo de menu (.mnu) em user.lib, e ícones para cada arquivo em
user.lib. O LabVIEW automaticamente sobrepõe as paletas quando arquivos são
adicionados ou removidos dos diretórios específicos.
15
A paleta Functions>Instrument I/O corresponde à pasta instr.lib.
Armazenar os drivers de instrumentos nesta pasta fazem-los mais acessíveis na
paleta de funções.

Quando este método é usado para adicionas controles ou VIs às


paletas, não se pode determinar a exata localização dos mesmos nas paletas.

3.6.1.2. Criando e Editando a Visualização das Paletas

Para controlar a exata localização dos VIs e controles adicionados,


deve-se criar uma visualização de paleta. Estas informações são armazenadas na
pasta labview\menus. A pasta menus contém diretórios que correspondem a cada
visualização que foi criada ou instalada. Se o LabVIEW esta sendo executado em
uma rede, pode-se definir diretórios individuais menus para cada usuário, o que
facilita a transferência para outras pessoas.

Quando uma nova visualização é criada, o LabVIEW copia a paleta


original alocada na pasta labview\menus antes que qualquer alteração seja
realizada. Isto garante uma experimentação sem que a visualização original seja
corrompida.

Os arquivos .mnu e .llb contém, cada um, uma paleta de controles e


uma de funções. Em acréscimo, cada arquivo contém um ícone para as paletas de
controle e de funções. As paletas criadas devem ser armazenadas em arquivos
.mnu separados.

Quando é selecionada uma visualização, o LabVIEW procura na pasta


menus por uma pasta que corresponda a esta visualização. Ele constrói o nível
superior de paletas e subpaletas de controle e de funções no arquivo root.mnu
nesta pasta que automaticamente é criada quando uma visualização é produzida.

Para cada VI ou controle, o LabVIEW cria um ícone na paleta. Para


cada subpasta, arquivo .mnu ou .llb, o LabVIEW cria uma subpaleta na paleta.
16
3.6.1.3. Construindo Subpaletas ActiveX

Se controles ActiveX são usados no painel frontal, a seleção


Tools>Advanced>Import ActiveX Controls converte um conjunto de controles
ActiveX em controles customizados e adiciona-os a paleta de controles. O LabVIEW
armazena os controles na pasta user.lib por padrão, pois todos os arquivos e
pastas em user.lib automaticamente aparecem nas paletas.

3.6.1.4. Representando Conjuntos de Ferramentas nas Paletas

Conjuntos de ferramentas que são instalados em vi.lib\addons


automaticamente aparecem no nível superior das paletas de controle e de funções
após a reinicialização do LabVIEW.

Recomenda-se não armazenar os VIs e controles produzidos pelo


usuário na pasta vi.lib, pois o LabVIEW sobrepõe estes arquivos quando um
atualização do programa for executada. Deve-se armazená-los na pasta user.lib.

3.6.2. Configurando as Opções de Ambiente

Selecionando Tools>Options pode-se configurar o ambiente de


trabalho do LabVIEW. Usando a caixa de diálogo Options, escolhe-se opções de
caminhos de pastas, desempenho e volumes de disco, painéis frontais, diagramas
de blocos, capacidade de desfazer operações, ferramentas de depuração, cores,
fontes de caracteres, impressão, janelas de histórico, formato de hora e data, e
outras características do LabVIEW.

3.6.2.1. Como o LabVIEW Armazena as Opções

As opções são armazenadas no arquivo labview.ini na pasta


labVIEW. O formato de arquivo é similar aos outros .ini. Ele começa com uma
17
seção de marcação seguida de um nome de opção e seu valor, tal como
offscreenUpdates=True.

No caso de uso de um outro arquivo de opções, pode-se indicá-lo ao


LabVIEW. É suficiente editar as propriedades do atalho do LabVIEW, escrevendo no
caminho de atalho labview -pref <nome do arquivo de opções> .
18

4. Construindo o Painel Frontal

O painel frontal é a interface de usuário de um VI. Geralmente, é


projetado em primeiro lugar o painel frontal, então projetado o diagrama de blocos
para realizar o trabalho com as entradas e saídas que estão no painel frontal.

4.1. Configurando os Objetos no Painel Frontal

O painel frontal é configurado usando os menus de atalho dos


controles e indicadores, escolhendo a ordem dos seus objetos, e na importação de
gráficos. Pode-se também redimensionar manualmente os objetos do painel frontal
e configurá-los para se redimensionarem automaticamente quando a janela muda
de tamanho.

4.1.1. Mostrando e Ocultando Elementos Opcionais

O painel frontal tem elementos opcionais que podem ser ocultos ou


mostrados. Uma lista dos elementos disponíveis é apresentada com um pulso no
botão direito do mouse sobre o objeto e selecionando Visible Items no menu de
atalho.

4.1.2. Alternando entre Controles e Indicadores

O LabVIEW inicialmente configura os objetos na paleta de Controles


como controles ou indicadores baseado no uso típico. Por exemplo, um LED
aparece no painel frontal como um indicador pois um LED é geralmente um
dispositivo de saída.

Algumas paletas contém um controle e um indicador para o mesmo


objeto. Por exemplo, a paleta Controls>Numeric contém um controle digital e um
indicador digital.
19
Então, pelo menu de atalho, pode-se permutar entre controle e
indicador, selecionando Change to Control ou Change to Indicator.

4.1.3. Substituindo Objetos do Painel Frontal

Através do menu de atalho do objeto, é disponibilizada a opção


Replace, de onde uma paleta de controles temporária aparece. Então, pode-se
substituir o objeto por outros.

Este método preserva tanta informação quanto possível sobre o objeto


original, tal como seu nome, descrição, dado padrão, direção de fluxo (controle ou
indicador), cor, tamanho, e outras. Entretanto, o novo objeto retém o seu próprio tipo
de dados. Ligações dos terminais ou variáveis locais permanecerão no diagrama de
blocos, mas deverão romper-se, devido a incompatibilidade de tipo.

Quanto mais o novo objeto assemelhe-se ao antigo, mais


características serão preservadas.

Se for utilizado o clipboard, nenhuma característica do objeto antigo


será preservada.

4.1.4. Usando Gráficos Importados

Gráficos podem ser importados de outros aplicativos, com a finalidade


de uso como fundo do painel frontal, como itens em anéis de controle, e como
partes de outros controles e indicadores.

Para importar um gráfico, pode-se copiá-lo para o clipboard


transferindo-o posteriormente para o painel frontal, ou selecionar Edit>Import Picture
from File.

4.1.5. Agrupamento e Bloqueio de Objetos

Objetos agrupados mantêm seu arranjo relativo, enquanto que objetos


bloqueados mantêm sua posição no painel frontal, e não podem ser apagados.
20
Entretanto, mesmo agrupados ou bloqueados, podem ser configurados em qualquer
tempo.

Para tanto, deve-se marcar os objetos a editar com a ferramenta


Positioning, e pulsar o botão Reorder na barra de ferramentas, escolhendo Group ou
Lock, no menu que surge.

4.1.6. Redimensionando Objetos

A maior parte dos objetos podem ser dimensionados. Quando


move-se a ferramenta Positioning sobre um objeto dimensionável, surgem
marcadores de redimensionamento. Objetos agrupados são dimensionados em
conjunto.

Para restringir o crescimento em uma direção ou manter a


proporcionalidade de crescimento, deve-se pressionar a tecla Shift no ato da
manipulação. Para dimensionar baseado no centro do objeto, deve-se pressionar o
conjunto Ctrl-Shift.

4.1.7. Proporcionalidade de Objetos

Quando redimensiona-se a janela do painel frontal, pode-se configurar


os objetos para manter suas proporções relativas a esta janela. Ao selecionar um
objeto, escolhe-se Edit>Scale Object With Panel. Somente é possível a configuração
de um único objeto. Assim, para configurar mais de um objeto, deve-se
primeiramente agrupá-los.

4.1.8. Adicionando Espaço no Painel Frontal

Para incrementar o espaço entre objetos próximos ou amontoados,


deve-se pressionar a tecla Ctrl e usar a ferramenta Positioning sobre o espaço de
trabalho do painel frontal. Enquanto mantém-se a combinação de teclas, arrasta-se
uma região no tamanho que deseja-se inserir.
21

4.2. Controles e Indicadores do Painel Frontal

4.2.1. Objetos em 3D e Clássicos

Muitos objetos do painel frontal têm alta resolução de cores e


aparência tridimensional. O monitor deve estar configurado para uma resolução de
no mínimo dezesseis bits para cores (65 536 cores), para uma aparência ótima dos
objetos.

Os objetos tridimensionais do painel frontal também têm seus


correspondentes em baixa resolução de cores - os objetos bidimensionais. Estes
objetos em 256 e 16 cores estão na paleta Controls>Classic Controls.

4.2.2. Slides, Knobs, Dials, e Mostradores Digitais

Os objetos das paletas Controls>Numeric e Controls>Classic


Controls>Numeric simulam slides, knobs, dials e mostradores digitais. Estas paletas
também incluem caixas de cores e uma rampa de cores para configuração de
valores de cores. Os dados numéricos são mostrados e inseridos pelos indicadores
e controles numéricos, respectivamente.

Os controles e indicadores tipo slide estão na forma vertical,


horizontal, além de imitarem um tanque e um termômetro. Seu valor é alterado ao
deslizar o ajuste, pulsar o ponteiro do mouse na posição desejada ou entrar com
dados no mostrador opcional. Se o ajuste é deslizado para uma nova posição, os
valores intermediários são passados ao VI, dependendo de como este lê o controle.

Ao pulsar com o botão direito do mouse sobre este objeto, pode-se


acrescentar mais ajustes selecionando Add Slider através do menu de atalho. O tipo
de dado agora será um grupo (cluster) que contém cada um dos valores numéricos.

Os controles e indicadores do tipo rotacional incluem knobs, dials,


gauges e medidores. Operam em semelhança aos tipo slide. Pode-se alterar seu
valor no mover do ponteiro, por pulsar sobre um ponto no mostrador ou usando o
22
mostrador numérico opcional. Identicamente ao anterior, no menu de atalho
adiciona-se mais ponteiros selecionando-se Add Needle. Os dados serão do tipo
grupo (cluster) após esta mudança.

Os controles e indicadores digitais são o caminho mais simples para


entrar e mostrar dados numéricos. Podem ser dimensionados manualmente para
acomodar mais dígitos. O valor indicado pode ser alterado por inserção direta no
mostrador, usando a ferramenta Labeling ou Operating; por manipulação dos botões
laterais com a ferramenta Operating; ou com as setas para cima e para baixo no
teclado, ao posicionar o cursor a direita do dígito que se deseja alterar.

A caixa de cores mostra uma cor que corresponde a um valor


numérico. Este valor é hexadecimal, da forma RRGGBB. O byte menos significativo
expressa a intensidade de azul, o intermediário expressa a intensidade de verde, e
o mais significativo, a de vermelho. A cor da caixa de cores pode ser ajustada com a
ferramenta Operating ou Coloring, através do mostrador de cores que surge após
pulsar o ponteiro sobre o objeto.

A rampa de cores usa uma cor para mostrar seu valor numérico. Uma
escala de cores é configurada a partir de pelo menos dois marcadores arbitrários,
cada um com um valor numérico e uma cor correspondente. Conforme o valor de
entrada é alterado, o mostrador muda para a cor correspondente. Este objeto
encontra utilidade na indicação de limites operacionais. O menu de atalho fornece
as opções de configuração.

4.2.3. Botões, Chaves e Luzes

Os controles e indicadores booleanos estão nas paletas


Controls>Boolean e Controls>Classic Controls>Boolean. Eles simulam Botões,
chaves e luzes. O menu de atalho oferece as opçoes de configuração e
comportamento para estes objetos.
23
4.2.4. Caixas de Texto, Letreiros e Mostradores de Caminho

Os objetos nas paletas Controls>String & Path e Controls>Classic


Controls>String & Path simulam caixas de texto, letreiros e indicadores de arquivos
e pastas.

4.2.5. Objetos Tipo Grupo e Vetor

As paletas Controls>Array & Cluster e Controls>Classic Controls>Array


& Cluster contém objetos para criação e gerenciamento de vetores (arrays) e grupos
(clusters) de outros controles e indicadores.

4.2.6. Controles e Indicadores Tipo Aba

Pode-se sobrepor controles e indicadores do painel frontal ao utilizar o


controle do tipo aba. Este controle consiste de páginas e marcadores. Os objetos do
painel frontal podem ser distribuídos por sobre as páginas, e encontrados ao
selecionar o respectivo marcador.

No diagrama de blocos, os terminais respectivos destes objetos nas


páginas do controle tipo aba aparecem como qualquer outro terminal.

4.2.7. Caixas de Listagem

Os controles das paletas Controls>List & Table e Controls>Classic


Controls>List & Table são usados para fornecer ao usuário uma lista de itens a
escolher. Para modificar itens e acumular informação sobre os mesmos deve-se
usar a opção Property Node da caixa de listagem.

As caixas de listagem suportam a busca por iniciais. O


pressionamento da tecla Tab leva ao próximo item que corresponda. Shift-Tab
retorna ao anterior.
24
4.2.8. Objetos Tipo Anel e Enumerados

Para criar uma lista que possa ser percorrida em ciclo fechado,
deve-se usar os objetos da paleta Controls>Ring & Enum ou Controls>Classic
Controls>Ring & Enum.

Os controles do tipo anel são objetos numéricos que associam valores


numéricos, na faixa de zero a ‘n-1’, com seqüência de caracteres ou figuras.
Aparecem como menus descendentes, que os usuários podem efetuar de forma
cíclica a seleção. Eles suportam busca por iniciais.

Os controles do tipo enumerados são similares ao tipo anel.


Entretanto, o valor fornecido é uma seqüência de caracteres (string), no lugar de um
número.

4.2.9. Objetos para Gerenciamento de Entrada e Saída

A paleta Controls>I/O ou Controls>Classic Controls>I/O contém objetos


usados para fornecer números de canais DAQ, nomes-fonte de VISA e nomes
lógicos de IVI para configuração dos VIs de entrada e saída que comunicam com
um instrumento ou dispositivo de aquisição de dados. Constantes são localizadas
nas paletas Functions>Instrument e Functions>DAQ.

4.2.10. Referências a Objetos ou Aplicações

Quando se trabalha com arquivos, pastas, dispositivos e conexões de


rede é necessário a existência de números de referência, identificadores únicos
para cada objeto. O LabVIEW cria um ponteiro temporário, refnum (reference
number) toda a vez que se abre um arquivo, dispositivo ou conexão de rede.
Quando se fecha o objeto, este ponteiro se torna obsoleto. As paletas
Controls>Refnum e Controls>Classic Controls>Refnum contêm controles e
indicadores do tipo número de referência.
25
4.2.11. Controles Tipo Diálogo

Os controles tipo diálogo são projetados para trabalhar com caixas de


diálogo, incluindo controles tipo anel, botões, caixas de diálogo com abas, caixas
para marcação (checkboxes) e botões de rádio (radio buttons). Estes controles e
indicadores estão alocados na paleta Controls>Dialog Controls. A aparência destes
objetos é diretamente dependente das cores de configuração da área de trabalho.

4.3. Rotulação

Para identificar objetos no painel frontal e o diagrama de blocos


existem os rótulos.

O LabVIEW inclui dois tipos de rótulos: rótulos próprios e livres.


Rótulos próprios pertencem a um objeto específico. São ocultáveis, mas não se
pode eliminá-los ou duplica-los sem interferir no objeto a ele ligado. São de livre
movimentação, mas quando seu objeto é movimentado, movimenta-se com o
objeto. Rótulos de unidades para controles numéricos são mostrados a partir do
menu de atalho, selecionando Visible Items>Unit Label.

Rótulos livres não estão ligados a qualquer objeto, sendo de livre


movimento, eliminação e duplicação. Servem para criar anotações no painel frontal
e no diagrama de blocos.

A ferramenta Labeling cria rótulos livres e edita qualquer tipo de rótulo.

Os objetos do painel frontal possuem títulos. A partir do menu de


atalho, Visible Items>Caption, mostra o título. Diferente do rótulo, não afeta o nome
do objeto, sendo usado para uma descrição melhor do objeto, e não aparece no
diagrama de blocos.
26

4.4. Características de Texto

O LabVIEW utiliza as fontes presentes no computador. Para alterar os


atributos de um texto, deve-se usar o menu descendente na barra de ferramentas,
Text Settings (v. Fig. 4.1). Este menu contém as seguintes fontes embutidas:

y Application Font - Fonte padrão usada nas paletas de controles e de funções


e no texto de novos controles;

y System Font - Usada em menus;

y Dialog Font - Para textos em caixas de diálogo.

Fig. 4.1: Barra de ferramentas do LabVIEW.

4.5. Projetando Interfaces de Usuário

Se um VI serve de interface de usuário ou caixa de diálogo, a


aparência e estrutura do painel frontal é importante. Deve ser projetado, então, de
forma que usuários possam facilmente identificar que ações executar. Controles e
indicadores racionalmente agrupados e posicionados, nomes de fácil compreensão
e cores e fontes convenientemente escolhidas. Podem assemelhar-se ao painel
frontal do instrumento controlado. Deve-se evitar sobrepor objetos no painel frontal,
pois isto pode ocasionar cintilação dos mesmos, quando da atualização dos objetos.

As fontes e cores escolhidas podem não ser comuns a todos os


computadores. Assim, o LabVIEW substitui-as no caso de ausência por uma bem
próxima. No caso de mudanças de resolução da tela, pode-se evitar a distorção do
painel frontal, através de File>VI Properties, Category, Window Size, Maintain
Proportions of Window for Different Monitor Resolutions.
27

5. Construindo o Diagrama de Blocos

Após a construção do painel frontal, adiciona-se o código usando as


representações gráficas das funções para controlar os objetos do painel frontal. O
diagrama de blocos contém este código-fonte gráfico.

5.1. Relacionamento Painel Frontal e Diagrama de Blocos

Os objetos do painel frontal aparecem como terminais no diagrama de


blocos. Um duplo-pulso sobre o terminal no diagrama de blocos conduz ao
correspondente controle ou indicador no painel frontal. Um terminal somente é
eliminado a partir da remoção seu objeto no painel frontal.

5.2. Objetos do Diagrama de Blocos

5.2.1. Fios

A transferência de dados entre os objetos do diagrama de blocos é


feita através dos fios. A cor e espessura do fio depende do dado que este carrega
(v. Fig. 5.1). A cor é diretamente ligada ao tipo de dado (precisão dupla, seqüência
de caracteres etc.), e, se conduzir um dado tipo vetor (matriz), quanto mais
dimensões possuir, mais espesso é o fio.
28

Fig. 5.1: Os fios: exemplos de cores e espessuras.

5.2.2. Terminais

Um terminal é qualquer ponto no qual liga-se um fio. O LabVIEW tem


terminais de controle e indicação, terminais tipo nó, constantes, e terminais
especializados em estruturas, tal como terminais de entrada e saída em um nó de
fórmula (formula node). Através do menu de atalho, pode-se mostrar ou ocultar os
terminais, selecionando Visible Items>Terminals. Este menu de atalho não é
disponível para funções expansíveis.
29
5.2.2.1. Tipos de Dados

A cor e o símbolo de cada terminal indica o tipo de dado do objeto.


Terminais de controle possuem bordas mais espessas do que terminais de
indicação.

Tab. 5.1: Terminais de Controle e Indicação


Controle Indicador Tipo de Dado Cor
Numérico, ponto flutuante de precisão simples Laranja

Numérico, ponto flutuante de precisão dupla Laranja

Numérico, ponto flutuante de precisão Laranja


estendida

Numérico, complexo, ponto flutuante de Laranja


precisão simples

Numérico, complexo, ponto flutuante de Laranja


precisão dupla

Numérico, complexo, ponto flutuante de Laranja


precisão estendida

Numérico, inteiro, 8-bits com sinal Azul

Numérico, inteiro, 16-bits com sinal Azul

Numérico, inteiro, 32-bits com sinal Azul

Numérico, inteiro, 8-bits sem sinal Azul

Numérico, inteiro, 16-bits sem sinal Azul

Numérico, inteiro, 32-bits sem sinal Azul

Tipo enumerado Azul


30
Booleano Verde

Seqüência de caracteres (string) Rosa

Vetor (Array) - o tipo de elemento é colocado Variável


entre os colchetes

Grupo (Cluster) - pode conter muitos tipos de Marrom ou


dados. Se os elementos são de mesmo tipo, Rosa
sua cor é marrom. Se são de tipos diferentes,
rosa.
Caminho Água

Forma de onda Marrom

Número de referência (refnum) Água

Variante - Inclui o nome do objeto, informação Púrpura


de tipo de dado, e o próprio dado.

Polimórfico - indica a aceitação de mais de um Púrpura


tipo de dado.

Identificação de entrada e saída - fornece os Púrpura


nomes de canais DAQ, nomes-fontes de VISA,
e nomes lógicos de IVI.
Figura - Mostra figuras que contenham linhas, Azul
círculos, textos, e outros tipos de formas
gráficas.

5.2.2.2. Constantes

Os terminais que suprem dados com valores fixos no diagrama de


blocos são do tipo constante. O LabVIEW possui os seguintes tipos de constantes
universais:

y Constantes numéricas universais - um conjunto de valores matemáticos e


físicos com alta-precisão, tais como a base do logaritmo natural (e) e a
velocidade da luz. Estão colocadas na paleta Functions>Numeric>Additional
Numeric Constants;
31
y Constantes de caracteres universais - um conjunto de caracteres
não-visíveis, tais como alimentação de linha (LF) e retorno de carro (CR). Estão
na paleta Functions>String;

y Constantes de arquivo universais - um conjunto de valores geralmente


usados na manipulação de caminhos de arquivo, tais como ‘Not a Path’, ‘Not a
Refnum’, e ‘Default Directory’. Estão na paleta Functions>File I/O>File Constants.

Pode-se criar constantes, pulsando com o botão direito sobre um


terminal de um VI ou função, selecionando Create Constant. Puxando um controle
do painel frontal para o diagrama de blocos ocasiona a criação de uma constante
cujo valor é o do controle no momento desta operação.

A edição do valor de uma constante criada é semelhante a do controle


digital, comentada no item 4.2.2.

5.2.3. Nós

Os objetos que têm entradas e/ou saídas e realizam operações


quando o VI é executado são denominados de nós. O LabVIEW contém os
seguintes tipos:

y Funções (Functions) - elementos de execução embutidos, comparáveis a um


operador, função ou proposição.

y SubVIs - VIs usados no diagrama de blocos de outro VI, comparáveis a


subrotinas;

y Estruturas (Structures) - elementos de controle de processos, tal como


seqüência, caso, laços tipo para, ou laços tipo enquanto;

y Nós de Fórmula (Formula Nodes) - estruturas dimensionáveis para inserção


de equações diretamente no diagrama de blocos;

y Nós de Propriedades (Property Nodes) - controle de propriedades de uma


classe;

y Nós de Invocação (Invoke Nodes) - executam métodos de uma classe;


32
y Nós de Interfaceamento de Código (Code Interface Nodes - CINs) - chamam
códigos de uma linguagem de programação baseada em texto.

5.3. Funções - Visão Geral

As funções são os elementos operacionais essenciais do LabVIEW.


Estão na paleta Functions e são representadas por ícones de fundo amarelo (v. Fig.
5.2). Não têm painéis frontais ou diagramas de blocos, mas possuem painéis de
conexão.

Fig. 5.2: A paleta Functions.

A paleta também inclui os VIs que são entregues com o LabVIEW.


Estes são representados por ícones de fundo branco.
33
Existem as seguintes funções:

y Funções Numéricas - realizam operações aritméticas, trigonométricas,


logarítmicas e de conversão e manipulação numérica. Estão na paleta
Functions>Numeric;

y Funções Booleanas - manipulação de dados do tipo booleano. A paleta


Functions>Boolean as contém;

y Funções de Caracteres - manipulação de dados do tipo seqüência de


caracteres. Estão na paleta Functions>String;

y Funções de Vetores - manipulação de dados do tipo vetor. Encontram-se na


paleta Functions>Array;

y Funções de Grupos - manipulação de dados do tipo grupo. A paleta


Functions>Cluster apresenta-os;

y Funções de Comparação - usadas na comparação de valores booleanos,


seqüências de caracteres, valores numéricos, vetores e grupos. Estão na paleta
Functions>Comparison;

y Funções de Tempo e Diálogo - a paleta Functions>Time & Dialog agrupa


funções que manipulam a velocidade de execução de operações, retornam
informação de tempo e data e criam caixas de diálogo para apresentar instruções
ao usuário;

y Funções de Entrada e Saída - são funções de manipulação de arquivos.


Estão na paleta Functions>I/O;

y Funções de Forma-de-Onda - as funções da paleta Functions>Waveform são


usadas para construir e manipular formas-de-onda que incluem valores,
informação de canal e temporização;

y Funções de Controle de Aplicativo - são usadas para controlar


programavelmente VIs e aplicações LabVIEW no computador ou através de uma
rede. São colocadas na paleta Functions>Application Control;

y Funções Avançadas - as funções alocadas na paleta Functions>Advanced


chamam códigos de bibliotecas, tais como as bibliotecas de ligação dinâmicas
34
(DLLs), manipulam os dados LabVIEW para serem usados em outras aplicações,
e chamam porções de código de linguagens de programação baseadas em texto.

5.4. Conectando Objetos do Diagrama de Blocos

A transferência de dados no diagrama de blocos é feita através dos


fios. Cada fio tem uma única fonte de dados, mas pode-se destiná-lo a diversos VIs
e funções simultaneamente. Eles são apresentados com cores que indicam o tipo
de dado que carregam (v. Tab. 5.1). Um fio rompido aparece como uma linha preta
tracejada.

Quando move-se a ferramenta Wiring sobre um ícone de VI ou função,


surgem pontas de conexão, que indicam o tipo de dado de cada terminal. Um rótulo
temporário também aparece, indicando o nome do terminal.

Os terminais podem ser conectados verticalmente ou horizontalmente,


dependendo da direção na qual movimenta-se a ferramenta Wiring. O fio conecta-se
no centro do terminal, desconsiderando onde foi posicionado pelo usuário. Após
iniciar a conexão, pode-se permutar entre as direções vertical e horizontal
pressionando a barra de espaço no teclado. Ao pulsar o botão do mouse,
imobiliza-se uma parte do fio. O pressionamento da tecla Ctrl simultaneamente com
o pulsar do mouse desfaz a última imobilização.

Na sobreposição de fios, um pequeno espaço aparece no primeiro fio


desenhado para indicar que está debaixo do segundo fio. Entretanto, deve-se evitar
o cruzamento de fios, pois pode dificultar o entendimento do diagrama de blocos,
tornando-o de difícil depuração.

5.4.1. Conexão Automática

Ao pressionar a barra de espaço enquanto o objeto é movimentado


pela ferramenta Positioning permuta-se entre o modo de conexão manual e
automático.
35
Se o modo automático está habilitado, o LabVIEW automaticamente
liga os objetos quando são colocados no diagrama de blocos, de acordo com a
melhor adaptação. Caso não exista compatibilidade, os terminais permanecem
desconectados. Por padrão, a conexão automática é habilitada quando um objeto é
selecionado da paleta de funções ou quando é duplicado um objeto do diagrama de
blocos pelo pressionamento da tecla Ctrl e arrasto do objeto. A conexão automática
é desabilitada quando um objeto já no diagrama de blocos é movimentado com a
ferramenta Positioning.

5.4.2. Remoção de Fios

Um fio rompido aparece como uma linha tracejada preta.


Rompimentos ocorrem por várias razões, tal como quando há tentativa de conectar
dois objetos com incompatibilidade de dados, ou simplesmente porque o fio ainda
não foi totalmente conectado

Quando move-se a ferramenta Wiring sobre o fio rompido, surge um


rótulo temporário que descreve o motivo do rompimento. Um triplo-pulso no fio com
a ferramenta Positioning e o pressionamento da tecla Delete remove o fio rompido.

5.4.3. Pontos de Compatibilidade por Conversão

Pontos de compatibilidade forçada aparecem nos objetos do diagrama


de blocos para alertar que foram conectados dois tipos diferentes de dados. O ponto
indica que o LabVIEW converterá o valor passado para a representação requerida.
Entretanto, estes pontos causam maior uso de memória e incrementam o tempo de
execução. Deve-se, então, manter consistência nos VIs.

As funções e VIs podem ter muitos terminais, assim, o ponto de


compatibilidade por conversão poderá aparecer dentro do ícone do objeto, onde o
fio foi conectado.
36

5.5. VIs e Funções Polimórficas

As funções e VIs polimórficos podem se ajustar para aceitar dados de


diferentes tipos. Grande parte das estruturas LabVIEW são polimórficas, como são
alguns VIs e funções.

Um VI polimórfico é uma coleção de subVIs com o mesmo modelo de


painel de conexão. Cada subVI é uma instância do VI polimórfico.

No desenvolvimento de VIs polimórficos, devem-se considerar os


seguintes itens:

y Todos os VIs incluídos no VI polimórfico devem ter o mesmo modelo de


painel de conexão;

y As entradas e saídas do painel de conexão de cada instância do VI devem


corresponder às entradas e saídas do painel de conexão do VI polimórfico;

y Os VIs usados para construir um polimórfico não devem conter os mesmos


subVIs e funções;

y Cada um dos painéis frontais dos VIs não precisam ter o mesmo número de
objetos. Entretanto, cada painel frontal deverá ter pelo menos o mesmo número
de controles e indicadores que compõem o painel de conexão do VI polimórfico;

y Pode-se criar um ícone para o VI polimórfico;

y Não se pode usar VIs polimórficos em outro VI polimórfico.

Quando é criada uma documentação completa para um VI que inclui


um subVI polimórfico, o VI polimórfico e os VIs que ele invoca aparecem em List of
SubVIs.

As funções são polimórficas em vários graus: nenhum; algum, ou;


completo. Algumas funções aceitam valores numéricos ou booleanos. Algumas
aceitam números ou seqüências de caracteres. Outras não só aceitam escalares,
mas também vetores numéricos, grupos numéricos e vetores de grupos numéricos.
37

5.6. Manipulação de Dados Variantes

Dados variantes não obedecem a um tipo específico de dados e


contêm atributos, tal como nomes de canais e unidades. O LabVIEW representa
dados variantes com o tipo dado variante. Ele difere dos outros tipos de dados
porque inclui o nome do controle ou indicador, a informação do tipo de dado e o
próprio dado.

As funções para manipulação de dados variantes estão na paleta


Functions>Advanced>Data Manipulation>Variant. Pode-se converter qualquer tipo de
dado LabVIEW em tipo de dado variante para uso em outros VIs e funções. Por
exemplo, na conversão de uma seqüência de caracteres, o tipo variante armazena o
texto e indica que o texto é uma seqüência de caracteres.

Usa-se o tipo variante quando é importante manipular dados


independentemente do tipo. Pode-se também representar os dados de forma
independente do tipo sem usar o tipo variante, apenas por acomodar os dados em
seqüência de caracteres (flattened data).

Seqüências de caracteres e vetores são armazenados em blocos, e


grupos contendo estes tipos são descontíguos, i.e., não são armazenados em
blocos adjacentes na memória. Assim, ao armazenar o grupo em disco, os dados
serão obtidos de dois lugares diferentes. Quando o LabVIEW armazena dados em
um arquivo de VI ou de dados, ele acomoda-os em uma seqüência de caracteres
antes. Isto torna-os contíguos. Ao lê-los, a operação inversa é realizada. Por
exemplo, ao acomodar um vetor bidimensional de seis inteiros de oito bits, { {1, 2,
3}, {4, 5, 6} }, armazena-se 0000 0002 0000 0003 0102 0304 0506.

Entretanto, dados acomodados possuem limitações, pois o LabVIEW


não consegue manter compatibilidade por conversão. Também, ao recompor um
inteiro acomodado, mas para a forma de número em ponto flutuante com precisão
estendida, falha. Assim, deve-se usar o tipo variante para trabalhar com dados de
forma independente do tipo no lugar de acomodação em seqüência de caracteres.

O tipo variante também é útil quando escreve-se ou lê-se a partir da


memória e realiza-se operações que envolvem pilhas (último que entra, primeiro que
38
sai), filas (primeiro que entra, primeiro que sai), buffers inteligentes, ou árvores.
Estas espécies de operações tratam dados independentemente do tipo.

5.7. Unidades Numéricas

O LabVIEW permite associar unidades físicas de medida a qualquer


controle numérico que tenha representação em ponto flutuante. Entretanto, não se
permite utilizá-las em nós de fórmula.

As unidades de um controle aparecem em um rótulo próprio separado,


chamado de rótulo de unidade. Ele é mostrado por selecionar no menu de atalho
Visible Items>Unit Label. Pode-se, então, entrar com as abreviações padrão, como
m para metros, s para segundos etc. Após introduzir uma unidade, o menu de
atalho do rótulo de unidade apresenta todas as unidades disponíveis para
associação, os multiplicadores aceitos (e.g. kilo, centi etc.) e unidades compatíveis a
atual presente no rótulo.

Quando os objetos são associados a unidades, o LabVIEW realiza


uma verificação de consistência. Se detectada inconsistência de unidades, um erro
é retornado, e o fio de conexão aparece rompido.

5.8. Fluxo de Dados

O LabVIEW segue um modelo de fluxo para executar VIs. Um nó do


diagrama de blocos é executado somente quando todas as suas entradas estiverem
disponíveis. Completada a execução, os resultados são disponibilizados nas saídas.
Torna-se, então, dependente dos dados. Quando blocos do diagrama não
conectados por fios podem ser executados em qualquer ordem, são independentes
dos dados. A estrutura tipo seqüencial é a única forma de controlar a execução
quando a dependência de dados natural não existe.

Em linguagens de programação baseadas em texto, a ordem


seqüencial dos elementos do programa determina a ordem de execução. No
LabVIEW, devido ao fluxo de dados possuir mais relevância do que a ordem
39
seqüencial dos comandos, pode-se criar diagramas de blocos que têm operações
simultâneas. O LabVIEW é um sistema multitarefa e multifilamentar, capacitado
então a transportar múltiplos dados e executar VIs simultaneamente. Dessa forma,
ao projetar um diagrama de blocos, deve-se observar cuidadosamente o fluxo de
dados, pois dependendo das conexões, o VI pode não trabalhar conforme o
esperado.

5.9. Projetando o Diagrama de Blocos

Os seguintes itens devem ser observados para projetar diagramas de


blocos:

y Usar uma disposição tipo esquerda-para-direita e do alto-para-baixo. Apesar


do posicionamento não determinar a execução, evitar conexões da direita para a
esquerda mantém a organização e auxilia o entendimento;

y Evitar a criação de diagramas de blocos que ocupem mais que uma ou duas
telas. Diagramas grandes e complexos tornam-se de difícil compreensão e
depuração;

y Verificar a possibilidade do uso de componentes do diagrama de blocos em


outros VIs ou se uma seção do diagrama de blocos comporta-se como um
componente lógico. Caso ocorra, divide-se o diagrama de blocos em subVIs que
realizam tarefas específicas. O uso de subVIs ajuda a gerenciar mudanças e
depurações mais rapidamente;

y Usar VIs manipuladores de erro, funções, e parâmetros para gerenciar erros


no diagrama de blocos;

y Melhorar a aparência do diagrama de blocos por conexões mais eficientes.


Pobre organização das conexões não produzem erros, mas dificultam a análise
do diagrama de blocos, podendo causar a impressão da existência de
comportamentos que não existem;

y Evitar estabelecer conexões passando por debaixo de objetos, pois partes da


conexão ficarão ocultas, dificultando o reconhecimento da fonte e destino dos
dados;
40
y Utilizar a ferramenta Coloring para alterar convenientemente a cor do espaço
de trabalho;

y Incrementar o espaço entre grupos de objetos amontoados ou muito


próximos. Para tanto, pode-se pressionar a tecla Ctrl e usar a ferramenta
Positioning sobre o espaço de trabalho do diagrama de blocos. Enquanto
mantém-se a combinação de teclas, arrasta-se uma região no tamanho que
deseja-se inserir.
41

6. Executando e Depurando VIs

Executar um VI realiza a operação para que ele foi projetado. O botão


Run na barra de ferramentas, que aparece como uma seta branca inicia a execução
do VI. Ele executa o VI uma única vez. O botão Run Continuously executa-o
continuamente até o pressionamento do botão Abort Execution. Os botões de
passo-a-passo (single stepping) executam o VI em passos incrementais. A Fig. 6.1
mostra os botões da barra de ferramentas.

Fig. 6.1: Os botões Run, Run Continuously, Abort Execution, Pause/Continue,


Highlight Execution e os três de controle passo-a-passo: Step Into,
Step Over, e Step Out.

Para propósitos de depuração, pode-se desejar a execução de um


diagrama de blocos nó por nó. Esta forma de execução é chamada passo simples
(single-stepping). Antes de executar o VI, inicia-se o passo simples por pressionar o
botão Pause. A execução do VI também pode ser pausada a qualquer momento, ao
acionar este botão na barra de ferramentas. Ao liberar-se o botão, retorna-se a
execução normal. Se o botão Run é acionado com o Pause ativo, o VI é reiniciado,
mas em pausa. Existem três formas de manipular a execução passo-a-passo: Step
Into - Abre um nó e aguarda. É executada a primeira ação e aguarda-se a próxima
ação do subVI ou estrutura; Step Over - Executa um nó e aguarda no próximo nó;
Step Out - Termina a execução no nó atual e aguarda.

Ao acionar-se a execução Highlight, o VI é executado mostrando o


movimento dos dados no diagrama de blocos através de bolhas que movem-se ao
longo dos fios. Pode-se utilizar está execução juntamente com o modo
passo-a-passo.

A configuração dos modos de execução é feita através de File>VI


Properties, Category, Execution. Por exemplo, pode-se configurar a execução para
42
ser imediata quando aberto ou pausar quando um subVI for chamado. Diferentes
prioridades são admitidas. Por exemplo, se é crucial que um VI seja executado sem
esperar qualquer outra operação completar-se, configura-se a execução para
prioridade de tempo crítico (máxima prioridade).

Enquanto um VI não puder ser executado pelo LabVIEW, o botão Run


aparece com a seta quebrada. Ao pressionar este botão, ou selecionar
Window>Show Error List os erros são apresentados (v. Fig. 6.2). Para encontrar a
localização do erro no painel frontal ou no diagrama de blocos basta pressionar o
botão Show Error ou pulsar duplamente com o mouse sobre a sua descrição. Os
alertas são mostrados se Show Warnings estiver selecionado na janela Error list ou
por Tools>Options, Debugging, Show warnings in error box by default .

Fig. 6.2: Os botões Broken e Warning.

6.1. Técnicas de Depuração

Se um VI não está com execução impedida, mas não realiza o


desejado, pode-se utilizar as seguintes técnicas para identificar e corrigir problemas
com o VI ou com o fluxo de dados do diagrama de blocos:

y Utilizar os parâmetros error in e error out na parte inferior da maioria dos Vis
e funções embutidas. Estes parâmetros detectam erros encontrados em cada nó
e indicam se e onde um erro ocorreu;

y Observar a movimentação dos dados pelo diagrama de blocos usando a


execução tipo highlight, acionada por botão específico na barra de ferramentas;

y Adotar o modo passo-a-passo, para visualizar o comportamento de cada


seção;

y Sondar valores intermediários com a ferramenta Probe, enquanto o VI é


executado;
43
Utilizar breakpoints, na paleta Tools, para iniciar o modo passo-a-passo,
sondar valores intermediários, editar valores de controles ou indicadores ou
controlar as repetições de execução;

Desabilitar a execução de uma parte do diagrama de blocos, para atestar se


o VI é executado de forma melhor.
44

7. Criando VIs e SubVIs

Após adquirir-se entendimento sobre o painel frontal e o diagrama de


blocos, pode-se criar os próprios VIs e subVIs, VIs distribuídos, e montar aplicações
independentes e bibliotecas compartilhadas.

Antes de desenvolver os próprios VIs, deve-se criar uma lista de


tarefas que os usuários necessitarão fazer; determinar os componentes da interface
de usuário e o número e tipo de controles e indicadores necessários para análise de
dados, apresentação dos resultados etc..; discutir com os futuros usuários ou outros
projetistas como e quando acessar funções e atributos. Pode-se criar painéis
frontais simplificados para mostrar aos futuros usuários ou projetistas e determinar
se o painel frontal ajuda os usuários a completar suas tarefas. Este processo
interativo auxilia no refino da interface de usuário.

É recomendável dividir a aplicação em partes gerenciáveis em lugares


lógicos. Iniciar com um diagrama de blocos de nível superior que inclua os principais
componentes da aplicação. Por exemplo, o diagrama de blocos poderá conter um
bloco para configuração, um bloco para aquisição, um bloco para análise dos dados
adquiridos, um bloco para apresentação dos resultados da análise, um bloco para
armazenamento em disco, e um bloco para manipulação de erros.

Após o projeto do diagrama de blocos de nível superior, deve-se


definir entradas e saídas. Então, projetar os subVIs que constituem os principais
componentes do diagrama de blocos de alto-nível. O uso de subVIs torna o
diagrama de blocos de nível superior mais fácil de ler, depurar, compreender, e
manter. Pode-se criar subVIs para operações comuns ou freqüentes, de forma a
serem reutilizados.

Rotinas de teste de nível elevado podem ser criadas, mas encontrar


erros em pequenos módulos é mais simples que testar uma hierarquia de muitos
VIs. Assim, é conveniente testar cada subVI no momento da sua criação.
45

7.1. VIs e Funções Embutidas

O LabVIEW inclui VIs e funções para auxiliar a construção de


aplicações específicas, tais como VIs e funções para aquisição de dados, VIs que
acessam outros VIs, e VIs que comunicam com outras operações. Pode-se utilizar
estes VIs como subVIs nas aplicações para reduzir o tempo de desenvolvimento.

Estes VIs e funções embutidas podem ser utilizados para controlar


instrumentos externos, tal como osciloscópios, e adquirir dados, bem como ler a
partir de um termoacoplador.

Para controlar instrumentos externos, a paleta Functions>Instrument


I/O contém VIs e funções especializadas para esta tarefa. Para controlar
instrumentos pelo LabVIEW, deve-se ter o equipamento correto instalado, ligado, e
operando no computador. Os VIs e funções dependem dos protocolos de
comunicação que o equipamento suporta.

Para adquirir dados a partir de dispositivos DAQ, a paleta


Functions>Data Acquisition fornece os VIs e funções próprias. Para utilizar estes
objetos, o aplicativo de gerenciamento NI-DAQ e o equipamento deverão estar
instalados. Após adquirir dados, pode-se utilizar os VIs e funções embutidas
Analyze, Report Generation, e Mathematics para analisar, gerar relatórios, e realizar
operações matemáticas com estes dados.

Quando se quer controlar o comportamento dos VIs, quando


chamados como subVIs ou executados pelo usuário, a paleta Functions>Application
Control fornece os objetos necessários. Pode-se usar estes VIs e funções para
configurar múltiplos VIs ao mesmo tempo. Também, inseridos em ambiente de rede,
estes VIs e funções são úteis para acessar e controlar VIs remotamente.

Ao trabalhar-se com outras aplicações distintas, a paleta


Functions>File I/O oferece objetos para gerenciamento de arquivos. Assim, é
possível ler e escrever dados a partir de aplicações como o Microsoft Excel. Para a
transferência de dados através da rede de computadores usando um protocolo
como FTP, e para construir aplicações tipo serviço ao cliente (client-server) usando
protocolos de comunicação, os objetos de comunicação alocados na paleta
Functions>Communication permitem esta implementação.
46

7.2. SubVIs

Após construir um VI e criar seu ícone e painel de conexão, pode-se


utilizá-lo em outro VI. Quando isto é feito, é denominado de subVI. Ele corresponde
a uma subrotina nas linguagens de programação baseadas em texto. Assim, um nó
subVI no diagrama de blocos corresponderá a uma chamada de subrotina nas
linguagens de programação baseadas em texto. O nó não é o próprio subVI, tal
como uma expressão de chamada de subrotina não é a própria subrotina. Assim,
um diagrama de blocos que contém muitos nós subVI idênticos chama o mesmo
subVI várias vezes.

Os controles e indicadores do subVI recebem dados a partir do


diagrama de blocos do VI que o chamou e retornam os resultados para o mesmo.

7.2.1. Instalação do Painel de Conexão

Para usar um VI como um subVI, é necessário construir um painel de


conexão. Este painel é um conjunto de terminais que correspondem aos controles e
indicadores do VI, similar a lista de parâmetros de uma chamada de função em
linguagens de programação baseadas em texto. O painel de conexão define as
entradas e saídas que poderão ser ligadas ao VI, de forma que possa ser utilizado
como um subVI.

As conexões são definidas pela designação de um controle ou


indicador do painel frontal para cada terminal do painel de conexão. Para definir um
painel de conexão, deve-se abrir o menu de atalho no canto superior-direito da
janela e selecionar Show Connector. O painel de conexão substituirá o ícone. Cada
retângulo no painel de conexão representa um terminal, que devem ser usados para
determinar as entradas e saídas. O número terminais de entrada e saída é definido
pelo número de controles e indicadores no painel frontal.

O painel de conexão tem, no máximo, vinte e oito terminais. Se o


painel frontal contém mais que este número, deverão ser colocados em grupos
(clusters) e direcionado o grupo para um terminal do painel de conexão. Apesar do
47
número máximo (28), recomenda-se evitar criar mais que dezesseis terminais, pois
o excesso reduz a legibilidade e utilização do VI.

Quando aciona-se o menu de atalho no painel de conexão, e


seleciona-se Patterns, pode-se escolher um modelo diferente de terminais para o VI.
Permite-se sobredimensionar o painel de conexão, para que sejam facilitadas as
alterações com mínimo efeito sobre a hierarquia dos VIs.

Com o objetivo de facilitar a organização do diagrama de blocos,


quando cria-se VIs que serão usados em conjunto, recomenda-se a definição de
painéis de conexão consistentes, com terminais similares em posições iguais, e
alinhamento de entradas e saídas que simplifiquem conexões. O terminal error in é
colocado no canto esquerdo inferior e o error out no canto direito inferior. A Fig. 7.1
ilustra com dois exemplos de alinhamento.

Fig. 7.1: Alinhamento de terminais: 1. impróprio; 2. apropriado.

7.2.2. Gradação de Exigências

As entradas e saídas podem ser configuradas como requeridas,


recomendadas e opcionais, para prevenir usuários quanto ao esquecimento de
efetuar determinadas conexões.

As opções para cada terminal são configuráveis a partir do menu de


atalho do respectivo terminal no painel de conexão, em This Connection Is,
Required, Recommended, ou Optional. A opção recommended configurada como
padrão inicial. As entradas e saídas dos VIs de vi.lib já estão configuradas.

Quando uma entrada ou saída é requerida, não se pode executar o VI


sem conectá-la corretamente. Somente devem ser configuradas assim as entradas
48
e saídas que são necessárias para o VI ser executado apropriadamente. Quando é
recomendada, o VI pode ser executado, porém um aviso será gerado, que poderá
ser visto se Show Warnings estiver selecionado na janela Windows>Show Error List.
O LabVIEW usa o valor padrão para entradas e saídas não conectadas e não relata
qualquer aviso (v. Fig. 7.2).

Fig. 7.2: A janela Error list, com a caixa Show Warnings selecionada.

Acionando-se a janela Context Help em Window>Show Context Help, e


descansando o ponteiro do mouse sobre o ícone do VI, as conexões requeridas
aparecem em negrito, as recomendadas em texto normal, e as opcionais são
enfraquecidas se o modo de observação Detailed estiver ativo, ou não são
mostradas se o modo de observação Simple estiver selecionado.
49
7.2.3. Criação de Ícones

Todo VI possui um ícone, apresentado à esquerda, no canto superior


da janela do painel frontal e do diagrama de blocos. O ícone é a representação
gráfica do VI. Pode conter textos, imagens, ou ambos.

O ícone padrão contém um número que indica quantos VIs foram


abertos desde que a atual seção do LabVIEW foi ativada. Pode-se criar ícones
personalizados para substituir os ícones padrão pulsando duplamente sobre o ícone
do canto esquerdo-superior, ou abrindo o menu de atalho e selecionando Edit Icon.
Dependendo da resolução do monitor, pode-se criar ícones separados para o modo
monocromático, 16 cores, e 256 cores. a menos que se tenha impressora colorida,
o LabVIEW adotará ícones monocromáticos (v. Fig. 7.3).

Fig. 7.3: A janela Icon editor.

7.2.4. Criação de subVIs por Seleção

Se deseja-se reutilizar determinada porção do diagrama de blocos,


pode-se criar um subVI apenas marcando a área com a ferramenta Positioning e
selecionando Edit>Create SubVI. Um ícone para o novo subVI substituirá a seção
marcada do diagrama de blocos. Serão criados controles e indicadores para o novo
subVI e as ligações necessárias.
50
Criar um subVI a partir de seleção é conveniente mas sempre requer
cuidadoso planejamento para definir uma hierarquia lógica de VIs. Deve-se
considerar quais objetos incluir na seleção e evitar alterar a funcionalidade do VI
resultante.

7.2.5. Projetando subVIs

Se os usuários não precisarem visualizar o painel frontal do subVI, não


é necessário consumir tempo na sua aparência, incluindo cores e fontes. Entretanto,
a organização ainda é importante, pois o painel frontal será usado na depuração do
VI.

Recomenda-se colocar os controles e indicadores como aparecem no


painel de conexão. Controles no lado esquerdo e indicadores no lado direito do
painel frontal. Grupos error in no canto inferior esquerdo e error out no direito.

Se o controle possui um valor padrão, é conveniente colocá-lo entre


parênteses como parte do nome do controle. Se aplicável, a inserção da grandeza
física também é relevante. Deve-se evitar a utilização de caracteres especiais, para
garantir compatibilidade em diferentes plataformas.

7.2.6. Hierarquia

Selecionando Browse>Show VI Hierarchy ativa-se a janela de


hierarquia. Ela mostra uma representação gráfica dos relacionamentos de VIs na
memória, incluindo definições de tipos e variáveis globais.

Pode-se trazer VIs. desta janela para o diagrama de blocos, usando a


ferramenta Positioning, e fazer uso do mesmo. Também é permitido selecionar
partes, e duplicá-las em outros diagramas de blocos. Um duplo pulso sobre um nó
abre o painel frontal do referente VI.
51

7.3. Armazenando VIs

Os VIs podem ser armazenados em arquivos individuais ou em grupos


através de uma biblioteca. A extensão de um arquivo tipo biblioteca é .llb. A
National Instruments recomenda que os VIs sejam armazenados em arquivos
individuais, organizados em pastas, especialmente se muitos projetistas estão
trabalhando em conjunto. Deve-se usar nomes descritivos, para tornar fácil a
identificação e posterior utilização dos mesmos.

Existem as seguintes vantagens em armazená-los em arquivos


individuais:

y O gerenciamento pode-se ser feito pelo sistema de arquivos, individualmente;

y Possibilita a organização em subdiretórios;

y O armazenamento individual é mais robusto que todo o projeto em um


arquivo;

y Pode-se usar as ferramentas de controle de código-fonte do Sistema de


Desenvolvimento Profissional (Professional Development System), ou uma outra
ferramenta de controle de código-fonte independente.

Mas, tem-se as seguintes justificativas para armazenar VIs como


bibliotecas:

y O nome dos arquivos pode alcançar 255 caracteres (Windows);

y A transferência de uma biblioteca entre plataformas é mais fácil do que


transferir muitos VIs individuais;

y O tamanho do arquivo é levemente reduzido, pois bibliotecas são


comprimidas para reduzir exigências de espaço em disco.

Se bibliotecas forem utilizadas, é recomendável a divisão da aplicação


em múltiplas bibliotecas, no seguinte formato: VIs de nível hierárquico elevado em
uma biblioteca, e outras contendo VIs separados por função.
52
Pode-se armazenar VIs para uma versão anterior do LabVIEW, para
efetuar uma atualização conveniente de versão, e para auxiliar a manutenção de VIs
em duas versões de LabVIEW quando necessário. Se houver uma atualização de
versão, é permitida a recorrência aos VIs da versão anterior.

Se um VI for armazenado para uma versão anterior, o LabVIEW


converte toda a hierarquia, excluindo os arquivos de biblioteca em vi.lib.
Geralmente um VI utiliza funcionalidades não disponíveis na versão anterior do
LabVIEW. Em tais casos, é convertido tanto quanto possível, produzindo um
relatório do que não se pode converter. O relatório aparece imediatamente na caixa
de diálogo Warnings.

7.4. Disponibilização de VIs

Para disponibilizar VIs a outros usuários ou computadores, talvez seja


necessário ocultar ou até mesmo remover o código-fonte do diagrama de blocos, de
forma que não possa ser editado. Estas opções estão dispostas em File>Save With
Options. Ao remover o diagrama de blocos, o tamanho do arquivo é reduzido, e
impede o transporte de VIs para outras plataformas ou a atualização para futuras
versões do LabVIEW. Porém, para garantir a posterior edição dos VIs, deve-se
realizar este procedimento usando nomes de arquivos distintos dos originais ou
armazená-los em diretórios diferentes.

Opção de proteger por senha também é disponível, não removendo o


diagrama de blocos, somente impedindo sua visualização e edição sem autorização.
53

Apêndice A - IEEE 488: GPIB

Em 1965, o barramento GPIB foi inventado pela Hewlett-Packard


Corporation para simplificar a interconexão da sua linha de instrumentos de testes
programáveis com seus computadores. Nesta época, os computadores eram
dispositivos volumosos e não tinham portas de interface padronizadas. Instrumentos
eram premiados se tivessem um conector paralelo com linhas de saída tipo BCD,
utilizado para conexão com impressoras de 10 a 20 colunas. A operação remota de
um instrumento tinha limitado número de linhas de entrada, em um painel traseiro
que selecionava poucas funções ou faixas de conversão. Uma interface especial
tinha que ser projetada e montada para cada instrumento que o engenheiro
adicionasse no seu sistema de testes. Assim, mesmo um simples sistema
automatizado de testes consumia meses de projeto.

Como concebido pela HP, o novo Hewlett-Packard Instrument Bus


(HP-IB) usaria um cabo padrão para interconectar múltiplos instrumentos ao
computador. Cada instrumento teria seu próprio circuito de interface e conjunto
padrão de respostas a comandos. O sistema deveria ser facilmente expansível tal
que sistemas de teste com múltiplos instrumentos pudessem se unir através de
cabeamento tipo piggyback (sobre os ombros). Existiriam limitações de comando de
instrumentos (máx. 14 instrumentos) e no comprimento do cabo de barramento (20
metros).

A Hewlett-Packard propôs o conceito às entidades de padronização


norte-americana e internacional em 1974. Devido a alta taxa de transferência
(nominalmente 1MB/s), rapidamente ganhou popularidade. Ele foi adotado pelo
comitê do IEC na Europa em 1975. Nos Estados Unidos, outras industrias de
instrumentos opuseram-se ao nome HP-IB, e uma nova designação foi criada, a
GPIB - General Purpose Interface Bus. O barramento GPIB foi formalmente adotado
como o IEEE-488 em 1978.

Os dispositivos GPIB podem ser do tipo Talker, Listener e/ou


Controller. Um Talker envia mensagens de dados para um ou mais Listeners, que
recebem o dado. O Controller gerencia o fluxo de informação no GPIB por enviar
comandos a todos os dispositivos. O conceito IEEE-488 de controladores e
54
dispositivos é mostrado na Fig. A.1. Controladores têm a capacidade de enviar
comandos, escrever dados no barramento e ler dados enviados por dispositivos.
Apesar da possibilidade de muitos controladores conectados ao barramento, em
qualquer momento somente um controlador é o responsável. Controles podem ser
enviados a partir deste controlador ativo (CIC: Controller-in-charge - controlador
responsável) para qualquer dispositivo com capacidade de controlador.

Fig. A.1: O Conceito do barramento IEEE 488.

Os dispositivos são normalmente endereçáveis e têm formas para


configurar seus endereços. Cada dispositivo tem um endereço primário entre 0 e 30.
O endereço 31 é o endereço surdo ou mudo (unlisten ou untalk). Os dispositivos
também podem ter endereços secundários, que podem ser usados para endereçar
determinadas funções. Por exemplo, um dispositivo que possua canais de
comunicação pode utilizar o endereçamento secundário para endereçar cada canal.
Apesar de existir 31 endereços primários, os gerenciadores de dispositivos
IEEE-488 só reconhecem 14 dispositivos físicos. A Fig. A.2 apresenta a
configuração dos bits que compõem o endereçamento GPIB.
55

Posição do 7 6 5 4 3 2 1 0
Bit
Significado

tipo Listener
tipo Talker
Endereço

Endereço
0 Endereço primário GPIB (0-30)

Fig. A.2: O endereçamento GPIB.

Alguns dispositivos podem ser configurados para somente falar ou


somente ouvir. Isto permite a comunicação entre dois dispositivos sem a
necessidade de um controlador no sistema. Um exemplo é um voltímetro digital que
apresenta leituras e uma impressora que imprime dados.

O padrão IEEE-488 define um instrumento com interface e partições


do dispositivo como na Fig. A.3. Mensagens e endereços de interfaceamento são
enviadas do CIC para a função de interface do dispositivo. Comandos particulares
de instrumentos, tais como, limites, modo etc., são mensagens de dados que
passam através da interface para o dispositivo.

Instrumento
Interface de Funções do
Interface GPIB
Funções Dispositivo

Fig. A.3: Instrumento IEEE 488.

Estrutura Física do Barramento

Fisicamente, o barramento GPIB é composto de 16 linhas de sinal,


ativo-baixo. As características elétricas são mostradas na Tab. A.1.
56
Tab. A.1: Características elétricas do padrão IEEE 488
Tipo do sinal Digital
Entrada Tensão nível alto Vih = 3,4V (mínimo de 2,4V)
nível baixo Vil = 0,22V (máximo de 0,4V)
Corrente nível alto Iih = 2,5mA máx.
nível baixo Iil = -3,2mA máx.
Saída Tensão nível alto Voh = 3,4V (mínimo de 2,5V)
nível baixo Vol = 0,22V (máximo de 0,5V)
Corrente nível alto Ioh = -5,2mA máx.
nível baixo Iol = 48mA máx.

Oito das dezesseis linhas do barramento são bidirecionais, DIO1-8 - as


linhas de dados.

Três linhas são de controle de fluxo, tipo handshake, NRFD (não


pronto para dados), NDAC (dados não aceitos) e DAV (dados válidos), que
transferem dados do dispositivo que fala (talker) para todos os dispositivos que são
endereçados para ouvir (listeners). Este processo é conhecido por handshake
entrelaçado a 3 fios (3 wire interlocked handshake) e garante que a mensagem seja
enviada e recebida sem erros de transmissão. A linha DAV sinaliza quando os sinais
na linha de dados são válidos e podem ser aceitos seguramente pelos dispositivos.
O Controller usa a linha DAV quando envia comandos, e o Talker quando envia
mensagens de dados. A linha NRFD indica quando um dispositivo está ou não
pronto para receber uma palavra de mensagem. É utilizada por todos os dispositivos
quando recebem comandos e por Listeners quando recebem mensagens de dados.
A linha NDAC indica quando um dispositivo aceita ou não a palavra de mensagem.
É utilizada por todos os dispositivos quando recebem comandos, e por Listeners
quando recebem mensagens de dados.

As cinco linhas restantes são usadas para controlar a operação do


barramento. São elas: ATN (atenção) é fixada em nível baixo pelo CIC enquanto
está enviando mensagens de interface ou endereços de dispositivos. Quando o
barramento está transmitindo dados, é colocada em nível alto; EOI (fim ou
identifique-se) pode ser usada para marcar o último caractere da mensagem ou, em
conjunto com ATN, conduzir uma verificação (polling) paralela; IFC (interface livre) é
enviado pelo controlador do sistema para remover o endereçamento de todos os
57
dispositivos e colocar a função de interfaceamento em um conhecido estado inerte;
REN (ative remoto) é enviado pelo controlador do sistema e usado com outras
mensagens de interface ou endereços de dispositivos para selecionar entre controle
local e remoto de cada dispositivo, e; SRQ (requisição de serviço) é enviado ao
barramento por qualquer dispositivo que precise de um serviço.

A Fig. A.4 apresenta o conector utilizado e a disposição dos sinais. Os


dispositivos são conectados com um cabo blindado de 24 fios, que tem em ambas
as pontas um conector com lados macho e fêmea no mesmo encapsulamento (plug
e receptacle). O conector padrão é o Amphenol ou Cinch Series 57 Microribbon ou
o tipo Amp Champ. Para interconexões especiais, um cabo diferente do padrão
poderá ser adotado.

Fig. A.5: O conector GPIB e seus sinais.

Pode-se, então formar uma configuração linear, em estrela (v. Fig.


A.6), ou combinação de ambas.
58

Fig. A.6: A configuração linear e em estrela.

Para garantir que a alta taxa de transferência de dados para a qual o


GPIB foi projetado seja alcançada, a distância física e o número de dispositivos no
barramento são limitados.

As seguintes restrições são típicas para operação normal:

y Uma separação máxima de quatro metros entre quaisquer dois dispositivos e


uma separação média de dois metros ao longo de todo o barramento;

y Um comprimento total de cabo de no máximo de vinte metros;

y Não mais que quinze dispositivos conectados ao barramento, com no mínimo


dois terços ligados.

Para sistemas de alta velocidade usando o handshake a 3 fios (350ns


de atraso), as seguintes restrições são aplicadas:

y Um comprimento de cabo de no máximo quinze metros com um dispositivo a


cada metro de cabo;

y Todos os dispositivos deverão estar ligados;

y Todos os dispositivos deverão ter tri-state tipo 48mA;


59
y A capacitância em cada sinal GPIB deverá ser menor que 50pF por
dispositivo.

Caso o sistema exceda estes limites, deve-se utilizar extensores e de


barramento e expansores.

Mensagens de Interfaceamento

A Tabela A.2 lista as mensagens e endereços de interfaceamento


GPIB, com seus mnemônicos mais comuns. MLA, LAD e UNL são endereços tipo
listen com valores de 0x20 a 0x3F. MTA, TDA e UNT são tipo talk com valores de
0x40 a 0x5F. Um dispositivo normalmente responde a ambos os endereços listen e
talk com o mesmo valor, i.e., LAD4 e TAD4. Endereços secundários têm valores de
0x60 a 0x7F.

Os dispositivos são projetados com diferentes capacidades IEEE-488,


assim, nem todos respondem a todas as mensagens de interfaceamento.
Mensagens universais são reconhecidas por todos os dispositivos, desconsiderando
o estado do endereço. Comandos de endereçamento são somente reconhecidos
por dispositivos ativos que são tipo Listener.
60
Tab. A.2: Mensagens e endereços de interfaceamento 488.1
Comando Função

Comandos de Endereçamento
MLA Meu endereço listen (controlador para si mesmo)
MTA Meu endereço talk (controlador para si mesmo)
LAD Endereço listen (0-30)
TAD Endereço talk (0-30)
SAD Endereço secundário (0-31)
UNL Surdo (LAD 31)
UNT Mudo (TAD 31)

Comandos Universais
LLO Bloqueio local
Local Lockout
DCL Dispositivo livre
Device Clear
PPU Verificação paralela desconfigurada
Parallel Poll Unconfigure
SPE Verificação serial ativa
Serial Poll Enable
SPD Verificação serial inativa
Serial Poll Disable

Comandos de Endereçamento
SDC Selecione dispositivo livre
Selected Device Clear
GTL Vá para Local
Go To Local
GET Disparo de dispositivo
Device Trigger
PPC Verificação paralela configurada
Parallel Poll Configure
TCT Controle de captura
Take Control

A padronização também define uma palavra de estado (status byte) no


instrumento que pode ser lida com uma verificação serial (serial poll) para
determinar o estado do dispositivo. O bit 6 desta palavra foi definido como bit de
requisição de serviço, e é ativado quando os outros bits da palavra são ativados. Os
outros bits são definidos pelo usuário. A requisição de serviço leva a linha SRQ para
nível baixo para interromper o controlador. A requisição de serviço é colocada em
nível alto quando o dispositivo é verificado (serial polling) ou quando o motivo da
requisição é satisfeito.
61

Padrão 488.2

O conceito de GPIB expresso no IEEE 488 facilitou a interconexão de


instrumentos, mas não a programação. Algumas companhias terminavam as
respostas de seus instrumentos com um CR, outras com uma seqüência CR-LF, ou
apenas LF. Nomes de comandos e códigos também dependiam do fabricante do
instrumento. Na tentativa de padronizar estes formatos, a Tektronix propôs um
conjunto de formatos-padrão em 1985. Este foi a base para o IEEE 488.2, adotado
em 1987. Simultaneamente, o IEEE 488 foi renomeado para IEEE 488.1.

O formato-padrão para mensagens termina-a com um LF ou pela


adição do EOI no último caractere. Múltiplos comandos na mesma mensagem são
separados por ponto-e-vírgula (;). Dados em ponto-fixo tornaram-se o formato inicial
para respostas numéricas.

A Tab. A.3 lista os comandos comuns 488.2 e suas funções.


Provavelmente o mais familiar comando comum é o questionamento *IDN?. Este é o
primeiro comando para usar com um instrumento, pois mostra quem o instrumento é
e demonstra que está estabelecida a conexão. A maior parte dos comandos
restantes são usados com a estrutura de relatório de estado (Status Reporting
Structure)
62
Tab. A.3: Comandos Comuns 488.2

Comando Função
Comandos comuns requeridos
*CLS Clear Status Command
*ESE Standard Event Status Enable Command
*ESE? Standard Event Status Enable Query
*ESR? Standard event Status Register Query (0-255)
*IDN? Identification Query (companhia, modelo, número
serial e revisão)
*OPC Operation Complete Command
*OPC? Operation Complete Query
*RST Reset Command
*SRE Service Request Enable Command
*SRE? Service Request Enable Query
*STB? Status Byte Query Z (0-255)
*TST? Self-Test Query
*WAI Wait-to-Continue Command

Dispositivos que suportam verificações paralelas devem suportar os


seguintes três comandos
*IST? Individual Status Query
*PRE Parallel Poll Register Enable Command
*PRE? Parallel Poll Register Enable Query

Dispositivos que suportam Device Trigger devem suportar o seguinte


comando
*TRG Trigger Command

Controladores devem suportar o seguinte comando


*PCB Pass Control Back Command

Dispositivos que armazenam e restauram configurações suportam os


seguintes comandos
*RCL Recall Configuration
*SAV Save Configuration

Dispositivos que armazenam e restauram configurações de registros ativos


suportam os seguintes comandos
*PSC Saves enable register values and enables/disables
recall
*PSC? PSC value query

O LabVIEW e o GPIB

O LabVIEW oferece exemplos de utilização do GPIB, através de VIs.


Um destes é apresentado a seguir.
63
Um dispositivo conectado a um barramento GPIB pode ser acessado
para escrita ou leitura ou ambos usando o VI mostrado na Fig. A.7. Seleciona-se o
endereço GPIB do dispositivo, escolhe-se Read ou Write ou ambos, escreve-se os
caracteres a serem enviados, e executa-se o VI. Se Read e Write forem
simultaneamente escolhidos, o VI enviará para o dispositivo primeiramente e, então,
receberá do dispositivo.

Fig. A.7: Exemplo de utilização do GPIB no LabVIEW. O VI está expandido


para mostrar o conteúdo dos quadros e dos casos.

Antes de utilizar este VI, o endereço GPIB deverá ser inicializado de


acordo com as especificações do dispositivo.
64

Apêndice B - O IEEE 488.2 e o SCPI

O padrão 488.2 tornou fácil a comunicação com um instrumento GPIB,


mas cada instrumento possuía um próprio conjunto de comandos. Mesmo em uma
família de instrumentos de um mesmo fabricante, diferentes instrumentos
freqüentemente tinham diferentes conjuntos de comandos, refletindo as idéias do
projetista. A Força Aérea norte-americana reconheceu este problema no início da
década de 80 e iniciou o Project Mate (colega de projeto) para tentar superar este
problema. O conceito do Project Mate era criar um tradutor (TMAs - Translate
Module Adapters) para converter comandos exclusivos de instrumentos na
linguagem da Força Aérea, a CIIL - Control Intermediate Interface Language. Os
TMAs poderiam ser dispositivos externos ou conversores internos (carregados na
ROM do instrumento). A CIIL da Força Aérea era um subconjunto da Atlas -
Abbreviated Test Language for Avionics Systems. Suas desvantagens eram não
endereçar o modelo do instrumento e ter uma construção muito pesada. A outra
parte do problema era que, quando desenvolvida, não era suficientemente atraente
para justificar os custos de desenvolvimento.

A Hewlett-Packard trabalhou sobre o problema e em 1990, propôs


uma linguagem para medições de teste (TML - Test Measurement Language) que
era baseada em um modelo de instrumento. Era uma linguagem do tipo ramificada,
permitindo que os mesmos comandos fossem usados em instrumentos de
fabricantes diferentes. A TML incluiu a maior ramificação de comandos que podiam
controlar virtualmente todos os subsistemas de um instrumento. Era uma estrutura
aberta tal que outros fabricantes podiam adicionar comandos quando necessário. A
HP ofereceu o licenciamento da linguagem para qualquer fabricante por uma
pequena taxa e uma obrigação de cumprimento de suas especificações. Quase que
imediatamente, a Tektronix e algumas outras companhias manifestaram-se contra o
controle da HP, que prontamente o ofereceu a um consórcio que renomeou-a como
especificação SCPI (Standard Commands for Programmable Instruments). Assim,
em abril de 1990, foi anunciada a especificação SCPI.

Antes do SCPI, como cada fabricante de instrumentos desenvolvia seu


próprio conjunto de comandos para seus instrumentos programáveis, os
desenvolvedores de sistemas de teste eram forçados a aprender um número de
65
diferentes comandos e parâmetros específicos para vários instrumentos usados em
uma aplicação, levando a complexidades de programação e resultando em atrasos
de planejamento e custos de desenvolvimento imprevisíveis. Ao definir um conjunto
de comandos padrão, o SCPI decrementa o tempo de desenvolvimento e
incrementa a clareza dos programas de teste e a capacidade de substituição de
instrumentos.

O SCPI é um completo (mas pode ser estendido) padrão que unifica


os comandos de programação de instrumentos. A primeira versão deste padrão foi
publicado em meados da década de 90. Hoje, o SCPI Consortium continua a
adicionar comandos e funcionalidades ao padrão SCPI. Este padrão tem o seu
próprio conjunto de comandos exigidos em adição aos comandos e
questionamentos obrigatórios do IEEE 488.2.

O SCPI especifica regras padrão para abreviação de palavras-chave


de comandos e utiliza o protocolo IEEE 488.2 de troca de mensagens para formatar
comandos e parâmetros. Por exemplo, pode-se usar os comandos na sua forma
completa (MEASure) ou na forma compacta (MEAS).

O SCPI oferece numerosas vantagens para o engenheiro de testes.


Ele provê um conjunto compreensível de funções programáveis cobrindo a maioria
das funções de um instrumento. Este conjunto padrão assegura um alto grau de
permutabilidade de instrumentos e minimiza o esforço envolvido no projeto de novos
sistemas de teste. O conjunto de comandos SCPI é hierárquico, de modo que
comandos para funcionalidades mais específicas ou inovadoras são facilmente
acomodados. Ele não é um pacote de aplicação, linguagem de programação, ou
programa que intenciona controlar o painel frontal de um instrumento. É projetado
para ser colocado no topo da porção do IEEE 488.2 independente da parte física
(hardware). O SCPI pode ser usado com interfaces tipo controlados-instrumento, tal
como IEEE 488.1, VXIbus, RS 232 etc.

Assim, são óbvios os benefícios do SCPI para o programador de


equipamentos automáticos de testes (ATE - Automatic Test Equipment): reduz o
tempo de aprendizado para programar múltiplos instrumentos SCPI, pois usam uma
linguagem comum de comandos e sintaxe; ao usar uma estrutura e palavras
baseando-se no inglês, o programa é auto-documentado, eliminando a necessidade
66
de comentários para explicar comandos de instrumentação ocultos; provê uma alta
independência de marcas e modelos, reduzindo a manutenção de programas
quando dispositivos tornam-se ultrapassados e necessitam de reposição.

O Modelo SCPI de Instrumento

Com o sentido de alcançar compatibilidade e categorizar grupos de


comandos, O SCPI define um modelo de um instrumento programável. Este modelo,
mostrado na Fig. B.1, aplica-se a todos os diferentes tipos de instrumentação.

Fig. B.1: O SCPI - modelo de instrumento.

Nem todos os componentes funcionais do modelo são aplicáveis a um


instrumento. Por exemplo, um osciloscópio não tem a funcionalidade definida pelo
bloco signal generation.

O componente signal routing controla a conexão de um sinal com as


funções internas do instrumento; o componente measurement converte o sinal em
uma forma pré-processada; e o componente signal generation converte os dados
internos em sinais para o mundo real; O componente memory armazena os dados
dentro do instrumento; O componente format converte os dados do instrumento para
uma forma se possa transmitir através de um barramento padrão; O componente
67
trigger sincroniza as ações do instrumento com as funções internas, eventos
externos, ou outros instrumentos.

A função measurement dá o mais alto nível de compatibilidade entre


instrumentos, pois uma medição é especificada pelos parâmetros de sinal, não pela
funcionalidade do instrumento. Em muitos casos, pode-se trocar o instrumento que
faz uma particular medição por outro que seja capaz de fazer a mesma medição
sem alterar o comando SCPI.

O componente MEASurement é subdividido em três partes distintas:


INPut, SENSe, e CALCulate. O componente INPut condiciona o sinal de entrada
antes de ser convertido em dados pelo bloco SENSe. As funções do INPut incluem
filtragem, polarização, e atenuação. O componente SENSe converte os sinais em
dados que podem ser manipulados. As funções SENSe controlam parâmetros como
limites, resolução, momento de disparo, e modo de rejeição normal. O componente
CALCulate converte os dados adquiridos em um formato mais útil para uma
aplicação particular. As funções de CALCulation incluem conversão de unidades,
tempo de subida, tempo de descida, e parâmetros de freqüência.

O componente signal generation converte o dados em sinais do


mundo físico. É dividido em três blocos de funções: OUTput, SOURce, e CALCulate.
O bloco OUTput condiciona o sinal de saída após sua geração. As funções de
OUTput incluem filtragem, polarização, e atenuação. O bloco SOURce produz um
sinal baseado nas características especificadas e nos dados internos. As funções
deste bloco especificam tanto os parâmetros de sinal quanto a amplitude de
modulação, potência, corrente, tensão, e freqüência. O bloco CALCulate converte
os dados considerando as anomalias de geração, assim como corrige-os para
efeitos externos, converte unidades, e troca domínios.

Exemplo de Comando SCPI

O seguinte comando programa um multímetro digital (DMM) para


configurar a si mesmo, de forma a realizar uma medição de sinal alternado de 20V
com 0,001V de resolução.

: MEASure:VOLTage:AC? 20, 0.001


68

y O primeiro sinal de dois-pontos indica que um novo comando está chegando;

y As palavras-chave MEASure:VOLTage:AC instruem o DMM a fazer uma


medição de tensão alternada;

yA interrogação instrui o DMM a retornar sua medição ao


computador/Controller;

y O 20, 0.001 especifica o limite (20V) e a resolução (0.001) da medição.


69

Bibliografia

LabVIEW: User Manual. National Instruments, July 2000 Edition (part number
320999C-01).

Physics 344, Experiment 3: LabVIEW Graphical Programming. University of


Illinois, Physics Department, Advanced Physics Laboratory. Revised 9’ 1999.

RONCANCIO, H., VELASCO, H. Una Introduccion a LabVIEW. Universidad Distrital


Francisco José de Caldas, Laboratorio de Instrumentacion Virtual. Septiembre del
2000.

GPIB Tutorial. National Instruments.

IEEE 488: Application Bulletin AB48-11. ICS Electronics, division of Systems West
Inc. Revised 03-20-99.

NI-488.2: User Manual for Windows. National Instruments, February 1999 Edition
(part number 321819C-01).

Standard Commands for Programmable Instruments (SCPI), Volume 1: Syntax


and Style. Version 1999.0; May, 1999.
70

Índice Remissivo

A
ActiveX, 16
Array, 23
Atlas, 64
B
Barra de Ferramentas, 13
Buttons, 22
C
Caixa de cores, 22
Checkbox, 25
CIIL, 64
Cluster, 23
Compatibilidade, 34
Controles, 18
D
Diagrama de blocos, 5
Constante, 30
Construção, 27
Funções, 32
Nó, 31
Objetos primários, 6, 27
Projetando, 39
Terminal, 28
Tipos de dados, 29
dials, 21
display, 22
E
Enumerated type, 24
Estruturas, 7
F
Fio, 7
Fluxo de dados, 38
Funções, 32
Advanced, 33
Application Control, 33, 45
Aquisição de dados, 45
Arquivos, 45
Arrays, 33
Booleanas, 33
Built-in, 45
71
Clusters, 33
Comparação, 33
Comunicação, 45
I/O, 33
Polimórficas, 36
Strings, 33
Tempo e diálogo, 33
Waveform, 33
G
gauges, 21
GPIB, 53
Barramento, 56
Características, 56
CIC, 54
Conector, 57
Configuração, 58
Controller, 53
Endereçamento, 55, 59
Handshake, 56, 58
Instrumento, 55
Listener, 53
Mensagens, 59
Polling, 60
Restrições, 58
Status byte, 60
Talker, 53
Taxa de transferência, 53
Unlisten, 54
Untalk, 54
Gráficos
Importação, 19
H
HP-IB, 53
HP-VEE, 1
I
Ícones
Criação, 49
IEEE-488, 53
488.2, 61
Barramento, 56
Características, 56
Conector, 57
Configuração, 58
Endereçamento, 59
handshake, 56, 58
Instrumento, 55
Mensagens, 59
72
Polling, 60
Restrições, 58
Status byte, 60
IEEE-488.2
Comandos, 62
SCPI, 64
Indicadores, 18
Instrumentação, 4
K
knobs, 21
L
Label, 25
Labels, 23
LabVIEW
acrônimo, 1
Ambiente de trabalho, 16
Client-server, 45
Dataflow, 38
Fontes, 26
FTP, 45
GPIB, 62
Kernel, 1
Real Time, 1
Rede, 45
Lights, 22
Listbox, 23
M
Menu, 13
N
NI-DAQ, 45
Nós, 7
O
Objetos
3D, 21
Aba, 23
Bloqueando, 19
Botões, 22
Caixa de cores, 22
Caixa de Listagem, 23
Caixa de texto, 23
Chaves, 22
Conectando, 34
Dials, 21
Display, 22
73
Enumerated, 24
Gauges, 21
Grupo, 23
I/O, 24
Knobs, 21
Letreiros, 23
Luzes, 22
Ocultando, 18
Path Display, 23
Rampa de cores, 22
Redimencionamento, 20
Refnum type, 24
Ring, 24
Rotulação, 25
Slides, 21
Substituindo, 19
Unidades, 38
Vetor, 23
P
Painel frontal, 5
Construção, 18
Paleta de funções, 10, 32
Paletas, 10
Botões de comando, 11
Controles, 10
Editando, 15
Ferramentas, 12
Funções, 10, 32
Modificando, 14
Path Display, 23
piggyback, 53
Positioning, 34
R
Radio buttons, 25
Rampa de cores, 22
Refnum type, 24
Ring type, 24
S
SCPI, 64
Atlas, 64
Benefícios, 65
CIIL, 64
Exemplo, 67
Instrumento, 65
Regras, 65
TML, 64
Slides, 21
74
Switchs, 22
T
Tabs, 23
Terminais, 6
Exigências, 47
Text Box, 23
Tipo de dados, 29
Flattened, 37
Variante, 37
TML, 64
U
Unidades, 38
V
VI
Adicionando, 14
Armazenamento, 51
Bibliotecas, 51
Built-in, 45
Componentes, 4
Depuração, 42
Desenvolvimento, 44
Execução, 41
GPIB, 63
Hierarquia, 50
Ícone, 7
Painel de conexão, 8, 46
Polimórfico, 36
Proteção, 52
subVI, 8
W
Wiring, 34

Você também pode gostar