You are on page 1of 21

Edio 2002

PSI2315 - LABORATRIO DE ELETRICIDADE I INSTRUMENTAO VIRTUAL

JK/99 JK/2000 JK/2001 JK/2002 1. Objetivos Apresentar o conceito de instrumentao virtual, seus aspectos e suas vantagens Associar a instrumentao virtual programao visual (uso de componentes de software reutilizveis, implementados graficamente) orientada ao fluxo de dados Apresentar as principais interfaces e padres de comunicao usados na instrumentao virtual 2. Introduo Nas disciplinas de Laboratrio de Eletricidade e de Eletrnica so realizadas diversas experincias em que os equipamentos usados para gerao e medida de sinais so conectados ao computador atravs de um barramento GPIB, controlando-se o experimento 1 todo via software atravs de um sistema denominado LabVIEW . Quando, acima, dizemos experimento, queremos que se entenda por: uma sequncia de aes de medida de valores instantneos e de parmetros de sinais eltricos. Esses valores so fornecidos pelos instrumentos de medida. Alm das aes de medida, tambm faz parte do experimento o registro e a documentao das medies. A abordagem utilizada nesses cursos procura automatizar os experimentos, permitindo que os fenmenos que se deseja estudar possam ser explorados intensivamente. Isso requer que se realize as seguintes atividades, de forma automtica: Monitorar diversas variveis simultaneamente Coletar grande volume de dados de cada uma delas Repetir o experimento com a variao de parmetros e /ou situaes experimentais Colecionar os resultados e visualiz-los de forma conclusiva e sinptica

Essa automatizao alcanada atravs do emprego de geradores de sinal, osciloscpios e demais instrumentos capazes de serem controlados e monitorados via computador. O programa de computador o responsvel pela conduo do experimento. Ele realiza as seguintes aes: I. pr-condiciona todos os equipamentos, II. interpreta os comandos do experimentador, III. dispara as excitaes e aquisies de sinais, IV. administra a sequncia de eventos, V. promove a coordenao e sincronizao dos processos de acionamento e monitorao e, finalmente, VI. encarrega-se do armazenamento e apresentao dos resultados em uma forma que proporcione boa visualizao para o experimentador. O programa de computador , portanto, um elemento-chave da automatizao. o responsvel por administrar toda a complexidade dessa tarefa e realizar os clculos numricos. Outro elemento-chave a monitorao e controle do instrumento pelo computador, que devem ser feitos via comunicao digital de dados, que requer o uso de interfaceamento e transmisso de sinais digitais. Esses ingredientes compem um paradigma de engenharia auxiliada por computador (CAE - Computer-Aided Engineering) denominado Instrumentao Virtual, que ser explorado e estudado neste trabalho.
1

LabVIEW marca registrada da National Instruments, Texas, Estados Unidos da Amrica.

2
PSI.2315 - Instrumentao Virtual

3. Instrumentao Virtual Um instrumento real genrico pode ser visto como um aparelho dotado dos seguintes componentes: um elemento sensor ou atuador um transdutor um painel de controle e medio um painel de conexes Outros componentes eventualmente fazem parte do instrumento (por exemplo, circuitos eletrnicos, etc) porm os elementos acima apresentados so suficientes para construir um modelo genrico de instrumento, satisfatrio para a discusso a seguir. O sensor o componente que aparece em um instrumento de medida, que o habilita a "sentir" uma dada grandeza fsica (uma tenso, uma temperatura, uma presso, etc). O atuador aparece no caso de um instrumento de controle ou comando (por exemplo, um rob, um posicionador pneumtico, um controlador lgico, um elemento aquecedor, uma fonte de tenso, etc). O atuador permite alterar uma varivel fsica (a temperatura, a posio de um objeto, a tenso na entrada de um circuito, o estado de uma chave, etc). O transdutor um elemento que converte uma grandeza fsica de uma dada natureza em uma de outro tipo. Por exemplo, um microfone transforma som em um sinal eltrico, enquanto um alto-falante faz o oposto - so ambos transdutores eletromecnicos. O painel de controle e medio (geralmente frontal - front panel) contm botes, chaves, indicadores e mostradores que permitem operar o instrumento. O painel de conexes (geralmente traseiro - back panel) contm os terminais aos quais se conecta os elementos sensores ou atuadores, por exemplo, atravs de cabos ou fios. sensor / transdutor grandeza fsica
sinal eltrico

a)

painel frontal

sinal eltrico painel frontal

atuador / transdutor

grandeza fsica

b)

Figura 1 - Modelo de instrumentos de (a) medida e (b) comando.

A transduo da grandeza fsica genrica para a forma eltrica requerida em instrumentos cujo funcionamento eletrnico (atualmente, a maioria). Em geral o painel de controle opera eletronicamente, bem como o processamento do sinal. A figura 1 mostra esquematicamente os dois tipos bsicos de instrumento: o de medida e o de controle. O operador humano usa esses instrumentos fazendo as conexes dos cabos de ligao com os demais dispositivos atravs do painel de conexes e opera o instrumento atravs do painel frontal. Dizemos ento que o conjunto desses painis constitui a interface conceitual entre o instrumento (real) e o usurio. O instrumento virtual um sistema formado por um computador mais um instrumento de medida ou equipamento de comando (reais), colocados em comunicao. Um programa executando no computador torna o instrumento ou o controlador acessvel ao operador atravs de uma interface grfica de software. Essa interface dotada de botes, chaves, mostradores, indicadores, painis de exibio de grficos, etc, apresentados como objetos interativos, animados sob ao do operador atravs do apontador do mouse. O instrumento conectado ao computador pode ser desde um equipamento completo, como um osciloscpio, frequencmetro etc, ou mesmo um simples sensor como um termopar, um extensmetro etc.

3
PSI.2315 - Instrumentao Virtual

Os botes e indicadores que aparecem na tela do instrumento virtual podem no corresponder a controles reais do instrumento que est conectado ao computador. Isto , usando o computador, podemos ampliar a funcionalidade de um instrumento acrescentandolhe novas funes executadas pelo computador com as medidas fornecidas pelo instrumento. Por exemplo, se acoplarmos ao computador um osciloscpio digital que no tenha a funo de anlise espectral, podemos obter os dados do sinal adquiridos pelo osciloscpio, process-los no computador usando-se um algortmo de FFT (Transformada Rpida de Fourier) e assim realizar uma anlise espectral do sinal. O conjunto osciloscpio digital + computador executando a FFT, forma um Analisador de Espectro Virtual.

