Objetivos

Apresentar um sumário dos itens mais usuais na programação com LabVIEW.

Introdução

LabVIEW é um ambiente de desenvolvimento e linguagem de programação visual. A interface com o hardware, com a rede e com outros programas é muito fácil de se implementar com o LabVIEW, oferecendo um grande poder computacional. Mais informações  gerais podem ser encontradas em Introdução ao LabVIEW. Neste post faremos um sumário de como utilizar os principais recursos de programação do LabVIEW.

.

Programação com o LabVIEW

Os programas feitos em LabVIEW são visuais e são denominados Instrumentos Virtuais (virtual instrument – vi ) e são salvos em arquivos do tipo programa.vi .  Entenda-se por programas visuais como sendo diagramas de blocos que representam o algoritmo que deve ser executado. Em vez de se escrever instruções usando texto,  constrói-se um diagrama de blocos que lhe é equivalente. A figura 1 mostra um exemplo. Ali vê-se um programa escrito em linguagem C, comparado com o programa visual escrito em LabVIEW, que faz exatamente a mesma coisa.

Figura 1 – Exemplo de programa – à esquerda, um programa feito em linguagem C; à direita, o mesmo programa feito em LabVIEW, que se apresenta como um diagrama de blocos, no qual as instruções são indicadas pelos ícones dos blocos e a sequência da execução é indicada pelos “fios” de conexão desses blocos.  Para mais detalhes, veja o texto.

O programa mostrado como exemplo na figura 1 consiste em resolver o seguinte problema:  a) criar um vetor  e preenchê-lo com 100 valores produzidos ao acaso (aleatórios), variando entre 0 e 1 ;  b) em seguida, procurar  o maior e o menor valores contidos nesse vetor.

O LabVIEW prevê diversas maneiras de se realizar entrada e saída de dados:

  1. Localmente, feita pelo usuário, interativamente, através do teclado, do mouse e do monitor ou display do computador (ou outro dispositivo onde o LabVIEW estiver rodando, que use esses mesmos recursos de entrada e saída)
  2. Por outros métodos, feitos localmente: usando outros recursos de hardware (câmeras, joystics, microfones, robôs conectados ao computador, impressoras, etc)
  3. Através de dispositivos ligados via rede (ethernet, bluetooth, FireWire, wireless, IRDA, Field Bus, serial, etc)
  4. Via outros programas, executando localmente ou remotamente, que se comunicam com o programa em LabVIEW (por ActiveX, por exemplo, ou outros métodos).

A primeira maneira é realizada através de uma interface gráfica de usuário, construida como se fosse o painel de um instrumento, cujo funcionamento corresponde ao que o programa que você construir vai realizar.

O LabVIEW separa fisicamente a interface de usuário e o algoritmo. A interface de usuário é construida em uma janela separada denominada painel frontal. Ali são colocados objetos que servem para entrada ou saída de dados. Os objetos de entrada de dados chamam-se controles (controls) e os de saída chamam-se indicadores (indicators). Embora tenham aspectos diversos, que sugerem uma interpretação ergonômica (botões, mostradores, termômetros, gráficos, etc), são apresentações gráficas de variáveis e estruturas de dados. Vemos na figura 2 diversos exemplos de objetos  colocados no painel frontal de um programa e o seu respectivo diagrama de blocos.

Figura 2 – Exemplo de programa em LabVIEW mostrando a interface gráfica de usuário, para entrada e saída de dados (painel frontal) e o correspondente algoritmo (diagrama de blocos).

No exemplo da figura 2 mostra-se um programa que implementa um gerador de um sinal senoidal, no qual o usuário pode ajustar a amplitude e a frequência do sinal, através dos botões colocados no painel frontal. A saída gráfica é feita também no painel frontal. No diagrama de blocos, vê-se uma instrução apresentada como texto.

O LabVIEW também aceita programação feita em formato texto e, para isso usa métodos compatíveis com a sintaxe da linguagem C e com a sintaxe do Matlab.

.

Elementos de Programação

Um programa de computador constitui-se basicamente dos seguintes elementos:

  • Variáveis e parâmetros de entrada, variáveis de saída e variáveis e constantes auxiliares nos cálculos
  • Instruções de programação
  • Sub-rotinas ou sub-programas

As instruções de programação são, em geral, dos seguintes tipos fundamentais:

  • Laços de repetição, para computação iterativa – tipo for e while
  • Instruções de decisão, para selecionar, dada uma condição, qual parte do programa vai executar – tipo if e case

