47
LA PRIMA RIVISTA ITALIANA PER LA COMUNITÀ LABVIE W 02 MAGGIO 2007 E 5,00 LABVIEW E L’HYPERTHREADING LABVIEW PER LA MISURA E L’ANALISI DEI DATI LUAVIEW: LABVIEW PIÙ POTENTE GRAZIE AGLI SCRIPT LUA

labviewworld-02

Embed Size (px)

Citation preview

Page 1: labviewworld-02

L A P R I M A R I V I S T A I T A L I A N A P E R L A C O M U N I T À L A B V I E W

02MAGGIO2007E 5,00

LABVIEW E L’HYPERTHREADINGLABVIEW PER LA MISURAE L’ANALISI DEI DATILUAVIEW: LABVIEW PIÙ POTENTE GRAZIE AGLI SCRIPT LUA

Page 2: labviewworld-02

02

ISTRUZIONI PER L'USO

Come avrete già constatato sfogliando LabVIEW World, la rivista si articola in alcune sezionifondamentali. Vediamo insieme quali sono i criteri con i quali abbiamo proceduto nella loroscelta. 'Scenario' è l'editoriale, che viene di volta in volta dedicato all'argomento sul quale

vogliamo richiamare la vostra attenzione. Nei primi numeri, naturalmente, abbiamo parlatosoprattutto di LabVIEW World, ma non sarà sempre così.Dopo il sommario, che riporta il titolo, un'icona e una breve descrizione dell'argomento di ogniarticolo, troverete spesso 'A tu per tu'. In questa sezione intervisteremo un personaggio legato in qualche modo a LabVIEW, al suo sviluppo o al suo utilizzo. Nel primo numero, per esempio,siamo partiti da Jeff Kodosky, uno dei padri di LabVIEW. Poi abbiamo incontrato John Pasquarette,direttore software marketing di National Instruments. Ed eccoci alla parte dedicata alle novità: in 'What's new' vengono focalizzate nuove caratteristiche o nuove applicazioni di LabVIEW, con il classico stile sintetico delle news.In 'Tips & techniques' vengono proposti approfondimenti su funzioni particolari di LabVIEW e sono descritti 'trucchi' di programmazione per risolvere specifici problemi: dalla comunicazione tra LabVIEW e Linux realtime, alla gestione di una scheda audio su PC, alla comunicazione fraLabVIEW e un database, e così via.E, per capire ancora meglio le infinite possibilità applicative di LabVIEW in ogni settore civile e industriale, nella sezione 'Dalla teoria alla pratica' vengono pubblicati articoli che illustranorealizzazioni basate sul software di programmazione grafica di National Instruments. In sostanza, nella prima parte della rivista, troverete informazioni destinate soprattutto a chiconosce già, a vario livello, LabVIEW. Ritenete che le vostre conoscenze sull'argomento non sianosufficienti? Niente paura. Abbiamo infatti previsto la 'Scuola di LabVIEW', una sezione che contienesempre due articoli: uno per i principianti ed uno per i più esperti. Raccogliendo i numeri dellarivista, potrete disporre fra qualche tempo di un corso completo, che vi permetterà di risolvere i vostri dubbi o di 'ripassare' qualche concetto di programmazione. Non vi basta ancora? Saltate a pié pari agli 'Appuntamenti' e scegliete il corso di formazione o l'evento ottimale per le vostreesigenze!Tornando indietro, troverete 'Dalla carta al web'. L'idea di fondo è descritta nel trafiletto diapertura. In sostanza, in questa sezione vi segnaliamo alcuni spunti di approfondimento trattidall'inesauribile serbatoio del web. Proprio perché gli argomenti relativi a LabVIEW sonoinnumerevoli e lo spazio sulla rivista è limitato, lasciamo a voi il compito di scaricare il file dalla retee leggerlo sul vostro computer.In ogni rivista, poi, c'è sempre una rubrica dedicata alla posta dei lettori. Non potevaquindi mancare 'La voce degli utenti'. Non si tratta però delle vostre lettere, ma diargomenti di discussione ricavati dal Forum di ILVG.it che vi invitiamo a frequentare.Segue 'Report', con articoli di attualità su eventi centrati su LabVIEW o che hannovisto la partecipazione di National Instruments. Siamo arrivati all'ultima sezione, quelladi 'LabVIEW e lavoro'. Se desiderate sfruttare la vostra conoscenza di LabVIEW, leggetele inserzioni che pubblichiamo: forse troverete quella che fa per voi. E non dimenticate: se avete qualche dubbio o desiderate maggiori informazionisu qualche argomento, utilizzate liberamente il codice readerserviceriportato in calce ad ogni articolo. Otterrete tempestivamente unarisposta!

Va l e r i o A l e s s a n d r o n i

S C E N A R I O

Page 3: labviewworld-02

3

02W H A T ’ S N E W

National Instruments ha potenzia-to ulteriormente la sua offertasoftware per la progettazione

grafica di sistemi grazie al rilascio diLabVIEW SignalExpress, un softwareinterattivo di misura che semplifica laregistrazione dei dati e il controllo del-la strumentazione, oltre ad essere unvalido ausilio per la didattica. LabVIEWSignalExpress si fonda sulle funzionali-tà di misura, analisi e generazione direport di LabVIEW e consente di con-trollare centinaia di dispositivi di misu-ra in modo facile ed intuitivo.“National Instruments ha sviluppatoLabVIEW per creare applicazionicustom per l’automazione delle misu-re”, ha affermato Jeff Kodosky, creato-re di LabVIEW e co-fondatore diNational Instruments. “Grazie alnuovo software LabVIEW SignalEx-press, ora parte integrante della fami-glia di LabVIEW, gli utenti potrannoeseguire in modo ancora più semplicele operazioni di misura più comuni eavranno anche accesso alle pienepotenzialità della piattaforma NILabVIEW”.

CREARE RAPIDAMENTESISTEMI DI DATA LOGGINGComunemente i sistemi di registrazio-ne dei dati acquisiscono le misure e lememorizzano su disco o in un databa-se. Grazie a pochi click del mouse,LabVIEW SignalExpress è in grado diacquisire e registrare i dati di misura sudisco ed esportarli in applicazioni difogli di calcolo come ad esempio Mi-crosoft Excel.

LabVIEW SignalExpress include anchefunzioni per la registrazione dei daticome il monitoraggio di allarmi e il sal-vataggio condizionato. Inoltre, datoche il software è basato sulla tecnolo-gia Express di LabVIEW, è possibilegenerare codice grafico LabVIEW conun semplice click del mouse, per esten-dere le applicazioni ricorrendo a inter-facce utente originali oppure aggiun-gere logica personalizzata per applica-zioni avanzate di salvataggio dati.LabVIEW SignalExpress, abbinato alsistema modulare di acquisizione datiNI CompactDAQ, permette una confi-gurazione rapida e plug-and-play delsistema di misura. NI CompactDAQ,basato su USB, con oltre 30 moduli adisposizione, permette agli utenti diintegrare vari tipi di misura come RTD,I/O di corrente, I/O digitali ad alta den-sità, I/O analogici ad alta velocità e I/Oanalogici ad elavata accuratezza. Lacombinazione della piattaforma plug-and-play NI CompactDAQ USB conLabVIEW SignalExpress, offre una so-luzione per la registrazione dei daticompleta e facile da usare, in grado diridurre notevolmente i tempi di confi-gurazione e di misura.

MIGLIORA L’EFFICIENZADELLE MISURE IN APPLICAZIONI DA BANCOL’utilizzo di strumenti da banco in ope-razioni di misura ripetitive o l’utilizzosimultaneo di più strumenti per con-durre dei test come le misure di rispo-sta allo stimolo, spesso comporta ope-razioni fastidiose di regolazione ma-

nuale di pulsanti e manopole deglistrumenti. LabVIEW SignalExpress è ingrado di automatizzare le operazionidi acquisizione, analisi e memorizza-zione dei dati per oltre 400 strumentimodulari e stand-alone; inoltre, il soft-ware permette di risparmiare tempocon l’automazione di molte operazionidi misura, come la caratterizzazionedei circuiti, il frequency sweeping e laregistrazione dei dati.

LabVIEW SignalExpress permette dimigliorare le operazioni di misura gra-zie a oltre 200 funzioni di elaborazionee analisi, incluse quelle nel dominio deltempo e della frequenza e l’analisi sta-tistica, per analizzare i dati al momentostesso dell’acquisizione. Analizzando idati in tempo reale durante il processodi acquisizione, è possibile individuarepiù velocemente gli errori di progetta-zione e di misura ed effettuare le modi-fiche del caso, riducendo la necessità diripetere nuovamente le misure. Inoltre,si possono riutilizzare le misure graziealla generazione automatica di codicegrafico LabVIEW direttamente daLabVIEW SignalExpress.

NATIONAL INSTRUMENTS SEMPLIFICA L'ESECUZIONE DELLE MISURE CON LABVIEW SIGNALEXPRESSQuesto soft ware interatt ivo rappresenta la so luz ione ideale per la registraz ione dei dat i ,le misure in laborator io e le appl icaz ioni d idatt iche

Page 4: labviewworld-02

MIGLIORA I METODI PER LA DIDATTICA COMBINANDOLE ACQUISIZIONI REALI CON LA TEORIAL’ambiente interattivo di LabVIEWSignalExpress permette agli studenti dicomprendere più velocemente le impli-cazioni pratiche delle teorie apprese inclasse. LabVIEW SignalExpress includegli strumenti necessari per l’acquisizio-ne e l’analisi dei dati durante le lezio-ni in classe o di laboratorio, senza lanecessità di insegnare agli studentialcun concetto di programmazione.Gli studenti ora sono anche in grado diimportare i dati di simulazione diretta-

mente in LabVIEW SignalExpress, apartire da un’ampia varietà di pacchet-ti di simulazione come Multisim diNational Instruments, il software inte-rattivo SPICE di analisi e di simulazio-ne dei circuiti, per il confronto direttocon i dati reali acquisiti. La combina-zione delle funzioni di simulazione e diprogettazione avanzata dei circuiti conle funzioni di misura di LabVIEWSignalExpress, permette agli studentidi confrontare agevolmente le simula-zioni e i dati reali, riducendo così iltempo di progettazione e ottenendorisultati di alta qualità.Per visualizzare le demo di LabVIEWSignalExpress e ottenere informazioni,collegarsi al sito www.ni.com/signa-lexpress. Inoltre, è possibile scaricaregratuitamente LabVIEW SignalExpressLE, una versione limitata del software,al sito: www.ni.com/signalexpresseval.

readerservice.it n. 201

BREVI

4

02W H A T ’ S N E W

LabVIEW 8.20 facilita l’esplorazionedei concetti di meccatronica e diprogettazione dei controlli, inclusa

la progettazione di controllori, la simu-lazione di sistemi dinamici, l’identifica-zione di sistemi e lo sviluppo real-time.Grazie alla forte integrazione esistentefra hardware e software NI, i docentipossono applicare la teoria con esempireali in modo pratico e interattivo.Inoltre, il nuovo LabVIEW SimulationModule permette di combinare la pro-gettazione basata su modelli e la logi-ca a flusso di dati, integrando facil-mente i vantaggi offerti dai due modelli

di calcolo all’interno di un unicoambiente di programmazione. Si pos-sono anche trasportare modelli realiz-zati con Simulink di The MathWorks inLabVIEW 8.20 con un’utility incorpo-rata nel LabVIEW Simulation Module.In questa versione di LabVIEW, ilLabVIEW Simulation Module e ilLabVIEW Embedded Module sono oraintegrati, permettendovi di progettareun algoritmo con il LabVIEW Simula-tion Module, prototiparlo usando I/Oreal-time su hardware commerciale edistribuire lo stesso codice, usando ilLabVIEW Embedded Development Mo-

dule, su qualsiasi processorea 32 bit. In questo modo, po-tete simulare e implementa-re modelli virtualmente suqualsiasi target, da un PCdesktop fino a un microcon-trollore.

Implementa in modo semplice modell i dedicati al la progettazione di loop di s imulazione e di control l i , con accesso real-t ime diretto agl i I/O

PROGETTAZIONEE SIMULAZIONE DI CONTROLLI

Nuovo Shared Library Import WizardLe librerie condivise sono par ti di codiceprecompilato che vengono collegatedinamicamente al programma principale in fase di esecuzione. Le Dynamic Link Libraries(DLL) in Windows, le Shared Libraries in Linux e i Framework in Mac OS sono tutti esempi di l ibrerie condivise, a cui si può accedere da LabVIEW utilizzando il Call Library FunctionNode. Con tale nodo, potete creareun’inter faccia in LabVIEW per richiamarelibrerie condivise. Con l’avvento di LabVIEW8.20 è stato introdotto il DLL Impor t Wizard,un potente strumento di generazione di VI che permette di risparmiare tempo di sviluppoe di ridurre gli errori commessi dall’utente.Ciascuno di questi VI autogenerati, o VIwrapper, contiene un Call Library Function Node per accedere a una funzione selezionatadella DLL. Tale caratteristica non solo accelera il processo di integrazione delle funzioni delle librerie condivise, ma minimizza anche

gli errori più comuni compiuti dall’utentequando deve configurare impostazioni comeil formato dei dati, i collegamenti, i valori

di default e la gestione degli errori. Il wizardguida in modo intuitivo gli utenti meno esper tiattraverso le fasi di configurazione e suggerisceanche le scelte ottimali per i parametri dellefunzioni e la gestione degli errori. Per gli utentipiù avanzati, il tool offre la possibilità di accedere a una vasta gamma di opzioni di configurazione, sia delle impostazionigenerali sia di quelle specifiche dei singoli VI.Per utilizzare correttamente il DLL Impor tWizard, si richiede, supponiamo ad esempio in Windows, un file .dll e il relativo filed’intestazione .h. Esattamente come quando si utilizza una DLL in qualsiasi altro linguaggiodi programmazione, è necessario conoscere o disporre di documentazione relativa all’APIdella libreria che spieghi come utilizzare il setdi funzioni disponibile. Il risultato finale saràuna libreria di progetto di LabVIEW contenenteun set di VI (uno per ciascuna funzione dellalibreria condivisa selezionata dall’utente) ed un repor t su eventuali errori occorsi in fasedi generazione.

Readerser vice.it n. 202

Page 5: labviewworld-02

BREVI

5

W H A T ’ S N E W

ENTRA NELLA NOSTRA COMUNITÀ!C a r o l e t to r e, s e r i t i e n i c h e q u e s t a n u ova i n i z i at i va L a b V I E W Wo r l d s i a u n u t i l e s t r u m e n to p e r l a t u a at t i v i t à e d e s i d e r i c o n t i n u a r e a r i m a n e r e a g g i o r n ato s u l m o n d oL a b V I E W, c o l l e g at i a l l a p a g i n a

h t t p : / / w w w. i l b 2 b. i t / l a b v i ew / l b _ wo r l d. a s p

SEI UN FAN DI LABVIEW?

Nuove caratteristiche di LabVIEW8.20 per la progettazione e la si-mulazione di controlli:• Distribuzione dei modelli di simu-

lazione su qualsiasi processoreembedded a 32 bit.

• Prestazioni potenziate dei modelli disimulazione – Migliorate di oltre 10volte prestazioni quali: la velocità diesecuzione, il tempo di compilazionee la capacità di lavorare con modellidi grandi dimensioni.

• Implementazione real-time direttadei modelli di progettazione dei con-trolli.

• Modellazione e simulazione di siste-mi dinamici come controllori di mo-tori e sistemi idraulici con gestionereal-time diretta degli I/O.

• La stretta integrazione con l’hardwa-re NI offre diverse opzioni per la pro-totipazione, i test hardware-in-the-loop (HIL) e l’implementazione finale.

Readerservice.it n. 203

L e attività didattiche e di ricercasugli attuali sistemi complessi ditelecomunicazione richiedono una

piattaforma flessibile per le diverse fasidi sviluppo dalla progettazione softwa-re alla prototipazione hardware, inte-grandosi con centinaia di strumenti.LabVIEW 8.20 e il LabVIEW ModulationToolkit estendono le capacità native dianalisi di LabVIEW ed offrono il suppor-to a vari formati di modulazione, chesono la base per numerose tecnologieemergenti come WiFi, ZigBee, RFID,HDTV, ecc. Il nuovo LabVIEW Modu-lation Toolkit permette la simulazionesoftware e l’implementazione hardwarediretta di sistemi di telecomunicazione.Potete sviluppare rapidamente applica-zioni custom per approfondire lo studiodella teoria, fare ricerca e progettare si-stemi di telecomunicazione e compo-nenti per la modulazione e la demodu-lazione dei segnali.Inoltre, potete utilizzare LabVIEW 8.20e la sua libreria di funzioni per simularel’elaborazione dei segnali e progettareinterattivamente filtri digitali, utilizzan-do il LabVIEW Digital Filter DesignToolkit, e prototipare sistemi, program-mando microcontrollori, processori digi-tali (DSP) e gate array programmabili(FPGA). Il LabVIEW Digital Filter DesignToolkit in LabVIEW 8.20 ha diversenuove caratteristiche progettate per isistemi di telecomunicazione, incluse 12

nuove funzioni testuali per la progetta-zione di filtri, pronte da usare con ilLabVIEW MathScript. In più, la capacitàdi utilizzare, come target, microcontrol-lori, DSP e FPGA, sfruttando la tecnolo-gia offerta da LabVIEW Embedded De-velopment Module, LabVIEW DSP Mo-dule e LabVIEW FPGA Module. Il nuovoLabVIEW Digital Filter Design Toolkitpermette agli studenti di comprenderemeglio i filtri digitali, rappresentandograficamente le più comuni equazionidiscrete associate a un filtro. Il nuovotool può rappresentare la funzione ditrasferimento di un filtro, la formapoli/zeri/guadagno e l’equazione alledifferenze.Nuove funzionalità di LabVIEW8.20 per le telecomunicazioni:• LabVIEW Modulation Toolkit per

gestire protocolli standard e customper telecomunicazioni

• Riutilizzo degli algoritmi esistenti pertelecomunicazioni con la programma-zione testuale di LabVIEW MathScript

• Piattaforma di progettazione e proto-tipazione di hardware basato sumicrocontrollori, DSP e FPGA

• Nuovi tool di progettazione di filtrimultifrequenza in virgola mobile e invirgola fissa per la decimazione, l’in-terpolazione e il ricampionamento ra-zionale, con capacità di generarecodice in virgola fissa

readerservice.it n. 204

Progettare s is temi d i te lecomunicaz ioni in modo intuit ivo e ve loce usando nuovi schemi d i modulaz ione e f i l t r i avanzat i

RF E TELECOMUNICAZIONI

Generazione di Codice CProgrammazione grafica di qualsiasimicroprocessore a 32 bit e semplice riutilizzodel codice C esistenteÈ ora possibile sfruttare la programmazionegrafica di LabVIEW per programmare qualsiasisistema embedded con un microprocessore a 32 bit. Il LabVIEW Embedded DevelopmentModule estende le funzionalità di LabVIEW per poter lavorare con tool di terze par ti,in modo da ottenere una piattaforma che facilita l ’apprendimento pratico dellaprogettazione embedded. Con il LabVIEWEmbedded Development Module, utilizzandostrumenti vir tuali specializzati, è possibileincorporare facilmente codice C esistente e driver di I/O analogici, digitali e pertelecomunicazioni. Tale modulo includenumerosi template per le architetture diprocessori più diffuse, tra cui PowerPC, ARM,TI C6x e x86.

Nuove caratteristiche di LabVIEW Embedded8.20:• Si integra nei progetti in LabVIEW,

indirizzando i target embedded in modo facilee funzionale

• Programmazione di target a basso costo,incluse architetture PowerPC, ARM, TI C64x,x86 e sistemi operativi VxWorks, eCos,Windows e Linux Embedded

• Riutilizzo di codice C esistente tramite C-node e possibilità di lavorare con tool di sviluppo C come Eclipse

• Creazione di nuovi target con approcciosemplificato che include un I/O abstractionlayer

Readerser vice.it n. 204

Page 6: labviewworld-02

USO DEI WEB SERVICE IN LABVIEW

Mik

e N

eal

6

02T I P S & T E C H N I Q U E S

I Web S er v ice s i s tanno af fermando come la pross ima generaz ione di tecnologie basate su Web per lo scambio d i informazioni f ra appl icaz ioni su Internet

Secondo il World Wide Web Consortium (W3C), unWeb Service è un sistema software progettato persupportare interazioni funzionali da macchina a mac-

china attraverso una rete. Esso ha un’interfaccia descrittain un formato tipo WSDL (Web Services DescriptionLanguage). Gli altri sistemi interagiscono con il WebService secondo le specifiche proprie della sua interfaccia,

usando messaggi che possonoessere racchiusi in un frame SOAP(Simple Object Access Protocol). IWeb Service si basano su un prin-cipio di funzionamento a ‘scatolanera’, per cui possono essere uti-lizzati su Internet senza richiederealcuna conoscenza della loroimplementazione.Siti Web e applicazioni possonoutilizzare i Web Service. Essen-zialmente, un Web Service asso-miglia a un set di funzioni espor-tate su Internet attraverso un

Web server. Il progettista di un sito Web o di un’applica-zione ha la possibilità di invocare queste funzioni ed uti-lizzare il Web Service. I Web Service stanno guadagnandopopolarità grazie ai numerosi vantaggi che sono in gradodi offrire:Riutilizzo del codiceLa costruzione delle applicazioni è semplificata utilizzandocomponenti Web Service pronti all’uso.Indipendenza dalla piattaformaPoiché l’accesso ai Web Service usa tecnologie Internetstandard, gli utenti di un Web Service possono utilizzarequalsiasi piattaforma.Indipendenza dal linguaggioQualsiasi linguaggio di program-mazione può operare su un WebService senza alcuna conoscenzadei dettagli di implementazionedel Web Service.Elaborazione distribuitaI componenti Web Service posso-no essere utilizzati per costruirefacilmente applicazioni distribuite.La potenza dei Web Service risiedenella loro capacità di fornire

nuove funzionalità agli strumenti standard di progettazio-ne di applicazioni o di contenuti per il Web. Per esempio,un’applicazione standard di controllo di processo potreb-be allertare gli operatori, nel caso si verifichino condizionidi pericolo, utilizzando degli allarmi. Incorporando un WebService per effettuare telefonate al verificarsi di una con-dizione di allarme, l’applicazione di controllo acquista lapossibilità di andare oltre l’interazione con l’operatore,componendo un numero di emergenza per la richiesta diaiuto.I Web Service completano i toolset di programmazione esi-stenti. Mano a mano che nuovi programmatori adotteran-no i Web Service come tool di programmazione, questi ser-vizi diventeranno sempre più prevalenti nella progettazio-ne Web e di applicazioni.