A interface conceitual entre um computador e seu usurio provida pelos seus dispositivos de entrada/sada: a tela do monitor, o teclado, o apontador (mouse, trackball, tablets, data gloves) e tantos outros dispositivos que vo surgindo medida que se desenvolve novas interfaces humano-mquina. Alm do interfaceamento com o usurio, deve-se considerar aquele realizado com outros computadores e equipamentos perifricos. Atravs da interface de rede, o computador pode comunicar-se com outros computadores e, dessa forma, com usurios dos mesmos, situados remotamente. Outros equipamentos perifricos so ligados ao computador atravs de adaptadores adequados (porta serial, porta paralela e placas dedicadas, conectadas ao barramento). Esses equipamentos so, por exemplo, cmeras de vdeo, microfones, alto-falantes, instrumentos de medida e acionamento etc.

No paradigma de instrumentao virtual, o computador usado tanto para operar do instrumento, quanto para conduzir o experimento, conforme for conveniente. Nessa viso, a interface conceitual associada ao computador deve prover a mesma funcionalidade que a interface conceitual que um instrumento real apresentaria ao usurio. Ou seja, atravs da tela do computador, de seu teclado e apontador, o usurio deve ser capaz de operar os instrumentos ou conduzir o experimento, tal qual faria usando os controles do instrumento real. Evidentemente que essa funcionalidade ser limitada pelas caractersticas do software de instrumentao virtual. A seguir, discutiremos essas caractersticas e faremos uma comparao entre alguns tipos de implementaes dessa idia.

Para se operar um instrumento via computador, necessrio que o instrumento disponha de uma interface eletrnica de comnicao que possa ser adaptada ao computador. Existem diversas formas de se fazer isso, como ser visto na seo 6, mais adiante. Por ora, vamos admitir que os instrumentos a que nos referirmos permitem essa conexo com o computador. A concepo mais elementar de se implementar a operao do instrumento via computador construir um programa em alguma linguagem declarativa (como C, Java, Pascal, BASIC) e execut-lo, capturando via teclado as entradas do usurio e apresentando os resultados na tela do monitor em forma numrica ou de um grfico. Essa foi a abordagem tradicional durante vrios anos e, ainda atualmente largamente utilizada. Todavia, esse mtodo requer o conhecimento de programao de computadores e de transmisso digital de dados.

Com o advento dos ambientes grficos de programao e visando simplificar a tarefa de quem desenvolve aplicaes que manipulam dados de instrumentos, surgiram as chamadas linguagens de programao visual. Uma dessas linguagens usada pelo LabVIEW, que 2 estudaremos nesta experincia. Ela denominada G e tem a mesma potencialidade de uma linguagem textual, como C ou Pascal, por exemplo. Entretanto, seus comandos so apresentados de forma grfica, como cones interconectados atravs de ligaes, formando o programa. O programa escrito em G constitui a base do instrumento virtual do LabVIEW.

O G vem de Graphics, imitando o nome da linguagem C, porm com um apresentao totalmente grfica.

4
PSI.2315 - Instrumentao Virtual

O instrumento virtual composto de duas partes: Um painel frontal Um diagrama de blocos O painel frontal uma janela apresentada na tela do monitor, na qual so desenhados cones com formatos que lembram os componentes de um painel de instrumento (botes, chaves, indicadores, oscilogramas, etc). Esses componentes esto associados a variveis e 3 parmetros, cujos valores so medidos ou ajustados. O diagrama de blocos representa graficamente os processos aos quais so submetidas as variveis e parmetros apresentados no painel frontal.

a)

b)
Figura 2 - Interface conceitual do instrumento virtual (LabVIEW) : (a) painel frontal e (b) diagrama de blocos.

A figura 2 mostra uma situao hipottica em que uma varivel x medida combinada com os parmetros A e B ajustados no painel frontal, produzindo o valor A + Bx. No diagrama de blocos, mostra-se que a medida da varivel x simulada por um gerador de nmeros aleatrios, que produz nmeros ao acaso, uniformemente distribudos no intervalo
Realmente denominado "diagrama de fiao", como traduo de wiring diagram. Entretanto, para maior clareza didtica foi aqui chamado "diagrama de blocos".
3

5
PSI.2315 - Instrumentao Virtual

[0,1]. A varivel e os parmetros so processados pelos blocos de multiplicao e adio mostrados no diagrama de blocos. Como sada, so fornecidos simultaneamente os valores de x e de A + Bx.

sensor / transdutor grandeza fsica


sinal eltrico instrumento dotado de interface GPIB

dados digitais

Placa GPIB Barramento GPIB (cabo GPIB) Memria CPU

Barramento do Computador

Painel Frontal (monitorao) Diagrama de blocos (execuo do programa)

Figura 3 - Estrutura de um instrumento virtual

A disponibilidade de interfaces grficas permite a apresentao da informao em uma forma mais ergonmica, isto , segundo um arranjo visual adequado tarefa que se pretende realizar. Assim sendo, em vez de usar somente o teclado, a captura das entradas do usurio (comandos, aes, ajuste de parmetros) pode ser feita de modo mais natural, atuando-se com o apontador do mouse em um cone mnemnico (por exemplo, desenhado com o aspecto de um boto ou chave). Alm disso, podem-se representar as conexes, entre os diversos equipamentos que compem o experimento, atravs do diagrama de blocos. Com esses ingredientes, a interface conceitual do computador pode prover o

6
PSI.2315 - Instrumentao Virtual

