Sei sulla pagina 1di 47

07

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

SETTEMBRE

2008

In caso di mancata consegna restituire alleditore che si impegna a pagare la relativa tassa presso il CMP di Roserio - Milano

LABVIEW

GOES INDUSTRIAL LE CHANNEL API NI-CAN CREAZIONE E DISTRIBUZIONE


DELLE APPLICAZIONI

SCENARIO
07

UN INVITO A ESPRIMERSI RIVOLTO ALLA COMUNIT LABVIEW WORLD


IWeek 2008: con un incremento del 23% rispetto all'edizione precedente, quest'anno stato toccato un nuovo record di visitatori registrati. Il primo giorno risultavano oltre 2600 iscrizioni, un numero che probabilmente aumentato nel corso delle giornate seguenti. Che cosa significa? Le chiavi di lettura possono essere diverse, ma ora vogliamo focalizzarci su una di essere in particolare: voi, utenti di LabVIEW, avete ormai raggiunto le dimensioni di una citt, di una folla compatta; o, come direbbero negli Stati Uniti, di una lobby. Una lobby in grado di influenzare, con il proprio lavoro e la propria ricerca di soluzioni innovative, ogni aspetto delle vita industriale, scientifica ed anche quotidiana del pianeta. Non pensiamo di esagerare, perch se ai 2600 iscritti di NIWeek aggiungiamo le centinaia di registrati all'edizione italiana di NIDays, le migliaia di utenti LabVIEW che hanno partecipato ad altri eventi National Instruments nel mondo e tutti coloro che per qualche motivo non hanno partecipato, otteniamo un numero davvero impressionante. E' la comunit di LabVIEW, che si organizza, si esprime e si informa dinamicamente lungo mille canali diversi, ben sintetizzati da Nadia Albarello nell'articolo che troverete in questo numero. E, fra questi mille canali, vi ormai da due anni quello della comunit di LabVIEW World, la rivista che state sfogliando. Normalmente si dice "Abbiamo fatto una scommessa, abbiamo vinto" per spiegare il successo di un'iniziativa come questa. Noi preferiamo dire "Sapevamo che in Italia esisteva una comunit numerosa e motivata, le abbiamo dato voce". Perch non abbiamo scommesso su una previsione aleatoria, ma su un dato certo: mancava un magazine dedicato a tutti coloro che ruotano attorno a LabVIEW, il nostro editore ha deciso di colmare la lacuna. Che cosa manca ancora per chiudere il cerchio (o il loop, visto che parliamo a tecnici)? Manca il feedback della comunit, non solo su quello che scriviamo, ma su tutto ci che succede nel mondo LabVIEW: eventi e seminari proposti da National Instruments e i suoi partner, ricerche e altre attivit in ambito accademico, progetti realizzati da scuole o singoli ricercatori, e cos via. Il nostro quindi un invito ad esprimersi rivolto alla comunit LabVIEW World, che ha sicuramente molte cose da dire e da condividere. Come fare? Le modalit sono numerose. Per esempio, esistono forum di discussione (a partire da quello di ILVG.it), blog e altri cyberspazi specializzati dove fare sentire la propria voce. Ed esiste il vecchio sistema che consiste nel mettere nero su bianco la descrizione della propria applicazione e nello spedire il tutto alla redazione. Nulla verr scartato: valuteremo tutte le vostre idee e, le pi interessanti, saranno pubblicate. Vi chiediamo solo chiarezza espositiva e belle immagini. Perch tenere per voi una bella idea quando potreste condividerla con altre persone che hanno i vostri stessi interessi? In futuro non mancheranno altre 'piazze' dove presentarvi e raccontare che cosa state facendo, che cosa vi piacerebbe trovare nella prossima release di LabVIEW, e cos via. Non mancheranno nemmeno sondaggi su aspetti riguardanti il vostro rapporto con LabVIEW e le vostre proposte per diffonderne ulteriormente la conoscenza.

SOMMARIO
07
OGGETTI IN LABVIEW 32 RICHIAMARE (II PARTE)
LabVIEW permette di accedere ad altre applicazioni Windows utilizzando le tecnologie .NET o ActiveX

INVITO A ESPRIMERSI RIVOLTO 01 UN ALLA COMUNIT LABVIEW WORLD


Raccontateci le vostre applicazioni

TUTTO GAS CON L'AUTOMOTIVE 35 A FORUM 2008


Si svolto a Torino l'evento biennale dedicato al mercato automotive

03 LABVIEW GOES INDUSTRIAL


AI VI BLAS 06 INTRODUZIONE IN LABVIEW

Parla John Hanks, Vice President Product Marketing per l'acquisizione dati ed il controllo industriale

COMMUNITY? 36 LABVIEW SI' GRAZIE


I benefici della membership ai gruppi di discussione e social network che ruotano attorno a LabVIEW

TEST 37 AUTOMATED SUMMIT 2008


Il convegno sul test automatizzato si riproposto nella sua 5a

Vediamo come utilizzare la propria libreria BLAS personale al posto dei VI installati da LabVIEW

EMBEDDED PER 08 LABVIEW MICROCONTROLLORI ARM


Un'estensione della piattaforma grafica consente di programmare le famiglia ARM7, ARM9 e Cor tex-M3

38 DALLA CARTA AL WEB

Link ad ar ticoli di approfondimento e altri documenti disponibili sul web

10 LA CHANNEL API NI-CAN

Spieghiamo i fondamenti della Channel API per il driver NI-CAN

40 LA VOCE DEGLI UTENTI

Ecco alcuni spunti di discussione apparsi di recente sul Forum di ILVG.it

PER L'ELABORAZIONE DI 18 LABVIEW SEGNALI ECG


LabVIEW offre un ambiente solido ed efficiente per l'elaborazione dei segnali ECG

SUCCESSO PER BIAS 42 GRANDE E VISION FOR MANUFACTURING


L'impor tanza di un contatto diretto con i fornitori non mostra segni di cedimento

DI TELERIABILITAZIONE 24 SISTEMA NU!REHA


La riabilitazione a distanza alla por tata di personale non esper to

43 APPUNTAMENTI 44 INTERVISTA

Oltre ad organizzare propri corsi e seminari, National Instruments sar presente a numerosi eventi

IMPIANTO DI 27 IMOSE: MOVIMENTAZIONE DI SEMILAVORATI


Un modello hardware di una cella manifatturiera economicamente vantaggioso

Il professor Alessandro Ferrero insegna Misure Elettriche presso il Politecnico di Milano

E DISTRIBUZIONE 30 CREAZIONE DELLE APPLICAZIONI


Creazione di un'applicazione stand-alone e di un installer

46 LABVIEW E LAVORO
SEI UN FAN DI LABVIEW?

Proposte concrete per coloro che sanno utilizzare LabVIEW

AAA

Per il contributo apportato al progetto LabView World, si ringraziano: Valerio Alessandroni, Lino Fiore, Matteo Bambini, Nadia Albarello, Matteo Foini, Alessandro Ricco. Progetto grafico e impaginazione: Bimage.it

ENTRA NELLA NOSTRA COMUNIT!


Caro lettore, se ritieni che questa nuova iniziativa LabVIEW World sia un utile strumento per la tua attivit e desideri continuare a rimanere aggiornato sul mondo LabVIEW, collegati alla pagina http://www.ilb2b.it/labview/lb_world.asp

A TU PER TU

07

LABVIEW
Valerio Alessandroni

GOES INDUSTRIAL
L'azienda dispone oggi di due diverse piattaforme: una dedicata al test and measurement, l'altra per il prototipaggio e la produzione
In quanto Vice President Product Marketing per l'acquisizione dati ed il controllo industriale, John Hanks ha la responsabilit di guidare la strategia di prodotto ed il marketing. Una selle sue principali responsabilit la collaborazione con il reparto R&D sullo sviluppo di prodotti futuri di acquisizione dati, I/O distribuito e controllo. Nel corso di NIWeek 2008 abbiamo rivolto alcune domande a John Hanks. sta dei clienti di una tecnologia di misura pi precisa, di velocit di controllo pi elevate e di capacit di analisi pi avanzate per le applicazioni industriali. Oggi vediamo la domanda di capacit di progettazione pi custom. I clienti vogliono poter trarre vantaggio da nuove tecnologie come i Field Programmable Gate Arrays (FPGA). Con LabVIEW, gli sviluppatori possono ottenere i benefici dei tool di progettazione grafica di sistema per progettare pi velocemente loop di controllo ed eseguire timing ed analisi avanzati che, fino a pochi anni fa, avrebbero richiesto la progettazione di hardware customizzato.

Perch National Instruments ha deciso di D : entrare nel mondo industriale e quali sono le mosse dell'azienda verso questo obiettivo?

R:

La risposta alla prima parte della domanda semplice: le richieste dei nostri clienti ci hanno portato ad aggiungere prodotti per il controllo industriale. I nostri attuali prodotti di controllo industriale sono emersi dalla nostra lunga presenza nel campo del test automatizzato. Abbiamo visto la richie-

Quali sono le caratteristiche principali di D : LabVIEW 8.6 e degli altri nuovi prodotti National Instruments che li rendono pi industriali?

R:

Per esempio, in LabVIEW 8.6 abbiamo introdotto una serie di blocchi funzione normalmente utilizzati nelle applicazioni di controllo industriale basate sullo standard IEC 61131-3, come i controllori programmabili (PLC) ed i Programmable Automation Controller (PAC). Questi blocchi funzione sono stati progettati per applicazioni industriali real-time. Inoltre, sulla piattaforma CompactRIO FPGA vi sono nuove caratteristiche come lo Scan Engine, che permette di eseguire un loop di I/O in real-time all'interno dell'FPGA, senza la necessit di scrivere codice FPGA. Quindi, gli utenti industriali possono facilmente sfruttare la tecnologia degli FPGA nella piattaforma CompactRIO. Tuttavia, se si vuole programmare l'FPGA a basso livello, ancora possibile farlo. Pertanto, si possono sfruttare le caratteristiche di facilit d'uso ad alto livello dello Scan Engine, ma rimane la possibilit di lavorare a basso livello per fare qualche customizzazione.

sar il prossimo passo di National D: Quale Instruments nella direzione industriale?


Fig. 1 - Afferma John Hanks: "Abbiamo oggi una nuova gamma di soluzioni per il test ed unoffer ta customizzata per le applicazioni industriali, sviluppate intorno alle capacit offer te dagli FPGA"

R:

Recentemente abbiamo compiuto molti passi interessanti. Per esempio, abbiamo appena introdotto la famiglia di prodotti Single-Board RIO. Ci significa che si possono migrare i propri progetti da una piattaforma modulare basata

A TU PER TU

07

abbiamo introdotto la nostra versione di un motore con azionamento, attraverso un nostro partner. Il motivo che i nostri clienti desiderano acquistare tutti i componenti da National Instruments ed avere il nostro supporto. Un altro esempio un nuovo prodotto HMI che abbiamo rilasciato lo scorso anno e che testato e verificato per funzionare con LabVIEW. Quindi, vediamo continue opportunit per nuove relazioni anche in futuro.

A questo punto, National Instruments ha D : un'offerta completa per lo spazio industriale, inclusi LabVIEW 8.6, il Single-Board RIO, prodotti DAQ Ethernet e wireless, telecamere, e cos via. Pu citare qualche applicazione concreta che avete gi affrontato e risolto con questi nuovi prodotti?
Fig. 2 In parallelo al lancio di LabVIEW 8.6, abbiamo introdotto otto nuovi prodotti per otto possibili applicazioni del Single-Board RIO

R:

sulla piattaforma CompactRIO esistente ad na piattaforma embedded a livello di scheda. Vediamo molti costruttori di macchine e di dispositivi embedded che vogliono utilizzare il CompactRIO, ma in un altro formato, o che desiderano realizzare il proprio packaging. Per esempio, essi possono avere la necessit di un packaging IP67, ossia impermeabile, oppure di inserire il CompactRIO in un packaging militare o aerospaziale o anche in un packaging a basso costo. Quindi, in parallelo al lancio di LabVIEW 8.6, abbiamo introdotto otto nuovi prodotti Single-Board RIO. Inoltre, i prodotti Single-Board RIO hanno tre connettori per moduli embedded della serie C per l'espansione degli I/O. Gli stessi moduli di I/O utilizzati per il CompactRIO possono essere usati anche con il Single-Board RIO. Un'altra introduzione importante sono dieci nuovi prodotti per l'acquisizione dati tramite Ethernet e wireless. Vediamo molti clienti interessati nell'ottimizzazione delle macchine e nel monitoraggio di macchine e vibrazioni che vogliono la comunicazione Ethernet o wireless. Con Ethernet possibile eseguire misure ad alta velocit fino a 90 metri dal controllore, mentre con i prodotti di acquisizione dati Wi-Fi 802.11 la distanza di circa 30 metri. In futuro, lavoreremo ad una sincronizzazione molto precisa su Ethernet. E prenderemo in esame nuove aree e nuovi prodotti che ruoteranno attorno ad un I/O real-time, deterministico e distribuito su Ethernet".

National Instruments stringer qualche D : partnership per entrare pi facilmente nel settore industriale?

R:
4

Abbiamo gi molte partnership che ci aiutano. Per esempio, da molti anni abbiamo relazioni con fornitori di telecamere, motori e azionamenti. Nel corso dell'ultimo anno

Un esempio significativo stato sviluppato da Ventura Aerospace per Federal Express. Ventura Aerospace ha sviluppato un nuovo sistema di misura e controllo per la soppressione degli incendi per proteggere i piloti, gli aeromobili, i pacchi ed il cargo. Se l'incendio scoppia mentre un aeromobile in volo sull'oceano, non vi sono possibilit di atterraggio sicuro. Inoltre, mentre il velivolo cerca di atterrare, l'incendio peggiora ulteriormente, a causa della maggiore quantit di ossigeno che contenuta negli strati pi bassi dell'atmosfera. Il nuovo sistema sviluppato per Federal Express, che basato sul Single-Board RIO, migliora nettamente la sicurezza a bordo. Un'altra applicazione aiuta a sopravvivere i neonati prematuri. I neonati che vengono al mondo troppo presto, infatti, possono non avere appreso il riflesso che li spinge a succhiare, quindi non riescono a nutrirsi. Una nuova apparecchiatura fondamentalmente insegna al neonato ad acquisire il riflesso di succhiare, misurando la pressione fra le sue labbra. Possiamo trovare altri esempi significativi, per esempio, nelle acciaierie, negli impianti eolici, nel campo della meccatronica, ecc. Nell'acciaieria Nucor, in particolare, viene utilizzato CompactRIO per creare un nuovo processo di misura della temperatura e pesatura delle scorie metalliche che sostituisce alcune operazioni ad alto contenuto di manodopera ed molto pi sicuro per gli operai. E' stato riportato un miglioramento di dieci volte nell'efficienza d'uso della potenza. L'azienda utilizza quelli che chiama 'cicli'. Se in un ciclo viene commesso un errore, necessario resettare l'impianto, sprecando una grande quantit di energia perch occorre riscaldare nuovamente le scorie. Un altro comparto particolare dove abbiamo una lunga esperienza quello della visione artificiale applicata ai robot. In questo campo, collaboriamo con ImagingLab, un'azienda italiana fondata da Ignazio Piacentini, che sta cercando di interfacciare LabVIEW con robot Mitsubishi e Denso in modo intercambiabile.

A TU PER TU

National Instruments ha qualche programD : ma educativo particolare per promuovere la crescita dei futuri ingegneri di automazione?

il Virginia Polythecnic Institute alla costruzione di un veicolo capace di viaggiare senza conducente per 60 miglia in un ambiente urbano. Il veicolo, battezzato Odin, ha vinto il terzo premio nella gara urbana del Darpa dello scorso anno.

R:

Ne abbiamo molti. A parte la nostra partnership con Lego, che ha portato ad annunci come Lego Mindstorms e WeDo, stiamo sponsorizzando l'iniziativa FIRST (For Inspiration and Recognition of Science and Technology) e la sua Robotics Competition itinerante negli Stati Uniti. Circa 4000 studenti hanno partecipato al 'Superbowl' dell'ultima edizione ad Atlanta, ed il numero sta crescendo. Fondata da Dean Kamen, la FIRST Robotics Competition sfida squadre di giovani con i loro mentori a risolvere un problema comune in un arco temporale di sei settimane utilizzando un 'kit di parti' standard ed un insieme di regole comuni. Le squadre costruiscono robot utilizzando i componenti forniti e li inseriscono in competizioni progettate da un comitato di ingegneri ed altri professionisti. FIRST ridefinisce la vincita per questi studenti, perch essi vengono premiati per l'eccellenza nella progettazione, lo spirito di squadra che hanno dimostrato, la professionalit sportiva e la maturit, e la capacit di superare ostacoli. Ottenere il punteggio pi alto un obiettivo secondario. Vincere significa costruire partnership durevoli. Infine, un'altra area di grande interesse per noi quella dei veicoli autonomi. In particolare, abbiamo lavorato con Torc ed

National Instruments sta ponendo una granD : de enfasi sul concetto di Green Engineering, ossia sull'applicazione di tecniche di misura e controllo per progettare, sviluppare e migliorare prodotti, tecnologie e processi al fine di ottenere benefici ambientali ed economici. Questo concetto verr applicato anche all'automazione industriale?

R:

In qualche modo, le due aree sono simili. In particolare, stiamo vedendo che le applicazioni industriali stanno reinvestendo nell'infrastruttura per renderle pi efficienti sul piano energetico e 'verdi'. Per questo motivo, stanno anche cercando di migliorare la resa e ridurre gli sprechi, per esempio abbassando i costi con l'uso di misure wireless. National Instruments ha dei tool meravigliosi per prototipare un'applicazione e renderla pi efficiente sul piano energetico. In molti casi, il nuovo Sinlge-Board RIO ci permette di implementare l'applicazione in modo pi conveniente, a bassa potenza ed efficiente.
Readerser vice.it n. 701

W H AT S N E W

07

INTRODUZIONE AI VI BLAS IN LABVIEW


a cura di Matteo Foini

Questo ar ticolo discute i benefici che si ottengono utilizzando i VI BLAS in LabVIEW

VI BLAS sono una nuova funzionalit di LabVIEW. Larticolo spiega come utilizzare la vostra libreria BLAS personale al posto dei VI installati da LabVIEW.

CHE COSA SI INTENDE CON BLAS?


Le Basic Linear Algebra Subroutine (BLAS) sono routine che forniscono funzioni standard per operazioni vettoriali e matriciali di base. Tali routine sono classificate nei seguenti gruppi: BLAS di livello 1: operazioni vettoriali BLAS di livello 2: operazioni matricevettore BLAS di livello 3: operazioni matricematrice
Figura 1

Per esempio, dgemm una funzione BLAS di livello 3 che calcola il prodotto reale matrice-matrice utilizzando la seguente espressione:

op (A)

op (B) +

LabVIEW, mettendo a disposizione uninterfaccia che espone funzionalit di pi basso livello e algoritmi ottimizzati. Rispetto alle funzioni BLAS standard, i VI BLAS in LabVIEW offrono i seguenti vantaggi: API semplificata e concisa per esigenze ingegneristiche Controllo della memoria prima dellesecuzione dei calcoli per evitare violazioni dello spazio di memoria