COMUNICARE CON I WEB SERVICEÈ possibile accedere a qualsiasi Web Service utilizzandonormali protocolli Web, formati di dati e formati di mes-saggi, come Hypertext Transfer Protocol (HTTP), ExtensibleMarkup Language (XML) e Simple Object Access Protocol(SOAP). HTTP è utilizzato per inviare e ricevere messaggifra il Web Service e il fruitore del servizio. XML è utilizzatoper descrivere e rappresentare i dati scambiati. SOAP defi-nisce i messaggi e i loro collegamenti con HTTP.Usando il protocollo SOAP, un client può inviare e riceveremessaggi ben compresi sia dal Web Service che dal fruito-re, il quale, tuttavia, ha bisogno di sapere quali messaggiinviare e ricevere. Per questa transazione è necessaria unadescrizione dell’interfaccia verso il Web Service. Il WebService Description Language (WSDL) è un linguaggiobasato su XML, sviluppato congiuntamente da Microsoft eIBM. Un Web Service pubblica la sua interfaccia in WSDL

Figure 1 – Uso d i .NET per comunicarecon i Web S er v ice

Figura 2 – Come ottenere l ’URL WSDL di un Web S er v ice

Page 7: labviewworld-02

7

T I P S & T E C H N I Q U E S

ad un URL specifico.Un utilizzatore puòquindi leggere laspecifica WSDL dall’URL e creare mes-saggi SOAP per co-municare con il WebService.

TROVARE UN WEB SERVICESegnalatori di valori azionari, convertitori di valuta e tra-duttori linguistici rappresentano solo alcuni dei numerosiWeb Service comunemente disponibili. Proprio come unfornitore locale fa pubblicità sull’elenco telefonico, i forni-tori di Web Service pubblicano i loro servizi in Web direc-tory ben note. Se si ricerca in Google "Web ServicesDirectory", si possono ottenere molti risultati che conten-gono questi elenchi. Una directory può elencare i WebService per categorie e permettere agli utenti di cercare iservizi richiesti mediante parole chiave.Dopo avere trovato un Web Service di proprio interesse,l’utente deve prendere nota dell’URL della specifica WSDL.Spesso, la descrizione del Web Service nella directoryriporta chiaramente l’URL della specifica WSDL insiemealle funzionalità del servizio. Tale URL è necessaria quan-do si crea un’applicazione basata su Web Service inLabVIEW.

UTILIZZARE LA TECNOLOGIA WEB SERVICEComunicare con un Web Service utilizzando messaggiSOAP è come scrivere codice in un linguaggio assembly: èefficiente ma difficile da scrivere, debuggare e mantenere.L’utente può semplificare notevolmente il lavoro, grazie aun maggiore livello di astrazione, usando il Web ServiceImport Wizard di LabVIEW. In LabVIEW 8.20, il WebService Import Wizard introduce infatti un abstraction

layer fra il Web Service e un VI, nella forma di un .NETassembly wrapper. Tale strato esegue le operazioni diimpacchettamento, spedizione e ricevimento dei messaggiSOAP (fig. 1). Il risultato è una versione d’uso immediatodelle funzionalità del Web Service.All’interno del Web Service Import Wizard, i servizi vengo-no gestiti mediante un assembly .NET, che rappresentaun’unità di elaborazione .NET distribuibile singolarmente.Benché l’estensione dell’assembly .NET sia .DLL, non sitratta di una dynamic link library di tipo standard, che può

essere richiamata con un Call Library Function Node inLabVIEW. Si tratta di un oggetto costruito per essere ese-guito sul Common Language Runtime (CLR) supportatodal framework .NET. Un assembly .NET esporta un’inter-faccia basata su classi con proprietà e metodi. Utilizzandoil supporto per client .NET in LabVIEW, l’utente può crea-re un’istanza di una classe da un assembly .NET, median-te il Constructor Node, ed accedere alle proprietà e aimetodi della classe usando rispettivamente i propertynode e gli invoke node.

CREAZIONE DI UN’APPLICAZIONE BASATA SU WEBSERVICE IN LABVIEW 8.20LabVIEW 8.20 permette all’utente di importare facilmenteun Web Service e utilizzare le funzioni del servizio attra-verso subVI standard in LabVIEW. Seguite i passi descrittiin precedenza per trovare un Web Service e la relativa URLWSDL. Quando si usa LabVIEW 8.20, i passi seguenti spie-gano come questa informazione viene utilizzata perun’applicazione basata su Web Service:Passo 1: Localizzate e copiate l’URL WSDL di un Web Service desiderato.Passo 2: Lanciate il Web Service Import Wizard in LabVIEW.Passo 3: Incollate l’URL WSDL nel Web Service Import Wizard.

Figura 3 – Lancio del Web S er v ice Impor t Wizard in LabVIE W 8.20

Figura 4 – Speci f icare i l nome del la l ibrer ia d i progettore lat iva a l Web S er v ice

Figura 5 – S elez ione dei metodi del Web S er v ice

Page 8: labviewworld-02

Passo 4: Selezionate i metodi desiderati del Web Service.Passo 5: Utilizzate i VI del Web Service sul diagramma a blocchi.L’esempio seguente dimostra come richiamare daLabVIEW un Web Service denominato Phone Notify.Questo Web Service telefona a un numero indicato dall’u-tente e legge un testo specificato a voce alta. Per infor-mazioni sul Web Service Phone Notify consultatewww.cdyne.com.

Passo 1: Localizzare e copiare l’URLWSDL del Web Service Phone Notify1. Visitate www.xmethods.net.2. Cercate Phone Notify nell’elenco completodei Web Service e selezionate il link.3. Copiate l’URL WSDL (fig. 2).

Passo 2: Lanciare il Web Service ImportWizard in LabVIEW1. Lanciate LabVIEW.2. Selezionate Tools» Import» Web Service…(fig. 3) per lanciare il Web Service ImportWizard.

Passo 3: Incollare l’URL WSDL nel Web ServiceImport Wizard1. Incollate l’URL WSDL nel campo Web Service De-scription URL e cliccate sul pulsante Next. Il Web Serviceviene ora automaticamente convalidato: LabVIEW control-la l’URL per verificare che sia una specifica WSDL valida.2. Nel campo Name (.lvlib), specificate il nome di unanuova Project Library che conterrà il Web Service.

Passo 4: Selezionare i metodi desiderati del Web ServiceI metodi sono le varie funzioni che questo Web Service puòfornire. I metodi disponibili sono elencati nella finestra delWeb Service Import Wizard.

1. Assicuratevi che ogni metodo che desiderate importarenella libreria di progetto abbia un segno di spunta accan-to al suo nome (fig. 5).2. Cliccate sul pulsante Generate per procedere con ilWizard ed aprire la libreria di progetto importata.3. Cliccate sul pulsante Finish per uscire dal Wizard e lan-ciare la liberia di progetto (fig. 6).

Passo 5: Utilizzare i VI del Web Service sul diagramma a blocchiQuando il Web Service Import Wizard completa la genera-zione, la libreria diventa accessibile (fig. 7).1. Dalla Finestra Project Explorer, trascinate l’Open WebService.vi ed il Close Web Service.vi sullo schema a bloc-chi. Questi VI sono necessari per stabilire e chiudere cor-rettamente la connessione al Web Service.2. Trascinate l’icona NotifyPhoneEnglishBasic.vi sulloschema a blocchi.

3. Specificate LicenseKey, PhoneNumberToDial e TextToSaye fate i collegamenti come illustrato in fig. 8.4. Notate in fig. 8 che i VI incapsulano chiamate .NET abasso livello (riquadri rossi) che rimangono competamen-te trasparenti all’utente per un’implementazione più sem-plice.5. Eseguite il VI. Il Web Service Phone Notify chiama ilnumero telefonico specificato e legge il testo.Questo esempio illustra chiaramente che richiamare unmetodo di un Web Service da LabVIEW è un processo sem-plice e immediato, grazie al nuovo Web Service ImportWizard.

8

02T I P S & T E C H N I Q U E S

Read

erse

rvic

e.it

206

Note sull’autoreMike Neal, LabVIEW Product Manager, National Instruments

Figura 6 – Aper tura del la l ibrer ia d i progetto del WebS er vice impor tata

Figura 8 – Ut i l izzo del Web S er v ice in un’appl icaz ione LabVIE W

Figura 7 – Esploraz ionedel la l ibrer ia d i progettodel Web S er v ice generata

Page 9: labviewworld-02

9

LABVIEW E L’HYPERTHREADING

Kam

ran

Sh

ah

L’hyper threading è una caratter ist ica avanzata del le vers ioni evolute del processoreIntel Pent ium 4 e success iv i

Un computer hyperthreaded ha un solo processore,ma si comporta come se sullo stesso chip fosseroincorporati più processori. Alcune delle risorse sul

chip sono duplicate, come il set di registri, altre sono con-divise, come le unità di esecuzione e la cache. Alcune risor-se, come i buffer per le microoperazioni, sono partiziona-te, in modo tale che ogni processore logico ne riceva unaparte.Ottimizzare un’applicazione per sfruttare l’hyperthreadingè come ottimizzare un’applicazione per un sistema multi-processore, ma vi sono alcune differenze. Per esempio, uncomputer hyperthreaded condivide le unità di esecuzionementre un computer a doppio processore contiene due setcompleti di unità di esecuzione. Pertanto, tutte le applica-zioni che sono limitate dalle unità di esecuzione in virgolamobile hanno prestazioni migliori su un computer multi-processore, perché non è necessario condividere le unità diesecuzione. Lo stesso principio vale per la contesa dellacache. Se due thread cercano di accedere alla cache, leprestazioni sono migliori su un computer multiprocessore,dove ogni processore possiede la propria cache.

RICHIAMI GENERALI SULLE MODALITÀ DI ESECUZIONE DI LABVIEWIl sistema di esecuzione di LabVIEW è già concepito per ilmultiprocessing. Nei linguaggi di programmazione testua-li, per rendere multithreaded un’applicazione, è necessario

creare più thread escrivere il codice dicomunicazione fra glistessi. LabVIEW invecericonosce automatica-mente le opportunitàdi multithreading neiVI e il sistema di ese-cuzione gestisce pervoi la comunicazione.L’esempio seguentesfrutta il sistema diesecuzione multithrea-ded di LabVIEW.In questo VI (fig.1),

LabVIEW capisce che può eseguire due loop indipenden-temente e, in ambienti multiprocessore o hyperthreaded,anche simultaneamente.

ESEMPIO DI ESECUZIONE PARALLELA NELLA RICERCA DI NUMERI PRIMIL’esempio seguente (fig. 2) calcola i numeri primi maggio-ri di due.Lo schema a blocchi valuta tutti i numeri dispari fra tre eLimit e determina se sono primi. Il Ciclo For interno resti-tuisce TRUE se qualche numero divide il termine con restozero.Il Ciclo For interno è gravoso in termini computazionaliperché non include alcun I/O o funzione di attesa.L’architettura di questo VI impedisce a LabVIEW di sfrutta-re i benefici del funzionamento parallelo, perché esiste un

ordine obbligato nell’esecuzione di ogni operazione. Taleordine è forzato dal flusso di dati e non esistono altri pos-sibili ordini di esecuzione, perché ogni operazione deveattendere tutti i suoi ingessi per essere eseguita.Si possono comunque apportare delle modifiche al VI.L’esecuzione parallela richiede che nessuna iterazione delciclo debba dipendere da altre iterazioni. Se si soddisfaquesta condizione, si possono distribuire le iterazioni delciclo fra due cicli. Tuttavia, un vincolo di LabVIEW è chenessuna iterazione di un ciclo può iniziare prima che l’ite-razione precedente sia finita. Si può dividere il processo indue cicli dopo avere determinato che questo vincolo non ènecessario.Nella figura seguente (fig. 3), l’esempio di ricerca paralle-la dei numeri primi divide il processo in due cicli. Il ciclosuperiore valuta metà dei numeri dispari e quello inferiorel’altra metà.Su un computer multiprocessore, la versione parallelarisulta più efficiente, perché LabVIEW può eseguire simul-taneamente il codice dei due cicli.Notate che i VI di questi due esempi non includono codiceper la gestione esplicita dei thread. Il paradigma di pro-grammazione a flusso di dati di LabVIEW permette alsistema di eseguire i due cicli in thread differenti. In moltilinguaggi di programmazione testuali è necessario crearee gestire esplicitamente i thread.

Fig. 2

02T I P S & T E C H N I Q U E S

Fig. 1

Page 10: labviewworld-02

10

02T I P S & T E C H N I Q U E S

IL MODELLO DI THREADING DI LABVIEWLa prima versione multithreaded di LabVIEW è stataLabVIEW 5.0. LabVIEW 5.0 separava il thread dell’inter-faccia utente dai thread di esecuzione. Gli schemi a bloc-chi venivano eseguiti in uno o più thread e i pannelli fron-tali erano aggiornati in un altro thread. Il sistema operati-vo lavorava in multitasking preemptive, garantendo iltempo processore al thread di esecuzione, quindi al threaddell’interfaccia utente, e così via.Prima di LabVIEW 7.0, LabVIEW allocava di default unsolo thread per ogni singolo sistema di esecuzione e valo-re di priorità; ciò voleva dire che tutte le attività in tutti iVI appertenenti a quel sistema di esecuzione dovevanoattendere insieme. LabVIEW 7.0 ha aumentato a quattro ilnumero di default dei thread allocati per ogni singolosistema di esecuzione e valore di priorità; quindi, se unthread esegue un’istruzione che provoca un’attesa, l’ese-cuzione delle altre sezioni del diagramma a blocchi puòproseguire.Oltre al multitasking preemptive del sistema operativo,LabVIEW si serve di una forma di multitasking cooperati-vo. Durante la compilazione, LabVIEW analizza i VI allaricerca dei gruppi di nodi che si possono eseguire insiemenei cosiddetti clump. Ogni combinazione di sistemi di ese-cuzione e livelli di priorità ha una struttura dati basata suuna coda di run che contiene i clump eseguibili insieme.Quando il sistema operativo attiva un thread, esso recu-pera ed esegue un clump dalla coda di run. Quando ilsistema operativo termina l’esecuzione, esso memorizzanella coda di run altri clump che soddisfano le condizionidi input, permettendo l’esecuzione del diagramma a bloc-chi in uno qualsiasi dei quattro thread di esecuzione dis-ponibili.Se lo schema a blocchi include un sufficiente grado diparallelismo, può essere eseguito simultaneamente in tuttii quattro thread.LabVIEW non assegna permanentemente clump di codicea un particolare thread. LabVIEW può eseguire infatti unclump usando un thread differente la prossima volta che siesegue il VI.

ESEMPIO DEI NUMERI PRIMI IN C++Il seguente esempio di codice descrive comescrivere un programma multithreaded in unlinguaggio di programmazione testuale, riscri-vendo in C++ l’esempio di esecuzione paral-lela nella ricerca di numeri primi visto in pre-cedenza. L’esempio mostra il tipo di sforzorichiesto per scrivere il codice di gestione deithread e illustra la programmazione specialenecessaria per proteggere i dati condivisi daithread.Il codice d’esempio seguente è stato scritto etestato in Microsoft Visual C++ 6.0. La ver-

sione basata su un singolo thread, che sfrutta gli stessialgoritmi del precedente esempio scritto in LabVIEW, sipresenterebbe così:

// Versione Single-threaded.