instrumento virtual com os mesmos compoentes funcionais encontrados nos painis frontais e painis de conexes dos instrumentos. A figura 3 mostra a estrutura de um instrumento virtual, tal como implementado no LabVIEW. Sua interface conceitual composta dos elementos que anteriormente mencionamos: (i) o painel frontal e (ii) o diagrama de blocos. O processo de monitorao ou controle d-se fisicamente no instrumento real, tal como mostrado na figura 1. S que agora, o instrumento real conectado ao computador via um enlace de comunicao digital (no nosso caso ser GPIB) e a operao do instrumento real se faz atravs da interface grfica do computador com o usurio. O instrumento virtual pode fornecer ao usurio um conjunto de valores melhor caracterizado do que o que seria fornecido pelo instrumento real que de fato os mediu (por exemplo, poder fornecer esses dados filtrados de rudo, organizados em uma escala mais adequada, agrupados em classes, etc). Alm disso pode valer-se de recursos de computao grfica para produzir uma visualizao dos dados mais compreensvel.

4. Programao Visual com Componentes - Componentware Um programa de computador um conjunto de declaraes e instrues expressos em uma linguagem adequada, que descreve que tarefas devem ser executadas pela mquina. Usualmente, a linguagem usada textual e o programa , portanto, um texto contendo as tais declaraes e instrues. Para se alcanar uma produtividade e eficincia elevadas na atividade de programao, foram desenvolvidos diversos mtodos de se programar. Estes recomendam formas de se conceber e estruturar o cdigo fonte do programa, aquele texto que o programador escreve em linguagem de alto nvel, antes de ser compilado. Com o advento das interfaces grficas, passou-se a incorporar nos programas trechos que descrevem os componentes visuais das mesmas: janelas, botes, cursores, etc. Como esses componentes em geral so padronizados para cada ambiente grfico, eles passaram a ser fornecidos ao programador como bibliotecas pr-fabricadas, que podem ser ligadas ao programa durante a compilao (estticas) ou durante a execuo do programa, medida em que so requisitadas (dinmicas). As bibliotecas dinmicas (DLLs - Dynamic Linked Libraries) so cada vez mais utilizadas pois s so incorporadas no instante de sua utilizao, levando economia de espao de armazenagem. O chamado ambiente grfico uma conveno usada para apresentar os elementos que compem a interface grfica. Essa conveno regulamenta o aspecto das janelas, botes, menus, etc, sua organizao e disposio, seu acabamento visual. Exemplos de ambientes grficos: openlook, motif, athena Xtoolkit, microsoft Windows. A idia de componente de software deve ser entendida como sendo um trecho de programa que tem uma funcionalidade bem especfica. Certos componentes so utilizados muitas vezes em um mesmo programa ou em diferentes programas. Por exemplo, o trecho de programa que implementa um boto ou um menu em uma interface grfica. Por uma questo de eficincia, os componentes tm seu cdigo bastante otimizado e so fornecidos pr-compilados, em bibliotecas, como mencionamos antes. No caso da instrumentao virtual, pode-se pressupor uma srie de componentes que vo traduzir a funcionalidade dos componentes correspondentes em instrumentos reais. Assim, encontraremos os seguintes componentes em um instrumento virtual: botes, mostradores, indicadores luminosos ("LEDs"), janelas oscilogrficas (como a tela de um osciloscpio), entre outros. Em uma linguagem de programao visual, o programa expresso atravs de componentes visuais interconectados de modo a compor a lgica das tarefas a serem executadas. Os componentes representam no s os elementos da interface grfica, mas tambm os blocos construtivos de uma linguagem de programao: blocos iterativos (for, 4 while) , estruturas de deciso (case, if-then-else ), sub-rotinas e procedimentos, estruturas de dados (variveis elementares, cadeias de caracteres, matrizes, estruturas hbridas), etc.

A estrutura if-then-else implementada como caso particular de case no LabVIEW.

7
PSI.2315 - Instrumentao Virtual

Os exemplos a seguir mostram trs implementaes de um programa para gerar um conjunto aleatrio de dados e encontrar o valor mximo desse conjunto. A primeira implementao feita em linguagem C, textual. A segunda e a terceira so feitas usando-se 5 programao visual, com dois produtos comerciais: HP-VEE e LabVIEW.

/* Programa em C para gerar um vetor de nmeros aleatrios e encontrar o mximo dentre eles */ #include <stdio.h> #include <math.h> main( ) { double num[256], max; int i; printf("O vetor de numeros aleatorios:\n\n"); for(i=0; i<256, i++){ num[i]=((double) rand( ) / 32768 * 2) - 1; printf("%f\n", num[i]); } max=num[0]; for(i=1; i<256, i++){ if(num[i] > max) max = num[i]; } printf("\nValor Maximo: %f\n", max); }

Figura 4 - Implementao da soluo em C

A figura 4 mostra a implementao do programa em C. Nele criado um vetor num[ ] de 256 entradas em ponto flutuante de dupla preciso. Essas entradas so preenchidas com nmeros aleatrios atravs da funo rand( ) repetida 256 vezes no primeiro lao for. O programa imprime as entradas do vetor, uma em cada linha. No segundo lao for, varre-se o vetor buscando o valor mximo contido no mesmo, que ento impresso.

HP-VEE marca registrada da Hewlett-Packard, Estados Unidos da Amrica.

8
PSI.2315 - Instrumentao Virtual

a)

b)
Figura 5 - Soluo implementada com HP-VEE.

A figura 5 mostra a soluo obtida com o programao visual usando o ambiente de desenvolvimento HP-VEE. Na fig. 5.a v-se o painel frontal e, na 5.b, o diagrama de blocos. Pode-se identificar os seguintes componentes: uma rea de texto contendo o ttulo do programa, um boto de partida (start), um bloco contendo o gerador de rudo que preenche o vetor, um bloco contendo a funo max(x) que obtm o mximo do vetor x fornecido como entrada, um bloco contendo uma tela oscilogrfica e um bloco que mostra um valor numrico que lhe fornecido como entrada. A tela oscilogrfica faz o papel da impresso dos valores do vetor. Ela poderia ter sido substituda por um bloco contendo uma tabela que mostraria os valores do vetor.

9
PSI.2315 - Instrumentao Virtual

a)

b)

Figura 6 - Soluo implementada com LabvIEW.

