10_Apresentação LabVIEW

  • Upload
    leomarb

  • View
    230

  • Download
    0

Embed Size (px)

Citation preview

  • 7/22/2019 10_Apresentao LabVIEW

    1/21

    PSI2315 - LABORATRIO DE ELETRICIDADE I

    INSTRUMENTAO VIRTUAL

    JK/99

    JK/2000JK/2001JK/2002

    1. Objetivos

    Apresentar o conceito de instrumentao virtual, seus aspectos e suas vantagens Associar a instrumentao virtual programao visual (uso de componentes de

    softwarereutilizveis, 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 diversasexperincias em que os equipamentos usados para gerao e medida de sinais soconectados ao computador atravs de um barramento GPIB, controlando-se o experimentotodo via softwareatravs de um sistema denominado LabVIEW 1.

    Quando, acima, dizemos experimento,queremos que se entenda por: uma sequnciade aes de medida de valores instantneos e de parmetros de sinais eltricos. Essesvalores so fornecidos pelos instrumentos de medida. Alm das aes de medida, tambmfaz parte do experimento o registro e a documentao das medies.

    A abordagem utilizada nesses cursos procura automatizar os experimentos, permitindoque os fenmenos que se deseja estudar possam ser explorados intensivamente. Isso requerque 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 edemais instrumentos capazes de serem controlados e monitorados via computador. Oprograma de computador o responsvel pela conduo do experimento. Ele realiza asseguintes 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. oresponsvel por administrar toda a complexidade dessa tarefa e realizar os clculosnumricos. Outro elemento-chave a monitorao e controle do instrumento pelocomputador, que devem ser feitos via comunicao digital de dados, que requer o uso deinterfaceamento e transmisso de sinais digitais. Esses ingredientes compem umparadigma de engenharia auxiliada por computador (CAE - Computer-Aided Engineering)denominado Instrumentao Virtual, que ser explorado e estudado neste trabalho.

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

    Edio 2002

  • 7/22/2019 10_Apresentao LabVIEW

    2/21

    PSI.2315 - Instrumentao Virtual

    2

    2

    3. Instrumentao Virtual

    Um instrumento real genrico pode ser visto como um aparelho dotado dos seguintescomponentes:

    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, circuitoseletrnicos, etc) porm os elementos acima apresentados so suficientes para construir ummodelo 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, umrob, um posicionador pneumtico, um controlador lgico, um elemento aquecedor, umafonte de tenso, etc). O atuador permite alterar uma varivel fsica (a temperatura, a posiode 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 seconecta os elementos sensores ou atuadores, por exemplo, atravs de cabos ou fios.

    A transduo da grandeza fsica genrica para a forma eltrica requerida em instrumentoscujo funcionamento eletrnico (atualmente, a maioria). Em geral o painel de controle operaeletronicamente, bem como o processamento do sinal. A figura 1 mostra esquematicamenteos dois tipos bsicos de instrumento: o de medidae o de controle. O operador humano usaesses instrumentos fazendo as conexes dos cabos de ligao com os demais dispositivosatravs do painel de conexes e opera o instrumento atravs do painel frontal. Dizemosento que o conjunto desses painis constitui a interface conceitualentre o instrumento (real)e o usurio.

    O instrumento virtual um sistema formado por um computador mais um instrumento demedida ou equipamento de comando (reais), colocados em comunicao. Um programaexecutando no computador torna o instrumento ou o controlador acessvel ao operadoratravs de uma interface grfica de software. Essa interface dotada de botes, chaves,mostradores, indicadores, painis de exibio de grficos, etc, apresentados como objetosinterativos, animados sob ao do operador atravs do apontador do mouse. O instrumentoconectado ao computador pode ser desde um equipamento completo, como um osciloscpio,frequencmetro etc, ou mesmo um simples sensor como um termopar, um extensmetro etc.

    grandezafsica

    sensor / transdutor

    sinal eltricopainel frontal

    painel frontalsinal eltrico

    grandezafsicaatuador

    a)

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

    / transdutor

  • 7/22/2019 10_Apresentao LabVIEW

    3/21

    PSI.2315 - Instrumentao Virtual

    3

    3

    Os botes e indicadores que aparecem na tela do instrumento virtual podem nocorresponder a controles reais do instrumento que est conectado ao computador. Isto ,usando o computador, podemos ampliar a funcionalidade de um instrumento acrescentando-lhe novas funes executadas pelo computador com as medidas fornecidas peloinstrumento. Por exemplo, se acoplarmos ao computador um osciloscpio digital que notenha a funo de anlise espectral, podemos obter os dados do sinal adquiridos pelo

    osciloscpio, process-los no computador usando-se um algortmo de FFT (TransformadaRpida de Fourier) e assim realizar uma anlise espectral do sinal. O conjunto osciloscpiodigital + computador executando a FFT, forma um Analisador de Espectro Virtual.

    A interface conceitual entre um computador e seu usurio provida pelos seusdispositivos 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 sedesenvolve 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 equipamentosperifricos so ligados ao computador atravs de adaptadoresadequados (porta serial, porta

    paralela e placas dedicadas, conectadas ao barramento). Esses equipamentos so, porexemplo, cmeras de vdeo, microfones, alto-falantes, instrumentos de medida eacionamento etc.

    No paradigma de instrumentao virtual, o computador usado tanto para operar doinstrumento, quanto para conduzir o experimento, conforme for conveniente. Nessa viso, ainterface conceitual associada ao computador deve prover a mesma funcionalidade que ainterface conceitual que um instrumento real apresentaria ao usurio. Ou seja, atravs datela do computador, de seu teclado e apontador, o usurio deve ser capaz de operar osinstrumentos ou conduzir o experimento, tal qual faria usando os controles do instrumentoreal. Evidentemente que essa funcionalidade ser limitada pelas caractersticas do softwarede 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 instrumentodisponha de uma interface eletrnica de comnicao que possa ser adaptada aocomputador. Existem diversas formas de se fazer isso, como ser visto na seo 6, maisadiante. Por ora, vamos admitir que os instrumentos a que nos referirmos permitem essaconexo com o computador. A concepo mais elementar de se implementar a operao doinstrumento via computador construir um programa em alguma linguagem declarativa(como C, Java, Pascal, BASIC) e execut-lo, capturando via teclado as entradas do usurio eapresentando os resultados na tela do monitor em forma numrica ou de um grfico. Essa foia 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 dequem desenvolve aplicaes que manipulam dados de instrumentos, surgiram as chamadaslinguagens de programao visual. Uma dessas linguagens usada pelo LabVIEW, queestudaremos nesta experincia. Ela denominada G 2e tem a mesma potencialidade deuma linguagem textual, como C ou Pascal, por exemplo. Entretanto, seus comandos soapresentados de forma grfica, como cones interconectados atravs de ligaes, formandoo programa. O programa escrito em G constitui a base do instrumento virtual do LabVIEW.

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

    grfica.

  • 7/22/2019 10_Apresentao LabVIEW

    4/21

    PSI.2315 - Instrumentao Virtual

    4

    4

    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 desenhadoscones com formatos que lembram os componentes de um painel de instrumento (botes,

    chaves, indicadores, oscilogramas, etc). Esses componentes esto associados a variveis eparmetros, cujos valores so medidos ou ajustados. O diagrama de blocos3 representagraficamente os processos aos quais so submetidas as variveis e parmetrosapresentados no painel frontal.

    A figura 2 mostra uma situao hipottica em que uma varivel xmedida combinadacom os parmetros A e B ajustados no painel frontal, produzindo o valor A + Bx . Nodiagrama de blocos, mostra-se que a medida da varivel x simulada por um gerador denmeros aleatrios, que produz nmeros ao acaso, uniformemente distribudos no intervalo

    3 Realmente denominado "diagrama de fiao", como traduo de wiring diagram. Entretanto, para maior clareza didtica foi

    aqui chamado "diagrama de blocos".

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

    a)

    b)

  • 7/22/2019 10_Apresentao LabVIEW

    5/21

    PSI.2315 - Instrumentao Virtual

    5

    5

    [0,1]. A varivel e os parmetros so processados pelos blocos de multiplicao e adiomostrados no diagrama de blocos. Como sada, so fornecidos simultaneamente os valoresde xe de A + Bx.

    A disponibilidade de interfaces grficas permite a apresentao da informao em umaforma mais ergonmica, isto , segundo um arranjo visual adequado tarefa que sepretende realizar. Assim sendo, em vez de usar somente o teclado, a captura das entradasdo usurio (comandos, aes, ajuste de parmetros) pode ser feita de modo mais natural,atuando-se com o apontador do mouseem 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 deblocos. Com esses ingredientes, a interface conceitual do computador pode prover o

    Figura 3 - Estrutura de um instrumento virtual

    CPU

    Memria

    Placa GPIB

    Barramento GPIBcabo GPIB

    Painel Frontal(monitorao)

    Diagrama de blocos

    (execuo doprograma)

    Barramentodo Computador

    grandezafsica

    sensor / transdutor

    sinal eltrico

    instrumentodotado de

    interface GPIBdadosdigitais

  • 7/22/2019 10_Apresentao LabVIEW

    6/21

    PSI.2315 - Instrumentao Virtual

    6

    6

    instrumento virtual com os mesmos compoentes funcionais encontrados nos painis frontaise painis de conexes dos instrumentos.

    A figura 3 mostra a estrutura de um instrumento virtual, tal como implementado noLabVIEW. Sua interface conceitual composta dos elementos que anteriormentemencionamos: (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 (nonosso caso ser GPIB) e a operao do instrumento real se faz atravs da interface grficado computador com o usurio. O instrumento virtual pode fornecer ao usurio um conjunto devalores melhor caracterizado do que o que seria fornecido pelo instrumento real que de fatoos mediu (por exemplo, poder fornecer esses dados filtrados de rudo, organizados em umaescala mais adequada, agrupados em classes, etc). Alm disso pode valer-se de recursos decomputao 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 astais declaraes e instrues. Para se alcanar uma produtividade e eficincia elevadas naatividade de programao, foram desenvolvidos diversos mtodos de se programar. Estesrecomendam formas de se conceber e estruturar o cdigo fontedo programa, aquele textoque o programador escreve em linguagem de alto nvel, antes de ser compilado. Com oadvento das interfaces grficas, passou-se a incorporar nos programas trechos quedescrevem os componentes visuais das mesmas: janelas, botes, cursores, etc. Comoesses componentes em geral so padronizados para cada ambiente grfico, eles passarama ser fornecidos ao programador como bibliotecas pr-fabricadas, que podem ser ligadas aoprograma durante a compilao (estticas) ou durante a execuo do programa, medidaem que so requisitadas (dinmicas). As bibliotecas dinmicas (DLLs - Dynamic LinkedLibraries) 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 elementosque compem a interface grfica. Essa conveno regulamenta o aspecto das janelas,botes, menus, etc, sua organizao e disposio, seu acabamento visual. Exemplos deambientes grficos: openlook, motif, athena Xtoolkit, microsoft Windows.

    A idia de componente de software deve ser entendida como sendo um trecho deprograma que tem uma funcionalidade bem especfica. Certos componentes so utilizadosmuitas vezes em um mesmo programa ou em diferentes programas. Por exemplo, o trechode programa que implementa um boto ou um menu em uma interface grfica. Por umaquesto de eficincia, os componentes tm seu cdigo bastante otimizado e so fornecidospr-compilados, em bibliotecas, como mencionamos antes. No caso da instrumentao

    virtual, pode-se pressupor uma srie de componentes que vo traduzir a funcionalidade doscomponentes correspondentes em instrumentos reais. Assim, encontraremos os seguintescomponentes 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 decomponentes visuais interconectados de modo a compor a lgica das tarefas a seremexecutadas. Os componentes representam no s os elementos da interface grfica, mastambm os blocos construtivos de uma linguagem de programao: blocos iterativos (for,while) , estruturas de deciso (case, if-then-else 4), sub-rotinas e procedimentos, estruturasde dados (variveis elementares, cadeias de caracteres, matrizes, estruturas hbridas), etc.

    4A estrutura if-then-else implementada como caso particular de casenoLabVIEW.

  • 7/22/2019 10_Apresentao LabVIEW

    7/21

    PSI.2315 - Instrumentao Virtual

    7

    7

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

    A figura 4 mostra a implementao do programa em C. Nele criado um vetor num[ ]de256 entradas em ponto flutuante de dupla preciso. Essas entradas so preenchidas comnmeros aleatrios atravs da funo rand( ) repetida 256 vezes no primeiro lao for. Oprograma 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.

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

    /* Programa em C para gerar um vetor de nmeros aleatriose encontrar o mximo dentre eles */

    #include #include

    main( ){double num[256], max;

    int i;printf("O vetor de numeros aleatorios:\n\n");for(i=0; i

  • 7/22/2019 10_Apresentao LabVIEW

    8/21

    PSI.2315 - Instrumentao Virtual

    8

    8

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

    tabela que mostraria os valores do vetor.

    Figura 5 - Soluo implementada com HP-VEE.

    a)

    b)

  • 7/22/2019 10_Apresentao LabVIEW

    9/21

    PSI.2315 - Instrumentao Virtual

    9

    9

    A figura 6 mostra a implementao do programa com o ambiente de desenvolvimentoLabVIEW. Em (a) v-se o painel frontal e em (b) o diagrama de blocos. O painel frontalcontm os seguintes componentes: um painel decorativo de apresentao com o ttulo daaplicao, uma tela oscilogrfica, exibindo o vetor de nmeros aleatrios de forma grfica euma caixa contendo o valor mximo. Estes dois ltimos blocos, a tela e a caixa apresentamcomponentes correspondentes no diagrama de blocos, que podem ser identificados pelosrtulos idnticos aos que aparecem no painel frontal, respectivamente. A implementao foifeita de modo a se aproximar o mximo da feita com o HP-VEE.

    Essencialmente a programao visual realizada escolhendo-se em uma caixa deferramentas cada componente, que exibido no local do diagrama de blocos que o usurio

    a)

    b)

    Figura 6 - Soluo implementada com LabvIEW.

  • 7/22/2019 10_Apresentao LabVIEW

    10/21

    PSI.2315 - Instrumentao Virtual

    10

    10

    selecionar com o mouse. Os componentes so ento conectados selecionando-se com omouse as terminaes dos componentes que devem ser interligadas e desenhando-se otrajeto da ligao sobre o diagrama de blocos, com o apontador do mouse. No caso doLabVIEW, a cor e espessura da ligao se ajustam automaticamente ao contexto, de acordocom o tipo de dado que est sendo passado de um componente para outro.

    A utilizao de componentes de software em programao (visual ou textual) umaprtica possvel graas orientao a objetos, que tem peculiaridades conceitualmentediferentes da tradicional programao estruturada. Em instrumentao virtual, os programasso denominados instrumentos virtuais ( virtual instruments- VIs). Os componentes que soos blocos construtivos usados na elaborao de um instrumento virtual, so objetos, nosentido da programao orientada a objetos, que pode ser encontrada no apndice A. Algunsusam o termo componentware para designar software baseado em componentes. Oscomponentes so mdulos de softwarereutilizveis (geralmente pr-compilados).

    5. Execuo simu ltnea ( 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 quemusa qual parte da memria, que programas so executados, quais tarefas o computador estrealizando e de que forma. Conceitualmente, os componentes e objetos so peas deprogramao que podem ter existncia independente umas das outras. Isto , se o sistemaoperacional permitir, os diversos objetos e componentes de um programa podero estarsendo executados paralelamente (ou concorrentemente), de modo assncrono. Seufuncionamento conjunto, traduzindo a funcionalidade do programa, dar-se- pela troca deinformaes, 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 unsdos 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 sermultiprocessada ( paralela ) ou multitarefa. As plataformas multiprocessadas dispem demais de um processador, podendo defato executar simultaneamente (do ponto de vista detempo fsico) mais de um processo 6. As plataformas multitarefa so dotadas de sistemasoperacionais capazes de administrar vrios processos executando em tempo partilhado, isto, cada processo partido em trechos e cada trecho executado durante um intervalo detempo curto, parando em seguida para dar vez execuo do trecho de um outro processo eassim por diante. Com isso o sistemafunciona como se vrios processos parecessem estarsendo executados ao mesmo tempo7.

    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. Essetipo de multitarefa denominado multithreadinge cada mdulo do processo que executa em

    "paralelo" denomina-se um thread de execuo. No entraremos em maiores detalhesquanto a esses termos e vamos entender os objetos como se fossem trechos de umprocesso que podem executar quase-paralelamente em uma plataforma multitarefa. Guardebem o seguinte:

    multitaskingrefere-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 linguagemgrfica) so objetos com threads, que podem executar simultneamente. A forma deadministrar a repartio do tempo de processador entre esse objetos pode levar execuoassncrona ou sncrona. No caso do LabVIEW, h mdulos que devem executar de forma

    6Entenda-se por processoum programa. Um processo pode conter um ou vrios objetos.

    7Tempo aqui do ponto de vista computacional, isto , com base no relgio (clock ) da mquina.

  • 7/22/2019 10_Apresentao LabVIEW

    11/21

    PSI.2315 - Instrumentao Virtual

    11

    11

    sncrona sempre. Um mdulo dito sncronoquando sua execuo, uma vez iniciada, deveseguir at o fim, antes que outro mdulo possa ser executado. Ou seja, mdulos sncronosafetam o "quase paralelismo" de execuo entre os objetos. Voltaremos a esse ponto naseo 7.

    Esses conceitos so essenciais para permitir a concepo dos ambientes de

    programao visual que compem o LabVIEW e o HP-VEE. Os componentes dessesambientes so objetos, instncias de classes que se comunicam. As mensagens que trocamuns com os outros so especificadas pelas conexes presentes no diagrama de blocos.Seus blocos so disparados em tempo compartilhado quando o programa executado. Oencapsulamento dos dados essencial, para garantir que os componentes possam existircom base na sua funcionalidade, sem nos preocuparmos com detalhes de suaimplementao. O mecanismo de passagem de mensagens entre objetos requer que sedefina interfaces padronizadas entre os objetos e protocolos que indiquem como um blocogenrico passa informao para outro. As interfaces especificam a forma como os dados soapresentados para entrada e sada de um bloco. Os protocolos especificam a forma como osdados devem ser transferidos de um bloco para outro, atravs de suas interfaces. A figura 7ilustra esses conceitos.

    Os instrumentos reais acoplados ao computador aparecem nesse ambiente deprogramao visual como blocos especializados. Esses blocos recebem as informaesvindas atravs das interfaces eletrnicas com os instrumentos reais e as transformam emvariveis, passadas aos demais blocos como mensagens contendo os dados. Resta discutiro que so esses blocos especializados e que tipo de comunicao eles executam com osinstrumentos reais.

    6. Interfaces de Instrumentao

    H dois aspectos a se considerar quanto ao interfaceamento dos instrumentos reaiscom 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 desoftware ou objeto que representa o instrumento real dentro do ambiente de programao. Opadro de comunicao determina a forma como os dados so transferidos ( tipo debarramento de dados e protocolo de comunicao). O componente de interface deve sercompatvel com o protocolo de comunicao usado.

    Os tipos de barramentos de dados mais comuns para uso com microcomputadoresso: via serial e via paralela. Nos barramentos seriais, h uma nica via fsica decomunicao, 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 dedados, 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 osdados e sinais nas vias (protocolos). Os protocolos seriais mais utilizados so o RS-232C , o

    INTERFACE

    OBJETO B

    INTERFACE

    OBJETO A

    MENSAGEM

    PROTOCOLO

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

  • 7/22/2019 10_Apresentao LabVIEW

    12/21

    PSI.2315 - Instrumentao Virtual

    12

    12

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

    6.1. A interface GPIB (IEEE - 488)

    Em 1965, a companhia americana Hewlett-Packard projetou uma interface ebarramento de comunicao para conectar seus instrumentos programveis, entodenominado HP-IB (Hewlett-Packard Interface Bus). Essa interface se popularizourapidamente devido alta taxa de transferncia que suportava ( 1Mbyte/s nominal ). Issolevou a sua padronizao pelo IEEE 8 , em 1975, com o nome GPIB - General PurposeInterface Bus - ou IEEE488. Em 1992 foi editada a segunda reviso dessa norma, quevigora at hoje, a IEEE-488.2.

    A figura 8 mostra o conector padronizado para a interface GPIB e os sinaiscorrespondentes a cada pino. Os dispositivos GPIB comunicam-se uns com os outrosenviando dois tipos de mensagens:

    Mensagens independentes de dispositivo - so os dados ( resultados de medidas,instrues de programao, statusda mquina, arquivos de dados )

    Mensagens de comando da interface - so destinadas execuo de funes taiscomo: endereamento de dispositivos, programao da interface, inicializao dobarramento de interface, etc.

    O padro GPIB prev trs tipos de entidades conceituais correspondentes a certasclasses 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. Ocontroller gerencia o fluxo de informaes no GPIB enviando comandos a todos osdispositivos. Um voltmetro digital, por exemplo, um talker e um listener, enquanto umcomputador com uma placa GPIB pode ser os trs tipos de entidade.

    Pode-se usar dois tipos de configurao das conexes entre os dispositivos ligados emum GPIB: linear e estrela, como mostrado na figura 9.

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

    1 132 143 154 165 176 187 198 209 21

    10 2211 2312 24

    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

    DIO5

    DIO6

    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

    LINHASDEDADOS LINHASDEDADOS

    LINHAS DEHANDSHAKE

    LINHAS DE

    GERENCIAMENTODE INTERFACE

    LINHA DEGERENCIAMENTODE INTERFACE

    Figura 8 - Conector GPIB e sinais correspondentes

  • 7/22/2019 10_Apresentao LabVIEW

    13/21

    PSI.2315 - Instrumentao Virtual

    13

    13

    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 serinterfaceados com um ambiente de instrumentao virtual atravs de dispositivos deaquisio de dados (DAQs). Os DAQs so dotados de conversores analgico-digitais epodem ser placas conectadas diretamente ao barramento do computador ou dispositivosexternos 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 desoftware apresentado como um bloco no diagrama de blocos. Esses componentes sodenominados instrument drivers e devem ser compatveis com a forma de comunicaoutilizada (GPIB, serial, barramento interno, etc). Dentro desse bloco encontra-se o programacapaz de se comunicar com o hardwaredo instrumento e control-lo. Esse mdulo pode serimplementado seguindo um padro de arquitetura de software que permite tratar osdispositivos de maneira bastante uniforme e simplificada, denominado VISA - VirtualInstrument Software Architecture. Esse padro inclui mtodos para tratamento de eventos ede 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.

    Instrumento A

    Instrumento B

    Instrumento C

    Instrumento A

    Instrumento CInstrumento B

    CONFIGURAOLINEAR

    CONFIGURAOEM ESTRELA

    Figura 9 - Configuraes de redes deinstrumentos com GPIB

  • 7/22/2019 10_Apresentao LabVIEW

    14/21

  • 7/22/2019 10_Apresentao LabVIEW

    15/21

    PSI.2315 - Instrumentao Virtual

    15

    15

    Sumrio

    O que essencialmente se deve ter aprendido aqui que:

    Um instrumento virtual oferece uma interface grfica com a mesmafuncionalidade que aquela oferecida pelos mostradores e painis deinstrumentos reais.

    Essa interface realizvel em computadores dotados de ambiente grfico eexplora conceitos de programao orientada a objetos.

    Os componentes de um instrumento virtual so mdulos reutilizveis de softwareque podem sem implementados como bibliotecas includas dinamicamente -- asDLLs.

    Os instrumentos reais so interfaceados com o ambiente de programaoatravs de componentes especializados, denominados instrument drivers,implementados segundo um padro que facilita seu uso de um modo maisuniforme -- o VISA. Os instrument drivers devem ser compatveis com o

    protocolo de comunicao usado para conectar o instrumento real aocomputador. O padro de comunicao utilizado nos instrumentos existentes no laboratrio de

    eletricidade o GPIB, ou IEEE-488. Esse padro usa um barramento deinterface paralelo de 8 vias de dados, 3 vias de handshake e 5 vias degerenciamento da interface. Cada instrumento recebe um endereo particular nobarramento GPIB.

    Agradecimentos

    O autor agradece pela colaborao prestada atravs de reviso e sugestes feitas porEdson 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-OrientedProgramming - Concepts and Environments - Manning, Greenwich, 1995

    2. S. Sigfried - Understanding Object-oriented Software Engineering - IEEE Press - NewYork, 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

  • 7/22/2019 10_Apresentao LabVIEW

    16/21

    PSI.2315 - Instrumentao Virtual

    16

    16

    Questionrio de Auto-avaliao

    As questes a seguir permitem que voc avalie se entendeu o texto e captou os principaisaspectos conceituais:

    1. Quais as partes de um instrumento ?2. Qual a diferena entre sensor, transdutor e atuador?3. O qu uma interface conceitual?4. Quais so os componentes da interface conceitual de um osciloscpio ?5. Quais so os componentes da interface conceitual de um computador ?6. D um exemplo de um ambiente janelado de um computador.7. O qu so componentes de software?8. O qu significa a sigla VI?9. O qu o painel frontal de um VI ?10. O qu o diagrama de blocos de um VI ?

    11. O qu o sistema operacional? D um exemplo ?12. O que um processo( em um computador ) ?13. O qu um sistema operacional multi-tarefa?14. O qu um sistema operacional multi-threaded?15. O qu um protocolo de comunicao ?16. O qu o protocolo GPIB ? Quais suas particularidades interessantes ?17. O qu a linguagem G?

  • 7/22/2019 10_Apresentao LabVIEW

    17/21

    PSI.2315 - Instrumentao Virtual

    17

    17

    ADADOS

    MTODOS

    MENSAGEM

    APNDICE AEste apndice visa satisfazer a curiosidade e complementar alguns conceitos mencionadosna apostila. Sua leitura no indispensvel, porm esclarece alguns pontos.

    Programao Orientada a Objetos

    O mtodo de programao estruturada procura dividir o programa em blocos queguardam entre si uma relao hierrquica perfeita, isto , no h desvios incondicionais deuma seo para outra. Uma forma especialmente interessante de programao estruturada a programao modular. Este mtodo consiste em dividir a aplicao em mdulos, que sotrechos de programa que se relacionam exclusivamente atravs de interfaces por ondetrocam dados (em geral os argumentos de funes e procedimentos). Isto , para entrar esair de um mdulo a via sua interface e passa-se de um mdulo A para um mdulo Brealizando-se no primeiro uma chamada do segundo, retornando-se ao mdulo A quando aexecuo do B encontrar uma instruo de retorno. Em programao modular pode-se usaros chamados tipos abstratos de dados(que envolvem por exemplo, estruturas hbridas onde

    se mistura variveis inteiras, em ponto flutuante, caracteres, etc).

    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 mdulopara o outro. Isto , o programador precisa conhecer como foi implementada internamente aestrutura 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 cadamdulo s podem ser vistos externamente ao mdulo atravs de funes especiaischamadas mtodos. Os mtodos sabem como manipular os tipos de dados do objetocorrespondente de forma adequada. Dessa maneira, usando essas funes chamadasmtodos, o programador consegue usar os dados de um objeto, sem precisar saber como aestrutura de dados est implementada internamente. Diz-se que os dados esto escondidos(data hidding ). Essa propriedade dos objetos denomina-se encapsulamento.O seguinteexemplo ajudar a entender melhor esses conceitos.

    GOTO 100

    100

    RETURN

    IFV F

    a) b) c)

    BDADOS

    MTODOS

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

  • 7/22/2019 10_Apresentao LabVIEW

    18/21

    PSI.2315 - Instrumentao Virtual

    18

    18

    Suponhamos que se deseja implementar um programa que manipula nmeroscomplexos, por exemplo, para aplicao em anlise de circuitos em regime permanentesenoidal. Sem usar conceitos de programao orientada a objetos, a concepo usualseria construir um tipo abstrato de dado e batiz-lo como complexo por exemplo. Emlinguagem 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, oprogramador precisa saber como foi implementado o tipo de dado complexo. Se aimplementao mudar por alguma razo, de uma forma para a outra, o programador serobrigado a alterar a forma de calcular a adio. J no caso de se usar programaoorientada a objetos esse problema no ocorre.

    Na figura 12 apresenta-se a soluo baseada em objetos. Para implementar nmeroscomplexos como objetos, cria-se uma classe para acomod-los. A classe contm asdeclaraes especificando a estrutura e as propriedades dos objetos que compreende. Nafigura 12 no mostrado como o tipo complexo est implementado na classe complexo; nofoi mostrado se foi feito como um arrayde duas entradas ou uma struct. A figura 12 mostra arealizao da adio quando o tipo complexo um objeto. Tudo que o programador precisasaber 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 quedispomos de duas funes (os mtodos) que retornam a parte real e a parte imaginria docomplexo (tambm no foi mostrado como essas funes foram implementadas, poistambm irrelevante).

    Nas linguagens orientadas a objeto, os objetos so agrupados em classes. Quando seespecifica um tipo de objeto, define-se de fato a sua classe. No exemplo, define-se a classecomplexo. Quando se deseja criar objetos de uma classe (no exemplo, os nmeroscomplexos Z1, Z2 e Z3), basta-se declarar o nome da classe e especificar o nome dosobjetos, que so denominados instncias dessa classe . No exemplo, Z1, Z2 e Z3 soinstncias da classe complexo.

    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 emlinguagem C . Em (a) o tipo complexo implementado como uma struct. Em (b) aimplementao feita com um array de duas entradas, onde a primeira a parte real e asegunda a parte imaginria.

  • 7/22/2019 10_Apresentao LabVIEW

    19/21

  • 7/22/2019 10_Apresentao LabVIEW

    20/21

    PSI.2315 - Instrumentao Virtual

    20

    20

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

    Programao Orientada pelo Fluxo de Dados

    J dissemos que na linguagem G usada pelo LabVIEW, os mdulos correspondentesaos cones (ou caixinhas) so objetos e contm threads independentes, isto , podem serexecutados simultneamente. Entretanto, a programao em si do LabVIEW, at a verso6i, de 2001, no a rigor orientada a objetos, ainda que seus componentes sejam objetos eque 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 pelofluxo 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 conectarmosduas caixinhas do LabVIEW, estamos condicionando a execuo de um mdulo pelo fluxodos dados provenientes do outro que metaforicamente passam de um para o outro atravsdo fio de conexo.

    Figura 13 Controle pelo fluxo de dados.

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

  • 7/22/2019 10_Apresentao LabVIEW

    21/21

    PSI.2315 - Instrumentao Virtual

    21

    APNDICE B

    GLOSSRIO

    1.Metfora computacional - uma forma de abstrao da relao semntica entre oprograma, o processo computacional subjacente e o domnio sobre o qual agem. Em umametfora o significado da entidade qual se refere (referido) caracterizado pelo nome quea referencia (referente). Assim, a metfora instrumento virtual refere-se a um conjunto deprogramas que interpretado como se fosse um instrumento. Exemplos de outras metforascomputacionais: componente reusvele agente inteligente.

    2. Aparelho, equipamento, instrumento - em diversas ocasies empregamos esses termossem 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 deunidade. O termo equipamento pode referir-se a um ou mais aparelhos compondo umsistema destinado execuo de um conjunto tarefas. O instrumento um aparelhodestinado interveno de um operador em um determinado meio, seja para medir ou paracontrolar 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 textoconsideramos como transdutoruma abstrao da funo de transformar uma grandeza fsicade um tipo em um outro mais adequado (por exemplo, transformar temperatura em sinaleltrico). Da mesma forma, designamos por sensor a abstrao da funo de responder auma varivel fsica (por exemplo, a temperatura). Todavia, em termos prticos, geralmenteno 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 alteraruma dada varivel fsica.

    4. DLL - Dinamic Linked Library - um mdulo de programa pr-compilado que pode serutilizado por um outro programa. A passagem de parmetros e dados entre a DLL e oprograma que a utiliza se faz atravs de uma interface de programao pr-estabelecida. Oprograma pode conter funes que so definidas na DLL.

    5. Componente - um mdulo de programao implementado como objeto pr-compilado naforma de uma DLL. Os componentes que formam os blocos do LabVIEW so dessacategoria. medida com que novos blocos de um instrumento virtual vo sendo criados, elesvo sendo imediatamente compilados para serem guardados em uma bibliotecaparticularmente criada para aquele VI. Quando o VI executado, portanto, a maior parte de

    seu "cdigo" j est pr-compilada.