Esses são ítens geralmente encontrados em uma linguagem de programação (as que nos são mais familiares e, que são ditas imperativas ou procedimentais, como C, C++, java, Visual Basic, FORTRAN, python, etc).

Veremos a seguir como esses conceitos se apresentam no LabVIEW.

.

Variáveis, Parâmetros e Constantes no LabVIEW

A distinção sobre que dado deve ser tratado como variável, como constante ou como parâmetro depdende do programa e isso ficará ao seu encargo decidir. Portanto, vamos chamar todos esses dados de variáveis, na explicação a seguir.

As variáveis de entrada e saída aparecem em geral no painel frontal e são representadas visualmente de forma ergonômica, isto é, voltadas para facilitar sua manipulação e visualização. Apresentam-se como botões, mostradores, LEDs,  gráficos, etc. A figura 3 exibe diversos exemplos dessas variáveis no painel frontal. As variáveis de entrada chamam-se controles e as variáveis de saída chamam-se indicadores.

(a) controles (entradas)  tipo numérico e seus terminais

(b) indicadores (saída)  tipo numérico e seus terminais

(c) Controles e indicadores tipo booleano (à esquerda) e tipo texto (á direita). Seus terminais não foram mostrados.

(d) opções de indicadores gráficos (como mostrado no menu do painel frontal)

Figura 3  – Exemplos de diversos tipos de aspectos de variáveis de entrada e saída no painel frontal.

Elas também aparecem no diagrama de blocos, pois serão utilizadas nos cálculos e tarefas realizados pelo programa. Cada objeto existente no painel frontal aparece no diagrama de blocos sob a forma de um terminal, podendo alternativamente aparecer também como um ícone (você pode escolher o jeito que mais o agrada para mostrá-las). A figura 4 mostra um exemplo disso. Para trocar entre um formato e outro, basta usar o botão direito do mouse em cima da variável no diagrama de blocos e mudar a paresentação como ícone ou como terminal. O default é apresentar como ícone. Você pode mudar isso definitivamente, através da configuração de opções, que será vista mais adiante.

(a)

(b)

Figura 4 – a) Terminais correspondentes às variáveis mostradas no painel frontal. b) Escolha do modo de exibição do terminal como ícone ou não.

As variáveis e constantes podem ser simples ou compostas. As variáveis simples correspondem aos tipos básicos de dados apresentados a seguir. As variáveis que aqui chamamos de compostas são dos tipos: array e cluster.

Os tipos de dados básicos são:

  • numéricos – inteiros (com e sem sinal) , decimais (single e double),  e complexas
  • lógicos – tipos booleanos (boolean)
  • texto – cadeias de caracteres (strings)

A figura 5 mostra os diversos  tipos básicos de dados. As cores dos terminais e dos “fios” indicam o tipo de dado que se está utilizando. Os tipos numéricos inteiros são representados em azul, os decimais (ponto flutuante) em laranja, os booleanos em verde e os strings em rosa. Para se modificar o tipo de dado,  basta usar o botão direito do mouse sobre a variável ou constante (tanto no diagrama de blocos quanto no painel frontal) e escolher no menu o ítem representation.

Figura 5 – Representação de tipos de dados elementares. Para modificar a representação, use a opção indicada nos menus acima.

Dados do mesmo tipo básico podem ser agrupadas em arrays. Variáveis de tipos diferentes podem ser agrupadas em clusters (correspondem às structs da linguagem C).  Pode-se construir arrays de cluster e clusters de arrays.

Para se construir um array de constantes no diagrama de blocos, pode-se colocar um molde, ou protótipo (template),  de array e inserir nele o tipo de variável que se deseja e editar seu valor em seguida, conforme indicado na figura 6.

Figura 6 – Exemplo de construção de um array de constantes no diagrama de blocos

Para se construir um array de controles ou indicadores no painel frontal, pode-se colocar um molde, ou protótipo (template),  de array e inserir nele o tipo de variável que se deseja e editar seu valor em seguida, conforme indicado na figura 7.

Figura 7 – Construção de um array de controles ou indicadores no painel frontal. À direita, diversos exemplos.

Os mesmos procedimentos podem ser feitos para construir um cluster de constantes ou de controles ou indicadores, podendo-se misturar neste caso diferentes tipos de variáveis, conforme mostrado na figura 8. O único cuidado a tomar-se é que não se pode misturar variáveis de entrada e saída em um mesmo cluster, pois o cluster todo é qualificado como cluster de entrada ou cluster de saída.

(a)

(b)

Figura 8 – a) Exemplo de construção de um cluster de constantes no diagrama de blocos; b) Exemplo de um cluster de controles no painel frontal