A figura 6 mostra a implementao do programa com o ambiente de desenvolvimento LabVIEW. Em (a) v-se o painel frontal e em (b) o diagrama de blocos. O painel frontal contm os seguintes componentes: um painel decorativo de apresentao com o ttulo da aplicao, uma tela oscilogrfica, exibindo o vetor de nmeros aleatrios de forma grfica e uma caixa contendo o valor mximo. Estes dois ltimos blocos, a tela e a caixa apresentam componentes correspondentes no diagrama de blocos, que podem ser identificados pelos rtulos idnticos aos que aparecem no painel frontal, respectivamente. A implementao foi feita de modo a se aproximar o mximo da feita com o HP-VEE. Essencialmente a programao visual realizada escolhendo-se em uma caixa de ferramentas cada componente, que exibido no local do diagrama de blocos que o usurio

10
PSI.2315 - Instrumentao Virtual

selecionar com o mouse. Os componentes so ento conectados selecionando-se com o mouse as terminaes dos componentes que devem ser interligadas e desenhando-se o trajeto da ligao sobre o diagrama de blocos, com o apontador do mouse. No caso do LabVIEW, a cor e espessura da ligao se ajustam automaticamente ao contexto, de acordo com o tipo de dado que est sendo passado de um componente para outro. A utilizao de componentes de software em programao (visual ou textual) uma prtica possvel graas orientao a objetos, que tem peculiaridades conceitualmente diferentes da tradicional programao estruturada. Em instrumentao virtual, os programas so denominados instrumentos virtuais ( virtual instruments - VIs). Os componentes que so os blocos construtivos usados na elaborao de um instrumento virtual, so objetos, no sentido da programao orientada a objetos, que pode ser encontrada no apndice A. Alguns usam o termo componentware para designar software baseado em componentes. Os componentes so mdulos de software reutilizveis (geralmente pr-compilados).

5. Execuo simultnea ( Multitasking e Multi-threading ) O computador tem seu funcionamento administrado pelo sistema operacional, como o Linux, o Windows e o MacOS por exemplo. Ele uma pea de software que decide quem usa qual parte da memria, que programas so executados, quais tarefas o computador est realizando e de que forma. Conceitualmente, os componentes e objetos so peas de programao que podem ter existncia independente umas das outras. Isto , se o sistema operacional permitir, os diversos objetos e componentes de um programa podero estar sendo executados paralelamente (ou concorrentemente), de modo assncrono. Seu funcionamento conjunto, traduzindo a funcionalidade do programa, dar-se- pela troca de informaes, isto , dados. Dessa forma, os objetos trocam mensagens uns com os outros e, assim, o estado do sistema vai evoluindo, produzindo a execuo da tarefa. Diz-se, ento, que a execuo dos objetos disparada de forma simultnea, isto , independentemente uns dos outros, de acordo com a capacidade do sistema. O tipo de simultaneidade de que os objetos podero desfrutar, na prtica, depende da plataforma de execuo ( hardware e sistema operacional ). Uma plataforma pode ser multiprocessada ( paralela ) ou multitarefa. As plataformas multiprocessadas dispem de mais de um processador, podendo de fato executar simultaneamente (do ponto de vista de 6 tempo fsico) mais de um processo . As plataformas multitarefa so dotadas de sistemas operacionais capazes de administrar vrios processos executando em tempo partilhado, isto , cada processo partido em trechos e cada trecho executado durante um intervalo de tempo curto, parando em seguida para dar vez execuo do trecho de um outro processo e assim por diante. Com isso o sistema funciona como se vrios processos parecessem estar 7 sendo executados ao mesmo tempo . Quando um dado processo contm vrios objetos, pode-se execut-los de forma "simultnea" repartindo o uso do processador entre eles no modo de tempo partilhado. Esse tipo de multitarefa denominado multithreading e cada mdulo do processo que executa em "paralelo" denomina-se um thread de execuo. No entraremos em maiores detalhes quanto a esses termos e vamos entender os objetos como se fossem trechos de um processo que podem executar quase-paralelamente em uma plataforma multitarefa. Guarde bem o seguinte: multitasking refere-se a executar vrios programas simultnemanente multithreading refere-se a executar vrios trechos (objetos) de um mesmo programa simultneamente. Os mdulos do LabVIEW (as caixinhas constituidas pelos cones de sua linguagem grfica) so objetos com threads, que podem executar simultneamente. A forma de administrar a repartio do tempo de processador entre esse objetos pode levar execuo assncrona ou sncrona. No caso do LabVIEW, h mdulos que devem executar de forma
6 7

Entenda-se por processo um programa. Um processo pode conter um ou vrios objetos. Tempo aqui do ponto de vista computacional, isto , com base no relgio (clock ) da mquina.

10

11
PSI.2315 - Instrumentao Virtual

sncrona sempre. Um mdulo dito sncrono quando sua execuo, uma vez iniciada, deve seguir at o fim, antes que outro mdulo possa ser executado. Ou seja, mdulos sncronos afetam o "quase paralelismo" de execuo entre os objetos. Voltaremos a esse ponto na seo 7. Esses conceitos so essenciais para permitir a concepo dos ambientes de programao visual que compem o LabVIEW e o HP-VEE. Os componentes desses ambientes so objetos, instncias de classes que se comunicam. As mensagens que trocam uns com os outros so especificadas pelas conexes presentes no diagrama de blocos. Seus blocos so disparados em tempo compartilhado quando o programa executado. O encapsulamento dos dados essencial, para garantir que os componentes possam existir com base na sua funcionalidade, sem nos preocuparmos com detalhes de sua implementao. O mecanismo de passagem de mensagens entre objetos requer que se defina interfaces padronizadas entre os objetos e protocolos que indiquem como um bloco genrico passa informao para outro. As interfaces especificam a forma como os dados so apresentados para entrada e sada de um bloco. Os protocolos especificam a forma como os dados devem ser transferidos de um bloco para outro, atravs de suas interfaces. A figura 7 ilustra esses conceitos.

INTERFACE

OBJETO A

PROTOCOLO MENSAGEM

INTERFACE

OBJETO B

Figura 7 - Interfaces e protocolos de troca de mensagens (dados, sinais) entre os objetos. (Observao - o termo "sinal" foi usado significando um tipo particular de dado que comunica um evento ao outro objeto.)