dove e sono scalari, A, B e C sono matrici, e op (A) A o AT. Le routine BLAS sono comunemente utilizzate nello sviluppo di software di algebra lineare, come avviene per le librerie LAPACK (http://it.wikipedia.org/wiki/Lapack).

zati. LabVIEW mette a disposizione alcuni VI di algebra lineare di base, come A x B VI, Dot Product VI e Outer Product VI. Il vantaggio di utilizzare i VI BLAS evidente quando si combinano pi operazioni di algebra lineare. Ci riduce la copia dei dati in LabVIEW e garantisce esecuzioni ottimizzate. La seguente espressione illustra come potete combinare tipiche funzioni di algebra lineare nei VI BLAS:

AT X + b Y

CHE COSA SONO I VI BLAS DI NI?


I VI BLAS sono una nuova funzionalit delle versioni Full e Professional di LabVIEW. Tali VI offrono unalternativa agli algoritmi di algebra lineare esistenti in

SCEGLIERE FRA I VI BLAS E I VI DI ALGEBRA LINEARE


Poich i VI BLAS offrono opzioni flessibili ed elevate prestazioni, potete utilizzarli come blocchi primari in algoritmi di algebra lineare complessi e avan-

dove scalare, A una matrice e X e Y sono vettori. Con i VI di algebra lineare, vi occorrono cinque diversi VI e funzioni per eseguire questo calcolo, come si vede nello schema a blocchi della fig. 1.

W H AT S N E W

BREVI
Nuovo toolkit LabVIEW per il test dei ricevitori GPS
National Instruments ha rilasciato il nuovo NI GPS Toolkit for LabVIEW, in grado di simulare il segnale GPS proveniente da pi satelliti. Utilizzando LabVIEW, per creare forme donda in grado di simulare fino a 12 satelliti (codici C/A nella banda L1), unitamente al generatore vettoriale di segnali RF NI PXIe-5672, possibile testare alcune caratteristiche del ricevitore quali sensibilit, TTFF (time to first fix) e accuratezza. Grazie al nuovo toolkit, possibile utilizzare un insieme di forme donda GPS simulate e registrate come soluzione completa e a basso costo per validare e verificare la progettazione di un ricevitore. La registrazione via etere dei segnali GPS, tramite un analizzatore vettoriale di segnali RF NI PXI-5661 e un preamplificatore NI PXI-5690 (amplificatore a basso rumore), mostra le stesse interferenze che un ricevitore presenterebbe realmente durante la cattura dei segnali GPS. Questi dispositivi sono in grado di generare segnali simulati e registrati con l'analizzatore vettoriale di segnali RF NI PXIe-5672, con trasmissione continua di forme donda GPS da disco rigido. Utilizzando dischi RAID da 2 TB, possibile generare fino a 12,5 minuti di forme donda simulate non ripetitive oppure 25 ore di segnale continuo GPS registrato, per testare le modalit di risposta del ricevitore entro una vasta gamma di possibili condizioni operative. possibile combinare il GPS Toolkit con il Modulation Toolkit per LabVIEW, il software per la gestione dei test NI TestStand e la strumentazione modulare RF PXI per una soluzione completa e a basso costo per i test in produzione. Poich la strumentazione modulare PXI viene definita via software, lo stesso sistema PXI in grado di testare dispositivi wireless che utilizzano altri standard quali RDS, WiFi, GSM, WCDMA, Bluetooth e DVB.
Readerser vice.it n. 704

Figura 2

Potete sostituire questi cinque VI e funzioni con il VI gemv - Generate MatrixVector Product, come illustrato nello schema a blocchi della fig. 2. Quindi, i VI BLAS vi permettono di semplificare il codice sullo schema a blocchi. Tuttavia, luso dei VI BLAS pu comportare anche degli svantaggi. Per esempio, luso dei VI BLAS richiede che LabVIEW carichi una nuova libreria, lvblas.dll, in memoria. Su un target real-time, questa DLL richiede circa 270 kB. Pertanto, su sistemi che hanno una memoria limitata, come un controllore NI FP-20xx, vantaggioso usare solo i VI di algebra lineare esistenti.

UTILIZZO DELLE VOSTRE LIBRERIE BLAS


I VI BLAS richiamano librerie BLAS ben ottimizzate per offrirvi prestazioni elevate su una variet di piattaforme. Potete anche usare i VI BLAS per richiamare la vostra libreria BLAS seguendo i passi riportati di seguito. Consideriamo, per esempio, la funzione dtrmm.

1. Scaricate e unzippate il file blastemplate.zip allegato. 2. Rinominate la vostra libreria statica BLAS come glapack.lib e sostituite il file glapack.lib presente nella directory BLAS\blaslapack\gblaslapack con il nuovo file che avete rinominato. 3. Rinominate il file dintestazione della vostra libreria BLAS come cblas.h e sostituite il file cblas.h nella directory BLAS\blaslapack\include con il nuovo file. 4. Aprite BLAS\LVBLAS\build\win32\ LVBLAS.sln in Visual Studio 2005. 5. Eseguite il build del progetto LVBLAS in modo da ottenere lvblas.dll. 6. Sostituite lvblas.dll nella directory labview\resource con la nuova DLL. possibile scaricare lesempio da: ni.com/italian - infocode: it59xt

SEI UN FAN DI LABVIEW?


ENTRA NELLA NOSTRA COMUNIT!
Caro lettore, se ritieni che questa nuova iniziativa LabVIEW World sia un utile strumento per la tua attivit e desideri continuare a rimanere aggiornato sul mondo LabVIEW, collegati alla pagina http://www.ilb2b.it/labview/lb_world.asp

Readerser vice.it n. 703

W H AT S N E W

07

LABVIEW EMBEDDED
PER MICROCONTROLLORI ARM
Un nuovo LabVIEW Embedded Module consente di programmare le famiglie di microcontrollori ARM7, ARM9 e Cor tex-M3

ational Instruments ha recentemente introdotto LabVIEW Embedded Module per Microcontrollori ARM, unestensione della piattaforma grafica che consente di programmare direttamente le famiglie di microcontrollori ARM7, ARM9 e Cortex-M3. ARM il principale fornitore industriale di processori RISC embedded a 32 bit, con una quota di mercato superiore al 75 per cento e oltre 10 miliardi di dispositivi basati su core ARM consegnati fino ad oggi. ARM concede su licenza la propriet intellettuale (IP) a molte delle maggiori societ di semiconduttori del mondo, tra cui Analog Devices, Atmel, Luminary Micro, NXP, Freescale Semiconductor, Intel e Texas Instruments.

UN APPROCCIO PI LINEARE ALLA PROGRAMMAZIONE


LabVIEW Embedded Module per Microcontrollori ARM consente di programmare oltre 260 microcontrollori di 10 fornitori. Questo modulo include driver LabVIEW che permettono di program-

Altre caratteristiche del nuovo modulo includono un wizard di progetto, che automatizza la configurazione e l'impostazione generale, per aiutarvi a creare rapidamente i vostri progetti, e un interrupt manager, che semplifica la programmazione gestita via interrupt impostando il codice LabVIEW in modo che venga eseguito al verificarsi di specifici interrupt hardware.

BENEFICI DEI MICROCONTROLLORI


I microcontrollori sono microprocessori integrati che includono memoria, periferiche ed interfacce oltre alla CPU su un chip singolo. Ci li rende una soluzione conveniente per sistemi embedded e ideale per applicazioni di controllo e applicazioni comandate da interrupt. I microcontrollori ARM sono utilizzati in un'ampia gamma di applicazioni, da beni di consumo diffusi come la Sony PlayStation 3 a dispositivi industriali e medicali come lo stimolatore muscolare portatile BIAC. mare graficamente tutti i componenti del microcontrollore ARM, inclusi gli I/O analogici e digitali. Il modulo offre anche capacit di simulazione desktop per eseguire su un PC desktop, senza alcun hardware addizionale, i programmi sviluppati per un microcontrollore ARM. Potete anche usare la simulazione desktop con NI Multisim, software interattivo di simulazione e analisi circuitale SPICE, per simulare l'intera catena di progettazione per un ambiente completo di simulazione di sistemi embedded.

Oltre al software, NI offre due opzioni di sviluppo: una scheda di valutazione Keil MCB2370 con un microcontrollore NXP ARM7 o un kit di valutazione Stellaris LM3S8962 con un microcontrollore Luminary Micro Cortex-M3. LabVIEW diviene pertanto una piattaforma ideale per gli sviluppatori con esperienza limitata di programmazione C/C++ che devono sviluppare applicazioni per microcontrollori basati su ARM; mentre per gli sviluppatori pi esperti, esso offre comunque un approccio pi veloce e lineare alla programmazione.
Readerser vice.it n. 706

TIPS & TECHNIQUES

07

LA CHANNEL API NI-CAN


a cura di Matteo Foini

Spieghiamo i fondamenti della Channel API per il driver NI-CAN, utili per coloro che hanno appena iniziato a lavorare con NI-CAN 2.0 e successivi

egli ultimi decenni, lindustria automobilistica ha beneficiato di significativi progressi tecnici, che si sono tradotti in emissioni ridotte, migliore rendimento dei carburanti, controllo antibloccaggio per i sistemi di frenatura e molti altri miglioramenti. Le innovazioni a livello ambientale, di sicurezza e di como-

Il CAN un bus seriale multidrop a due fili, sul quale i dispositivi connessi alla rete comunicano fra loro. Il driver NI-CAN mette a disposizione 2 API (Application Programming Interface) complete, oltre a tool di configurazione e analisi in Measurement & Automation Explorer (MAX). Le API NI-CAN vi permettono di sviluppare applicazioni personalizzate in base ai vostri requisiti di test e simulazione. Con la Channel API, potete utilizzare funzioni di alto livello, ma di semplice impiego, per accedere ai canali CAN definiti in file di database vettoriali (.dbc) o di database CAN (.ncd) National Instruments. La Channel API raccomandata per i principianti del CAN. La Frame API offre un accesso a basso livello ai bit trasmessi sul bus CAN ed raccomandata per utenti pi esperti. Questo articolo tratta esclusivamente la Channel API. La Channel API NI-CAN sfrutta canali CAN Figura 1 - Modello base di programmazione NI-CAN Channel API in LabVIEW predefiniti per rendere la programmazione CAN simile alla programmazione NI-DAQ. Il dit di guida si sono concretizzate nellaggiunta di molti modello fondamentale di programmazione per la Channel nuovi dispositivi elettronici nelle automobili. API illustrato nella figura 1. A met degli anni 80, Bosch ha sviluppato il bus Controller Area Network (CAN) per rispondere alle crescenti esigenze CONFIGURAZIONE DEL CANALE di comunicazione fra i moduli elettronici delle automobili. Innanzitutto, necessario definire o importare il canale Oggi, il CAN utilizzato anche nei sistemi embedded di CAN. Ci pu essere fatto utilizzando il Measurement and comunicazione dati in avionica, in applicazioni nautiche e Automation Explorer (MAX), unutility di configurazione che permette di installare, testare e configurare la maggior parnumerose altre. te dei dispositivi NI, incluse le interfacce CAN. Il MAX pu essere usato anche per importare o creare file di database CAN e include tool addizionali come il CAN bus monitor e pannelli di test dei canali CAN.

IMPORTARE CANALI DA UN FILE DI DATABASE


Spesso conveniente importare canali CAN da file di database. Per importare canali CAN da un file di database vettoriale (.dbc), espandete lalbero Data Neighborhood per vedere i CAN Channels. Cliccate con il tasto destro su CAN Channels e selezionate Import from CANdb file. Questi file di database vengono creati spesso da ingegneri che progettano i dispositivi CAN. Ora navigate fino a trovare il file di database desiderato. Dopo avere trovato e selezionato il file, potete scegliere se importare tutti i messaggi

Figura 2 - Canali CAN in Measurement & Automation Explorer

10

TIPS & TECHNIQUES

presenti nel file o selezionare gli specifici canali da importare. Cliccate il pulsante Import e quindi cliccate Done. I Messaggi e i Canali appaiono ora in MAX sotto CAN Channels come illustrato nella figura 2. Tali messaggi e canali possono essere visualizzati ed editati espandendo lalbero dei messaggi, cliccando con il tasto destro sul canale desiderato e andando alle propriet. Visualizzando le propriet di un canale, potete vedere la posizione del canale allinterno del messaggio nella griglia dei messaggi.

lizzazione, una lettura o scrittura e una funzione di pulizia finale che libera le risorse (figura 1). Il link fra le funzioni il Task. Un Task CAN una raccolta di Canali CAN che condividono la temporizzazione e la direzione di comunicazione (lettura/scrittura). Un task pu comprendere diversi Messaggi ma devono essere tutti sulla stessa interfaccia (porta). Questo modello di programmazione lo stesso indipendentemente dal fatto che stiate lavorando in LabVIEW, LabWindows/CVI, C/C++ o Visual Basic 6.0.

CREAZIONE DI CANALI IN MEASUREMENT & AUTOMATION EXPLORER


Qualche volta potreste non avere un file di database vettoriale a disposizione. Dovrete quindi creare i canali in MAX. Iniziate cliccando con il tasto destro su CAN Channels e selezionando Create Message. Specificate nome, arbitration ID, numero di byte dati e interfaccia di default, quindi selezionate OK. Ora i singoli canali vengono creati cliccando con il tasto destro sul messaggio e scegliendo Create Channel. Dovete specificare il nome del canale, il bit di start, il numero di bit, le informazioni di scalatura e le unit. Notate che una volta specificati i bit di start e il numero di bit, la griglia in basso a destra indica la posizione del canale allinterno del messaggio. Quando cliccate OK, il canale viene mostrato in MAX sotto il Message. Per creare un altro canale, cliccate nuovamente con il tasto destro sul messaggio e scegliete Create Channel. Questa volta, notate che la griglia ha evidenziato i bit che avete riservato per il canale precedente. Se cercate di configurare un altro canale per gli stessi bit, vedrete un indicatore di errore rosso. I passi rimanenti per completare il messaggio sono uguali a quelli utilizzati per la creazione dei canali. Potete configurare il messaggio con una combinazione di canali analogici e digitali; potete utilizzare fino a 64 canali digitali di 1 bit ciascuno. Quando avete la configurazione desiderata del canale, potete salvarla per utilizzarla su altri computer. Cliccate con il tasto destro su CAN Channels e selezionate Save Channel Configuration. Questo salva la configurazione come un file di database CAN (.ncd) National Instruments che pu essere importato in MAX o richiamato direttamente dalla vostra applicazione usando il driver NI-CAN 2.0 o successivo. Come precedentemente dimostrato per i file di database vettoriali (.dbc), potete importare anche file di database National Instruments (.ncd) in MAX a partire da una configurazione salvata. A tale scopo, cliccate con il tasto destro su CAN Channels e selezionate Load Channel Configuration, navigate fino al file .ncd e selezionate i messaggi desiderati. Scegliete Load e quindi cliccate Done; ora i canali appaiono nuovamente in MAX.

CAN INIT START


CAN Init Start VI: La funzione CAN Init Start inizializza un elenco di canali come singolo task e inizia la comunicazione per quel task. La funzione CAN Init Start usa i seguenti parametri dingresso (figura 3):

Figura 3 - CAN Init Star t.vi

channel list - Specifica lelenco dei canali per il task interface - Specifica linterfaccia CAN (CAN0, CAN1, ecc.) da usare per il task. mode - Specifica la modalit di I/O (direzione del trasferimento dati) da usare per il task. sample rate - Specifica la frequenza di campionamento (campioni al secondo) per il trasferimento dati.

CAN READ
Modalit di lettura multiple rendono pi semplice la personalizzazione della vostra applicazione. NI-CAN rende disponibili tre modalit di lettura, ciascuna delle quali verr descritta nelle sezioni seguenti: 1. Single point 2. Continua 3. Time-stamped

Se la modalit di Init Start Input, la vostra applicazione deve chiamare la funzione Read per ottenere campioni. La vostra applicazione tipicamente chiama la Read in un loop fino a risultato ottenuto. La funzione di lettura CAN Read in LabVIEW e nctRead negli altri linguaggi. Il comportamento della Read dipende dalla frequenza di campionamento (figura 4):

FUNZIONI DELLA CHANNEL API


Un programma base NI-CAN comprende una fase di inizia-

Figura 4 - CAN Read.vi

11

TIPS & TECHNIQUES

07

LETTURA SINGLE POINT (MODE = INPUT, SAMPLE RATE = 0)


Questa lettura restituisce un singolo campione dal messaggio pi recente ricevuto dalla rete. Viene restituito un campione per ogni canale nellelenco Init Start. Questo modo di lettura utile soprattutto quando desiderate accedere velocemente al Messaggio CAN pi recente.

specificato dalla frequenza di campionamento. def rappresenta il Default Value in MAX.

TIMESTAMPED READ (MODE = TIMESTAMPED INPUT)


Il modo timestamped utile per le applicazioni di test dove richiesta la sincronizzazione CAN/DAQ, ma non occorre unulteriore elaborazione dei dati CAN. Se il modo Init Start Timestamped Input, la vostra applicazione deve chiamare la funzione Read Timestamped per ottenere i valori. La vostra applicazione tipicamente chiama Read Timestamped in un loop fino a risultato ottenuto. La funzione Read Timestamped restituisce campioni che corrispondono a messaggi ricevuti dalla rete. Per ogni messaggio, viene restituito un campione associato, insieme a un timestamp che specifica quando il messaggio arrivato. Viene restituito un array di campioni timestamped per ogni canale nellelenco InitStart. La funzione Read Timestamped CAN Read in LabVIEW e nctReadTimestamped in altri linguaggi. La figura 7 illustra un esempio di Read Timestamped. A, B e

Figura 5 - Esempio di Read con frequenza di campionamento = 0

La figura 5 mostra un esempio di Read con frequenza di campionamento = 0. A, B e C rappresentano i messaggi dei canali inizializzati. Se non stato ricevuto alcun messaggio dallinizio dellapplicazione, viene restituito il Default Value in MAX (def), insieme a un messaggio di avvertimento.

LETTURA CONTINUA (MODE = INPUT, SAMPLE RATE > 0)


Il modo continuo utile quando desiderate registrare dati insieme ai dati analogici o digitali provenienti da un dispositivo DAQ. Questa lettura restituisce un array di campioni per ogni canale nellelenco Init Start. Ogni volta che trascorre il tempo specificato, negli array viene inserito un campione dal messaggio pi recente. In altri termini, i campioni sono ripetuti nellarray alla frequenza specificata finch non viene ricevuto un nuovo messaggio. Il modo continuo utile quando desiderate registrare dati insieme ai dati analogici o digitali da un dispositivo DAQ. Usando la stessa frequenza di campionamento dei canali dingresso analogico NI-DAQ, potete confrontare i campioni CAN e DAQ nel tempo.

Figura 7 - Esempio di Read Timestamped

C rappresentano messaggi per i canali inizializzati. At, Bt e Ct rappresentano gli istanti in cui stato ricevuto ciascun messaggio.

CAN WRITE
Modalit multiple di scrittura facilitano la personalizzazione della vostra applicazione. Sono disponibili 3 modalit di scrittura per NI-CAN, ciascuna delle quali verr discussa nel paragrafo seguente: 1. Single point 2. Continua 3. Time-stamped Se la modalit Init Start Output (o Output Recent), la vostra applicazione deve chiamare la funzione Write per mandare i valori in uscita. La vostra applicazione tipicamente chiama la Write in un loop fino a risultato ottenuto. La funzione Write CAN Write in LabVIEW e nctWrite in altri linguaggi. Il comportamento della Write dipende dalla frequenza di campionamento inzializzata (figura 4):

Figura 6 - Esempio di Read con frequenza di campionamento > 0

La figura 6 mostra un esempio di Read con frequenza di campionamento > 0. A, B e C rappresentano i messaggi dei canali initializzati. t rappresenta il tempo fra i campioni

12

TIPS & TECHNIQUES

dei messaggi come specificato dalla frequenza di campionamento.


Figura 8 - CAN Write.vi

SCRITTURA SINGLE POINT (MODE = OUTPUT RECENT, SAMPLE RATE > 0).
Dovete fornire un singolo campione per ogni canale nella lista Init Start. A ogni fronte di clock viene trasmesso il messaggio successivo usando il campione pi recente che avete fornito. Il modo Output Recent utile quando avete pi task in esecuzione a velocit differenti, perch potete scrivere campioni per tutti i task in un singolo loop. La figura 11 illustra un esempio di Write con frequenza di campionamento > 0 e modalit Output Recent.

NON-PERIODIC SINGLE POINT WRITE (MODE = OUTPUT, SAMPLE RATE = 0)


La funzione Write trasmette un messaggio immediatamente sulla rete. I campioni forniti in scrittura vengono utilizzati per formare i byte di dati del messaggio. necessario specificare un campione per ogni canale nella lista Init Start.

Figura 9 - Esempio di Write con frequenza di campionamento = 0 Figura 11 - Esempio di Write con frequenza di campionamento > 0 e Output Recent Mode

Per questo comportamento la modalit Init Start deve essere Output (non Output Recent). La figura 9 illustra un esempio di Write con frequenza di campionamento = 0. A, B, C e D rappresentano i messaggi per i canali inizializzati. Per ogni Write, i messaggi associati vengono trasmessi il pi velocemente possibile.

CAN CLEAR
CAN Clear VI: la funzione Clear interrompe la comunicazione e cancella la configurazione. Per ogni task che inizializzate, dovete chiamare una Clear prima di uscire dalla vostra applicazione. La funzione Clear CAN Clear in LabVIEW e nctClear in altri linguaggi.

SCRITTURA CONTINUA (MODE = OUTPUT, SAMPLE RATE > 0)


Dovete fornire un array di campioni per ogni canale nella lista Init Start. Ogni volta che il tempo specificato trascorso, viene trasmesso il messaggio successivo. Ogni messaggio usa il campione successivo dellarray per formare i byte di dati del messaggio. In altri termini, i campioni vengono trasmessi periodicamente dallarray alla rete. Usando la stessa frequenza di campionamento con i canali NI-DAQ Analog Output, potete mettere in uscita campioni simultanei CAN e DAQ nel tempo. La figura 10 illustra un esempio di Write con frequenza di campionamento > 0 e modalit Output. A, B, C e D rappresentano i messaggi per i canali inizializzati. t rappresenta il Figura 10 - Esempio di Write con frequenza tempo fra la di campionamento > 0 e Output Mode trasmissione

Figura 12 - CAN Clear.vi

FUNZIONI ADDIZIONALI DELLA CHANNEL API


I paragrafi seguenti forniscono informazioni che potete utilizzare per estendere il modello di programmazione di base.

GET NAMES
Se state sviluppando unapplicazione che verr utilizzata da unaltra persona, potreste non volere specificare una lista di canali fissa nella vostra applicazione. Idealmente, vorrete che il vostro utente finale selezioni i canali dinteresse da controlli dellinterfaccia utente. La funzione Get Names interroga il MAX o un database CAN e restituisce una lista di tutti i canali o messaggi presenti nel database. Potete usare questa lista per popolare i controlli dellinterfaccia utente. Potete quindi selezionare i canali da tali controlli,

13

TIPS & TECHNIQUES

07

evitando di digitare ciascun nome utilizzando la tastiera. Dopo avere effettuato le selezioni, la vostra applicazione pu passare la lista risultante a Init Start. La funzione Get Names CAN Get Names in LabVIEW e nctGetNames in altri linguaggi.

SYNCHRONIZATION
La Channel API NI-CAN usa RTSI per sincronizzare specifiche unit funzionali su ciascuna scheda. Per le schede CAN, lunit funzionale linterfaccia (porta). Per le schede DAQ, lunit funzionale una misura specifica, come Analog Input o Analog Output. Ogni funzione instrada due segnali sulla connessione RTSI: timebase - Specifica un clock comune condiviso da pi schede per evitare la deriva del clock. start trigger - Specifica il segnale di start inviato da una scheda a unaltra per evitare latenze legate alla fase di start stessa.

test e misura in grado di offrire capacit uniche di sincronizzazione dei messaggi CAN di pi interfacce di bus con lacquisizione dati, come misure di timing analogiche e digitali. A differenza di altre soluzioni di test, le piattaforme PXI e PCI di National Instruments offrono soluzioni completamente integrate per la comunicazione CAN e lacquisizione dati. Potete progettare un programma che utilizza un loop per sincronizzare via software una variet di prodotti hardware, perch il CAN e lhardware DAQ contengono entrambi un timestamp di quando si verificato un particolare evento. Tuttavia, senza sincronizzazione dellhardware, non vi alcuna garanzia circa la precisione dei timestamp stessi, a causa della deriva del clock e della latenza di start/stop.

DERIVA DEL CLOCK


Gli oscillatori di clock presentano uninstabilit di frequenza intrinseca, o jitter, normalmente specificata in parti per milione (ppm). Nel tempo, due clock qualsiasi, se non sono sincronizzati, si discostano fra loro. Nel caso peggiore, due oscillatori specificati a 20 MHz 100 ppm possono scostarsi di 1 ms fra loro in meno di 2 minuti. Per molte applicazioni di validazione, questi valori di deriva del clock sono inaccettabili, soprattutto se il collaudo del dispositivo avviene su lunghi periodi di tempo. Se i due clock di una scheda DAQ e di una scheda CAN si sono discostati, non potete essere certi che i campioni ottenuti da ciascuno di essi siano correlati. Per questo motivo, la sincronizzazione del bus RTSI fornisce un impulso di risincronizzazione dal dispositivo DAQ che risincronizza i due clock ogni 100 millisecondi. Usando questo metodo, le basi tempi delle due schede non differiscono mai pi di qualche microsecondo (10 microsecondi al massimo con i valori citati sopra), minimizzando il problema di deriva del clock in un sistema di misura.

SET PROPERTY
Questa funzione vi permette di impostare propriet della rete come baud rate, tipo di transceiver e modalit di filtraggio. La funzione Init Start usa linterfaccia e la configurazione di canale specificate in MAX o nel file di database CAN. Se dovete cambiare tale configurazione nella vostra applicazione, non potete usare Init Start, perch la maggior parte delle propriet non pu essere modificata durante lesecuzione del task. Dovete invece usare innanzitutto Init, quindi impostare la propriet e iniziare il task.

GET PROPERTY
Questa funzione vi permette di ottenere le propriet dei vostri canali, messaggi o rete, inclusi baud rate, ID dei messaggi e fattore di scala dei canali.

SINCRONIZZAZIONE DI SEGNALI CAN E ANALOGICI PER LA VALIDAZIONE DI DISPOSITIVI


Con levoluzione delle applicazioni di test dei dispositivi CAN, diventata sempre pi evidente la necessit di integrare gli elementi dei sistemi di test come misure di tensione e sensori, controllo di attuatori e I/O discreti. La capacit di sincronizzare le trasmissioni CAN con questi altri elementi una caratteristica importante di un sistema che deve assicurare risultati di misura ripetibili. Vediamo quindi come configurare un sistema che sincronizza i messaggi CAN con misure di acquisizione dati (DAQ) per ottenere misure simultanee usando la Channel API NICAN. I segnali DAQ e CAN sono confrontati per verificare che lunit di controllo elettronica (ECU) stia generando i corretti messaggi CAN, in base alle misure DAQ. Per gli ingegneri che realizzano sistemi di test di validazione, produzione o assistenza per dispositivi basati sul CAN, le piattaforme PXI e PCI di National Instruments sono soluzioni di

LATENZA DI START/STOP
Usando la sincronizzazione software, il controllo di avvio e/o arresto delle funzioni dipende dalla latenza del software. Poich in un programma le chiamate delle funzioni devono essere serializzate, vi sar una certa latenza fra lo start dellacquisizione DAQ e lo start dellacquisizione CAN. Questa latenza si traduce in una quantit imprevedibile di errore fra quello che il DAQ considera il campione 0 e quello che il CAN considera il campione 0. La conseguenza che i dati DAQ e CAN non sono correlati nel tempo e quindi non possono essere visualizzati insieme con precisione senza una manipolazione addizionale dei dati.

REAL-TIME SYSTEM INTEGRATION (RTSI)


Lo chassis PXI incorpora il PXI Trigger bus, con sette linee di trigger per realizzare sincronizzazioni flessibili fra dispositivi NI di misura, acquisizione immagini e motion control, nonch moduli dinterfaccia CAN. Uno o pi moduli nel sistema

14

TIPS & TECHNIQUES

possono generare segnali di timing sul backplane, dove sono disponibili per ciascun modulo presente nel sistema per la sincronizzazione degli I/O. Poich il timing implementato a livello hardware, non occorre che il software applicativo intervenga nella sincronizzazione degli I/O quando il sistema stato inizializzato. Nei sistemi basati su PCI, le stesse caratteristiche di sincronizzazione sono rese disponibili dal bus RTSI, che usa un cavo piatto per connettere schede PCI tramite connettori montati superiormente.

forme donda degli ingressi sincronizzati da due canali CAN e due canali dingresso analogici (AI). I canali CAN ed AI vengono campionati alla velocit di campionamento specificata. In questo sistema di test EPAS, lECU acquisisce segnali tipo coppia, tensioni PWM e velocit del veicolo, li inserisce in un algoritmo di controllo e regola luscita dei messaggi CAN che controllano il motore (figura 14). Per validare

ESEMPIO APPLICATIVO
Per illustrare la sincronizzazione fra CAN e DAQ, consideriamo un test per un controllore di sterzata servoassistito. I sistemi di sterzatura idraulici convenzionali usano una cinghia accessoria del motore per trascinare una pompa rotante. La pompa fornisce fluido pressurizzato che aziona un pistone nel cambio di sterzata o un attuatore per assistere il guidatore nel girare le ruote. Questo sistema pone costantemente un piccolo carico sul motore, anche quando il sistema di sterzatura non in uso. Miglioramenti di questa tecnologia hanno portato ai sistemi EPAS (electric power-assist steering). LEPAS (figura 13) usa un motore elettrico collegato alla colonna o al rack di sterzatura tramite un meccanismo riduttore.

Figura 14 - In questo schema del sistema di acquisizione dati, la scheda NI PXI-6070E campiona la coppia, la tensione e la velocit che alimentano la ECU sotto test. Il modulo CAN NI PXI-846x campiona luscita in tensione del motore proveniente dalla ECU.

lalgoritmo di controllo EPAS, si possono registrare simultaneamente i messaggi CAN e DAQ, analizzarli e determinare se viene prodotta luscita desiderata del motore.

ESEMPIO DI CODICE LABVIEW


Il seguente esempio mostra la sincronizzazione di CAN e DAQ utilizzando la API NI-CAN Channel e NI-DAQmx. Modello base di programmazione Il modello base di programmazione della sincronizzazione CAN/DAQ dellNI-CAN 2.x molto simile allAPI NI-DAQ, con cui forse avete gi familiarit, e si traduce in: configurazione -> lettura/scrittura -> chiusura. Usando questo modello di programmazione, i dati CAN e DAQ possono essere facilmente correlati utilizzando sei base di LabVIEW. Prima di poterli utilizzare in LabVIEW, i canali CAN devono essere creati in Measurement & Automation Explorer (MAX) o importati da un file di database vettoriale. Importazione di canali CAN Canali CAN esistenti possono essere importati da file di database vettoriale (.dbc). Per importare i canali, aprite il MAX e cliccate con il tasto destro su CAN Channels sotto Data Neighborhood e selezionate Import from CANdb File. Larea di dialogo elencher tutti i messaggi disponibili. Cliccando su un messaggio, avrete lopzione di scegliere specifici canali allinterno del messaggio. Potete selezionare i canali che desiderate importare. Configurazione esplicita dei canali

Figura 13 - Schema di un sistema EPAS (electric power-assist steering)

Questo processo elimina la pompa, i manicotti, il fluidi, la cinghia di trasmissione e le pulegge del sistema servosterzo idraulico tradizionale. Lazionamento del motore applica una forza di sterzatura che si aggiunge allinput del guidatore. LECU raccoglie dati come la coppia di sterzatura delle ruote, la velocit del motore e la posizione del motore e applica un algoritmo di controllo per gestire il livello di servosterzatura applicato dal motore. Il sistema servosterzo elettrico pi leggero delle unit idrauliche tradizionali, indipendentemente dalla velocit del motore, e il sistema assorbe potenza solo quando fornisce assistenza alla sterzatura, diminuendo i consumi di carburante.

CONFIGURAZIONE DEL TIMING DI SISTEMA


Lesempio descritto in questo articolo mostra i grafici delle

15

TIPS & TECHNIQUES

07

Figura 15 - Configurazione dei parametri del Messaggio CAN

Per configurare esplicitamente canali CAN, aprite il MAX e cliccate con il tasto destro su CAN Channels sotto Data Neighborhood. Selezionate Create Message. Specificate i parametri per il messaggio come illustrato nella figura 15. Dopo la creazione, il messaggio viene indicato sotto CAN Chanznels. Per creare un canale, cliccate con il tasto destro sul messaggio che avete creato e selezionate Create Channel. Si apre unarea di configurazione simile a quella illustrata in figura 16. Mano a mano che inserite le informazioni relative al bit di Start e al numero di bit, la matrice si riempie con caselle grigie che indicano i bit gi utilizzati nelle definizioni dei canali. Le caselle blu indicano i bit in fase di definizione. anche possibile testare i canali CAN usando il Channel Test Panel. Lo potete aprire dallExample Finder (Help>>Examples>>Hardware Input and Output>> CAN>>Channel API>>Synchronization>> Basic>> DAQmx>>CAN Waveform Input and DAQmx Waveform Input.vi).

Configura il clock di campionamento per i canali NI-CAN Init Inizializza un task per la lista di canali specificata. NI-CAN Sync Start with NI-DAQ Definisce linstradamento sul bus PXI Trigger del segnale di trigger resync e di altri segnali di trigger e inizia in modo sincrono le acquisizioni. Sample Rate specifica il numero di campioni da acquisire al secondo. Se il sample rate impostato a 0, avverr la lettura di un singolo punto. Se il sample rate maggiore di 0, avverr una lettura continua. Channel List specifica i canali CAN per i quali avverr la comunicazione. Interface specifica la porta CAN utilizzata. Input Mode specifica i canali letti dalla rete CAN. Altre opzioni sono output (in scrittura) e timestamped input.

TIPI IN LETTURA E SCRITTURA


Timestamped (sola lettura) Gestita a eventi Singolo punto Accesso veloce al Messaggio pi recente Velocit di campionamento = 0 Continuo Flusso continuo di dati a intervallo di tempo fisso Velocit di campionamento > 0 Sono disponibili tre modalit in lettura e due in scrittura, cosa che facilita la personalizzazione della vostra applicazione. Le misure Single point sono utili quando desiderate un accesso veloce al messaggio CAN pi recente. In modalit singolo punto, un messaggio viene trasmesso/ricevuto solo quando viene chiamata una lettura/scrittura. La modalit Timestamped utile per applicazioni di test nelle quali richiesta la sincronizzazione CAN/DAQ senza ulteriore elaborazione dei dati CAN. In questa modalit i messaggi CAN vengono registrati con un timestamp. Se il modulo CAN viene sincronizzato (usando limpulso resync) con un modulo DAQ, i dati CAN verranno correlati direttamente con i dati analogici o digitali timestamped provenienti dal modulo DAQ. La modalit Continuous utile quando desiderate registrare dati insieme a dati analogici o digitali da un dispositivo DAQ. I valori CAN vengono ricampionati ad ogni impulso di clock finch non viene ricevuto un nuovo messaggio. Le reti CAN sono gestite a eventi. Tuttavia, possono esserci dei casi in cui preferite avere valori CAN continui. In questo caso, potete usare limpostazione Continuous su letture e scritture: i valori CAN sono trasmessi o ricevuti ad ogni colpo di clock. Nel caso in cui la base tempi sia pi rapida delle velocit dingresso o duscita dei messaggi CAN, i messaggi CAN vengono copiati (ricampionati) fino allarrivo di un nuovo messaggio.

Figura 16 - Configurazione di un canale CAN

Dopo avere configurato o importato i canali CAN, il modello di programmazione pu essere facilmente implementato in LabVIEW. Il codice di configurazione CAN, illustrato in figura 17, fornisce i passi essenziali per inizializzare i canali CAN e DAQ in LabVIEW, usando la Channel API. Le tre sezioni del modello verranno descritte in maggiore dettaglio. Il primo elemento del programma, illustrato in figura 17, comprende i seguenti elementi: NI-DAQmx Create (AI Voltage Basic) Inizializza e configura i canali DAQmx NI-DAQmx Timing (Sample Clock)

Figura 17 - Le interfacce CAN e DAQ vengono inizializzate e la linea PXI Trigger viene configurata per i segnali di timing e triggering.

16

TIPS & TECHNIQUES

Questa caratteristica utiDAQ e il valore RPM rappresentato da le per registrare dati che un messaggio CAN. Per validare il comsono correlati a dati DAQ, portamento del sistema, dovete verificosa comune nelle applicare che venga trasmesso il corretto cazioni di test CAN/DAQ messaggio CAN quando la soglia automotive. In queste dingresso analogico viene superata. applicazioni, si utilizza la Questo processo richiede la capacit di stessa base tempi per CAN correlare con precisione i campioni e DAQ. I dati acquisiti in ottenuti dallhardware DAQ e CAN. Il modalit Continuous posconfronto rappresentato in figura 19. Figura 18 - Lettura dei segnali CAN e DAQ sono essere convertiti in LV-Waveform-Data-Type. Come si vede in figura, senza sincronizLa sezione di codice LabVIEW in figura 18 illustra le funzio- zazione c un leggero ritardo nellistante di start dellingresni CAN e di lettura analogica sincronizzate attraverso il PXI so analogico NI-DAQmx. Questo leggero offset deriva nel trigger bus. Poich la velocit di campionamento stata fis- tempo e aumenta le differenze fra gli istanti di lettura, perch sata a 1000, i messaggi CAN sono letti 1000 volte al secon- non vi alcun controllo per tenerli uniti. Ci pu essere evido (in continua). tato usando la sincronizzazione, illustrata in figura 20. NI-CAN Read - legge campioni da un task CAN. NI-DAQmx Read - legge dati da unacquisizione dati bufferizzata. Build Array - concatena pi array. Align Waveform Timestamps - sostituisce tutti i valori del timestamp (t0) con il valore dellindice dellelemento dellarray. Unbundle - controlla lo stato dellerrore. NI-CAN Clear with NI-DAQ - cancella i task CAN e DAQ.

RISULTATI
Ci che si ottiene un grafico di forma donda facilmente confrontabile con le misure analogiche. Se i campioni DAQ e CAN sono sincronizzati, possibile visualizzare le forme donda insieme su un grafico ed osservare la loro relazione nel tempo. Senza sincronizzazione, questo non possibile perch i dati non sono correlati. Nel nostro sistema di test EPAS, lECU invia un nuovo valore RPM sul bus CAN quando viene raggiunta una certa coppia di sterzatura. La coppia di sterzatura letta come ingresso analogico dallhardware

Figura 20 - Acquisizioni DAQ e CAN sincronizzate

Con la corretta sincronizzazione, le vostre letture NI-CAN e NI-DAQmx possono essere acquisite simultaneamente durante tutto il test.

CONCLUSIONE
Potete usare i dati CAN e analogici acquisiti simultaneamente per validare una ECU tramite PXI Trigger bus o RTSI bus, disponibili rispettivamente per PXI e PCI. Usando la NICAN Channel API in LabVIEW si ottiene un semplice modello di programmazione per completare il programma di sincronizzazione in sei VI. Il confronto pu essere eseguito in grafici di forme donda usando la modalit di lettura continua.

Note sullautore
Figura 19 - Acquisizioni DAQ e CAN non sincronizzate

Laureato in ingegneria nucleare al Politecnico di Milano, Matteo Foini lavora in qualit di Technical Marketing Engineer presso National Instruments Italy

Readerser vice.it n. 711

17

TIPS & TECHNIQUES

07

LABVIEW PER L'ELABORAZIONE DI SEGNALI ECG


S am Shearman

Grazie ai toolkit di elaborazione dei segnali, LabVIEW offre un ambiente solido ed efficiente per risolvere problemi di elaborazione dei segnali ECG

'elettrocardiogramma (ECG) una tecnica di registrazione delle correnti bioelettriche generate dal cuore. Esaminando l'ECG, i medici possono valutare le condizioni del cuore di un paziente ed eseguire ulteriori diagnosi. Le registrazioni ECG sono ottenute campionando le correnti bioelettriche rilevate da diversi elettrodi o sonde. Nella figura 1 riportato il tipico tracciato di un ciclo di segnale ECG. Generalmente, il segnale ECG registrato spesso contami-

rumore, la rilevazione del complesso QRS, l'estrazione della frequenza cardiaca fetale, ecc. Questo articolo discute metodi tipici di elaborazione dei segnali ECG basati su LabVIEW.

PREELABORAZIONE DEI SEGNALI ECG


La preelaborazione dei segnali ECG vi aiuta a rimuovere le contaminazioni dai segnali ECG stessi. In termini generali, tali contaminazioni possono essere classificate nelle seguenti categorie: Interferenze sulla linea di alimentazione Rumore di contatto Fenomeni spuri dovuti al movimento di paziente ed elettrodo Rumore elettromiografico (EMG) Fluttuazioni della baseline Fra questi rumori, le interferenze sulla linea di alimentazione e le fluttuazioni della baseline sono quelli pi significativi, e possono influenzare fortemente l'analisi del segnale ECG. A parte questi due rumori, altre fonti di rumore possono essere a banda larga e possono seguire normalmente un complesso processo stocastico, che a sua volta distorce il segnale ECG. Le interferenze sulla linea di alimentazione costituiscono un rumore a banda stretta centrata a 60 Hz (o 50 Hz) con una larghezza di banda minore di 1 Hz.

Fig. 1 - Il tipico tracciato di un ECG monociclo

nato da rumore e fenomeni spuri che possono verificarsi all'interno della banda di frequenza d'interesse e manifestarsi con caratteristiche simili a quelle del segnale ECG stesso. Per potere estrarre informazioni utili da segnali ECG disturbati, necessario elaborare i segnali ECG grezzi. L'elaborazione dei segnali ECG pu essere suddivisa a grandi linee in due fasi: la preelaborazione, che rimuove o sopprime il rumore dal segnale ECG grezzo, e la successiva estrazione di informazioni diagnostiche dal segnale ECG (come illustrato nella figura 2). Con LabVIEW e i relativi toolkit, come l'Advanced Signal Processing Toolkit (ASPT) e il Digital Filter Design Toolkit (DFDT), potete comodamente costruire applicazioni di elaborazione dei segnali per entrambe le fasi, inclusa la rimozione delle fluttuazioni della baseline, la cancellazione del

Fig. 2 - Tipico schema di flusso di elaborazione dei segnali ECG

18

TIPS & TECHNIQUES

Normalmente, l'hardware di acquisizione del segnale ECG pu rimuovere le interferenze sulla linea di alimentazione. Al contrario, le fluttuazioni della baseline ed altri rumori a larga banda non possono essere facilmente soppressi dalle apparecchiature hardware. Invece, un metodo software risulta essere molto pi potente e realizzabile per elaborazioni offline dei segnali ECG. Per rimuovere le fluttuazioni della baseline ed altri rumori a larga banda potete utilizzare i metodi seguenti.

RIMOZIONE DELLE FLUTTUAZIONI DELLA BASELINE


Le fluttuazioni della baseline derivano normalmente dalla respirazione e presentano frequenze comprese fra 0,15 e 0,3 Hz e potete sopprimerle con un filtro digitale passa alto. Potete anche utilizzare la trasformata wavelet per rimuovere le fluttuazioni della baseline eliminando il trend del segnale ECG. 1. Filtro digitale Il LabVIEW DFDT offre un metodo intuitivo e interattivo per progettare e implementare in modo semplice ed efficace filtri a risposta finita all'impulso (FIR) o a risposta infinita all'impulso (IIR). Per esempio, potete utilizzare l'Express VI Classical Filter Design per progettare un filtro FIR passa alto con finestra di Kaiser per rimuovere le fluttuazioni della baseline. La figura 3 illustra un esempio delle specifiche del filtro passa alto e lo schema a blocchi di un VI campione che potete utilizzare per rimuovere le fluttuazioni della baseline.

2. Trasformata wavelet Oltre ai filtri digitali, anche la trasformata wavelet un metodo efficace per rimuovere segnali all'interno di sottobande specifiche. Il LabVIEW ASPT fornisce il WA Detrend VI che pu rimuovere il trend a bassa frequenza di un segnale. La figura 4 illustra un esempio di rimozione delle fluttuazioni della baseline utilizzando il WA Detrend VI. Questo esempio utilizza la wavelet Daubechies6 (db06) perch tale wavelet simile al segnale ECG reale. Nell'esempio, il segnale ECG ha una durata di campionaFig. 4 - Uso del VI WA Detrend per rimuovere le fluttuazioni della baseline mento di 60 secondi e 12000 punti di campionamento in totale, quindi il livello di trend 0,5 secondo la seguente equazione:

Dove t la durata di campionamento e N il numero di punti di campionamento. La figura 5 illustra il segnale ECG originale e i segnali ECG risultanti elaborati rispettivamente con l'approccio basato sul filtro digitale e con quello basato sulla trasformata

Fig. 5 - Confronto fra l'approccio basato sul filtro digitale e l'approccio della trasformata wavelet

Fig. 3 - Progettazione e uso di un filtro passa alto per rimuovere le fluttuazioni della baseline

wavelet. Potete vedere che i segnali ECG risultanti contengono una scarsa informazione sulle fluttuazioni della baseline per mantengono le caratteristiche principali del segnale ECG originale. Potete anche osservare che l'approccio basato sulle wavelet migliore perch non introduce alcuna latenza e provoca una minore distorsione rispetto al filtro digitale.

19

TIPS & TECHNIQUES

07

RIMOZIONE DEL RUMORE A BANDA LARGA


Nonostante gli effetti positivi sulla qualit del segnale risultanti dalla rimozione delle fluttuazioni della baseline, qualche altro tipo di rumore pu disturbare lestrazione di informazioni utili dal segnale ECG. Il rumore potrebbe derivare da complessi processi stocastici che coinvolgono una banda ampia, quindi potrebbe non essere rimosso mediante filtri digitali tradizionali. Per rimuovere i rumori a banda larga, potete utilizzare l'Express VI Wavelet Denoise. Questo Express VI scompone in primo luogo il segnale ECG in pi sottobande applicando la trasformata wavelet, quindi modifica ogni coefficiente della wavelet applicando una funzione di soglia o compressione ed infine ricostruisce il segnale senza rumore. La figura 6 illustra un esempio di applicazione della undecimated wavelet transform (UWT) al segnale ECG.

ESTRAZIONE DELLE COMPONENTI CARATTERISTICHE DEI SEGNALI ECG


Al fine della diagnosi spesso necessario estrarre varie componenti caratteristiche dai dati ECG preelaborati, tra cui intervalli QRS, ampiezze QRS, intervalli PR, intervalli ST, frequenza cardiaca fetale, ecc. Questo paragrafo discute principalmente il rilevamento del complesso QRS e l'estrazione dell'ECG fetale.

RILEVAMENTO DEL COMPLESSO QRS


Il rilevamento dei picchi R e, di conseguenza, del complesso QRS in un segnale ECG offre informazioni sulla frequenza cardiaca, sulla velocit di conduzione, sulla condizione dei tessuti all'interno del cuore e su varie anomalie. Esso fornisce unevidenza per la diagnosi delle malattie cardiache. Per questo motivo, ha riscosso una notevole attenzione nel campo dell'elaborazione dei segnali ECG. Tuttavia, la presenza di rumore e la morfologia variabile nel tempo rendono difficoltoso questo rilevamento. Poich wavelet opportunamente scelte possono estrarre le informazioni principali dai segnali rumorosi tramite analisi multirisoluzione, recentemente sono stati introdotti numerosi metodi di rilevamento basati su wavelet. In questo articolo, per rilevare i punti Q, R e S stato utilizzato il WA Multiscale Peak Detection VI presente nel LabVIEW ASPT. Prima del rilevamento picco/valle, utilizzate l'Express VI Multiresolution Analysis per scomporre il segnale ECG con wavelet Daubechies6 (db06) (come illustrato nella figura 8) e quindi ricostruite il segnale con le sottobande D4 e D5. Vengono tenute per la ricostruzione le sottobande D4 e D5 perch in queste due sottobande ci sono quasi tutti i dettagli QRS, rendendo pi accurato il rilevamento QRS.

Fig. 6 - Rimozione dei rumori a banda larga da un segnale ECG mediante UWT

La UWT garantisce un migliore compromesso tra smoothness e accuratezza rispetto alla discrete wavelet transform (DWT). Confrontando il segnale ECG senza rumore con il segnale ECG originale, come si vede nella figura 7, potete notare che i rumori a banda larga sono stati fortemente soppressi, mentre quasi tutti i dettagli del segnale ECG sono stati lasciati invariati.

Fig. 7 - Segnali ECG prima e dopo la rimozione del rumore tramite UWT

Fig. 8 - Analisi ECG multirisoluzione ed implementazione del rilevamento QRS

20

TIPS & TECHNIQUES

La figura 9 illustra i segnali ECG elaborati mediante l'analisi wavelet multirisoluzione (MRA) ed il rilevamento picco/valle, oltre al segnale ECG originale. In questa figura, potete vedere che i picchi e le valli (specialmente i punti Q ed S) diventano pi distinti dopo l'analisi wavelet multirisoluzione.

1. Approccio ICA L'ICA un metodo per rilevare segnali nascosti indipendenti da un'osservazione multicanale. Supponiamo che l'osservazione X sia una sovrapposizione del segnale sorgente S e scriviamo: X = AS dove A denota una mixing matrix. L'assunzione dell'indipendenza statistica dei segnali S permette di stimare le due incognite S e A dall'osservazione X. Qui, l'ECG materno e l'ECG fetale possono essere trattati come componenti indipendenti, cio sono parte di S, mentre le registrazioni ECG a 8 canali misurate costituiscono X. Eseguendo l'ICA, possibile ottenere la stima di S; ci significa che si possono ottenere sia l'ECG materno sia l'ECG fetale. L'ASPT mette a disposizione il VI TSA Independent Component Analysis, che vi permette di costruire facilmente un'applicazione di estrazione del FHR come illustrato nella figura 11: i segnali ECG a 8 canali (acquisiti con il sistema a 8 canali menzionato prima) sono gli ingressi della funzione ICA, ed il segnale ECG fetale pu essere ottenuto dall'uscita come una delle componenti indipendenti. La figura 12 illustra rispettivamente un ECG addominale materno e un ECG fetale estratti dall'ICA. Dall'ECG fetale si pu vedere che l'ECG materno stato soppresso efficacemente e che il FHR pu essere ottenuto in modo preciso e comodo.

Fig. 9 - ECG originale, ECG dopo la MRA e ECG dopo il rilevamento picco/valle

Dopo l'estrazione delle componenti caratteristiche con il rilevamento del complesso QRS, potete compiere ulteriori analisi con altri metodi. Per esempio, potete eseguire l'analisi di variabilit della frequenza cardiaca (HRV) sullintervallo R-R per valutare lo stato del cuore e del sistema nervoso.

ESTRAZIONE DELL'ECG FETALE


L'elettrocardiogramma fetale (FECG) pu essere derivato dall'ECG addominale materno (AECG) ed essere utilizzato per l'estrazione della frequenza cardiaca fetale (FHR), che indica la condizione cardiaca del feto. Nella figura 10 illustrata la posizione delle sonde per un sistema di acquisizione ECG materno a 8 canali. I segnali ECG del torace materno sono campionati dalle sonde toraciche, mentre i segnali ECG dell'addome materno sono ottenuti dalle sonde addominali. Utilizziamo qui i due metodi seguenti per estrarre la frequenza cardiaca fetale: Independent Component Analysis (ICA) e filtraggio adattivo.

Fig. 11 - Metodo ICA per l'estrazione della frequenza cardiaca fetale

Fig. 10 - Posizioni delle sonde per un sistema di acquisizione ECG materno a 8 canali (comprendente 5 sonde addominali e 3 sonde toraciche)

Fig. 12 - Estrazione del FHR utilizzando l'ICA

21

TIPS & TECHNIQUES

07

2. Approccio del filtraggio adattivo Un filtro adattivo un filtro che autoregola i suoi coefficienti per ottimizzarli secondo un indice di prestazioni specificato. I filtri adattivi vengono utilizzati in un'ampia gamma di applicazioni, una delle quali la cancellazione adattiva del

rumore, descritta nella figura 13. In questo esempio, i coefficienti del filtro adattivo sono regolati minimizzando gli errori fra il segnale di riferimento e il segnale d'ingresso rumoroso, in modo da potere ottenere l'ECG fetale sottraendo il segnale toracico materno dal segnale addominale materno. L' implementazione LabVIEW di questo approccio illustrata nella figura 14. Come si vede nella figura 15, un filtro adattivo di ordine e passo appropriati pu tracciare e predire l'ECG materno ed estrarre l'ECG fetale come errore di predizione.

CONCLUSIONE
LabVIEW e i relativi toolkit di elaborazione dei segnali offrono un ambiente solido ed efficiente per risolvere problemi di elaborazione dei segnali ECG. Questo articolo ha mostrato come utilizzare questi potenti strumenti per abbattere le componenti di rumore, condurre analisi ed estrarre in modo semplice segnali ECG, non solo nella diagnosi delle malat-

Fig. 13 - Struttura adattiva di rimozione del rumore

Fig. 14 - Metodo di filtragguo adattivo per l'estrazione del FHR

tie cardiache ma anche nella ricerca condotta nel campo dell'elaborazione dei segnali ECG. Inoltre, questi tool possono essere utilizzati anche in altre applicazioni di elaborazione dei segnali biomedici, come l'Imaging a Risonanza Magnetica (MRI) e l'Elettroencefalografia (EEG).

Readerser vice.it n. XXX

Note sullautore
Sam Shearman, Senior Product Manager, Signal Processing & Analysis presso National Instruments Corporation

Fig. 15 - Estrazione del FHR usando un filtro adattivo

22

Readerser vice.it n. 713

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

07

TELERIABILITAZIONE NU!REHA
Ricc ardo Magni, Fabio Magnino

SISTEMA DI
L

La sfida era quella di proporre un sistema per la riabilitazione a distanza che dimostrasse praticit e capacit di utilizzo da par te di personale non esper to, quali i familiari e assistenti generici, direttamente al domicilio del paziente

a teleriabilitazione costituisce un recente sviluppo nell'ambito della telemedicina. Pur essendosi sviluppata pi recentemente propone numerosi progetti e applicazioni pratiche, favorite anche dallo sviluppo tecnologico dellultimo decennio. Si tratta di un tipo di trattamento riabilitativo che sfrutta la tecnologia elettronica usata come mezzo di comunicazione ed informazione attraverso cui pu essere applicata a distanza (Lathan, Kinsella et al. 1999). Lo scopo principale si evoluto dalla necessit di fornire terapie in contesti rurali o comunque distanti dai centri di riabilitazione verso scenari pi complessi in cui i benefici economici e sociali si

coniugano con la necessit di prolungare l'attivit riabilitativa in fase cronica ove un degrado dellabilit in parte legato al non uso appreso della funzione (Taub 2000).

AMBITI DI APPLICAZIONE
Da questo punto di vista vi sono differenti ambiti di applicazione della teleriabilitazione: la logopedia, l'audiologia, la fisioterapia, la riabilitazione cognitiva, la terapia occupazionale, la psicologia, il nursing riabilitativo fino a l'integrazione sociale e vocazionale. In questo ambito stato proposto da un consorzio europeo in cui erano rappresentate la Spagna (Ospedale Guttmann

24

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

Figura 2 - Software di configurazione

di Barcellona), l'Italia (Ospedale di Trevi, Pragma Engineering, Signomotus) ed il Belgio (Centro Nazionale per la Sclerosi Multipla), il progetto H-CAD (Home Care Activity Desk prj IST n.2001-33235). Il Consorzio ha proposto la realizzazione di un sistema dedicato alla terapia occupazionale per l'esecuzione di esercizi riabilitativi di tipo contestuale, ovvero basati sulla proposta di attivit legate a quelle della vita quotidiana. Si tratta di attivit complesse che comprendono tra l'altro la possibilit di pianificazione dell'azione, un controllo della presa e del movimento, un coordinamento visuomotorio sufficiente al completamento dell'esercizio o al raggiungimento del target previsto. Tali attivit sono quindi finalizzate ad azioni utili per lo sviluppo dell'autonomia nella vita quotidiana, con riferimento alla scrittura, ad esercizi di pre-grafismo, allo spostamento sul piano orizzontale di un oggetto (per es. un bicchiere su un tavolo) e alla collocazione di un oggetto in verticale (per es. un libro su una libreria).

- permettere una prima analisi dei dati da parte del terapista. L'analisi delle tipologie di esercizio si basata su quelli utilizzati in terapia occupazionale per pazienti con sclerosi multipla, che abbiano subito un ictus o una lesione cerebrale traumatica. Questi gruppi hanno rappresentato una prima applicazione del sistema in ambito clinico (inpatient) ed in configurazione remota (outpatient). Attraverso una successiva integrazione ed ingegnerizzazione dei componenti del sistema (hardware e software) la proposta del progetto H-CAD evoluta in un prodotto per applicazioni pilota nei centri di riabilitazione (attualmente in uso in Spagna ed in Italia) con il marchio NU!Reha.

IL SISTEMA
Il sistema risulta composto da una unit remota, da un server di comunicazione e da un'applicazione di configurazione e analisi. L'unit remota costituita da un sistema multi-sensorizzato sia nell'area orizzontale che in quella verticale con i sensori opportunamente inseriti in oggetti di uso comune: un piano da tavolo per esercizi, una sorta di libreria per il posizionamento di oggetti vari. La scelta degli oggetti non obbligata: essi possono essere reperiti tra quelli gi in uso da

MONITORAGGIO A DISTANZA
La sfida costituita dal progetto era quella di poter monitorare a distanza queste attivit proposte al paziente in maniera pratica ed efficiente, conciliando aspetti tecnici con aspetti medico-clinici prevalenti nel tipo di applicazione. Si tratta quindi di: - selezionare una serie di esercizi significativi dal punto di vista clinico e delle autonomie; - offrire la possibilit di modulare/configurare gli esercizi sulla base delle condizioni cliniche del paziente e delle attivit proposte; - inserire questi esercizi in uno schema tecnico utile alla sensorizzazione; - sviluppare uninterfaccia utente semplice e localizzabile in differenti lingue europee; - automatizzare un sistema di scambio dati per la restituzione in remoto dei parametri fondamentali degli esercizi;

Figura 3 - Software per lanalisi dei dati

25

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

07

Note sugli autori


Riccardo Magni, responsabile sviluppo hardware presso Pragma Engineering Fabio Magnino, responsabile degli sviluppi software di controllo automatico presso Pragma Engineering

CONFIGURAZIONE
Per la configurazione dellunit remota stata realizzata, sempre in LabVIEW, unapplicazione che permette al terapi-

26

Readerser vice.it n. 717

parte del paziente o in dotazione da parte delle palestre occupazionali. Vari oggetti quali tazze, bicchieri in plastica rigida, boccali, cubi in plastica o in gommapiuma, oggetti in legno, libri, videocassette, custodie di stampe.. possono essere opportunamente resi visibili sia sul piano di lavoro che su quello verticale. Lo scopo quello di determinare, anche con una relativa accuratezza il posizionamento senza influire sulle normali attivit e funzioni del paziente: la sensoristica quindi wireless basata su infrarossi e tag a radiofrequenza. Il sistema portatile gestito da unapplicazione software completamente sviluppata in LabVIEW di National Instruments che implementa le seguenti funzioni: interfacciamento sensori e videocamera per acquisizione dati e video, gestione degli esercizi, memorizzazione dati e video, trasferimento dati via rete al server di comunicazione, interfaccia utente semplificata e personalizzabile. Cos equipaggiato, il sistema consente l'esecuzione di un set di esercizi configurati dal terapista prevedendo la ripetizione degli stessi e la registrazione del raggiungimento delle posizioni previste (con un tempo limite prefissato). Tutta l'attivit comunque registrata attraverso una videocamera per fornire indicazioni visive circa la postura durante l'esecuzione dell'esercizio specifico ed altre informazioni (fattori di distrazione, posizionamento corretto degli oggetti sul piano di lavoro..). Linterfaccia utente consente lutilizzo del sistema tramite un tastierino a quattro tasti colorati e pu essere configurata nella lingua dellutilizzatore ed arricchita con tutorial video sullesecuzione degli esercizi. Il sistema portatile pu essere utilizzato all'interno dell'ospedale (connesso alla LAN ospedaliera) e presso il domicilio del paziente (connessione: ADSL, Umts).

sta la gestione dei dati relativi ai vari pazienti e la creazione di sequenze di esercizi personalizzate in termini di parametri (tipologia di esercizio, numero di ripetizioni, durata massima, percorsi e target da raggiungere, ecc.), e descrizione (messaggi di feedback, istruzioni, video tutorial). La configurazione pu essere svolta sia localmente sulla unit che da remoto da una normale postazione PC con trasferimento dei dati di configurazione allunit remota tramite in server di comunicazione. Lapplicazione di configurazione consente anche la visualizzazione ed analisi dei dati registrati durante lesecuzione degli esercizi e trasferiti dallunit remota. In particolare viene fornita una rappresentazione sinottica di ogni esercizio eseguito, sincronizzata con la registrazione video, e la possibilit di esportare i dati per successive analisi.

RIFERIMENTI
Lathan, C. E., A. Kinsella, et al. (1999). "Aspects of human factors engineering in home telemedicine and telerehabilitation systems." Telemed J 5(2): 169-75 Taub, E. (2000). "Constraint-induced movement therapy and massed practice." Stroke 31(4): 986-8 www.telerehabilitation.net il sito internazionale di riferimento della Wfrn www.nureha.com sito del prodotto di teleriabilitazione presentato in questo articolo

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

07

MOVIMENTAZIONE DI SEMILAVORATI
G.Conte, D.Sc aradozzi, M.Rosettani, G.Vitaioli

IMOSE: IMPIANTO DI
N
ellambito dellautomazione industriale esistono molti strumenti teorici utili allanalisi ed alla sintesi per la progettazione e la modifica di impianti. Per validare il progetto di un nuovo reparto si seguono usualmente due strade: linserimento diretto del prototipo nellimpianto, con necessaria interruzione del funzionamento, oppure la

Il modello di unisola di spostamento semilavorati completamente automatizzata permette di esplorare le problematiche inerenti la coordinazione e la comunicazione degli agenti, la sensoristica e lattuazione, e la sicurezza dellimpianto

costruzione di modelli software di simulazione dellintero sistema finale, con risparmio economico ma senza la garanzia di sufficiente affidabilit e complessit. Il Progetto IMOSE (Impianto di MOvimentazione SEmilavorati), sviluppato allinterno del corso di Laurea Specialistica di 'Laboratorio di Meccatronica' allUniversit Politecnica delle Marche, ha

27

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

07

avuto come obiettivo la progettazione meccatronica di un modello hardware di una Cella Manifatturiera (CM) economicamente vantaggioso, di veloce prototipazione e sufficientemente complesso come strumento di analisi.

sensoristica diffusa che, monitorando il campo elettrico, rileva la presenza di corpi estranei (esseri umani) pericolosamente vicini alla zona di lavoro.

OPERAZIONI NELL'ISOLA DI LAVORO DESCRIZIONE DEL MODELLO


Mediante elementi LEGO Mindstorm NXT stato realizzato il modello di unisola di spostamento semilavorati, modellati con blocchetti lego di colore rosso (fig. 1). Il semilavorato deve essere trasportato da unarea di lavoro (Area1) a unaltra (Area2) mediante braccio robotico antropomorfo supervisionato da una postazione computerizzata remota. Il software di supervisione dellimpianto, realizzato in LabVIEW, ha il compito di gestire il flusso delle operazioni e di coordinare il movimento di tutte le macchine presenti nellisola di lavorazione. La supervisione sul campo garantita dal flusso video proveniente da una telecamera montata a bordo di un robot bipede in grado di spostarsi autonomamente attraverso la zona di lavoro, di impostare il giusto angolo di visione e di elaborare limmagine al fine di riconoscere lesatta posizione delloggetto da movimentare. Il supervisore inoltre riceve informazioni da una rete In dettaglio i comportamenti esibiti dal sistema sono i seguenti (fig. 2): La telecamera rileva la presenza di un oggetto nellarea dingresso e ne comunica la posizione al supervisore. Il supervisore passa tale informazione al manipolatore che preleva il pezzo dallArea1 e lo posiziona nellArea2 avvisando il supervisore dellavvenuto trasferimento o di eventuali problemi incontrati. Il supervisore ordina al supporto mobile della telecamera (robot bipede) di spostarsi in una posizione in cui abbia una buona visuale dellarea di arrivo. La telecamera verifica la presenza del semilavorato nella posizione corretta allinterno dellArea2 e ne informa il supervisore. Se il pezzo si trova effettivamente nellarea finale ed nella posizione giusta, il ciclo termina con esito positivo. Se lesito negativo, vengono verificate tre possibilit riguardo al manipolatore: mancata presa del pezzo, perdita del pezzo durante lo spostamento oppure posizionamento in una cella errata. In questi casi il sistema resettato. Se in un qualunque momento un corpo estraneo si avvicina troppo al manipolatore o vi entra in contatto, il sistema si blocca inviando un allarme a disarmo manuale.

IL SUPERVISORE
Il supervisore ha il compito di realizzare la coordinazione e lo scambio dinformazioni tra le varie componenti del sistema, di dettare i tempi delle operazioni, di inviare i comandi e di sincronizzare il flusso degli eventi. Il supervisore realizzato mediante software LabVIEW e comunica con limpianto mediante Bluetooth o USB, utilizzando un particolare protocollo seriale elaborato in fase di progetto. Nella figura 3 si pu osservare il pannello relativo al programma principale. I dispositivi da controllare sono quattro: la telecamera e il bipede su cui montata, il robot antropomorfo e il controllore per i sensori E-Field.

IL MANIPOLATORE
Gli oggetti sono movimentati da un sistema robotico costituito da un manipolatore antropomorfo a tre gradi di libert su cui montato un organo di presa pinza con relativo sensore di forza (fig. 1). I tre giunti del braccio sono attuati da servomotori pilotati dalle uscite PWM del blocchetto LEGO NXT, mediante controllore PID numerico. LEnd-Effector impiega un micromotore LEGO per trasmettere il moto alla pinza, un sensore di contatto (LEGO

Figura 1

28

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

Mindstorm) per monitorare la presenza o meno del pezzo ed un sensore di corrente per attuare un controllo di forza sulla presa. Il funzionamento dellEnd-Effector regolato dal blocchetto LEGO RCX.

IL SISTEMA DI VISIONE E IL ROBOT BIPEDE


Il sistema di visione costituito da una webcam montata, mediante supporto attuato per Pan&Tilt realizzato con sistema LEGO, a bordo di un robot bipede. Le immagini sono acquisite ed elaborate mediante un programma LabVIEW messo a punto con il pacchetto LabVIEW Vision Assistant. Il sistema di visione si occupa di dare le direttive al blocchetto NXT del bipede per orientare il sistema Pan&Tilt allo scopo di centrare larea di lavoro nelle immagini catturate dalla telecamera e di rilevare con buona precisione la posizione degli oggetti allinterno della griglia. Il robot bipede, che riceve i comandi direttamente dal supervisore, si sposta parallelamente alla zona di lavoro tra le due aree di posizionamento dei semilavorati.

IL SENSORE E-FIELD
Il sensore E-Field ha il compito di rilevare la prossimit o lavvicinamento di corpi estranei (esseri umani) al manipolatore e, in generale, allarea di lavoro. Il principio di funzionamento di tale sensore basato sulle caratteristiche di interazione tra campi elettromagnetici e corpi conduttori. Il segnale acquisito ed elaborato da un microcontrollore della famiglia Freescale, che ha il triplice compito di eccitare il sensore, di acquisire il segnale e di comunicare al supervisore eventuali situazioni di rischio.

Figura 2

(www.labmacs.diiga.univpm.it/IMOSE_download), stato ampiamente soddisfacente. Lutilizzo di componenti LEGO Mindstorm ha permesso un rapido ed efficace assemblaggio delle parti meccaniche, mentre la piattaforma LabVIEW ed i toolkit annessi hanno reso semplice e veloce limplementazione del software necessario alla coordinazione ed alla comunicazione (supervisore), allelaborazione delle immagini (webcam) ed al controllo dei robot (manipolatore, supporto webcam).

Figura 3 Readerser vice.it n. 715

CONCLUSIONI
Il modello di unisola di movimentazione di semilavorati stato realizzato ed stato messo in funzione, per verificarne il funzionamento e i punti deboli. Il risultato, documentato mediante un video

Note SUGLI autorI


G. Conte, D. Scaradozzi, M. Rosettani, G. Vitaioli - Diiga Universit Politecnica delle Marche

29

SCUOLA DI LABVIEW

07

Training per principianti


CREAZIONE E DISTRIBUZIONE DELLE APPLICAZIONI
a cura di Matteo Foini

Questa lezione descrive il processo di creazione di unapplicazione stand-alone e di un installer per le vostre applicazioni in LabVIEW

aratteristiche dello sviluppo del progetto in LabVIEW. LabVIEW ha in dotazione una serie di caratteristiche che potete usare per gestire i vostri progetti in modo pi efficiente.

STORIA DEL VI
Uno degli strumenti di LabVIEW pi utili per lo sviluppo team-oriented la finestra History. Usate la finestra History in ogni VI per visualizzare la storia dello sviluppo del VI. Il numero di revisione parte da zero e aumenta di uno ogni volta che salvate il VI. Registrate e tenete traccia dei cambiamenti che apportate al VI nella finestra History man mano che lavorate. Selezionate EditVIRevision History per visualizzare la finestra History. Potete anche stampare la storia della revisione. Usate la finestra di dialogo VI Properties Revision History per impostare le opzioni per il VI corrente.

gerarchia, come le variabili globali o i VI forniti con LabVIEW, cos come se la gerarchia si espande orizzontalmente o verticalmente. Un VI che contiene dei subVI ha un pulsante freccia sul suo bordo inferiore. Cliccate su questo pulsante freccia per mostrare o nascondere i subVI. Quando tutti i subVI sono nascosti compare un pulsante con un freccia rossa. Quando tutti i subVI sono visualizzati compare un pulsante con un freccia nera. La finestra Hierarchy mostrata nella figura 1 contiene la gerarchia di un progetto. I VI della directory di LabVIEW vi.lib non sono mostrati. Cliccate con il tasto destro su

GERARCHIA DEL VI
Rispamiare memoria un vantaggio importante della suddivisione delle vostre applicazioni principali in subVI. Inoltre la risposta delleditor di LabVIEW migliora perch i VI sono pi facili da maneggiare. Luso dei subVI rende gli schemi a blocchi di alto livello facili da leggere, da sottoporre a debug, da capire e da manutenere. Perci cercate di contenere lo schema a blocchi dei vostri VI di alto livello entro dimensioni inferiori a 500 kB. In generale mantenete i vostri subVI entro piccole dimensioni. Per controllare la dimensione di un VI, selezionate FileVI Properties e selezionate Memory Usage dal menu a tendina delle categorie. Tipicamente dovreste spezzare un VI in diversi subVI se lo schema a blocchi del vostro VI troppo grande per entrare interamente nello schermo. La finestra Hierarchy del VI visualizza una rappresentazione grafica di tutti i progetti e compiti aperti in LabVIEW, cos come la gerarchia di chiamata di tutti i VI in memoria, incluse le definizioni di tipo e le variabili globali. Selezionate ViewVI Hierarchy per visualizzare la finestra Hierarchy. Usate questa finestra per vedere i subVI e altri nodi che costituiscono i VI nella memoria e per cercare nella gerarchia del VI. Usate la barra strumenti in alto nella finestra Hierarchy per mostrare o nascondere varie categorie di oggetti usati nella

Figura 1 - Finestra VI Hierarchy

unarea vuota della finestra e selezionate Show All Vis dal menu rapido per mostrare lintera gerarchia. Quando spostate il cursore sopra degli oggetti nella finestra VI Hierarchy, LabVIEW visualizza il nome di ogni VI in una striscia di suggerimento. Potete usare lo strumento Positioning per trascinare un VI dalla finestra VI Hierarchy allo schema a blocchi per usare il VI come subVI di un altro VI. Potete anche selezionare e copiare uno o pi nodi sulla clipboard e incollarli in altri schemi a blocchi. Cliccate due volte su un VI nella finestra VI Hierarchy per visualizzare il pannello frontale di quel VI. Potete localizzare un VI nella gerarchia anche inserendo

30

SCUOLA DI LABVIEW

ovunque nella finestra il nome del nodo che volete trovare. Appena inserite il testo, appare una stringa di ricerca che visualizza il testo man mano che lo scrivete. LabVIEW evidenzia il nodo con un nome che concorda con la stringa di ricerca. Potete trovare un nodo nella gerarchia anche selezionando EditFind.

nascondere o riposizionare la finestra Context Help. Usate la funzione Control Online Help per visualizzare la tabella dei contenuti, saltare ad uno specifico punto del file o chiudere laiuto online. Usate la funzione OpenURL in Default Browser VI per visualizzare un Url o un file HTML nel navigatore internet di default.

PREPARAZIONE DELLAPPLICAZIONE
Unapplicazione stand-alone consente allutente di avviare i vostri VI senza installare il sistema di sviluppo di LabVIEW. Gli installer sono utilizzati per distribuire lapplicazione stand-alone. Gli installer possono includere il LabVIEW RunTime Engine, che necessario per eseguire applicazioni stand-alone. Tuttavia potete anche scaricare il LabVIEW Run-Time Engine su ni.com. Per creare unapplicazione professionale dovete considerare diversi fattori. Codice esterno Innanzitutto conoscere quale codice esterno la vostra applicazione utilizza. Per esempio chiamate qualche sistema o DLL personalizzato o librerie condivise? State per trattare argomenti command line? Questi sono esempi avanzati che vanno oltre gli scopi di questo corso, ma dovete prenderli in considerazione per lapplicazione. Nomi dei percorsi Un altro problema quello dei nomi dei percorsi che usate nel VI. Assumete di leggere i dati da un file durante lapplicazione e che il percorso al file sia hard-coded nello schema a blocchi. Una volta che unapplicazione costruita, il file inserito come eseguibile, cambiando il percorso al file. Essere consapevoli di questi problemi vi aiuter a costruire in futuro applicazioni pi robuste. Uscire da LabVIEW Un altro problema che colpisce lapplicazione che avete appena costruito che il VI di livello superiore non esce da LabVIEW o chiude il pannello frontale quando termina lesecuzione. Per uscire completamente e chiudere il VI di livello superiore, dovete chiamare la funzione Quit LabVIEW nello schema a blocchi del VI di livello superiore. Fornire aiuto online per le vostre applicazioni in LabVIEW Quando apportate i tocchi finali alla vostra applicazione, dovete fornire aiuto online allutente. Create delle descrizioni del VI e dei loro oggetti, quali controlli e indicatori, per descrivere i fini del VI o oggetto per dare agli utenti istruzioni per luso del VI o delloggetto. Usate le funzioni seguenti, localizzate sulla palette Help, per mostrare o nascondere in maniera programmata la finestra Context Help e mettete un link dai VI ai file HTML o ai file di aiuto compilati: Usate la funzione Get Help Window Status per rilevare lo stato e la posizione della finestra Context Help. Usate la funzione Control Help Window per mostrare,

REALIZZAZIONE DELLAPPLICAZIONE E DELLINSTALLER


Per creare applicazioni stand-alone e installer usate le specifiche costruttive di LabVIEW. Applicazioni stand-aloneUsate le applicazioni stand-alone per fornire ad altri utenti versioni eseguibili dei VI. Le applicazioni sono utili quando volete che gli utenti avviino i VI senza installare il sistema di sviluppo di LabVIEW. (Windows) Le applicazioni hanno estensione .exe. (Mac OS) Le applicazioni hanno estensione .app. Installer(Windows) Usate gli installer per distribuire le applicazioni stand-alone, librerie condivise e distribuzioni sorgente che create con lApplication Builder. Gli installer che includono il LabVIEW Run-Time Engine sono utili se volete che gli utenti possano avviare le applicazioni o usare le librerie condivise senza installare LabVIEW. Specifiche costruttive di LabVIEW Usate Build Specifications nella finestra Project Explorer per creare specifiche costruttive per distribuzioni sorgente e altri tipi di realizzazioni in LabVIEW. Una specifica costruttiva contiene tutte le impostazioni per la costruzione, come i file da includere, le directory da creare e le impostazioni delle directory dei VI. Suggerimento (Windows e UNIX) In funzione della natura della vostra applicazione, pu essere richiesta la presenza di file non-VI per funzionare correttamente. I file comunemente necessari includono i file con le preferenze (.ini) per lapplicazione e di qualsiasi altro file di aiuto che i vostri VI chiamano.

REQUISITI DI SISTEMA
Le applicazioni che create con Build Specifications generalmente hanno gli stessi requisiti di sistema del sistema di sviluppo LabVIEW. I requisiti sulla memoria variano in funzione della dimensione dellapplicazione creata. Potete distribuire questi file senza il sistema di sviluppo LabVIEW; tuttavia gli utenti di applicazioni stand-alone e di librerie condivise devono avere installato il LabVIEW RunTime Engine.

Note sullautore
Laureato in ingegneria nucleare al Politecnico di Milano, Matteo Foini lavora in qualit di Technical Marketing Engineer presso National Instruments Italy

Readerser vice.it n. 725

31

SCUOLA DI LABVIEW

07

Training per esperti


RICHIAMARE OGGETTI IN LABVIEW (II parte)
a cura di Matteo Foini

LabVIEW permette di accedere ad altre applicazioni Windows utilizzando le tecnologie .NET o ActiveX: prosegue la discussione dell'argomento iniziata nello scorso numero

ome abbiamo visto, LabVIEW permette di accedere ad altre applicazioni Windows utilizzando le tecnologie .NET o ActiveX.

RICHIAMO DI OGGETTI IN LABVIEW UTILIZZANDO .NET


Potete utilizzare LabVIEW come client .NET per accedere ad oggetti, propriet, metodi ed eventi associati a server .NET. LabVIEW non un server.NET. Le altre applicazioni non possono comunicare direttamente con LabVIEW attraverso .NET, a meno che utilizziate .NET per collegarvi a LabVIEW come server ActiveX. Con un VI .NET-enabled, potete collegarvi a servizi e API Windows. Il framework .NET include servizi di componenti COM+, remotazione .NET e supporto per protocolli di servizi Web, come SOAP, WSDL e UDDI. Nota Creare e comunicare con oggetti .NET richiede il.NET Framework 1.1 Service Pack 1 o successivo.

L'AMBIENTE .NET
L'elenco seguente richiama i vari elementi che compongono l'ambiente.NET. Lo scopo di queste informazioni aiutarvi a capire .NET, ma apprendere tali informazioni non essenziale per utilizzare i componenti .NET in LabVIEW. Common Language Runtime (CLR) Un insieme di librerie responsabile dei servizi run-time, come integrazione del linguaggio, rafforzamento della sicurezza, memoria, garbage collection, gestione dei processi e gestione dei thread. Per aiutare .NET a comunicare con i vari programmi, il CLR offre un sistema di tipi di dati che si estende fino ai confini dei linguaggi di programmazione e dei sistemi operativi. Gli sviluppatori possono quindi vedere il sistema come una raccolta di tipi di dati ed oggetti, anzich come un insieme di memoria e thread. Il CLR richiede che i compilatori ed i linker generino informazioni nel formato metadati del linguaggio intermedio (IL) CLR. Tutti i compilatori dei linguaggi di programmazione .NET generano codice intermedio anzich codice assembly. Librerie di classi Un insieme di classi che fornisce funzionalit standard, come input e output, manipolazione di stringhe, gestione della sicurezza, comunicazioni in rete, gestione dei thread, gestione del testo, caratteristiche per la progettazione di interfacce utente e cos via. Queste classi

mettono a disposizione la stessa funzionalit del sistema Win32/COM. Nel framework .NET potete utilizzare classi create in un linguaggio .NET anche allinterno di un altro linguaggio .NET. AssembyUn'unit di rilascio simile a una DLL, un OCX o un eseguibile per un componente in COM. Gli assembly sono DLL ed eseguibili che si possono costruire usando un compilatore .NET. Gli assembly possono consistere di uno o pi file. Un assembly include un manifest contenente informazioni sul nome dell'assembly, informazioni sulla versione, informazioni locali, informazioni di sicurezza del publisher, l'elenco dei file che compongono l'assembly, l'elenco di assembly dipendenti, le risorse e i tipi di dati esportati. Gli assembly a file singolo contengono tutti i dati in un singolo file, inclusi il manifest e le risorse necessarie. Gli assembly a file multipli possono avere risorse esterne, come bitmap, icone, file di suono e cos via o avere un file per il codice core e un altro per le librerie di supporto. Gli assembly possono essere pubblici o privati. .NET richiede che gli assembly privati siano nella stessa directory in cui si trova la directory dell'applicazione e che gli assembly pubblici siano in una cache globale, che abbraccia l'intero sistema, chiamata Global Assembly Cache (GAC). Lo sviluppatore dell'applicazione tipicamente scrive assembly privati utilizzabili da quell'applicazione. Lo sviluppatore dell'assembly decide inoltre il controllo della versione. Il nome dell'assembly il filename (meno eventuali estensioni del file) del file che contiene il manifest. Il CLR .NET utilizza le impostazioni di configurazione per determinare la versione dell'assembly da caricare. Tali impostazioni di configurazione possono fare loverride sulla vostra richiesta per una specifica versione dell'assembly. Per esempio, l'amministratore di sistema pu configurare il vostro computer in modo che carichi la versione 1.0.0.1 invece della 1.0.0.0. Se cercate di caricare la versione 1.0.0.0, il CLR .NET promuove la versione dell'assembly a 1.0.0.1. LabVIEW lancia inoltre un'area di dialogo che vi notifica la promozione. Global Assembly Cache (GAC)Un elenco degli assembly pubblici disponibili sul sistema. La GAC analoga agli usi del registry COM.

FUNZIONI E NODI .NET


Utilizzate le funzioni e i nodi LabVIEW seguenti, situati sulla

32

SCUOLA DI LABVIEW

palette .NET, per accedere ad oggetti, propriet e metodi associati ai server .NET: Usate il Constructor Node per selezionare un costruttore di classe .NET da un assembly e creare un'istanza di tale classe. Quando disponete questo nodo sullo schema a blocchi, LabVIEW visualizza l'area di dialogo Select .NET Constructor. Usate il Property Node per ottenere (leggere) ed impostare (scrivere) la propriet associata ad una classe.NET. Usate lInvoke Node per invocare i metodi associati ad una classe .NET. Usate la funzione Close Reference per chiudere tutti i riferimenti ad oggetti .NET quando il collegamento non vi serve pi. Usate la funzione Register Event Callback per registrare e gestire gli eventi .NET. Usate la funzione Unregister For Event per deregistrare un evento .NET. Usate la funzione To More Generic Class per l'upcast di una reference .NET alla sua classe base. Usate la funzione To More Specific Class per il downcast di una reference .NET alla sua classe derivata. Usate la funzione Static VI Reference per creare una strictly typed VI reference ad un VI di callback che avete creato.

IMPOSTAZIONE DI PROPRIET .NET E INVOCAZIONE DI METODI .NET


Le applicazioni abilitate a .NET includono oggetti che hanno propriet e metodi esposti, accessibili ad altre applicazioni. Gli oggetti possono essere visibili all'utente, come nel caso di pulsanti, finestre, immagini, documenti e aree di dialogo, o invisibili all'utente, come gli oggetti dell'applicazione. Potete accedere ad un'applicazione accedendo ad un oggetto associato con quell'applicazione ed impostando una propriet o invocando un metodo di tale oggetto. Sul pannello frontale o sullo schema a blocchi, cliccate con il testo destro su un oggetto .NET e selezionate CreateProperty Node o CreateInvoke Node e selezionate una propriet o un metodo dal menu abbreviato per impostare una propriet o invocare un metodo per l'oggetto. Potete anche selezionare propriet specifiche .NET o invocare metodi specifici .NET per un oggetto .NET. Sullo schema a blocchi, cliccate con il testo destro su un oggetto .NET e selezionate CreateProperty o CreateInvoke e selezionate una propriet o un metodo specifici .NET dal menu abbreviato. Nota Non potete visualizzare ed impostare propriet .NET in un Property Browser come invece potete fare per ActiveX. Dovete impostare le propriet .NET utilizzando i Property Node.

F. IMPLEMENTAZIONE DI .NET
Potete implementare .NET in LabVIEW nei modi seguenti: Creando oggetti .NET Settando propriet .NET ed invocando metodi .NET Registrando eventi .NET Mantenendo assembly .NET Configurando un'applicazione client .NET

MANUTENZIONE DI ASSEMBLY .NET


LabVIEW pu trovare assembly .NET nei luoghi seguenti: Global Assembly Cache (GAC)LabVIEW pu accedere a tutti gli assembly nella GAC. Subdirectory SpecificateLabVIEW pu cercare nelle directory gli assembly che utilizzate. Se utilizzate oggetti .NET in un progetto salvato, LabVIEW cerca nella directory che contiene il progetto e in tutte le subdirectory di quel progetto. Se utilizzate oggetti .NET in una libreria condivisa o in un'applicazione stand-alone, LabVIEW cerca nella directory che contiene la libreria o l'applicazione e nelle subdirectory data e bin. Se utilizzate oggetti .NET in un luogo diverso da un progetto salvato, una libreria condivisa o un'applicazione stand-alone, salvate i file assembly nella GAC o usate un percorso relativo. Percorso relativoLabVIEW pu accedere ad un percorso relativo per gli assembly che utilizzate. Usate i percorsi relativi solo se utilizzate oggetti .NET all'esterno di un progetto. Dopo avere creato un VI che include componenti .NET, potete integrare quel VI in una libreria condivisa o un'applicazione stand-alone. LabVIEW copia i file assembly .NET privati associati nella subdirectory data nella stessa directory della libreria o dell'applicazione. Potete anche distribuire i VI .NET in un'altra posizione. Se distribuite VI, librerie o applicazioni .NET stand-alone, dovete spostare i file assembly .NET privati associati in subdirectory dove LabVIEW possa eseguire una ricerca, oppure dovete salvare i file nella GAC. Accertatevi che il computer target abbia il framework .NET installato.

CREAZIONE DI OGGETTI .NET


Potete creare oggetti .NET sul pannello frontale dello schema a blocchi. Usate un Constructor Node per creare un oggetto .NET sullo schema a blocchi. Usate un contenitore .NET per creare un controllo .NET sul pannello frontale. Potete anche aggiungere controlli .NET alla palette Controls per l'uso successivo. Nota Non potete commutare fra le modalit di design e di run per un contenitore .NET, come invece potete fare per un contenitore ActiveX. Il comportamento di un contenitore .NET simile a quello di un contenitore ActiveX in modalit design. Se create un VI con controlli .NET, dovete usare il sistema di esecuzione dell'interfaccia utente. In caso contrario, il VI potrebbe fallire con eccezioni .NET in fase di esecuzione. Selezionate FileVI Properties e selezionate Execution dal menu a tendina per visualizzare la pagina Execution Properties. Selezionate quindi user interface dall'elenco Preferred Execution System. Utilizzate lo stesso sistema di esecuzione del programma che richiama i subVI con riferimenti a controlli .NET. Selezionate FileVI Properties e selezionate Execution dal menu a tendina per visualizzare la pagina Execution Properties. Selezionate quindi same as caller dall'elenco Preferred Execution System.

33

SCUOLA DI LABVIEW

07

CONFIGURAZIONE DI UN'APPLICAZIONE CLIENT .NET


.NET offre capacit amministrative ad un'applicazione utilizzando file di configurazione. Un file di configurazione ha un contenuto XML e tipicamente presenta un'estensione .config. Per configurare un'applicazione client .NET, potete fornire un file di configurazione per un progetto salvato, una libreria condivisa o un'applicazione stand-alone. Assegnate al file di configurazione lo stesso nome del progetto, della libreria o dell'applicazione con un'estensione .config, per esempio MyApp.lvproj.config, MyApp.dll.config o MyApp.exe.config. Salvate il file di configurazione nella directory che contiene il progetto, la libreria o l'applicazione. Se costruite un'applicazione stand-alone da un progetto salvato con un file di configurazione, dovete ridenominare il file di configurazione e salvarlo nella directory che contiene l'applicazione. Per esempio, se costruite un'applicazione stand-alone da foo.lvproj che ha il file di configurazione foo.lvproj.config, ridenominate il file come foo.exe.config e salvatelo nella directory che contiene foo.exe, l'applicazione stand-alone.

Selezionate l'evento prima di creare il VI di callback. Potete gestire gli eventi su controlli .NET in un contenitore. Per esempio, potete mettere un controllo di calendario in un contenitore .NET e specificare che volete gestire un evento DoubleClick per gli elementi visualizzati nel calendario.

GESTIONE DI EVENTI .NET


Dovete creare un VI di callback per gestire gli eventi da oggetti .NET quando gli oggetti generano gli eventi registrati. Il VI di callback viene eseguito al verificarsi dell'evento. Per creare un VI di callback, cliccate con il testo destro sull'ingresso VI Ref della funzione Register Event Callback e selezionate Create Callback VI dal menu abbreviato. LabVIEW crea un VI rientrante. Aprite il VI ed editate lo schema a blocchi per gestire l'evento. Il VI di callback contiene i seguenti elementi: Event Common Data contiene i seguenti elementi: Event Source un controllo numerico che specifica la sorgente dell'evento, come LabVIEW o .NET. Un valore 2 indica un evento .NET. Event Type specifica quale evento si verificato. Si tratta di un tipo enumerato per gli eventi dell'interfaccia utente e di un tipo intero a 32 bit senza segno per .NET ed altre sorgenti di eventi. Per gli eventi .NET, event type rappresenta il codice del metodo, o ID, dell'evento registrato. Time Stamp il time stamp in millisecondi che specifica quando l'evento stato generato. Control Ref un riferimento all'oggetto .NET sul quale si verificato l'evento. Event Data un cluster di parametri specifici per levento gestito dal VI di callback. LabVIEW determina l'appropriato Event Data quando selezionate un evento dalla funzione Register Event Callback. Se ad un evento non associato alcun dato, LabVIEW non crea questo controllo nel VI di callback. Event Data Out un cluster dei parametri modificabili specifici per l'evento gestito dal VI di callback. Questo elemento disponibile solo se l'evento .NET ha parametri d'uscita. (Opzionale) user parameter il dato che volete passare al VI di callback quando l'oggetto .NET genera l'evento. Nota Potete usare un VI esistente come VI di callback purch il pannello di connessione del VI che intendete usare corrisponda al pannello di connessione dellevent data. Il VI di callback deve essere rientrante ed il riferimento al VI di callback deve essere strettamente tipizzato. Non potete eseguire chiamate sincrone ad aree di dialogo non modali da un VI di callback. Dovete richiamare in modo asincrono un'area di dialogo non modale da un VI di callback invocando un metodo Run VI e scrivendo una costante booleana FALSE sull'ingresso Wait Until Done del metodo.
Readerser vice.it n. 726

REGISTRAZIONE DI EVENTI .NET


Gli eventi sono le azioni eseguite su un oggetto, come cliccare un mouse, premere un tasto o ricevere notifiche circa cose come avere esaurito la memoria o avere terminato dei task. Ogni volta che si verificano queste azioni sull'oggetto, l'oggetto invia un evento per allertare il contenitore .NET, insieme a dati specifici all'evento. L'oggetto .NET definisce gli eventi disponibili per un oggetto. Per usare eventi .NET in un'applicazione, dovete registrare l'evento e gestirlo quando esso si verifica. La registrazione degli eventi .NET simile alla registrazione di eventi dinamici. Tuttavia, l'architettura di un VI di evento .NET diversa dall'architettura di un VI che gestisce eventi. Un tipico VI di evento .NET costituito dai seguenti componenti: L'oggetto .NET per il quale volete generare un evento. La funzione Register Event Callback per specificare e registrare il tipo di evento che volete generare. La funzione Register Event Callback un nodo ridimensionabile in grado di gestire eventi multipli, simile alla funzione Register For Events. Il VI Callback contenente il codice che scrivete per gestire l'evento che specificate. Quando collegate un oggetto .NET alla funzione Register Event Callback e specificate l'evento che volete generare per quell'oggetto, state registrando l'oggetto .NET per quell'evento. Dopo la registrazione dell'evento, create un VI di callback contenente il codice che scrivete per gestire l'evento. Eventi differenti possono avere formati di dati di evento differenti, pertanto cambiare l'evento dopo avere creato un VI di callback potrebbe interrompere dei fili sullo schema a blocchi.

34

REPORT

07

A TUTTO GAS CON

LAUTOMOTIVE FORUM 08
DI NATIONAL INSTRUMENTS
a cura di Nadia Albarello

sceso in pista a Torino lappuntamento biennale dedicato a tecnici e ingegneri che operano nel mercato automotive

entosettanta visitatori, dieci aziende leader di settore in veste di speaker del Forum, quattro aree tematiche (tra le pi calde attualmente a gravitare attorno al mondo automotive: Safety & Reliability, Innovation & Infotainment, Powertrain Efficiency & Environmental Care, Comfort) hanno reso la sesta edizione di Automotive Forum lo scorso 12 giugno un appuntamento imperdibile per gli esperti di test e controllo nel settore automotive. A fare da cornice allevento, una location deccezione, il Centro Ricerche Fiat di Orbassano, a Torino. Durante la giornata il tema dominante stato il mutamento del cosiddetto ciclo dellinnovazione e la necessit di maggior connessione e integrazione tra fornitori, integratori e costruttori per

to delle risorse petrolifere la preoccupazione maggiore dellutente finale. A tale minaccia e al vertiginoso aumento del prezzo del carburante deve guardare il mercato odierno, cercando di proporre soluzioni ed alternative efficaci. Per questo motivo, necessario sviluppare tecnologie volte alla riduzione dei consumi e a soluzioni ibride a costi sostenibili in tempi rapidi, dichiara lIng. Domenico Albero, Responsabile Ente Controlli e SW Diesel & Ibridi di FPT R&T. Durante la sua keynote, Albero, ha sottolineato la crescente risonanza delle tecnologie 'verdi' amiche dellambiente e dei recenti progressi compiuti nel campo della sicurezza, non dimenticando di illustrare vantaggi e benefici apportati da tecnologia multicore e paralle-

rispondere pi efficacemente ai bisogni dellutente finale. Questo il panorama italiano dellautomobile delineato dallIng. Nevio Di Giusto, Amministratore Delegato e Direttore Generale di Centro Ricerche Fiat ed Elasis, un mercato in cui la vita media di uninnovazione dura oggi un anno e mezzo. Si pensi che in un passato non molto lontano, unidea originale poteva rimanere tale anche dieci anni, prima di essere copiata oppure surclassata dalla successiva. Alcuni tra i trend di mercato attualmente pi diffusi hanno avuto origine direttamente dalle necessit pi o meno esplicitate degli automobilisti e hanno cercato di dare risposte immediate. Si pensi, ad esempio, alla recente diffusione su ampia scala dei SUV (Sportive Utility Vehicle): "Il fenomeno rappresenta chiaramente la risposta alla diffusa sensazione di insicurezza e al desiderio di dominare la strada dellautomobilista, ammette Di Giusto. Tuttavia, sicuramente lincombente minaccia dellesaurimen-

lismo software nel settore della progettazione automotive. Per raggiungere questo obiettivo, necessario che le aziende coinvolte lavorino in sinergia. Automotive Forum si proposto come un appuntamento fisso per aprire il dialogo tra le entit coinvolte, preparare il terreno ad un proficuo scambio di idee, esperienze e conoscenze per diffondere e testare le tecnologie del futuro universo automotive. Questo scambio stato facilitato da un lato dalle testimonianze dei relatori della giornata, presentando le proprie applicazioni al pubblico in sala, e dallaltro dalla sala espositiva, di dimensioni ridotte ma di elevata qualit per le soluzioni proposte. Nel corso della giornata stata premiata la 'Migliore Applicazione Automotive' tra le oltre venti raccolte in occasione dellevento: il premio stato assegnato ad Alessandro De Grassi, Francesco Siano e Carmine Ungaro del Gruppo Loccioni, con larticolo 'Mexus: Progettazione embedded di un innovativo sensore di misura per sistemi di test in ambienti automotive'.

Readerser vice.it n. 740

35

EVENTI

07

LABVIEW COMMUNITY?

S, GRAZIE!
a cura di Nadia Albarello

Scoprite qui sotto i benefici tangibili della membership ai gruppi di discussione e social network che ruotano attorno a LabVIEW

apita spesso di chiedersi quale possa essere lutilit di far parte di una community, un forum di discussione, un social media. Scoprite quale gruppo di discussione o social network fa al caso vostro e quale potrebbe essere il vostro ruolo. Condividete! Il vero senso di una Community. Come spesso si suole dire, due teste sono meglio di una. Per partire alla grande ed evitare i primi imbarazzi tipici per un new user, cercate di instaurare una conversazione con il vostro 'buddy': ovvero, se rendere pubbliche le vostre prime domande in un forum o in una e-mail list vi pu creare qualche disagio, cominciate a condividere trick, esperienze oppure dubbi e perplessit con una persona in particolare, di vostra fiducia. Iscrivetevi alle e-mail list di LabVIEW, partecipate ai newsgroup e forum di discussione. Se siete nuovi, iniziate la vostra esplorazione da Developer Exchange (forums.ni.com/), LabVIEW General Discussion Forum (forums.ni.com/ni/) e da LabVIEW Newsgroup (www.news2mail.com/comp/lang/labview.html). Iniziate a leggere i thread di discussione e a porre domande relative ai vostri progetti. Vi accorgerete che entro breve sarete in grado voi stessi di rispondere alle domande altrui. Supportare gli altri partecipanti a risolvere problemi tecnici un ottimo metodo per imparare. Trovatevi un mentore! Perdere le vecchie abitudini difficile, se non impossibile. Quindi, non acquisite cattive abitudini ma affiancatevi da subito a sviluppatori esperti, che vi potranno insegnare a superare i primi ostacoli ed acquisire tecniche di programmazione che vi faranno risparmiare tempo. Diventa il mio mentore! Se siete programmatori esperti, condividete le vostre conoscenze pratiche, insegnate a sviluppare codice grazie alle pratiche 'rule-of-thumb' che avete imparato voi col tempo. La gestione dei dati e lorganizzazione di architetture per vaste applicazioni possono risultare operazioni difficoltose per un principiante. LabVIEW uno strumento potente ma anche divertente: vedrete che aiutare gli altri membri della community vi dar grandi soddisfazioni.

Beta-testami! Sviluppare nuove funzionalit sarebbe immensamente pi difficile senza il lavoro di un solido gruppo di beta tester volontari (e volenterosi), in grado di scovare bachi di sistema e fornire preziosi feedback e suggerimenti agli sviluppatori. Contribuite in prima persona al test di nuove release di LabVIEW: vi permetter di essere protagonisti e parti integranti dellevoluzione di LabVIEW. Per maggiori informazioni, visitate il sito NI Beta Program Resource Center. (www.ni.com/betaprogram) Open Source LabVIEW. Si tratta di una comunit di utenti che mette in condivisione un vasto archivio, costantemente arricchito e aggiornato, di progetti e librerie open source realizzate in LabVIEW. Il modo migliore per contribuire al progetto di scaricare e usare direttamente il codice, verificarne le funzionalit e fornire feedback agli sviluppatori su come migliorare il codice stesso. (wiki.openg.org/Main_Page) User Group locali. Visitate zone.ni.com per conoscere gli user group della vostra citt oppure scoprite come dare vita ad un user group nella vostra zona o societ. Non perdete gli incontri trimestrali online e le relative presentazioni tecniche. NILabs. E la vetrina di tutte le tecnologie NI non ancora pronte per il rilasci sul mercato. Visitate i laboratori di ricerca virtuali di National Instruments: potrete scaricare programmi allavanguardia, contribuire attivamente alla loro definizione grazie ai vostri feedback, avere informazioni preziose. (www.ni.com/labs/) LabVIEW Champions. Siete fan di LabVIEW? Entrate a far parte dellelite su ni.com/champions, e condividete la vostra passione e la vostra esperienza con altri tecnici e ingegneri come voi. Potrete accedere ad esclusive preview di prodotto, contattare direttamente gli sviluppatori di LabVIEW, acquisire maggiore visibilit allinterno della Comunit. (www.ni.com/champions) LabVIEW Tools. Scaricate centinaia di tool aggiuntivi per realizzare applicazioni di test, misura e controllo alla pagina web www.ni.com/labviewtools LabVIEW Academy. Imparate a conoscere i futuri fan di LabVIEW e mettete le vostre conoscenze al servizio delle

36

EVENTI

nuove generazioni. National Instruments costantemente impegnata nel supportare lo sviluppo e la diffusione di programmi di apprendimento nelle discipline scientifiche. Se siete interessati a prendere parte al programma, scoprite come alla pagina web ni.com/academic/k12 Blogosfera. Non perdete loccasione di visitare i blog della community, per essere sempre aggiornati sulle ultime novit: http://www.ni.com/blogs http://www.viroadshow.blogspot.com/ http://www.eyesonvis.blogspot.com/ http://www.emertech.blogspot.com/ http://www.automatedtestblog.com/ http://www.ideasinwiring.blogspot.com/ http://www.themacview.blogspot.com/ http://www.openmeas.blogspot.com/ LabVIEW Social Networks. LabVIEW presente su numerosi social network, tra cui: LabVIEW MySpace LabVIEW Facebook LabVIEW YouTube LabVIEW Squidoo LabVIEW Wikipedia LabVIEW NING LabVIEW Search LabVIEW Meetup Rimanete sempre in contatto con i vostri compagni di avventura!

LabVIEW Zone. Non dimenticate, inoltre, di visitare LabVIEW Zone (www.ni.com/labviewzone), il sito ideale per condividere codice e scovare interessanti risorse tecniche. Arricchite i contenuti del sito inviando il vostro 'consiglio della settimana': condividete con gli altri utenti il vostro migliore 'trucchetto' di programmazione. Potrebbe essere eletto come il migliore della settimana. FIRST Community. La prima community di LabVIEW tutta dedicata a video e tutorial. Iscrivetevi al servizio RSSFeed, e riceverete le notifiche su video e tutorial caricati di recente. http://decibel.ni.com/content/docs/DOC-1640

LA NUOVA DEVELOPERZONE QUI


Se desiderate ricevere aggiornamenti, scaricare codice e documentazione tecnica e comunicare e collaborare con altri tecnici e ingegneri su tutti i prodotti di National Instruments, allora entrate a far parte di NI Developer Zone: ni.com/devzone ni.com/ Connettetevi alla Community e potrete entrare in contatto con lo staff R&D di National Instruments e con i LabVIEW Champions che stanno realizzando applicazioni simili alle vostre.
readerser vice.it n. 759 readerser vice.it n. 760

Note sullautore
Nadia Albarello, laureata in Lingue Moderne e Comunicazione alla Karl Franzens Universitt di Graz, Austria, lavora in qualit d Marketing Communications Manager presso National Instruments Italy.

AUTOMATED TEST SUMMIT 2008


Il convegno sul test automatizzato si riproposto nella sua 5 edizione lo scorso 5 giugno nella sua versione online
a pi avanzata occasione di aggiornamento su strategie e tecnologie nel settore del test automatizzato rivolta a tecnici e management delle principali aziende di elettronica, si reso disponibile ai frequentatori del Web per offrire un accesso comodo alle ultime tendenze tecnologiche sulla progettazione efficace di sistemi di test automatizzati, flessibili ed efficienti. National Instruments e i 12 partner tecnici dellevento (aziende leader mondiali di sistemi di test e misura del calibro di Intel, Microsoft, Tektronix, Averna e Cal-Bay )

hanno presenziato in ben tre continenti per ben 24 ore consecutive, condividendo con gli oltre 760 partecipanti online strategie per la progettazione software a costi ridotti, le ultime tendenze nella progettazione hardware e tecniche per ottimizzare i sistemi di test ed incrementarne la durata. National Instruments sta gi lavorando alla prossima edizione dellevento, proponendo una piattaforma pi ancora pi potente e performante e contenuti ancora pi innovativi. Vi aspettiamo alla prossima edizione.

37

D A L L A C A RTA A L W E B

07

HTTP://WWW
Quando le nostre pagine non bastano, lenorme serbatoio del web pu dare una mano. Su una rivista c ar tacea, anche la pi voluminosa, sarebbe impossibile trattare per esteso tutti gli argomenti relativi a LabVIEW. In molti casi, tuttavia, sul web sono disponibili ar ticoli esaustivi o altri documenti, a cui rimandiamo i lettori interessati. LabVIEW una piattaforma aperta che vi permette di integrare facilmente software di terze parti come INRIA Scilab. Approfondite la conoscenza del Gateway che vi permette di invocare facilmente script Scilab direttamente da LabVIEW. Link alla pagina: ni.com/italian infocode: itimkb

Connessione di LabVIEW con INRIA Scilab

TestStand: uso efficace del Sequence Context in LabVIEW


LabVIEW gestisce intrinsecamente i parametri in modalit pass by value. Una conseguenza che, quando si cambia una variabile durante l'esecuzione di un VI, tale cambiamento non pu essere visto all'esterno del VI stesso. In TestStand, tuttavia, utile avere la possibilit di leggere e cambiare i valori di un VI durante la sua esecuzione. Passare e manipolare il sequence context all'interno di un VI il metodo che permette di ottenere tale risultato. Questo esempio illustra tale metodo in un ambiente di test multithread. Link alla pagina: ni.com/italian infocode: itimkb

Creare applicativi LabVIEW programmaticamente


Molte applicazioni richiedono di essere frequentemente compilate in un eseguibile (.exe) o in una dynamic link library (.dll). Un'applicazione potrebbe richiedere la compilazione del codice sorgente ogni notte o anche ogni dieci minuti. Prima di LabVIEW 8.0 l'application builder rendeva necessaria la creazione di un file *.bld unico per ogni configurazione richiesta dalla vostra applicazione. Potevate quindi richiamare tale file da un file batch. Ora LabVIEW offre un VI che costruisce programmaticamente una distribuzione utilizzando una specifica di build predefinita. Questo esempio illustra come eseguire la procedura dalla command line. Link alla pagina: ni.com/italian infocode: itimkb

Algoritmo di rilevamento ostacoli 3D


Nelle applicazioni di movimentazione, soprattutto nella robotica, imperativo sapere se un percorso di moto generato sia libero da ostacoli. Questo algoritmo offre una soluzione per controllare se un movimento rettilineo interseca una regione 3D. Tale regione definita da un array di 'facce' o piani definiti da 3 punti. Link alla pagina: ni.com/italian infocode: itimkb

38

D A L L A C A RTA A L W E B

Comunicazione SPI in LabVIEW FPGA


Questo esempio genera e legge un pacchetto SPI di 16 bit con un segnale ChipSelect attivo basso. Le due parti, ingresso e uscita, dell'esempio sono normalmente usate in modo separato, in base al lato della comunicazione che vi occorre. Per questo esempio le abbiamo implementate entrambe. Il codice d'ingresso e il codice d'uscita usano le stesse linee fisiche di I/O, eliminando la necessit di cablaggio esterno. Link alla pagina: ni.com/italian infocode: itimkb

Visualizzazione di uno Splash Screen in LabVIEW usando il VI Server


Questo esempio utilizza il VI Server per visualizzare uno splash screen per la vostra applicazione principale, mentre tutti i suoi subVI vengono caricati in memoria. L'esempio utile se avete una grossa applicazione che impiega un po' di tempo per essere caricata, perch lo splash screen pu visualizzare informazioni sulla vostra azienda e un indicatore che mostra lo stato di caricamento. Eseguite splash screen.vi per vedere il comportamento dello splash screen e dell'indicatore dello stato di caricamento. Link alla pagina: ni.com/italian infocode: itimkb

Monitoraggio e gestione allarmi da remoto con invio di messaggi di testo SMS LabVIEW PDA Module for Pocket PC
Questo esempio illustra come utilizzare messaggi di testo SMS ed email SMTP. L'esempio traccia dati casuali su un grafico di forme d'onda. Se i dati sono sopra o sotto i limiti fissati, l'utente viene sollecitato ad inviare un messaggio di testo SMS all'amministratore per avvisarlo dei dati imprevisti. L'utente inserisce quindi un numero telefonico nel messaggio. Inoltre, l'utente pu inviare una email a pi destinatari utilizzando VI di email SMTP che includono in allegato i dati raccolti. Il terzo tab, Message Log, registra tutti i messaggi inviati dall'applicazione. Per eseguire l'applicazione, aprite il progetto LabVIEW ed eseguite Remote Monitoring and Alarming with SMS.vi sull'emulatore o sul dispositivo Pocket PC. Link alla pagina: ni.com/italian infocode: itimkb

Determinare il volume del suono corrente con LabVIEW


Lallegato SO Get Volume.vi restituisce il volume corrente dell'uscita audio tramite chiamate a una DLL di Windows, la winmm.dl. La funzione waveOutGetVolume di questa dll restituisce l'informazione di volume in un puntatore double word. La parola inferiore il canale sinistro, quella superiore il canale destro. Questo VI pu essere utilizzato come subVI insieme agli altri Sound Output VIs forniti con LabVIEW. Il SO Volume VI fornito con LabVIEW pu essere usato per impostare il volume corrente dell'uscita di suono. Link alla pagina: ni.com/italian infocode: itimkb

39

LA VOCE DEGLI UTENTI

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

Apertura Subvi dal Diagram ...


Inviato: Lun Giu 26, 2006 6:11 pm Come tutti sapranno, se si ha un SubVi utilizzato nel proprio Diagram, facendovi sopra DoppioClick con il tasto sinistro del mouse, questo viene aperto. Forse non tutti hanno notato, per che se mentre lo si fa si tiene premuto il tasto "Ctrl", viene anche visualizzato direttamente il Diagram del Subvi in oggetto. Dato che la maggior parte delle volte che uno apre un SubVi per visualizzarne o modificarne il diagram, io l'ho trovato comodo. - againstdarkness mooolto comodo. grazie Ciao ale914 [continua su http://www.ilvg.it/ht/1836] Againstdarkness

Occupazione memoria da parte di VI chiusi


Inviato: Gio Dic 20, 2007 12:11 pm Ogni tanto mi capita che dopo aver chiuso un VI perch ho finito di usarlo, se tento di cancellarlo dal pc Windows mi avvisa che la risorsa ancora utilizzata. Se chiudo anche LabView completamente allora posso cancellare il VI. Questo non mi capita sempre: qualcuno ha incontrato questo problema (secondo me un problema... perch devo chiudere tutto per cancellare un VI, magari un VI temporaneo realizzato per fare delle prove)? Ciao!!- MagicBotolo Anche a me succede; magari non voglio proprio cancellare ma solo spostare il vi, caso tipico di quando si organizza il codice (in realt spostare un file la composizione di copiare nell'altro posto e cancellare l'originale). A me credo succeda sempre; l'ho attribuito al modo in cui LabView (non) rilascia effettivamente al SO i file che ha aperto. Mi succede anche qualcosa di simile con le porte seriali; in quel caso si che non mi succede sempre e credo di aver capito che succede se fermo il vi con il stop di LV (il pulsantino rosso). Entrambe le cose sono noiose, ma finora non ho trovato soluzione. A dire la verit non ho neanche mai chiesto al supporto tecnico. gyc [continua su http://www.ilvg.it/ht/3650] MagicBotolo

Raddrizzare i fili
Inviato: Mar Dic 04, 2007 3:39 pm Avevo letto qualcosa a riguardo di un comando alla tastiera per "pulire" i fili in modo da togliere tutti gli scalini ... qualcuno sa dirmi qualcosa? Grazie mir Ma non che intendi la possibilit di selezionare un filo e spostarlo con le frecce cursore, in modo da riallinearlo ad altri spezzoni? Nicola Faccio un esempio ...mettiamo che da ubriaco abbia tirato una linea a zigo zago ... non esiste un comando che la raddrizzi e la ottimizzi nel suo percorso? mir Se tu vai col mouse sul filo e clikki il tasto destro ti compare CLEAN UP WIRE che ottimizza il percorso in modo tale da fargli risultare meno incroci e parti nascoste possibili. Credo sia questo che intendi, per non mi risulta che ci sia l'equivalente da tastiera...ma ciao! gepponline

[continua su http://www.ilvg.it/ht/3615] mir

40

LA VOCE DEGLI UTENTI

Conflitti Software
Inviato: Lun Lug 02, 2007 8:52 am Ciao a tutti, ho un enorme problema con un mega programma in LabView che funziona benissimo quando gira su un PC su cui il Sistema operativo windows 2000 NT4 ma su un altro PC con XP si blocca dopo poche ore di esecuzione. Inizialmente pensavo fosse colpa della versione 8.2 e cos sono tornato alla 7.1 ma la cosa non cambia. Poich cambiando il PC anche la scheda GPIB cambiata non ho la certezza che il problema sia di tipo Hardware o Software. Qualcuno ha gi avuto problemi di questo tipo o sa darmi qualche dritta senza che io debba fare tutte le prove per verificare cosa c' che realmente non va? Avevo sentito anche qualche episodio di altre applicazioni che venivano inibite dopo l'installazione degli aggiornamenti di XP. Grazie- nicky79 Il problema che lamenti sembra tipico di una "fuga di memoria". Prova a cercare sul sito NI, sulla Developer Zone e su LAVA con "memory leak", magari anche associando a "windows xp". Io ho provato con "labview memory leak xp" su Vivisimo e ho trovato un discreto numero di trovate - diverse e secondo me pi attinenti rispetto alla stessa ricerca su google (e oltretutto mi piace molto la classificazione che Vivissimo fa e google NON fa!). gyc Grazie, ho trovato molte cose utili ma purtroppo nulla di risolutivo. Ho scoperto intanto che la versione di MAX sul PC che funziona non quella del LV 7.1 (cio MAX 3.1) ma la versione 2.2 di LV 6.1, quindi ho provato a installare la stessa versione. Se fosse questo il problema si tratterebbe solo di un modo diverso di gestire la GPIB tra i due sistemi. nicky79 Potresti guardare se per caso la gestione dei file (sempre che ci sia) o dei dati nel VI comporta l'esaurimento delle risorse... non sono un espertone ma mi pare che WinXP gestisca il file di paging della memoria in modo particolare... puoi controllare con il Task Manager, guardando le prestazioni e la CPU occupata mentre il VI in esecuzione. Ciao!! MagicBotolo avevo gi guardato ed era al 50%, niente di esagerato. Ora ho lanciato il programma e domani vedr se non si ancora bloccato. Se funziona ti faccio sapere. Grazie ancora e ciao nicky79 [continua su http://www.ilvg.it/ht/3274] nicky79

Istanze multiple
Inviato: Mar Mag 08, 2007 8:41 am Ciao a tutti, vorrei chiedere consiglio su come fare per creare un programma in Labview (ovviamente) che possa essere lanciato pi volte contemporaneamente cliccando sull'icona. aris Scusate, ma credo che la domanda non sia troppo chiara e cerco di chiarirmi meglio..... Un exe creato con Application builder, pu essere lanciato pi volte? Ovvio che si possono creare vi che richiamano altri in maniera rientrante tutte le volte che si vuole, ma un eseguibile pu essere lanciato pi di una volta (come succede con i programmi creati direttamente con C)? Grazie ancora aris Io avevo capito ma non sapevo cosa rispondere Anche un exe in realt usa il runtime engine per eseguire un vi, che normalmente unico in memoria. Penso, ma solo un'ipotesi, che i vi rientranti siano la soluzione anche per questo problema. Il tuo exe dovrebbe avere solo il compito di lanciare dinamicamente (con Invoke node) un vi rientrante e poi terminare, per cui ogni volta che lo clicchi te ne apre una copia. Ma la fattibilit di questa cosa ancora tutta da verificare Snamprogetti Io ho avuto un problema inverso: NON volevo che un eseguibile creato con l'ApplicationBuilder fosse lanciato pi di una volta. Ho scoperto, con l'aiuto dei ragazzi del forum, che di fatti l'eseguibile NON pu essere istanziato pi volte gi di suo - quindi, io non avevo il problema. Non so cosa tu abbia bisogno di fare, ma sono d'accordo che la soluzione pu essere solo nell'utilizzo di VI dinamici. Ci sar un "modulo base" che funzioner come "motore" per lanciare le varie istanze, magari con un semplice click su un pulsante. Aggiungo come promemoria, che se usi risorse uniche (file, port seriale, i/o, ecc) dovrai ovviamente risolvere il problema della concorrenza nel loro uso, con i meccanismo che gi LV ti mette a disposizione. Buon divertimento. gyc [continua su http://www.ilvg.it/ht/3068] aris

41

REPORT

07

BIAS E VISION FOR MANUFACTURING: DUE EVENTI DI GRANDE SUCCESSO


Valerio Alesandroni

L'impor tanza di un contatto diretto con i fornitori non mostra segni di cedimento
al 27 al 30 maggio 2008 si svolta a Fieramilano (Rho) ledizione 2008 della Technology Exhibitions Week, il grande appuntamento internazionale con la tecnologia e linnovazione per lindustria. Le oltre 60.000 presenze registrate confermano il grande richiamo dell'evento per tutti gli operatori professionali. Particolarmente significativo risultato il numero dei visitatori provenienti dallestero che hanno superato quota 18.000, dando un segnale di forte caratterizzazione internazionale dellevento. La Technology Exhibitions Week composta dalle mostre professionali BIAS (Biennale internazionale dellautomazione, strumentazione, microelettronica e ICT per lindustria), BI.MAN (Biennale della manutenzione industriale), Fluidtrans Compomac (Biennale internazionale della fluidotecnica, trasmissioni di potenza e movimento, comandi, controlli, progettazione) e Mechanical Power Transmission & Motion Control (Biennale internazionale dei sistemi di controllo del movimento, tecniche di azionamento e trasmissioni meccaniche). In un solo contesto sono stati concentrati le soluzioni e i prodotti pi innovativi rivolti allindustria manifatturiera e di processo, presentati da 1.800 marchi di espositori diretti e indiretti su una superficie espositiva complessiva di 100.000 metri quadri. Numerosi gli espositori esteri, pari al 45%, provenienti da 33 Paesi. Una panoramica internazionale di riferimento per il mondo industriale, come dimostrano anche le numerose delegazioni estere arrivate da Brasile, Bulgaria, Polonia, Russia, Marocco, Cina, India, Corea, Malesia, Bielorussia e Repubblica Ceca. La manifestazione rappresenta comparti che, in Italia, hanno un valore molto significativo: i mercati di riferimento di BIAS, Fluidtrans Compomac e Mechanical Power Transmission & Motion Control, ad esempio, valgono complessivamente circa 10 miliardi di euro. Per quanto riguarda invece il mercato della manutenzione rappresentato da BI.MAN, non esiste in Italia un osservatorio che monitorizzi regolarmente questo settore. Secondo una stima, tuttavia, le spese complessive in manutenzione nel nostro Paese sono molto elevate e, per quanto riguarda in particolare il settore industriale, ammontano a circa 30 miliardi di euro. Unintensa e qualificata attivit congressuale, con 35 tra convegni e seminari, ha arricchito la sezione espositiva offrendo interessanti momenti di aggiornamento professionale agli operatori grazie anche al contributo delle principali associazioni di riferimento.

Con la Technology Exhibitions Week, Milano diventata per qualche giorno la capitale della tecnologia e, insieme a Fiera Milano, ha iniziato un percorso ideale di manifestazioni che avr il suo culmine nel 2015 con lExpo, un evento che rappresenta una formidabile opportunit per la citt e per tutto il Paese, ha dichiarato Fabio Dadati, presidente di Fiera Milano Tech. Il prossimo appuntamento con la Technology Exhibitions Week in programma, sempre a Fieramilano, dal 25 al 28 maggio 2010.

TECNOLOGIA DELLA VISIONE ARTIFICIALE


Un mese dopo la Technology Exhibitions Week, il 24 giugno, si svolta ieri la terza edizione di Vision for Manufacturing, mostra convegno dedicata alla tecnologia della visione artificiale, organizzata da Fiera Milano Editore a Montichiari (BS) presso il Centro Congressi Fiera del Garda Che il tema della visione artificiale fosse particolarmente 'caldo' lo si sapeva. Ed stato ancora pi evidente alla luce dei 36 gradi e passa che lo scorso giugno hanno caratterizzato Brescia, e i suoi dintorni, tra le zone pi torride dItalia. Ma ci non ha scoraggiato le 23 aziende partecipanti al Vision for Manufacturing che hanno accolto con soddisfazione tra i loro stand circa 200 utenti di settore. Tutti i visitatori, con interesse, hanno seguito le sessioni di presentazione e approfondito poi le tematiche trattate presso il padiglione espositivo, toccando con mano quella che oggi lofferta di mercato dei sistemi di visione. Unattenzione particolare stata riservata alla sessione di apertura tenuta dal professor Remo Sala, ricercatore e docente del Politecnico di Milano Facolt di Ingegneria Industriale, dal titolo Concetti ed applicazioni dei sistemi di visione nellindustria. Levento stato organizzato da Fiera Milano Editore con il contributo delle riviste SdA-Soluzioni di Assemblaggio, Automazione Oggi e Automazione e Strumentazione. Vision for Manufacturing nasce in collaborazione con IMVG, Italian Machine Vision Group e vede il supporto di Assoautomazione - Associazione Italiana Automazione e Misura, appartenente alla Federazione ANIE (Confindustria), di AIdA-Associazione Italiana di Assemblaggio, SIRI-Associazione Italiana di Robotica e Automazione, Polo della Robotica di Genova e vede il patrocinio di EMVA - European Machine Vision Association

42

Readerser vice.it n. 761

A P P U N TA M E N T I

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

CORSI DI LABVIEW
LABVIEW BASE 1
Milano: dal 20 al 22 ottobre dal 17 al 19 novembre dal 15 al17 dicembre dal 14 al16 ottobre dal 1 al 3 dicembre dal 23 al 24 ottobre dal 18 al 19 dicembre dal 1 al 3 ottobre dal 4 al 5 dicembre dal 6 al 8 ottobre dal 1 al 3 dicembre dal 2 al 4 dicembre dal 3 al 5 novembre dal 30 al 31 ottobre dal 6 al 7 novembre dal 10 al 12 novembre dal 20 al 22 ottobre dal 3 al 5 novembre dal 11 al 12 novembre dal 17 al 19 novembre dal 27 al 29 ottobre dal 16 al 18 dicembre da l13 al 15 ottobre dal 20 al 21 novembre dal 26 al 28 novembre 17 ottobre

CORSO SPECIALISTICO: MISURE TERMODINAMICHE


Milano: Padova: 27 novembre 24 ottobre

Padova: Roma: Milano: Roma:

CORSO BASE: LA MISURA CON IL SUPPORTO DEL PERSONAL COMPUTER


Milano: dal 24 al 25 novembre Verificate il calendario aggiornato alla pagina web ni.com/italian inserendo il codice it3z

LABVIEW BASE 2

SEDI DEI CORSI


MILANO - presso gli uffici National Instruments Italy srl Via Anna Kuliscioff 22, 20152 - Tel.: 02-41309217 Fax: 02-41309215 - email: ni.italy@ni.com PADOVA - presso il Centro di Formazione Certificato NI di I.R.S. srl, Via Vigonovese 81/A, 35127 - Tel.: 049-8705156 Fax: 049-7625206 - email: osgualdo@irsweb.it ROMA - presso Pick Center Piazza Marconi 15, 00192 Tel.: 02-41309217, Fax: 02-41309215 - email: ni.italy@ni.com

LABVIEW INTERMEDIATE 1
Milano: Padova: Roma: Milano: Roma: Milano: Milano:

LABVIEW INTERMEDIATE 2 LABVIEW ADVANCED 1 LABWINDOWS CVI LABVIEW DAQ


Milano: Padova: Roma: Milano:

APPUNTAMENTI
MOSTRE CONVEGNO
C 2 CONTROL & COMMUNICATION Torino: Pescara: FOCUS EMBEDDED Genova: Roma: 11 settembre 16 settembre 27 novembre 2 dicembre

LABVIEW COMPACTRIO TESTSTAND 1


Milano:

FIERE
SPS/IPC/DRIVES Norimberga: 24-27 settembre ELECTRONICA, COMPONENTS, SYSTEMS, APPLICATIONS Monaco: 11-14 novembre VISION, FIERA INTERNAZIONALE SULLE TECNOLOGIE DI ELABORAZIONE E RICONOSCIMENTO IMMAGINI Stoccarda: 4-6 novembre

TESTSTAND 2
Milano: Milano: Milano:

LABVIEW REAL-TIME CLD (CERTIFIED LABVIEW DEVELOPER)


Verificate il calendario aggiornato alla pagina web ni.com/training/ifz

EVENTI NATIONAL INSTRUMENTS


EMBEDDED TECHNOLOGICAL FORUM - MACHINE BUILDER Torino: 28 ottobre Milano: 30 ottobre Roma: 4 novembre Firenze: 6 novembre Padova: 11 novembre Modena: 13 novembre Bari: 18 novembre Ancona: 20 novembre Napoli: 27 novembre NIDAYS Milano: febbraio 2009

NOVIT!
CORSO BASE: LA MISURA CON IL SUPPORTO DEL PERSONAL COMPUTER
Padova: Milano: Padova: dal 21 al 22 ottobre 26 novembre 23 ottobre

CORSO SPECIALISTICO: MISURE ELETTRICHE

Verificate il calendario aggiornato degli eventi National Instruments alla pagina web ni.com/italy/eventi

43

I N T E R V I S TA

07

a cura di Nadia Albarello

INTERVISTA
Abbiamo intervistato Alessandro Ferrero, Professore ordinario di Misure Elettriche presso il Dipartimento di Elettrotecnica del Politecnico di Milano e attuale presidente della Instrumentation and Measurement Society di IEEE, primo non americano ad essere stato eletto a questa carica.

Professor Ferrero, ci descriva lutilizzo di D: NI LabVIEW in ambito accademico, e nello specifico, nel suo programma didattico

R:

Gli Strumenti Virtuali sviluppati con LabVIEW sono estremamente utili nella didattica dei corsi di misure ai vari livelli di approfondimento nel corso degli studi. Nel corso di Studi in Ingegneria Elettrica, per esempio, utilizziamo strumenti sviluppati con LabVIEW in due modi differenti. Nei corsi di misure di base, in cui gli studenti devono apprendere le nozioni fondamentali e devono imparare ad usare correttamente gli strumenti, sia quelli classici, sia quelli pi moderni, usiamo LabVIEW per sviluppare alcuni Strumenti Virtuali tipicamente per eseguire misure di una certa complessit, in cui lapproccio classico richiederebbe limpiego di diversi strumenti tradizionali ed una significativa attivit di post-elaborazione delle letture che poi gli studenti impiegano durante le ore dedicate allattivit sperimentale. In tal modo assimilano una metodologia di misura quella per la quale stato sviluppato il VI e cominciano a familiarizzare con i VI. Nei corsi pi avanzati, in cui lo studente deve apprendere anche tecniche di sviluppo della strumentazione e di algoritmi di misura, LabVIEW viene utilizzato direttamente dagli studenti per sviluppare VI dedicati alla soluzione di uno specifico problema di misura posto dal docente. Come si vede, quindi, LabVIEW pu essere un utile strumento didattico nei vari passi del processo di apprendimento delle misure.

parametri pi significativi dello schema, per verificare limpatto che questi stessi hanno sulle prestazioni dellintero sistema di misura e sullincertezza di misura, che resta, in un corso di misure, uno dei punti pi importanti e pi difficili! da far digerire ad uno studente. Altro aspetto di grandissima importanza che tutto ci pu essere realizzato sia simulando i segnali in ingresso allinizio del processo di apprendimento sia, negli stadi pi avanzati, acquisendo segnali reali. E, per un ingegnere, saper dominare lattivit sperimentale , da sempre, un requisito fondamentale.

In che modo NI LabVIEW facilita o veloD: cizza lacquisizione dei concetti chiave del percorso di studi offerto?

R:

Quali sono i vantaggi tangibili dellutiD: lizzo di NI LabVIEW nel percorso di apprendimento?

R:

Direi che i vantaggi pi evidenti sono la rapidit e la chiarezza con cui gli studenti possono applicare i concetti teorici acquisiti durante le lezioni, traducendoli in uno schema a blocchi molto intuitivo. La naturale conseguenza della velocit di implementazione la possibilit di modificare con poche operazioni i

Come ho detto rispondendo alla domanda precedente, LabVIEW consente una grande flessibilit nella realizzazione di esperimenti e quindi consente allo studente di acquisire i concetti chiave sperimentandone la valenza pratica. Fin dallinizio sono stato, credo, il secondo utente europeo di LabVIEW ho trovato LabVIEW uno degli strumenti pi efficaci per tradurre in pratica i concetti esposti alla lavagna. Da anni tengo il corso di Elaborazione numerica di segnali di misura e considero LabVIEW indispensabile per far toccare con mano ai miei studenti alcuni concetti chiave del Digital Signal Processing, quali laliasing e il leakage che, altrimenti, resterebbero confinati al regno delle formule matematiche, pi o meno oscure.

Quali sono le prospettive di carriera conD: crete che si profilano dopo aver terminato il percorso? Quali le prospettive nel mercato italiano per gli esperti di LabVIEW?

44

I N T E R V I S TA

07

R:

Non facile rispondere a questa domanda, considerando il fatto che i laureati in Ingegneria sono di gran lunga i laureati pi richiesti dal mercato del lavoro. Io poi insegno in un corso di studi, quello di Ingegneria Elettrica, i cui laureati sono in assoluto i pi richiesti e introvabili. Quindi la domanda andrebbe forse posta non tanto in termini di mercato, ma in termini di quale valore aggiunto pu dare la conoscenza di LabVIEW nella professione. Penso che un ingegnere che abbia imparato ad usare LabVIEW abbia acquisito anche competenze importanti, non tanto per la conoscenza di LabVIEW in s in fondo uno dei vantaggi di LabVIEW anche la facilit con cui si riesce ad impararlo, almeno fino ad un discreto livello di approfondimento quanto per le competenze sperimentali che ha acquisito durante il corso degli studi, proprio grazie alla facilit con cui LabVIEW permette di eseguire diversi esperimenti. La capacit di pianificare e predisporre un esperimento e la capacit di interpretarne i risultati, questi s sono valori aggiunti importanti, che rendono appetibile un ingegnere!

gibile nella creazione di contatti utili con il mondo dell'industria?

R:

In un momento in cui di fondi devoluti D: alla didattica e alla ricerca sono in costante calo, crede che LabVIEW possa, per lo meno, rappresentare o un vantaggio tan-

Il vero problema del finanziamento della didattica non tanto quello di creare contatti, quanto quello di convincere il mondo dellindustria dellutilit di investire costantemente nella ricerca e di utilizzare le competenze delluniversit in modo meno sporadico e assai pi sistematico di quanto non faccia finora. Sono fermamente convinto che ogni singolo Euro investito in ricerca abbia un ritorno sicuro, purch si abbia la lungimiranza di guardare anche solo qualche centimetro al di l della punta del proprio naso. E deprimente vedere come lindustria italiana non sfrutti la ricchezza di competenze che pu trovare nelluniversit, soprattutto in un settore come quello delle misure e della strumentazione in cui la ricerca italiana allavanguardia nel mondo. Un dato sopra tutti: da diversi anni i ricercatori italiani pubblicano pi del 15% di quanto viene annualmente pubblicato nelle pi prestigiose riviste scientifiche di settore, quali ad esempio le Transactions on Instrumentation and Measurement di IEEE. Dallestero arriva un costante apprezzamento. DallItalia il nulla, o quasi. Mi spiace dirlo, ma di fronte ad un panorama cos desolante LabVIEW sempre 'most welcome', come si direbbe negli USA, bench rappresenti una piccola goccia.

SCELTI PER TE
Abbiamo scelto per te alcune risorse utili per approfondire le tua conoscenza di LabVIEW.
Forum ILVG.it www.ilvg.it LabVIEW www.ni.com/labviewzone LAVA - LabVIEW Advanced Virtual Architects http://forums.lavag.org/home.html Community DevZone www.zone.ni.com Community on ni.com http://community.ni.com/ Mindstorm NXT http://www.ni.com/academic/mindstorms/community.htm Contenuti LabVIEW on ni.com www.ni.com/labview LabVIEW on ni.com/italy www.ni.com/labview/i LabVIEW Jobs http://www.labviewjobs.com/ The VI Road Show http://viroadshow.blogspot.com/

45

L A BV I E W E L AVO R O

07

AAA
RICERCHIAMO
SISTEMISTA SOFTWARE Si ricerca per attivit su Roma n.1 Sistemista Sw con: - Conoscenza Sistemi a Microonde /Radar; - Conoscenze MATLAB, SIMULINK e LabVIEW. - Strumenti di laboratorio (oscilloscopio, analizzatore di spettro,..) Citt: Roma Informazioni aggiuntive Contratto: Full Time, Temporaneo/A contratto/A progetto Durata: 6-8 mesi con possibile estensione. Rif.#: 445 InterConsulting S.r.l www.monster.it

Conoscete bene LabVIEW? Date unocchiata alle offerte di lavoro che abbiamo selezionato da ILVG.it

Completano il profilo unelevata attitudine al lavoro di team, doti di precisione, flessibilit mentale e capacit proattiva nella gestione delle problematiche professionali. Linquadramento e la retribuzione saranno commisurati allesperienza professionale del candidato. Sede di lavoro: Milano Assystem Italia www.talentmanager.it

PROGETTISTA LABVIEW Importante gruppo internazionale francese, che opera in un ampio contesto di consulenza ingegneristica e di progettazione, nellottica del potenziamento della sede di Milano, ricerca progettista LabVIEW che si occuper delle attivit di sviluppo in Labview per i sistemi di automazione di banchi di tests e collaudo. Il candidato ideale in possesso dei seguenti requisiti: Laurea in Ingegneria Elettronica/Infor matica/Telecomunicazioni/Automazione o Diploma equivalente; Esperienza di almeno un anno maturata nella medesima mansione; Buona conoscenza dei linguaggi di programmazione LabVIEW e CompactRIO; Conoscenza del linguaggio di programmazione C; Conoscenza della strumentazione da laboratorio di elettronica; Ottima predisposizione allutilizzo dei sistemi informatici e buona conoscenza del pacchetto Office; Conoscenza della lingua inglese.

HYDRAULIC COMPONENTS EXPERT (Ref. HYD/tm) 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 the 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 & coordination; - Evaluate and release design changes, according to GM tools and procedures. The Skills - Degree in Mechanical Engineering or equivalent; - Experience on Fuel injection systems development and testing; - Knowledge on Unigraphics system or similar for fuel systems design and packaging; ASME standards;

- Good knowledge of Change Mana gement Process for product quality improvement and cost reduction; - Good knowledge of Microsoft Office, knowledge of LabVIEW, INCA, Matlab; - Fluent English, team working, good communication and leadership skills are required. Funzione professionale: Ingegneria/ Project management|Ricerca e Sviluppo Settore: Automotive Sede di lavoro: Piemonte Tipo di contratto: A tempo indeterminato Adecco Italia SpA www.talentmanager.it

ADDETTO ALLO SVILUPPO PAGINE WEB (identificativo annuncio: 90946) Numero di riferimento aziendale relativo all'annuncio1055/0801ASPW Data di scadenza dell'annuncio23/6/2008 Area aziendale: Sistemi informativi / Hardware e Software Sede relativa all'annuncio: Milano Tipo di contratto offerto: Assunzione a tempo indeterminato Retribuzione: In funzione dell'esperienza Descrizione: 2A&F Consulting ricerca per conto di un'azienda che opera nel settore delle Telecomunicazioni un Addetto allo Sviluppo pagine Web su sistema embedded per router residenziali, C, C++, HTML, WEB UI, XML, software embedded, Linux, Unix, Java, JavaSwing, TCP/IP, HTTP, Labview, TCL. Questo annuncio rivolto anche ai neolaureati. Numero di posti offerti:1. Requisiti richiesti: Titolo di Studio: Laurea in Ingegneria Informatica o delle Telecomunicazioni oppure Laurea in Informatica. Conoscenze linguistiche: Inglese buono. 2A&F Consulting S.r.l. www.assioma.org

46

L A BV I E W E L AVO R O

LABVIEW SOFTWARE ENGINEER ADOC Group cerca LabVIEW software engineer (R8-220) in Regione Piemonte Torino provincia Esperienza: Almeno 2 anni maturata nel settore Automotive o affini Titolo di studio: Laurea specialistica/magistrale o di vecchio ordinamento in Ingegneria dellAuto mazione/Informatica/Elettro nica/Meccatronica Il lavoro: Il candidato/a si occuper della realizzazione in ambiente Labview di sistemi di acquisizione, gestione di sensori, sistemi di test. Il profilo: Il candidato deve avere le seguenti caratteristiche: Conoscenza Labview 8 o superiore Conoscenza Labwindows/CVI Conoscenza piattaforma CompactRIO (cRIO) Conoscenza problematiche di gestione sensori Conoscenza delle reti di comunicazione CAN (Controller Area Network) e tools Buona conoscenza della lingua inglese Predisposizione al lavoro in team Buona capacit di comunicazione con collaboratori e clienti Disponibilit a trasferte Conoscenza lingua Inglese. Possesso patente B Le persone interessate (uomini e donne L. 903/77) sono pregate di inviare un dettagliato curriculum vitae corredato da fotografia, citando il rif. R8-220 ed evidenziando la dicitura Autorizzo ai sensi della Legge 196/2003 il trattamento dei dati da me trasmessi allindirizzo e.mail: labview@adocgroup.it. Sede di lavoro: Regione Piemonte Torino provincia Adoc Group www.annuncidilavoro.info

TEST ENGINEERS Ref. DKIT25948 Job Description: Our client is looking for a Test Engineer to be responsible for developing and implementing various methods of testing systems and equipment. Skill Required: A degree in Engineering or Computer Science (preferably M.Sc.). Experience with serial-mass production and mechanical structures. Good analytical and problem solving skills. Knowledge of test methodology, planning and execution. Production tests. Making testing equipment for production tests. Automatic reading/tests with i.e. LabVIEW. Programming in LabView and preferably also C++ and C#. To be based in Denmark Sector IT and Telecommunications. Chronos Consulting www.chronosconsulting.com

programmazione LabVIEW/CVI conoscenza della lingua inglese parlata e scritta. richiesta la disponibilit a viaggiare per brevi periodi allestero. Buone capacit di relazione, affidabilit e determinazione sono tra i requisiti richiesti che completano il profilo del candidato ideale. La societ offre un inserimento in ambiente dinamico, tecnologicamente avanzato con un trattamento economico di sicuro interesse. Sintex S.r.l. www.e-sintex.it

TEST EQUIPMENT DEVELOPMENT ENGINEER Riferimento Annuncio: A-192 2008 Sede di lavoro: Provincia di Milano Per importante societ operante a livello internazionale nel settore della progettazione e produzione di sistemi di collaudo automatico per apparati elettronici, con sede nellarea di MONZA, ricerchiamo le seguenti figure professionali: Test Equipment Development Engineer Rif. A-192 Ci rivolgiamo a giovani di et intorno ai 30 anni con laurea breve in materie elettroniche/meccatroniche e con esperienza quinquennale nello sviluppo di sistemi di collaudo automatico. Si richiede: conoscenza della strumentazione di misura di laboratorio controllata da computer conoscenza dei protocolli di comunicazione automotive

PROGETTISTA LABVIEW Importante gruppo multinazionale operante nella consulenza ingegneristica e di progettazione, nell'ottica del potenziamento del proprio organico, ricerca la figura di PROGETTISTA LABVIEW che si occuper delle attivit di sviluppo in Labview per i sistemi di automazione di banchi di testa e collaudo. La candidatura ideale: ha una Laurea in Ingengeria Elet tronica/Informatica/Telecomunicazioni /Automazione o Diploma equivalente ha una buona conoscenza dei linguaggi di programmazione Labview, C e della strumentazione da laboratorio elettronica conosce la lingua inglese Costituir titolo preferenziale breve esperienza maturata in ruolo analogo Informazioni aggiuntive Codice Riferimento: PL Persona da contattare: Elisabetta Mereghetti Adecco Italia SpA www.monster.it

47

INFORMATIVA AI SENSI DEL CODICE IN MATERIA DI PROTEZIONE DEI DATI PERSONALI Informativa art. 13, d. lgs 196/2003 I dati degli abbonati sono trattati, manualmente ed elettronicamente, da Edizioni Fiera Milano SpA titolare del trattamento Via Salvatore Rosa 14, Milano - per linvio della rivista richiesta in abbonamento, attivit amministrative ed altre operazioni a ci strumentali, e per ottemperare a norme di legge o regolamento. Inoltre, solo se stato espresso il proprio consenso allatto della sottoscrizione dellabbonamento, Edizioni Fiera Milano SpA potr utilizzare i dati per finalit di marketing, attivit promozionali, offerte commerciali, analisi statistiche e ricerche di mercato. Alle medesime condizioni, i dati potranno, altres, essere comunicati ad aziende terze (elenco disponibile a richiesta a Edizioni Fiera Milano SpA) per loro autonomi utilizzi aventi le medesime finalit. Responsabile del trattamento : Paola Chiesa. Le categorie di soggetti incaricati del trattamento dei dati per le finalit suddette sono gli addetti alla gestione amministrativa degli abbonamenti ed alle transazioni e pagamenti connessi, alla confezione e spedizione del materiale editoriale, al servizio di call center, ai servizi informativi. Ai sensi dellart. 7, d. lgs 196/2003 si possono esercitare i relativi diritti, fra cui consultare, modificare, cancellare i dati od opporsi al loro utilizzo per fini di comunicazione commerciale interattiva rivolgendosi a Edizioni Fiera Milano SpA Servizio Abbonamenti allindirizzo sopra indicato. Presso il titolare disponibile elenco completo ed aggiornato dei responsabili. Informativa resa ai sensi dellart. 2, Codice Deontologico Giornalisti Ai sensi dellart. 13, d. lgs 196/2003 e dellart. 2 del Codice Deontologico dei Giornalisti, Edizioni Fiera Milano SpA titolare del trattamento - rende noto che presso i propri locali siti in Milano, Via Salvatore Rosa 14, vengono conservati gli archivi di dati personali e di immagini fotografiche cui i giornalisti, praticanti e pubblicisti che collaborano con le testate edite dal predetto titolare attingono nello svolgimento della propria attivit giornalistica per le finalit di informazione connesse allo svolgimento della stessa. I soggetti che possono conoscere i predetti dati sono esclusivamente i predetti professionisti, nonch gli addetti preposti alla stampa ed alla realizzazione editoriale delle testate. I dati personali presenti negli articoli editoriali e tratti dai predetti archivi sono diffusi al pubblico. Ai sensi dellart. 7, d. lgs 196/2003 si possono esercitare i relativi diritti, fra cui consultare, modificare, cancellare i dati od opporsi al loro utilizzo, rivolgendosi al titolare al predetto indirizzo. Si ricorda che, ai sensi dellart. 138, d. lgs 196/2003, non esercitabile il diritto di conoscere lorigine dei dati personali ai sensi dellart. 7, comma 2, lettera a), d. lgs 196/2003, in virt delle norme sul segreto professionale, limitatamente alla fonte della notizia. Presso il titolare disponibile l'elenco completo ed aggiornato dei responsabili.

LA VOCE DEGLI UTENTI

LabVIEW World - La prima rivista italiana per la comunit di LabVIEW Sede legale - Via Salvatore Rosa 14, 20156 Milano, tel +39 02 366092.1 fax +39 02 366092.280 www.edizionifieramilano.it Sede Operativa - Viale Espinasse 141, 20156 Milano tel. +39 02 366092.1 fax +39 02 366092.525 Direzione Sergio Maggioni Presidente Costante Casali Amministratore Delegato Alberto Taddei Publisher Nadia Albarello, Matteo Bambini, Matteo Foini, Alessandro Ricco, Alberto Taddei Direttore Responsabile - alberto.taddei@fieramilanoeditore.it Valerio Alessandroni Direttore Tecnico valerio.alessandroni@tiscali.it Alessandra Pelliconi Segreteria- tel: 02 366092.527 alessandra.pelliconi@fieramilanoeditore.it Collaboratori: Nicola Bavarone, Michele Corr, Massimo Lorenzi, Marco Luciani, Enzo Nava, Alessandro Ricco, Emanuele Stucchi, Franco Trespidi, Halvor Snellingen Grafica e produzione Bimage.it Progetto grafico e Impaginazione Franco Tedeschi Coordinamento grafici - franco.tedeschi@fieramilanoeditore.it Alberto Decari Coordinamento DTP - alberto.decari@fieramilanoeditore.it Grafiche Sima Ciserano - BG - Stampa Giuseppe De Gasperis Sales Manager giuseppe.degasperis@fieramilanoeditore.it - tel. 02366092 523 - fax: 02 366092 524 Agenti Italia: PIEMONTE, LIGURIA, VALLE D'AOSTA R. Romeo/Publikappa tel: 011-723406 fax: 011-723.406 cell 335-5304196 VENETO, TRENTINO ALTO ADIGE, FRIULI VENEZIA GIULIA Idelfonso Elburgo tel: 049-8642.988 fax: 049-8642989 cell 328-8855203 International Sales U.K.-SCANDINAVIA - OLANDA - BELGIO The Huson European Media Gerry Rhoades-Brown tel: +44-1932-564999 fax: +44-1932-564998 SWITZERLAND: Iff media ag Carla Widmer tel: +41-52-6330888 fax: +41-52-6330899 GERMANIA e AUSTRIA: Mediaagentur Adela Ploner tel: +49-8131-3669920 fax: +49-8131-3669929 USA: Huson European Media Usa Ralph S. Lockwood tel: +1-408-8796666 fax: +1-408-8796669 TAIWAN: Worldwide Services Stuart Phillips-Laurie tel: +886-4-2325-1784 fax: +886-4-2325-2967 Abbonamenti N. di conto corrente postale per sottoscrizione abbonamenti: 48199749 intestato a:Edizioni Fiera Milano SpA, Via Salvatore Rosa 14, 20156 Milano. Si accettano pagamenti anche con le principali carte di credito. Per gli utenti Developer Suite e standard Service Program di National Instruments gi incluso labbonamento alla rivista Abbonamento annuale (4 numeri): E 20,00 Abbonamento per l'estero (4 numeri) E 40,00 Prezzo della rivista: E 5,00 - Arretrati: E 10,00 Testata associata Associazione Nazionale Editoria Periodica Specializzata Edizioni Fiera Milano iscritta al Registro Operatori della Comunicazione n 11125 del 25/07/2003. Autorizzazione alla pubblicazione del tribunale di Milano n 754 del 11/12/2006. Tutti i diritti di riproduzione degli articoli pubblicati sono riservati. Manoscritti, disegni e fotografie non si restituiscono. LabVIEW World ha frequenza trimestrale, per un totale di 4 numeri all'anno. Tiratura del presente numero: 3.000 copie.

Comitato di redazione Redazione

Pubblicit

48