void __cdecl CalculatePrimes(int numTerms) {bool *resultArray = new bool[numTerms/2];for (int i=0; i<numTerms/2; ++i) {int primeToTest = i*2+3; // Start with 3, then add 2 eachiteration.bool isPrime = true;for (int j=2; j<=sqrt(primeToTest); ++j) {if (primeToTest % j == 0) {isPrime = false;break;}}resultArray[i] = isPrime;}ReportResultsCallback(numTerms, resultArray);delete [] resultArray;}

Non esiste alcun parallelismo in questa versione a threadsingolo del codice, che utilizzerebbe così il 100 per centodi un solo processore virtuale senza coinvolgere l’altro. Permuoversi nella direzione di una logica parallela di funzio-namento, l’applicazione deve promuovere thread addizio-nali e distribuire il lavoro.Il codice seguente è l’esempio di una versione multithrea-ded preliminare dello stesso esempio:

struct ThreadInfo {int numTerms;bool done;bool *resultArray;};static void __cdecl CalculatePrimesThread1(void*);static void __cdecl CalculatePrimesThread2(void*);

Fig. 3

Page 11: labviewworld-02

11

T I P S & T E C H N I Q U E S

void __cdecl CalculatePrimesMultiThreaded(intnumTerms) {

// Inizializza l’informazione da passare ai thread.

ThreadInfo threadInfo1, threadInfo2;threadInfo1.done = threadInfo2.done = false;threadInfo1.numTerms = threadInfo2.numTerms =numTerms;threadInfo1.resultArray = threadInfo2.resultArray =NULL;

// Inizia due thread

_beginthread(CalculatePrimesThread1,NULL,&threadInfo1);_beginthread(CalculatePrimesThread2,NULL,&threadInfo2);

// Attende che i thread finiscano l’esecuzione.

while (!threadInfo1.done || !threadInfo2.done)Sleep(5);

// Colleziona i risultati.

bool *resultArray = new bool[numTerms/2];for (int i=0; i<numTerms/4; ++i) {resultArray[2*i] = threadInfo1.resultArray[i];resultArray[2*i+1] = threadInfo2.resultArray[i];}ReportResultsCallback(numTerms, resultArray);delete [] resultArray;}static void __cdecl CalculatePrimesThread1(void *ptr) {ThreadInfo* tiPtr = (ThreadInfo*)ptr;tiPtr->resultArray = new bool[tiPtr->numTerms/4];for (int i=0; i<tiPtr->numTerms/4; ++i) {int primeToTest = (i+1)*4+1;bool isPrime = true;for (int j=2; j<=sqrt(primeToTest); ++j) {if (primeToTest % j == 0) {isPrime = false;break;}}tiPtr->resultArray[i] = isPrime;}tiPtr->done=true;}static void __cdecl CalculatePrimesThread2(void *ptr) {ThreadInfo* tiPtr = (ThreadInfo*)ptr;tiPtr->resultArray = new bool[tiPtr->numTerms/4];

for (int i=0; i<tiPtr->numTerms/4; ++i) {int primeToTest = (i+1)*4+3;bool isPrime = true;for (int j=2; j<=sqrt(primeToTest); ++j) {if (primeToTest % j == 0) {isPrime = false;break;}}tiPtr->resultArray[i] = isPrime;}tiPtr->done=true;}

In questo esempio, la funzione CalculatePrimesMulti-Threaded() crea due thread usando la funzione _beginth-read(). Il primo thread richiama la funzione Calculate-PrimesThread1(), che testa metà dei numeri dispari. Ilsecondo thread richiama la funzione CalculatePrimes-Thread2 e testa l’altra metà dei numeri dispari. Il threadoriginale, che esegue ancora la funzione CalculatePrimes-MultiThreaded(), deve attendere che i due thread in ese-cuzione finiscano, creando la struttura dati ThreadInfo perogni thread e passandola alla funzione _beginthread().Quando l’esecuzione di un thread finisce, viene scritto truein ThreadInfo::done.Il thread originale deve interrogare continuamenteThreadInfo::done finché il thread originale legge un valoretrue per ogni thread di calcolo. A quel punto il thread ori-ginale può accedere con sicurezza ai risultati del calcolo. Ilprogramma colleziona quindi i valori in un singolo array, inmodo che siano identici all’output della versione a singo-lo thread di questo esempio.Nota: il passo precedente non è mostrato nell’esempioLabVIEW, ma farlo è banale.Quando si scrive codice multithreading in un linguaggio diprogrammazione testuale come il C++, è necessario pro-teggere le locazioni dei dati a cui più thread possono acce-dere. Se non si proteggono le locazioni dei dati, le conse-guenze sono imprevedibili e spesso difficili da riprodurre elocalizzare. In ogni caso in cui l’assegnazione di tiPtr->done a true non sia atomica, è necessario usare unmutex per proteggere l’assegnazione e l’accesso.È possibile migliorare ancora l’esempio precedente. In par-ticolare, non vi è ragione per iniziare due thread addizio-nali e lasciarne uno inattivo. Poiché questo esempio con-tiene codice per un computer con due processori virtuali,è possibile iniziare un thread addizionale ed usare quellooriginale per eseguire metà dei calcoli. Inoltre, è possibilepassare entrambi i thread attraverso la stessa funzioneanziché scrivere due volte quella che, fondamentalmente,è la stessa funzione. È necessario passare un parametroaddizionale alla funzione per indicare in quale thread può

Page 12: labviewworld-02

12

02T I P S & T E C H N I Q U E S

essere eseguita. Nota: si può eseguire la stessa ottimizza-zione nell’esempio scitto in LabVIEW creando un subVIrientrante che contiene il Ciclo For. Il VI chiamante dovràavere due istanze del subVI invece di due Cicli For.

Il codice segunte rappresenta un’applicazione multithrea-ded più efficiente:struct ThreadInfo2 {int threadNum;int numTerms;bool done;bool *resultArray;};static void __cdecl CalculatePrimesThread(void*);void __cdecl CalculatePrimesMultiThreadedSingleFunc(intnumTerms) {

// Inizializza le informazioni da passare ai thread.

ThreadInfo2 threadInfo1, threadInfo2;threadInfo1.done = threadInfo2.done = false;threadInfo1.numTerms = threadInfo2.numTerms =numTerms;threadInfo1.resultArray = threadInfo2.resultArray =NULL;threadInfo1.threadNum = 1;threadInfo2.threadNum = 2;

// Inizia un thread

_beginthread(CalculatePrimesThread, NULL,&threadInfo1);

// Usa il thread per l’altro ramo invece di lanciare unaltro thread.

CalculatePrimesThread(&threadInfo2);

// Questo thread potrebbe finire per primo. In questocaso, aspetta l’altro.

while (!threadInfo1.done)Sleep(5);

// Colleziona i risultati.

bool *resultArray = new bool[numTerms/2];for (int i=0; i<numTerms/4; ++i) {resultArray[2*i] = threadInfo1.resultArray[i];resultArray[2*i+1] = threadInfo2.resultArray[i];}ReportResultsCallback(numTerms, resultArray);delete [] resultArray;

}static void __cdecl CalculatePrimesThread(void *ptr) {ThreadInfo2* tiPtr = (ThreadInfo2*)ptr;int offset = (tiPtr->threadNum==1) ? 1 : 3;tiPtr->resultArray = new bool[tiPtr->numTerms/4];for (int i=0; i<tiPtr->numTerms/4; ++i) {int primeToTest = (i+1)*4+offset;bool isPrime = true;for (int j=2; j<=sqrt(primeToTest); ++j) {if (primeToTest % j == 0) {isPrime = false;break;}}tiPtr->resultArray[i] = isPrime;}tiPtr->done=true;}

Questa versione del programma è più efficiente perché sipossono attivare meno thread e aspettare meno tempo inattesa che i thread operativi completino il lavoro. Inoltre,poiché il codice esegue il calcolo all’interno di una singo-la funzione, c’è meno codice duplicato, cosa che rendel’applicazione più facile da mantenere. Tuttavia, unagrossa parte del codice esegue la gestione dei thread,cosa che è intrinsecamente insicura e difficile da testare edebuggare.

UN ESEMPIO PIÙ COMPLESSO IN LABVIEWL’esempio di gestione parallela nella ricerca di numeriprimi è un semplice esempio che dimostra molti dei con-cetti coinvolti nel multiprocessing. La maggior parte delleapplicazioni reali non è così semplice. Anche se fossenecessario scrivere un generatore di numeri primi, l’algo-ritmo utilizzato negli esempi presenti in questo articolonon rappresenterebbe un metodo efficiente.Questo paragrafo descrive un altro algoritmo impegnativodal punto di vista computazionale che può trarre vantag-gio dal sistema di esecuzione multithreaded di LabVIEW.Lo schema a blocchi in fig. 4 calcola pi greco con il nume-ro di cifre decimali specificato.

Fig. 4

Page 13: labviewworld-02

13

T I P S & T E C H N I Q U E S

I fili rosa sono cluster che servono come valori numerici aprecisione arbitraria. Se desiderate calcolare pi greco finoa 1000 cifre decimali, non è più sufficiente un valore in vir-gola mobile, a precisione estesa. I nodi che assomiglianoa funzioni di LabVIEW ma che operano sui cluster sono VIche eseguono calcoli sui numeri a precisione arbitraria.Anche questo VI risulta impegnativo da un punto di vistacomputazionale. Esso calcola pi greco in base alla formu-la di fig. 5.

Data la complessità numerica di questa equazione, sareb-be difficile, nella maggior parte dei linguaggi di program-mazione testuali, scrivere un programma che utilizzientrambi i processori logici su un computer hyperthrea-ded. LabVIEW, invece, può analizzare la precedente equa-zione e riconoscerla come un’opportunità per il multipro-cessing.Quando LabVIEW analizza lo schema a blocchi di fig. 6,identifica il parallelismo intrinseco. Notate che non esistealcuna dipendenza nel flusso di dati fra le parti evidenzia-te in rosso e quelle in verde.A prima vista, sembra che in questo schema a blocchi siapresente un basso livello di parallelismo. Sembra infattiche solo due operazioni possano essere eseguite in paral-lelo con il resto del VI, e tali due operazioni sono eseguiteuna sola volta. In effetti, la radice quadrata richiede

tempo, e questo VI dedica circa metà del tempo di esecu-zione totale ad eseguire l’operazione radice quadrata inparallelo con il Ciclo For. Se dividete il VI in due cicli noncorrelati, LabVIEW può riconoscere la possibilità di gestirei thread in parallelo usando entrambi i processori logici,con un elevato guadagno in termini di prestazioni. Questasoluzione funziona su un computer hyperthreaded comesu un computer multiprocessore.È difficile analizzare un’applicazione per identificare ilparallelismo. Se scrivete un’applicazione in un linguaggiodi programmazione testuale come il C++, dovete identifi-

care le opportunità di esecuzione parallela e creare edeseguire esplicitamente i thread per sfruttare le potenzia-lità dei computer hyperthreaded. Il vantaggio di usareLabVIEW è che in molti casi, come nel nostro esempio,LabVIEW identifica automaticamente le opportunità diesecuzione parallela e permette di utilizzare entrambi iprocessori logici. In certe applicazioni, è vantaggioso usareun algoritmo che crei opportunità di esecuzione parallela,in modo da poter tratte vantaggio dalle capacità di mul-tithreading offerte da LabVIEW.

La tabella seguente riporta il tempo impiegato dal VI percalcolare pi greco con 1500 cifre decimali senza alcunaforma di ottimizzazione delle prestazioni:

Hyperthreading: 27,9 sSenza hyperthreading: 25,3 s

Notate che il computer hyperthreaded risulta più lento.Poiché i due processori logici di un computer hyperthrea-ded condividono una cache, è più facile sovraccaricare lelinee della cache e provocare problemi.LabVIEW memorizza le informazioni necessarie per ildebugging in un’area di memoria a cui tutti i thread diesecuzione devono accedere, sia in scrittura che in lettura.In alcune situazioni, i thread sono eseguiti simultanea-mente su processori logici differenti, e un thread deve leg-gere le informazioni di debug mentre l’altro thread vi staaccedendo in scrittura.Se due thread eseguono operazioni sulla stessa linea dicache in un computer hyperthreaded, la perdita di presta-zioni può essere sostanziale.Potete migliorare le prestazioni del VI disabilitando ildebugging. Potete disabilitare il debugging per una partedel VI critica per le prestazioni e quindi riabilitarlo se dove-te debuggare quella parte del VI.La tabella seguente riporta il tempo di esecuzione richie-sto dal VI per calcolare pi greco con 1500 cifre decimalidopo avere disabilitato il debugging per l’intero VI:

Hyperthreading: 21,6 sSenza hyperthreading: 21,5 s

Notate che il computer hyperthreaded ha quasi le stesseprestazioni del computer senza hyperthreading. La suddi-visione del carico di lavoro non sembra migliorare le pre-stazioni, anche se LabVIEW lavora in parallelo.

La tabella seguente riporta le prestazioni dell’esempio diesecuzione parallela nella ricerca di numeri primi inLabVIEW. Il VI ha trovato tutti i numeri primi nei primi400.000 numeri naturali su un computer Windows XP conPentium 4 a 3,06 GHz.

Fig. 6

Fig. 5

Page 14: labviewworld-02

14

02T I P S & T E C H N I Q U E S

Hyperthreading senza debugging: 1,97 sHyperthreading con debugging: 10,47 s

La differenza con il debugging abilitato è significativa, matale differenza si verifica solo quando le due sezioni paral-lele vengono eseguite nello stesso VI. Se scriveste l’appli-cazione con più di un VI o se il VI fosse abbastanza com-plesso da gestire la maggior parte delle informazioni didebugging di sezioni distinte in diverse linee della cache,la differenza con il debugging abilitato non sarebbe cosìsignificativa.

Un’altra ottimizzazione che può migliorare le prestazionisu un computer hyperthreaded è quella di rendere rien-tranti alcuni subVI.Diversi thread possono chiamare simul-taneamente lo stesso subVI se questo è rientrante.È importante capire come lavora l’esecuzione rientrantenel sistema di esecuzione di LabVIEW quando si ottimizza

un VI per un computer multiprocessore o hyperthreaded.Marcare erroneamente un VI come rientrante può provo-care inutili ritardi, specialmente in un ambiente multipro-cessore. Per determinare quali subVI possono essere rien-tranti, trovate i VI richiamati da entrambi i rami dell’esecu-zione parallela. La fig. 7 mostra la gerarchia del VI: la fun-zione Square Root e il Ciclo For operano in parallelo.Il VI di livello superiore richiama le funzioni Square Root,Add e Multiply e i VI Multiply Scalar e Divide Scalar in unCiclo For. Queste sono due parti ideali da rendere rien-tranti, perché LabVIEW richiama queste parti da threaddifferenti.La tabella seguente riporta il tempo di esecuzione richie-sto dal VI per calcolare pi greco con 1500 cifre decimalidopo avere marcato come rientranti le funzioni Add eMultiply e i VI Multiply Scalar e Divide Scalar:

Hyperthreading: 20,5 sSenza hyperthreading: 21,9 s

Marcare come rientranti i VI rende l’esecuzione dei VI leg-germente più veloce sul computer hyperthreading.Il tempo di esecuzione per il computer senza hyperthrea-ding era leggermente più lento dopo avere reso rientranti

i quattro VI, perché LabVIEW crea uno spazio dati addizio-nale quando richiama VI rientranti.

Potete continuare ad ottimizzare un’applicazione usandoil VI Profiler e poi definire che qualche VI venga eseguitocon priorità di subroutine. Potete inoltre marcare più VIcome rientranti. La tabella seguente riporta il tempo diesecuzione richiesto dal VI per calcolare pi greco con 1500cifre decimali dopo diverse azioni di ottimizzazione:

Hyperthreading: 18,0 sSenza hyperthreading: 20,4 s

Questi risultati indicano un miglioramento di prestazionidel 10 percento sul computer hyperthreaded. Notate chenon è necessario modificare il codice del VI per otteneretale miglioramento. Dovete semplicemente disabilitare ildebugging, rendere rientranti alcuni VI ed eseguire alcuniVI con priorità di subroutine. Complessivamente, questemodifiche permettono di ottenere un miglioramento diprestazioni pari circa al 35 percento su un computerhyperthreaded.

LABVIEW OTTIMIZZATO PER LAVORARE SU COMPUTER HYPERTHREADEDGià dalla versione 7.1 LabVIEW è stato ottimizzato percondividere la cache fra i due processori logici di un com-puter hyperthreaded. Quando è stato introdotto l’hyperth-reading, è stato necessario apportare modifiche opportunealle applicazioni multithreaded, incluso LabVIEW, per sfrut-tare il nuovo potenziale offerto in termini di prestazioni.

La tabella seguente riporta i risultati in secondi di esecu-zione dell’esempio di parallelismo sui numeri primi.Il VI ha trovato tutti i numeri primi nei primi 400.000 nu-meri naturali su un computer Windows XP con Pentium 4a 3,06 GHz.

Versione Hyperthreading Senza hyperthreadingLabVIEW 7.0 6,77 3,39LabVIEW 7.1 1,91 3,40

Tutti i benchmark di prestazioni nella parte precedentesono stati testati su computer Windows, ma anche i siste-mi Linux possono essere eseguiti su computer hyperthrea-ded. I test dimostrano che LabVIEW 7.1 supera in presta-zioni le precedenti versioni di LabVIEW su sistemi Linuxmultiprocessore su computer hyperthreaded.

Read

erse

rvic

e.it

204

Note sull’autoreKamran Shah, Group Manager, LabVIEW Product Marketing,National Instruments

Fig. 7

Page 15: labviewworld-02

15

02T I P S & T E C H N I Q U E S

LABVIEW PER LA MISURA E L’ANALISIDEI DATI

Bre

tt B

urge

r

Vediamo qual i sono le funzional i tà che rendono LabVIE W i l tool ideale per l ’anal is i dei dat i e del le misure

M igliaia di tecnici e ricercatori si basano su LabVIEWper una varietà di applicazioni: test e misura, con-trollo di processo e automazione, monitoraggio e

simulazione. LabVIEW è l’ambiente di riferimento grazie allesue ineguagliabili caratteristiche di connettività a strumen-ti, le potenti capacità di acquisizione dati, l’interfaccia gra-fica di programmazione basata sul flusso di dati, la scalabi-lità e la completezza funzionale generale. Un’esigenza chepersiste indipendentemente dall’area di competenza è il fat-to che gli utenti devono manipolare dati e misure e prende-re decisioni di conseguenza.

INTRODUZIONEGli utenti spesso interagiscono nelle prime fasi del loro lavo-ro direttamente con dei processi fisici e acquisiscono dati inun’applicazione. Per estrarre informazioni utili da tali dati,prendere decisioni sul processo ed ottenere risultati, i datidevono essere manipolati ed analizzati. Purtroppo, combi-nare l’analisi con l’acquisizione dati e la presentazione deidati stessi non è sempre un processo immediato.

I pacchetti software applicativi tipicamente prendono inesame un componente dell’applicazione, ma raramente risol-vono tutti gli aspetti necessari per ottenere una soluzionecompleta. LabVIEW è stato progettato per soddisfare i requi-siti di una soluzione completamente integrata, seguendotutte le fasi del processo di sviluppo in un singolo ambiente.Benché esistano molti tool che affrontano indipendente-mente ciascun requisito, solo LabVIEW li combina tutti conla potenza della programmazione grafica e hardware avan-zato di acquisizione dati, utilizzando la potenza di un PC. Èla combinazione di acquisizione dati, analisi dei dati e pre-sentazione dei risultati che rende veramente massima lapotenza della Strumentazione Virtuale. Uno strumento vir-tuale consiste di un computer o una workstation standardequipaggiati con potente software applicativo, hardwareconveniente, tipo schede plug-in, e relativi driver, che insie-me eseguono le funzioni di strumenti tradizionali. È per que-sto che si fa riferimento alle applicazioni e ai programmicostruiti con LabVIEW come a VI (strumenti virtuali).Come strumento orientato alla soluzione di problemi inge-

Page 16: labviewworld-02

16

02T I P S & T E C H N I Q U E S

gneristici, LabVIEW mette a disposizione centinaia di fun-zioni di analisi da integrare in applicazioni dedicate all’ese-cuzione di misure intelligenti.

SCEGLIERE IL METODO DI ANALISI CORRETTOGli utenti integrano l’analisi nelle loro applicazioni in varimodi. Vi sono alcune considerazioni che aiutano a determi-nare il modo in cui si dovrebbe eseguire l’analisi.L’analisi inline implica che i dati vengano analizzati nell’am-bito della stessa applicazione in cui sono acquisiti. Ciò avvie-ne generalmente quando si tratta di applicazioni in cui ènecessario prendere decisioni durante l’esecuzione e i risulta-ti hanno dirette conseguenze sul processo, tipicamente attra-verso la modifica di parametri o l’esecuzione di azioni. Èquanto avviene tipicamente nelle applicazioni di controllo.Quando si parla di analisi inline, è importante considerare laquantità di dati acquisiti e le particolari routine di analisi chesono eseguite sui dati stessi. È necessario trovare un correttoequilibrio, perché l’elaborazione richiesta può diventare gra-vosa avere effetti negativi sulle prestazioni dell’applicazione.Altri esempi di analisi inline sono le applicazioni dove iparametri della misura devono essere adattati alle caratteri-stiche del segnale misurato. Un caso è quello in cui è neces-sario registrare uno o più segnali, ed essi cambiano moltolentamente tranne che per improvvisi periodi di attività adalta velocità. Per ridurre la quantità di dati registrati, l’ap-plicazione dovrebbe riconoscere rapidamente la necessità diuna frequenza di campionamento più elevata e ridurlaquando il periodo di burst è terminato. Misurando e analiz-zando certi aspetti dei segnali, l’applicazione può adattarsialle circostanze e abilitare i parametri di esecuzione appro-priati. Benché questo sia solo un esempio, vi sono migliaiadi applicazioni dove è richiesto un certo grado di intelligen-za – la capacità di prendere decisioni sulla base di variecondizioni – e di adattabilità, che può essere ottenuto soloaggiungendo algoritmi di analisi all’applicazione.Le decisioni basate sui dati acquisiti non sono sempre presein modo automatizzato. Molto spesso, coloro che lavorano sulprocesso devono monitorare l’esecuzione e stabilire se le pre-stazioni sono quelle previste o se è necessario regolare una opiù variabili. Anche se non è raro che gli utenti registrino idati, li estraggano da un file o un database e li analizzinooffline per modificare il processo, molte volte i cambiamentidevono avvenire durante l’esecuzione. In questi casi, l’appli-cazione deve gestire i dati provenienti dal processo e quindimanipolare, semplificare, formattare e presentare i dati nelmodo più utile per l’utente. Gli utenti LabVIEW possono quin-di trarre vantaggio dai suoi numerosi oggetti di visualizzazio-ne per presentare i dati in modo efficiente.LabVIEW offre routine di analisi e matematiche che lavora-no nativamente con le funzioni di acquisizione dati e le pos-sibili opzioni di visualizzazione, pertanto è possibile incor-porarle facilmente in qualsiasi applicazione. Inoltre,

LabVIEW offre routine di analisi per l’esecuzione punto apunto, progettate specificamente per rispondere alle esi-genze dell’analisi inline nelle applicazioni real-time. Perdecidere se le routine punto a punto sono appropriate, ènecessario considerare alcuni aspetti.L’analisi punto a punto è essenziale quando si devono con-trollare processi nei quali sia presente un’acquisizione datipunto a punto ad alta velocità e deterministica. Ogni voltache le risorse sono dedicate all’acquisizione dati real-time, l’a-nalisi punto a punto diventa necessaria, perché le velocità diacquisizione e i loop di controllo aumentano di ordini digrandezza. L’approccio punto a punto semplifica il processodi progettazione, implementazione e collaudo, perché il flus-so dell’applicazione segue da vicino il flusso naturale dei pro-cessi reali che l’applicazione deve monitorare e controllare.L’acquisizione dati e l’analisi real-time continuano a richie-dere applicazioni sempre più semplici e stabili. L’analisipunto a punto è semplice e stabile, perché si collega diret-tamente al processo di acquisizione e analisi, avvicinandosial grado di controllo ottenibile in chip FPGA (field program-mable gate array), chip DSP, controller embedded, CPUdedicate e Asic.Aggiungendo questi potenti algoritmi e routine nelle appli-cazioni, si possono creare processi intelligenti e analizzare irisultati durante l’esecuzione, migliorando l’efficienza e cor-relando iterativamente le variabili d’ingresso alle prestazio-ni sperimentali o di processo.Le applicazioni offline non hanno tipicamente l’esigenza diottenere risultati in modalità real-time per prendere decisio-ni direttamente sul processo. Le applicazioni di analisi offli-ne richiedono solo la disponibilità di sufficienti risorse com-putazionali. L’intento principale di tali applicazioni è identi-ficare cause ed effetti delle variazioni delle variabili di pro-cesso, correlando set multipli di dati. Queste applicazionigeneralmente richiedono di importare dati da file custombinari o in formato Ascii e da database commerciali comeOracle, Access e altri database di tipo QL/ODBC. Quando idati sono stati importati in LabVIEW, gli utenti possono ese-guire anche centinaia delle routine di analisi disponibili,manipolare i dati e organizzarli in uno specifico formato perla creazione di report. LabVIEW offre funzioni per accederea qualsiasi tipo di formato di file e database, collegandosi apotenti tool di reportistica come NI DIAdem e il ReportGeneration Toolkit per Microsoft Office, ed eseguire le tec-nologie più recenti di condivisione dei dati come XML, lepresentazioni su Web e ActiveX.

ANALISI PROGRAMMATICA E INTERATTIVACome utenti LabVIEW, tecnici e ricercatori hanno grandefamiliarità con i vari modi con cui possono acquisire dati dacentinaia di dispositivi. Essi possono integrare intelligenzanelle loro applicazioni per eseguire analisi inline e presen-tare i risultati mentre le applicazioni sono in esecuzione.

Page 17: labviewworld-02

17

T I P S & T E C H N I Q U E S

Tipicamente, agli utenti non basta acquisire dati ed elabo-rarli per una semplice visualizzazione, ma hanno la necessi-tà di memorizzare centinaia o migliaia di megabyte di datisu hard drive e database. Dopo una sola esecuzione omagari centinaia di esse, gli utenti procedono con l’estra-zione di informazioni per prendere decisioni, confrontare irisultati ed eseguire le appropriate modifiche al processo,fino a conseguire i risultati desiderati.È relativamente facile acquisire quantità di dati talmentegrandi da diventare rapidamente ingestibili. Infatti, con unascheda DAQ veloce e un numero sufficiente di canali, pos-sono essere necessari pochi millisecondi per acquisiremigliaia di valori. Non è un compito banale trovare un sensoin tutti quei dati. Normalmente gli utenti devono presenta-re report, creare grafici e in ultima analisi sostenere qual-siasi valutazione e conclusione con dati empirici. Senza itool corretti, questo può diventare facilmente un compitoassai arduo, che si traduce in una perdita di produttività.Per semplificare il processo di analisi delle misure, i pro-grammatori LabVIEW creano applicazioni interattive cheoffrono interfacce utilizzabili da altri utenti affinché, sullabase dei loro input specifici, vengano eseguite routine dianalisi dedicate su qualsiasi set di dati disponibile. Perchéciò sia efficiente, il programmatore deve conoscere detta-gliatamente le informazioni e il tipo di analisi a cui l’utenteè interessato. Con LabVIEW, gli utenti possono selezionaree formattare i dati prima di memorizzarli su disco, facilitan-do le successive fasi di accesso e gestione dei dati memo-rizzati per condurre ulteriori analisi. National Instrumentsoffre tool addizionali, altamente integrati in LabVIEW, pro-gettati per migliorare lo sviluppo di applicazioni ingegneri-stiche gestite da team di sviluppatori. Un esempio vieneofferto da NI DIAdem, un tool che mette a disposizione unambiente facile e intuitivo per condurre analisi interattivepost-acquisizione e la generazione di report, con potenticapacità di gestione di dati tecnici. Per maggiori informa-zioni su DIAdem, visitate ni.com/diadem.

QUALI TOOL DI ANALISI SONO DISPONIBILI IN LABVIEW?LabVIEW offre centinaia di funzioni di analisi integrate checoprono diverse aree e metodi di estrazione delle informa-zioni dai dati acquisiti. È possibile utilizzare tali funzioni cosìcome sono o modificarle, personalizzarle ed estenderle peradattarle a una particolare esigenza. Dette funzioni sonocategorizzate nei seguenti gruppi: Misura, Elaborazione deiSegnali, Matematica, Elaborazione delle Immagini,Controllo, Simulazione ed Aree Applicative.LabVIEW include già un potente set di tool per l’analisi.Questi tool comprendono un set incorporato di librerie e fun-zioni progettati specificamente per l’analisi, con il quale gliutenti possono affrontare un’ampia gamma di applicazioni.I tool di analisi di LabVIEW coprono un’ampia gamma di appli-

cazioni. Le funzioni di analisi avanzate possono misurarecaratteristiche del segnale come distorsione armonica totale,risposta all’impulso, risposta in frequenza e spettri di potenza.Tecnici e ricercatori possono altresì incorporare analisimatematica o numerica nelle loro applicazioni per scopicome la risoluzione di equazioni differenziali, l’ottimizzazio-ne, la ricerca di radici e altri problemi matematici.Nonostante gli utenti possano sviluppare da soli queste fun-zioni, le funzioni integrate permettono di concentrarsi sullarapida risoluzione del problema, anziché sui tool. Il vantag-gio di utilizzare queste funzioni elimina inoltre la necessitàdi comprendere la teoria sottostante, come invece sarebberichiesto per costruire tali algoritmi.

TOOL ADDIZIONALI PER L’ANALISIOltre che sulle librerie di analisi incorporate, gli utenti pos-sono basarsi su toolset e moduli addizionali per ridurre iltempo di sviluppo per esigenze applicative specializzate.Incorporando i componenti dei toolset in applicazionicustom, gli utenti non avranno bisogno della particolarecompetenza normalmente associata allo sviluppo di appli-cazioni più verticali, come l’elaborazione avanzata di segna-li digitali, le misure di suono e vibrazioni, l’analisi degli ordi-ni, l’elaborazione delle immagini, il controllo PID e la simu-lazione.Elaborazione avanzata dei segnaliIl Toolset di Elaborazione dei Segnali offre funzioni proget-tate specificamente per l’elaborazione avanzata di segnalidigitali (DSP). Le funzioni incluse sono divise in tre catego-rie: Analisi Congiunta Tempo-Frequenza, Analisi Wavelet eAnalisi Spettrale ad altissima risoluzione. Inoltre, il toolsetoffre uno strumento grafico con cui gli utenti possono pro-gettare interattivamente filtri digitali.Analisi Congiunta Tempo-FrequenzaA differenza delle tecnologie di analisi convenzionali, le rou-tine JTFA (joint time-frequency analysis) esaminano i segna-li simultaneamente nei domini del tempo e della frequenza.La JTFA può essere applicata in quasi tutte le applicazionidove si usa la FFT, come segnali biomedicali, elaborazione diimmagini radar, analisi delle vibrazioni, collaudo di macchi-ne ed analisi di segnali dinamici. Con la JTFA, tuttavia, siottengono più informazioni analizzando simultaneamenteentrambi i domini.Come la classica analisi di Fourier, la JTFA consiste di duemetodi principali - lineare e quadratico. Gli algoritmi lineariincludono la trasformata di Fourier a tempo breve (STFT) el’espansione di Gabor (trasformata inversa di Fourier atempo breve). Gli utenti di LabVIEW possono sfruttare que-ste trasformate lineari per trasferire un segnale dal dominiodel tempo al dominio congiunto tempo-frequenza e vice-versa. Queste routine sono estremamente potenti per scopidi riduzione del rumore. I metodi quadratici comprendono lospettrogramma adattativo, la distribuzione di Choi-

Page 18: labviewworld-02

18

02T I P S & T E C H N I Q U E S

Williams, la distribuzione conica, lo spettrogramma basatosull’espansione di Gabor (noto anche come spettrogrammadi Gabor), lo spettrogramma basato su STFT e la distribu-zione di Wigner-Ville. Gli utenti possono applicare le tra-sformate quadratiche per vedere facilmente come lo spettrodi potenza di un segnale evolve nel tempo.WaveletLe wavelet sono un metodo di elaborazione dei segnali rela-tivamente nuovo. Una trasformata wavelet è quasi sempreimplementata come un banco di filtri che decompongonoun segnale in più bande, separando e mantenendo le carat-teristiche del segnale in una o più di queste sottobande.Pertanto, uno dei maggiori vantaggi che si ottengono usan-do la trasformata wavelet è che le caratteristiche del segna-le possono essere estratte facilmente. In molti casi, una tra-sformata wavelet supera la FFT convenzionale in termini diestrazione delle caratteristiche e riduzione del rumore,caratteristica che la rende ideale per molte applicazioni,tipo: compressione dei dati, rilevamento di eco, riconosci-mento di pattern, rilevamento di bordi, cancellazione, rico-noscimento vocale, analisi di texture e compressione diimmagini.Analisi Spettrale basata su ModelliUn tool primario per l’analisi spettrale è la TrasformataVeloce di Fourier (FFT). Per gli spettri ad alta risoluzione, imetodi basati su FFT richiedono un elevato numero di cam-pioni. Tuttavia, in molti casi, il set di dati è limitato a causadi una reale mancanza di dati o perché gli utenti devonofare in modo che le caratteristiche spettrali del segnale noncambino per la durata della registrazione dei dati. Per i casiin cui il numero di campioni di dati è limitato, gli utenti diLabVIEW possono utilizzare l’analisi basata su modelli perdeterminare le caratteristiche spettrali. Grazie a questa tec-nica, gli utenti possono ipotizzare un modello opportuno delsegnale e determinare i coefficienti del modello. Sulla basedi tale modello, l’applicazione può predire i punti mancantinel dato set finito di dati, in modo da ottenere spettri adalta risoluzione. Inoltre, i metodi basati su modelli possonoessere utilizzati anche per stimare ampiezza, fase, fattore dismorzamento e frequenza di sinusoidi smorzate.L’analisi spettrale ad altissima risoluzione può essere utiliz-zata in diverse applicazioni, tra le quali: ricerca biomedica-le, economia, geofisica, rumore, vibrazioni e analisi vocale.Analisi di Suoni e VibrazioniIl software di analisi NI permette molte applicazioni comunidi analisi del suono e delle vibrazioni, inclusi test audio,misure acustiche, test di rumore ambientale, analisi di vibra-zioni e misure NVH. Le capacità di analisi specializzateincludono le analisi per frazioni di ottava conformi allenorme ANSI ed IEC. Inoltre, la Sound and VibrationMeasurement Suite include numerose funzioni per misureaudio come guadagno, fase, THD, IMD, range dinamico,linearità di fase e analisi swept-sine. NI Sound and Vibration

Assistant offre un ambiente facile, interattivo, basato suconfigurazioni per analisi e registrazione dei dati.Le funzioni includono piena ottava, 1/3, 1/6, 1/12 e 1/24 diottava; frequenza di campionamento definita dall’utente;numero di bande definito dall’utente; pesatura A, B, C neldominio del tempo; conformità agli standard; media espo-nenziale (costante di tempo Lenta, Veloce e Custom); spet-tro cross-power; risposta in frequenza (H1, H2 e H3);coerenza e potenza d’uscita coerente. Inoltre, il toolset offretool di visualizzazione addizionali, come grafici a cascata, amappa di colori, bar graph a ottave e grafico lineare a otta-ve, che possono essere facilmente incorporate nei pannellifrontali delle applicazioni LabVIEW.Analisi degli OrdiniLa Sound and Vibration Measurement Suite NI offre librerieper costruire applicazioni custom di misura e automazionebasate su LabVIEW con capacità di analisi degli ordini perl’inseguimento degli ordini, l’estrazione degli ordini e l’ela-borazione di segnali tachimetrici.Con l’algoritmo di Gabor, gli utenti di LabVIEW possono ana-lizzare suono, vibrazioni e altri segnali dinamici provenienti dasistemi meccanici con componenti rotanti o in moto alterna-to. Esso consente una selezione flessibile dell’energia dell’or-dine nel dominio congiunto tempo-frequenza. I tool addizio-nali includono strumenti per graficare i singoli ordini in fun-zione del tempo o dei giri/min, strumenti di estrazione degliordini per separare dal segnale acquisito le componenti delsegnale relative ai singoli ordini e strumenti di selezione auto-matica degli ordini per trovare gli ordini più significativi.

CONCLUSIONECon la potenza e la flessibilità degli attuali computer, tecni-ci e ricercatori hanno una capacità senza precedenti dimisurare, controllare, monitorare, diagnosticare, automatiz-zare, testare e caratterizzare efficacemente qualsiasi proces-so. Ciò tuttavia non è possibile senza la capacità di osser-vare i dati ed estrarre informazioni utili.LabVIEW offre soluzioni indipendentemente dal settore odall’area d’interesse specifica del processo ingegneristico,dalla progettazione e validazione alla produzione.Inoltre, LabVIEW offre una connettività senza pari a dispo-sitivi DAQ plug-in e strumenti stand-alone per l’acquisizio-ne dati, potenti librerie, routine ed algoritmi di analisi chespaziano dalla matematica di base all’elaborazione avanza-ta dei segnali. Tali funzioni, perfettamente integrabili conaltre funzioni di LabVIEW, sfruttando le potenti capacità divisualizzazione dei dati, rendono LabVIEW il tool ideale perqualsiasi applicazione.

Read

erse

rvic

e.it

276

Note sull’autoreBrett Burger, Product Marketing Engineer, Data AcquisitionSystems, National Instruments

Page 19: labviewworld-02

19

02T I P S & T E C H N I Q U E S

LUAVIEW: LABVIEW PIÙ POTENTEGRAZIE AGLI SCRIPT LUAA

less

andr

o R

icco

Ecco LuaVIE W, un toolk i t per LabVIE W che permette d i integrare i l l inguaggio Lua nel le appl icaz ioni scr i t te in LabVIE W

L’ articolo è solo un'introduzione, l'argomento trattatoinfatti richiederebbe molto più spazio di quello adisposizione.

CHE COS'È LUA?Lua è un linguaggio di scripting nato nel 1993 al PUC-Rio(Pontifical Catholic University) di Rio de Janeiro in Brasile.Lua venne creato con lo scopo di essere un linguaggioembedded, cioè integrabile facilmente in applicazioni scrit-te nei più diversi linguaggi al fine di estenderne le funzio-nalità e le potenzialità.Le caratteristiche che rendono Lua interessante sono lasemplicità, le performance, la flessibilità e la portabilità e,non ultima, la licenza Open Source con la quale viene dis-tribuito. Nello specifico la licenza è la MIT License.Fin dalla sua nascita, Lua si è sempre evoluto diventandomolto usato nell'industria in settori come la robotica, l'i-mage processing, la bio informatica, le applicazioni distri-buite e nello sviluppo di video giochi dove ormai rappre-senta uno standard de-facto.Lua adesso è arrivato alla versione 5.1 ed ha raggiunto unnotevole grado di diffusione, di stabilità e di maturità.Esiste una grande comunità di utilizzatori Lua, molti proget-ti sono sviluppati con questo linguaggio ed esistono moltis-simi add-on per Lua che lo rendono ancora più versatile.

CHE COS'È LUAVIEW?LuaVIEW è un toolkit sviluppato da Citengineering [2], chepermette a LabVIEW di sfruttare tutte le caratteristiche diLua, potremmo definirlo un ponte tra il mondo LabVIEW equello Lua.Nello specifico ecco quello che si può fare con LuaVIEW:• Lua può chiamare funzioni implementate in LabVIEW • LabVIEW può chiamare funzioni implementate in Lua • Un numero illimitato di script può essere eseguito in

parallelo • Lua e LabVIEW possono scambiarsi dati anche in forma-

ti complessi• LuaVIEW ha supporto per Windows, Linux e MacLuaVIEW è basato sul core Lua versione 5.0 appositamen-te modificato per permettere l'interoperabilità tra Lua eLabVIEW; un insieme di VI fornisce tutte le funzioni API di

accesso al core Lua. LuaVIEW inoltre mette a disposizionediversi esempi e tool molto comodi per poter gestire le pro-prie applicazioni LabVIEW che sfruttano Lua.Da segnalare anche che LuaVIEW è ottimamente documen-tato [3], tutti i VI più importanti hanno degli help molto chia-ri e dettagliati. Consigliamo quindi di tenere il Contex Help diLabVIEW sempre aperto (Ctrl +H) mentre usate LuaVIEW.

INSTALLARE LUAVIEWL'installazione di LuaVIEW richiede una macchina consistema operativo Linux, Windows o Mac OS X e una ver-sione di LabVIEW 7.0 o superiore.L'ultima versione di LuaVIEW è la 1.2.1 per LabVIEW 8.x,chi ha LabVIEW 7.x può invece usare la 1.2.0.Procediamo con l'installazione:• scaricate la versione di LuaVIEW adatta al vostro sistema

da questo link http://www.citengineering.com/LuaVIEW/download.html

• scompattate l'archivio .zip scaricato in una cartella• dentro questa cartella troverete Install_CIN.vi; apritelo

ed eseguitelo• scegliete, dalla lista che vi apparirà, il sistema operativo

installato sulla vostra macchina• fate un MassCompile LabVIEW | Tools>Advanced>Mass

Compile della cartella contenente LuaVIEW; approfittateper farvi un caffè perché ci vorrà un po di tempo!

Adesso LuaVIEW dovrebbe essere installato e funzionante.Per esserne certi eseguite Unit Tester.vi dalla cartella diLuaVIEW. Tutti i test dovrebbero dare risultato positivo.Per rendere LuaVIEW più comodo da usare è utile aggiun-gere i VI della sua libreria alla paletta LabVIEW, per farlousate LabVIEW | Tools>Advanced>Edit Palette Views sce-gliendo poi il file menu luaview/luaview.mnu dalla cartelladi LuaVIEW.

PRIMI ESPERIMENTICome primo test proviamo a usare uno degli esempi diLuaVIEW luaview/example/Do a Script.vi; apritelo, esegui-telo e ammirate l'effetto!print("Hello world")print("The time is"..format_time(time(),"%H:%M"))

Page 20: labviewworld-02

20

02T I P S & T E C H N I Q U E S

for i=10,1,-1 doprint(i)wait(300)

endprint("Lift off!")wait(2000)dialog.one_button("Launch sequence complete", "OK")

Lo script di esempio contenuto in Do a Script.vi, pur essen-do molto semplice, mette in evidenza le potenzialità di Luae LuaVIEW. Si nota subito l'eleganza e la semplicità di Lua,la riga di codice print ("Hello world") ce ne da la misura.L'integrazione tra Lua e LabVIEW è evidente. Prendiamo dinuovo ad esempio la prima riga del codice print ("Helloworld"); notate che la funzione print è implementata inte-ramente in LabVIEW e non solo viene chiamata da unoscript Lua ma le viene anche passato un parametro stringa“Hello world”. Anche le funzioni wait e dialog.one_button sono implementate in LabVIEW come printma grazie a LuaVIEW e possibile usarle direttamente da unoscript Lua senza nessuno sforzo e in maniera automatica.Vediamo un secondo esempio tratto direttamente dal sito diLuaVIEW, sempre usando Do a Script.vi cancellate lo scriptdi esempio e scrivetene uno nuovo:

if (dialog.two_button(“Chose a language...” , “LabVIEW” , “Lua”)) thenprint(“Wire away”)else

print(“Script along”)end

Come per l'esempio precedente possiamo ammirare l'ele-ganza della sintassi e la sua semplicità, ma concentriamocisulla funzione dialog.two_button che, come quelledescritte prima, è implementata in LabVIEW.La funzione dialog.two_button non solo riceve deiparametri dallo script Lua “Chose a language...” ,“LabVIEW” , “Lua” ma ritorna allo script un risultato, inquesto caso il bottone premuto, che lo script utilizza comecondizione per la struttura if else.Con questo esempio abbiamo visto come Lua possa chia-mare delle funzioni LabVIEW passandogli dei parametri ecome queste funzioni, terminata l'esecuzione, possano ritor-nare dei risultati a Lua che li userà per elaborazioni all'in-terno dello script (fig. 1).

LUA & LABVIEW, LE API DI LUAVIEWDagli esempi mostrati sopra si capisce che l'integrazione elo scambio di dati tra Lua e LabVIEW è molto semplice eimmediato, gran parte della complessità è nascosta al pro-

grammatore da LuaVIEW, ma come funziona questo mecca-nismo?Per capirlo meglio analizziamo una delle funzioni preseprima ad esempio dialog.two_button e vediamocom'è fatta.Aprite \luaview\functions\pop-up dialogs\dialog.two_button_lua.vi contenuto nella cartel-la principale di LuaVIEW; questo vi è la funzione dia-log.two_button (fig. 2).Analizziamo il VI seguendo il data-flow; a sinistra troviamoLuaVIEW reference questo controllo porta il riferi-mento tramite il quale le API LuaVIEW possono accedere alCore di Lua. Il riferimento corretto viene gestito in automa-tico da particolari funzioni LuaVIEW in background, di cui ilprogrammatore può non preoccuparsi.I VI pull string e push boolean sono delle API diLuaVIEW, i tre pull string accedono al Core di Luaattraverso il reference e prelevano dallo stack Lua trevalori di tipo string, se ad esempio eseguiamo questo scriptLua c = dialog.two_button(“Chose a langua-ge...” , “LabVIEW” , “Lua”) i valori prelevati saran-no Chose a language... , LabVIEW e Lua. Le trestringhe prelevate dallo Stack Lua vengono usate comeparametri di ingresso dal vi ui two button (è il dialogvero e proprio implementato in LabVIEW al 100%) e rap-presentano rispettivamente il messaggio che apparirà suldialog e i testi dei due bottoni di scelta presenti sul dialog.L'uscita del vi ui two button, result di tipo boo-lean, assume il valore del bottone premuto dall'utente suldialog; questo valore viene inserito nello stack Lua usandola API push boolean.Da questo esempio si inizia ad intuire come funziona loscambio tra il mondo LabVIEW e quello Lua, LuaVIEW mettea disposizione delle API tra le quali quelle di push e quelledi pull. Usando queste API è possibile da LabVIEW acce-dere ai valori messi sullo stack (pull) da Lua usandoli

Figura 1 - Schema del l ' i teraz ione Lua - LabVIE W

Figura 2 - Codice LabVIE W del la funzione dia log.t wo_button_lua.v i

Page 21: labviewworld-02

21

T I P S & T E C H N I Q U E S

come parametri e poter inserire dei valori sullo stack Lua(push) come risultato.Ma come fa Lua, e chi programma in Lua, a sapere quali,quanti e di che tipo sono i parametri di cui una funzionecome dialog.two_button ha bisogno e che tipo dirisultato restituisce?Ogni funzione LabVIEW per essere utilizzabile da Lua deveessere stata precedentemente registrata e descritta utiliz-zando un apposito tool, Function Manager, fornito daLuaVIEW \luaview\tui_LuaVIEW Function Ma-nager.vi e presente nella cartella di installazione diLuaVIEW (fig. 3).Tramite il Function Manager è possibile gestire tutto questoin maniera semplice. Nel caso di dialog.two_button ilprototipo che descrive i parametri di ingresso e il risultatodella funzione è bool:confirmed=dialog.two_button(str:message,str:button1,str:but-ton2)Function Manager è indispensabile qualora sianecessario registrare una propria nuova funzione.Per maggiori informazioni su come utilizzare FunctionManager e per la documentazione completa delle funzionigià incluse in LuaVIEW vi rimandiamo a www.citenginee-ring.com/LuaVIEW.

POTENZIALITÀ DI LUAVIEWLabVIEW è molto potente e flessibile ed è ottimo per visua-lizzazione dati, controllo hardware e analisi matematica,Lua è semplice da usare e da modificare, molto dinamico,flessibile e molto veloce. LabVIEW ha un problema, le appli-cazioni eseguibili che crea sono molto statiche ed è difficilerenderle dinamiche e personalizzabili oltre un certo livello.Lua è un linguaggio di scripting, quindi interpretato da unavirtual machine, questo vuol dire che uno script Lua nonnecessita di essere compilato, con Lua quindi è molto piùfacile scrivere codice e modificarlo anche ad applicazioneultimata. LabVIEW è Lua possono essere complementari inquesto senso.Ci sono vari modi per integrare LabVIEW e Lua usandodiverse percentuali per il mix. Un esempio di utilizzo del mixtra LabVIEW e Lua potrebbe essere la realizzazione un'ap-

plicazione di test automatico.Immaginiamo di voler realiz-zare un'applicazione di testfunzionale per delle schedeelettroniche.L'applicazione dovrà tra lealtre cose:• testare schede diverse, quin-

di con procedure diverse• essere usata da clienti

diversi che adottano proce-dure di test differenti e avolte contrastanti.

Un'applicazione del genere creata interamente in LabVIEWsarebbe difficile da realizzare da mantenere e da sviluppa-re, dovrebbe infatti contemplare tutte le singole e particola-ri esigenze di ogni singolo cliente. Questo lavoro titanico, inogni caso non ci salverebbe da futuri cambiamenti richiestida un cliente. In quel caso, quasi sicuramente, dovremmomodificare il codice dell'applicazione creandone una diver-sa figlia e saremmo costretti ad iniziare la gestione di unprocesso di sviluppo e mantenimento separato dall'applica-zione “madre”. Utilizzando invece Lua e LuaVIEW la nostrasoftware house può fornire al cliente una applicazione ese-guibile sviluppata in LabVIEW e una serie di script Lua.L'applicazione LabVIEW si preoccuperà di lanciare gli scriptLua che implementano le procedure di test.Gli script Lua di procedura possono a loro volta chiamarefunzioni LabVIEW che in questo caso saranno i driver deivari apparati necessari all'esecuzione del test come alimen-tatori, oscilloscopi, dmm ecc.Lo schema riportato nella fig. 4 rende più chiaro questaarchitettura. Ogni cliente potrà creare o modificare i propriscript Lua sfruttando tutta la potenza di un linguaggio diprogrammazione e quindi adattando l'applicazione di testalle proprie specifiche esigenze.

CONCLUSIONISperiamo che la lettura di questo articolo introduttivo viabbia fatto venire voglia di approfondire lo studio di Lua edi LuaVIEW.

RIFERIMENTI[1] www.lua.org sito ufficiale su Lua.[2] www.citengineering.com/LuaVIEW sito del creatore diLuaVIEW.[3] http://www.citengineering.com/LuaVIEW/manual.htmlmanuale di LuaVIEW.

Read

erse

rvic

e.it

240

Note sull’autoreAlessandro Ricco (www.agilesystems.it): LabVIEW Champion & ILVG.it Administrator ([email protected])

Figura 3 - Func t ion Manager

Figura 4 - Schema del l 'appl icaz ione di test real izzatacon LuaVIE W

Page 22: labviewworld-02

Le malattie cardiovascolari rappresentano la prima cau-sa di morte nel mondo occidentale. Spesso tali patolo-gie sono silenti fino all’insorgenza di eventi acuti e

drammatici come per esempio un infarto del miocardio. LaCardiologia, grazie anche all’enorme progresso tecnico-strumentale, offre al paziente dei validi interventi quando lapatologia è clinicamente manifesta ma presenta moltelacune riguardo la prevenzione. Infatti, sarebbe auspicabileavere degli efficaci programmi di screening capaci di indivi-duare precocemente lo stato di malattia con il fine di ridur-re l’incidenza degli accidenti cardiovascolari improvvisi edtalora irreversibili. Gli sforzi profusi per raggiungere questoobiettivo hanno portato alla messa a punto di strumentidiagnostici sofisticati, costosi ed invasivi con conseguentedifficile applicazione su larga scala per una vera e diffusaprevenzione. L’elettrocardiografo, strumento poco costoso,non invasivo e di facile uso, sembra avere, attualmente,poca utilità nella prevenzione delle malattie cardiovascola-ri. Viceversa, la computerizzazione dell’ECG può consentire

una più articolata analisi del segnale per la ricerca di utiliparametri clinici che non possono essere estrapolati, da par-te del cardiologo, con la sua consueta valutazione ottica.L’obbiettivo, quindi, è quello di utilizzare l’elettrocardiogra-fo non solo come strumento che ci informa del potenzialeelettrico in funzione del tempo V(t) ma anche come lo stru-mento che misura i tempi d’onda relativi al proprio battitoin funzione della sua frequenza consentendoci cosìdi confrontare la precisione delle misure di grandezze nonomogenee.

L’ELETTROCARDIOGRAMMA ‘VIRTUALE’L’evento della misura campionata ci offre una metodologiadi misura che affianca all’uso degli strumenti tecnici quellodegli strumenti virtuali nell’acquisizione e nell’elaborazionedel potenziale elettrico ‘Elettrocardiogramma’ generato daogni cuore per favorire una analisi strettamente scientificaanche in campo medico, stabilendo in modo analitico se laconduzione elettrica del cuore è normale o anomala,

22

02D A L L A T E O R I A A L L A P R A T I C A

ANALISI DELL’ECG: VALUTAZIONE TEMPORALEDELLA SINCRONIA ELETTRICA DELLE ONDE

La computerizzazione dell ’ECG può consentire la r icerca di parametri c l inici che non possono essere estrapolaticon la consueta valutazione ottica

Gia

nca

rlo

Mon

ari

IPie

tro

Ros

si

Page 23: labviewworld-02

mediante lo studio del battito cardiaco sincronizzato con itempi d’onda .I potenziali elettrici V(t) sull’elettrocardiogramma registratinelle derivazioni ‘I, II, III, V1, V2, V3, V4, V5 e V6’, acquisitiad una frequenza di campionamento ‘Fc’ di duemila cam-pioni al secondo, per una sequenza di 50 battiti, decompo-sti; individuando il tempo iniziale e finale del ciclo ‘∆T’, ed itempi delle onde tP, tQ, tR, tS e tT.Ogni periodo del ciclo cardiaco è sincronizzato con i tempidi ciascun onda tP, tQ, tR, tS e tT normalizzati al periodo ∆Tdel ciclo in esame che ne evidenzia una forte dipendenzalineare e non casuale in funzione della frequenza cardiaca? ‘misurata in battiti minuto’. Un test effettuato su pazien-ti di sana costituzione ‘conduzione elettrica normale’ evi-denzia una pendenza positiva, intercetta bassa ‘prossimaallo zero’ ed un coefficiente di regressione lineare moltoalto prossimo ad uno, contrariamente ad una pendenzaintorno alla zero, intercetta molto alta dell’ordine di centi-naia per mille ed un coefficiente di regressione linearemolto basso prossimo allo zero in pazienti con problemicardiaci ‘conduzione anomala’ pur non riscontrando ano-malie sul tracciato ‘elettrocardiogramma’.

HARDWARE E SOFTWARE UTILIZZATIPer studiare la variabilità temporale delle onde tP, tQ, tR, tS

e tT , relativa al periodo ∆T del ciclo del segnale elettricoV(t), si è scelto il processo di misura a registrazione cam-pionata. L’acquisizione strumentale e sperimentale deipotenziali V(t) misurati in mV ed acquisiti alla frequenza di2000Hz per una sequenza di (n=50) battiti, è stata esegui-ta prelevando le uscite del segnale analogico dell’elettro-cardiografo Esaote P80 collegate ad una scheda NI USB-6008 a 12bit di National Instruments ad un computer data-to di sistema operativo Windows XP e del programmaLabVIEW 8.0.Il programma di fig. 1 permette di acquisire ed archiviare informato testo la sequenza dei 50 battiti, per ogni singoladerivazione alla frequenza di 2000 campioni al secondo ‘Fc’.

Il segnale acquisito tramite la scheda USB-6008 ed il soft-ware NI DAQmx è filtrato con un filtro di banda che eliminai disturbi di provenienza dalla rete elettrica.Al termine della registrazione tramite il tasto che selezional’uscita ‘Esci_Dal_programma’ si manda in esecuzione ilprogramma che analizza la sequenza dei 50 battiti archivia-ti per ciascuna derivazione. Il programma di analisi delleonde di fig. 2 ‘Analisi off-line’, legge l’archivio dei pazientiprecedentemente memorizzato su disco e ci presenta la listadelle derivazioni in esso contenute ‘Pazienti’.

Il ciclo da esaminare viene scelto mediante un doppio clickdel mouse sulla derivazione da esaminare ‘elenco Pazienti’.Per ogni sequenza di 50 cicli archiviati si scelgono il cam-pione iniziale e il campione finale del ciclo tramite idue puntatori di selezione, con un doppio clic del mouseattiviamo un programma che individua i punti caratteristicidel ciclo NP, NQ, NR, NS, NT e ∆NK come indicato nella trac-cia in alto a destra di fig. 2, proponendoci il battito seguen-te che inizia dal. indicato dal puntatore +, in modotale da dover puntare solo .Per ogni sequenza di (n=50) battiti esso scrive una tabelladi 6 colonne e 50 righe in formato testo ‘Scrive_Onde.xls’

dove K identifica il (K)-esimo battito‘K=0,1,…,49’ ed I le onde ‘I= P,Q,R,S,T e ∆T’, come indi-cato nella matrice in alto.Al termine dell’analisi della sequenza di 50 cicli è possibileosservare direttamente l’andamento di dipendenza linearetramite il passaggio al riquadro battito selezionabile daitasti di tabulazione, il quale ci fornisce i parametri di inter-cetta, pendenza e coefficiente di regressione lineare tramitei quali è possibile stabilire se la conduzione elettrica cardia-ca è normale od anomala.

23

D A L L A T E O R I A A L L A P R A T I C A

Fig. 1 - Programma che acquis isce e registra la der ivaz ioneselez ionata

Fig. 2 - I l ∆T degl i N campioni del la sequenza dei batt i t i ‘c ic l i ’, v iene indiv iduata median-te i puntator i ver t ica l i come = 0 del (K)-es imo c ic lo che termina con. I l programmaindiv idua i tempi del le onde: P,Q,R,S ,T e durata del c ic lo ∆T evidenziandol i in una matr i-ce ‘per passare da N in tempi basta molt ip l icare N per i l tempo di campionamento’

Page 24: labviewworld-02

In una fase successiva, tramite il programma report si leggel’archivio della tabella di 6 colonne e 50 righe realizzato conil software Report Generation for Microsaft Office Toolkit.

CONCLUSIONIIl metodo di proporre il segnale dell’ECG acquisito median-te il processo di misura a registrazione campionata ci damodo di esprimere i tempi d’onda normalizzati in funzionedella frequenza con la loro migliore correlazione ‘Lineare’.Infatti l’equazione della retta è la funzione matematica olegge fisica che statisticamente meglio approssima la lorodipendenza. Pertanto, i parametri analitici e statistici dellerette stabiliscono in senso fisico e cardiologico se la condu-zione elettrica è normale o anomala.Ad esempio, nel caso che il primo insieme ‘ordinata’ siacostituito dai tempi d’onda normalizzati, ed ilsecondo ‘ascissa’ sia costituito dalle frequenze Ó si avrà unaretta di equazione: ove i=P,Q,R,S e T,k=alla ? scelta, Yi indica il valore stimato di TiK ed mi e qi

indicano rispettivamente il coefficiente angolare e l’inter-cetta con l’asse dell’ordinata della retta .Analogamente, per ciascun altro primo insieme TiK in fun-zione della frequenze cardiaca ? si ottengono i coefficientiangolari: e le intercettecon il relativo parametro statistico, indicativo del livello dicorrelazione lineare esistente tra causa ed effetto o travariabile indipendente e variabile dipendente. Il coefficientedi correlazione lineare R2 è noto come analisi statistica deiminimi quadrati.E’ auspicabile una medicina di prevenzione delle disfunzio-ni cardiovascolari, le cui cause si presentano nell’organismospesso in modo silente, senza allarmare l’individuo ed anni

prima di creare danni irreversibili. Che tale Medicina diven-ti una realtà sociosanitaria è oggi possibile, perché esistonoi presupposti strumentali e concettuali per individuare edeliminare le cause del decadimento morfo-funzionale a cuiva incontro l’apparato cardiovascolare.Lo studio della sincrona delle onde dell’ECG va in questadirezione, quando: segnala una conduzione elettrica nonfisiologica; è sensibile agli effettori farmacologici, psicologi-ci e chirurgici che l’apparato cardiovascolare subisce; inte-gra in modo logico e con esperienze di laboratorio la cono-scenza biologica e quella clinica; controlla ogni individuo inmodo diretto, semplice e continuo, evitando costose edinvasive tecniche e stabilisce l’efficacia e l’efficienza siadegli interventi che delle terapie farmacologiche.

BIBLIOGRAFIA1. Forlani L., Monari G. e Rossi P. Metodo ed Analisi di un

Elettrocardiogramma e relativo Apparato, Italian Patent:RM2001A000433

2. Forlani L., Monari G. e Rossi P. Metodo ed Analisi di unElettrocardiogramma e relativo Apparato, PTCInternational Application Number WO03/007818 A3.

3. Marcello Costantini L’Elettrocardiogramma Capire edinterpretare L’ECG

24

02D A L L A T E O R I A A L L A P R A T I C A

Note sugli autoriGiancarlo Monari: Laboratorio FUS-MAG Enea (Frascati), Via E. Fermi45, Roma.

Pietro Rossi: U.O.D. di elettrofisiologia ed elettrostimolazione cardiaca,Ospedale Belcolle, Viterbo

read

erse

rvic

e.it

n.2

07

F ig. 3 - Mediante un doppio c l i ck del mouse ne r iquadro re lat ivo a l le onde è poss ib i le ev idenziare la d ipendenza l ineare dei tempid’onda re lat ive a l batt i to in funzione del le f requenze cardiaca

Page 25: labviewworld-02

25

02D A L L A T E O R I A A L L A P R A T I C A

Nell’articolo viene presentato un sistema in grado diassorbire da una sorgente di energia trifase una cor-rente di forma d’onda programmabile dall’utente, al

fine di realizzare/riprodurre in laboratorio le correnti assorbi-te da carichi non lineari, quali ad esempio alimentatori elet-tronici, regolatori a parzializzazione, lampade a scarica, ecc.Un Virtual Instrument (VI) LabVIEW comanda tramite DAC NIFieldPoint tre Triac e tramite la NI PCI-Gpib/LP tre generato-ri di forme d’onda arbitraria per pilotare in modo non con-venzionale un compensatore di armoniche. Il VI esegue leanalisi armoniche e sintetizza separatamente componentefondamentale e armoniche della corrente desiderata.La corrente non-lineare viene sintetizzata tramite le suecomponenti: la fondamentale, con un carico resistivo par-zializzato, e le armoniche, tramite un compensatore diarmoniche usato in maniera non convenzionale. NILabVIEW acquisisce le forme d’onda, analizza il contenutoarmonico e pilota, tramite FieldPoint FP-AO-V10, tre Triac.La sintesi della corrente armonica viene realizzata dal pro-

gramma e le relative forme d’onda caricate in tre generato-ri tramite una scheda NI PCI-Gpib/LP.

INTRODUZIONENumerosissimi dispositivi elettrici utilizzati in ambiti indu-striali (ma anche civili), sono costituiti da alimentatori acommutazione c.a./c.c. e c.a./c.a., con raddrizzatori-regola-tori di tipo ‘switching’ ad alta frequenza, che assorbono cor-rente in impulsi brevi e di grande ampiezza e quindi si pre-sentano come carichi non-lineari. Gli esempi sono numero-sissimi; ne citeremo qui qualcuno: sale macchine con com-puter, apparati elettronici, inverter, UPS, saldatrici, ecc. InRAI ci sono familiari i casi di luci sceniche con regolatori aparzializzazione (Triac), lampade a scarica, Video-Wall, regievideo, ecc.Nel funzionamento di un impianto elettrico trifase a neutrodistribuito che alimenta un tale genere di utenze possonoquindi presentarsi numerosi problemi diversi, quali:- alto valore del fattore di cresta (tipicamente intorno a 2,5-3);

ARBLOAD: SIMULATORE HARDWARE DI CARICO ELETTRICO NON-LINEARE TRIFASE

Ecco come è stato svi luppato un carico elettrico non-lineare, trifase (400 V, 63 A), in grado di assorbire correnticon forme d’onda programmabil i dall ’utente o r i levate in-field

B.S

acco

IM.L

a R

osa

Page 26: labviewworld-02

26

02D A L L A T E O R I A A L L A P R A T I C A

- basso valore del fattore di potenza (tipicamente intorno a0,6-0,7);

- alte correnti nei conduttori di neutro dovute allo sbilan-ciamento e alla composizione delle armoniche di terzoordine;

- rumore elettromagnetico irradiato e condotto;- distorsione della tensione d'alimentazione.I suddetti problemi danno luogo a inconvenienti di varianatura, quali la bassa efficienza complessiva dell'impianto,l'apertura intempestiva delle protezioni elettriche, vibra-zioni meccaniche, sfarfallìo delle sorgenti luminose, mal-funzionamento degli interruttori e soglie d'interventodipendenti dalla frequenza, ecc. In particolare, tali incon-venienti costringono il progettista a sovradimensionaremacchinari, dispositivi di commutazione e cavi di potenza,a proteggere da sovracorrenti il conduttore di neutro, adotare di schermi speciali e filtri le reti di potenza e disegnale. Risulta però difficile o impossibile progettare inanticipo un impianto, perché ciò richiederebbe di eseguirepreventivamente l'intero allestimento, comportante attrez-zature spesso molto costose e ingombranti, al solo scopodi effettuare prove o collaudi.

IL SIMULATOREPer ridurre questi problemi (e quindi i costi) già in sede diprogetto, si è deciso quindi di realizzare un simulatore dicarichi elettrici complessi che permetta di eseguire prove,progettazioni e verifiche di comportamento di impianti d'a-limentazione, particolarmente di grande potenza.

Il simulatore da noi sviluppato, battezzato ArbLoad(Arbitrary Load, carico arbitrario), è stato dimensionato perassorbire una corrente di forma arbitraria, trifase 400 V, 63A massimi. Come mostrato in fig.1, tale forma d’onda vienesintetizzata tramite le sue componenti a frequenza fonda-mentale e armoniche.La componente a frequenza fondamentale viene realizzata(ramo in alto a destra nella figura) mediante con un caricoresistivo da 32 A, parzializzato da circuiti a Triac controllatiin tensione tramite tre DAC (NI FieldPoint FP-1601e duemoduli FP-AO-V10 ad alto isolamento) pilotati dal PC dicontrollo tramite rete LAN. Questo procedimento genera,oltre alla corrente fondamentale desiderata, delle compo-nenti armoniche spurie dovute alla parzializzazione (com-mutazione del Triac), e una componente in quadratura (reat-tiva); di queste spiegheremo più sotto.Le componenti armoniche vengono realizzate (ramo inbasso a destra nella figura) tramite un compensatore diarmoniche usato in maniera non convenzionale. Tale appa-rato, utilizzato di solito per ridurre la distorsione della cor-rente in installazioni industriali, è sostanzialmente un bancodi condensatori alimentato da un ponte trifase di Igbt colle-gato in parallelo al carico. Se il carico assorbe una correnteI=If+Ih (f=fondamentale, h= armoniche), un circuito di con-trollo pilota in PWM il ponte in modo da immettere la stes-sa Ih in controfase. In questo modo, la corrente ‘vista’ dalgeneratore è la sola If , quindi sinusoidale.Nell’ArbLoad usiamo un compensatore di armoniche da 32A come ‘attuatore’ per la componente armonica: invece di

Fig. 1 - Struttura del s imulatore ArbLoad. Nel l ’area ‘ Test S etup’ v iene inser i to i l d ispos i t ivo da testare. In a l ternat iva, ArbLoad v ieneut i l izzato per testare la l inea o i l generatore (UPS, gruppo e lettrogeno, ecc . )

Page 27: labviewworld-02

27

D A L L A T E O R I A A L L A P R A T I C A

pilotarlo con i segnali provenienti dalle sonde di corrente indotazione, come normalmente previsto, forniamo tre segna-li sintetici provenienti da altrettanti generatori da laborato-rio di forme d’onda arbitrarie, conman-dati dal PC tramite una scheda NI PCI-Gpib/LP.L’unità di acquisizione, al centro dellafig.1, è costituita da tre A/D convertercollegati ai tre trasformatori ampero-metrici, e uno zero-cross detector colle-gato ad un trasformatore voltmetrico,usato per generare un segnale di trig-ger per il sistema. Nel prototipo è statoinizialmente usato un oscilloscopiodigitale a tre canali al posto dei treADC; nella versione industrializzataviene usata una scheda di acquisizione.

IL VIIl VI scritto in LabVIEW acquisisce letre forme d’onda di corrente, analizzail contenuto armonico, e, come accen-nato, pilota i tre Triac tramite il modu-lo FieldPoint. L’angolo di conduzionedei Triac viene variato finchè la partereale della componente a 50Hz risultaquella desiderata, entro una tolleranza prefissata.A questo punto, le tre forme d’onda di corrente vengono dinuovo acquisite e analizzate e le componenti armoniche,più la parte immaginaria della componente a 50Hz costitui-scono il residuo spurio da eliminare. Esse vengono sottrattedallo spettro del segnale desiderato.La differenza così ottenuta rappresenta ciò che manca allacorrente fin qui ottenuta per ottenere quella desiderata.Tramite DFT inversa viene ottenuto il segnale periodico nel

dominio del tempo. Tale segnale campionato viene quindicaricato nei generatori arbitrari via Gpib tramite la schedaNI PCI-Gpib/LP.La forma d’onda così ottenuta sulla linea è la sintesi fedeledi quella desiderata. Si è riscontrato che il compensatore diarmoniche, essendo uno dispositivo piuttosto raffinato, nonsoffre di derive termiche; al contrario i parzializzatori a Triaced il resistore alimentato variano la corrente assorbita acausa della variazione della temperatura. Ciò ha reso neces-sario aggiungere un ciclo di controllo secondario, che usacome parametro di controllo la componente in fase a 50 Hzdella corrente effettivamente assorbita, provvedendo avariare l’angolo di innesco dei Triac per compensarne levariazioni. Questo consente anche la compensazione dellevariazione di tensione di alimentazione del carico. Questocicli di controllo viene eseguito periodicamente, ma non vi èl’esigenza di elaborazioni in real-time:Il VI NI LabVIEW girasenza problemi su un PC Pentium3 con sistema operativoWindows2000.Per l’utilizzo, ArbLoad viene connesso direttamente allalinea (o generatore: UPS, Gruppo elettrogeno, ecc.) da testa-

re. Se invece si intende testare un dis-positivo (interruttore automatico, tra-sformatore, ecc.) o una linea per proveEMC per disturbi irradiati, si può utiliz-zare la sezione Test Setup della fig.1.ArbLoad è stato realizzato dapprimain forma prototipale, visibile nellafig.2; la corrente sintetizzata vienevisualizzata, tramite i trasformatoriamperometrici, sull’oscilloscopio digi-tale. La sezione parzializzatori a Triac èstata remotata grazie all’unità NIFieldPoint. Il carico resistivo non èriportato nella figura.Una versione industrializzata (e mar-chiata CE) di ArbLoad (fig.3) è statarealizzata, per RAI e sotto nostra licen-za di brevetto, da un’azienda italiana.

CONCLUSIONEGrazie a NI LabVIEW la realizzazioneprotitipale di ArbLoad è stata realizza-ta in tempi record, e tutto il software è

stato riutilizzato con minimi adattamenti permettendo larealizzazione della versione industrializzata in soli tre mesi.

Note sugli autoriB. Sacco: RAI-Centro Ricerche e Innovazione Tecnologica

M. La Rosa: RAI-Ingegneria della Produzione TV

Fig. 2 - I l protot ipo d i laborator io.A: VI LabView, generator i arbit rar i , monitoraggio

del le t re corrent i ottenuteB: Compensatore d ’armoniche e quadretto e lettr icoC: DAC Fie ldPoint e par z ia l izzator i a Tr iac

read

erse

rvic

e.it

n.2

08

B

C

A

Fig. 3 - Una vers ione industr ia l izzatadi ArbLoad

Page 28: labviewworld-02

La crescente domanda di energia elettrica ha comporta-to in prima battuta un aumento del numero di centralidi produzione e, in seconda luogo, un incremento del-

l’efficienza e disponibilità di ciascuna di esse, attraverso unmonitoraggio continuo di parametri relativi alle macchineinstallate, tramite sistemi di acquisizione e remotizzazionedati in tempo reale. Ciò allo scopo di prevedere sempremeglio eventuali fonti di guasto e quindi porvi rimedio nelpiù breve tempo possibile.Ansaldo Energia ha realizzato e già installato in diversi sitiun sistema di archiviazione e remotazione dati realizzatoattraverso un sistema NI cRIO-9004 di National Instruments,a 8 slot dotato di 500 Mbyte di flash memory e di opportu-ne schede di ingresso sia analogiche che digitali. Il dispositi-vo è in grado di acquisire fino ad un max di 64 canali con unintervallo minimo di tempo di 5 ms tra un campione e l’altroper ogni canale acquisito. Per una migliore comprensionedella struttura del sistema, verranno descritti la strutturahardware e successivamente i diversi pacchetti software uti-lizzati dal medesimo per eseguire l’archiviazione dei dati.

ARCHITETTURA DEL SISTEMAIl sistema può essere suddiviso in tre diversi livelli (fig. 1):Il primo livello è costituito dal modulo NI cRIO-9004 dotatodelle rispettive schede di ingresso.

In tale unità, collocata in campo, confluiscono i vari segnalisotto forma di segnali a 10V provenienti dai diversi sensoridi pressione, temperatura, ecc. sistemati all’interno dellemacchine e necessari a capire lo stato di funzionamentodelle stesse. Tramite opportuno applicativo realizzato in NILabVIEW FPGA, i campioni acquisiti dalle diverse schede diinput vengono ordinati e inviati alla CPU dell’unità Real-Time NI cRIO-9004.La CPU è collocata nel modulo NI cRIO-9004, ma è gerar-chicamente al livello superiore e un apposito applicativorealizzato con NI LabVIEW FPGA si preoccupa di ricevere esalvare sulla flash memory i dati con opportuna strutturabinaria in modo da ottimizzare lo spazio di memoria.L’archivio nel quale essi sono conservati è organizzato indiversi file numerati in maniera progressiva e strutturatisecondo una tabella, dove la prima colonna contiene l’in-formazione temporale nel formato giono, mese, anno, ora,minuto, secondo e millisecondo e le successive colonneinvece i diversi canali acquisiti. L’intestazione di ogni file èinvece costituita dai diversi tag di ogni canale e dai relativicampiscala di ciascuno di essi. È importante sottolinearecome l’informazione oraria sia mantenuta sincronizzata adintervalli ciclici con il PC host di secondo livello, il quale oro-logio a sua volta è allineato tramite opportuno protocollo,ad un dispositivo GPS installato in ogni centrale.Una volta che il file in scrittura ha raggiunto una dimensio-ne di circa 4 Mbyte, l’applicativo si preoccupa di passare aduno successivo in modo tale da realizzare un archivio stori-co locale a bordo dell’unità NI CompactRIO formato da unmassimo di circa 120 file e compatibile con la dimensionemassima della flash memory. È ovvio che una volta termi-nato di scrivere il file N° 120 il sistema inizierà nuovamen-te a sovrascrivere il primo file dell’archivio e così via secon-do una modalità di storicizzazione dati a “tamburo”.Considerando di acquisire 64 Ch a 5 ms, l’archivio locale èin grado di contenere i dati fino ad un massimo di circa 15ore senza essere sovrascritto nuovamente.Il secondo livello è costituito da un personal computer con-nesso tramite protocollo TCP/IP ai moduli NI CompactRIO.In esso è eseguito un applicativo NI LabVIEW che è in gradodi connettersi all’unità NI CompactRIO e di prelevare i file

28

02D A L L A T E O R I A A L L A P R A T I C A

SISTEMA DI ARCHIVIAZIONE E REMOTIZZAZIONEDATI PER TURBOGRUPPI

Ansaldo Energia ha realizzato e installato in diverse centrali elettriche un sistema di archiviazione e remotazione dati

S.Ca

ccia

carn

e

Fig.1 - Struttura s is tema archiv iaz ione dat i

Page 29: labviewworld-02

dall’archivio locale in modo da creare un archivio storico sudi esso e quindi di capienza molto più grande, legatasostanzialmente alla dimensione fisica dell’hard disk del PC.Il programma presente sul PC, qualora si interrompesse perun periodo di tempo la connessione TCP/IP, è in grado, unavolta ristabilita, di risalire all’ultimo file trasferito e quindi diiniziare il procedimento di archiviazione da quello successi-vo, ovviamente l’interruzione di comunicazione tra PC e NICompactRIO non deve durare oltre le circa 15 ore per evi-tare di perdere dati che verrebbero sovrascritti.Il terzo livello è semplicemente costituito da un PC connes-so all’host tramite una connessione Internet in genere tra-mite VPN, ovviamente dotata delle opportune protezionianti intrusione.Con esso dalla sede centrale è possibile consultare l’archi-vio dati in modo da eseguire diagnosi a distanza.

APPLICATIVI SOFTWARE SU PC HOSTPassiamo alla descrizione del software.La fase di archiviazione è preceduta da una fase di setup deldispositivo. Tramite un VI realizzato in NI LabVIEW (VIsetup), rappresentato nella fig.2, è possibile definire:• il tipo di scheda di ingresso per ogni slot del modulo NI

CompactRIO• il tag di ogni canale acquisito• il campo scala• la possibilità di esclusione o meno del canale• il percorso su PC host nel quale verrà realizzato l’archivio

dati remoto• la dimensione dell’archivio remoto (giorno, settimana, mese)• il tempo di scansione dei canali ( 5 ms; 10 ms; 20 ms;

50 ms; 100 ms; 200 ms)Tramite il VI di setup appena descritto viene generato un fileche va opportunamente trasferito via ftp a NI CompactRIOe che contiene tutte le informazioni necessarie per eseguirel’archiviazione corretta dei file.Dopo che il dispositivo in campo ha iniziato ad acquisiredati, all’accensione del PC host viene fatto partire come ser-vizio di Windows un applicativo VI che si preoccupa di tra-vasare i file che via via vengono generati su NI CompactRIO(VI archiviazione).Oltre all’archiviazione dati è possibile visualizzare anchetutti i canali acquisiti in modo real-time. Nella fig 3 è visua-lizzata l’interfaccia utente del VI che via TCP/IP va a legge-re e rappresentare su trend i valori acquisiti dalle schede diingresso su NI CompactRIO.Al caricamento del file di setup generato precedentementenella sezione ‘trend on line’ compariranno sulla destra deltrend i tag di ogni canale acquisito ed i relativi campi scalacon l’indicazione del valore della grandezza in formatoingegneristico acquisita in quel momento. È possibile perogni canale eseguire un filtraggio qualora le grandezzerisultassero affette da disturbi elettrici. Il grafico, qualora

fosse necessario, può essere salvato in un file che può esse-re ricaricato nella sezione ‘trend off line’ per analisi e valu-tazioni sulle grandezze senza interrompere l’aquisizionereal-time che nel frattempo prosegue nella sezione prece-dente. La possibilità di consultare dati da remoto diretta-mente dalla sede ha consentito un notevole risparmio eco-nomico e in termini di tempi di intervento, facilitando ilcompito del personale di servizio in grado di eseguire inter-venti atti alla risoluzione guasti molto più mirati.

29

D A L L A T E O R I A A L L A P R A T I C A

Nota sull’autoreS. Cacciacarne: Ansaldo Energia

Fig. 2 - Inter facc ia VI d i setup

Fig. 3 - Inter facc ia VI t rend real t ime

read

erse

rvic

e.it

n.2

41

Page 30: labviewworld-02

VARIABILI LOCALI E GLOBALI

30

I n LabVIEW il flusso dei dati, piuttosto che l’ordinesequenziale dei comandi, determina l’ordine di esecuzio-ne degli elementi dello schema a blocchi.

Quindi, potete creare schemi a blocchi che svolgono opera-zioni contemporanee. Per esempio, potete avviare due ForLoop simultaneamente e visualizzare i risultati sul pannellofrontale, come mostrato nello schema a blocchi della fig. 1.

Tuttavia, se utilizzate dei collegamenti per passare i dati tragli schemi a blocchi in parallelo, essi non operano più inparallelo. Esempi di schemi a blocchi in parallelo possonoessere due cicli presenti sullo stesso diagramma e privi dicollegamenti, oppure due VI distinti che vengono chiamatinello stesso istante. Il diagramma a blocchi della fig. 2 non

avvia i due cicli in parallelo a causa del filo di collegamentopresente tra i due subVI.Il collegamento crea una dipendenza nell’ordine di esecu-zione e il secondo ciclo non si avvia finché il primo ciclo nonha finito e passato i dati attraverso il tunnel. Per far sì che idue cicli siano eseguiti contemporaneamente, rimuovete ilcollegamento. Per passare i dati tra i subVI, utilizzate un’al-tra tecnica, ad esempio una variabile.In LabVIEW le variabili sono elementi dello schema a bloc-chi che vi consentono di accedere ai dati o di memorizzarliin un’altra locazione. La locazione attuale dei dati varia infunzione del tipo di variabile. Le variabili locali memorizza-no i dati nei controlli e indicatori del pannello frontale. Levariabili globali memorizzano i dati in contenitori particola-ri ai quali potete accedere da più VI. Indipendentemente dadove vengono memorizzati i dati, tutte le variabili vi con-sentono di aggirare la normale logica a flusso di dati, pas-sando i dati da un posto a un altro senza necessità di effet-tuare alcun collegamento. Per questo motivo le variabilisono utili nelle architetture in parallelo, ma hanno anchealcuni svantaggi, come le condizioni di conflitto.

UTILIZZO DI VARIABILI IN UN SINGOLO VILe variabili locali trasferiscono dati all’interno di un singolo VI.Creazione di variabili locali Cliccate con il tasto destro del mouse su un oggetto esi-stente del pannello frontale o dello schema a blocchi e sele-zionate Create»Local Variable dal menu rapido per creareuna variabile locale. Nello schema a blocchi appare un’ico-na di variabile locale per l’oggetto.Potete anche selezionare una variabile locale dalla paletteFunctions ed inserirla nello schema a blocchi. Il nodo dellavariabile locale, mostrato nella fig. 3, non è ancora associa-to ad un controllo o ad un indicatore.Per associare unavariabile locale adun controllo o adun indicatore, cliccate con il tasto destro del mouse sul nododella variabile locale e selezionate Select Item dal menurapido. Il menu rapido espanso elenca tutti gli oggetti delpannello frontale aventi etichette proprie.

Le var iabi l i local i t rasfer iscono dat i a l l ’ interno di un s ingolo VI ,le var iabi l i g lobal i permettono di accedere a i dat i e passar l i t ra d ivers i V I che sono in esecuzione contemporaneamente

02S C U O L A D I L A B V I E W

Fig 1: Esecuzione simultanea di due blocchi di codice in cicli paralleli

Fig 2: While Loop con dipendenza dei dati imposta dal collegamento

Fig 3: Nodo del la var iabi le locale

a cu

ra d

i M

atte

o Fo

ini

Training per principianti

Page 31: labviewworld-02

31

LabVIEW utilizza le etichette per associare le variabili localiagli oggetti del pannello frontale, quindi etichettate i control-li e gli indicatori del pannello frontale con nomi descrittivi.Lettura e scrittura di variabili Dopo aver creato una variabile locale o globale, potete legge-re o scrivere i dati su una variabile. Di default una nuova varia-bile riceve dati. Questo tipo di variabili opera come un indica-tore e si parla di variabile locale o globale abilitata in scrittura.Quando scrivete nuovi dati su una variabile locale o globa-le, il controllo o l’indicatore associato del pannello frontalesi aggiorna con il nuovo dato.Potete anche configurare una variabile affinché si comporticome una sorgente di dati, o variabile locale o globale abi-litata in lettura. Cliccate con il tasto destro del mouse suChange to Read dal menu rapido per configurare la variabi-le come controllo. Quando questo nodo è in esecuzione, ilVI legge i dati nel controllo o nell’indicatore associato delpannello frontale.Per far sì che la variabile riceva dati dallo schema a blocchipiuttosto che fornirli, cliccate con il tasto destro del mousesu Change to Write dal menu rapido.Sullo schema a blocchi potete distinguere le variabili abili-tate in lettura da quelle abilitate in scrittura, esattamentecome si distinguono i controlli dagli indicatori: se è in lettu-ra presenta un bordo spesso, come un controllo, mentre seè in scrittura ha un bordo sottile, come un indicatore.

ESEMPIO DI VARIABILE LOCALE Nella fig. 4 viene mostrato un esempio di VI che utilizza cicliin parallelo.Il pannello frontale contiene un unico interruttore che arre-sta la generazione dei dati visualizzati su due grafici. Nelloschema a blocchi, i dati di ciascun grafico vengono genera-ti all’interno di un While Loop per consentire la temporizza-zione separata di ciascun ciclo. Il terminale Loop Controlarresta entrambi i While Loop. In questo esempio, i due ciclidevono condividere l’interruttore per arrestare entrambi i ciclinello stesso istante. Per aggiornare i grafici come desiderato,i While Loop devono operare in parallelo. Un collegamentotra i While Loop per passare i dati dell’interruttore rendereb-be l’esecuzione dei cicli seriale, invece che parallela.Il VI nella fig. 4 utilizza una variabile locale per passare i datidell’interruttore.Quando impostate l’interruttore su False nel pannello fron-tale, il terminale dell’interruttore in Loop 1 scrive un valoreFalse sul terminale condizionale di Loop 1. Loop 2 legge lavariabile locale Loop Control e scrive un False sul terminalecondizionale di Loop 2. Quindi i cicli sono in esecuzione inparallelo e terminano contemporaneamente quando agitesull’unico interruttore del pannello frontale.Con una variabile locale potete scrivere o leggere su un con-trollo o un indicatore del pannello frontale. La scrittura suuna variabile locale è simile al passaggio dei dati a un altro

terminale. Tuttavia, con una variabile locale potete scriveresu essa anche se è un controllo o leggere da essa anche seè un indicatore. In effetti, con una variabile locale poteteaccedere ad un oggetto del pannello frontale sia in ingres-so che in uscita.Per esempio, se l’interfaccia utente richiede il login dell’u-tente, potete cancellare il contenuto dei campi di Login ePassword ogni volta che un utente effettua il login.Utilizzate una variabile locale per leggere dai controlli strin-ga Login e Password quando un utente effettua un login eper scrivere stringhe vuote su questi controlli quando l’u-tente effettua il logout.

UTILIZZO DI VARIABILI TRA VIPotete anche utilizzare variabili per accedere ai dati e pas-sarli tra diversi VI che sono in esecuzione contemporanea-mente. Una variabile locale condivide i dati all’interno di unVI mentre una variabile globale consente di condividere idati anche tra VI distinti.Creazione di variabili globali Utilizzate variabili globali per accedere ai dati e passarli tradiversi VI che sono in esecuzione contemporaneamente. Levariabili globali sono oggetti interni a LabVIEW. Quandocreate una variabile globale, LabVIEW crea automaticamen-te uno speciale VI globale, che ha un pannello frontale, mache non ha lo schema a blocchi (fig. 5). Aggiungete controllie indicatori al pannello frontale del VI per definire i tipi didati delle variabili globali che esso contiene. In effetti, que-sto pannello frontale è un contenitore attraverso il quale piùVI possono accedere ai dati.Per esempio, supponete di avere due VI funzionanti simul-taneamente.Ogni VI contieneun While Loop escrive i dati suun waveform chart. Il primo VI contiene un controllo boo-leano per terminare entrambi i VI.Dovete usare una variabile globale per terminare entrambi icicli con un singolo controllo booleano. Se entrambi i ciclifossero su un unico schema a blocchi all’interno dello stes-so VI, potreste usare la variabile locale per terminare i cicli.Selezionate una variabile globale dalla palette Functions einseritela nello schema a blocchi.

S C U O L A D I L A B V I E W

Fig 4: Variabile locale uti l izzata per arrestare cicl i in parallelo

Fig 5: Nodo del la var iabi le g lobale

Page 32: labviewworld-02

Cliccate due volte sul nodo della variabile globale per visua-lizzare il pannello frontale del VI globale. Inserite controlli eindicatori in questo pannello frontale nello stesso modo incui lo fareste in un pannello frontale standard.Etichettate controlli e indicatori del pannello frontale conetichette significative, in quanto LabVIEW usa tali etichetteper identificare le variabili globali.Potete creare svariati VI globali, ognuno con un singolooggetto nel pannello frontale oppure creare un VI globalecon più oggetti nel pannello frontale. Un VI globale con piùoggetti è più efficiente perché potete raggruppare insiemedelle variabili correlate.Potete inserire VI globali in altri VI nello stesso modo in cuiinserite subVI in altri VI. Ogni volta che inserite un nuovonodo di variabili globali in uno schema a blocchi, LabVIEWcrea un nuovo VI associato solo a quel nodo e a copie diesso.La fig. 6 mostra un pannello frontale di una variabile globa-

le con un numero, una stringa e un cluster contenente uncontrollo numerico e un controllo booleano. La barra deglistrumenti non mostra i pulsanti Run, Stop e gli altri pulsan-ti normalmente presenti su un pannello frontale.Quando avete finito di inserire gli oggetti nel pannello fron-tale del VI globale, salvatelo e tornate allo schema a blocchidel VI originale. Dovete poi selezionare l’oggetto del VI glo-bale a cui volete accedere. Cliccate con il tasto destro sulnodo della variabile globale e selezionate un oggetto delpannello frontale dal menu rapido Select Item. Il menu rapi-do elenca tutti gli oggetti del pannello frontale del VI glo-bale che hanno etichette proprie.Potete anche usare gli strumenti Operating o Labeling percliccare sul nodo della variabile globale e selezionare l’og-getto del pannello frontale dal menu visualizzato.Se volete usare questa variabile globale in altri VI, selezio-nate Functions»All Functions»Select a VI. Di default la varia-

bile globale è associata al primo oggetto del pannello fron-tale con un’etichetta propria che avete inserito nel VI glo-bale. Cliccate con il tasto destro sul nodo della variabile glo-bale che avete inserito nello schema a blocchi e selezionateun oggeto del pannello frontale dal menu rapido Select Itemper associare la variabile globale ai dati provenienti da unaltro oggetto del pannello frontale.

USO PRUDENTE DELLE VARIABILILe variabili locali e globali sono concetti molto utili inLabVIEW ma potenzialmente insidiosi: vanno studiati concura e usati con cautela. Sono intrinsecamente estranee almodello di esecuzione del flusso di dati in LabVIEW. Glischemi a blocchi possono diventare difficili da leggerequando usate variabili locali e globali. Così dovete usarlecon attenzione.L’uso scorretto delle variabili locali e globali, può condurre acomportamenti inattesi dei VI. Inoltre, l’uso eccessivo che avolte se ne fa, come per evitare lunghi collegamenti attra-verso lo schema a blocchi o per sostituire il flusso dei dati,rallenta le prestazioni.

INIZIALIZZAZIONE DELLE VARIABILIVerificate che le variabili locali e globali contengano valoriconosciuti dei dati prima che il VI vada in esecuzione.Altrimenti le variabili potrebbero contenere dati che induco-no il VI a funzionare in modo scorretto.Se non inizializzate la variabile prima che il VI la legga perla prima volta, la variabile contiene il valore di default del-l’oggetto associato del pannello frontale.

32

02S C U O L A D I L A B V I E W

Fig 6: Pannel lo f rontale del la var iabi le g lobale

Note sull’autoreMatteo Foini, National Instruments

read

erse

rvic

e.it

n.2

11

ENTRA NELLA NOSTRA COMUNITÀ!C a r o l e t to r e, s e r i t i e n i c h e q u e s t a n u ova i n i z i at i va L a b V I E W Wo r l d s i a u n u t i l e s t r u m e n to p e r l a t u a at t i v i t à e d e s i d e r i c o n t i n u a r e a r i m a n e r e a g g i o r n ato s u l m o n d oL a b V I E W, c o l l e g at i a l l a p a g i n a

h t t p : / / w w w. i l b 2 b. i t / l a b v i ew / l b _ wo r l d. a s p

SEI UN FAN DI LABVIEW?

Page 33: labviewworld-02

33

02S C U O L A D I L A B V I E W

TECNICHE AVANZATEDI I/O SU FILE (PARTE II)

I l formato Text Data Exchange (TDM) è un formato di fileibrido che combina la memorizzazione binaria e i datiASCII formattati in XML. In un file TDM, i dati numerici

grezzi sono memorizzati in formato binario. Questo dà ivantaggi del binario, come un uso dello spazio efficiente etempi di scrittura veloci. Oltre a questi dati, un formato XMLconserva la struttura dei dati e informazioni sugli stessi.Questo consente all’informazione nel file di essere facil-mente accessibile e ricercabile. Tipicamente, i dati binari e idati XML sono separati in due file, un file .tdm per i datiXML e un file .tdx per i dati binari.

QUANDO USARE I FILE TDMI file TDM sono progettati per conservare dati di test o dimisura, soprattutto quando i dati consistono in uno o piùarray. I file TDM sono più utili quando si memorizzano arraydi dati semplici come numeri, stringhe o dati booleani. I fileTDM non possono immagazzinare direttamente array di clu-ster. Se i vostri dati sono memorizzati in array di cluster,usate un altro formato di file, come quello binario, o spez-zate il cluster in canali e usate la struttura del file TDM perorganizzarli logicamente.I file TDM vi consentono di creare una struttura per i vostridati. I dati all’interno del file sono organizzati in canali.Potete anche organizzare i canali in gruppi di canali. Un filepuò contenere più gruppi di canali. Dati ben raggruppatisemplificano la lettura e l’analisi e possono ridurre il temporichiesto per cercare una particolare porzione di dati.Usate i file TDM quando volete memorizzare informazioniaddizionali sui vostri dati. Per esempio, potreste voler regi-strare anche il tipo di prova o misura, il nome dell’operato-re o del collaudatore, i numeri seriali, i numeri UUT del di-spositivo collaudato o l’ora della verifica e le condizioni inbase alle quali la verifica o la misurazione è stata condotta.Ogni file TDM contiene un oggetto File e può contenerequanti oggetti Channel Group e Channel volete. Ognunodegli oggetti in un file ha delle proprietà ad esso associate,con tre livelli di proprietà che potete usare per immagazzi-nare i dati. Per esempio, le condizioni di prova sono memo-rizzate al livello del file. L’informazione UTT è conservata allivello dei canali o dei gruppi di canali. Conservare molte

informazioni sulle vostre prove e misurazioni può renderepiù semplice l’analisi e può anche consentirvi di cercarespecifici insiemi di dati. Cercare file specifici o insiemi di datiin base a criteri memorizzati è importante quando metteteinsieme grandi quantità di dati—soprattutto se dovete con-dividere i dati con altri.La ricerca dei dati in un file sulla base di una o più condi-zioni è una caratteristica del formato di memorizzazione deidati TDM. Con la maggior parte dei formati di file, doveteleggere l’intero file per localizzare uno specifico insieme didati. Con un file TDM potete specificare una condizionequando leggete i dati e la lettura restituisce solo i dati checorrispondono a quella condizione. Usando letture multiplee unificando i loro risultati potete costruire richieste (que-ries) complesse per i vostri dati. Potete usare ogni proprietàdei file TDM, dei Channel Group o dei Channel come condi-zione di ricerca. Perciò inserite quante più proprietà possibi-li quando registrate dei file TDM. Queste proprietà semplifi-cano la localizzazione dei dati.Come molti altri formati binari di file, solo i programmi pro-gettati appositamente per riconoscerli e decodificarli posso-no leggere i file TDM. LabVIEW, LabWindowsTM/CVITM eDIAdem e qualche altro software NI possono leggere i fileTDM. Salvate i vostri dati in formato TDM quando voleteaccedere ai vostri dati con LabVIEW o DIAdem. Usate inve-ce un formato più universale come l’ASCII per accedere aivostri dati usando altro software.

COME CREARE I FILE TDMIn LabVIEW potete creare file TDM in due modi: usando i VIExpress Write to Measurement File e Read fromMeasurement File o i VI dell’API Data Storage.I VI Express vi consentono di salvare e recuperare veloce-mente i dati salvati in formato TDM. La fig. 1 è la finestra didialogo di configurazione per il VI Express Write toMeasurement File. Notate che potete scegliere se creare tipidi file LVM o TDM. Tuttavia, questi VI Express vi danno pococontrollo sul raggruppamento e sulle proprietà dei vostridati e non vi consentono di usare alcune delle caratteristi-che che rendono utili i file TDM, come la ricerca di dati inbase ad alcune condizioni.

Concludiamo i l t ra in ing avanzato re lat ivo a l le tecniche d i sa lvataggio dei dat i ,presentando le caratter ist iche fondamental i del formato Tex t Data Exchange ( TDM)

Training per esperti

a cu

ra d

i M

atte

o Fo

ini

Page 34: labviewworld-02

34

02S C U O L A D I L A B V I E W

Per avere accesso a tutte le potenzialità dei file TDM, usatel’API Data Storage. L’API Data Storage è un insieme di VI chepuò scrivere file in diversi formati, e di default scrivono fileTDM. La fig. 2 è un esempio di semplice programma cheregistra le proprietà dei canali e i dati numerici su un fileTDM usando l’API Data Storage.

GERARCHIA DEI DATII file TDM vi consentono di organizzare i vostri dati in grup-pi di canali (channel group) e in canali (channel).Un channel group è un segmento di un file TDM che con-tiene proprietà per immagazzinare informazioni in uno o piùcanali. Potete usare i gruppi di canali per organizzare i vostridati e per memorizzare informazioni relative a più canali.Un channel memorizza segnali di misura scalati o dati grez-zi in un file TDM. Il segnale è un array di dati di misura. Ognicanale può anche avere proprietà che descrivono i dati. Ildato conservato nel segnale è memorizzato come datobinario sul disco per risparmiare spazio sul disco e garanti-re più efficienza.

API DATA STORAGEDi seguito sono riportati alcuni dei VI Data Storage piùusati:Open Data Storage — apre un riferimento a un file TDM.Potete specificare un percorso al file usando la finestra di

dialogo di configurazione o determinare il percorso durantel’esecuzione usando il terminale del diagramma a blocchi.Write Data — vi consente di creare canali e gruppi dicanali all’interno del vostro file.Esso vi consente di scrivere proprietà e dati per le voci checreate. La finestra di dialogo di configurazione di questo VIvi consente di selezionare quali proprietà hanno i terminalidel diagramma a blocchi e specificare come si deve com-portare il VI se cercate di memorizzare due canali con lostesso nome in un file.

Read Data — vi consente di cercare canali o gruppi dicanali in base a condizioni da voi specificate.La finestra di dialogo di configurazione di questo VI vi con-sente di specificare le condizioni di ricerca, così come il tipodi dati restituiti quando il risultato della ricerca è un canale.

Fig 1 : Creaz ione di un TDM con i l Write to Measurement Fi le

Fig 3 : Finestra d i d ia logo Open Data Storage

Fig 4 : Finestra d i d ia logo Write Data Conf igurat ion

Fig 2: Uso dell’API Data Storage per scrivere un semplice file TDM

Page 35: labviewworld-02

35

S C U O L A D I L A B V I E W

Questo VI può restituire i segnali dei dati reali da un cana-le, ma per accedere ad altre proprietà di un canale o di ungruppo di canali passate i riferimenti restituiti da questo VIal VI Get Properties. Notate che poiché una richiesta puòdare più risultati, questa funzione restituisce tutti i suoirisultati, compresi i refnum, in array.

Set Properties — questo VI vi consente di impostare leproprietà di un canale, di un gruppo di canali o di un file.Poiché il VI Write Data vi consente di impostare le proprietàdi un canale o di un gruppo di canali, questo VI è più utiliz-zato per impostare le proprietà dei file. La finestra di dialo-go di configurazione vi consente di selezionare il tipo dioggetto di cui impostare le proprietà e le proprietà da impo-stare. Potete anche usare questo VI per impostare il segna-le dei dati di un canale. Quando impostate il segnale pote-te scegliere se aggiungere il nuovo dato in coda a un datoesistente o se sostituire il dato esistente.Get Properties — vi consente di accedere alle proprietàdi un file, di un canale o di un gruppo di canali.Potete combinare questo VI con il VI Read Data per cerca-re canali o gruppi di canali e poi accedere alle proprietàdei risultati della ricerca. Potete anche usare questo VI permettere tutti i gruppi di canali in un file o tutti i canali inun gruppi di canali. La finestra di dialogo di configurazio-ne vi consente di scegliere le proprietà alle quali siete inte-ressati.Close Data Storage — chiude un riferimento a un file TDM.Notate che dovete solo chiudere il riferimento del file, qual-siasi riferimento relativo a canali e gruppi di canali si chiu-de automaticamente quando chiudete il riferimento del file.Merge Queries — vi consente di costruire richieste com-plesse.Poiché il VI Read Data vi permette di specificare solo unacondizione, usate questo VI e più VI Read Data per costrui-re richieste che hanno più di una condizione. Fate riferi-mento alla sezione Costruzione delle richieste per maggioriinformazioni.

Delete Data — usate questo VI per cancellare canali ogruppi di canali da un file.Diversamente da altri formati di file, spesso riutilizzate unsingolo TDM invece di creare un nuovo file ogni volta che unVI va in esecuzione. Quando si usano i file TDM in questomodo, il VI Delete Data vi consente di eliminare i dati inde-siderati dai file. Per esempio potete fare richiesta al file divecchi canali di dati, scriverli su un file di archivio e poi can-cellarli dal file originale. Delete Data non cerca i dati, essorichiede un riferimento al dato, perciò usate generalmenteRead Data per localizzare i dati prima di usare Delete Dataper rimuoverli.

COSTRUZIONE DELLE RICHIESTECostruire le richieste aiuta a leggere i dati per la visualizza-zione o per l’analisi. Potete effettuare richieste di base usan-do solo il VI Read Data. La fig. 8 mostra una semplice richie-sta che grafica i dati dei segnali di tutti i canali presenti nelfile con un massimo maggiore o uguale a 5.

Per accedere a proprietà diverse dal dato del segnale, usateil VI Get Properties con i riferimenti dei risultati da ReadData.Notate che poiché Read Data restituisce un array, doveteusare un For Loop per indicizzarlo prima di chiamare GetProperties. Invece di visualizzare il dato del segnale, l’esem-pio nella fig. 9 mostra le proprietà di tutti i canali conMassimo maggiore o uguale a 5.

Quando il vostro file TDM contiene gruppi di dati, spessodovete cercare i canali solo in un particolare gruppo. Potetefare questo usando due VI Read Data: uno per cercare ilgruppo di canali appropriato e il secondo per cercare i cana-li all’interno di quel gruppo. Collegare il riferimento del grup-po di canali al VI Read Data vi consente di restringere la ricer-

Fig 5 : Finestra d i d ia logo Read Data Conf igurat ion

Fig 8 : S empl ice r ichiesta TDM

Fig 9: Accesso a l le propr ietà dei r i su l tat i del le r ichieste

Page 36: labviewworld-02

36

02S C U O L A D I L A B V I E W

ca del canale ai canali di quel particolare gruppo. L’esempioin fig. 10 grafica tutti i canali nel gruppo Temperature Datacon un massimo maggiore di 76 gradi. Questo esempio assu-me che esista un solo gruppo con il nome Temperature Data.Questa è un’assunzione valida a meno che voi non verifi-chiate l’opzione Always Create new channel group/channelquando scrivete i dati con il VI Write Data. Se non potetegarantire che solo un gruppo di canali corrisponda alla vostrarichiesta, passate attraverso i risultati della richiesta usandoun ciclo For come l’esempio in fig. 10.Per costruire richieste TDM complesse, usate il VI MergeQueries. Questo VI vi consente di combinare i risultati deidue VI Read Data. Quando usate Merge Queries, poteteottenere risultati che sono nella prima richiesta e nellaseconda richiesta o combinare i risultati di entrambe le

richieste.Dopo aver chiama-to Merge Queries,chiamate Get Pro-perties per accede-re ai segnali o alleproprietà dei risul-tati delle richieste.

RAGGRUPPAMENTO DEI DATIConsiderate con attenzione il modo migliore per raggrupparei dati poiché il raggruppamento dei dati può avere un impat-to significativo sia sulla velocità di esecuzione che sulla com-plessità di implementazione di scritture e ricerche. Quandoscegliete uno schema di raggruppamento, prendete in consi-derazione il formato originale dei vostri dati e come volere cer-care o vedere i dati.Una tecnica di raggruppamento è di raggruppare i dati pertipo di dato. Per esempio, potreste inserire dati numerici in ungruppo di canali e dati stringa in un altro, oppure mettere datinel dominio del tempo in un gruppo e dati nel dominio della

frequenza in unaltro. Questo facilitail confronto di cana-li in un gruppo, mapuò rendere difficiletrovare due canaliche sono in relazio-ne uno all’altro.La fig. 12 mostra unesempio di raggrup-pamento per tipo didato. In questo

esempio i dati sulla temperatura sono messi in un gruppo e idati sul vento in un altro. Ogni gruppo contiene più canali didati. Notate che quando raggruppate per tipo di dato tipica-mente avete un numero fisso di gruppi, due in questo caso, eun numero di canali determinato dinamicamente.

Un’altra tecnica di raggruppamento è di raggruppare daticorrelati. Per esempio, potreste mettere in un gruppo tutti idati che si riferiscono ad una singola Unit Under Test (UUT).Raggruppare dati correlati vi consente di localizzare facil-mente tutti i dati relativi a un determinato soggetto, marende difficile comparare i dati associati a soggetti distinti.Il raggruppamento relazionale aiuta a convertire la memo-

rizzazione basata su cluster al formato TDM. Potete memo-rizzare tutte le informazioni da un dato cluster in un grup-po di canali, dove gli array del cluster diventano i canali delgruppo e gli elementi scalari del cluster le proprietà delgruppo di canali. La fig.13 mostra un esempio di raggrup-pamento di dati correlati. Notate che i dati in ingresso sonoun array di cluster, ognuno dei quali contiene più informa-zioni su una prova. Ogni prova è immagazzinata come un

diverso gruppo di canali. Le informazioni che si applicanoall’intera prova, come Test ID e Test Status, sono conservatecome proprietà del gruppo di canali. Gli array di dati, comei dati temporali e lo spettro di potenza, sono memorizzati incanali e le informazioni relative agli array di dati, come ilvalore efficace e la frequenza fondamentale, sono conserva-ti come proprietà dei canali. Notate che quando raggruppa-te dati correlati, c’è tipicamente un numero fisso di canali inun gruppo, mentre il numero di gruppi è dinamico.

Fig 10: R ichiesta dat i da un gruppo di canal i

Fig 12: R aggruppamento per t ipo d i dato

Fig 13: R aggruppamento di dat i corre lat i

Fig 11: R ichiesta dat i complessa

Note sull’autoreMatteo Foini, National Instruments

read

erse

rvic

e.it

n.2

12

Page 37: labviewworld-02

37

02R E P O R T

NIDAYS 2007 - FORUM TECNOLOGICO SULLA STRUMENTAZIONE VIRTUALE

L’ edizione 2007 del Forum Tecnologico sulla Stru-mentazione Virtuale (NIDays 2007) di Milano, si èchiusa con risultati davvero positivi, confermandosi,

ancora una volta, come un appuntamento di riferimentonel panorama congressuale italiano per il settore dellaMisura e dell’Automazione: 415 partecipanti, 26 esposito-ri e 33 postazioni dimostrative su un’area espositiva com-plessiva di 1000 mq, la più grande e ricca mai realizzataper NIDays, ormai scenario irrinunciabile di vivace scambiodi soluzioni, idee e ottima occasione di networking tra ipresenti all’evento.

Le sessioni convegnistiche mattutine hanno visto l'evolu-zione del concetto di Strumentazione Virtuale come prota-gonista nella parte affidata a National Instruments, che haillustrato i retroscena del Graphical System Design, ovveroil futuro di NI LabVIEW. Negli ultimi anni, la piattaformaLabVIEW si è sviluppata in nuove aree, evolvendosi da stru-mento per l’acquisizione di dati e il controllo di strumenti,

ad una piattaforma completa di progettazione grafica disistemi. Grazie alle nuove potenti funzionalità e la capaci-tà di combinare approcci diversi (ad es. programmazionedataflow e matematica testuale, recentemente introdottacon MathScript), LabVIEW 8.20 è oggi una piattaformagrafica unica per progettazione, prototipazione e distribu-zione di sistemi embedded. Di seguito, Microsoft Italia haillustrato le potenzialità del nuovo sistema operativoMicrosoft Windows Vista, non tralasciando aspetti come lacompatibilità con i prodotti National Instruments e le pos-sibili implicazioni future.

Nel pomeriggio, le 12 sessioni di approfondimento, suddi-vise nei 4 cicli tematici Software, Progettazione e Controllo,Misura e Collaudo, Applicazioni e Soluzioni, hanno illustra-to tecnologie, prodotti e linee guida delle piattaforme NIdando ampio spazio alle applicazioni tecniche finali.Da segnare in agenda la prossima edizione di NIDays: feb-braio 2008 a Roma.

Nad

ia A

lbar

ello

read

erse

rvic

e.it

213

L’appuntamento con la A maiuscola nel mondo del la Strumentazione Vi r tuale

Page 38: labviewworld-02

38

01L A V O C E D E G L I U T E N T I

Vi presentiamo una selezione di argomenti di discussione sul Forum di ILVG.it

Inviato: 20 Feb 2007 11:34 am Buongiorno a tutti,dopo una breve chiacchierata con Geppo sono venuto a conoscenza di questo forum, e lui stesso mi haconsigliato di inotrare questa breve guida da merealizzata per installare Labview su Ubuntu. Sottolineoche ho installato labview 8.0 su ubuntu 6.10, poterbbero

esserci problemi legati a versioni diverse di labview o ubuntu.Spero comunque che possa essere d'aiuto a tuttiutilizzatori di distro Debian Based che voglionoprogrammare in labview.Complimenti per il forum, ne farò largo uso!!! [continua su http://www.ilvg.it/ht/2715]

Luigi15

LabVIEW su Ubuntu Linux http://www.ilvg.it/ht/2715

Inviato: 05 Apr 2007 7:53 am Ciao a tutti, sono nuovo di queste parti e avrei bisogno di alcuni consigli.Il mio progetto sarebbe questo: voglio costruire un piccolo impianto casalingo per birrificare; la teoria ce l'ho, ho già provato a creare qualcosa ma ora vorrei un pò upgradarmi. Vorrei infatti cercare di gestire il tuttoin modo un pò più automatizzato; niente di assurdo.Questa è la mia idea: Vorrei acquisire dei segnali e gestiredegli attuatori; vorrei acquisire la temperatura del mosto,

gestire delle semplici valvole che semplicemente siaprono e si chiudono e questo già basterebbe per iniziare;in più potrebbe servire una valvola che regola il flusso

di gas che dal bombolone va al fornello per gestiremeglio la temperatura e un motorino che faccia muoverel'agitatore per "mescolare" il mosto.Spero di essere stato abbastanza chiaro; ora un paio di domande (ah, ovviamente poi gestirei il tutto con LabView e una piccola scheda di acquisizione)[continua su http://www.ilvg.it/ht/2930]

wwollas

Progetto Birra... http://www.ilvg.it/ht/2930

scorbux776

Comunicazione tramite porta seriale http://www.ilvg.it/ht/2878

Ale

ssan

dro

Ric

co

Inviato: 21 Mar 2007 3:30 pm Salve a tutti.Brevemente vi spiego quale è il problema.Abbiamo un modulo elettronico per esperimenti di fisicanucleare che ingloba in se le funzioni di amplificatore e CFD.Sul modulo gira un firmware che finora abbiamocomandato via porta seriale o tramite minicom (su linux)o hyperterminal (su windows).Digitando comandi del tipo n0 (invio) S1(invio) comunichiamo il settaggio al modulo che risponde con una stringa di circa 64 caratteri del tipo

ch1, c 222, cft 35, s 0, Pin, g 127, G 3, e0....

oppure

errore ?

Se proviamo ad utilizzare uno qualsiaisi degli esempi di labview (esempi->hardware->serial->basic serial.vi)per comunicare con lo strumento (usando le funzioni Visainitialize, VISA write, Visa read,..) otteniamo semprenessun errore in scrittura e un errore in lettura (il cui codice non ha descrizione)! Il modulo comunque non reagisce, cioè all'oscilloscopionon vediamo l'avvenuto cambio di settaggio! [continua su http://www.ilvg.it/ht/2878]

Page 39: labviewworld-02

39

L A V O C E D E G L I U T E N T I

Database connectivity (SQLite) http://www.ilvg.it/ht/2864

Selezione di un cluster ricorsivamente http://www.ilvg.it/ht/2983

Note sull’autore: Alessandro Ricco (www.agilesystems.it), ILVG.it Admin & LabVIEW Champion

read

erse

rvic

e.it

n.2

71

Inviato: 19 Mar 2007 2:32 pm Ciao a tutti,aiutatemi a capire un po, ma il database connectivitydeve per forza essere collegato a un database server

che sia MySQL access o altro?? non e possibile creare un database tipo file senza dover ricorrere ad un software esterno?? grazie [continua su http://www.ilvg.it/ht/2864]

Luca s lupz

Inviato: 19 Apr 2007 10:34 am ...ma ciao! dopo aver deciso di lanciarmi nell'avventura sqlite che al momento non sembra dare alcun problema, mi trovo a dover costruire un interfaccia utente per consultare il DB. Per questo mi trovo di fornte ad un problema che illustro subito (e che allego in figura).Ho un cluster con all'interni piu' cluster. Questi clusterhanno la stessa struttura.Sicocme dovro' fare la stessa operazione per tutti

i cluster, volevo utilizzare un ciclo for anzichè singoleoperazioni per singoli cluster.Il problema pero' è che io dovro' estrapolare dal clusterl'elemento A e l'elemento B in modo che alla primaiterazione siano quelli del cluster "serie" alla secondasiano quelli del cluster "esito" e cosi' via.Come posso fare? È possibile?(mi pare di aver già fattotempo fa una domanda simiel ma non sono riuscito a trovare il topic relativo).[continua su http://www.ilvg.it/ht/2983]

Gepponl ine

Memorizzazione dato (tipo latch D) http://www.ilvg.it/ht/3028Inviato: 26 Apr 2007 10:33 amCiao a tutti,sono uno studente di ingegneria elettronica specialisticache sta lavorando con LabView 8.20 per la tesi.Sto diventando matto perché non riesco a fare una cosa:memorizzare un dato.Per esempio:voglio fare un filtro passa basso con frequenza di taglioimpostabile dall’utente ogni qual volta egli lo voglia.Ho anche messo un valore di default. Il VI parte filtrandocol valore di default (100) poi se l’utente vuole cambiaref, schiaccia un pulsante che apre una finestra di dialogo,inserisce il nuovo valore e schiaccia ok.

Questa operazione deve poterla fare ogni volta che vuole,ma deve restare memorizzato (latchato) il dato immessofinché premendo l'ok della finestra non se ne inserisce unaltro (il latch lascia passare il dato). Io invece non riescoa tenere il dato memorizzato, dopo un ciclo torno alvalore di default.Se qln mi aiuta mi fa un piacere, spiegandomi lasoluzione del mio problema, o dandomi il VI stesso dascaricare per vederlo meglio, oppure spiegandomi come si fa in generale se si vuole tenere un nodo a un certovalore fino all'inserimento di uno nuovo.Grazie1000!!!![continua su http://www.ilvg.it/ht/3028]

pel le2005

Page 40: labviewworld-02

40

02D A L L A C A R T A A L W E B

HTTP://WWW

Usare il VI Server per accedere alle variabili globali (in locale e da remoto)

I VI d’esempio allegati (‘Get Value.vi’ e ‘Set Value.vi’) utilizzano il VI Server per accedere ai dati da una variabile globaledenominata ‘Globals.vi’ (così chiamata perché consiste di tre variabili/controlli: String [di tipo stringa], Boolean [di tipobooleano] e Numeric [di tipo numerico, in doppia precisione]).‘Get Value.vi’ legge il valore corrente di String dalla variabile globale e lo visualizza sul suo pannello frontale. ‘Set Value.vi’aggiorna il valore di String nella variabile globale con ciò che viene digitato nel controllo stringa del suo pannello frontale.Si possono facilmente modificare i VI per accedere ai valori booleano e/o numerico.

Link alla pagina:

http://zone.ni .com/devzone/cda/epd/p/ id/4256

Generare e ordinare numeri in LabVIEW

Questo esempio illustra come sviluppare un’applicazione che genera e ordina un array di numeri utilizzando l’algoritmoBubble Sort.

Link alla pagina:

http://zone.ni .com/devzone/cda/epd/p/ id/3183

Un ‘assistente virtuale’ aiuta l’insegnante ad organizzare i dati delle sue classi

http://zone.ni .com/devzone/cda/epd/p/ id/3498

Questo esempio è stato concepito per illustrare i concetti di I/O su file, strutture di dati e analisi dei dati in LabVIEW.L’applicazione permette a un docente di memorizzare le informazioni e i voti di uno studente, leggere e scrivere taliinformazioni su un file e calcolare i voti finali e le statistiche della classe.

Link alla pagina:

Ec c o a l c u n i l i n k c h e v i p e r m e t te r a n n od i a m p l i a r e i l n u m e r o d i a r g o m e n t i d e s c r i t t i i n q u e s to n u m e r o d e l l a r i v i s t a

Page 41: labviewworld-02

41

D A L L A C A R T A A L W E B

Condividere dati ‘flattened’ fra LabVIEW 7.x e 8.0

Le funzioni ‘Flatten To String’ e ‘Unflatten From String’ a volte cambiano nel passaggio da una versione di LabVIEW a un’altra. L’esempio evidenzia la procedura che occorre prendere in considerazione per garantire la compatibilità tra i dati “flattened” delle versioni 7.x e 8.0 di LabVIEW.

Link alla pagina:

http://zone.ni .com/devzone/cda/epd/p/ id/2276

Funzione di ricerca binaria di un array 1D in LabVIEW

Questo esempio mostra una modalità molto efficiente di ricerca binaria all’interno di un array unidimensionale.Si tratta di un VI polimorfo che accetta la maggior parte dei tipi di dato numerico e anche di tipo stringa.

Link alla pagina:

http://zone.ni .com/devzone/cda/epd/p/ id/220

Riavviare programmaticamente LabVIEW e un VI

Questo programma d’esempio chiude programmaticamente LabVIEW, lo riapre e riavvia nuovamente il VI che era in esecuzione. Estraete i file nella stessa directory ed aprite il VI contenuto nella cartella relativa alla vostra versione di LabVIEW. L’esempio può essere eseguito solo su Windows.

Link alla pagina:

http://zone.ni .com/devzone/cda/epd/p/ id/978 http://www.vnubusiness .com

Ridimensionare un’immagine in LabVIEW

Nella versione 7 e successive di LabVIEW, il controllo ‘Picture’ (che si trova nella paletta dei controlli, sotto Graph » Controls »Picture) ha una proprietà chiamata Zoom Factor, che potete usare per ridimensionare l’immagine memorizzata nel controllo.Per esempio, per ridurre le dimensioni dell’immagine del 50% rispetto alle sue dimensioni originali, collegate un valorepari a 0.5 a questa proprietà. Per aumentare le dimensioni dell’immagine del 200% rispetto alle sue dimensioni originali,collegate un valore pari a 2.

Link alla pagina:

http://zone.ni .com/devzone/cda/epd/p/ id/2201

Caricare e salvare file con LabVIEW e il MathScript Node

http://zone.ni .com/devzone/cda/epd/p/ id/4183

‘Load&Save.vi’ dimostra quanto sia facile in LabVIEW sfruttare le tecniche di I/O su file con le funzioni integrate di elaborazione digitale dei segnali di MathScript. E’ possibile caricare un file, ridurre il rumore utilizzando filtri passabasso, eseguire analisi FFT e salvare i dati elaborati su file.L’esempio usa l’Express VI File Dialogue per selezionare un file .wav e il ‘Sound File Read Simple.vi’ per caricare la formad’onda. E’ stato fornito il file ‘WindowsStartup.wav’. L’Express VI Play Waveform riproduce il file prima di filtrare i dati dellaforma d’onda nel MathScript Node. I dati filtrati e le forme d’onda FFT vengono visualizzati sul pannello frontale,mentre il file .wav risultante viene riprodotto mediante l’Express VI Play Waveform. L’Express VI File Dialogue invita gli utenti a selezionare il file da salvare. Tale file viene salvato usando il ‘Sound File Write Simple.vi’.

Link alla pagina:

read

erse

rvic

e.it

n.2

66

Page 42: labviewworld-02

MC4 OLTRE LE ASPETTATIVE

S ono stati oltre 520 i visitatori professionali che han-no partecipato alla terza edizione di MC4, la mostraconvegno dedicata alle tecnologie e ai prodotti per il

controllo del movimento organizzata da VNU BusinessPublications Italia e che si è svolta lo scorso marzo pressole strutture di Bologna Congressi. Con un numero di pre-senze superiore del 23% rispetto all’edizione del 2006,MC4 si è quindi affermata definitivamente nel panoramacongressuale italiano quale punto di riferimento in ambitodi controllo del movimento.Affollatissime le sessioni convegnistiche mattutine epomeridiane, tanto da aver costretto il pubblico, in alcunicasi, a sistemarsi all’esterno delle sale stracolme con soliposti in piedi.“Il successo che il pubblico ha decretato per MC4 è essen-zialmente legato al vantaggio di poter trarre il massimoprofitto da un impegno di durata ragionevolmente breve,una giornata al massimo”, sottolinea Alberto Taddei,responsabile del Cluster Trade di VNU BusinessPublications Italia, divisione che – oltre ad organizzare lemostre convegno- pubblica vari titoli tra cui le rivisteAutomazione Oggi, Automazione e Strumentazione,Elettronica Oggi, Progettare e RMO. “Questa formula con-sente infatti al visitatore di poter efficacemente organizza-re la propria giornata scegliendo i seminari e prendendodiretto contatto con le aziende del settore che egli ritienepiù interessanti”.Non è inoltre da sottovalutare anche la disponibilità delbuffet che, tradizionalmente, oltre a rappresentare un mo-mento di relax conviviale, costituisce una importantissimaoccasione di networking personale tra tutti gli intervenuti.

“Dal punto di vista delle aziende partecipanti”, prosegueTaddei, ”l’interesse sempre più forte verso questo tipo dieventi risiede nell’ottimo risultato in termini di costo acontatto per tempo, che offre loro la possibilità di massi-mizzare i risultati di un impegno che non va oltre l’arco diuna mattinata e un pomeriggio: e tutti noi ben sappiamo,oggi, quanto il tempo sia diventato una risorsa preziosa”.Per quanto riguarda le mostre convegno organizzate daVNU Business Publications Italia, i prossimi appuntamentisono:

VforM Vision for Manufacturing17 maggio 2007 Torino e 23 maggio 2007 Vicenza

C2 Control & Communication20 settembre 2007 Milano e 25 settembre 2007 Bari

Focus Embeddednovembre 2007 Milano e Roma

Vale

rio

Ale

ssan

dron

i

42

02R E P O R T

La ter za ediz ione del la mostra convegno dedicata a l le tecnologie e a i prodott i per i l mot ion control ha v isto i v is i tator i c rescere del 23%

read

erse

rvic

e.it

214

Page 43: labviewworld-02

DATA LOGGING TOUR

Ha toccato tutto il territorio nazionale il road show chenei mesi di aprile e maggio, in 9 città italiane, ha rap-presentato una tappa obbligata di approfondimento

ed aggiornamento sulle utlime novità del Data Logging emonitoraggio industriale.Obiettivo della manifestazione itinerante: portare la tecno-logia National Instruments a chi deve realizzare applicazio-ni di data logging, dalle più semplici, basate su PC e senzabisogno di programmazione, come l’acquisizione di segnali

lentamente variabili nel tempo, a quelle più complesse, dovesi rende necessario l’utilizzo di sistemi distribuiti o è pre-sente un elevato numero di canali, come la registrazione neltempo delle prestazioni di una rete di distribuzione dell’e-nergia elettrica.L’evento si è aperto con una sessione plenaria dedicataall'analisi delle potenzialità di mercato, del posizionementoe dell’attuale stato dell’arte delle tecnologie di Data Log-ging in Italia. La giornata è proseguita presentando soluzio-ni PC-based e pronte all’uso adatte alle esigenze applicati-ve più svariate. In perfetto stile National Instruments, ilseminario non ha deluso le aspettative del pubblico di chinecessita di aggiornamenti rapidi e di mettere subito in pra-tica le conoscenze acquisite illustrando soluzioni rapide econcrete.

Numerose, infatti, le tematiche affrontate e corredate daesempi dimostrativi:• Come migliorare la produttività di sistema e ridurre i tempi

di sviluppo grazie al software di data logging interattivoNI LabVIEW Signal Express: un ambiente di misura com-pletamente interattivo adatto all’acquisizione, analisi epresentazione dati da centinaia di dispositivi.

• Misure elettriche e da molteplici tipologie di sensori, concondizionamento di segnale integrato, isolamento e con-

nettività diretta, sfruttando tutta la semplicità plug andplay della tecnologia USB. Unendo la facilità d'uso ed ilbasso costo di un data logger con le prestazioni e la fles-sibilità della strumentazione modulare, NI CompactDAQpermette misure veloci ed accurate con un sistema com-patto, semplice ed economico.

• Soluzioni di data logging embedded intelligente e distri-buito via Ethernet.

• Accesso alle informazioni relative alle più comuni configu-razioni dei sistemi di monitoraggio per misure di tempera-tura, deformazione, forza, pressione, ecc.

• Supervisione industriale per la creazione di sistemi conelevato numero di canali.

• Tecnologia real-time per controllo di macchine industriali.• Generazione di report e analisi off-line.

Nad

ia A

lbar

ello National Instruments por ta le so luz ioni Data Logging in tour per l ’ I ta l ia

43

02R E P O R T

Read

erse

rvic

e.it

n°2

86

Page 44: labviewworld-02

Una cornice di grande impatto per entrambe le dateitaliane del Seminario, 27 marzo a Milano e 29 mar-zo a Roma. Due atenei, il Politecnico di Milano e

l’Università degli Studi “Tor Vergata” di Roma, che aprono leporte a discussioni tecniche specialistiche di grande interessee utilità per esperti legati al mondo della progettazione, del-la prototipazione, dell’ingegneria di test per la validazione diprodotto e del collaudo finale di produzione.L’Ing. Massimiliano Banfi – System Engineer Mediterranean diNational Instruments Italy – speaker delle due giornate, hafornito ai presenti in sala elementi di aggiornamento sulleevoluzioni tecnologiche del mondo della progettazione ed

effettuato dimostrazioni pratiche relative alle tre fasi del VDiagram, ovvero la fase iniziale di modellazione della fisicadel fenomeno da controllare, quella di progettazione ed im-plementazione di una strategia di controllo, ed infine la pro-totipazione della strategia di controllo. Le varie fasi del VDiagram sono state coadiuvate da demo in cui la plant dacontrollare era un motore a c.c.. Un equilibrato connubio trateoria e pratica sembra, tuttavia, non essere stato l’unicoingrediente segreto dietro al successo del seminario: comesottolinea l’Ing. Banfi, “parte del merito della grande affluen-za di pubblico si può attribuire anche alla presentazione ditool utilizzabili in un approccio di tipo meccatronico, ovvero lacombinazione sinergica di ingegneria meccanica, elettronica,teoria del controllo e computer, che sta oggi suscitando ungrande interesse nel mercato italiano e internazionale”.

CORSO PRATICO INTRODUTTIVO ALLA PROGRAMMAZIONE DI DISPOSITIVI REAL-TIME CON LABVIEW

10 date, 10 città italiane, 10 opportunità di fare pra-tica. L’ormai collaudata formula dell’eventoHands-On ha decretato il successo del Corso pra-

tico introduttivo alla programmazione di dispositivi Real-Time con LabVIEW: 250 partecipanti. Durante la sessioneintroduttiva, gli esperti National Instruments hanno avvici-nato i corsisti alle problematiche ed alle capacità dei siste-mi real-time per apprendere gli elementi di base della pro-grammazione grafica applicata a sistemi distribuiti intelli-genti. I tecnici NI hanno successivamente guidato i presentinell’apprendimento, partendo da esempi elementari diacquisizione e controllo fino alla realizzazione di un sistemaretroazionato ad anello chiuso con logging dei dati e pub-blicazione dell’interfaccia utente via web. Tutti i partecipan-ti hanno potuto provare le potenzialità di LabVIEW Real-Time e delle piattaforme PAC (Programmable AutomationController) di National Instruments con una postazione a

propria disposizione e l’affiancamento di un istruttoreNational Instruments. Secondo Roberto Isernia, TechnicalMarketing Engineer di National Instruments Italy, “il suc-cesso che da sempre il pubblico decreta ai diversi eventi ditipo hands-on proposti da National Instruments, è legato alvantaggio concreto di poter provare di persona le tecnolo-gie presentate, e crescere nelle competenze in un lasso ditempo ragionevolmente breve.Nel mercato della misura e dell’automazione si sta semprepiù consolidando l’esigenza di hardware indipendente ingrado di poter sfruttare la potenza di calcolo e le potenzia-lità del PC. In questo scenario, si stanno distinguento lepiattaforme PAC e “NI LabVIEW Real-Time”, aggiungeIsernia, “cuore pulsante della piattaforma di sviluppo NI eperfettamente in linea con le esigenze di mercato consoli-date e nascenti, non poteva che conquistarsi consenso edinteresse unanime”.

Nad

ia A

lbar

ello

Read

erse

rvic

e.it

n°2

88

CONTROL DESIGN SEMINAR

Nad

ia A

lbar

ello

44

02R E P O R T

Un seminar io in due tappe ambientato nel mondo accademico che st r izza l ’occhio a l l 'universo industr ia le

Read

erse

rvic

e.it

n°2

87

Un a l t ro Road Show ha fatto centro!

Page 45: labviewworld-02

EVENTI NIFORUM AEROSPAZIO E DIFESA 2007Roma, 30 maggio

NIWEEKAustin, 7, 8, 9 agosto

EVENTI VNUVISION FOR MANUFACTURINGTorino, 17 maggioVicenza, 23 maggio

CONTROL & COMMUNICATION C2Milano, 20 settembreBari, 25 settembre

FIERESENSOR & TESTMessenzentrum Nürnberg, 22-24 maggio

SALON SIMTEC LYONLione, 24 maggio

SALON DMR (DÉVELOPPMENT,MODERNISATION ET RECHERCHE)Saint Nazaire, 7 giugno

SAE TOPTECTorino, 11-14 giugno

02A P P U N T A M E N T I

45

Come sempre, vi segnaliamo i prossimi corsi di formazione di LabVIEW e i principali eventi internazionali che vedranno la partecipazione di National Instruments

CORSI DI LABVIEWLABVIEW BASE I: INTRODUZIONEMilano dal 7 al 9 maggio

dall'11 al 13 giugnodal 9 all'11 lugliodal 17 al 19 settembre

Roma dal 07 al 09 maggio dal 18 al 20 giugnodal 24 al 26 settembre

Torino dal 28 al 30 maggioPadova dal 4 al 6 luglio

LABVIEW BASE II: SVILUPPOMilano dal 14 al 15 giugno

dal 20 al 21 settembreRoma dal 21 al 22 giugno

dal 27 al 28 settembrePadova dal 10 all'11 maggio

LABVIEW ACQUISIZIONE DATI E CONDIZIONAMENTO DEI SEGNALIMilano dal 14 al 16 maggioRoma dal 9 all'11 luglioPadova dal 20 al 22 giugno

LABVIEW INTERMEDIATE I:TECNICHE DI DESIGN PROFESSIONALIMilano dal 21 al 23 maggio

dal 24 al 26 settembreRoma dal 14 al 16 maggioPadova dal 6 all'8 giugnoTorino dal 25 al 27 giugno

LABVIEW INTERMEDIATE II:CONNETTIVITÀMilano dal 18 al 19 giugnoRoma dal 17 al 18 maggioPadova dal 12 al 13 luglio

LABVIEW SVILUPPO DI APPLICAZIONI REALTIMEMilano dal 25 al 27 giugnoPadova dal 23 al 25 maggio

LABVIEW ADVANCED I:ARCHITETTUREMilano dal 2 al 4 luglio

MANIFESTAZIONEILVG DAYILVG Day è una manifestazione libera e gratuita dedicata

alle tecnologie e alla programmazione LabVIEW.

L'evento, alla sua prima edizione, vuole essere un mo-

mento di ritrovo per le tutte quelle persone che gravita-

no, per lavoro, per passione o per semplice interesse, nel-

l'ambiente LabVIEW. Durante l'ILVG Day verranno propo-

ste presentazioni, dimostrazioni e verrà dato spazio a

confronti aperti sulle tematiche ritenute più interessanti

dal pubblico. ILVG Day è organizzazo da ILVG.it, user

group degli utenti LabVIEW Italiani, e si terrà Sabato 23

Giugno presso il Collegio Valla dell'Università di Pavia.

Page 46: labviewworld-02

46

02L A B V I E W E L A V O R O

AAA Conoscete bene LabVIEW? Date un’occhiata alle offerte di lavoro che abbiamo selezionato da ILVG.it…

RICERCHIAMO

DESIGN & DEVELOPMENT ENGINEER

Sistemi & Organizzazione Head Hunting

firm, is in charge of the Research &

Selection of a Design & Development

Engineer, for an outstanding engineering

firm located in the U.S.

Technical tasks:

Lead the design & development of custom

torque sensor solutions for Formula 1

racing and/or aerospace applications from

conceptual design through dyno and/or

track testing and support, which often

requires travel to Europe. Design and/or

upgrade customized testing apparatus for

applying mechanical loads consisting of

load frames, motor, gearbox, cranck

mechanism, final drive. Write and/or

upgrade software (tipically in LabVIEW

and/or Matlab) to control torque test rigs,

which include either electromechanical or

electro-hydraulic actuation. Write and/or

upgrade software to analyze and evaluate

torque sensor data generated on test rigs,

dynamometers and vehicles.

Design new signal conditioning circuits

for new sensors aand actuators, integra-

ting microcontroller based intelligence

into existing analog measurements cir-

cuits, customizing power input and/or

signal output parameters for a given

application. Optimize existing systems for

operation at high temperature and in

harsh environments by experimenting

with various constructions and analyzing

test results and making recommenda-

tions. Conduct and supervise testing pro-

grams including temperature, thermal

cycle, vibration, overload, electromagne-

tic interference, and magnetic compatibi-

lity testing. Develop novel sensor packa-

ging and/or transducer concepts for new

applications such as NASCAR racecar appli-

cation, turbine engine internal shaft appli-

cation, and oil drilling tool application.

Contribute to transitioning the existing

torque sensor product line from a low-

volume product to a medium-volume pro-

duction capability by developing and

implementing streamlined manufacturing,

assembly and logistics processes as well as

Design for Manufacturability. Work with

the R&D team to develop new magnetoe-

lastic and/or mechatronic products such

as non-contract actuators, integrated tor-

que/speed sensors, multi-axis stress gau-

ges and angular and axial position sen-

sors, and non-destructive evaluation

(NDE) probes.

Sample Other Tasks:

Analyze and professionally document

laboratory test, dyno test, and track data

pertaining to the systems and/or compo-

nents described above. Travel to client

sites in Europe, Japan and the US to moni-

tor system installation and provide field

support at dyno tests, track tests and

races as required. Assist in drafting and

presenting technical proposals to pro-

spective and existing clients.

Requirements:

Mechanical, electrical or aerospace engi-

neering degree. A concentration in sensors,

control systems or mechatronics is recom-

mended though not required. Two to four

years of professional engineering expe-

rience. Proficiency in MS Office, Matlab and

3D solid modelling software packages.

Experience with circuit layout and simula-

tion software such as the OrCad suite would

be helpful.Self-motivation, agility learning,

flexibility, outstanding communication

skills. Ability to work in global teams

and interface with clients from all over the

world. Fluency in the English language.

The present is addressed to both Men and

Women (L. 903/77). Resumes to:

[email protected]

Data: 28/03/2007

www.topjob.it

INGEGNERI ELETTROTECNICI/

ELETTRONICI (Rif: ALE2903S)

Società operante nella produzione e com-

mercializzazione di macchinari per col-

laudo normativo-funzionale, sita in

Milano zona Rubattino, ricerca:

2 Ingegneri Elettrotecnici/Elettronici

per la progettazione hardware e software

di sistemi di automazione.

Requisiti:

laurea in Ingegneria Elettrotecnica/

Elettronica con circa 2 anni di esperienza;

oppure Perito Elettronico con esperienza di

almeno 4/5 anni nella progettazione.

Buona conoscenza di: schede di acquisi-

zione per misure elettriche; hardware

analogico e digitale, software LabVIEW.

Discreta conoscenza dell’inglese tecnico,

buona conoscenza del pacchetto Office.

Sede di lavoro: Milano zona Ribattino.

Invia il tuo Curriculum Vitae al seguente

Indirizzo di posta elettronica:

[email protected]

Invia il tuo Curriculum Vitae a:

Obiettivo Lavoro -

Agenzia per il Lavoro - Spa

Via Europa, 7

20097 SAN DONATO

Tel. 02/5274528 - Fax 02/55607001

E-mail: [email protected]

Le ricerche sono rivolte a candidati dell'u-

no e dell'altro sesso ai sensi delle

L.903/77 e L.125/91.

www.obiettivolavoro.it

SPECIALISTA JUNIOR IN ATTUATORI

E STRUMENTAZIONE (RIF. ATT/08)

Area: Sistemi informativi/Web

Azienda di componenti e soluzioni mec-

catroniche in continuo trend di crescita ci

ha incaricato di ricercare urgentemente

uno Specialista Junior in Attuatori e stru-

mentazione

Page 47: labviewworld-02

47

L A B V I E W E L A V O R O

Requisiti:

Laurea in Ingegneria elettronica, elettri-

ca o in Fisica, indirizzo automazione ed

elettronica industriale;

Esperienza almeno biennale in ambito di:

microattuatori e microsensori (elettro-

magnetici, piezoelettrici, magnetostrit-

tivi, Smart materials, ottici, ecc.);

Microsistemi integrati e MEMS;

Azionamenti ed Elettronica di potenza;

Strumentazione elettronica;

Dispositivi elettronici.

Buona conoscenza di LabVIEW, Spice e Orcad

Esperienza di sviluppo software in

C/C++ e/o Matlab, in ambiente

Windows o Unix/Linux

Completano il profilo un forte orienta-

mento al raggiungimento degli obiettivi

assegnati e doti di team working.

Sede di lavoro: Bari

Se interessati si prega di inviare il pro-

prio curriculum vitae, citando il riferi-

mento d¡?interesse e autorizzando al

trattamento dei dati personali a:

ASSIOMA SELEZIONE E SVILUPPO

Email: [email protected]

La ricerca è rivolta a candidature di

entrambi i sessi (L. 903/77)

Data: 26/07/2006

Rif : 766

www.assiomaselezione.it

SISTEMISTA CONTROLLISTA

PER DRIVE SYSTEMS

Descrizione: la funzione riguarda lo svi-

luppo dei controlli e dell'ideazione di

algoritmi avanzati per creare funzioni

innovative per gli elettrodomestici del

futuro.

Funzione Aziendale: Produzione/tecni-

ca/qualità.

Località: Cassinetta di Biandronno (VA)

Titolo di Studio: Dottorato di ricerca o

Laurea più esperienza equivalente in

Ingegneria dell'Automazione o Elettrica

- indirizzo Automazione o Segnali e

Sistemi.

Conoscenze Tecniche: familiarità con

sistemi di controllo digitale, con la

simulazione e il controllo dei motori

elettrici con i tools di simulazione

Matlab-Simulink, e con il linguaggio C.

La conoscenza dei tool di simulazione di

sistemi meccatronici, di ADAMS e dei

sistemi di controllo real time, Dspace o

LabVIEW costituirà titolo preferenziale.

Conoscenze Linguistiche: inglese.

Esperienza: 3-5 anni di esperienza

sviluppata applicando la teoria dei

sistemi, dei controlli automatici e delle

tecniche d'identificazione e signal pro-

cessing applicate al controllo di motori

elettrici. Esperienza maturata nei settori

elettronica per beni di consumo o per

automotive, aerospazio, robotica,

servomeccanismi, motori elettrici, pro-

dotti professionali.

Sede: Lombardia, Varese

www.jobadvisor.it

DRE HYDRAULIC COMPONENTS

For multinational company based in

Turin operating in the automotive field

we are looking for a DRE Hydraulic

Components (Ref. HYD/MJ)

The Tasks

The candidate will be involved in the

following activities:• Diesel injection system components

development responsibility, from pre-

development to Start of Production

and later during production, according

to Global Powertrain Development

Process and Change Management

Process.• Definition of technical requirements;

external suppliers' design coordina-

tion; component and system validation

planning; drawing release according to

Product Programs and Powertrain

Master Timings.• Assessment of supplier offers regar-

ding technical content, timing and pro-

ject requirements• Assessment and consolidation of deve-

lopment results.• Continuous product improvement and

cost reduction planning and coordina-

tion.• Evaluate and release design changes,

according to GM tools and procedures.

The Skills• Degree in Mechanical Engineering or

equivalent.• Experience on Fuel injection systems

development and testing.• Knowledge on Unigraphics system or

similar for fuel systems design and

packaging; ASME standards.• Good knowledge of Change Mana-

gement Process for product quality

improvement and cost reduction.• Good knowledge of Microsoft Office,

knowledge of Labview, INCA, Matlab.• Fluent English, team working, good

communication and leadership skills

are required.

All interested candidates are kindly

requested to send their C.V. including an

authorisation for the treatment of sensi-

tive personnel data (D.lgs 196/2003) to

the e-mail: [email protected]

I candidati ambosessi (L.903///) sono

invitati a leggere su www.adecco.it

l'informativa sulla privacy (art.13 D. Lgs.

196/03).

www.adecco.it

02