Os instrumentos reais acoplados ao computador aparecem nesse ambiente de programao visual como blocos especializados. Esses blocos recebem as informaes vindas atravs das interfaces eletrnicas com os instrumentos reais e as transformam em variveis, passadas aos demais blocos como mensagens contendo os dados. Resta discutir o que so esses blocos especializados e que tipo de comunicao eles executam com os instrumentos reais.

6. Interfaces de Instrumentao

H dois aspectos a se considerar quanto ao interfaceamento dos instrumentos reais com o ambiente de objetos da instrumentao virtual: (i) o componente de interfaceamento e (ii) o padro de comunicao. O componente de interfaceamento refere-se ao mdulo de software ou objeto que representa o instrumento real dentro do ambiente de programao. O padro de comunicao determina a forma como os dados so transferidos ( tipo de barramento de dados e protocolo de comunicao). O componente de interface deve ser compatvel com o protocolo de comunicao usado. Os tipos de barramentos de dados mais comuns para uso com microcomputadores so: via serial e via paralela. Nos barramentos seriais, h uma nica via fsica de comunicao, por onde passam os bits dos dados serialmente. Nos barramentos paralelos, h vrias vias fsicas para transmisso dos bits dos dados paralelamente. Alm das vias de dados, esses barramentos tm outras vias dedicadas a sinais de controle e aterramento. Existem normas que padronizam os parmetros dessas vias e a forma como so inseridos os dados e sinais nas vias (protocolos). Os protocolos seriais mais utilizados so o RS-232C , o

11

12
PSI.2315 - Instrumentao Virtual

RS-449A, o Universal Serial Bus (USB) e o IEEE-1394 (FireWire). Os protocolos paralelos mais conhecidos so o IEEE-1284 (Centronix) e o IEEE-488 (GPIB). Discutiremos aqui apenas este ltimo.

6.1. A interface GPIB (IEEE - 488) Em 1965, a companhia americana Hewlett-Packard projetou uma interface e barramento de comunicao para conectar seus instrumentos programveis, ento denominado HP-IB (Hewlett-Packard Interface Bus). Essa interface se popularizou rapidamente devido alta taxa de transferncia que suportava ( 1Mbyte/s nominal ). Isso 8 levou a sua padronizao pelo IEEE , em 1975, com o nome GPIB - General Purpose Interface Bus - ou IEEE488. Em 1992 foi editada a segunda reviso dessa norma, que vigora at hoje, a IEEE-488.2.

LINHAS DE DADOS

LINHAS DE HANDSHAKE LINHAS DE GERENCIAMENTO DE INTERFACE

DIO1 DIO2 DIO3 DIO4 end or identify EOI data valid DAV not ready for data - NRFD not data accepted - NDAC interface clear IFC service request - SRQ attention ATN blindagem - SHIELD

1 2 3 4 5 6 7 8 9 10 11 12

13 14 15 16 17 18 19 20 21 22 23 24

DIO5 DIO6 LINHAS DE DADOS DIO7 DIO8 REN - remote enable GND (par tranado com DAV ) GND (par tranado com NFRD ) GND (par tranado com NDAC ) GND (par tranado com IFC ) GND (par tranado com SQR ) GND (par tranado com ATN ) Terra do Sinal

LINHA DE GERENCIAMENTO DE INTERFACE

Figura 8 - Conector GPIB e sinais correspondentes

A figura 8 mostra o conector padronizado para a interface GPIB e os sinais correspondentes a cada pino. Os dispositivos GPIB comunicam-se uns com os outros enviando dois tipos de mensagens: Mensagens independentes de dispositivo - so os dados ( resultados de medidas, instrues de programao, status da mquina, arquivos de dados ) Mensagens de comando da interface - so destinadas execuo de funes tais como: endereamento de dispositivos, programao da interface, inicializao do barramento de interface, etc. O padro GPIB prev trs tipos de entidades conceituais correspondentes a certas classes de aes: as que falam (talkers) , as que escutam (listeners) e as de controle (controllers). O talker envia dados para um ou mais listeners, que recebem os dados. O controller gerencia o fluxo de informaes no GPIB enviando comandos a todos os dispositivos. Um voltmetro digital, por exemplo, um talker e um listener, enquanto um computador com uma placa GPIB pode ser os trs tipos de entidade. Pode-se usar dois tipos de configurao das conexes entre os dispositivos ligados em um GPIB: linear e estrela, como mostrado na figura 9.
8

IEEE - Institute of Electrical and Electronic Engineers veja mais em : www.ieee.org

12

13
PSI.2315 - Instrumentao Virtual

Instrumento A

Instrumento A

Instrumento B Instrumento B

Instrumento C

CONFIGURAO EM ESTRELA

Instrumento C

CONFIGURAO LINEAR

Figura 9 - Configuraes de redes de instrumentos com GPIB

O GPIB apresenta as seguintes restries de montagem: Mxima separao entre instrumentos: 4 m Separao mdia mxima entre instrumentos: 2 m Mximo comprimento de cabo: 20 m Nmero mximo de instrumentos: 15 ( at 10 ligados ) 6.2. Interfaceamento de sensores e atuadores analgicos Sensores e atuadores que utilizam diretamente sinais analgicos podem ser interfaceados com um ambiente de instrumentao virtual atravs de dispositivos de aquisio de dados (DAQs). Os DAQs so dotados de conversores analgico-digitais e podem ser placas conectadas diretamente ao barramento do computador ou dispositivos externos conectados via serial, paralela ou outros (SCSI, TCP/IP, etc). 6.3. Componentes de interfaceamento de instrumentos (instrument drivers) Os instrumentos reais so vistos pelo ambiente atravs de um componente de software apresentado como um bloco no diagrama de blocos. Esses componentes so denominados instrument drivers e devem ser compatveis com a forma de comunicao utilizada (GPIB, serial, barramento interno, etc). Dentro desse bloco encontra-se o programa capaz de se comunicar com o hardware do instrumento e control-lo. Esse mdulo pode ser implementado seguindo um padro de arquitetura de software que permite tratar os dispositivos de maneira bastante uniforme e simplificada, denominado VISA - Virtual Instrument Software Architecture. Esse padro inclui mtodos para tratamento de eventos e de erros. O VISA cobre uma extensa classe de tipos de interfaceamento: GPIB, serial, barramentos PCI ( PCI extendido e compacto - PXI), VME ( VME extendido e compacto VXI), PCMCIA, etc.

