Objetivos

Apresentação resumida de algumas características do LabVIEW, para servir como referência em futuros posts que aparecerão aqui, relacionados ao assunto.

Introdução

LabVIEW significa Laboratory Virtual Instrument Electronic Workbench. O LabVIEW foi desenvolvido pela National Instruments há mais de 20 anos e tem sido uma das melhores e mais difundidas plataformas de desenvolvimento de aplicações científicas e tecnológicas, presentes em diversos cenários, desde automação industrial a aplicações biomédicas,  de sistemas em camposistemas embarcados (embedded systems),  a grandes laboratórios e empreendimentos multinacionais, como o acelerador gigante de partículas do CERN (LHC – Large Hadron Collider), o telescópio Hubble e a ISS (International Space Station).

..

Características do LabVIEW

O LabVIEW é tanto uma linguagem de programação, quanto uma plataforma de desenvolvimento de aplicações baseadas em processamento digital de dados.

O LabVIEW como Linguagem de Programação

Sob este ponto de vista, muito resumidamente, suas características são:

  • É uma linguagem de programação visual – isto é, suas “instruções” de programação são representadas por ícones que podem ser conectados de modo a compor o programa
  • Suporta programação por texto – o LabVIEW possui blocos que permitem que se digite o texto de um programa, com duas possíveis linguagens: (a) uma linguagem com sintaxe tipo C e (b) uma linguagem com sintaxe tipo Matlab. Esses blocos podem ser interligados aos ícones da programação visual, permitindo que se trabalhe com os dois modos de programar simultâneamente
  • É uma linguagem modularizada – isto é, permite que se crie sub-programas, que correspondem a trechos do programa principal, que podem ser encapsulados em ícones criados pelo programador (sub-programas ou sub-rotinas).
  • Suporta recursos de multiprocessamento e multiprogramação – ou seja, explora os recursos de multi-tarefas (multitasking) e multi-  (multithreading), bem como a distribuição dos mesmos automaticamente (ou manualmente, de forma explícita, se for desejado) entre diferentes processadores ou núcleos de processadores (multicore execution).
  • É uma linguagem orientada pelo fluxo de dados (dataflow) – a sequência de execução e interdependência entre as instruções, procedimentos e módulos é estabelecida por um grafo direcional (directed graph).
  • Suporta orientação a objetos – o LabVIEW é nativamente uma linguagem orientada a objetos, em sua implementação. Todavia, apresenta-se ao programador principalmente como orientada ao fluxo de dados. Desde a versão 8.2, o LabVIEW oferece construtos para a criação de objetos, no sentido de programação orientada a objetos.
  •  Suporta explicitamente programação recursiva – a partir da versão 2010. Para versões anteriores há uma menção de ser possível conseguir-se isso com algum esforço.

O LabVIEW como  ambiente de desenvolvimento

Sob este ponto de vista, muito resumidamente, suas características são:

  • Provê a separação real entre a interface de usuário e o código do programa. Ao abrir, o LabVIEW oferece duas janelas distintas: painel frontal – para desenvolvimento da interface gráfica de operação do programa (pelo usuario) e o diagrama de blocos – onde é feito o desenvolvimento do algoritmo, programado em linguagem visual.
  • Ambiente compilado – os blocos do LabVIEW são peças pré-compiladas, que são ligadas ao corpo do programa à medida em que se vai editando. Não é uma linguagem interpretada.
  • Permite produzir programas que funcionam fora do ambiente LabVIEW, sozinhos, instaláveis separadamente. O programa desse tipo (stand-alone) é produzido (built) com opções de ligação estática ou dinâmica das bibliotecas (DLLs). Esse processo permite criar também o instalador.
  • O código desenvolvido na linguagem visual é compilado diretamente para linguagem de máquina, não é traduzido para nenhuma outra representação intermediária.
  • Aceita a ligação de DLL’s ao código, oferecendo um bloco de prototipação da interface com o procedimento pré-compilado, que permite ligar cada variável do mesmo ao diagrama de blocos.
  • Oferece ferramentas de depuração (debug) avançadas, permitindo acompanhar execução passo-a-passo, monitorar visualmente as variáveis, produzir visualizações de valores instantâeos em qualquer ponto do programa, no formato específico de cada variável (ex: imagens são mostradas como imagens, tipos mistos de dados aparecem conforme construídos, etc).
  • Suporta diversos níveis de abstração de comunicação entre objetos, módulos, partes de código e o hardware. Aceita protocolos desde Seriais, Paralelos, TCP-IP, UDP, até ActiveX, etc.
  • Suporta protocolos e representações compatíveis com sistemas distribuídos, dotados de mobilidade,  persistência, etc. Oferece mecanismos para desenvolvimento de arquiteturas com .NET e outros.
  • Já é portado para diversas plataformas – Linux, Windows, MacOS. Também é disponível em versões para sistemas operacionais de tempo real.
  • Trata os componentes hardware como se fossem objetos programáveis dentro do ambiente LabVIEW, expondo os parâmetros e variáveis físicos como tipos abstratos de dados no programa e as operações e mecanismos do hardware como chamadas de processos de software.
  • Permite tratar tanto hardware local quanto remoto da mesma forma, oferecendo ferramentas para desenvolvimento e monitoração de processos distribuídos.
  • Produz código para ser utlizado diretamente em sistemas embarcados (embedded systems).
  • Suporta o acesso de baixo nível a componentes do hardware que o permitam fazê-lo.

.

Apresentando o LabVIEW

O slideshow abaixo ilustra alguns poucos aspectos mencionados acima.Ele corresponde a parte do material utilizado em um de nossos cursos na Escola Politécnica da USP.  Mais informações serão apresentadas oportunamente, em futuros posts para este blog. Há diversos outros materiais correlacionados que podem ser encontrados na web.

.

.

Nossa experiência

Nossos alunos na Escola Politécnica da USP têm utilizado o LabVIEW nos experimentos de laboratórios didáticos e de pesquisas,  em pequenos projetos de aplicação nas aulas e em projetos de formatura, desenvolvidos no curso de engenharia elétrica. O LabVIEW está disponível para utilização em todo o campus da Universidade de São Paulo, na cidade de São Paulo. Interessados em licenças do LabVIEW, devem contactar o serviço de relações acadêmicas da National Instruments (NI). No caso de usuários industriais ou de outros setores profissionais, devem procurar os diversos canais de contacto da NI no Brasil.

.