GOES INDUSTRIAL CREAZIONE E DISTRIBUZIONE
Transcript
GOES INDUSTRIAL CREAZIONE E DISTRIBUZIONE
07 SETTEMBRE 2008 E 5,00 In caso di mancata consegna restituire all’editore che si impegna a pagare la relativa tassa presso il CMP di Roserio - Milano 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 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. N 1 SOMMARIO 07 OGGETTI IN LABVIEW 32 RICHIAMARE (II PARTE) LabVIEW permette di accedere ad altre applicazioni Windows utilizzando le tecnologie .NET o ActiveX A ESPRIMERSI RIVOLTO 01 UNALLAINVITO COMUNITÀ LABVIEW WORLD Raccontateci le vostre applicazioni… 03 LABVIEW GOES INDUSTRIAL Parla John Hanks, Vice President Product Marketing per l'acquisizione dati ed il controllo industriale AI VI BLAS 06 INTRODUZIONE IN LABVIEW 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 TUTTO GAS CON L'AUTOMOTIVE 35 AFORUM 2008 Si è svolto a Torino l'evento biennale dedicato al mercato automotive 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 38 DALLA CARTA AL WEB Link ad ar ticoli di approfondimento e altri documenti disponibili sul web 10 LA CHANNEL API NI-CAN 40 LA VOCE DEGLI UTENTI PER L'ELABORAZIONE DI 18 LABVIEW SEGNALI ECG SUCCESSO PER BIAS 42 GRANDE E VISION FOR MANUFACTURING Spieghiamo i fondamenti della Channel API per il driver NI-CAN LabVIEW offre un ambiente solido ed efficiente per l'elaborazione dei segnali ECG DI TELERIABILITAZIONE 24 SISTEMA NU!REHA La riabilitazione a distanza alla por tata di personale non esper to IMPIANTO DI 27 IMOSE: MOVIMENTAZIONE DI SEMILAVORATI Un modello hardware di una cella manifatturiera economicamente vantaggioso E DISTRIBUZIONE 30 CREAZIONE DELLE APPLICAZIONI Creazione di un'applicazione stand-alone e di un installer Ecco alcuni spunti di discussione apparsi di recente sul Forum di ILVG.it L'impor tanza di un contatto diretto con i fornitori non mostra segni di cedimento 43 APPUNTAMENTI Oltre ad organizzare propri corsi e seminari, National Instruments sarà presente a numerosi eventi 44 INTERVISTA Il professor Alessandro Ferrero insegna Misure Elettriche presso il Politecnico di Milano 46 LABVIEW E LAVORO Proposte concrete per coloro che sanno utilizzare LabVIEW AAA SEI UN FAN DI LABVIEW? 2 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. Perché National Instruments ha deciso di Dle mosse : entrare nel mondo industriale e quali sono dell'azienda verso questo obiettivo? 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- R: 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. Quali sono le caratteristiche principali di DNational : LabVIEW 8.6 e degli altri nuovi prodotti Instruments che li rendono più industriali? 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. R: 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 un’offer ta customizzata per le applicazioni industriali, sviluppate intorno alle capacità offer te dagli FPGA" 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 R: 3 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 Dle, inclusi : un'offerta completa per lo spazio industriaLabVIEW 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 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 Dsettore : partnership per entrare più facilmente nel industriale? 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 R: 4 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. R: A TU PER TU National Instruments ha qualche programDcrescita : ma educativo particolare per promuovere la dei futuri ingegneri di automazione? 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 R: 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. Instruments sta ponendo una granDossia: National de enfasi sul concetto di Green Engineering, 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? 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. R: Readerser vice.it n. 701 5 W H AT ’ S N E W 07 a cura di Matteo Foini INTRODUZIONE AI VI BLAS IN LABVIEW Questo ar ticolo discute i benefici che si ottengono utilizzando i VI BLAS in LabVIEW VI BLAS sono una nuova funzionalità di LabVIEW. L’articolo spiega come utilizzare la vostra libreria BLAS personale al posto dei VI installati da LabVIEW. I 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) + ❋ C dove e ‚ sono scalari, A, B e C sono matrici, e op (A) è A o AT. Rispetto alle funzioni BLAS standard, i VI BLAS in LabVIEW offrono i seguenti vantaggi: 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). • API semplificata e concisa per esigenze ingegneristiche • Controllo della memoria prima dell’esecuzione dei calcoli per evitare violazioni dello spazio di memoria CHE COSA SONO I VI BLAS DI NI? SCEGLIERE FRA I VI BLAS E I VI DI ALGEBRA LINEARE I VI BLAS sono una nuova funzionalità delle versioni Full e Professional di LabVIEW. Tali VI offrono un’alternativa agli algoritmi di algebra lineare esistenti in 6 LabVIEW, mettendo a disposizione un’interfaccia che espone funzionalità di più basso livello e algoritmi ottimizzati. Poiché i VI BLAS offrono opzioni flessibili ed elevate prestazioni, potete utilizzarli come blocchi primari in algoritmi di algebra lineare complessi e avan- 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 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 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, l’uso dei VI BLAS può comportare anche degli svantaggi. Per esempio, l’uso 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 d’intestazione 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 l’esempio da: ni.com/italian - infocode: it59xt 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 d’onda 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 d’onda 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 d’onda GPS da disco rigido. Utilizzando dischi RAID da 2 TB, è possibile generare fino a 12,5 minuti di forme d’onda 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 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 7 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, un’estensione 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. N 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- 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. 8 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. 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. 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 a cura di Matteo Foini LA CHANNEL API NI-CAN 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, l’industria 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 nell’aggiunta 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), un’utility 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. N IMPORTARE CANALI DA UN FILE DI DATABASE Figura 2 - Canali CAN in Measurement & Automation Explorer 10 Spesso è conveniente importare canali CAN da file di database. Per importare canali CAN da un file di database vettoriale (.dbc), espandete l’albero 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 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 l’albero 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 all’interno 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 CAN INIT START 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 all’interno 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. FUNZIONI DELLA CHANNEL API Un programma base NI-CAN comprende una fase di inizia- 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 d’ingresso (figura 3): Figura 3 - CAN Init Star t.vi channel list - Specifica l’elenco dei canali per il task interface - Specifica l’interfaccia 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): 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 nell’elenco Init Start. Questo modo di lettura è utile soprattutto quando desiderate accedere velocemente al Messaggio CAN più recente. 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 dall’inizio dell’applicazione, viene restituito il Default Value in MAX (def), insieme a un messaggio di avvertimento. 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 un’ulteriore 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 nell’elenco 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 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 nell’elenco 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 nell’array 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 d’ingresso 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 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 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): TIPS & TECHNIQUES dei messaggi come specificato dalla frequenza di campionamento. Figura 8 - CAN Write.vi 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. 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. Figura 9 - Esempio di Write con frequenza di campionamento = 0 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. 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 dell’array per formare i byte di dati del messaggio. In altri termini, i campioni vengono trasmessi periodicamente dall’array 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 11 - Esempio di Write con frequenza di campionamento > 0 e Output Recent Mode 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. 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 un’applicazione che verrà utilizzata da un’altra persona, potreste non volere specificare una lista di canali fissa nella vostra applicazione. Idealmente, vorrete che il vostro utente finale selezioni i canali d’interesse da controlli dell’interfaccia 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 dell’interfaccia 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, l’unità funzionale è l’interfaccia (porta). Per le schede DAQ, l’unità 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 un’altra per evitare latenze legate alla fase di start stessa. 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 l’interfaccia 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 l’esecuzione 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 l’evoluzione 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 l’unità 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 14 test e misura in grado di offrire capacità uniche di sincronizzazione dei messaggi CAN di più interfacce di bus con l’acquisizione 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 l’acquisizione dati. Potete progettare un programma che utilizza un loop per “sincronizzare via software” una varietà di prodotti hardware, perché il CAN e l’hardware DAQ contengono entrambi un timestamp di quando si è verificato un particolare evento. Tuttavia, senza sincronizzazione dell’hardware, 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 un’instabilità 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. 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 dell’acquisizione DAQ e lo start dell’acquisizione 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 d’interfaccia CAN. Uno o più moduli nel sistema 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 d’onda degli ingressi sincronizzati da due canali CAN e due canali d’ingresso analogici (AI). I canali CAN ed AI vengono campionati alla velocità di campionamento specificata. In questo sistema di test EPAS, l’ECU acquisisce segnali tipo coppia, tensioni PWM e velocità del veicolo, li inserisce in un algoritmo di controllo e regola l’uscita 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). L’EPAS (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 l’uscita in tensione del motore proveniente dalla ECU. l’algoritmo di controllo EPAS, si possono registrare simultaneamente i messaggi CAN e DAQ, analizzarli e determinare se viene prodotta l’uscita 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 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. L’azionamento del motore applica una forza di sterzatura che si aggiunge all’input del guidatore. L’ECU 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. Il modello base di programmazione della sincronizzazione CAN/DAQ dell’NI-CAN 2.x è molto simile all’API 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. L’area di dialogo elencherà tutti i messaggi disponibili. Cliccando su un messaggio, avrete l’opzione di scegliere specifici canali all’interno del messaggio. Potete selezionare i canali che desiderate importare. CONFIGURAZIONE DEL TIMING DI SISTEMA L’esempio descritto in questo articolo mostra i grafici delle Configurazione esplicita dei canali 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 un’area 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 dall’Example Finder (Help>>Examples>>Hardware Input and Output>> CAN>>Channel API>>Synchronization>> Basic>> DAQmx>>CAN Waveform Input and DAQmx Waveform Input.vi). 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: Figura 17 - Le interfacce CAN e DAQ vengono inizializzate e la linea PXI Trigger viene configurata per i segnali di timing e triggering. 16 • NI-DAQmx Create (AI Voltage Basic) – Inizializza e configura i canali DAQmx • NI-DAQmx Timing (Sample Clock) – 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 l’instradamento 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 l’impulso 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 l’impostazione 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à d’ingresso o d’uscita dei messaggi CAN, i messaggi CAN vengono copiati (ricampionati) fino all’arrivo di un nuovo messaggio. 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 d‘ingresso 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 dall’hardware 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 nell’istante di start dell’ingresni 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 un’acquisizione dati bufferizzata. • Build Array - concatena più array. • Align Waveform Timestamps - sostituisce tutti i valori del timestamp (t0) con il valore dell’indice dell’elemento dell’array. • Unbundle - controlla lo stato dell’errore. • NI-CAN Clear with NI-DAQ - cancella i task CAN e DAQ. RISULTATI Ciò che si ottiene è un grafico di forma d’onda facilmente confrontabile con le misure analogiche. Se i campioni DAQ e CAN sono sincronizzati, è possibile visualizzare le forme d’onda 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, l’ECU invia un nuovo valore RPM sul bus CAN quando viene raggiunta una certa coppia di sterzatura. La coppia di sterzatura è letta come ingresso analogico dall’hardware 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 Note sull’autore 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 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 d’onda usando la modalità di lettura continua. 17 TIPS & TECHNIQUES 07 S am Shearman LABVIEW PER L'ELABORAZIONE DI SEGNALI ECG 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- L 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 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 18 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. 2 - Tipico schema di flusso di elaborazione dei segnali ECG 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 l’estrazione 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. Fig. 6 - Rimozione dei rumori a banda larga da un segnale ECG mediante UWT 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 un’evidenza 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. 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 20 Fig. 8 - Analisi ECG multirisoluzione ed implementazione del rilevamento QRS 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 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) sull’intervallo R-R per valutare lo stato del cuore e del sistema nervoso. 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. 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. 10 - Posizioni delle sonde per un sistema di acquisizione ECG materno a 8 canali (comprendente 5 sonde addominali e 3 sonde toraciche) Fig. 11 - Metodo ICA per l'estrazione della frequenza cardiaca fetale 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 Fig. 13 - Struttura adattiva di rimozione del rumore 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. 14 - Metodo di filtragguo adattivo per l'estrazione del FHR Fig. 15 - Estrazione del FHR usando un filtro adattivo 22 Note sull’autore Sam Shearman, Senior Product Manager, Signal Processing & Analysis presso National Instruments Corporation Readerser vice.it n. 713 Readerser vice.it n. XXX 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). D A L L A T E O R I A A L L A P R AT I C A 07 SISTEMA DI Ricc ardo Magni, Fabio Magnino TELERIABILITAZIONE NU!REHA 24 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 dell’ultimo 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 L coniugano con la necessità di prolungare l'attività riabilitativa in fase cronica ove un ‘degrado’ dell’abilità è 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 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 un’interfaccia 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 l’analisi 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 CONFIGURAZIONE Per la configurazione dell’unità remota è stata realizzata, sempre in LabVIEW, un’applicazione che permette al terapi- 26 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 all’unità remota tramite in server di comunicazione. L’applicazione di configurazione consente anche la visualizzazione ed analisi dei dati registrati durante l’esecuzione degli esercizi e trasferiti dall’unità 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 Note sugli autori Riccardo Magni, responsabile sviluppo hardware presso Pragma Engineering Fabio Magnino, responsabile degli sviluppi software di controllo automatico presso Pragma Engineering 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 un’applicazione 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..). L’interfaccia utente consente l’utilizzo del sistema tramite un tastierino a quattro tasti colorati e può essere configurata nella lingua dell’utilizzatore ed arricchita con tutorial video sull’esecuzione 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). D A L L A T E O R I A A L L A P R AT I C A 07 IMOSE: IMPIANTO DI G.Conte, D.Sc aradozzi, M.Rosettani, G.Vitaioli MOVIMENTAZIONE DI SEMILAVORATI Il modello di un’isola di spostamento semilavorati completamente automatizzata permette di esplorare le problematiche inerenti la coordinazione e la comunicazione degli agenti, la sensoristica e l’attuazione, e la sicurezza dell’impianto ell’ambito dell’automazione industriale esistono molti strumenti teorici utili all’analisi ed alla sintesi per la progettazione e la modifica di impianti. Per validare il progetto di un nuovo reparto si seguono usualmente due strade: l’inserimento diretto del prototipo nell’impianto, con necessaria interruzione del funzionamento, oppure la N costruzione di modelli software di simulazione dell’intero sistema finale, con risparmio economico ma senza la garanzia di sufficiente affidabilità e complessità. Il Progetto IMOSE (Impianto di MOvimentazione SEmilavorati), sviluppato all’interno del corso di Laurea Specialistica di 'Laboratorio di Meccatronica' all’Università 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 un’isola di spostamento semilavorati, modellati con blocchetti lego di colore rosso (fig. 1). Il semilavorato deve essere trasportato da un’area di lavoro (Area1) a un’altra (Area2) mediante braccio robotico antropomorfo supervisionato da una postazione computerizzata remota. Il software di supervisione dell’impianto, realizzato in LabVIEW, ha il compito di gestire il flusso delle operazioni e di coordinare il movimento di tutte le macchine presenti nell’isola 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 l’immagine al fine di riconoscere l’esatta posizione dell’oggetto 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 nell’area d’ingresso e ne comunica la posizione al supervisore. • Il supervisore passa tale informazione al manipolatore che preleva il pezzo dall’Area1 e lo posiziona nell’Area2 avvisando il supervisore dell’avvenuto 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 dell’area di arrivo. • La telecamera verifica la presenza del semilavorato nella posizione corretta all’interno dell’Area2 e ne informa il supervisore. Se il pezzo si trova effettivamente nell’area finale ed è nella posizione giusta, il ciclo termina con esito positivo. • Se l’esito è 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 d’informazioni 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 l’impianto 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 Figura 1 28 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. L’End-Effector impiega un micromotore LEGO per trasmettere il moto alla pinza, un sensore di contatto (LEGO 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 dell’End-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 l’area di lavoro nelle immagini catturate dalla telecamera e di rilevare con buona precisione la posizione degli oggetti all’interno 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 l’avvicinamento di corpi estranei (esseri umani) al manipolatore e, in generale, all’area 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. L’utilizzo 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 l’implementazione del software necessario alla coordinazione ed alla comunicazione (supervisore), all’elaborazione delle immagini (webcam) ed al controllo dei robot (manipolatore, supporto webcam). CONCLUSIONI Il modello di un’isola 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 Readerser vice.it n. 715 Figura 3 29 SCUOLA DI LABVIEW 07 Training per principianti a cura di Matteo Foini CREAZIONE E DISTRIBUZIONE DELLE APPLICAZIONI Questa lezione descrive il processo di creazione di un’applicazione 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. C 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 Edit»VIRevision 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 dell’editor di LabVIEW migliora perché i VI sono più facili da maneggiare. L’uso 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 File»VI 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 View»VI 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 30 Figura 1 - Finestra VI Hierarchy un’area vuota della finestra e selezionate Show All Vis dal menu rapido per mostrare l’intera 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 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 Edit»Find. 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 l’aiuto online. • Usate la funzione OpenURL in Default Browser VI per visualizzare un Url o un file HTML nel navigatore internet di default. PREPARAZIONE DELL’APPLICAZIONE REALIZZAZIONE DELL’APPLICAZIONE E DELL’INSTALLER Per creare applicazioni stand-alone e installer usate le specifiche costruttive di LabVIEW. Applicazioni stand-alone—Usate 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 l’Application 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 l’applicazione 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 dell’applicazione 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 sull’autore 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 Un’applicazione stand-alone consente all’utente di avviare i vostri VI senza installare il sistema di sviluppo di LabVIEW. Gli installer sono utilizzati per distribuire l’applicazione 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 un’applicazione 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 l’applicazione. Nomi dei percorsi Un altro problema è quello dei nomi dei percorsi che usate nel VI. Assumete di leggere i dati da un file durante l’applicazione e che il percorso al file sia hard-coded nello schema a blocchi. Una volta che un’applicazione è 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 l’applicazione che avete appena costruito è che il VI di livello superiore non esce da LabVIEW o chiude il pannello frontale quando termina l’esecuzione. 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 all’utente. 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 l’uso del VI o dell’oggetto. 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, 31 SCUOLA DI LABVIEW 07 Training per esperti a cura di Matteo Foini RICHIAMARE OGGETTI IN LABVIEW (II parte) LabVIEW permette di accedere ad altre applicazioni Windows utilizzando le tecnologie .NET o ActiveX: prosegue la discussione dell'argomento iniziata nello scorso numero C 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 32 mettono a disposizione la stessa funzionalità del sistema Win32/COM. Nel framework .NET potete utilizzare classi create in un linguaggio .NET anche all’interno di un altro linguaggio .NET. • Assemby—Un'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 l’override 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 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 l’Invoke 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. 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 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 File»VI 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 File»VI Properties e selezionate Execution dal menu a tendina per visualizzare la pagina Execution Properties. Selezionate quindi same as caller dall'elenco Preferred Execution System. 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 Create»Property Node o Create»Invoke 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 Create»Property o Create»Invoke 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. 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 Specificate—LabVIEW 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 relativo—LabVIEW 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. 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. 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 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 l’evento 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 dell’event 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 REPORT 07 A TUTTO GAS CON L’AUTOMOTIVE FORUM 08 È sceso in pista a Torino l’appuntamento 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 all’evento, una location d’eccezione, il Centro Ricerche Fiat di Orbassano, a Torino. Durante la giornata il tema dominante è stato il mutamento del cosiddetto ciclo dell’innovazione e la necessità di maggior connessione e integrazione tra fornitori, integratori e costruttori per C to delle risorse petrolifere la preoccupazione maggiore dell’utente 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 l’Ing. 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 dell’ambiente 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 dell’utente finale. Questo il panorama italiano dell’automobile delineato dall’Ing. Nevio Di Giusto, Amministratore Delegato e Direttore Generale di Centro Ricerche Fiat ed Elasis, un mercato in cui la vita media di un’innovazione dura oggi un anno e mezzo. Si pensi che in un passato non molto lontano, un’idea 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 dell’automobilista”, ammette Di Giusto. Tuttavia, è sicuramente l’incombente minaccia dell’esaurimen- 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 dall’altro 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 dell’evento: il premio è stato assegnato ad Alessandro De Grassi, Francesco Siano e Carmine Ungaro del Gruppo Loccioni, con l’articolo 'Mexus: Progettazione embedded di un innovativo sensore di misura per sistemi di test in ambienti automotive'. Readerser vice.it n. 740 a cura di Nadia Albarello DI NATIONAL INSTRUMENTS 35 EVENTI 07 LABVIEW COMMUNITY? a cura di Nadia Albarello SÌ, GRAZIE! 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 l’utilità 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. C 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 l’organizzazione 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. 36 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 dell’evoluzione 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 all’avanguardia, 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 dell’elite 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à all’interno 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 EVENTI Blogosfera. Non perdete l’occasione 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. Note sull’autore Nadia Albarello, laureata in Lingue Moderne e Comunicazione alla Karl Franzens Universität di Graz, Austria, lavora in qualità d Marketing Communications Manager presso National Instruments Italy. readerser vice.it n. 759 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 AUTOMATED TEST SUMMIT 2008 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 dell’evento (aziende leader mondiali di sistemi di test e misura del calibro di Intel, Microsoft, Tektronix, Averna e Cal-Bay ) L 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 dell’evento, proponendo una piattaforma più ancora più potente e performante e contenuti ancora più innovativi. Vi aspettiamo alla prossima edizione. readerser vice.it n. 760 Il convegno sul test automatizzato si è riproposto nella sua 5° edizione lo scorso 5 giugno nella sua versione online 37 D A L L A C A RTA A L W E B 07 HTTP://WWW Quando le nostre pagine non bastano, l’enorme 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. Connessione di LabVIEW con INRIA Scilab 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 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 38 infocode: itimkb 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 L’allegato “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 42 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) l’edizione 2008 della Technology Exhibitions Week, il grande appuntamento internazionale con la tecnologia e l’innovazione per l’industria. 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 dall’estero che hanno superato quota 18.000, dando un segnale di forte caratterizzazione internazionale dell’evento. La Technology Exhibitions Week è composta dalle mostre professionali BIAS (Biennale internazionale dell’automazione, strumentazione, microelettronica e ICT per l’industria), 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 all’industria 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. Un’intensa 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. D “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 l’Expo, 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 d’Italia. 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 è l’offerta di mercato dei sistemi di visione. Un’attenzione 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 nell’industria”. L’evento è 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 Readerser vice.it n. 761 Valerio Alesandroni BIAS E VISION FOR MANUFACTURING: DUE EVENTI DI GRANDE SUCCESSO 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 CORSO SPECIALISTICO: MISURE TERMODINAMICHE LABVIEW BASE 1 Milano: Padova: Milano: Padova: Roma: dal 20 al 22 ottobre dal 17 al 19 novembre dal 15 al17 dicembre dal 14 al16 ottobre dal 1 al 3 dicembre LABVIEW BASE 2 Milano: dal 23 al 24 ottobre dal 18 al 19 dicembre dal 1 al 3 ottobre dal 4 al 5 dicembre Roma: LABVIEW INTERMEDIATE 1 Milano: dal 6 al 8 ottobre dal 1 al 3 dicembre dal 2 al 4 dicembre dal 3 al 5 novembre Padova: Roma: LABVIEW INTERMEDIATE 2 Milano: Roma: dal 30 al 31 ottobre dal 6 al 7 novembre LABVIEW ADVANCED 1 Milano: dal 10 al 12 novembre 27 novembre 24 ottobre 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 SEDI DEI CORSI MILANO - presso gli uffici National Instruments Italy srl Via Anna Kuliscioff 22, 20152 - Tel.: 02-41309217 Fax: 02-41309215 - email: [email protected] 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: [email protected] ROMA - presso Pick Center Piazza Marconi 15, 00192 Tel.: 02-41309217, Fax: 02-41309215 - email: [email protected] APPUNTAMENTI MOSTRE CONVEGNO LABWINDOWS CVI LABVIEW DAQ C 2 CONTROL & COMMUNICATION Torino: Pescara: 11 settembre 16 settembre Milano: Padova: Roma: FOCUS EMBEDDED Genova: Roma: 27 novembre 2 dicembre Milano: dal 20 al 22 ottobre dal 3 al 5 novembre dal 11 al 12 novembre dal 17 al 19 novembre LABVIEW COMPACTRIO FIERE Milano: SPS/IPC/DRIVES Norimberga: dal 27 al 29 ottobre dal 16 al 18 dicembre TESTSTAND 1 Milano: da l13 al 15 ottobre TESTSTAND 2 Milano: dal 20 al 21 novembre LABVIEW REAL-TIME Milano: dal 26 al 28 novembre CLD (CERTIFIED LABVIEW DEVELOPER) Milano: 17 ottobre Verificate il calendario aggiornato alla pagina web ni.com/training/ifz NOVITÀ! CORSO BASE: LA MISURA CON IL SUPPORTO DEL PERSONAL COMPUTER Padova: dal 21 al 22 ottobre CORSO SPECIALISTICO: MISURE ELETTRICHE Milano: Padova: 26 novembre 23 ottobre 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 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 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 a cura di Nadia Albarello 07 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 l’utilizzo 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 l’approccio classico richiederebbe l’impiego di diversi strumenti tradizionali ed una significativa attività di post-elaborazione delle letture – che poi gli studenti impiegano durante le ore dedicate all’attività 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. Quali sono i vantaggi tangibili dell’utiD: 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 44 parametri più significativi dello schema, per verificare l’impatto che questi stessi hanno sulle prestazioni dell’intero sistema di misura e sull’incertezza 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 – all’inizio del processo di apprendimento – sia, negli stadi più avanzati, acquisendo segnali reali. E, per un ingegnere, saper dominare l’attività sperimentale è, da sempre, un requisito fondamentale. In che modo NI LabVIEW facilita o veloD: cizza l’acquisizione dei concetti chiave del percorso di studi offerto? R: 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 dall’inizio – 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 l’aliasing 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? 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! 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- gibile nella creazione di contatti utili con il mondo dell'industria? R: Il vero problema del finanziamento della didattica non è tanto quello di creare contatti, quanto quello di convincere il mondo dell’industria dell’utilità di investire costantemente nella ricerca e di utilizzare le competenze dell’università 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 l’industria italiana non sfrutti la ricchezza di competenze che può trovare nell’università, soprattutto in un settore come quello delle misure e della strumentazione in cui la ricerca italiana è all’avanguardia 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. Dall’estero arriva un costante apprezzamento. Dall’Italia 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 PROGETTISTA LABVIEW Importante gruppo internazionale francese, che opera in un ampio contesto di consulenza ingegneristica e di progettazione, nell’ottica 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 all’utilizzo dei sistemi informatici e buona conoscenza del pacchetto Office; • Conoscenza della lingua inglese. 46 Conoscete bene LabVIEW? Date un’occhiata alle offerte di lavoro che abbiamo selezionato da ILVG.it… Completano il profilo un’elevata attitudine al lavoro di team, doti di precisione, flessibilità mentale e capacità proattiva nella gestione delle problematiche professionali. L’inquadramento e la retribuzione saranno commisurati all’esperienza professionale del candidato. Sede di lavoro: Milano Assystem Italia www.talentmanager.it 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 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 dell’Auto 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” all’indirizzo e.mail: [email protected]. 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 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 nell’area 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 • programmazione LabVIEW/CVI • conoscenza della lingua inglese parlata e scritta. È richiesta la disponibilità a viaggiare per brevi periodi all’estero. 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 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 LA VOCE DEGLI UTENTI LabVIEW World - La prima rivista italiana per la comunità di LabVIEW 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 l’invio 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 all’atto della sottoscrizione dell’abbonamento, 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 dell’art. 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 – all’indirizzo sopra indicato. Presso il titolare è disponibile elenco completo ed aggiornato dei responsabili. Informativa resa ai sensi dell’art. 2, Codice Deontologico Giornalisti Ai sensi dell’art. 13, d. lgs 196/2003 e dell’art. 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 dell’art. 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 dell’art. 138, d. lgs 196/2003, non è esercitabile il diritto di conoscere l’origine dei dati personali ai sensi dell’art. 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. 48 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 Comitato di redazione Nadia Albarello, Matteo Bambini, Matteo Foini, Alessandro Ricco, Redazione Alberto Taddei Direttore Responsabile - [email protected] Valerio Alessandroni Direttore Tecnico • [email protected] Alessandra Pelliconi Segreteria- tel: 02 366092.527 [email protected] 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 - [email protected] Alberto Decari Coordinamento DTP - [email protected] Grafiche Sima Ciserano - BG - Stampa Pubblicità Giuseppe De Gasperis Sales Manager [email protected] - 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 l’abbonamento 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.
Documenti analoghi
13 - LabView World
on Windows 7, l’ultima versione del sistema operativo Windows, gli utenti LabVIEW possono
accedere a nuove tecnologie. Invece di aggiungere funzionalità significativamente nuove o differenti, Micro...
robotica l`interfaccia utente
lo sviluppo di ‘frame grabFig. 2 - Austin, NI Week 1996. Philippe Sauvant-Magnet
ber’ sia analogici che digi(Graftek France), Jeff Kodosky e Ignazio Piacentini il
giorno della cessione ufficiale de...