13

14
PSI.2315 - Instrumentao Virtual

7. Ambientes comerciais de instrumentao virtual Vamos discutir aqui alguns aspectos dos dois mais populares ambientes de instrumentao virtual: o HP-VEE e o LabVIEW.

7.1. Hewlett-Packard Virtual Engineering Environment O HP-VEE o ambiente de instrumentao virtual criado pela Hewlett-Packard para trabalhar com seus prprios equipamentos e demais instrumentos compatveis. A figura 5 mostra o aspecto e os elementos essenciais desse ambiente. O HP-VEE foi implementado usando o paradigma de programao orientada a objetos. Entretanto, no um ambiente de desenvolvimento de programas orientados a objetos (Baroth e Hartsough, 1995 em [1] ). Essencialmente oferece ao usurio mdulos cujos parmetros e aspecto podem ser ajustados a gosto e conectados para compor uma tarefa complexa. Esses mdulos so objetos, instncias de classes como geradores, interfaces de operador, mostradores, instrumentos, objetos matemticos e outros. Os mdulos so, em princpio, disparados assincronamente. Todavia, permite a execuo sncrona, atravs da especificao da ordem de execuo feita atravs da conexo de terminais especiais existentes em todos os blocos de mdulos - os terminais de entrada e de sada de ordem sequencial (vide figura 5: o terminal onde se liga o boto start a entrada de ordem de sequncia do bloco do gerador de rudo e o correspondente no bloco do boto de start o seu terminal de ordem de sada). A especificao da sequncia por esse mtodo pode vir a se tornar uma tarefa difcil em sistemas muito grandes. O HP-VEE tambm permite que DLLs geradas a partir de outras linguagens sejam ligadas ao ambiente. O foco de desenvolvimento e comercializao do HP-VEE tem sido basicamente atender s necessidades de uso de instrumentos produzidos pela prpria HP. O HP-VEE era originalmente interpretado, porm sua verso mais recente j produz cdigo compilado.

7.2. Laboratory Virtual Instrument Engineering Workbench

O LabVIEW foi criado pela National Instruments como um ambiente de programao voltado ao desenvolvimento de aplicaes, realizado atravs de programao visual orientada pelo fluxo de dados, com o foco em instrumentao virtual. O nome LabVIEW designa o ambiente de desenvolvimento e a linguagem de programao visual denomina-se G (de Graphics, numa acepo linguagem C). Historicamente, a linguagem G foi primeiramente desenvolvida e, com ela, o ambiente LabVIEW foi implementado. A linguagem G tem expressividade equivalente de uma linguagem declarativa textual, como o C e o Pascal, por exemplo. Ela dotada de blocos especiais para controle de fluxo, laos iterativos, etc, como discutido na seo 4. O programa visual criado com esses blocos compilado e executado dentro do ambiente LabVIEW, que tambm oferece mecanismos para detectar, rastrear e diagnosticar erros de programao. Durante a execuo, os objetos so disparados assincronamente, como threads independentes. H duas excees a essa regra, que foram a sincronizao ( isto , so mdulos executados at o fim ): (i) os blocos dentro de uma sequncia , definidos como explicitamente sequenciais e (ii) os CINs. Estes, os Code Interface Nodes so blocos que contm cdigo desenvolvido em C, por exemplo, pelo usurio. Como no possvel em princpio prever o comportamento desses mdulos, os desenvolvedores do LabVIEW optaram por uma postura conservadora, forando esses blocos a serem sncronos por princpio. Os programas desenvolvidos em G so genericamente designados por VIs (Virtual Instruments), mesmo que no estejam implementando uma tarefa de instrumentao. Um VI pode ser encapsulado em um bloco e chamado como sub-rotina de um outro VI. O VI encapsulado passa a se chamar ento Sub-VI, embora possa ser executado independentemente, desde que esteja inicializado corretamente (pr-condicionado completamente). O objetivo desta experincia de PSI-2315 obter alguma prtica com desenvolvimento de programas em G, construindo alguns VIs simples.

14

15
PSI.2315 - Instrumentao Virtual

Sumrio

O que essencialmente se deve ter aprendido aqui que: Um instrumento virtual oferece uma interface grfica com a mesma funcionalidade que aquela oferecida pelos mostradores e painis de instrumentos reais. Essa interface realizvel em computadores dotados de ambiente grfico e explora conceitos de programao orientada a objetos. Os componentes de um instrumento virtual so mdulos reutilizveis de software que podem sem implementados como bibliotecas includas dinamicamente -- as DLLs. Os instrumentos reais so interfaceados com o ambiente de programao atravs de componentes especializados, denominados instrument drivers, implementados segundo um padro que facilita seu uso de um modo mais uniforme -- o VISA. Os instrument drivers devem ser compatveis com o protocolo de comunicao usado para conectar o instrumento real ao computador. O padro de comunicao utilizado nos instrumentos existentes no laboratrio de eletricidade o GPIB, ou IEEE-488. Esse padro usa um barramento de interface paralelo de 8 vias de dados, 3 vias de handshake e 5 vias de gerenciamento da interface. Cada instrumento recebe um endereo particular no barramento GPIB.

Agradecimentos O autor agradece pela colaborao prestada atravs de reviso e sugestes feitas por Edson T. Midorikawa, Maurcio O. P. Lisboa, Ivandro Sanches e Denise Consonni.

Bibliografia 1. M.M. Burnett, A. Goldberg e T.G. Lewis (editores) - Visual Object-Oriented Programming - Concepts and Environments - Manning, Greenwich, 1995 2. S. Sigfried - Understanding Object-oriented Software Engineering - IEEE Press - New York, 1996 3. A.S. Tanenbaum - Modern Operating Systems - Prentice-Hall, Englewood Cliffs, 1992 4. G.W. Johnson - LabVIEW Graphical Programming - McGraw-Hill, New York, segunda edio, 1997 5. Hewlett-Packard - Exploring HP-VEE - 1995 6. National Instruments - LabVIEW User Manual - 1996 7. National Instruments - Instrumentation Catalogue - 1998

