Labviewworld 02
Labviewworld 02
E 5,00 L A P R I M A R I V I S TA I TA L I A N A P E R L A CO M U N I T L A BV I E W
MAGGIO
2007
LABVIEW E LHYPERTHREADING LABVIEW PER LA MISURA E LANALISI DEI DATI LUAVIEW: LABVIEW PI SCRIPT LUA
SCENARIO
02
ome avrete gi constatato sfogliando LabVIEW World, la rivista si articola in alcune sezioni fondamentali. Vediamo insieme quali sono i criteri con i quali abbiamo proceduto nella loro scelta. 'Scenario' l'editoriale, che viene di volta in volta dedicato all'argomento sul quale vogliamo richiamare la vostra attenzione. Nei primi numeri, naturalmente, abbiamo parlato soprattutto di LabVIEW World, ma non sar sempre cos. Dopo il sommario, che riporta il titolo, un'icona e una breve descrizione dell'argomento di ogni articolo, 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 fra LabVIEW 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 illustrano realizzazioni basate sul software di programmazione grafica di National Instruments. In sostanza, nella prima parte della rivista, troverete informazioni destinate soprattutto a chi conosce gi, a vario livello, LabVIEW. Ritenete che le vostre conoscenze sull'argomento non siano sufficienti? Niente paura. Abbiamo infatti previsto la 'Scuola di LabVIEW', una sezione che contiene sempre due articoli: uno per i principianti ed uno per i pi esperti. Raccogliendo i numeri della rivista, 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 vostre esigenze! Tornando indietro, troverete 'Dalla carta al web'. L'idea di fondo descritta nel trafiletto di apertura. In sostanza, in questa sezione vi segnaliamo alcuni spunti di approfondimento tratti dall'inesauribile serbatoio del web. Proprio perch gli argomenti relativi a LabVIEW sono innumerevoli e lo spazio sulla rivista limitato, lasciamo a voi il compito di scaricare il file dalla rete e leggerlo sul vostro computer. In ogni rivista, poi, c' sempre una rubrica dedicata alla posta dei lettori. Non poteva quindi mancare 'La voce degli utenti'. Non si tratta per delle vostre lettere, ma di argomenti 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 hanno visto la partecipazione di National Instruments. Siamo arrivati all'ultima sezione, quella di 'LabVIEW e lavoro'. Se desiderate sfruttare la vostra conoscenza di LabVIEW, leggete le inserzioni che pubblichiamo: forse troverete quella che fa per voi. E non dimenticate: se avete qualche dubbio o desiderate maggiori informazioni su qualche argomento, utilizzate liberamente il codice readerservice riportato in calce ad ogni articolo. Otterrete tempestivamente una risposta!
Valerio Alessandroni
W H AT S N E W
02
ational Instruments ha potenziato ulteriormente la sua offerta software per la progettazione grafica di sistemi grazie al rilascio di LabVIEW SignalExpress, un software interattivo di misura che semplifica la registrazione dei dati e il controllo della strumentazione, oltre ad essere un valido ausilio per la didattica. LabVIEW SignalExpress si fonda sulle funzionalit di misura, analisi e generazione di report di LabVIEW e consente di controllare centinaia di dispositivi di misura in modo facile ed intuitivo. National Instruments ha sviluppato LabVIEW per creare applicazioni custom per lautomazione delle misure, ha affermato Jeff Kodosky, creatore di LabVIEW e co-fondatore di National Instruments. Grazie al nuovo software LabVIEW SignalExpress, ora parte integrante della famiglia di LabVIEW, gli utenti potranno eseguire in modo ancora pi semplice le operazioni di misura pi comuni e avranno anche accesso alle piene potenzialit della piattaforma NI LabVIEW.
LabVIEW SignalExpress include anche funzioni per la registrazione dei dati come il monitoraggio di allarmi e il salvataggio condizionato. Inoltre, dato che il software basato sulla tecnologia Express di LabVIEW, possibile generare codice grafico LabVIEW con un semplice click del mouse, per estendere le applicazioni ricorrendo a interfacce utente originali oppure aggiungere logica personalizzata per applicazioni avanzate di salvataggio dati. LabVIEW SignalExpress, abbinato al sistema modulare di acquisizione dati NI CompactDAQ, permette una configurazione rapida e plug-and-play del sistema di misura. NI CompactDAQ, basato su USB, con oltre 30 moduli a disposizione, permette agli utenti di integrare vari tipi di misura come RTD, I/O di corrente, I/O digitali ad alta densit, I/O analogici ad alta velocit e I/O analogici ad elavata accuratezza. La combinazione della piattaforma plugand-play NI CompactDAQ USB con LabVIEW SignalExpress, offre una soluzione per la registrazione dei dati completa e facile da usare, in grado di ridurre notevolmente i tempi di configurazione e di misura.
nuale di pulsanti e manopole degli strumenti. LabVIEW SignalExpress in grado di automatizzare le operazioni di acquisizione, analisi e memorizzazione dei dati per oltre 400 strumenti modulari e stand-alone; inoltre, il software permette di risparmiare tempo con lautomazione di molte operazioni di misura, come la caratterizzazione dei circuiti, il frequency sweeping e la registrazione dei dati.
LabVIEW SignalExpress permette di migliorare le operazioni di misura grazie a oltre 200 funzioni di elaborazione e analisi, incluse quelle nel dominio del tempo e della frequenza e lanalisi statistica, per analizzare i dati al momento stesso dellacquisizione. Analizzando i dati in tempo reale durante il processo di acquisizione, possibile individuare pi velocemente gli errori di progettazione e di misura ed effettuare le modifiche del caso, riducendo la necessit di ripetere nuovamente le misure. Inoltre, si possono riutilizzare le misure grazie alla generazione automatica di codice grafico LabVIEW direttamente da LabVIEW SignalExpress.
W H AT S N E W
02
BREVI
Nuovo Shared Library Import Wizard
Le librerie condivise sono parti di codice precompilato che vengono collegate dinamicamente 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 librerie condivise, a cui si pu accedere da LabVIEW utilizzando il Call Library Function Node . Con tale nodo, potete creare uninterfaccia in LabVIEW per richiamare librerie condivise. Con lavvento di LabVIEW 8.20 stato introdotto il DLL Import Wizard, un potente strumento di generazione di VI che permette di risparmiare tempo di sviluppo e di ridurre gli errori commessi dallutente. Ciascuno di questi VI autogenerati, o VI wrapper, contiene un Call Library Function Node per accedere a una funzione selezionata della DLL. Tale caratteristica non solo accelera il processo di integrazione delle funzioni delle librerie condivise, ma minimizza anche
mente in LabVIEW SignalExpress, a partire da unampia variet di pacchetti di simulazione come Multisim di National Instruments, il software interattivo SPICE di analisi e di simulazione dei circuiti, per il confronto diretto con i dati reali acquisiti. La combinazione delle funzioni di simulazione e di progettazione avanzata dei circuiti con le funzioni di misura di LabVIEW SignalExpress, permette agli studenti di confrontare agevolmente le simulazioni e i dati reali, riducendo cos il tempo di progettazione e ottenendo risultati di alta qualit. Per visualizzare le demo di LabVIEW SignalExpress e ottenere informazioni, collegarsi al sito www.ni.com/signalexpress. Inoltre, possibile scaricare gratuitamente LabVIEW SignalExpress LE, una versione limitata del software, al sito: www.ni.com/signalexpresseval.
readerservice.it n. 201
abVIEW 8.20 facilita lesplorazione dei concetti di meccatronica e di progettazione dei controlli, inclusa la progettazione di controllori, la simulazione di sistemi dinamici, lidentificazione di sistemi e lo sviluppo real-time. Grazie alla forte integrazione esistente fra hardware e software NI, i docenti possono applicare la teoria con esempi reali in modo pratico e interattivo. Inoltre, il nuovo LabVIEW Simulation Module permette di combinare la progettazione basata su modelli e la logica a flusso di dati, integrando facilmente i vantaggi offerti dai due modelli
di calcolo allinterno di un unico ambiente di programmazione. Si possono anche trasportare modelli realizzati con Simulink di The MathWorks in LabVIEW 8.20 con unutility incorporata nel LabVIEW Simulation Module. In questa versione di LabVIEW, il LabVIEW Simulation Module e il LabVIEW Embedded Module sono ora integrati, permettendovi di progettare un algoritmo con il LabVIEW Simulation Module, prototiparlo usando I/O real-time su hardware commerciale e distribuire lo stesso codice, usando il LabVIEW Embedded Development Module, su qualsiasi processore a 32 bit. In questo modo, potete simulare e implementare modelli virtualmente su qualsiasi target, da un PC desktop fino a un microcontrollore.
W H AT S N E W
BREVI
Nuove caratteristiche di LabVIEW 8.20 per la progettazione e la simulazione di controlli: Distribuzione dei modelli di simulazione su qualsiasi processore embedded a 32 bit. Prestazioni potenziate dei modelli di simulazione Migliorate di oltre 10 volte prestazioni quali: la velocit di esecuzione, il tempo di compilazione e la capacit di lavorare con modelli di grandi dimensioni. Implementazione real-time diretta dei modelli di progettazione dei controlli. Modellazione e simulazione di sistemi dinamici come controllori di motori e sistemi idraulici con gestione real-time diretta degli I/O. La stretta integrazione con lhardware NI offre diverse opzioni per la prototipazione, i test hardware-in-theloop (HIL) e limplementazione finale.
Readerservice.it n. 203
Generazione di Codice C
Programmazione grafica di qualsiasi microprocessore a 32 bit e semplice riutilizzo del codice C esistente
ora possibile sfruttare la programmazione grafica di LabVIEW per programmare qualsiasi sistema embedded con un microprocessore a 32 bit. Il LabVIEW Embedded Development Module estende le funzionalit di LabVIEW per poter lavorare con tool di terze parti, in modo da ottenere una piattaforma che facilita lapprendimento pratico della progettazione embedded. Con il LabVIEW Embedded Development Module, utilizzando strumenti virtuali specializzati, possibile incorporare facilmente codice C esistente e driver di I/O analogici, digitali e per telecomunicazioni. Tale modulo include numerosi template per le architetture di processori pi diffuse, tra cui PowerPC, ARM, TI C6x e x86.
RF E TELECOMUNICAZIONI
Progettare sistemi di telecomunicazioni in modo intuitivo e veloce usando nuovi schemi di modulazione e filtri avanzati
e attivit didattiche e di ricerca sugli attuali sistemi complessi di telecomunicazione richiedono una piattaforma flessibile per le diverse fasi di sviluppo dalla progettazione software alla prototipazione hardware, integrandosi con centinaia di strumenti. LabVIEW 8.20 e il LabVIEW Modulation Toolkit estendono le capacit native di analisi di LabVIEW ed offrono il supporto a vari formati di modulazione, che sono la base per numerose tecnologie emergenti come WiFi, ZigBee, RFID, HDTV, ecc. Il nuovo LabVIEW Modulation Toolkit permette la simulazione software e limplementazione hardware diretta di sistemi di telecomunicazione. Potete sviluppare rapidamente applicazioni custom per approfondire lo studio della teoria, fare ricerca e progettare sistemi di telecomunicazione e componenti per la modulazione e la demodulazione dei segnali. Inoltre, potete utilizzare LabVIEW 8.20 e la sua libreria di funzioni per simulare lelaborazione dei segnali e progettare interattivamente filtri digitali, utilizzando il LabVIEW Digital Filter Design Toolkit, e prototipare sistemi, programmando microcontrollori, processori digitali (DSP) e gate array programmabili (FPGA). Il LabVIEW Digital Filter Design Toolkit in LabVIEW 8.20 ha diverse nuove caratteristiche progettate per i sistemi di telecomunicazione, incluse 12
nuove funzioni testuali per la progettazione di filtri, pronte da usare con il LabVIEW MathScript. In pi, la capacit di utilizzare, come target, microcontrollori, DSP e FPGA, sfruttando la tecnologia offerta da LabVIEW Embedded Development Module, LabVIEW DSP Module e LabVIEW FPGA Module. Il nuovo LabVIEW Digital Filter Design Toolkit permette agli studenti di comprendere meglio i filtri digitali, rappresentando graficamente le pi comuni equazioni discrete associate a un filtro. Il nuovo tool pu rappresentare la funzione di trasferimento di un filtro, la forma poli/zeri/guadagno e lequazione alle differenze. Nuove funzionalit di LabVIEW 8.20 per le telecomunicazioni: LabVIEW Modulation Toolkit per gestire protocolli standard e custom per telecomunicazioni Riutilizzo degli algoritmi esistenti per telecomunicazioni con la programmazione testuale di LabVIEW MathScript Piattaforma di progettazione e prototipazione di hardware basato su microcontrollori, DSP e FPGA Nuovi tool di progettazione di filtri multifrequenza in virgola mobile e in virgola fissa per la decimazione, linterpolazione e il ricampionamento razionale, con capacit di generare codice in virgola fissa
readerservice.it n.204
Nuove caratteristiche di LabVIEW Embedded 8.20: Si integra nei progetti in LabVIEW, indirizzando i target embedded in modo facile e 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 approccio semplificato che include un I/O abstraction layer
Readerservice.it n. 204
02
I Web Ser vice si stanno affermando come la prossima generazione di tecnologie basate su Web per lo scambio di informazioni fra applicazioni su Internet
econdo il World Wide Web Consortium (W3C), un nuove funzionalit agli strumenti standard di progettazioWeb Service un sistema software progettato per ne di applicazioni o di contenuti per il Web. Per esempio, supportare interazioni funzionali da macchina a mac- unapplicazione standard di controllo di processo potrebchina attraverso una rete. Esso ha uninterfaccia descritta be allertare gli operatori, nel caso si verifichino condizioni in un formato tipo WSDL (Web Services Description di pericolo, utilizzando degli allarmi. Incorporando un Web Language). Gli altri sistemi interagiscono con il Web Service per effettuare telefonate al verificarsi di una conService secondo le specifiche proprie della sua interfaccia, dizione di allarme, lapplicazione di controllo acquista la usando messaggi che possono possibilit di andare oltre linterazione con loperatore, essere racchiusi in un frame SOAP componendo un numero di emergenza per la richiesta di (Simple Object Access Protocol). I aiuto. Web Service si basano su un prin- I Web Service completano i toolset di programmazione esicipio di funzionamento a scatola stenti. Mano a mano che nuovi programmatori adotterannera, per cui possono essere uti- no i Web Service come tool di programmazione, questi serlizzati su Internet senza richiedere vizi diventeranno sempre pi prevalenti nella progettazioalcuna conoscenza della loro ne Web e di applicazioni. implementazione. Siti Web e applicazioni possono COMUNICARE CON I WEB SERVICE utilizzare i Web Service. Essen- possibile accedere a qualsiasi Web Service utilizzando zialmente, un Web Service asso- normali protocolli Web, formati di dati e formati di mesFigure 1 Uso di .NET per comunicare con i Web Ser vice miglia a un set di funzioni espor- saggi, come Hypertext Transfer Protocol (HTTP), Extensible tate su Internet attraverso un Markup Language (XML) e Simple Object Access Protocol Web server. Il progettista di un sito Web o di unapplica- (SOAP). HTTP utilizzato per inviare e ricevere messaggi zione ha la possibilit di invocare queste funzioni ed uti- fra il Web Service e il fruitore del servizio. XML utilizzato lizzare il Web Service. I Web Service stanno guadagnando per descrivere e rappresentare i dati scambiati. SOAP defipopolarit grazie ai numerosi vantaggi che sono in grado nisce i messaggi e i loro collegamenti con HTTP. Usando il protocollo SOAP, un client pu inviare e ricevere di offrire: messaggi ben compresi sia dal Web Service che dal fruitoRiutilizzo del codice La costruzione delle applicazioni semplificata utilizzando re, il quale, tuttavia, ha bisogno di sapere quali messaggi inviare e ricevere. Per questa transazione necessaria una componenti Web Service pronti alluso. descrizione dellinterfaccia verso il Web Service. Il Web Indipendenza dalla piattaforma Poich laccesso ai Web Service usa tecnologie Internet Service Description Language (WSDL) un linguaggio standard, gli utenti di un Web Service possono utilizzare basato su XML, sviluppato congiuntamente da Microsoft e IBM. Un Web Service pubblica la sua interfaccia in WSDL qualsiasi piattaforma. Indipendenza dal linguaggio Qualsiasi linguaggio di programmazione pu operare su un Web Service senza alcuna conoscenza dei dettagli di implementazione del Web Service. Elaborazione distribuita I componenti Web Service possono essere utilizzati per costruire facilmente applicazioni distribuite. La potenza dei Web Service risiede Figura 2 Come ottenere lURL WSDL di un Web Ser vice nella loro capacit di fornire
Figura 3 Lancio del Web Ser vice Impor t Wizard in LabVIEW 8.20
ad un URL specifico. Un utilizzatore pu quindi leggere la specifica WSDL dall URL e creare messaggi SOAP per comunicare con il Web Service.
layer fra il Web Service e un VI, nella forma di un .NET assembly wrapper. Tale strato esegue le operazioni di impacchettamento, spedizione e ricevimento dei messaggi SOAP (fig. 1). Il risultato una versione duso immediato delle funzionalit del Web Service. Allinterno del Web Service Import Wizard, i servizi vengono gestiti mediante un assembly .NET, che rappresenta ununit di elaborazione .NET distribuibile singolarmente. Bench lestensione dellassembly .NET sia .DLL, non si tratta di una dynamic link library di tipo standard, che pu
essere richiamata con un Call Library Function Node in LabVIEW. Si tratta di un oggetto costruito per essere eseguito sul Common Language Runtime (CLR) supportato dal framework .NET. Un assembly .NET esporta uninterfaccia basata su classi con propriet e metodi. Utilizzando il supporto per client .NET in LabVIEW, lutente pu creare unistanza di una classe da un assembly .NET, mediante il Constructor Node, ed accedere alle propriet e ai metodi della classe usando rispettivamente i property node e gli invoke node.
LabVIEW 8.20 permette allutente di importare facilmente un Web Service e utilizzare le funzioni del servizio attraverso subVI standard in LabVIEW. Seguite i passi descritti in precedenza per trovare un Web Service e la relativa URL WSDL. Quando si usa LabVIEW 8.20, i passi seguenti spiegano come questa informazione viene utilizzata per unapplicazione basata su Web Service: Passo 1: Localizzate e copiate lURL WSDL di un Web Service desiderato. Passo 2: Lanciate il Web Service Import Wizard in LabVIEW. Passo 3: Incollate lURL WSDL nel Web Service Import Wizard.
02
1. Assicuratevi che ogni metodo che desiderate importare nella libreria di progetto abbia un segno di spunta accanto al suo nome (fig. 5). 2. Cliccate sul pulsante Generate per procedere con il Wizard ed aprire la libreria di progetto importata. 3. Cliccate sul pulsante Finish per uscire dal Wizard e lanciare la liberia di progetto (fig. 6). Passo 5: Utilizzare i VI del Web Service sul diagramma a blocchi Quando il Web Service Import Wizard completa la generazione, la libreria diventa accessibile (fig. 7). 1. Dalla Finestra Project Explorer, trascinate lOpen Web Service.vi ed il Close Web Service.vi sullo schema a blocchi. Questi VI sono necessari per stabilire e chiudere correttamente la connessione al Web Service. 2. Trascinate licona NotifyPhoneEnglishBasic.vi sullo schema a blocchi.
Figura 6 Aper tura della libreria di progetto del Web Ser vice impor tata
Passo 4: Selezionate i metodi desiderati del Web Service. Passo 5: Utilizzate i VI del Web Service sul diagramma a blocchi. Lesempio seguente dimostra come richiamare da LabVIEW un Web Service denominato Phone Notify. Questo Web Service telefona a un numero indicato dallutente e legge un testo specificato a voce alta. Per informazioni sul Web Service Phone Notify consultate www.cdyne.com. Passo 1: Localizzare e copiare lURL WSDL del Web Service Phone Notify 1. Visitate www.xmethods.net. 2. Cercate Phone Notify nellelenco completo dei Web Service e selezionate il link. 3. Copiate lURL WSDL (fig. 2). Passo 2: Lanciare il Web Service Import Wizard in LabVIEW 1. Lanciate LabVIEW. 2. Selezionate Tools Import Web Service (fig. 3) per lanciare il Web Service Import Wizard.
Figura 7 Esplorazione della libreria di progetto del Web Ser vice generata
Passo 4: Selezionare i metodi desiderati del Web Service I metodi sono le varie funzioni che questo Web Service pu fornire. I metodi disponibili sono elencati nella finestra del Web Service Import Wizard.
Note sullautore
Mike Neal, LabVIEW Product Manager, National Instruments
Passo 3: Incollare lURL WSDL nel Web Service Import Wizard 1. Incollate lURL WSDL nel campo Web Service Description URL e cliccate sul pulsante Next. Il Web Service viene ora automaticamente convalidato: LabVIEW controlla lURL per verificare che sia una specifica WSDL valida. 2. Nel campo Name (.lvlib), specificate il nome di una nuova Project Library che conterr il Web Service.
3. Specificate LicenseKey, PhoneNumberToDial e TextToSay e fate i collegamenti come illustrato in fig. 8. 4. Notate in fig. 8 che i VI incapsulano chiamate .NET a basso livello (riquadri rossi) che rimangono competamente trasparenti allutente per unimplementazione pi semplice. 5. Eseguite il VI. Il Web Service Phone Notify chiama il numero telefonico specificato e legge il testo. Questo esempio illustra chiaramente che richiamare un metodo di un Web Service da LabVIEW un processo semplice e immediato, grazie al nuovo Web Service Import Wizard.
02
K amran Shah
LABVIEW E LHYPERTHREADING
Lhyper threading una caratteristica avanzata delle versioni evolute del processore Intel Pentium 4 e successivi
n computer hyperthreaded ha un solo processore, ma si comporta come se sullo stesso chip fossero incorporati pi processori. Alcune delle risorse sul chip sono duplicate, come il set di registri, altre sono condivise, come le unit di esecuzione e la cache. Alcune risorse, come i buffer per le microoperazioni, sono partizionate, in modo tale che ogni processore logico ne riceva una parte. Ottimizzare unapplicazione per sfruttare lhyperthreading come ottimizzare unapplicazione per un sistema multiprocessore, ma vi sono alcune differenze. Per esempio, un computer hyperthreaded condivide le unit di esecuzione mentre un computer a doppio processore contiene due set completi di unit di esecuzione. Pertanto, tutte le applicazioni che sono limitate dalle unit di esecuzione in virgola mobile hanno prestazioni migliori su un computer multiprocessore, perch non necessario condividere le unit di esecuzione. Lo stesso principio vale per la contesa della cache. Se due thread cercano di accedere alla cache, le prestazioni sono migliori su un computer multiprocessore, dove ogni processore possiede la propria cache.
Fig. 2
Fig. 1
ordine obbligato nellesecuzione di ogni operazione. Tale ordine forzato dal flusso di dati e non esistono altri possibili ordini di esecuzione, perch ogni operazione deve attendere tutti i suoi ingessi per essere eseguita. Si possono comunque apportare delle modifiche al VI. Lesecuzione parallela richiede che nessuna iterazione del ciclo debba dipendere da altre iterazioni. Se si soddisfa questa condizione, si possono distribuire le iterazioni del ciclo fra due cicli. Tuttavia, un vincolo di LabVIEW che nessuna iterazione di un ciclo pu iniziare prima che literazione precedente sia finita. Si pu dividere il processo in due cicli dopo avere determinato che questo vincolo non necessario. Nella figura seguente (fig. 3), lesempio di ricerca parallela dei numeri primi divide il processo in due cicli. Il ciclo superiore valuta met dei numeri dispari e quello inferiore laltra met. Su un computer multiprocessore, la versione parallela risulta pi efficiente, perch LabVIEW pu eseguire simultaneamente il codice dei due cicli. Notate che i VI di questi due esempi non includono codice per la gestione esplicita dei thread. Il paradigma di programmazione a flusso di dati di LabVIEW permette al sistema di eseguire i due cicli in thread differenti. In molti linguaggi di programmazione testuali necessario creare e gestire esplicitamente i thread.
02
Fig. 3
10
void __cdecl CalculatePrimesMultiThreaded(int numTerms) { // Inizializza linformazione 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 lesecuzione. 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 CalculatePrimesMultiThreaded() crea due thread usando la funzione _beginthread(). Il primo thread richiama la funzione CalculatePrimesThread1(), che testa met dei numeri dispari. Il secondo thread richiama la funzione CalculatePrimesThread2 e testa laltra met dei numeri dispari. Il thread originale, che esegue ancora la funzione CalculatePrimesMultiThreaded(), deve attendere che i due thread in esecuzione finiscano, creando la struttura dati ThreadInfo per ogni thread e passandola alla funzione _beginthread(). Quando lesecuzione di un thread finisce, viene scritto true in ThreadInfo::done. Il thread originale deve interrogare continuamente ThreadInfo::done finch il thread originale legge un valore true per ogni thread di calcolo. A quel punto il thread originale pu accedere con sicurezza ai risultati del calcolo. Il programma colleziona quindi i valori in un singolo array, in modo che siano identici alloutput della versione a singolo thread di questo esempio. Nota: il passo precedente non mostrato nellesempio LabVIEW, ma farlo banale. Quando si scrive codice multithreading in un linguaggio di programmazione testuale come il C++, necessario proteggere le locazioni dei dati a cui pi thread possono accedere. Se non si proteggono le locazioni dei dati, le conseguenze sono imprevedibili e spesso difficili da riprodurre e localizzare. In ogni caso in cui lassegnazione di tiPtr>done a true non sia atomica, necessario usare un mutex per proteggere lassegnazione e laccesso. possibile migliorare ancora lesempio precedente. In particolare, non vi ragione per iniziare due thread addizionali e lasciarne uno inattivo. Poich questo esempio contiene codice per un computer con due processori virtuali, possibile iniziare un thread addizionale ed usare quello originale per eseguire met dei calcoli. Inoltre, possibile passare entrambi i thread attraverso la stessa funzione anzich scrivere due volte quella che, fondamentalmente, la stessa funzione. necessario passare un parametro addizionale alla funzione per indicare in quale thread pu
11
02
essere eseguita. Nota: si pu eseguire la stessa ottimizzazione nellesempio scitto in LabVIEW creando un subVI rientrante che contiene il Ciclo For. Il VI chiamante dovr avere due istanze del subVI invece di due Cicli For. Il codice segunte rappresenta unapplicazione multithreaded pi efficiente: struct ThreadInfo2 { int threadNum; int numTerms; bool done; bool *resultArray; }; static void __cdecl CalculatePrimesThread(void*); void __cdecl CalculatePrimesMultiThreadedSingleFunc(int numTerms) { // 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
} 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 si possono attivare meno thread e aspettare meno tempo in attesa che i thread operativi completino il lavoro. Inoltre, poich il codice esegue il calcolo allinterno di una singola funzione, c meno codice duplicato, cosa che rende lapplicazione pi facile da mantenere. Tuttavia, una grossa parte del codice esegue la gestione dei thread, cosa che intrinsecamente insicura e difficile da testare e debuggare.
Fig. 4
12
I fili rosa sono cluster che servono come valori numerici a precisione arbitraria. Se desiderate calcolare pi greco fino a 1000 cifre decimali, non pi sufficiente un valore in virgola mobile, a precisione estesa. I nodi che assomigliano a funzioni di LabVIEW ma che operano sui cluster sono VI che eseguono calcoli sui numeri a precisione arbitraria. Anche questo VI risulta impegnativo da un punto di vista computazionale. Esso calcola pi greco in base alla formula di fig. 5.
care le opportunit di esecuzione parallela e creare ed eseguire esplicitamente i thread per sfruttare le potenzialit dei computer hyperthreaded. Il vantaggio di usare LabVIEW che in molti casi, come nel nostro esempio, LabVIEW identifica automaticamente le opportunit di esecuzione parallela e permette di utilizzare entrambi i processori logici. In certe applicazioni, vantaggioso usare un algoritmo che crei opportunit di esecuzione parallela, in modo da poter tratte vantaggio dalle capacit di multithreading offerte da LabVIEW. La tabella seguente riporta il tempo impiegato dal VI per calcolare pi greco con 1500 cifre decimali senza alcuna forma di ottimizzazione delle prestazioni:
Fig. 5
Data la complessit numerica di questa equazione, sarebbe difficile, nella maggior parte dei linguaggi di programmazione testuali, scrivere un programma che utilizzi entrambi i processori logici su un computer hyperthreaded. LabVIEW, invece, pu analizzare la precedente equazione e riconoscerla come unopportunit per il multiprocessing. Quando LabVIEW analizza lo schema a blocchi di fig. 6, identifica il parallelismo intrinseco. Notate che non esiste alcuna dipendenza nel flusso di dati fra le parti evidenziate in rosso e quelle in verde. A prima vista, sembra che in questo schema a blocchi sia presente un basso livello di parallelismo. Sembra infatti che solo due operazioni possano essere eseguite in parallelo con il resto del VI, e tali due operazioni sono eseguite una sola volta. In effetti, la radice quadrata richiede
Hyperthreading: 27,9 s Senza hyperthreading: 25,3 s Notate che il computer hyperthreaded risulta pi lento. Poich i due processori logici di un computer hyperthreaded condividono una cache, pi facile sovraccaricare le linee della cache e provocare problemi. LabVIEW memorizza le informazioni necessarie per il debugging in unarea di memoria a cui tutti i thread di esecuzione devono accedere, sia in scrittura che in lettura. In alcune situazioni, i thread sono eseguiti simultaneamente su processori logici differenti, e un thread deve leggere le informazioni di debug mentre laltro thread vi sta accedendo in scrittura. Se due thread eseguono operazioni sulla stessa linea di cache in un computer hyperthreaded, la perdita di prestazioni pu essere sostanziale. Potete migliorare le prestazioni del VI disabilitando il debugging. Potete disabilitare il debugging per una parte del VI critica per le prestazioni e quindi riabilitarlo se dovete debuggare quella parte del VI. La tabella seguente riporta il tempo di esecuzione richiesto dal VI per calcolare pi greco con 1500 cifre decimali dopo avere disabilitato il debugging per lintero VI: Hyperthreading: 21,6 s Senza hyperthreading: 21,5 s Notate che il computer hyperthreaded ha quasi le stesse prestazioni del computer senza hyperthreading. La suddivisione del carico di lavoro non sembra migliorare le prestazioni, anche se LabVIEW lavora in parallelo. La tabella seguente riporta le prestazioni dellesempio di esecuzione parallela nella ricerca di numeri primi in LabVIEW. Il VI ha trovato tutti i numeri primi nei primi 400.000 numeri naturali su un computer Windows XP con Pentium 4 a 3,06 GHz.
Fig. 6
tempo, e questo VI dedica circa met del tempo di esecuzione totale ad eseguire loperazione radice quadrata in parallelo con il Ciclo For. Se dividete il VI in due cicli non correlati, LabVIEW pu riconoscere la possibilit di gestire i thread in parallelo usando entrambi i processori logici, con un elevato guadagno in termini di prestazioni. Questa soluzione funziona su un computer hyperthreaded come su un computer multiprocessore. difficile analizzare unapplicazione per identificare il parallelismo. Se scrivete unapplicazione in un linguaggio di programmazione testuale come il C++, dovete identifi-
13
02
Hyperthreading senza debugging: 1,97 s Hyperthreading con debugging: 10,47 s La differenza con il debugging abilitato significativa, ma tale differenza si verifica solo quando le due sezioni parallele vengono eseguite nello stesso VI. Se scriveste lapplicazione con pi di un VI o se il VI fosse abbastanza complesso da gestire la maggior parte delle informazioni di debugging di sezioni distinte in diverse linee della cache, la differenza con il debugging abilitato non sarebbe cos significativa. Unaltra ottimizzazione che pu migliorare le prestazioni su un computer hyperthreaded quella di rendere rientranti alcuni subVI.Diversi thread possono chiamare simultaneamente lo stesso subVI se questo rientrante. importante capire come lavora lesecuzione rientrante nel sistema di esecuzione di LabVIEW quando si ottimizza
i quattro VI, perch LabVIEW crea uno spazio dati addizionale quando richiama VI rientranti. Potete continuare ad ottimizzare unapplicazione usando il VI Profiler e poi definire che qualche VI venga eseguito con priorit di subroutine. Potete inoltre marcare pi VI come rientranti. La tabella seguente riporta il tempo di esecuzione richiesto dal VI per calcolare pi greco con 1500 cifre decimali dopo diverse azioni di ottimizzazione: Hyperthreading: 18,0 s Senza hyperthreading: 20,4 s Questi risultati indicano un miglioramento di prestazioni del 10 percento sul computer hyperthreaded. Notate che non necessario modificare il codice del VI per ottenere tale miglioramento. Dovete semplicemente disabilitare il debugging, rendere rientranti alcuni VI ed eseguire alcuni VI con priorit di subroutine. Complessivamente, queste modifiche permettono di ottenere un miglioramento di prestazioni pari circa al 35 percento su un computer hyperthreaded.
Fig. 7
un VI per un computer multiprocessore o hyperthreaded. Marcare erroneamente un VI come rientrante pu provocare inutili ritardi, specialmente in un ambiente multiprocessore. Per determinare quali subVI possono essere rientranti, trovate i VI richiamati da entrambi i rami dellesecuzione parallela. La fig. 7 mostra la gerarchia del VI: la funzione 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 un Ciclo For. Queste sono due parti ideali da rendere rientranti, perch LabVIEW richiama queste parti da thread differenti. La tabella seguente riporta il tempo di esecuzione richiesto dal VI per calcolare pi greco con 1500 cifre decimali dopo avere marcato come rientranti le funzioni Add e Multiply e i VI Multiply Scalar e Divide Scalar: Hyperthreading: 20,5 s Senza hyperthreading: 21,9 s Marcare come rientranti i VI rende lesecuzione dei VI leggermente pi veloce sul computer hyperthreading. Il tempo di esecuzione per il computer senza hyperthreading era leggermente pi lento dopo avere reso rientranti
Note sullautore
Kamran Shah, Group Manager, LabVIEW Product Marketing, National Instruments
14
Tutti i benchmark di prestazioni nella parte precedente sono stati testati su computer Windows, ma anche i sistemi Linux possono essere eseguiti su computer hyperthreaded. I test dimostrano che LabVIEW 7.1 supera in prestazioni le precedenti versioni di LabVIEW su sistemi Linux multiprocessore su computer hyperthreaded.
02
Brett Burger
DEI DATI
Vediamo quali sono le funzionalit che rendono LabVIEW il tool ideale per lanalisi dei dati e delle misure
igliaia di tecnici e ricercatori si basano su LabVIEW per una variet di applicazioni: test e misura, controllo di processo e automazione, monitoraggio e simulazione. LabVIEW lambiente di riferimento grazie alle sue ineguagliabili caratteristiche di connettivit a strumenti, le potenti capacit di acquisizione dati, linterfaccia grafica di programmazione basata sul flusso di dati, la scalabilit e la completezza funzionale generale. Unesigenza che persiste indipendentemente dallarea di competenza il fatto che gli utenti devono manipolare dati e misure e prendere decisioni di conseguenza.
INTRODUZIONE
Gli utenti spesso interagiscono nelle prime fasi del loro lavoro direttamente con dei processi fisici e acquisiscono dati in unapplicazione. Per estrarre informazioni utili da tali dati, prendere decisioni sul processo ed ottenere risultati, i dati devono essere manipolati ed analizzati. Purtroppo, combinare lanalisi con lacquisizione dati e la presentazione dei dati stessi non sempre un processo immediato.
I pacchetti software applicativi tipicamente prendono in esame un componente dellapplicazione, ma raramente risolvono tutti gli aspetti necessari per ottenere una soluzione completa. LabVIEW stato progettato per soddisfare i requisiti di una soluzione completamente integrata, seguendo tutte le fasi del processo di sviluppo in un singolo ambiente. Bench esistano molti tool che affrontano indipendentemente ciascun requisito, solo LabVIEW li combina tutti con la potenza della programmazione grafica e hardware avanzato di acquisizione dati, utilizzando la potenza di un PC. la combinazione di acquisizione dati, analisi dei dati e presentazione dei risultati che rende veramente massima la potenza della Strumentazione Virtuale. Uno strumento virtuale consiste di un computer o una workstation standard equipaggiati con potente software applicativo, hardware conveniente, tipo schede plug-in, e relativi driver, che insieme eseguono le funzioni di strumenti tradizionali. per questo che si fa riferimento alle applicazioni e ai programmi costruiti con LabVIEW come a VI (strumenti virtuali). Come strumento orientato alla soluzione di problemi inge-
15
02
gneristici, LabVIEW mette a disposizione centinaia di funzioni di analisi da integrare in applicazioni dedicate allesecuzione di misure intelligenti.
LabVIEW offre routine di analisi per lesecuzione punto a punto, progettate specificamente per rispondere alle esigenze dellanalisi inline nelle applicazioni real-time. Per decidere se le routine punto a punto sono appropriate, necessario considerare alcuni aspetti. Lanalisi punto a punto essenziale quando si devono controllare processi nei quali sia presente unacquisizione dati punto a punto ad alta velocit e deterministica. Ogni volta che le risorse sono dedicate allacquisizione dati real-time, lanalisi punto a punto diventa necessaria, perch le velocit di acquisizione e i loop di controllo aumentano di ordini di grandezza. Lapproccio punto a punto semplifica il processo di progettazione, implementazione e collaudo, perch il flusso dellapplicazione segue da vicino il flusso naturale dei processi reali che lapplicazione deve monitorare e controllare. Lacquisizione dati e lanalisi real-time continuano a richiedere applicazioni sempre pi semplici e stabili. Lanalisi punto a punto semplice e stabile, perch si collega direttamente al processo di acquisizione e analisi, avvicinandosi al grado di controllo ottenibile in chip FPGA (field programmable gate array), chip DSP, controller embedded, CPU dedicate e Asic. Aggiungendo questi potenti algoritmi e routine nelle applicazioni, si possono creare processi intelligenti e analizzare i risultati durante lesecuzione, migliorando lefficienza e correlando iterativamente le variabili dingresso alle prestazioni sperimentali o di processo. Le applicazioni offline non hanno tipicamente lesigenza di ottenere risultati in modalit real-time per prendere decisioni direttamente sul processo. Le applicazioni di analisi offline richiedono solo la disponibilit di sufficienti risorse computazionali. Lintento principale di tali applicazioni identificare cause ed effetti delle variazioni delle variabili di processo, correlando set multipli di dati. Queste applicazioni generalmente richiedono di importare dati da file custom binari o in formato Ascii e da database commerciali come Oracle, Access e altri database di tipo QL/ODBC. Quando i dati sono stati importati in LabVIEW, gli utenti possono eseguire anche centinaia delle routine di analisi disponibili, manipolare i dati e organizzarli in uno specifico formato per la creazione di report. LabVIEW offre funzioni per accedere a qualsiasi tipo di formato di file e database, collegandosi a potenti tool di reportistica come NI DIAdem e il Report Generation Toolkit per Microsoft Office, ed eseguire le tecnologie pi recenti di condivisione dei dati come XML, le presentazioni su Web e ActiveX.
16
Tipicamente, agli utenti non basta acquisire dati ed elaborarli per una semplice visualizzazione, ma hanno la necessit di memorizzare centinaia o migliaia di megabyte di dati su hard drive e database. Dopo una sola esecuzione o magari centinaia di esse, gli utenti procedono con lestrazione di informazioni per prendere decisioni, confrontare i risultati ed eseguire le appropriate modifiche al processo, fino a conseguire i risultati desiderati. relativamente facile acquisire quantit di dati talmente grandi da diventare rapidamente ingestibili. Infatti, con una scheda DAQ veloce e un numero sufficiente di canali, possono essere necessari pochi millisecondi per acquisire migliaia di valori. Non un compito banale trovare un senso in tutti quei dati. Normalmente gli utenti devono presentare report, creare grafici e in ultima analisi sostenere qualsiasi valutazione e conclusione con dati empirici. Senza i tool corretti, questo pu diventare facilmente un compito assai arduo, che si traduce in una perdita di produttivit. Per semplificare il processo di analisi delle misure, i programmatori LabVIEW creano applicazioni interattive che offrono interfacce utilizzabili da altri utenti affinch, sulla base dei loro input specifici, vengano eseguite routine di analisi dedicate su qualsiasi set di dati disponibile. Perch ci sia efficiente, il programmatore deve conoscere dettagliatamente le informazioni e il tipo di analisi a cui lutente interessato. Con LabVIEW, gli utenti possono selezionare e formattare i dati prima di memorizzarli su disco, facilitando le successive fasi di accesso e gestione dei dati memorizzati per condurre ulteriori analisi. National Instruments offre tool addizionali, altamente integrati in LabVIEW, progettati per migliorare lo sviluppo di applicazioni ingegneristiche gestite da team di sviluppatori. Un esempio viene offerto da NI DIAdem, un tool che mette a disposizione un ambiente facile e intuitivo per condurre analisi interattive post-acquisizione e la generazione di report, con potenti capacit di gestione di dati tecnici. Per maggiori informazioni su DIAdem, visitate ni.com/diadem.
cazioni. Le funzioni di analisi avanzate possono misurare caratteristiche del segnale come distorsione armonica totale, risposta allimpulso, risposta in frequenza e spettri di potenza. Tecnici e ricercatori possono altres incorporare analisi matematica o numerica nelle loro applicazioni per scopi come la risoluzione di equazioni differenziali, lottimizzazione, la ricerca di radici e altri problemi matematici. Nonostante gli utenti possano sviluppare da soli queste funzioni, le funzioni integrate permettono di concentrarsi sulla rapida risoluzione del problema, anzich sui tool. Il vantaggio di utilizzare queste funzioni elimina inoltre la necessit di comprendere la teoria sottostante, come invece sarebbe richiesto per costruire tali algoritmi.
17
02
Williams, la distribuzione conica, lo spettrogramma basato sullespansione di Gabor (noto anche come spettrogramma di Gabor), lo spettrogramma basato su STFT e la distribuzione di Wigner-Ville. Gli utenti possono applicare le trasformate quadratiche per vedere facilmente come lo spettro di potenza di un segnale evolve nel tempo. Wavelet Le wavelet sono un metodo di elaborazione dei segnali relativamente nuovo. Una trasformata wavelet quasi sempre implementata come un banco di filtri che decompongono un segnale in pi bande, separando e mantenendo le caratteristiche del segnale in una o pi di queste sottobande. Pertanto, uno dei maggiori vantaggi che si ottengono usando la trasformata wavelet che le caratteristiche del segnale possono essere estratte facilmente. In molti casi, una trasformata wavelet supera la FFT convenzionale in termini di estrazione delle caratteristiche e riduzione del rumore, caratteristica che la rende ideale per molte applicazioni, tipo: compressione dei dati, rilevamento di eco, riconoscimento di pattern, rilevamento di bordi, cancellazione, riconoscimento vocale, analisi di texture e compressione di immagini. Analisi Spettrale basata su Modelli Un tool primario per lanalisi spettrale la Trasformata Veloce di Fourier (FFT). Per gli spettri ad alta risoluzione, i metodi basati su FFT richiedono un elevato numero di campioni. Tuttavia, in molti casi, il set di dati limitato a causa di una reale mancanza di dati o perch gli utenti devono fare in modo che le caratteristiche spettrali del segnale non cambino per la durata della registrazione dei dati. Per i casi in cui il numero di campioni di dati limitato, gli utenti di LabVIEW possono utilizzare lanalisi basata su modelli per determinare le caratteristiche spettrali. Grazie a questa tecnica, gli utenti possono ipotizzare un modello opportuno del segnale e determinare i coefficienti del modello. Sulla base di tale modello, lapplicazione pu predire i punti mancanti nel dato set finito di dati, in modo da ottenere spettri ad alta risoluzione. Inoltre, i metodi basati su modelli possono essere utilizzati anche per stimare ampiezza, fase, fattore di smorzamento e frequenza di sinusoidi smorzate. Lanalisi spettrale ad altissima risoluzione pu essere utilizzata in diverse applicazioni, tra le quali: ricerca biomedicale, economia, geofisica, rumore, vibrazioni e analisi vocale. Analisi di Suoni e Vibrazioni Il software di analisi NI permette molte applicazioni comuni di analisi del suono e delle vibrazioni, inclusi test audio, misure acustiche, test di rumore ambientale, analisi di vibrazioni e misure NVH. Le capacit di analisi specializzate includono le analisi per frazioni di ottava conformi alle norme ANSI ed IEC. Inoltre, la Sound and Vibration Measurement Suite include numerose funzioni per misure audio 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 su configurazioni per analisi e registrazione dei dati. Le funzioni includono piena ottava, 1/3, 1/6, 1/12 e 1/24 di ottava; frequenza di campionamento definita dallutente; numero di bande definito dallutente; pesatura A, B, C nel dominio del tempo; conformit agli standard; media esponenziale (costante di tempo Lenta, Veloce e Custom); spettro cross-power; risposta in frequenza (H1, H2 e H3); coerenza e potenza duscita coerente. Inoltre, il toolset offre tool di visualizzazione addizionali, come grafici a cascata, a mappa di colori, bar graph a ottave e grafico lineare a ottave, che possono essere facilmente incorporate nei pannelli frontali delle applicazioni LabVIEW. Analisi degli Ordini La Sound and Vibration Measurement Suite NI offre librerie per costruire applicazioni custom di misura e automazione basate su LabVIEW con capacit di analisi degli ordini per linseguimento degli ordini, lestrazione degli ordini e lelaborazione di segnali tachimetrici. Con lalgoritmo di Gabor, gli utenti di LabVIEW possono analizzare suono, vibrazioni e altri segnali dinamici provenienti da sistemi meccanici con componenti rotanti o in moto alternato. Esso consente una selezione flessibile dellenergia dellordine nel dominio congiunto tempo-frequenza. I tool addizionali includono strumenti per graficare i singoli ordini in funzione del tempo o dei giri/min, strumenti di estrazione degli ordini per separare dal segnale acquisito le componenti del segnale relative ai singoli ordini e strumenti di selezione automatica degli ordini per trovare gli ordini pi significativi.
CONCLUSIONE
Con la potenza e la flessibilit degli attuali computer, tecnici e ricercatori hanno una capacit senza precedenti di misurare, controllare, monitorare, diagnosticare, automatizzare, testare e caratterizzare efficacemente qualsiasi processo. Ci tuttavia non possibile senza la capacit di osservare i dati ed estrarre informazioni utili. LabVIEW offre soluzioni indipendentemente dal settore o dallarea dinteresse specifica del processo ingegneristico, dalla progettazione e validazione alla produzione. Inoltre, LabVIEW offre una connettivit senza pari a dispositivi DAQ plug-in e strumenti stand-alone per lacquisizione dati, potenti librerie, routine ed algoritmi di analisi che spaziano dalla matematica di base allelaborazione avanzata dei segnali. Tali funzioni, perfettamente integrabili con altre funzioni di LabVIEW, sfruttando le potenti capacit di visualizzazione dei dati, rendono LabVIEW il tool ideale per qualsiasi applicazione.
Note sullautore
Brett Burger, Product Marketing Engineer, Data Acquisition Systems, National Instruments
18
02
Alessandro Ricco
articolo solo un'introduzione, l'argomento trattato infatti richiederebbe molto pi spazio di quello a disposizione.
accesso al core Lua. LuaVIEW inoltre mette a disposizione diversi esempi e tool molto comodi per poter gestire le proprie applicazioni LabVIEW che sfruttano Lua. Da segnalare anche che LuaVIEW ottimamente documentato [3], tutti i VI pi importanti hanno degli help molto chiari e dettagliati. Consigliamo quindi di tenere il Contex Help di LabVIEW sempre aperto (Ctrl +H) mentre usate LuaVIEW.
INSTALLARE LUAVIEW
L'installazione di LuaVIEW richiede una macchina con sistema operativo Linux, Windows o Mac OS X e una versione 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; approfittate per 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 di LuaVIEW. Tutti i test dovrebbero dare risultato positivo. Per rendere LuaVIEW pi comodo da usare utile aggiungere i VI della sua libreria alla paletta LabVIEW, per farlo usate LabVIEW | Tools>Advanced>Edit Palette Views scegliendo poi il file menu luaview/luaview.mnu dalla cartella di LuaVIEW.
PRIMI ESPERIMENTI
Come primo test proviamo a usare uno degli esempi di LuaVIEW luaview/example/Do a Script.vi; apritelo, eseguitelo e ammirate l'effetto! print("Hello world") print("The time is "..format_time(time(),"%H:%M"))
19
02
for i=10,1,-1 do print(i) wait(300) end print("Lift off!") wait(2000) dialog.one_button("Launch sequence complete", "OK")
Figura 1 - Schema dell'iterazione Lua - LabVIEW
Lo script di esempio contenuto in Do a Script.vi, pur essendo molto semplice, mette in evidenza le potenzialit di Lua e 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 di nuovo ad esempio la prima riga del codice print ("Hello world"); notate che la funzione print implementata interamente in LabVIEW e non solo viene chiamata da uno script Lua ma le viene anche passato un parametro stringa Hello world. Anche le funzioni wait e dialog. one_button sono implementate in LabVIEW come print ma grazie a LuaVIEW e possibile usarle direttamente da uno script Lua senza nessuno sforzo e in maniera automatica. Vediamo un secondo esempio tratto direttamente dal sito di LuaVIEW, sempre usando Do a Script.vi cancellate lo script di esempio e scrivetene uno nuovo: if (dialog.two_button(Chose a language... , LabVIEW , Lua)) then print(Wire away) else print(Script along) end Come per l'esempio precedente possiamo ammirare l'eleganza della sintassi e la sua semplicit, ma concentriamoci sulla funzione dialog.two_button che, come quelle descritte prima, implementata in LabVIEW. La funzione dialog.two_button non solo riceve dei parametri dallo script Lua Chose a language... , LabVIEW , Lua ma ritorna allo script un risultato, in questo caso il bottone premuto, che lo script utilizza come condizione per la struttura if else. Con questo esempio abbiamo visto come Lua possa chiamare delle funzioni LabVIEW passandogli dei parametri e come queste funzioni, terminata l'esecuzione, possano ritornare dei risultati a Lua che li user per elaborazioni all'interno dello script (fig. 1).
grammatore da LuaVIEW, ma come funziona questo meccanismo? Per capirlo meglio analizziamo una delle funzioni prese prima ad esempio dialog.two_button e vediamo com' fatta. Aprite \luaview\functions\pop-up dialogs\ dialog.two_button_lua.vi contenuto nella cartella principale di LuaVIEW; questo vi la funzione dialog.two_button (fig. 2). Analizziamo il VI seguendo il data-flow; a sinistra troviamo LuaVIEW reference questo controllo porta il riferimento tramite il quale le API LuaVIEW possono accedere al Core di Lua. Il riferimento corretto viene gestito in automatico da particolari funzioni LuaVIEW in background, di cui il programmatore pu non preoccuparsi. I VI pull string e push boolean sono delle API di LuaVIEW, i tre pull string accedono al Core di Lua attraverso il reference e prelevano dallo stack Lua tre valori di tipo string, se ad esempio eseguiamo questo script Lua c = dialog.two_button(Chose a language... , LabVIEW , Lua) i valori prelevati saranno Chose a language... , LabVIEW e Lua. Le tre stringhe prelevate dallo Stack Lua vengono usate come parametri di ingresso dal vi ui two button ( il dialog vero e proprio implementato in LabVIEW al 100%) e rappresentano rispettivamente il messaggio che apparir sul dialog e i testi dei due bottoni di scelta presenti sul dialog. L'uscita del vi ui two button, result di tipo boolean, assume il valore del bottone premuto dall'utente sul dialog; questo valore viene inserito nello stack Lua usando la API push boolean. Da questo esempio si inizia ad intuire come funziona lo scambio tra il mondo LabVIEW e quello Lua, LuaVIEW mette a disposizione delle API tra le quali quelle di push e quelle di pull. Usando queste API possibile da LabVIEW accedere ai valori messi sullo stack (pull) da Lua usandoli
20
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 funzione come dialog.two_button ha bisogno e che tipo di risultato restituisce? Ogni funzione LabVIEW per essere utilizzabile da Lua deve essere stata precedentemente registrata e descritta utilizzando un apposito tool, Function Manager, fornito da LuaVIEW \luaview\tui_LuaVIEW Function Manager.vi e presente nella cartella di installazione di LuaVIEW (fig. 3). Tramite il Function Manager possibile gestire tutto questo in maniera semplice. Nel caso di dialog.two_button il prototipo che descrive i parametri di ingresso e il risultato della funzione bool:confirmed=dialog.two_ button(str:message,str:button1,str:button2)Function Manager indispensabile qualora sia necessario registrare una propria nuova funzione. Per maggiori informazioni su come utilizzare Function Manager e per la documentazione completa delle funzioni gi incluse in LuaVIEW vi rimandiamo a www.citengineering.com/LuaVIEW.
plicazione di test automatico. Immaginiamo di voler realizzare un'applicazione di test funzionale per delle schede elettroniche. L'applicazione dovr tra le altre cose: testare schede diverse, quindi con procedure diverse essere usata da clienti diversi che adottano proceFigura 4 - Schema dell'applicazione di test realizzata dure di test differenti e a con LuaVIEW volte contrastanti. Un'applicazione del genere creata interamente in LabVIEW sarebbe difficile da realizzare da mantenere e da sviluppare, dovrebbe infatti contemplare tutte le singole e particolari esigenze di ogni singolo cliente. Questo lavoro titanico, in ogni caso non ci salverebbe da futuri cambiamenti richiesti da un cliente. In quel caso, quasi sicuramente, dovremmo modificare il codice dell'applicazione creandone una diversa figlia e saremmo costretti ad iniziare la gestione di un processo di sviluppo e mantenimento separato dall'applicazione madre. Utilizzando invece Lua e LuaVIEW la nostra software house pu fornire al cliente una applicazione eseguibile sviluppata in LabVIEW e una serie di script Lua. L'applicazione LabVIEW si preoccuper di lanciare gli script Lua che implementano le procedure di test. Gli script Lua di procedura possono a loro volta chiamare funzioni LabVIEW che in questo caso saranno i driver dei vari apparati necessari all'esecuzione del test come alimentatori, oscilloscopi, dmm ecc. Lo schema riportato nella fig. 4 rende pi chiaro questa architettura. Ogni cliente potr creare o modificare i propri script Lua sfruttando tutta la potenza di un linguaggio di programmazione e quindi adattando l'applicazione di test alle proprie specifiche esigenze.
POTENZIALIT DI LUAVIEW
LabVIEW molto potente e flessibile ed ottimo per visualizzazione dati, controllo hardware e analisi matematica, Lua semplice da usare e da modificare, molto dinamico, flessibile e molto veloce. LabVIEW ha un problema, le applicazioni eseguibili che crea sono molto statiche ed difficile renderle dinamiche e personalizzabili oltre un certo livello. Lua un linguaggio di scripting, quindi interpretato da una virtual machine, questo vuol dire che uno script Lua non necessita di essere compilato, con Lua quindi molto pi facile scrivere codice e modificarlo anche ad applicazione ultimata. LabVIEW Lua possono essere complementari in questo senso. Ci sono vari modi per integrare LabVIEW e Lua usando diverse percentuali per il mix. Un esempio di utilizzo del mix tra LabVIEW e Lua potrebbe essere la realizzazione un'ap-
CONCLUSIONI
Speriamo che la lettura di questo articolo introduttivo vi abbia fatto venire voglia di approfondire lo studio di Lua e di LuaVIEW.
RIFERIMENTI
[1] www.lua.org sito ufficiale su Lua. [2] www.citengineering.com/LuaVIEW sito del creatore di LuaVIEW. [3] http://www.citengineering.com/LuaVIEW/manual.html manuale di LuaVIEW.
Note sullautore
Alessandro Ricco (www.agilesystems.it): LabVIEW Champion & ILVG.it Administrator ([email protected])
21
D A L L A T E O R I A A L L A P R AT I C A
02
La computerizzazione dellECG pu consentire la ricerca di parametri clinici che non possono essere estrapolati con la consueta valutazione ottica
e malattie cardiovascolari rappresentano la prima causa di morte nel mondo occidentale. Spesso tali patologie sono silenti fino allinsorgenza di eventi acuti e drammatici come per esempio un infarto del miocardio. La Cardiologia, grazie anche allenorme progresso tecnicostrumentale, offre al paziente dei validi interventi quando la patologia clinicamente manifesta ma presenta molte lacune riguardo la prevenzione. Infatti, sarebbe auspicabile avere degli efficaci programmi di screening capaci di individuare precocemente lo stato di malattia con il fine di ridurre lincidenza degli accidenti cardiovascolari improvvisi ed talora irreversibili. Gli sforzi profusi per raggiungere questo obiettivo hanno portato alla messa a punto di strumenti diagnostici sofisticati, costosi ed invasivi con conseguente difficile applicazione su larga scala per una vera e diffusa prevenzione. Lelettrocardiografo, strumento poco costoso, non invasivo e di facile uso, sembra avere, attualmente, poca utilit nella prevenzione delle malattie cardiovascolari. Viceversa, la computerizzazione dellECG pu consentire
una pi articolata analisi del segnale per la ricerca di utili parametri clinici che non possono essere estrapolati, da parte del cardiologo, con la sua consueta valutazione ottica. Lobbiettivo, quindi, quello di utilizzare lelettrocardiografo non solo come strumento che ci informa del potenziale elettrico in funzione del tempo V(t) ma anche come lo strumento che misura i tempi donda relativi al proprio battito in funzione della sua frequenza consentendoci cos di confrontare la precisione delle misure di grandezze non omogenee.
LELETTROCARDIOGRAMMA VIRTUALE
Levento della misura campionata ci offre una metodologia di misura che affianca alluso degli strumenti tecnici quello degli strumenti virtuali nellacquisizione e nellelaborazione del potenziale elettrico Elettrocardiogramma generato da ogni cuore per favorire una analisi strettamente scientifica anche in campo medico, stabilendo in modo analitico se la conduzione elettrica del cuore normale o anomala,
22
D A L L A T E O R I A A L L A P R AT I C A
mediante lo studio del battito cardiaco sincronizzato con i tempi donda . I potenziali elettrici V(t) sullelettrocardiogramma registrati nelle derivazioni I, II, III, V1, V2, V3, V4, V5 e V6, acquisiti ad una frequenza di campionamento Fc di duemila campioni al secondo, per una sequenza di 50 battiti, decomposti; individuando il tempo iniziale e finale del ciclo T, ed i tempi delle onde tP, tQ, tR, tS e tT. Ogni periodo del ciclo cardiaco sincronizzato con i tempi di ciascun onda tP, tQ, tR, tS e tT normalizzati al periodo T del ciclo in esame che ne evidenzia una forte dipendenza lineare e non casuale in funzione della frequenza cardiaca ? misurata in battiti minuto. Un test effettuato su pazienti di sana costituzione conduzione elettrica normale evidenzia una pendenza positiva, intercetta bassa prossima allo zero ed un coefficiente di regressione lineare molto alto prossimo ad uno, contrariamente ad una pendenza intorno alla zero, intercetta molto alta dellordine di centinaia per mille ed un coefficiente di regressione lineare molto basso prossimo allo zero in pazienti con problemi cardiaci conduzione anomala pur non riscontrando anomalie sul tracciato elettrocardiogramma.
Il segnale acquisito tramite la scheda USB-6008 ed il software NI DAQmx filtrato con un filtro di banda che elimina i disturbi di provenienza dalla rete elettrica. Al termine della registrazione tramite il tasto che seleziona luscita Esci_Dal_programma si manda in esecuzione il programma che analizza la sequenza dei 50 battiti archiviati per ciascuna derivazione. Il programma di analisi delle onde di fig. 2 Analisi off-line, legge larchivio dei pazienti precedentemente memorizzato su disco e ci presenta la lista delle derivazioni in esso contenute Pazienti.
Il ciclo da esaminare viene scelto mediante un doppio click del mouse sulla derivazione da esaminare elenco Pazienti. Per ogni sequenza di 50 cicli archiviati si scelgono il campione iniziale e il campione finale del ciclo tramite i due puntatori di selezione, con un doppio clic del mouse attiviamo un programma che individua i punti caratteristici del ciclo NP, NQ, NR, NS, NT e NK come indicato nella traccia in alto a destra di fig. 2, proponendoci il battito seguente che inizia dal. indicato dal puntatore +, in modo tale da dover puntare solo . Per ogni sequenza di (n=50) battiti esso scrive una tabella di 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 indicato nella matrice in alto. Al termine dellanalisi della sequenza di 50 cicli possibile osservare direttamente landamento di dipendenza lineare tramite il passaggio al riquadro battito selezionabile dai tasti di tabulazione, il quale ci fornisce i parametri di intercetta, pendenza e coefficiente di regressione lineare tramite i quali possibile stabilire se la conduzione elettrica cardiaca normale od anomala.
23
D A L L A T E O R I A A L L A P R AT I C A
02
Fig. 3 - Mediante un doppio click del mouse ne riquadro relativo alle onde possibile evidenziare la dipendenza lineare dei tempi donda relative al battito in funzione delle frequenze cardiaca
In una fase successiva, tramite il programma report si legge larchivio della tabella di 6 colonne e 50 righe realizzato con il software Report Generation for Microsaft Office Toolkit.
CONCLUSIONI
Il metodo di proporre il segnale dellECG acquisito mediante il processo di misura a registrazione campionata ci da modo di esprimere i tempi donda normalizzati in funzione della frequenza con la loro migliore correlazione Lineare. Infatti lequazione della retta la funzione matematica o legge fisica che statisticamente meglio approssima la loro dipendenza. Pertanto, i parametri analitici e statistici delle rette stabiliscono in senso fisico e cardiologico se la conduzione elettrica normale o anomala. Ad esempio, nel caso che il primo insieme ordinata sia costituito dai tempi donda normalizzati, ed il secondo ascissa sia costituito dalle frequenze si avr una retta 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 lintercetta con lasse dellordinata della retta . Analogamente, per ciascun altro primo insieme TiK in funzione della frequenze cardiaca ? si ottengono i coefficienti angolari: e le intercette con il relativo parametro statistico, indicativo del livello di correlazione lineare esistente tra causa ed effetto o tra variabile indipendente e variabile dipendente. Il coefficiente di correlazione lineare R2 noto come analisi statistica dei minimi quadrati. E auspicabile una medicina di prevenzione delle disfunzioni cardiovascolari, le cui cause si presentano nellorganismo spesso in modo silente, senza allarmare lindividuo ed anni
prima di creare danni irreversibili. Che tale Medicina diventi una realt sociosanitaria oggi possibile, perch esistono i presupposti strumentali e concettuali per individuare ed eliminare le cause del decadimento morfo-funzionale a cui va incontro lapparato cardiovascolare. Lo studio della sincrona delle onde dellECG va in questa direzione, quando: segnala una conduzione elettrica non fisiologica; sensibile agli effettori farmacologici, psicologici e chirurgici che lapparato cardiovascolare subisce; integra in modo logico e con esperienze di laboratorio la conoscenza biologica e quella clinica; controlla ogni individuo in modo diretto, semplice e continuo, evitando costose ed invasive tecniche e stabilisce lefficacia e lefficienza sia degli interventi che delle terapie farmacologiche.
BIBLIOGRAFIA
1. 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 un Elettrocardiogramma e relativo Apparato, PTC International Application Number WO03/007818 A3. 3. Marcello Costantini LElettrocardiogramma Capire ed interpretare LECG
24
D A L L A T E O R I A A L L A P R AT I C A
02
B. S acco I M. La Rosa
ellarticolo viene presentato un sistema in grado di assorbire da una sorgente di energia trifase una corrente di forma donda programmabile dallutente, al fine di realizzare/riprodurre in laboratorio le correnti assorbite da carichi non lineari, quali ad esempio alimentatori elettronici, regolatori a parzializzazione, lampade a scarica, ecc. Un Virtual Instrument (VI) LabVIEW comanda tramite DAC NI FieldPoint tre Triac e tramite la NI PCI-Gpib/LP tre generatori di forme donda arbitraria per pilotare in modo non convenzionale un compensatore di armoniche. Il VI esegue le analisi armoniche e sintetizza separatamente componente fondamentale e armoniche della corrente desiderata. La corrente non-lineare viene sintetizzata tramite le sue componenti: la fondamentale, con un carico resistivo parzializzato, e le armoniche, tramite un compensatore di armoniche usato in maniera non convenzionale. NI LabVIEW acquisisce le forme donda, analizza il contenuto armonico e pilota, tramite FieldPoint FP-AO-V10, tre Triac. La sintesi della corrente armonica viene realizzata dal pro-
gramma e le relative forme donda caricate in tre generatori tramite una scheda NI PCI-Gpib/LP.
INTRODUZIONE
Numerosissimi dispositivi elettrici utilizzati in ambiti industriali (ma anche civili), sono costituiti da alimentatori a commutazione c.a./c.c. e c.a./c.a., con raddrizzatori-regolatori di tipo switching ad alta frequenza, che assorbono corrente in impulsi brevi e di grande ampiezza e quindi si presentano come carichi non-lineari. Gli esempi sono numerosissimi; ne citeremo qui qualcuno: sale macchine con computer, apparati elettronici, inverter, UPS, saldatrici, ecc. In RAI ci sono familiari i casi di luci sceniche con regolatori a parzializzazione (Triac), lampade a scarica, Video-Wall, regie video, ecc. Nel funzionamento di un impianto elettrico trifase a neutro distribuito che alimenta un tale genere di utenze possono quindi presentarsi numerosi problemi diversi, quali: - alto valore del fattore di cresta (tipicamente intorno a 2,5-3);
25
D A L L A T E O R I A A L L A P R AT I C A
02
- basso valore del fattore di potenza (tipicamente intorno a 0,6-0,7); - alte correnti nei conduttori di neutro dovute allo sbilanciamento e alla composizione delle armoniche di terzo ordine; - rumore elettromagnetico irradiato e condotto; - distorsione della tensione d'alimentazione. I suddetti problemi danno luogo a inconvenienti di varia natura, quali la bassa efficienza complessiva dell'impianto, l'apertura intempestiva delle protezioni elettriche, vibrazioni meccaniche, sfarfallo delle sorgenti luminose, malfunzionamento degli interruttori e soglie d'intervento dipendenti dalla frequenza, ecc. In particolare, tali inconvenienti costringono il progettista a sovradimensionare macchinari, dispositivi di commutazione e cavi di potenza, a proteggere da sovracorrenti il conduttore di neutro, a dotare di schermi speciali e filtri le reti di potenza e di segnale. Risulta per difficile o impossibile progettare in anticipo un impianto, perch ci richiederebbe di eseguire preventivamente l'intero allestimento, comportante attrezzature spesso molto costose e ingombranti, al solo scopo di effettuare prove o collaudi.
IL SIMULATORE
Per ridurre questi problemi (e quindi i costi) gi in sede di progetto, si deciso quindi di realizzare un simulatore di carichi elettrici complessi che permetta di eseguire prove, progettazioni e verifiche di comportamento di impianti d'alimentazione, particolarmente di grande potenza.
Il simulatore da noi sviluppato, battezzato ArbLoad (Arbitrary Load, carico arbitrario), stato dimensionato per assorbire una corrente di forma arbitraria, trifase 400 V, 63 A massimi. Come mostrato in fig.1, tale forma donda viene sintetizzata tramite le sue componenti a frequenza fondamentale e armoniche. La componente a frequenza fondamentale viene realizzata (ramo in alto a destra nella figura) mediante con un carico resistivo da 32 A, parzializzato da circuiti a Triac controllati in tensione tramite tre DAC (NI FieldPoint FP-1601e due moduli FP-AO-V10 ad alto isolamento) pilotati dal PC di controllo tramite rete LAN. Questo procedimento genera, oltre alla corrente fondamentale desiderata, delle componenti armoniche spurie dovute alla parzializzazione (commutazione del Triac), e una componente in quadratura (reattiva); di queste spiegheremo pi sotto. Le componenti armoniche vengono realizzate (ramo in basso a destra nella figura) tramite un compensatore di armoniche usato in maniera non convenzionale. Tale apparato, utilizzato di solito per ridurre la distorsione della corrente in installazioni industriali, sostanzialmente un banco di condensatori alimentato da un ponte trifase di Igbt collegato in parallelo al carico. Se il carico assorbe una corrente I=If+Ih (f=fondamentale, h= armoniche), un circuito di controllo pilota in PWM il ponte in modo da immettere la stessa Ih in controfase. In questo modo, la corrente vista dal generatore la sola If , quindi sinusoidale. NellArbLoad usiamo un compensatore di armoniche da 32 A come attuatore per la componente armonica: invece di
Fig. 1 - Struttura del simulatore ArbLoad. Nellarea Test Setup viene inserito il dispositivo da testare. In alternativa, ArbLoad viene utilizzato per testare la linea o il generatore (UPS, gruppo elettrogeno, ecc.)
26
D A L L A T E O R I A A L L A P R AT I C A
B C A
Fig. 2 - Il prototipo di laboratorio. A: VI LabView, generatori arbitrari, monitoraggio delle tre correnti ottenute B: Compensatore darmoniche e quadretto elettrico C: DAC FieldPoint e parzializzatori a Triac
pilotarlo con i segnali provenienti dalle sonde di corrente in dotazione, come normalmente previsto, forniamo tre segnali sintetici provenienti da altrettanti generatori da laboratorio di forme donda arbitrarie, conmandati dal PC tramite una scheda NI PCIGpib/LP. Lunit di acquisizione, al centro della fig.1, costituita da tre A/D converter collegati ai tre trasformatori amperometrici, e uno zero-cross detector collegato ad un trasformatore voltmetrico, usato per generare un segnale di trigger per il sistema. Nel prototipo stato inizialmente usato un oscilloscopio digitale a tre canali al posto dei tre ADC; nella versione industrializzata viene usata una scheda di acquisizione.
IL VI
Il VI scritto in LabVIEW acquisisce le tre forme donda di corrente, analizza il contenuto armonico, e, come accenCONCLUSIONE nato, pilota i tre Triac tramite il moduGrazie a NI LabVIEW la realizzazione lo FieldPoint. Langolo di conduzione Fig. 3 - Una versione industrializzata di ArbLoad protitipale di ArbLoad stata realizzadei Triac viene variato finch la parte ta in tempi record, e tutto il software reale della componente a 50Hz risulta stato riutilizzato con minimi adattamenti permettendo la quella desiderata, entro una tolleranza prefissata. A questo punto, le tre forme donda di corrente vengono di realizzazione della versione industrializzata in soli tre mesi. nuovo acquisite e analizzate e le componenti armoniche, pi la parte immaginaria della componente a 50Hz costituiscono il residuo spurio da eliminare. Esse vengono sottratte Note sugli autori dallo spettro del segnale desiderato. B. Sacco: RAI-Centro Ricerche e Innovazione Tecnologica La differenza cos ottenuta rappresenta ci che manca alla M. La Rosa: RAI-Ingegneria della Produzione TV corrente fin qui ottenuta per ottenere quella desiderata. Tramite DFT inversa viene ottenuto il segnale periodico nel
dominio del tempo. Tale segnale campionato viene quindi caricato nei generatori arbitrari via Gpib tramite la scheda NI PCI-Gpib/LP. La forma donda cos ottenuta sulla linea la sintesi fedele di quella desiderata. Si riscontrato che il compensatore di armoniche, essendo uno dispositivo piuttosto raffinato, non soffre di derive termiche; al contrario i parzializzatori a Triac ed il resistore alimentato variano la corrente assorbita a causa della variazione della temperatura. Ci ha reso necessario aggiungere un ciclo di controllo secondario, che usa come parametro di controllo la componente in fase a 50 Hz della corrente effettivamente assorbita, provvedendo a variare langolo di innesco dei Triac per compensarne le variazioni. Questo consente anche la compensazione delle variazione di tensione di alimentazione del carico. Questo cicli di controllo viene eseguito periodicamente, ma non vi lesigenza di elaborazioni in real-time:Il VI NI LabVIEW gira senza problemi su un PC Pentium3 con sistema operativo Windows2000. Per lutilizzo, ArbLoad viene connesso direttamente alla linea (o generatore: UPS, Gruppo elettrogeno, ecc.) da testare. Se invece si intende testare un dispositivo (interruttore automatico, trasformatore, ecc.) o una linea per prove EMC per disturbi irradiati, si pu utilizzare la sezione Test Setup della fig.1. ArbLoad stato realizzato dapprima in forma prototipale, visibile nella fig.2; la corrente sintetizzata viene visualizzata, tramite i trasformatori amperometrici, sulloscilloscopio digitale. La sezione parzializzatori a Triac stata remotata grazie allunit NI FieldPoint. Il carico resistivo non riportato nella figura. Una versione industrializzata (e marchiata CE) di ArbLoad (fig.3) stata realizzata, per RAI e sotto nostra licenza di brevetto, da unazienda italiana.
27
D A L L A T E O R I A A L L A P R AT I C A
02
Ansaldo Energia ha realizzato e installato in diverse centrali elettriche un sistema di archiviazione e remotazione dati
a crescente domanda di energia elettrica ha comportato in prima battuta un aumento del numero di centrali di produzione e, in seconda luogo, un incremento dellefficienza e disponibilit di ciascuna di esse, attraverso un monitoraggio continuo di parametri relativi alle macchine installate, tramite sistemi di acquisizione e remotizzazione dati in tempo reale. Ci allo scopo di prevedere sempre meglio eventuali fonti di guasto e quindi porvi rimedio nel pi breve tempo possibile. Ansaldo Energia ha realizzato e gi installato in diversi siti un sistema di archiviazione e remotazione dati realizzato attraverso un sistema NI cRIO-9004 di National Instruments, a 8 slot dotato di 500 Mbyte di flash memory e di opportune schede di ingresso sia analogiche che digitali. Il dispositivo in grado di acquisire fino ad un max di 64 canali con un intervallo minimo di tempo di 5 ms tra un campione e laltro per ogni canale acquisito. Per una migliore comprensione della struttura del sistema, verranno descritti la struttura hardware e successivamente i diversi pacchetti software utilizzati dal medesimo per eseguire larchiviazione dei dati.
In tale unit, collocata in campo, confluiscono i vari segnali sotto forma di segnali a 10V provenienti dai diversi sensori di pressione, temperatura, ecc. sistemati allinterno delle macchine e necessari a capire lo stato di funzionamento delle stesse. Tramite opportuno applicativo realizzato in NI LabVIEW FPGA, i campioni acquisiti dalle diverse schede di input vengono ordinati e inviati alla CPU dellunit RealTime NI cRIO-9004. La CPU collocata nel modulo NI cRIO-9004, ma gerarchicamente al livello superiore e un apposito applicativo realizzato con NI LabVIEW FPGA si preoccupa di ricevere e salvare sulla flash memory i dati con opportuna struttura binaria in modo da ottimizzare lo spazio di memoria. Larchivio nel quale essi sono conservati organizzato in diversi file numerati in maniera progressiva e strutturati secondo una tabella, dove la prima colonna contiene linformazione temporale nel formato giono, mese, anno, ora, minuto, secondo e millisecondo e le successive colonne invece i diversi canali acquisiti. Lintestazione di ogni file invece costituita dai diversi tag di ogni canale e dai relativi campiscala di ciascuno di essi. importante sottolineare come linformazione oraria sia mantenuta sincronizzata ad intervalli ciclici con il PC host di secondo livello, il quale orologio 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 dimensione di circa 4 Mbyte, lapplicativo si preoccupa di passare ad uno successivo in modo tale da realizzare un archivio storico locale a bordo dellunit NI CompactRIO formato da un massimo di circa 120 file e compatibile con la dimensione massima della flash memory. ovvio che una volta terminato di scrivere il file N 120 il sistema inizier nuovamente a sovrascrivere il primo file dellarchivio e cos via secondo una modalit di storicizzazione dati a tamburo. Considerando di acquisire 64 Ch a 5 ms, larchivio locale in grado di contenere i dati fino ad un massimo di circa 15 ore senza essere sovrascritto nuovamente. Il secondo livello costituito da un personal computer connesso tramite protocollo TCP/IP ai moduli NI CompactRIO. In esso eseguito un applicativo NI LabVIEW che in grado di connettersi allunit NI CompactRIO e di prelevare i file
28
D A L L A T E O R I A A L L A P R AT I C A
dallarchivio locale in modo da creare un archivio storico su di esso e quindi di capienza molto pi grande, legata sostanzialmente alla dimensione fisica dellhard disk del PC. Il programma presente sul PC, qualora si interrompesse per un periodo di tempo la connessione TCP/IP, in grado, una volta ristabilita, di risalire allultimo file trasferito e quindi di iniziare il procedimento di archiviazione da quello successivo, ovviamente linterruzione di comunicazione tra PC e NI CompactRIO non deve durare oltre le circa 15 ore per evitare di perdere dati che verrebbero sovrascritti. Il terzo livello semplicemente costituito da un PC connesso allhost tramite una connessione Internet in genere tramite VPN, ovviamente dotata delle opportune protezioni anti intrusione. Con esso dalla sede centrale possibile consultare larchivio dati in modo da eseguire diagnosi a distanza.
Nota sullautore
S. Cacciacarne: Ansaldo Energia
fosse necessario, pu essere salvato in un file che pu essere ricaricato nella sezione trend off line per analisi e valutazioni sulle grandezze senza interrompere laquisizione real-time che nel frattempo prosegue nella sezione precedente. La possibilit di consultare dati da remoto direttamente dalla sede ha consentito un notevole risparmio economico e in termini di tempi di intervento, facilitando il compito del personale di servizio in grado di eseguire interventi atti alla risoluzione guasti molto pi mirati.
29
SCUOLA DI LABVIEW
02
Le variabili locali trasferiscono dati allinterno di un singolo VI, le variabili globali permettono di accedere ai dati e passarli tra diversi VI che sono in esecuzione contemporaneamente
n LabVIEW il flusso dei dati, piuttosto che lordine sequenziale dei comandi, determina lordine di esecuzione degli elementi dello schema a blocchi. Quindi, potete creare schemi a blocchi che svolgono operazioni contemporanee. Per esempio, potete avviare due For Loop simultaneamente e visualizzare i risultati sul pannello frontale, come mostrato nello schema a blocchi della fig. 1.
avvia i due cicli in parallelo a causa del filo di collegamento presente tra i due subVI. Il collegamento crea una dipendenza nellordine di esecuzione e il secondo ciclo non si avvia finch il primo ciclo non ha finito e passato i dati attraverso il tunnel. Per far s che i due cicli siano eseguiti contemporaneamente, rimuovete il collegamento. Per passare i dati tra i subVI, utilizzate unaltra tecnica, ad esempio una variabile. In LabVIEW le variabili sono elementi dello schema a blocchi che vi consentono di accedere ai dati o di memorizzarli in unaltra locazione. La locazione attuale dei dati varia in funzione del tipo di variabile. Le variabili locali memorizzano i dati nei controlli e indicatori del pannello frontale. Le variabili globali memorizzano i dati in contenitori particolari ai quali potete accedere da pi VI. Indipendentemente da dove vengono memorizzati i dati, tutte le variabili vi consentono di aggirare la normale logica a flusso di dati, passando i dati da un posto a un altro senza necessit di effettuare alcun collegamento. Per questo motivo le variabili sono utili nelle architetture in parallelo, ma hanno anche alcuni svantaggi, come le condizioni di conflitto.
Tuttavia, se utilizzate dei collegamenti per passare i dati tra gli schemi a blocchi in parallelo, essi non operano pi in parallelo. Esempi di schemi a blocchi in parallelo possono essere due cicli presenti sullo stesso diagramma e privi di collegamenti, oppure due VI distinti che vengono chiamati nello stesso istante. Il diagramma a blocchi della fig. 2 non
Fig 2: While Loop con dipendenza dei dati imposta dal collegamento
Le variabili locali trasferiscono dati allinterno di un singolo VI. Creazione di variabili locali Cliccate con il tasto destro del mouse su un oggetto esistente del pannello frontale o dello schema a blocchi e selezionate CreateLocal Variable dal menu rapido per creare una variabile locale. Nello schema a blocchi appare unicona di variabile locale per loggetto. Potete anche selezionare una variabile locale dalla palette Functions ed inserirla nello schema a blocchi. Il nodo della variabile locale, mostrato nella fig. 3, non ancora associato ad un controllo o ad un indicatore. Per associare una Fig 3: Nodo della variabile locale variabile locale ad un controllo o ad un indicatore, cliccate con il tasto destro del mouse sul nodo della variabile locale e selezionate Select Item dal menu rapido. Il menu rapido espanso elenca tutti gli oggetti del pannello frontale aventi etichette proprie.
30
SCUOLA DI LABVIEW
LabVIEW utilizza le etichette per associare le variabili locali agli oggetti del pannello frontale, quindi etichettate i controlli e gli indicatori del pannello frontale con nomi descrittivi. Lettura e scrittura di variabili Dopo aver creato una variabile locale o globale, potete leggere o scrivere i dati su una variabile. Di default una nuova variabile riceve dati. Questo tipo di variabili opera come un indicatore e si parla di variabile locale o globale abilitata in scrittura. Quando scrivete nuovi dati su una variabile locale o globale, il controllo o lindicatore associato del pannello frontale si aggiorna con il nuovo dato. Potete anche configurare una variabile affinch si comporti come una sorgente di dati, o variabile locale o globale abilitata in lettura. Cliccate con il tasto destro del mouse su Change to Read dal menu rapido per configurare la variabile come controllo. Quando questo nodo in esecuzione, il VI legge i dati nel controllo o nellindicatore associato del pannello frontale. Per far s che la variabile riceva dati dallo schema a blocchi piuttosto che fornirli, cliccate con il tasto destro del mouse su Change to Write dal menu rapido. Sullo schema a blocchi potete distinguere le variabili abilitate in lettura da quelle abilitate in scrittura, esattamente come si distinguono i controlli dagli indicatori: se in lettura presenta un bordo spesso, come un controllo, mentre se in scrittura ha un bordo sottile, come un indicatore.
terminale. Tuttavia, con una variabile locale potete scrivere su essa anche se un controllo o leggere da essa anche se un indicatore. In effetti, con una variabile locale potete accedere ad un oggetto del pannello frontale sia in ingresso che in uscita. Per esempio, se linterfaccia utente richiede il login dellutente, potete cancellare il contenuto dei campi di Login e Password ogni volta che un utente effettua il login. Utilizzate una variabile locale per leggere dai controlli stringa Login e Password quando un utente effettua un login e per scrivere stringhe vuote su questi controlli quando lutente effettua il logout.
31
SCUOLA DI LABVIEW
02
Cliccate due volte sul nodo della variabile globale per visualizzare il pannello frontale del VI globale. Inserite controlli e indicatori in questo pannello frontale nello stesso modo in cui lo fareste in un pannello frontale standard. Etichettate controlli e indicatori del pannello frontale con etichette significative, in quanto LabVIEW usa tali etichette per identificare le variabili globali. Potete creare svariati VI globali, ognuno con un singolo oggetto nel pannello frontale oppure creare un VI globale con pi oggetti nel pannello frontale. Un VI globale con pi oggetti pi efficiente perch potete raggruppare insieme delle variabili correlate. Potete inserire VI globali in altri VI nello stesso modo in cui inserite subVI in altri VI. Ogni volta che inserite un nuovo nodo di variabili globali in uno schema a blocchi, LabVIEW crea un nuovo VI associato solo a quel nodo e a copie di esso. La fig. 6 mostra un pannello frontale di una variabile globa-
bile globale associata al primo oggetto del pannello frontale con unetichetta propria che avete inserito nel VI globale. Cliccate con il tasto destro sul nodo della variabile globale che avete inserito nello schema a blocchi e selezionate un oggeto del pannello frontale dal menu rapido Select Item per associare la variabile globale ai dati provenienti da un altro oggetto del pannello frontale.
Note sullautore
Fig 6: Pannello frontale della variabile globale
le con un numero, una stringa e un cluster contenente un controllo numerico e un controllo booleano. La barra degli strumenti non mostra i pulsanti Run, Stop e gli altri pulsanti normalmente presenti su un pannello frontale. Quando avete finito di inserire gli oggetti nel pannello frontale del VI globale, salvatelo e tornate allo schema a blocchi del VI originale. Dovete poi selezionare loggetto del VI globale a cui volete accedere. Cliccate con il tasto destro sul nodo della variabile globale e selezionate un oggetto del pannello frontale dal menu rapido Select Item. Il menu rapido elenca tutti gli oggetti del pannello frontale del VI globale che hanno etichette proprie. Potete anche usare gli strumenti Operating o Labeling per cliccare sul nodo della variabile globale e selezionare loggetto del pannello frontale dal menu visualizzato. Se volete usare questa variabile globale in altri VI, selezionate FunctionsAll FunctionsSelect a VI. Di default la varia-
32
SCUOLA DI LABVIEW
02
l formato Text Data Exchange (TDM) un formato di file ibrido che combina la memorizzazione binaria e i dati ASCII formattati in XML. In un file TDM, i dati numerici grezzi sono memorizzati in formato binario. Questo d i vantaggi del binario, come un uso dello spazio efficiente e tempi di scrittura veloci. Oltre a questi dati, un formato XML conserva la struttura dei dati e informazioni sugli stessi. Questo consente allinformazione nel file di essere facilmente accessibile e ricercabile. Tipicamente, i dati binari e i dati XML sono separati in due file, un file .tdm per i dati XML e un file .tdx per i dati binari.
informazioni sulle vostre prove e misurazioni pu rendere pi semplice lanalisi e pu anche consentirvi di cercare specifici insiemi di dati. Cercare file specifici o insiemi di dati in base a criteri memorizzati importante quando mettete insieme grandi quantit di datisoprattutto se dovete condividere i dati con altri. La ricerca dei dati in un file sulla base di una o pi condizioni una caratteristica del formato di memorizzazione dei dati TDM. Con la maggior parte dei formati di file, dovete leggere lintero file per localizzare uno specifico insieme di dati. Con un file TDM potete specificare una condizione quando leggete i dati e la lettura restituisce solo i dati che corrispondono a quella condizione. Usando letture multiple e unificando i loro risultati potete costruire richieste (queries) complesse per i vostri dati. Potete usare ogni propriet dei file TDM, dei Channel Group o dei Channel come condizione di ricerca. Perci inserite quante pi propriet possibili quando registrate dei file TDM. Queste propriet semplificano la localizzazione dei dati. Come molti altri formati binari di file, solo i programmi progettati appositamente per riconoscerli e decodificarli possono leggere i file TDM. LabVIEW, LabWindowsTM/CVITM e DIAdem e qualche altro software NI possono leggere i file TDM. Salvate i vostri dati in formato TDM quando volete accedere ai vostri dati con LabVIEW o DIAdem. Usate invece un formato pi universale come lASCII per accedere ai vostri dati usando altro software.
33
SCUOLA DI LABVIEW
02
Per avere accesso a tutte le potenzialit dei file TDM, usate lAPI Data Storage. LAPI Data Storage un insieme di VI che pu scrivere file in diversi formati, e di default scrivono file TDM. La fig. 2 un esempio di semplice programma che registra le propriet dei canali e i dati numerici su un file TDM usando lAPI Data Storage.
dialogo di configurazione o determinare il percorso durante lesecuzione usando il terminale del diagramma a blocchi. Write Data vi consente di creare canali e gruppi di canali allinterno del vostro file. Esso vi consente di scrivere propriet e dati per le voci che create. La finestra di dialogo di configurazione di questo VI vi consente di selezionare quali propriet hanno i terminali del diagramma a blocchi e specificare come si deve comportare il VI se cercate di memorizzare due canali con lo stesso nome in un file.
Fig 2: Uso dellAPI Data Storage per scrivere un semplice file TDM
Read Data vi consente di cercare canali o gruppi di canali in base a condizioni da voi specificate. La finestra di dialogo di configurazione di questo VI vi consente di specificare le condizioni di ricerca, cos come il tipo di dati restituiti quando il risultato della ricerca un canale.
34
SCUOLA DI LABVIEW
Questo VI pu restituire i segnali dei dati reali da un canale, ma per accedere ad altre propriet di un canale o di un gruppo di canali passate i riferimenti restituiti da questo VI al VI Get Properties. Notate che poich una richiesta pu dare pi risultati, questa funzione restituisce tutti i suoi risultati, compresi i refnum, in array.
Delete Data usate questo VI per cancellare canali o gruppi di canali da un file. Diversamente da altri formati di file, spesso riutilizzate un singolo TDM invece di creare un nuovo file ogni volta che un VI va in esecuzione. Quando si usano i file TDM in questo modo, il VI Delete Data vi consente di eliminare i dati indesiderati dai file. Per esempio potete fare richiesta al file di vecchi canali di dati, scriverli su un file di archivio e poi cancellarli dal file originale. Delete Data non cerca i dati, esso richiede un riferimento al dato, perci usate generalmente Read Data per localizzare i dati prima di usare Delete Data per rimuoverli.
Set Properties questo VI vi consente di impostare le propriet 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 utilizzato per impostare le propriet dei file. La finestra di dialogo di configurazione vi consente di selezionare il tipo di oggetto di cui impostare le propriet e le propriet da impostare. Potete anche usare questo VI per impostare il segnale dei dati di un canale. Quando impostate il segnale potete scegliere se aggiungere il nuovo dato in coda a un dato esistente 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 cercare canali o gruppi di canali e poi accedere alle propriet dei risultati della ricerca. Potete anche usare questo VI per mettere tutti i gruppi di canali in un file o tutti i canali in un gruppi di canali. La finestra di dialogo di configurazione vi consente di scegliere le propriet alle quali siete interessati. Close Data Storage chiude un riferimento a un file TDM. Notate che dovete solo chiudere il riferimento del file, qualsiasi riferimento relativo a canali e gruppi di canali si chiude automaticamente quando chiudete il riferimento del file. Merge Queries vi consente di costruire richieste complesse. Poich il VI Read Data vi permette di specificare solo una condizione, usate questo VI e pi VI Read Data per costruire richieste che hanno pi di una condizione. Fate riferimento alla sezione Costruzione delle richieste per maggiori informazioni.
Per accedere a propriet diverse dal dato del segnale, usate il VI Get Properties con i riferimenti dei risultati da Read Data. Notate che poich Read Data restituisce un array, dovete usare un For Loop per indicizzarlo prima di chiamare Get Properties. Invece di visualizzare il dato del segnale, lesempio nella fig. 9 mostra le propriet di tutti i canali con Massimo maggiore o uguale a 5.
Quando il vostro file TDM contiene gruppi di dati, spesso dovete cercare i canali solo in un particolare gruppo. Potete fare questo usando due VI Read Data: uno per cercare il gruppo di canali appropriato e il secondo per cercare i canali allinterno di quel gruppo. Collegare il riferimento del gruppo di canali al VI Read Data vi consente di restringere la ricer-
35
SCUOLA DI LABVIEW
02
ca del canale ai canali di quel particolare gruppo. Lesempio in fig. 10 grafica tutti i canali nel gruppo Temperature Data con un massimo maggiore di 76 gradi. Questo esempio assume che esista un solo gruppo con il nome Temperature Data. Questa unassunzione valida a meno che voi non verifichiate lopzione Always Create new channel group/channel quando scrivete i dati con il VI Write Data. Se non potete garantire che solo un gruppo di canali corrisponda alla vostra richiesta, passate attraverso i risultati della richiesta usando un ciclo For come lesempio in fig. 10. Per costruire richieste TDM complesse, usate il VI Merge Queries. Questo VI vi consente di combinare i risultati dei due VI Read Data. Quando usate Merge Queries, potete ottenere risultati che sono nella prima richiesta e nella seconda richiesta o combinare i risultati di entrambe le richieste. Dopo aver chiamato Merge Queries, chiamate Get Properties per accedere ai segnali o alle propriet dei risulFig 10: Richiesta dati da un gruppo di canali tati delle richieste.
Unaltra tecnica di raggruppamento di raggruppare dati correlati. Per esempio, potreste mettere in un gruppo tutti i dati che si riferiscono ad una singola Unit Under Test (UUT). Raggruppare dati correlati vi consente di localizzare facilmente tutti i dati relativi a un determinato soggetto, ma rende difficile comparare i dati associati a soggetti distinti. Il raggruppamento relazionale aiuta a convertire la memo-
rizzazione basata su cluster al formato TDM. Potete memorizzare tutte le informazioni da un dato cluster in un gruppo di canali, dove gli array del cluster diventano i canali del gruppo e gli elementi scalari del cluster le propriet del gruppo di canali. La fig.13 mostra un esempio di raggruppamento di dati correlati. Notate che i dati in ingresso sono un array di cluster, ognuno dei quali contiene pi informazioni su una prova. Ogni prova immagazzinata come un
Note sullautore
Matteo Foini, National Instruments
36
diverso gruppo di canali. Le informazioni che si applicano allintera prova, come Test ID e Test Status, sono conservate come propriet del gruppo di canali. Gli array di dati, come i dati temporali e lo spettro di potenza, sono memorizzati in canali e le informazioni relative agli array di dati, come il valore efficace e la frequenza fondamentale, sono conservati come propriet dei canali. Notate che quando raggruppate dati correlati, c tipicamente un numero fisso di canali in un gruppo, mentre il numero di gruppi dinamico.
REPORT
02
edizione 2007 del Forum Tecnologico sulla Strumentazione Virtuale (NIDays 2007) di Milano, si chiusa con risultati davvero positivi, confermandosi, ancora una volta, come un appuntamento di riferimento nel panorama congressuale italiano per il settore della Misura e dellAutomazione: 415 partecipanti, 26 espositori e 33 postazioni dimostrative su unarea espositiva complessiva di 1000 mq, la pi grande e ricca mai realizzata per NIDays, ormai scenario irrinunciabile di vivace scambio di soluzioni, idee e ottima occasione di networking tra i presenti allevento.
ad una piattaforma completa di progettazione grafica di sistemi. Grazie alle nuove potenti funzionalit e la capacit di combinare approcci diversi (ad es. programmazione dataflow e matematica testuale, recentemente introdotta con MathScript), LabVIEW 8.20 oggi una piattaforma grafica unica per progettazione, prototipazione e distribuzione di sistemi embedded. Di seguito, Microsoft Italia ha illustrato le potenzialit del nuovo sistema operativo Microsoft Windows Vista, non tralasciando aspetti come la compatibilit con i prodotti National Instruments e le possibili implicazioni future.
Le sessioni convegnistiche mattutine hanno visto l'evoluzione del concetto di Strumentazione Virtuale come protagonista nella parte affidata a National Instruments, che ha illustrato i retroscena del Graphical System Design, ovvero il futuro di NI LabVIEW. Negli ultimi anni, la piattaforma LabVIEW si sviluppata in nuove aree, evolvendosi da strumento per lacquisizione di dati e il controllo di strumenti,
Nel pomeriggio, le 12 sessioni di approfondimento, suddivise nei 4 cicli tematici Software, Progettazione e Controllo, Misura e Collaudo, Applicazioni e Soluzioni, hanno illustrato tecnologie, prodotti e linee guida delle piattaforme NI dando ampio spazio alle applicazioni tecniche finali. Da segnare in agenda la prossima edizione di NIDays: febbraio 2008 a Roma.
37
01
Vi presentiamo una selezione di argomenti di discussione sul Forum di ILVG.it
38
Note sullautore: Alessandro Ricco (www.agilesystems.it), ILVG.it Admin & LabVIEW Champion
39
D A L L A C A RTA A L W E B
02
HTTP://WWW
Ecco alcuni link che vi permetteranno di ampliare il numero di argomenti descritti in questo numero della rivista
Usare il VI Server per accedere alle variabili globali (in locale e da remoto)
I VI desempio allegati (Get Value.vi e Set Value.vi) utilizzano il VI Server per accedere ai dati da una variabile globale denominata Globals.vi (cos chiamata perch consiste di tre variabili/controlli: String [di tipo stringa], Boolean [di tipo booleano] 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
40
D A L L A C A RTA A L W E B
41
REPORT
02
La terza edizione della mostra convegno dedicata alle tecnologie e ai prodotti per il motion control ha visto i visitatori crescere del 23%
ono stati oltre 520 i visitatori professionali che hanno partecipato alla terza edizione di MC4, la mostra convegno dedicata alle tecnologie e ai prodotti per il controllo del movimento organizzata da VNU Business Publications Italia e che si svolta lo scorso marzo presso le strutture di Bologna Congressi. Con un numero di presenze superiore del 23% rispetto alledizione del 2006, MC4 si quindi affermata definitivamente nel panorama congressuale italiano quale punto di riferimento in ambito di controllo del movimento. Affollatissime le sessioni convegnistiche mattutine e pomeridiane, tanto da aver costretto il pubblico, in alcuni casi, a sistemarsi allesterno delle sale stracolme con soli posti in piedi. Il successo che il pubblico ha decretato per MC4 essenzialmente legato al vantaggio di poter trarre il massimo profitto da un impegno di durata ragionevolmente breve, una giornata al massimo, sottolinea Alberto Taddei, responsabile del Cluster Trade di VNU Business Publications Italia, divisione che oltre ad organizzare le mostre convegno- pubblica vari titoli tra cui le riviste Automazione Oggi, Automazione e Strumentazione, Elettronica Oggi, Progettare e RMO. Questa formula consente infatti al visitatore di poter efficacemente organizzare la propria giornata scegliendo i seminari e prendendo diretto contatto con le aziende del settore che egli ritiene pi interessanti. Non inoltre da sottovalutare anche la disponibilit del buffet che, tradizionalmente, oltre a rappresentare un momento di relax conviviale, costituisce una importantissima occasione di networking personale tra tutti gli intervenuti.
Dal punto di vista delle aziende partecipanti, prosegue Taddei, linteresse sempre pi forte verso questo tipo di eventi risiede nellottimo risultato in termini di costo a contatto per tempo, che offre loro la possibilit di massimizzare i risultati di un impegno che non va oltre larco di una 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 da VNU Business Publications Italia, i prossimi appuntamenti sono:
VforM Vision for Manufacturing 17 maggio 2007 Torino e 23 maggio 2007 Vicenza
42
REPORT
02
a toccato tutto il territorio nazionale il road show che nei mesi di aprile e maggio, in 9 citt italiane, ha rappresentato una tappa obbligata di approfondimento ed aggiornamento sulle utlime novit del Data Logging e monitoraggio industriale. Obiettivo della manifestazione itinerante: portare la tecnologia National Instruments a chi deve realizzare applicazioni di data logging, dalle pi semplici, basate su PC e senza bisogno di programmazione, come lacquisizione di segnali
Numerose, infatti, le tematiche affrontate e corredate da esempi dimostrativi: Come migliorare la produttivit di sistema e ridurre i tempi di sviluppo grazie al software di data logging interattivo NI LabVIEW Signal Express: un ambiente di misura completamente interattivo adatto allacquisizione, analisi e presentazione dati da centinaia di dispositivi. Misure elettriche e da molteplici tipologie di sensori, con condizionamento di segnale integrato, isolamento e con-
lentamente variabili nel tempo, a quelle pi complesse, dove si rende necessario lutilizzo di sistemi distribuiti o presente un elevato numero di canali, come la registrazione nel tempo delle prestazioni di una rete di distribuzione dellenergia elettrica. Levento si aperto con una sessione plenaria dedicata all'analisi delle potenzialit di mercato, del posizionemento e dellattuale stato dellarte delle tecnologie di Data Logging in Italia. La giornata proseguita presentando soluzioni PC-based e pronte alluso adatte alle esigenze applicative pi svariate. In perfetto stile National Instruments, il seminario non ha deluso le aspettative del pubblico di chi necessita di aggiornamenti rapidi e di mettere subito in pratica le conoscenze acquisite illustrando soluzioni rapide e concrete.
nettivit diretta, sfruttando tutta la semplicit plug and play della tecnologia USB. Unendo la facilit d'uso ed il basso costo di un data logger con le prestazioni e la flessibilit della strumentazione modulare, NI CompactDAQ permette misure veloci ed accurate con un sistema compatto, semplice ed economico. Soluzioni di data logging embedded intelligente e distribuito via Ethernet. Accesso alle informazioni relative alle pi comuni configurazioni dei sistemi di monitoraggio per misure di temperatura, deformazione, forza, pressione, ecc. Supervisione industriale per la creazione di sistemi con elevato numero di canali. Tecnologia real-time per controllo di macchine industriali. Generazione di report e analisi off-line.
43
REPORT
02
Un seminario in due tappe ambientato nel mondo accademico che strizza locchio all'universo industriale
10
date, 10 citt italiane, 10 opportunit di fare pratica. Lormai collaudata formula dellevento Hands-On ha decretato il successo del Corso pratico introduttivo alla programmazione di dispositivi RealTime con LabVIEW: 250 partecipanti. Durante la sessione introduttiva, gli esperti National Instruments hanno avvicinato i corsisti alle problematiche ed alle capacit dei sistemi real-time per apprendere gli elementi di base della programmazione grafica applicata a sistemi distribuiti intelligenti. I tecnici NI hanno successivamente guidato i presenti nellapprendimento, partendo da esempi elementari di acquisizione e controllo fino alla realizzazione di un sistema retroazionato ad anello chiuso con logging dei dati e pubblicazione dellinterfaccia utente via web. Tutti i partecipanti hanno potuto provare le potenzialit di LabVIEW RealTime e delle piattaforme PAC (Programmable Automation Controller) di National Instruments con una postazione a
propria disposizione e laffiancamento di un istruttore National Instruments. Secondo Roberto Isernia, Technical Marketing Engineer di National Instruments Italy, il successo che da sempre il pubblico decreta ai diversi eventi di tipo hands-on proposti da National Instruments, legato al vantaggio concreto di poter provare di persona le tecnologie presentate, e crescere nelle competenze in un lasso di tempo ragionevolmente breve. Nel mercato della misura e dellautomazione si sta sempre pi consolidando lesigenza di hardware indipendente in grado di poter sfruttare la potenza di calcolo e le potenzialit del PC. In questo scenario, si stanno distinguento le piattaforme PAC e NI LabVIEW Real-Time, aggiunge Isernia, cuore pulsante della piattaforma di sviluppo NI e perfettamente in linea con le esigenze di mercato consolidate e nascenti, non poteva che conquistarsi consenso ed interesse unanime.
44
na cornice di grande impatto per entrambe le date italiane del Seminario, 27 marzo a Milano e 29 marzo a Roma. Due atenei, il Politecnico di Milano e lUniversit degli Studi Tor Vergata di Roma, che aprono le porte a discussioni tecniche specialistiche di grande interesse e utilit per esperti legati al mondo della progettazione, della prototipazione, dellingegneria di test per la validazione di prodotto e del collaudo finale di produzione. LIng. Massimiliano Banfi System Engineer Mediterranean di National Instruments Italy speaker delle due giornate, ha fornito ai presenti in sala elementi di aggiornamento sulle evoluzioni tecnologiche del mondo della progettazione ed
effettuato dimostrazioni pratiche relative alle tre fasi del V Diagram, ovvero la fase iniziale di modellazione della fisica del fenomeno da controllare, quella di progettazione ed implementazione di una strategia di controllo, ed infine la prototipazione della strategia di controllo. Le varie fasi del V Diagram sono state coadiuvate da demo in cui la plant da controllare era un motore a c.c.. Un equilibrato connubio tra teoria e pratica sembra, tuttavia, non essere stato lunico ingrediente segreto dietro al successo del seminario: come sottolinea lIng. Banfi, parte del merito della grande affluenza di pubblico si pu attribuire anche alla presentazione di tool utilizzabili in un approccio di tipo meccatronico, ovvero la combinazione sinergica di ingegneria meccanica, elettronica, teoria del controllo e computer, che sta oggi suscitando un grande interesse nel mercato italiano e internazionale.
A P P U N TA M E N T I
Come sempre, vi segnaliamo i prossimi corsi di formazione di LabVIEW e i principali eventi internazionali che vedranno la partecipazione di National Instruments
02
EVENTI NI
FORUM AEROSPAZIO E DIFESA 2007
Roma, 30 maggio
NIWEEK
Austin, 7, 8, 9 agosto
EVENTI VNU
VISION FOR MANUFACTURING
Torino, 17 maggio Vicenza, 23 maggio
FIERE
SENSOR & TEST
Messenzentrum Nrnberg, 22-24 maggio
SAE TOPTEC
Torino, 11-14 giugno
CORSI DI LABVIEW
LABVIEW BASE I: INTRODUZIONE
Milano dal 7 al 9 maggio dall'11 al 13 giugno dal 9 all'11 luglio dal 17 al 19 settembre dal 07 al 09 maggio dal 18 al 20 giugno dal 24 al 26 settembre dal 28 al 30 maggio dal 4 al 6 luglio
Roma
Torino Padova
MANIFESTAZIONE
ILVG DAY
ILVG Day una manifestazione libera e gratuita dedicata alle tecnologie e alla programmazione LabVIEW. L'evento, alla sua prima edizione, vuole essere un momento di ritrovo per le tutte quelle persone che gravitano, per lavoro, per passione o per semplice interesse, nell'ambiente LabVIEW. Durante l'ILVG Day verranno proposte 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.
45
L A BV I E W E L AVO R O
02
AAA
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, integrating microcontroller based intelligence into existing analog measurements circuits, 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 recommendations. Conduct and supervise testing programs including temperature, thermal cycle, vibration, overload, electromagnetic interference, and magnetic compatibility testing. Develop novel sensor packaging and/or transducer concepts for new applications such as NASCAR racecar application, turbine engine internal shaft application, and oil drilling tool application. Contribute to transitioning the existing
Conoscete bene LabVIEW? Date unocchiata alle offerte di lavoro che abbiamo selezionato da ILVG.it
torque sensor product line from a lowvolume product to a medium-volume production 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 magnetoelastic and/or mechatronic products such as non-contract actuators, integrated torque/speed sensors, multi-axis stress gauges and angular and axial position sensors, 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 components described above. Travel to client sites in Europe, Japan and the US to monitor system installation and provide field support at dyno tests, track tests and races as required. Assist in drafting and presenting technical proposals to prospective and existing clients. Requirements: Mechanical, electrical or aerospace engineering degree. A concentration in sensors, control systems or mechatronics is recommended though not required. Two to four years of professional engineering experience. Proficiency in MS Office, Matlab and 3D solid modelling software packages. Experience with circuit layout and simulation 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 commercializzazione di macchinari per collaudo 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 acquisizione per misure elettriche; hardware analogico e digitale, software LabVIEW. Discreta conoscenza dellinglese 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'uno 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 meccatroniche in continuo trend di crescita ci ha incaricato di ricercare urgentemente uno Specialista Junior in Attuatori e strumentazione
46
L A BV I E W E L AVO R O
02
Requisiti: Laurea in Ingegneria elettronica, elettrica o in Fisica, indirizzo automazione ed elettronica industriale; Esperienza almeno biennale in ambito di: microattuatori e microsensori (elettromagnetici, piezoelettrici, magnetostrittivi, 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 orientamento al raggiungimento degli obiettivi assegnati e doti di team working. Sede di lavoro: Bari Se interessati si prega di inviare il proprio curriculum vitae, citando il riferimento 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
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 processing applicate al controllo di motori elettrici. Esperienza maturata nei settori elettronica per beni di consumo o per automotive, aerospazio, robotica, servomeccanismi, motori elettrici, prodotti professionali. Sede: Lombardia, Varese www.jobadvisor.it
Process. Definition of technical requirements; external suppliers' design coordination; component and system validation planning; drawing release according to Product Programs and Powertrain Master Timings. Assessment of supplier offers regarding technical content, timing and project requirements Assessment and consolidation of development results. Continuous product improvement and cost reduction planning and coordination. Evaluate and release design changes, according to GM tools and procedures.
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 predevelopment to Start of Production and later during production, according to Global Powertrain Development Process and Change Management
SISTEMISTA CONTROLLISTA PER DRIVE SYSTEMS Descrizione: la funzione riguarda lo sviluppo dei controlli e dell'ideazione di algoritmi avanzati per creare funzioni innovative per gli elettrodomestici del futuro. Funzione Aziendale: Produzione/tecnica/qualit. Localit: Cassinetta di Biandronno (VA)
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 Management 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 sensitive 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
47