15

16
PSI.2315 - Instrumentao Virtual

Questionrio de Auto-avaliao
As questes a seguir permitem que voc avalie se entendeu o texto e captou os principais aspectos conceituais: 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. Quais as partes de um instrumento ? Qual a diferena entre sensor, transdutor e atuador ? O qu uma interface conceitual ? Quais so os componentes da interface conceitual de um osciloscpio ? Quais so os componentes da interface conceitual de um computador ? D um exemplo de um ambiente janelado de um computador. O qu so componentes de software ? O qu significa a sigla VI ? O qu o painel frontal de um VI ? O qu o diagrama de blocos de um VI ? O qu o sistema operacional ? D um exemplo ? O que um processo ( em um computador ) ? O qu um sistema operacional multi-tarefa ? O qu um sistema operacional multi-threaded ? O qu um protocolo de comunicao ? O qu o protocolo GPIB ? Quais suas particularidades interessantes ? O qu a linguagem G ?

16

17
PSI.2315 - Instrumentao Virtual

APNDICE

Este apndice visa satisfazer a curiosidade e complementar alguns conceitos mencionados na apostila. Sua leitura no indispensvel, porm esclarece alguns pontos. Programao Orientada a Objetos O mtodo de programao estruturada procura dividir o programa em blocos que guardam entre si uma relao hierrquica perfeita, isto , no h desvios incondicionais de uma seo para outra. Uma forma especialmente interessante de programao estruturada a programao modular. Este mtodo consiste em dividir a aplicao em mdulos, que so trechos de programa que se relacionam exclusivamente atravs de interfaces por onde trocam dados (em geral os argumentos de funes e procedimentos). Isto , para entrar e sair de um mdulo a via sua interface e passa-se de um mdulo A para um mdulo B realizando-se no primeiro uma chamada do segundo, retornando-se ao mdulo A quando a execuo do B encontrar uma instruo de retorno. Em programao modular pode-se usar os chamados tipos abstratos de dados (que envolvem por exemplo, estruturas hbridas onde se mistura variveis inteiras, em ponto flutuante, caracteres, etc).

100 RETURN

DADOS

DADOS

MTODOS IF

MTODOS

GOTO 100

MENSAGEM

a)

b)

c)

Figura 10 - Paradigmas de programao - (a) programao no-estruturada - o fluxo do programa pode sofrer desvios incondicionais; (b) programao estruturada - o fluxo segue a hierarquia de blocos e de condies ( V = verdadeiro, F = falso ); (c) programao orientada a objetos - os mdulos so executados "simultaneamente" e se comunicam trocando mensagens. O tipo de simultaneidade ir depender do sistema (plataforma de execuo e implementao do ambiente de programao).

Na programao modular os mdulos relacionam-se uns com os outros trocando dados. Entretanto, cabe ao programador definir a forma correta de passar um dado de um mdulo para o outro. Isto , o programador precisa conhecer como foi implementada internamente a estrutura do dado, para poder us-lo. Na programao orientada a objetos os mdulos passam a se chamar objetos. Mas mais que uma simples mudana de nomes. A diferena agora que os dados de cada mdulo s podem ser vistos externamente ao mdulo atravs de funes especiais chamadas mtodos. Os mtodos sabem como manipular os tipos de dados do objeto correspondente de forma adequada. Dessa maneira, usando essas funes chamadas mtodos, o programador consegue usar os dados de um objeto, sem precisar saber como a estrutura de dados est implementada internamente. Diz-se que os dados esto escondidos (data hidding ). Essa propriedade dos objetos denomina-se encapsulamento. O seguinte exemplo ajudar a entender melhor esses conceitos.

17

18
PSI.2315 - Instrumentao Virtual

typedef struct{ float parte_real, float parte_imag} complexo; /* exemplo de uso: */ complexo Z1, Z2, Z3; Z3.parte_real = Z1.parte_real + Z2.parte_real; Z3.parte_imag = Z1.parte_imag + Z2.parte_imag;

typedef float complexo[2];

/* exemplo de uso: */ complexo Z1, Z2, Z3; Z3[0] = Z1[0] + Z2[0]; Z3[1] = Z1[1] + Z2[1];

a)

b)

Figura 11 - Implementao do tipo de dado complexo para representar nmeros complexos em linguagem C . Em (a) o tipo complexo implementado como uma struct. Em (b) a implementao feita com um array de duas entradas, onde a primeira a parte real e a segunda a parte imaginria.

Suponhamos que se deseja implementar um programa que manipula nmeros complexos, por exemplo, para aplicao em anlise de circuitos em regime permanente senoidal. Sem usar conceitos de programao orientada a objetos, a concepo usual seria construir um tipo abstrato de dado e batiz-lo como complexo por exemplo. Em linguagem C h duas formas de se fazer isso, como mostra a figura 11. Na programao modular, para realizar a adio dos nmeros complexos Z1 e Z2, o programador precisa saber como foi implementado o tipo de dado complexo. Se a implementao mudar por alguma razo, de uma forma para a outra, o programador ser obrigado a alterar a forma de calcular a adio. J no caso de se usar programao orientada a objetos esse problema no ocorre. Na figura 12 apresenta-se a soluo baseada em objetos. Para implementar nmeros complexos como objetos, cria-se uma classe para acomod-los. A classe contm as declaraes especificando a estrutura e as propriedades dos objetos que compreende. Na figura 12 no mostrado como o tipo complexo est implementado na classe complexo; no foi mostrado se foi feito como um array de duas entradas ou uma struct. A figura 12 mostra a realizao da adio quando o tipo complexo um objeto. Tudo que o programador precisa saber o nome da funo que manipula suas partes real e imaginria. Ele no precisa saber como o tipo complexo est implementado internamente ao objeto. Entretanto, sabemos que dispomos de duas funes (os mtodos) que retornam a parte real e a parte imaginria do complexo (tambm no foi mostrado como essas funes foram implementadas, pois tambm irrelevante). Nas linguagens orientadas a objeto, os objetos so agrupados em classes. Quando se especifica um tipo de objeto, define-se de fato a sua classe. No exemplo, define-se a classe complexo. Quando se deseja criar objetos de uma classe (no exemplo, os nmeros complexos Z1, Z2 e Z3), basta-se declarar o nome da classe e especificar o nome dos objetos, que so denominados instncias dessa classe . No exemplo, Z1, Z2 e Z3 so instncias da classe complexo.

18

19
PSI.2315 - Instrumentao Virtual

class complexo { Implementao do tipo complexo public: complexo & operator + (complexo &); } /* exemplo de uso: */ complexo Z1, Z2, Z3; Z3 = Z1 + Z2 ;

Figura 12 - Adio de nmeros complexos implementados como objetos. A classe complexo compe-se de uma parte privada, protegida, que a implementao do tipo de dado, que est escondida, no sabemos se foi usado struct ou array. A parte pblica mostra o prottipo da funo (mtodo) que manipula o tipo complexo tal como criado na parte privada. Para quem usa o objeto complexo assim criado, a parte pblica a nica parte visvel e relevante. Tal como implementado nesse exemplo (em C++) o operador + foi modificado para ser capaz de realizar a adio complexa corretamente (sobrecarga de operador).

class complexo { float Real; float Imag; public: complexo & operator + (complexo &); /* prototipo do metodo */ }

// implementacao do metodo ( via sobregarga do operador de adicao ) complexo & { float re, im ; complexo : : operator + (complexo & arg )

re = Real + arg.Real ; im = Imag + arg.Imag ; return complexo ( re, im ) ; /* chama construtor */ }

Figura 12 B - Implementao detalhada do tipo complexo como um objeto, em C++

Sobrecarga de operador - na figura 12 foi apresentado o mtodo que realiza a adio dos nmeros complexos atravs da sobrecarga do operador de adio. Esse expediente consiste em usar o smbolo de um operador j existente para designar uma nova operao "similar" ( no sentido algbrico).

19

20
PSI.2315 - Instrumentao Virtual

Os objetos e classes possuem a propriedade de herana. Isto , podemos usar uma classe j definida como elemento para criar uma nova classe. Feito isso, as instncias dessa nova classe herdam as propriedades da classe original tambm. Por exemplo, se definirmos uma nova classe e a chamarmos espectro e usarmos a classe complexo em sua definio, a nova classe espectro ter as propriedades da classe complexo, juntamente com as novas propriedades que especificarmos para a classe espectro.

Programao Orientada pelo Fluxo de Dados J dissemos que na linguagem G usada pelo LabVIEW, os mdulos correspondentes aos cones (ou caixinhas) so objetos e contm threads independentes, isto , podem ser executados simultneamente. Entretanto, a programao em si do LabVIEW, at a verso 6i, de 2001, no a rigor orientada a objetos, ainda que seus componentes sejam objetos e que tenha sido desenvolvida em C++. A forma com que o usurio programa o LabVIEW denominada programao orientada a fluxo de dados. Nesse paradigma de programao, os diversos mdulos executam condicionados pelo fluxo de dados. Isto , se um mdulo B depende dos dados gerados por um outro mdulo A, aquele s pode executar quando este j lhe houver fornecido os dados. Ao conectarmos duas caixinhas do LabVIEW, estamos condicionando a execuo de um mdulo pelo fluxo dos dados provenientes do outro que metaforicamente passam de um para o outro atravs do fio de conexo.

Figura 13 Controle pelo fluxo de dados.

Todas as caixinhas na figura 13 tm threads independentes e podem executar simultneamente, de forma assncrona, em princpio. Entretanto as conexes entre elas criam dependncia pelo fluxo de dados. Portanto, a adio ea subtrao podem executar simultneamente porm os demais mdulos ficam na dependncia da disponibilidade dos dresultados produzidos pela execuo dos mdulos anteriores.

20

21
PSI.2315 - Instrumentao Virtual

APNDICE

GLOSSRIO

1.Metfora computacional - uma forma de abstrao da relao semntica entre o programa, o processo computacional subjacente e o domnio sobre o qual agem. Em uma metfora o significado da entidade qual se refere (referido) caracterizado pelo nome que a referencia (referente). Assim, a metfora instrumento virtual refere-se a um conjunto de programas que interpretado como se fosse um instrumento. Exemplos de outras metforas computacionais: componente reusvel e agente inteligente. 2. Aparelho, equipamento, instrumento - em diversas ocasies empregamos esses termos sem maior preocupao com seu significado. Um aparelho um conjunto de dispositivos que opera de forma harmoniosa de modo a conferir ao sistema todo a caracterstica de unidade. O termo equipamento pode referir-se a um ou mais aparelhos compondo um sistema destinado execuo de um conjunto tarefas. O instrumento um aparelho destinado interveno de um operador em um determinado meio, seja para medir ou para controlar suas variveis e parmetros. 3. Sensor, atuador e trandutor - em muitos textos de instrumentao, o termo transdutor utilizado para designar a classe que engloba os sensores e os atuadores. No presente texto consideramos como transdutor uma abstrao da funo de transformar uma grandeza fsica de um tipo em um outro mais adequado (por exemplo, transformar temperatura em sinal eltrico). Da mesma forma, designamos por sensor a abstrao da funo de responder a uma varivel fsica (por exemplo, a temperatura). Todavia, em termos prticos, geralmente no possvel separar a parte sensorial da transduo em um dispositivo sensor real. O mesmo raciocnio vale para o atuador, que no presente texto designa a funo de alterar uma dada varivel fsica. 4. DLL - Dinamic Linked Library - um mdulo de programa pr-compilado que pode ser utilizado por um outro programa. A passagem de parmetros e dados entre a DLL e o programa que a utiliza se faz atravs de uma interface de programao pr-estabelecida. O programa pode conter funes que so definidas na DLL. 5. Componente - um mdulo de programao implementado como objeto pr-compilado na forma de uma DLL. Os componentes que formam os blocos do LabVIEW so dessa categoria. medida com que novos blocos de um instrumento virtual vo sendo criados, eles vo sendo imediatamente compilados para serem guardados em uma biblioteca particularmente criada para aquele VI. Quando o VI executado, portanto, a maior parte de seu "cdigo" j est pr-compilada.

21

You might also like