Sei sulla pagina 1di 47

ISSN 1972-3008

06
E 5,00 L A P R I M A R I V I S TA I TA L I A N A P E R L A CO M U N I T L A B V I E W

MAGGIO

2008

NATIONAL INSTRUMENTS E IL GREEN ENGINEERING LABVIEW REAL-TIME:

BILANCIARE IL LAVORO FRA LE CPU RICHIAMARE OGGETTI IN LABVIEW

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

SCENARIO
06

UN GIORNO A NIDAYS 08
oma, 27 Febbraio 2008. Presso lErgife Hotel si svolta la 15a edizione di NIDays, il Forum Tecnologico sulla Strumentazione Virtuale organizzato da National Instruments. I numeri di questanno (riassunti da Augusto Mandelli, Area Sales Manager di NI Italy in fase di apertura dei lavori) danno unidea delle dimensioni raggiunte dallevento: 1000 m2 di area espositiva, 31 espositori, 16 sessioni tecniche e 110 Customer Solution. Partner dellevento, Fiera Milano Editore. Tra le novit di questanno, oltre alle sessioni tecniche, due nuove aree pratiche: la LabVIEW Zone, che ha consentito di utilizzare direttamente LabVIEW 8.5 e tutte le novit della nuova release in abbinamento al sistema di acquisizione dati USB CompactDAQ, e larea Prove Pratiche di Automazione, dove stato possibile toccare con mano le potenzialit del Programmable Automation Controller (PAC) CompactRIO. Nel corso dellevento sono stati presentati anche alcuni nuovi prodotti di National Instruments, come la nuova Power SMU (Source Measure Unit) PXI-4130 ed un Industrial Controller per applicazioni rugged. La sessione plenaria stata aperta dalla keynote di Tim Dehne, Senior Vice President R&D presso National Instruments, che ha parlato di Migrazione parallela: alla scoperta delle potenzialit delle tecnologie multicore e concorrenti con interventi di Matteo Bambini, Marketing Manager NI Italy and Spain e di vari specialisti di prodotto della filiale italiana. Dopo avere fornito una panoramica sullo stato dellarte e sulle pi recenti evoluzioni del Graphical System Design, Dehne ha offerto unampia visione delle tecnologie concorrenti, partendo dal superamento della legge di Moore, attraverso i processori multicore fino ad arrivare alle piattaforme risultanti dallintegrazione di queste tecnologie. Messaggio chiave del suo intervento: la combinazione delle nuove tecnologie concorrenti e la progettazione grafica di sistemi consente di realizzare sistemi di test ad elevate prestazioni in grado di soddisfare le crescenti richieste di prodotti di alta qualit. Il futuro dipende dalla possibilit di trarre vantaggio dai benefici del parallelismo, ha sottolineato Dehne. Un tema chiave dellintervento di Dehne stato quello del risparmio energetico. Il mondo sempre pi sensibile alla questione energetica e i nuovi progetti, in ogni campo, vedono nel risparmio energetico un priorit fondamentale, ha affermato Dehne. National Instruments offre ai progettisti gli strumenti per realizzare prodotti pi efficienti dal punto di vista energetico, applicando i criteri di quella che abbiamo definito green engineering. Di questo argomento parliamo diffusamente nella sezione A tu per tu. seguita linteressante presentazione di Alessandro Masi del Cern di Ginevra, che ha illustrato il sistema di controllo in tempo reale deL collimatore Large Hadron Collider (LHC), il nuovo acceleratore di particelle gestito mediante la strumentazione modulare PXI di National Instruments. La mattinata si conclusa con la tradizionale assegnazione del Premio Nicola Chiari per la Migliore Applicazione di Misura e Automazione 2008, consegnato da Nadia Albarello, Marketing Communications Manager di NI Italy e rispettivamente da Eric Starkloff, Francis Griffiths e Tim Dehne per NI Corporation. Primo classificato Roberto Fedrizzi del Dipartimento di Ingegneria dellUniversit di Trento, con larticolo Il campo eolico sperimentale di Trento - Sistema di acquisizione dati da sensori distribuiti su turbine eoliche. Al secondo posto A. Damiani di Bimal Automazioni con Sviluppo di un sistema di test per le pompe motorizzate ed i serbatoi dellAirbus A380 Ebh. Il terzo premio andato ad A. Lugli di Sitem e P. Bruzzone, G. Cresta, M. Manarini, A. Oldrati e M. Valgimigli di Ansaldo Energia con Diagen, sistema di diagnostica remota per generatori elettrici di grande potenza. Il pomeriggio stato dedicato a numerose sessioni tecniche di approfondimento sui prodotti hardware e software di National Instruments, nelle quali i partecipanti hanno potuto condividere esperienze e confrontarsi su problematiche comuni sulla base delle proprie esigenze di aggiornamento e formazione. Le sessioni tecniche si sono articolate in quattro macro aree dinteresse: Tecnologie software; Progettazione, prototipazione e controllo; Collaudo e acquisizione dati; Soluzioni e applicazioni. Risultato: oltre 450 partecipanti visibilmente soddisfatti.

SOMMARIO
06

01 UN GIORNO A NIDAYS 08

Gli oltre 450 partecipanti erano visibilmente soddisfatti

26 CONTROLLO DELLINTERFACCIA UTENTE


Il VI Sever permette di accedere alle pro priet e ai metodi del pannello frontale

INSTRUMENTS 03 NATIONAL E IL GREEN ENGINEERING


Sul tema dellIngegneria Verde abbiamo inter vi stato Tim Dehne, Senior Vice President R&D

OGGETTI 30 RICHIAMARE IN LABVIEW


possibile accedere ad altre applicazioni Win dows utilizzando le tecnologie .NET o ActiveX

I CICLI FOR 06 CONFIGURARE CON USCITA CONDIZIONATA


I costrutti come i cicli for e i cicli while permettono literazione del codice

34 DALLA CARTA AL WEB

Link ad articoli di approfondimento e altri documenti disponibili sul web

LE CARTELLE 08 SINCRONIZZARE DEL LABVIEW PROJECT CON LE DIRECTORY SU DISCO


In LabVIEW 8.5 il folder del progetto di LabVIEW Project ha un nuovo comportamento

36 LA VOCE DEGLI UTENTI

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

HA FESTEGGIATO 38 NIDAYS I SUOI PRIMI 15 ANNI


Rapporto sulledizione 2008

DEL MERGE GRAFICO 09 USO PER COMBINARE SINGOLI VI


VI Merge un nuovo tool per combinare le modifiche apportate a copie distinte di codice

40 NYDAYS SI FA IN QUATTRO!
Saranno toccate le citt di Catania, Bologna, Ancona e Padova

REAL-TIME: BILANCIARE 11 LABVIEW IL LAVORO FRA LE CPU


Come specificare il set di CPU disponibili per il bilanciamento automatico del carico

41 AUTOMATED TEST SUMMIT 2008


Il convegno sul test automatizzato online si ripropone nella sua 5 a edizione

BLOCCHI SOFTWARE PER 15 CREARE LEGO MINDSTORMS NXT


Alcuni esercizi per imparare a creare ed importare blocchi MINDSTORMS

42 MC4 FA POKER

Si svolta la 4 a edizione della mostra convegno sul Motion Control

43 APPUNTAMENTI 44 INTERVISTA

20

ELECTRONIC FLIGHT INFORMATION SYSTEM PER VELIVOLI LEGGERI


Un sistema elettronico per lassistenza al pilota

Oltre ad organizzare corsi e seminari, NI presente a numerosi eventi

La parola ad Alberto Osgualdo di IRS (Ingegneria Ricerca Sistemi)

23 IL PROGETTO DARWIN

Un sistema che ha circumnavigato il Sud America

46 LABVIEW E LAVORO

Proposte concrete per coloro che sanno utilizzare LabVIEW

AAA

A TU PER TU

06

NATIONAL INSTRUMENTS E IL GREEN ENGINEERING


Valerio Alessandroni

Tim Dehne Senior Vice President R&D presso National Instruments. Lo abbiamo inter vistato sul tema del Green Engineering, o Ingegneria Verde, al quale NI sta dedicando una crescente attenzione

Dehne, che cos il Green Engineering D: Mr. secondo National Instruments?

R:

Come era gi successo alla fine degli anni 80, negli ultimi tempi i media hanno dato il massimo risalto a tutto ci che verde. I cambiamenti climatici globali, i crescenti prezzi dellenergia e le nuove normative nazionali e internazionali (come quelle legate al Protocollo di Kyoto, ad esempio) stanno infatti facendo emergere nuove priorit ed aspettative nei confronti del mondo industriale. E i programmi di crescita sostenibile sono solo un esempio di questa nuova sensibilit. Per rispondere alle nuove esigenze, le aziende di tutto il mondo stanno quindi cercando di cambiare i processi produttivi e i prodotti, rendendoli pi verdi. Nella visione National Instruments, il Green Engineering deve offrire i tool, le tecniche e la tecnologia che sono necessari per rendere possibile questa evoluzione. Pi in particolare, quindi, lIngegneria Verde consiste nellapplicazione di tecniche di misura e controllo per progettare, sviluppare e migliorare prodotti, tecnologie e processi al fine di ottenere benefici ambientali ed economici.

Perch National Instruments ha deciso di D : attribuire unimportanza cos elevata allIngegneria Verde?

Tim Dehne, Senior Vice President R&D presso National Instruments

R:

Oggi siamo tutti pi attenti allimpatto ambientale delle centrali di produzione, degli impianti industriali, dei mezzi di trasporto e, in generale, dei prodotti che utilizziamo tutti i giorni. Come si pu affrontare il problema? Chi lo risolver? Io credo che la risposta possa essere fornita solo da tecnici e ingegneri, non da politici o avvocati, e nemmeno dai medici. Una soluzione pu venire solo da una buona ricerca di base e dalla sua trasformazione in una nuova generazione di prodotti ecosensibili. E National Instruments offre i tool di misura, automazione e progettazione necessari per abilitare questo nuovo approccio. evidente che quantificare e capire aspetti del mondo reale, come i consumi energetici e le emissioni inquinanti, il primo passo per potere affrontare e risolvere i relativi problemi. Il secondo passo consiste nel progettare e sviluppa-

re una nuova generazione di prodotti e tecnologie pi efficienti, con un minore impatto ambientale. Anche in questo caso, National Instruments mette a disposizione gli strumenti hardware e software indispensabili. Riassumendo, il nostro messaggio Measure it and fix it, per sottolineare proprio il fatto che per risolvere un problema necessario innanzitutto conoscerlo o, da un punto di vista ingegneristico, misurarlo. Si potranno quindi progettare, prototipare e rilasciare (nel caso del software) o produrre in serie (nel caso dellhardware) le nuove soluzioni verdi.

Quali sono i principali settori nei quali si D : stanno sviluppando con maggiore evidenza nuove soluzioni improntate all'Ingegneria Verde?
3

A TU PER TU

06

R:

Le applicazioni dellIngegneria Verde abbracciano quasi tutti i settori, perch qualsiasi prodotto o processo produttivo ha un impatto sullambiente. Esse spaziano quindi dal monitoraggio ambientale di foreste pluviali, al retrofit di impianti e macchine di produzione di vecchia generazione con sistemi di misura e controllo pi efficienti, a elettrodomestici pi efficienti da un punto di vista energetico, ecc. Bench vi siano molti modi per raggruppare una gamma cos ampia di applicazioni, la maggior parte di esse ricade nelle cinque categorie seguenti: generazione di energia rinnovabile, qualit dellenergia, monitoraggio ambientale, ottimizzazione di macchine e sistemi di automazione esistenti e sviluppo e verifica di prodotti e tecnologie amici dellambiente. Proprio nel campo delle centrali di generazione dellenergia, stiamo assistendo a nuove applicazioni dellIngegneria Verde con una particolare attenzione alle fonti rinnovabili o alternative: energia eolica, maree, ecc. Nel campo dello sfruttamento delle maree e delle onde marine, per esempio, sono state condotte delle ricerche su un nuovo sistema basato sul movimento di un nucleo, che viene sollevato e abbassato allinterno di un campo magnetico, un po come avviene nei motori elettrici. evidente che, per potere realizzare progetti cos innovativi, sono necessari una nuova mentalit tecnica e gli strumenti adeguati per la loro implementazione.

massiva nellelettronica consumer. Altre tecnologie erano gi disponibili da qualche tempo, ma i nuovi progressi nei tool di progettazione ed ingegnerizzazione le hanno rese pi accessibili agli esperti dei singoli domini e non solo agli esperti di tecnologia. Questa evoluzione mette la tecnologia necessaria per lIngegneria Verde direttamente nelle mani di coloro che sono pi vicini ai problemi, permettendo loro di sviluppare soluzioni pi efficaci che in passato.

sono i maggiori ostacoli alladozione D: Quali dellIngegneria Verde?

R:

R:

No, perch questo sarebbe un ostacolo alla diffusione dellIngegneria Verde su larga scala. Al contrario, i componenti tecnologici richiesti per le applicazioni di Ingegneria Verde devono essere non solo facilmente accessibili, ma anche disponibili ad un prezzo inferiore rispetto al passato. Alcune delle tecnologie chiave individuate da National Instruments sono le misure ad alta velocit ed alta risoluzione, lanalisi ed elaborazione avanzate dei segnali, i sistemi di controllo ad alta velocit e avanzati e le tecnologie dei sistemi embedded. In ogni caso, lapproccio di National Instruments allIngegneria Verde quello di enabling company, ossia di unazienda che lascia liberi i clienti nello sviluppo delle loro soluzioni, mettendo tuttavia a disposizione quelle tecnologie hardware e software (il sistema di progettazione grafica LabVIEW, in primis) che renderanno possibile limplementazione dei nuovi progetti, dopo il loro sviluppo ed il loro test approfondito. In questo ambito rientrano, ad esempio, le nuove piattaforme compactRIO cRIO-9072 e cRIO-9074 e le nuove Smart Camera. Alcune di queste nuove tecnologie nascono dallo sviluppo dellindustria dei semiconduttori, che ad esempio ha permesso importanti progressi nelle capacit degli ADC, diminuendone simultaneamente il costo grazie alladozione

ERRATA CORRIGE
Per uno spiacevole disguido, nel numero 5 di LabVIEW World sono state omesse le conclusioni di due articoli. In particolare, il capoverso finale dellarticolo Il futuro di LabVIEW, a pagina 4 deve intendersi sostituito da: Finch i nostri tecnici rimarranno entusiasti della tecnologia e cercheranno di migliorare la nostra vita quotidiana, le possibilit per LabVIEW saranno infinite. Il capoverso finale dellarticolo Le novit del PDA Module di LabVIEW 8.5 a pagina 13 deve intendersi sostituito da: Potete ora impostare la giustificazione del testo e sottolineare il testo di pulsanti e di controlli e indicatori di tipo stringa, time stamp e numerici (fig. 9). Per un esempio si pu vedere su ni.com/italian infocode: it3nch Ci scusiamo per linconveniente

Readerser vice.it n. 602

I componenti che rendono possibili queste D : applicazioni richiedono conoscenze particolari?

Come in tutte le cose, necessario rispondere a due quesiti fondamentali: disponibile la tecnologia necessaria per un reale impatto? Esiste una reale opportunit di business? Riteniamo che la risposta ad entrambe le domande sia affermativa. In particolare, nei prodotti verdi esiste una reale opportunit di profitto. Con il prezzo del petrolio a 120 dollari al barile, rimane forte la domanda di tecnologie e prodotti che aiutino le aziende a consumare meno petrolio nelle loro macchine e nei loro processi, pur ottenendo gli stessi risultati. Altre aziende, cercando di evitare sanzioni salate per la non aderenza alle normative ambientali, stanno acquistando tool di monitoraggio e reporting. A sostenere questo trend, un recente studio pubblicato da Pricewaterhouse Coopers ha evidenziato che gli investimenti di venture capital nelle applicazioni di tecnologia pulita, come quelle di risparmio energetico, riciclaggio, depurazione delle acque, controllo delle emissioni e delle energie rinnovabili, sono triplicati nel 2006, raggiungendo oltre 1,4 miliardi di dollari e sono cresciute quasi del 50% anche nel 2007, superando i 2 miliardi di dollari.

W H AT S N E W

06

CONFIGURARE I CICLI FOR DI LABVIEW CON USCITA CONDIZIONATA


a cura di Matteo Foini

I costrutti di programmazione come i cicli for e i cicli while permettono lesecuzione ripetitiva del codice

in dalla sua introduzione nel 1986, LabVIEW ha incorporato concetti di programmazione simili a quelli dei linguaggi basati su testo. Per esempio, i costrutti di programmazione come i cicli for e i cicli while permettono lesecuzione ripetitiva del codice. I linguaggi basati su testo offrono inoltre metodi per terminare lesecuzione dei loop al verificarsi di una condizione specificata; in LabVIEW, prima della versione 8.5, solo il ciclo while permetteva questo comportamento.

AGGIUNTA DI UN TERMINALE CONDIZIONALE A UN CICLO FOR DI LABVIEW


Con LabVIEW 8.5, potete aggiungere un terminale condizionale per configurare un ciclo for in modo che si interrompa al verificarsi di una condizione booleana o di un errore. Un ciclo for con un terminale condizionale viene eseguito fino al verificarsi della condizione o finch tutte le iterazioni sono terminate, in base a quale dei due eventi si verifica per primo. I cicli for che configurate con uscita condizionata hanno un aspetto simile a quello della figura 1.

Figura 2 - Aggiungere il terminale condizionale a un ciclo for

Per aggiungere un terminale condizionale a un ciclo for, cliccate con il tasto destro sul bordo del ciclo e selezionate Conditional Terminal nel menu abbreviato. Dovete quindi collegare il terminale condizionale e cablare il terminale di conteggio o autoindicizzare un array dingresso per lesecuzione del loop e del VI.

11 iterazioni, quando i = 10. int i; i = 0; for (i = 0; i < 50; i++) { if (i == 10) break; } Un programmatore LabVIEW che deve iterare su tutti gli elementi di un array

INFORMAZIONI DI BACKGROUND
I programmatori spesso devono interrompere un loop al verificarsi di una condizione specifica. I linguaggi basati su testo includono istruzioni che permettono ai i cicli for e ai cicli while di uscire quando si presenta una condizione specificata. Per esempio, nel seguente esempio in codice C, viene programmato un loop in modo che si iteri 50 volte (da 0 a 49). Tuttavia, lesecuzione del loop si interrompe usando la funzione Break dopo

Figura 1 - Ciclo for configurato con uscita condizionata

Figura 3 - Codice LabVIEW per un ciclo for

W H AT S N E W

usa spesso un ciclo for, perch esso permette lautoindicizzazione dellarray. Il tipico codice LabVIEW simile a quello della figura 3. Bench questa soluzione sia funzionalmente corretta, il ciclo for visita ogni elemento dellarray, anche se la condizione duscita si verifica in una delle prime iterazioni del loop. Per una maggiore efficienza, potete invece utilizzare un ciclo while (figura 4). Questa soluzione, che pi complessa e richiede pi codice, itera sullarray fino

dinteresse, lesecuzione del loop si interrompe. Se lelemento non si trova nellarray, il risultato un loop infinito. Una soluzione migliore quella di usare un ciclo for configurato per un break. Se lelemento dinteresse non

Figura 6 - I cicli for evitano il rischio di ottenere un loop infinito

ne con uscita condizionata, N rappresenta il numero massimo di possibili iterazioni del loop, ma non necessariamente il numero esatto di volte per le quali il loop verr eseguito. Il terminale condizionale si comporta come in un ciclo while. Potete commutare il terminale condizionale su Continue if True o collegare ad esso un cluster derrore (figura 7).

Figura 4 - Un ciclo for configurato per indicizzare un array

Figura 7 - Collegamento di un cluster derrore al terminale condizionale

Figura 5 - Un ciclo while che potenzialmente pu por tare a un ciclo infinito

al verificarsi della condizione o quando viene raggiunta la fine dellarray. Come illustrato nella figura 1, un ciclo for configurato con una condizione di break una soluzione molto pi semplice ed elegante. Potete anche usare un ciclo while per effettuare una ricerca in un array; quando avete trovato il vostro elemento

viene trovato nellarray, il loop si interrompe dopo N iterazioni.

Non potete cancellare il terminale condizionale; per rimuovere il terminale condizionale, dovete deselezionare lopzione Conditional Terminal nel menu del loop che si ottiene cliccando con il tasto destro.

NOTE ADDIZIONALI SUI CICLI FOR CON USCITE CONDIZIONATE


Un ciclo for configurato con uscita condizionata potrebbe non essere eseguito N volte (o su un intero array autoindicizzato). Dopo la configurazio-

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

Readerser vice.it n. 603

W H AT S N E W

06

SINCRONIZZARE LE CARTELLE
a cura di Matteo Foini

DEL LABVIEW PROJECT CON LE DIRECTORY SU DISCO


NI ha appor tato significativi cambiamenti al LabVIEW Project in LabVIEW 8.5, incluse modifiche al compor tamento dei folder del progetto
ntrodotto per la prima volta in LabVIEW 8, il LabVIEW Project ha nettamente semplificato il processo di rilascio del codice su target LabVIEW Real-Time, FPGA ed embedded, e gli utenti fin da subito hanno suggerito lintroduzione di nuove funzionalit per favorire la soluzione di problemi di sviluppo. In risposta a tali richieste, NI ha apportato significativi cambiamenti al LabVIEW Project in LabVIEW 8.5, incluse modifiche al comportamento dei folder del progetto. Con LabVIEW 8.5, gli sviluppatori possono ora sincronizzare i folder di un LabVIEW Project con le directory fisiche del file system per una gestione semplificata dei file.
Figura 1 - I folder autopopolanti riflettono il contenuto di una directory su disco

FOLDER VIRTUALI ED AUTOPOPOLANTI


Dallintroduzione del progetto, gli sviluppatori hanno richiesto la capacit di definire relazioni dirette tra i folder del progetto e i folder su disco. In un LabVIEW Project, i folder creano una struttura organizzativa per elementi come VI, file di documentazione e codice esterno. In LabVIEW 8 e 8.20, gli sviluppatori potevano usare solo folder virtuali, privi di una corrispondenza diretta su disco, per organizzare tali file allinterno di un LabVIEW Project. A partire da LabVIEW 8.5, potete scegliere fra due tipi di folder in un LabVIEW Project: i folder virtuali e i folder autopopolanti.

Un folder autopopolante sincronizzato con un folder su disco e si aggiorna, o popola, costantemente per riflettere il contenuto del folder su disco. Laggiunta di un folder autopopolante a un LabVIEW Project aggiunge effettivamente una directory su disco, insieme alle sue subdirectory. LabVIEW monitora e aggiorna costantemente il folder autopopolante in base ai cambiamenti eseguiti su disco e ai cambiamenti apportati al progetto. Unicona blu con un cilindro giallo identifica visivamente un folder autopopolante (figura 1), mentre i folder virtuali sono identificati da unicona argento.

I folder autopopolanti offrono accesso immediato a tutti i file nelle directory e riflettono allistante qualsiasi modifica eseguita su disco (come laggiunta, lo spostamento o la cancellazione di file). Tuttavia, con i folder autopopolanti, non potete applicare ai file unorganizzazione personalizzata, indipendente dalla struttura su disco. Tale organizzazione custom dei file invece possibile con i folder virtuali. Potete usare i folder autopopolanti e i folder virtuali nello stesso LabVIEW Project per ottenere la massima flessibilit.
Readerser vice.it n. 605

W H AT S N E W

06

USO DEL MERGEGRAFICO PER COMBINARE SINGOLI VI DI LABVIEW


a cura di Matteo Foini

LabVIEW 8.5 introduce VI Merge, un nuovo tool che offre la possibilit di combinare le modifiche appor tate a copie distinte di codice grafico utilizzando lanalisi e il confronto automatizzati

I Merge semplifica il ciclo di sviluppo permettendo lo sviluppo parallelo e risolvendo i conflitti creati da pi modifiche dello stesso segmento di codice. Se a una particolare sezione di codice viene applicato simultaneamente pi di un set di cambiamenti a causa del lavoro di pi sviluppatori, potete usare VI Merge per automatizzare il processo di ricombinazione.

binare i cambiamenti. Potete usare VI Merge sia in modo automatico sia in modo interattivo. La stessa funzionalit disponibile in LabVIEW viene esposta grazie a un eseguibile destinato allutilizzo in applicazioni di controllo del codice sorgente.

SVILUPPO DI GROSSE APPLICAZIONI CON LABVIEW E VI MERGE


Lo sviluppo su larga scala usando LabVIEW facile da gestire grazie allintegrazione di strumenti software di terze parti che coordinano il lavoro di grossi team di sviluppatori. Tuttavia, i metodi esistenti di confronto e fusione di varie parti di codice non erano disponibili in precedenza per processare il codice grafico di LabVIEW, richiedendo quindi la selezione manuale delle modifiche per evidenziare e com-

ESECUZIONE DEL CONFRONTO DEL CODICE


Il confronto del codice viene eseguito con VI Merge sulla base di Figura 1 una copia del VI originale, non modificato, considerato il Base VI. Il VI Merge destinato ad essere utilizzato quando vengono apportate modifiche a questa copia base da parte di pi persone e le modifiche vengono salvate separata-

mente. Le due copie modificate sono chiamate Their VI e Your VI nellarea di dialogo Merge VIs. Tutte le tre copie del codice sono fornite a VI Merge, che quindi confronta ed unisce tutte le modifiche non in conflitto.

SCENARI DI CODICE CONVERGENTE


Promuovere le fasi di check-in e checkout del codice serve ad evitare che pi sviluppatori lavorino inutilmente sullo stesso segmento di codice, ma vi sono molti scenari nei quali il codice pu essere portato offline, fuori dal controllo del software di gestione. Quando ci si verifica, possono sorgere dei problemi a causa di modifiche in conflitto

Figura 2

W H AT S N E W

06

fra loro, salvate in luoghi diversi; VI Merge lunico tool in grado di ricombinare tali modifiche. I progetti di sviluppo pi piccoli che non usano software di controllo del codice sorgente possono implementare lo sviluppo parallelo per aumentare lefficienza. Consideriamo uno scenario nel quale pi casi di una struttura case devono essere popolati con codice differente, come illustrato nella figura 3.

loro sforzi. Consideriamo la creazione di codice in parallelo da parte di sviluppatori distinti per i due casi della struttura illuFigura 5 strata nella figura 3: Basic Function Generator e Sine Waveform. Gli sviluppatori possono salvare le due copie del file originale (figura 4) in nuove posizioni distinte e, come indicato nellarea di dialogo Merge VIs, una copia diventa Your VI e laltra Their VI. Nota Poich LabVIEW non pu caricare due VI con lo stesso nome, dovete rinominare i VI che volete combinare.

cita a scegliere se la modifica che volete sia rappresentata nel VI combinato sia quella proveniente dal VI base, dal VI chiamato Your VI o dal VI Their VI. Larea di dialogo Merge vi offre la flessibilit necessaria per accettare la fusione del codice creata a partire dalle due parti, o di annullare qualsiasi modifica. Scorrendo le modifiche cliccandovi sopra, si evidenziano le modifiche stesse sul pannello frontale o sullo schema a blocchi del VI combinato.

Figura 3

CONFLITTI DI MERGE
Durante unoperazione di merge possono emergere dei conflitti se due oggetti vengono modificati in modo tale da non poter coesistere dopo la combinazione. Per esempio, se uno sviluppatore crea codice che incrementa le dimensioni di un oggetto del pannello frontale, mentre un altro sviluppatore crea codice che diminuisce le dimensioni dello stesso oggetto, quando si esegue il merge dei VI, VI Merge visualizza un conflitto irrisolto e vi invita a selezionare una delle due modifiche. In conclusione, VI Merge evita luso inefficiente delle risorse di sviluppo automatizzando un processo che pu essere altrimenti noioso e molto laborioso. Errori e conflitti che interrompono il ciclo di sviluppo parallelo del codice possono essere evitati tramite luso corretto di questo tool in combinazione con un processo definito di gestione del codice sorgente.

Nota La freccia di run (nella figura) rotta perch le uscite della struttura case non sono ancora collegate a nulla. Questo il Base VI , che verr modificato da pi sviluppatori.

Il VI base contiene la struttura vuota con tutti gli input e output appropriati collegati come richiesto. Questo VI incompleto viene quindi distribuito a pi sviluppatori per essere completato nei vari casi e poi ricombinato in modo automatico tramite luso di VI Merge. Se i permessi sono regolati in modo da consentire a pi sviluppatori di modificare simultaneamente questo file, questi possono lavorare su casi separati di questa struttura, combinando quindi i

USO DI VI MERGE
Larea di dialogo Merge VIs richiede agli utenti di specificare la posizione dei tre file. Per richiamare leseguibile dalla linea di comando, sufficiente specificare pochi parametri, inclusa la posizione delle tre copie del VI. Ogni implementazione porta allo stesso risultato, purch non esistano conflitti. Dopo avere specificato la posizione delle tre copie di codice ed avere eseguito lutility, LabVIEW visualizza una copia combinata del VI, insieme alle tre parti di codice originali ed enumera tutte le operazioni di merge eseguite. Potete esplorare questi cambiamenti e tornare alla copia base, o salvare il VI combinato. Se in conseguenza al processo di merge emergono dei conflitti, appare larea di dialogo Merge, che vi solle-

Figura 4

Readerser vice.it n. 606

10

TIPS & TECHNIQUES

06

LABVIEW REAL-TIME: BILANCIARE IL LAVORO FRA LE CPU


Gerardo Garcia

Vediamo come specificare il set di CPU disponibili per il bilanciamento automatico del carico di lavoro in LabVIEW Real-Time

l modulo Real-Time di LabVIEW 8.5 include le estensioni NI RT per il multiprocessing simmetrico (SMP), che potete installare per trarre vantaggio da sistemi multicore dotati fino a un massimo di 32 CPU. Linstallazione di tali estensioni aggiunge funzionalit di bilanciamento automatico del carico di lavoro, in grado di distribuire i thread delle applicazioni fra le diverse CPU. Questo articolo discute i concetti di bilanciamento automatico in LabVIEW RealTime e introduce lAPI SMP, che potete utilizzare per specificare il set di CPU disponibili e riservarne alcune per luso esclusivo da parte di specifiche Timed Structures. Consultate lhelp di LabVIEW 8.5 Real-Time Module per unintroduzione alla programmazione multi-core in LabVIEW Real-Time e ni.com/multicore per avere maggiori informazioni sui concetti relativi alle tecnologie multi-core. Utilizzate il LabVIEW Real-Time Software Wizard in Measurement & Automation Explorer per installare le estensioni NI RT per lSMP. Infine, consultate lhelp di Measurement & Automation Explorer per informazioni sulluso di Real-Time Software Wizard.

POOL DI CPU
Con le Estensioni NI RT per lSMP installate, il sistema operativo real-time (Rtos) ETS mantiene due pool di CPU disponibili per il bilanciamento automatico del carico: un pool per il sistema operativ (OS) ed un pool per le Timed Structure (TS). Le CPU nel pool TS sono disponibili per il bilanciamento automatico del carico delle Timed Structures (Timed Loops e Timed Sequences) configurate per lAssegnazione Automatica della CPU. Le CPU nel pool OS sono utilizzate per tutti gli altri processi, inclusi i task a basso livello del sistema operativo.

BILANCIAMENTO AUTOMATICO DEL CARICO


Il bilanciamento automatico del carico il processo di assegnazione di thread alle CPU in modo da bilanciare il carico elaborativo fra le CPU. Allavvio, LabVIEW 8.5 Real-Time Module assegna tutte le CPU disponibili al pool OS ed al pool TS, quindi esegue il bilanciamento automatico del carico fra tutte le CPU.

Tuttavia, potete utilizzare lAPI SMP introdotta in questo articolo per specificare pool OS e TS arbitrari. LabVIEW Real-Time esegue il bilanciamento automatico del carico su tutti i thread, con leccezione dei thread Timed Structure assegnati manualmente. LabVIEW mappa lesecuzione del codice da ciascuna Timed Structure al proprio thread dedicato, ma esegue il bilanciamento automatico del carico solo sui thread Timed Structure configurati per lassegnazione automatica della CPU. Potete assegnare manualmente una Timed Structure ad una particolare CPU collegando lindice della CPU allingresso Assigned CPU della Timed Structure o utilizzando la parte Processor Assignment della corrispondente finestra di dialogo Configure Timed Structure. Il valore di Assigned CPU di default, pari a 2, indica che la Timed Structure configurata per lassegnazione automatica del processore attraverso il bilanciamento automatico del carico. Generalmente, il processo di bilanciamento automatico del carico evita la necessit di commutare un dato thread fra le CPU, per minimizzare loverhead di trasferimento dati fra le CPU. Tuttavia, lo schedulatore SMP potrebbe commutare ripetutamente un thread da una CPU a unaltra se il carico dovuto ad altri thread di priorit pari o superiore eseguiti su ciascuna CPU fluttua in modo significativo. Potete utilizzare il Real-Time Execution Trace Kit per determinare se il thread di una Timed Structure si sposta da CPU a CPU. Per fare in modo che lo schedulatore SMP non assegni inaspettatamente Timed Structures ad una particolare CPU, potete rimuovere tale CPU dal pool TS usando lAPI SMP descritta sotto. Tuttavia, per fare in modo che una Timed Structure abbia laccesso esclusivo ad una CPU assegnata manualmente, dovete anche rimuovere quella CPU dal pool OS. Cos facendo, potete massimizzare le prestazioni di un Timed Loop deterministico, come descritto nel paragrafo Isolare una Timed Structure di questo articolo.

CONFIGURAZIONI DEI POOL


Ci sono quattro possibili stati per una CPU in un sistema SMP LabVIEW Real-Time. Una CPU pu appartenere:

11

TIPS & TECHNIQUES

06

1. Al pool TS, nel qual caso lo schedulatore SMP pu utilizzare la CPU per eseguire Timed Structures configurate per lAssegnazione Automatica della CPU. 2. Al pool OS, nel qual caso lo schedulatore SMP pu utilizzare la CPU per eseguire thread che non corrispondono a Timed Structures. 3. Ad entrambi i pool, nel qual caso lo schedulatore SMP pu utilizzare la CPU in uno dei due modi precedenti. 4. A nessun pool (riservata), nel qual caso la CPU dedicata solamente allesecuzione di Timed Structures che vengano assegnate manualmente a quella CPU. Quando un target RT esegue il boot up, tutte le CPU sono piazzate in entrambi i pool per default. Tuttavia, potete utilizzare lAPI SMP per assegnare ciascuna CPU ad uno qualsiasi dei quattro stati elencati sopra. Nota: Ogni pool deve contenere almeno una CPU, anche se entrambi i pool possono condividere una singola CPU.

PREVENIRE IL RALLENTAMENTO DEI THREAD DELLOS


Per prevenire il rallentamento dei thread dellOS, considerate la possibilit di riservare almeno una CPU per i soli thread dellOS. Per esempio, se assegnate la CPU 0 al pool OS ma non al pool TS, ed evitate di targetizzare Timed Structures sulla CPU 0, la CPU 0 sempre disponibile per lesecuzione dei thread dellOS.

MASSIMIZZARE LUTILIZZO DELLE CPU


Per massimizzare lutilizzo dei processori, utile determinare il numero di CPU in ciascun pool in base alla proporzione di carico che corrisponde ai thread del TS rispetto ai thread non TS. Potete usare il VI Get Core Loads allegato sotto per stimare la proporzione del tempo di elaborazione totale dedicata ai thread TS e non TS ed assegnare le CPU ai pool TS e OS di conseguenza. Se il target RT collegato ad un monitor, potete utilizzare anche lutilit di Misura del Carico della CPU per stimare la distribuzione del carico.

ISOLARE UNA TIMED STRUCTURE DETERMINISTICA


Per massimizzare le prestazioni e minimizzare il jitter in un Timed Loop deterministico, potete isolare quella Timed Structure su una particolare CPU. Per isolare una Timed Structure, dovere assegnare la Timed Structure ad una CPU che non contenuta n nel pool OS, n nel pool TS. Quando una CPU non assegnata ad alcun pool, essa riservata per eseguire solo la/le Timed Structure(s) che assegnate manualmente a quella CPU. Isolare una Timed Structure su una singola CPU vi permette di monopolizzare la capacit elaborativa di quella CPU e raggiungere unelevata frequenza o un elevato throughput. Per esempio, potete sfruttare lisolamento per raggiungere unelevata frequenza di polling in un Timed Loop che esegue lacquisizione dati. Per minimizzare la latenza di un Timed Loop deterministico ad alte prestazioni, prendete in considerazione di isolare quel Timed Loop su una CPU ad indice elevato. Per esempio, se il sistema contiene quattro core CPU con indici 0-3, considerare lisolamento del Timed Loop deterministico sulla CPU 3. Quando le Timed Structures vengono schedulate, il sistema operativo real-time inizia dalla CPU con indice pi alto e prosegue verso il basso. Pertanto, se pi Timed Structures di pari priorit sono schedulate per risvegliarsi nello stesso istante, la latenza di risveglio delle Timed Structures eseguite su CPU con indice minore pu essere pi alta di quella delle Timed Structures eseguite su core con indice maggiore, anche di diversi microsecondi. vero il contrario per i thread non Timed Loop, perch per tali thread lo schedulatore inizia dalla CPU 0 e prosegue verso lalto. Quindi, per minimizzare la latenza, National Instruments raccomanda di assegnare le CPU di numero inferiore al pool OS e di riservare le CPU di numero superiore ai Timed Loops deterministici.

EVITARE LA SOVRAPPOSIZIONE PARZIALE DEI POOL


Se definite i pool OS e TS in modo che i due pool si sovrappongano parzialmente, il processo di bilanciamento automatico del carico potrebbe non riuscire a prendere decisioni ottimali di utilizzo dei processori, come illustrato nei seguenti esempi. Esempio 1 Supponiamo che abbiate unapplicazione con tre Timed Loops. I periodi dei Timed Loops sono configurati in modo che, per la maggior parte del tempo, sia eseguito solo uno dei tre Timed Loops. Tuttavia, occasionalmente i periodi dei Timed Loops si allineano e volete fare in modo che quando ci si verifica i tre Timed Loops possano essere eseguiti tutti in parallelo. Potreste essere tentati di assegnare tre CPU (per es. le CPU 0-2) di un sistema quad-core al pool OS e tre CPU (per es. le CPU 1-3) al pool TS, assumendo che la CPU 3 eseguir sempre uno dei tre Timed Loops, mentre le CPU 1 e 2 eseguiranno generalmente thread dellOS ed eseguiranno Timed Loops solo quando i periodi si allineano. Tuttavia, poich lo schedulatore SMP cerca di eseguire ciascun thread sulla stessa CPU da iterazione ad iterazione, i tre Timed Loops potrebbero essere eseguiti tutti sulla CPU 1 o sulla CPU 2, riducendo quindi la capacit di elaborazione disponibile per i thread dellOS e lasciando la CPU 3 inattiva. In questo caso, una soluzione migliore sarebbe quella di assegnare manualmente ciascun Timed Loop ad una CPU differente ed assegnare tutti i quattro core al pool OS. Esempio 2 Supponiamo che abbiate unapplicazione con due Timed Loops che eseguono un polling continuo e due Timed Loops che sono eseguiti in modo intermittente. Si potrebbe pensare di assegnare tutte e quattro le CPU di un sistema quad-

12

TIPS & TECHNIQUES

06

core al pool TS e due delle CPU, per es. le CPU 2 e 3, al pool OS. Potreste assumere che i due Timed Loops di polling saranno eseguiti sulle CPU 0 e 1 e che i Timed Loops intermittenti condivideranno il tempo di elaborazione sulle CPU 2 e 3. Tuttavia, lo schedulatore SMP potrebbe assegnare i Timed Loops di polling alle CPU 2 e 3, appesantendo gli altri thread dellOS e lasciando sottoutilizzate le CPU 0 e 1. In questo caso, la soluzione migliore sarebbe quella di isolare i Timed Loops di polling sulle due CPU ed assegnare le due CPU rimanenti ad entrambi i pool.

API DI POOL UTILITIES PER SMP CPU


Usate lAPI di Pool Utilities per SMP CPU, descritta sotto, per definire i pool OS e TS durante la fase di configurazione iniziale di unapplicazione. Potete ottenere i VI SMP CPU Pool Utilities scaricando il file SMP_CPU_Utilities.zip file. Per installare lAPI, estraete il contenuto del file SMP_CPU_Utilities.zip nel folder \labview 8.5\user.lib sul vostro computer. Dopo avere estratto i file nel folder user.lib, la prossima volta che lancerete LabVIEW apparir la palette SMP CPU Utilities come sottopalette della palette User Libraries. Nota: LAPI SMP CPU Pool Utilities supportata solo su target RT multi-CPU che eseguono il sistema operativo ETS Phar Lap con le NI RT Extensions per SMP installate.

questo VI per definire i pool OS e TS specificando il numero di CPU che volete sia contenuto in ciascun pool. Questo VI crea i pool OS e TS come pool adiacenti di CPU contigue. Il pool OS inizia dalla CPU 0 ed il pool TS inizia dove finisce il pool OS. Per esempio, su un sistema con otto CPU, se collegate un valore 3 ai controlli OS Pool e TS Pool, questo VI assegna le CPU 0-2 al pool OS, le CPU 3-5 al pool TS e lascia le CPU 6-7 riservate per luso da parte delle Timed Structures configurate per lassegnazione manuale della CPU. Nota: Non potete utilizzare questo VI per creare pool vuoti o parzialmente sovrapposti. Questo VI restituisce un errore se specificate una dimensione 0 del pool OS o del pool TS o se i valori del pool OS e del pool TS che specificate danno una somma maggiore del numero di CPU disponibili nel sistema. Specificando un valore -1 per uno dei pool si indica che non si hanno preferenze di dimensioni per quel pool. Se si specifica un valore -1 per entrambi i pool, il VI crea la configurazione di default del pool, in cui entrambi i pool contengono ogni CPU nel sistema. Se si specifica una dimensione del pool pari a -1 per un pool, il VI assegna tutte le CPU rimanenti a quel pool. Per esempio, in un sistema a quattro CPU, se si specifica una dimensione del pool di -1 per il pool OS ed una dimensione del pool di 2 per il pool TS, il VI assegna le CPU 0 e 1 al pool OS e le CPU 2 e 3 al pool TS.

Get CPU Loads.vi Monitorizza la distribuzione del carico fra le CPU nel sistema. Per ogni CPU nel sistema, questo VI restituisce il carico totale come percentuale della capacit, nonch la percentuale della capacit totale dedicata alle routine di servizio degli interrupt (ISR), alle Timed Structures e a tutti gli altri thread. Ln-simo elemento di ciascun array corrisponde allnsima CPU nel sistema.

Get Number of CPUs.vi Restituisce il numero di CPU nel sistema.

Set CPU Pool Sizes.vi Imposta il numero di CPU in ciascun pool. Potete utilizzare

Set CPU Pool Assignment Assegna le CPU ad uno di quattro possibili stati: solo pool OS, solo pool TS, entrambi i pool o nessun pool (riservata). Questo VI genera le maschere di bit che specificano le CPU assegnate a ciascun pool. In un sistema con n CPU, i bit della maschera di bit corrispondono alle CPU da 0 a n -1. Il bit pi a destra di ciascuna maschera di bit corrisponde alla CPU 0 ed il bit pi a sinistra corrisponde alla CPU 31 (se tale CPU esiste nel sistema). Lingresso a questo VI un array di enum. Lenum contiene i quattro possibili stati di una CPU e ciascun elemento dellarray rappresenta una CPU. Per esempio, nellipotesi di un sistema con otto CPU, larray di enum nella figura qui sotto assegna le CPU 0, 1 e 2 al pool OS, le CPU 3 e 6 al pool TS e riserva le CPU rimanenti.

13

TIPS & TECHNIQUES

06

almeno una CPU. Se preferite lavorare con le maschere di bit, potete utilizzare i VI di basso livello sulla sottopalette Advanced. Per esempio, la figura seguente utilizza i VI di Set OS Pool.vi Specifica il set di CPU contenute nel pool OS. Lingresso OS mask una maschera di bit nella quale il bit pi a destra corrisponde alla CPU 0 ed il bit pi a sinistra corrisponde alla CPU 31. Per assegnare un core CPU al pool OS, impostate il valore del bit corrispondente a 1. Per specificare che il pool OS non deve contenere una particolare CPU, impostate il valore del bit corrispondente a 0. Nota: Il pool OS deve contenere almeno una CPU valida.

basso livello set OS Pool.vi e Set TS Pool.vi per ottenere la stessa configurazione dei pool dellarray di enum descritto nellesempio precedente.

CONCLUSIONE
Il Modulo Real-Time di LabVIEW 8.5 utilizza il bilanciamento automatico del carico per distribuire i thread fra due pool di CPU. Le CPU nel pool OS eseguono tutti i thread ad eccezione di quelli che corrispondono a Timed Structures. Le CPU nel pool Timed Structure (TS) esegue i thread che corrispondono a Timed Structures configurate per lassegnazione automatica delle CPU. Per default, LabVIEW Real-Time assegna tutte le CPU ad entrambi i pool. Tuttavia, potete utilizzare lAPI di Pool Utilities per SMP CPU per definire i pool OS e TS in modo da rispondere le vostre specifiche esigenze applicative. Per installare lAPI, estraete il contenuto del file SMP_CPU_Utilities.zip nel folder \labview 8.5\user.lib folder sul vostro computer. Dopo lestrazione dei file nel folder user.lib folder, la prossima volta che eseguite LabVIEW appare la palette SMP CPU Utilities come sottopalette della palette User Libraries. Potete scaricare il file dellAPI descritta in questo articolo al seguente link: ni.com/italian (info code: it3nch)

Set TS Pool.vi Specifica il set di CPU contenute nel pool TS. Lingresso TS mask una maschera di bit nella quale il bit pi a destra corrisponde alla CPU 0 ed il bit pi a sinistra corrisponde alla CPU 31. Per assegnare un core CPU al pool TS, impostate il valore del bit corrispondente a 1. Per specificare che il pool TS non deve contenere una particolare CPU, impostate il valore del bit corrispondente a 0. Nota: Il pool TS deve contenere almeno una CPU valida.

PANORAMICA SULLAPI DI POOL UTILITIES PER SMP CPU


LAPI di Utilities per SMP CPU offre un set di VI che potete utilizzare per monitorare il carico delle CPU e per assegnare le CPU ai pool TS e OS per il bilanciamento automatico del carico. LAPI fornisce tre livelli di astrazione, pertanto potete scegliere il livello di astrazione che corrisponde meglio al vostro stile di programmazione ed alle esigenze della vostra applicazione. Il VI di livello pi elevato, Set CPU Pool Sizes.vi, costruito dal VI di livello intermedio Set CPU Pool Assignments.vi, che a sua volta costruito dai VI avanzati di basso livello Set OS Pool.vi e Set TS Pool.vi. Il VI di alto livello, Set CPU Pool Sizes.vi, una buona scelta per la maggior parte dei casi duso. Potete utilizzare il VI Set CPU Pool Sizes per creare la configurazione di default dei pool, in cui entrambi i pool contengono tutte le CPU, o per creare pool contigui e adiacenti. Per configurationi custom dei pool di CPU, il VI di livello intermedio Set CPU Pool Assignments.vi una buona scelta. Potete usare il VI CPU Pool Assignments per creare qualsiasi configurazione dei pool, purch ciascun pool contenga

Note sullautore:
Gerardo Garcia il product manager di LabVIEW Real-Time. laureato in Ingegneria Elettrica alla Texas A&M University

14

Readerser vice.it n.611

TIPS & TECHNIQUES

06

CREARE BLOCCHI SOFTWARE PER LEGO MINDSTORMS NXT


A cura di Matteo Foini

Lar ticolo contiene esercizi che potete utilizzare per imparare a creare ed impor tare nuovi blocchi MINDSTORMS
possibile utilizzare il LabVIEW Toolkit for LEGO MINDSTORMS NXT con LabVIEW 7.1 per creare blocchi da importare nel software LEGO MINDSTORMS NXT. I blocchi sono oggetti che utilizzerete per programmare i dispositivi NXT con il software MINDSTORMS. Nota Poich il software LEGO MINDSTORMS NXT basato sulla versione 7.1 di LabVIEW, dovere usare LabVIEW 7.1 per salvare i blocchi MINDSTORMS che create. Larticolo presuppone che abbiate LabVIEW 7.1, il LabVIEW Toolkit for LEGO MINDSTORMS NXT e che abbiate una buona familiarit con lo sviluppo di VI in LabVIEW. Specificamente, la creazione di blocchi implica i seguenti concetti LabVIEW.

IMPLEMENTATION VI
Implementation VI il file che il software MINDSTORMS compila e scarica effettivamente sullNXT. Dovete denominare il vostro Implementation VI nel modo seguente (NewBlock fa riferimento al nome che voi darete al vostro blocco).

NewBlock\NewBlock.vi

CONFIGURATION VI
Il Configuration VI quello che appare nel pannello di configurazione del software MINDSTORMS. Il Configuration VI fornisce diverse funzioni, incluso laggiornamento dei valori di default sul vostro Implementation VI e la lettura dei dati dai sensori. Dovete denominare il vostro Configuration VI nel modo seguente.

Tipi di dato: interi, booleani, stringhe, array, cluster e variant Funzioni base utilizzate con i tipi di dato precedenti Struttura case, a eventi, cicli e sequenze Variabili locali VI Server Larticolo presuppone inoltre che abbiate il software LEGO MINDSTORMS NXT e che abbiate familiarit con le basi di sviluppo per lNXT. Per importare blocchi nel software MINDSTORMS, dovete installare il Dynamic Block Update, disponibile online allindirizzo mindstorms.lego.com/support/updates. Il LabVIEW Toolkit for LEGO MINDSTORMS NXT fornisce diversi blocchi di riferimento (template) con esempi di funzionalit che potete utilizzare. Questi template sono situati nella directory LabVIEW\vi.lib\addons\NXTToolkit\Block Templates\. Per creare il vostro blocco, potete partire da un template e modificarlo in base alle vostre esigenze.

NewBlock\Config NewBlock.vi

DRAW VI
Il Draw VI aggiorna limmagine del vostro blocco sullo schema a blocchi MINDSTORMS. Dovete denominare il vostro Draw VI nel modo seguente.

NewBlock\Draw NewBlock.vi.

BLOCK ICON
La Block Icon limmagine del vostro blocco che appare nella palette e sul diagramma a blocchi. Dovete denominare la vostra Block Icon nel modo seguente.

NewBlock\NewBlock.png

ARCHITETTURA DEI BLOCCHI


Creare un blocco MINDSTORMS NXT implica la creazione di numerosi file e la loro importazione nel software MINDSTORMS. Il processo di importazione si appoggia a una struttura di directory strettamente definita e comporta il confronto di stringhe. Pertanto, per importare con successo un blocco nel software MINDSTORMS, dovete seguire le convenzioni specificate in questo articolo.

BLOCK NAME FILE


Il Block Name File contiene il testo che appare quando sorvolate il vostro blocco nella palette MINDSTORMS. Dovete denominare il vostro Block Name File nel modo seguente.

NewBlock\NewBlock.txt

SENSOR FILE
Nota Il Sensor file richiesto solo se create un blocco sensore. Il contenuto del Sensor File fornisce informazioni che per-

FILE RICHIESTI
Per importare un blocco nel software MINDSTORMS dovete creare i seguenti file.

15

TIPS & TECHNIQUES

06

mettono ai blocchi Wait For, Loop, Switch e Calibrate di indirizzare il blocco sensore. Dovete denominare il Sensor File nel modo seguente.

Ogni file addizionale richiesto per il Context Help File, come le immagini, deve risiedere nella cartella NewBlock\Help Content\NewBlock Files\.

NewBlock\Sensor.ini

FULL HELP
Il Full Help File un file HTML nel quale potete includere informazioni dettagliate sul vostro blocco. Se premete F1 mentre passate il mouse sopra il vostro blocco, MINDSTORMS carica il Full Help File in un web browser esterno. Dovete denominare il vostro Full Help File nel modo seguente.

FILE OPZIONALI
I seguenti file non sono richiesti per importare con successo un blocco nel software MINDSTORMS. Tuttavia, potete includerli per fornire maggiore funzionalit al vostro blocco.

VERSION FILE
Il Version File contiene la stringa con la versione del vostro blocco, permettendo agli utenti di sapere quale versione del blocco hanno. Dovete denominare il Version File nel modo seguente.

NewBlock\Help Content\Full Help\topics\Help_NewBlock.htm


Ogni file addizionale richiesto per il Full Help File, come le immagini, deve risiedere nella cartella NewBlock\HelpContent\Full Help\topics\NewBlock Files\.

NewBlock\Version.txt

CONDIVISIONE DI NOMI GLOBALI


Il software MINDSTORMS, come LabVIEW, non pu caricare due VI con lo stesso nome. Per evitare conflitti, dovete dare un nome unico a tutti i vostri VI. Dovete dare un nome unico anche a tutte le vostre immagini. Poich altri sviluppatori potrebbero produrre blocchi denominati come il vostro, considerate la possibilit di usare il vostro nome o il nome della vostra azienda come prefisso per fare in modo che i nomi dei vostri file rimangano unici.

DRAGGED ICON
La Dragged Icon limmagine che appare quando si trascina il proprio blocco dalla palette allo schema a blocchi. Dovete denominare la vostra Dragged Icon nel modo seguente.

NewBlock\NewBlock Dragged.png

DRAWERS FILE
Il Drawers File descrive lordine nel quale MINDSTORMS visualizza i controlli dal vostro Implementation VI nel data hub che si estende sotto il blocco nel workspace. Dovete denominare il vostro Drawers File nel modo seguente.

CREARE UN SEMPLICE BLOCCO SENSORE


Per creare un semplice blocco sensore di illuminazione eseguite i seguenti passi.

CREARE UN NUOVO BLOCCO USANDO IL NEW NXT BLOCK WIZARD


Nota Quando usate il New NXT Block Wizard, LabVIEW genera automaticamente tutti i file richiesti elencati sopra, con nomi appropriati. I file contengono template in base al tipo di blocco specificato nel Wizard. 1. In LabVIEW, selezionate ToolsNXT ModuleNew NXT Block Wizard. 2. Inserite il nome del vostro blocco nel controllo New Block Name. 3. Selezionate Template Simple Sensor Block nel listbox Template Block. 4. Cliccate Create e navigate verso la cartella dove volete salvare il vostro nuovo blocco. 5. Cliccate Current Folder per creare il vostro blocco nella cartella corrente. 6. Cliccate Close per uscire dal Wizard e salvate i vostri subVI se vi viene richiesto di farlo. Nota Dovete scegliere Save All SubVIs se la vostra versione di LabVIEW vi richiede di farlo.

NewBlock\Drawers.dat

DRAWER IMAGES
La cartella Drawer Images contiene tutte le immagini addizionali richieste per il vostro blocco. I file Drawer Images devono avere estensione .png e devono risiedere nella seguente cartella.

NewBlock\Drawer Images\

CONTEXT HELP FILE


Il Context Help File un file HTML nel quale potete includere informazioni di riferimento di rapida consultazione circa il vostro blocco. Il software MINDSTORMS visualizza il Context Help File nellangolo in basso a destra della finestra MINDSTORMS quando fate passare il mouse sopra il vostro blocco. Dovete denominare il file Context Help nel modo seguente.

NewBlock\Help Content\Block_NewBlock.htm

16

TIPS & TECHNIQUES

MODIFICARE LIMPLEMENTATION VI
Cambiate lImplementation VI in modo che punti ad un sensore di illuminazione. 1. Aprite NewBlock.vi in LabVIEW. 2. Sullo schema a blocchi, cliccate due volte per aprire il Simple Sensor Sub VI. 3. Modificate il Simple Sensor Sub VI per puntare ad un sensore di illuminazione ed includere un controllo che commuti quando il sensore di illuminazione genera luce. a. Create un controllo Booleano ed etichettatelo Generate Light. b. Mettete una funzione Select sullo schema a blocchi. c. Create una copia del controllo Sensor Type, che attualmente impostato su LIGHT_INACTIVE. Impostate il nuovo controllo Sensor Type su LIGHT_ACTIVE. Collegate il controllo Sensor Type LIGHT_ACTIVE allingresso True della funzione Select ed il controllo Sensor Type LIGHT_INACTIVE allingresso False della funzione Select. d. Aggiungete ed eliminate fili come necessario. Quando finirete questo passo, lo schema a blocchi dovrebbe essere simile a quello della fig. 1.

Figura 1

e. Sul pannello frontale, aggiungete il controllo Generate Light al pannello dei connettori. f. Salvate e chiudete il Simple Sensor Sub VI e tornate allImplementation VI. 4. Create un controllo Booleano, etichettatelo Generate Light e collegatelo allingresso Generate Light del Simple Sensor Sub VI. 5. Sul pannello frontale, aggiungete il controllo Generate Light al pannello dei connettori. I controlli e gli indicatori nel pannello dei connettori dellImplementation VI diventano i drawer nel data hub del vostro blocco in MINDSTORMS. Nota Il software MINDSTORMS supporta solo i tipi di dato numerico, Booleano e stringa per i drawer. Per importare con successo un blocco in MINDSTORMS, includete nel pannello dei connettori del vostro Implementation VI solo controlli e indicatori dei tipi di dato supportati. 6. Salvate e chiudete lImplementation VI.

MODIFICARE IL CONFIGURATION VI
Cambiate il Configuration VI in modo che interagisca con il controllo Generate Light sullImplementation VI. 1. Aprite il Configuration VI.

2. Cambiate il testo in alto a sinistra sul pannello frontale da Template Sensor Block a NewBlock. 3. Aggiungete sul pannello frontale un controllo Booleano che permetta allutente di configurare il sensore di illuminazione per generare luce. a. Dalla palette All Controls, selezionate NXTToolkit per aprire la palette NXTToolkit. b. Selezionate NXTToolkitNXT ControlsConfig DecorationsOne Row Background e mettete un One Row Background sul pannello frontale sotto lo One Row Background etichettato Port. c. Selezionate NXTToolkitNXT ControlsNXT Checkbox e mettete una spunta dentro One Row Background Generate Light. d. Ridenominate la casella di spunta da NXT Checkbox a Generate Light. e. Su tutte le etichette dello schema a blocchi, disabilitate Size to Text. f. Accertatevi che tutti gli oggetti dellinterfaccia utente siano situati nellangolo in alto a sinistra del pannello frontale. Quando avrete terminato questo passo, il pannello frontale dovrebbe avere un Figura 2 aspetto simile a quello della figura 2. Nota Quando importate il vostro blocco, nel software MINDSTORMS appaiono solo gli oggetti nellangolo in alto a sinistra del pannello frontale. 4. Modificate il Configuration VI per leggere il valore Generate Light dallImplementation VI e popolare il pannello di configurazione con i valori corretti quando il vostro blocco viene selezionato nel software MINDSTORMS. a. Aprite il Configuration VI. b. Sullo schema a blocchi, trovate la struttura Sequence Get Default Values from Block. Rimuovete i fili che collegano i due Invoke Node. Ridimensionate la struttura e spostate ancora pi a sinistra lInvoke Node per lasciare spazio a funzioni addizionali. c. Disponete un nuovo Invoke Node fra il Property Node e lInvoke Node esistente. Collegate luscita VI Ref del Property Node allingresso reference del nuovo Invoke Node. Sul nuovo Invoke Node selezionate il metodo Get Control Value [Variant]. d. Create una nuova costante stringa con il valore Generate Light e collegatela allingresso Control Name del nuovo Invoke Node. e. Disponete una nuova funzione Variant to Data nella struttura Sequence Get Default Values from Block e collegate una costante True allingresso type. f. Create una nuova variabile locale per il controllo Generate Light che avete aggiunto al pannello frontale. g. Collegate luscita dati della funzione Variant to Data alla variabile Generate Light. h. Quando avrete finito questo passo, la struttura Sequence Get Default Values from Block dovrebbe avere un aspet-

17

TIPS & TECHNIQUES

06

Figura 3

Figura 4

to simile a quella della figura 3. 5. Modificate il Configuration VI in modo da aggiornare il controllo Generate Light sul vostro Implementation VI quando un utente aggiorna la casella di spunta Generate Light. a. Trovate la struttura a eventi a destra della struttura Sequence Get Default Values from Block e selezionate il caso Plug Selector. Cliccate con il tasto destro sulla struttura e selezionate Duplicate Event Case dal menu abbreviato. Selezionate Generate Light nella listbox Event Source. Quindi, selezionate Value Change nella listbox Events. Cliccate OK per salvare le vostre modifiche ed uscite dallarea di dialogo. b. Nel frame del nuovo caso Generate Light, cambiate il valore della costante stringa da Connection a Generate Light. b. Quando avrete terminato questo passo, la struttura a eventi dovrebbe avere un aspetto simile a quello della figura 4. 6. Salvate e chiudete il Configuration VI.

NXT_ImageDataCache.vi registra le immagini in memoria, quindi sufficiente leggerle una sola volta dal file. d. Disponete NXT_BlockParamOffset.vi come subVI nella struttura sequence. Create una costante per lingresso Pad Selector e selezionate BottomRight. Lingresso Pad Selector determina loffset per tracciare limmagine nellangolo in basso a destra. e. Disponete OffsetImageCluster.vi e Draw Flattened Blended Pixmap.vi come subVI nella struttura sequence. OffsetImageCluster.vi sposta limmagine nella posizione corretta e Draw Flattened Blended Pixmap.vi la aggiunge alla Block Icon. f. Quando avrete terminato questo passo, la struttura sequen-

Figura 5

ce dovrebbe avere un aspetto simile a quello della figura 5. 3. Salvate e chiudete il Draw VI

IMPORTARE UN BLOCCO IN MINDSTORMS MODIFICARE IL DRAW VI


Il template del Draw VI aggiunge il numero della porta dingresso alla Block Icon. Qui di seguito modificherete il Draw VI per aggiungere anche unimmagine Vero/Falso in base al valore del controllo Generate Light nel vostro Implementation VI. 1. Aprite il Draw VI. 2. Potete trovare i subVI che vi occorrono per i passi seguenti nella directory LabVIEW\vi.lib\addons\NXTToolkit\ Block Templates\Support. a. Trovate la struttura sequence sullo schema a blocchi del Draw VI. b. Mettete nuove primitive Invoke Node e Variant to Data nella sequence. Create una costante stringa e una costante Booleana. Inserite il valore Generate Light per il controllo che avete creato in precedenza sul vostro Implementation VI. Disponete una funzione Boolean to (0, 1) sullo schema a blocchi per leggere il valore di controllo dal vostro Implementation VI. c. Disponete NXT_ImageDataCache.vi come subVI nella struttura sequence. Create una costante per lingresso Image Name Array e aggiungete True.png come primo elemento e False.png come secondo elemento dellarray. Nota Per importare blocchi nel software MINDSTORMS, dovete installare il Dynamic Block Update, disponibile online su MINDSTORMS.LEGO.com/support/updates. 1. Lanciate il software MINDSTORMS e create un nuovo programma. 2. Selezionate ToolsBlock Import and Export Wizard. 3. Cliccate su Browse e selezionate il blocco o i blocchi che volete importare nella listbox Import. 4. Scegliete la palette a cui volete aggiungere il blocco. 5. Cliccate su Import. Nota Se includete Immagini Drawer, esse non appariranno nel data hub del vostro blocco finch non riavvierete il software MINDSTORMS. 6. Verificate che il vostro blocco appaia sulla palette specificata e che si comporti correttamente. Nota Se il vostro blocco non selezionabile nella listbox Import, una parte del vostro blocco manca o rotta. Accertatevi che la vostra cartella dei blocchi contenga tutti i file richiesti e che tutti i file siano denominati correttamente. Aprite i VI del vostro blocco ed assicuratevi che non abbiano frecce di run interrotte. Assicuratevi inoltre che la vostra cartella dei blocchi includa tutti i subVI utilizzati dal vostro blocco.

18

TIPS & TECHNIQUES

CONSIDERAZIONI ADDIZIONALI ISTANZE DEI VI


Ogni volta che un utente mette il vostro blocco sul workspace del MINDSTORMS, il software crea una nuova istanza dellImplementation VI. Ogni istanza del blocco crea una copia dedicata del codice in memoria. Ci significa che le istanze del blocco possono essere eseguite simultaneamente senza sovrascrivere i dati reciproci. Pertanto, quando un Configuration VI modifica i valori su unistanza dellImplementation VI, le altre istanze di quellImplementation VI non sono influenzate. Tuttavia, gli eventuali subVI non rientranti utilizzati nel vostro Implementation VI possono diventare risorse condivise fra le istanze del blocco. Quindi, potete ridurre il costo per istanza del vostro blocco mettendo codice statico nei subVI non rientranti. Tenete presente che solo un blocco per volta pu accedere alle risorse di un subVI condiviso. Se volete che ogni istanza di un blocco abbia la propria istanza di un subVI, dovete rendere rientrante il subVI.

PANNELLO DEI CONNETTORI DELLIMPLEMENTATION VI


Per importare correttamente il vostro Implementation VI nel software MINDSTORMS, dovete utilizzare il modello per il pannello dei connettori illustrato nella fig. 6. Qualsiasi controllo o indicatore che volete Figura 6 appaia nei drawer di un blocco deve essere presente sul pannello dei connettori del vostro Implementation VI. Inoltre, dovete includere i Booleani Sequence Flow e Sequence Flow 2 rispettivamente negli angoli in alto a sinistra e a destra del pannello. Se state creando un blocco sensore, dovete includere anche un Booleano Yes/No subito sotto il Booleano Sequence Flow 2. I blocchi Wait For, Loop e Switch usano il Booleano Yes/No per prendere decisioni. Nota Quando denominate i Booleani Sequence Flow, Sequence Flow 2 e Yes/No, dovete denominarli esattamente come appaiono in questo documento, inclusi gli spazi. Il processo dimportazione dipende dallesatta corrispondenza delle stringhe.

essi quando un utente dispone il blocco. Per specificare una funzionalit che differisce da questo stato di default, dovete includere un Drawers File nella cartella del vostro blocco. Quando utilizzate il New NXT Block Wizard per creare il vostro blocco, il wizard mette un template del Drawers File nella cartella del vostro blocco. Potete modificare il Drawers File in un editor di testi per specificare le vostre funzionalit. Sotto [Drawers] nel Drawers File, elencate i controlli e gli indicatori sul pannello dei connettori del vostro Implementation VI nellordine con il quale desiderate che appaiano nel software MINDSTORMS. Sotto [OpenOnDrop], elencate le etichette dei controlli e degli indicatori che desiderate vengano aperti automaticamente da MINDSTORMS quando un utente dispone il vostro blocco sullo schema, nellordine con il quale volete che appaiano. Se volete creare immagini custom dei vostri plug, dovete includerle nella directory NewBlock\Drawer Images\. Dovete inoltre denominarle esattamente come letichetta del controllo o dellindicatore corrispondente, con estensione .png. Per esempio, se avete un controllo etichettato MyControl, dovete denominare limmagine corrispondente nel modo seguente: NewBlock\Drawer Images\MyControl.png Se non includete i vostri file di immagini, MINDSTORMS visualizza limmagine di default per il tipo di dato del controllo.

SENSOR FILE
Se create un blocco sensore e volete che si interfacci con lanello Loop/Wait for/Switch, dovete includere un Sensor File nella directory del vostro blocco. Il Sensor File deve contenere almeno le linee seguenti:

[Sensor] Group=Custom
MINDSTORMS usa le linee precedenti per popolare i controlli ad anello sui blocchi Wait For, Switch e Loop. Se il vostro sensore un sensore analogico e volete che sia elencato nel blocco Calibrate e nel tool Calibrate Sensors, dovete includere le seguenti linee addizionali nel Sensor File:

DRAWER
I Drawer nel software MINDSTORMS sono i connettori di un blocco, chiamati plug, e sono contenuti nel data hub che si estende sotto un blocco nello spazio di lavoro. Quando create un blocco MINDSTORMS, potete usare il Drawers File per specificare la funzionalit dei suoi dati. Se non includete un Drawers File nella cartella del vostro blocco, il software MINDSTORMS ordina automaticamente i controlli e gli indicatori sul pannello dei connettori del vostro Implementation VI nel data hub del blocco, ma non apre nessuno di

Calibrate=TRUE SensorMode=128 SensorType=5 DefaultPort=3 PropIconFilename=CalLightSensor.png


Potete specificare i vostri valori per SensorMode, SensorType, DefaultPort e PropIconFilename.

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

Readerser vice.it n. 613

19

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

06

ELECTRONIC FLIGHT INFORMATION SYSTEM


PER VELIVOLI LEGGERI
Paolo Pari

La sfida era quella di offrire un sistema completamente elettronico per lassistenza al pilota nella condotta di velivoli leggeri

igySky ha realizzato un nuovo sistema Efis (Electronic Flight Information System) per controllare continuativamente ed automaticamente le condizioni di volo e le eventuali anomalie relative ai sistemi avionici utilizzando unarchitettura a basso costo. La soluzione realizzata da DigiSky, denominata SkyEfis, si basa su un PC industriale con sistema operativo Windows dotato di un display LCD ad altissima luminosit. In questo modo stato ottenuto un glass cockpit a basso costo sul quale eseguire unapplicazione sinottica (NI LabWindows/CVI) dedicata alle funzioni di condotta del velivolo.

LAPPLICAZIONE SKYEFIS
Lapplicazione SkyEfis nasce per soddisfare lesigenza del pilota di velivoli leggeri (categoria di aeroplani ed elicotteri prevalentemente monorotori con peso al decollo dellordine dei cinque quintali) di avere il completo controllo dei parametri di volo, del propulsore e degli impianti, senza compromettere il piacere di un volo condotto in libert e nella massima sicurezza. La filosofia adottata quella di trasferi-

INTRODUZIONE
Il settore dellaviazione leggera si significativamente sviluppato con lintroduzione sul mercato di velivoli tecnologicamente sofisticati capaci di performance paragonabili a quelli dellaviazione civile. Questo segmento richiede ladozione di sistemi avionici che, pur non assoggettati ai vincoli di certificazione aeronautica, devono rispondere alle esigenze di massima immediatezza e sicurezza di utilizzo. Lutilizzo di un sistema elettronico per lacquisizione di tutti i parametri utili alla condotta del velivolo ed al controllo degli apparati rappresenta un importante ausilio al pilota per dedicare la maggiore attenzione al pilotaggio.

Figura 1

20

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

Figura 2

re al pilota solo le informazioni indispensabili per la condotta affidando al sistema automatico la verifica di ogni altro parametro che, in condizioni normali, non influisce sulle manovre di pilotaggio. Lattenzione del pilota viene richiamata solo in presenza di anomalia; in tal caso suggerita una procedura di verifica e/o di correzione. Larchitettura hardware si basa su un PC industriale compatto con sistema operativo Windows XP abbinato ad un display LCD industriale da 10.4 ad altissima luminosit (1600 cd/mq) che garantisce unottima resa visiva anche in condizioni di luce solare piena incidente sul display (fig. 2). I dati sono acquisiti da uninterfaccia dedicata denominata BlueBox, che consente di misurare tutti i parametri relativi alle condizioni di volo e dellavionica, trasferendoli allunit PC tramite comunicazione seriale ad alta velocit con protocollo Nmea. Linterfaccia sinottica sviluppata utilizzando sia gli oggetti grafici standard dellambiente LabWindows/CVI sia una libreria di oggetti ActiveX distribuita da Iocomp. La grafica stata progettata in forma mista analogico/digitale per sfruttare limmediatezza visiva delle rappresentazioni a barra/indice che riproducono gli strumenti tradizionali, abbinata allindicazione numerica che massimizza la precisione di lettura (fig. 3). Per rendere intuitivo il controllo del propulsore e dei principali impianti la grafica propone alcune rappresentazioni sinottiche richiamabili con apertura di finestre in sovrimpressione (figg. 4 e 5).

Figura 4

Figura 5

INTERFACCIA COMANDI
Linterfaccia comandi realizzata con una tastiera dedicata a cinque tasti posizionata a bordo schermo le cui funzioni sono riprogrammate dalle etichette rappresentate a video

Figura 3

Figura 6

21

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

06

INTERFACCIA VOCALE
Lapplicazione gestisce anche uninterfaccia vocale con oltre duecento messaggi multilingua per informare il pilota degli eventi rilevanti per la condotta del velivolo o per seguire una qualunque check-list, anche in volo, senza necessit di lettura da testo. Tutti i parametri misurati con una frequenza variabile da 5 a 0,5 volte al secondo vengono registrati su disco allo stato solido svolgendo la funzione di scatola nera dal momento della messa in moto fino allatterraggio. Sono state inoltre implementate in forma automatica sia la gestione del Libretto di Volo con registrazione dellora di decollo, atterraggio e dei dati riepilogativi del volo tra cui la distanza percorsa, massima quota raggiunta, carburante impiegato, temperatura dellaria al decollo e atterraggio, sia la compilazione del Quaderno Tecnico di Bordo (QTB) con registrazione degli eventi anomali riferiti ad ogni volo, indicando il dettaglio dellora e del valore dei parametri. Questa funzione particolarmente utile per analizzare a terra gli eventi minori senza dover rivedere tutta la registrazione del volo e decidere eventuali interventi di manutenzione. Il sistema ha gi totalizzato alcune decine di ore di volo con risultati eccellenti e verr presentato nelle prossime manifestazioni aeronautiche come prodotto destinato ai velivoli di nuova produzione.

Figura 7

Figura 8

oltre due tasti programmabili sulla cloche per il richiamo delle funzioni di utilizzo pi frequente in volo. I gruppi di informazioni visualizzate sul display sono: informazioni riguardanti la condotta (velocit, altitudine, quota, posizione, assetto, ecc.) (fig. 6) informazioni riguardanti la rotta (fig. 7) misura delle temperature e delle pressioni di esercizio motore (fig. 8) controllo di stato dei principali apparati (superfici mobili, utenze elettriche, ecc.) misura del carburante imbarcato e consumato, controllo dello stato pompe e selettori, gestione delle riserve, calcolo dellautonomia residua (fig. 9) Il sistema BlueEfis garantisce la gestione avanzata delle segnalazioni di anomalia ottenuta implementando un sistema decisionale multicriterio in grado di incrociare pi informazioni per fornire sempre indicazioni attendibili in ogni condizione di volo. Il sistema ricalcola continuamente i limiti di normale funzionamento rispetto la temperatura e la pressione dellaria esterna. In caso di anomalia il sistema valuta la gravit del problema e suggerisce anche una procedura di controllo affinch il pilota non incorra nella catena degli errori.

Figura 9

CONCLUSIONE
Infine, stato inoltre integrato al sistema Efis standard un sofisticato ActiveX grafico proprietario in grado di riprodurre la visione sintetica dellambiente circostante basandosi sul modello matematico del terreno. Questa funzionalit permette un ulteriore miglioramento della sicurezza nella navigazione offrendo al pilota la visibilit del territorio anche in condizioni metereologiche marginali.
Readerser vice.it n. 617

Note sullautore
Paolo Pari, Amministratore DigiSky

22

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

06

ENERGIA RINNOVABILE E IDROGENO SU UNO YACHT A VELA


M. Schiavetti

PROGETTO DARWIN:

stato realizzato un sistema di monitoraggio e di trasmissione a distanza dei dati raccolti da un sistema sperimentale di accumulo di idrogeno e fuel cell, installato su uno yacht a vela che ha circumnavigato il Sud America per sei mesi, senza possibilit di manutenzione, in ambiente estremo

l Progetto Darwin stato sponsorizzato da Enel e consisteva in un viaggio a bordo di Adriatica, uno yacht a vela di 22 metri per 50 tonnellate, seguendo la rotta, in senso opposto, del brigantino Beagle che circumnavig il Sud America con a bordo Charles Darwin, in occasione della prossima commemorazione del bicentenario (1809 - 2009) della nascita del famoso naturalista. Durante il viaggio, diversi gruppi di ricerca (oceanografi, naturalisti, geologi, climatologi, ecc.) sono stati ospiti a bordo ed hanno condotto numerosi esperimenti e osservazioni. La ricerca di Enel ha contribuito al progetto dotando Adriatica di generatori per la produzione di energia rinnovabile, che hanno permesso un sensibile risparmio di combustibile fossile, normalmente utilizzato dai generatori diesel per le utenze di bordo. Inoltre, stato installato e testato un sistema sperimentale di accumulo energetico che produce idrogeno, lo immagazzina sotto forma di idruri e lo riutilizza in una cella a combustibile PEM, fornendo alimen-

tazione a due delle utenze fondamentali per la navigazione (radar e luci di posizione) anche in condizioni di malfunzionamento del sistema elettrico standard di bordo.

SCOPO DEL PROGETTO


Lo scopo del progetto era quello di studiare l'applicabilit di sistemi di produzione di energia rinnovabile accoppiati all'accumulo di idrogeno in una postazione isolata, in particolare su un'imbarcazione per le traversate oceaniche, dove i particolari requisiti in termini di sicurezza e volumi ridotti si abbinano alla presenza di un ambiente particolarmente ostile in termini di sbalzi termici, umidit, presenza di salmastro e forti sollecitazioni meccaniche. Inoltre, l'impossibilit di intervenire con personale specializzato durante tutti i sei mesi di viaggio, rendeva necessario sviluppare un sistema di acquisizione e controllo particolarmente robusto, sia dal punto di vista hardware che software e completamente automatizzato, anche per ci che

23

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

06

riguarda la trasmissione dei dati verso l'Italia, effettuata per mezzo di un sistema satellitare Inmarsat. Il cuore del sistema di acquisizione dati costituito da un Compact FieldPoint National Instruments installato a poppa in un quadro a tenuta stagna per esigenze di spazio, mentre lapplicativo che girava su di un laptop in plancia stato sviluppato utilizzando LabVIEW. Il programma costituito da una sezione di lettura dati dal Compact FieldPoint e da una stazione meteorologica collegata via USB (letture di tutti i dati una volta al secondo e successive medie al minuto e all'ora), da una di controllo di eventuali errori dovuti ad interruzioni di energia o altri disturbi (molto frequenti), da una di memorizzazione e di backup dell'intero set dei dati memorizzati ogni 24 ore e infine da una sezione autonoma che gestiva l'antenna satellitare Inmarsat collegata al PC per via seriale, per la quale stato scritto un driver completo che ha permesso l'invio via email, a cadenza bioraria, di set di dati mediati. Il driver stesso era in grado di verificare la copertura satellitare, la posizione via GPS (di cui l'antenna dotata) e l'avvenuto invio a buon fine dell'ultima email (quindi l'eventuale doppio invio in presenza di malfunzionamenti).

Per tutti i sei mesi di viaggio i dati sono stati ricevuti regolarmente in Italia, con la sola interruzione di pochi giorni dovuti ad una forte tempesta che ha imposto la temporanea rimozione dell'antenna per evitare danni strutturali. Un altro applicativo, con lettura pi rapida di alcune grandezze, stato utilizzato durante il collaudo del sistema per verificare le curve di caricamento/scaricamento del serbatoio di idruri e di funzionamento sia dell'elettrolizzatore che della fuel cell. Alla fine del viaggio Adriatica rientrata in Italia e si provveduto alla verifica delle condizioni del sistema, che si rivelato perfettamente funzionante, sia dal punto di vista delle apparecchiature che dell'hardware e software di acquisizione dati. Inoltre, nonostante non sia stato possibile, per motivi di tempo, scrivere un applicativo che girasse completamente sul Compact FieldPoint, molto pi affidabile del laptop, la qualit dei dati raccolti risultata molto buona.

CONCLUSIONE
I risultati ottenuti dalla sperimentazione sono di estrema utilit per valutare lapplicabilit di questo tipo di soluzioni, che comunque necessitano di ulteriore sviluppo tecnologico dal punto di vista dellefficienza energetica, in condizioni ambientali estreme e con scarse o nulle possibilit di interventi manutentivi per lunghi periodi di tempo.

PROBLEMI PARTICOLARI
Nonostante la velocit di lettura dei dati fosse ridotta (circa 40 grandezze a intervalli di un secondo), stato necessario sviluppare una serie di procedure per il controllo della coerenza dei dati raccolti, mediati e salvati. Una discreta quantit di misure stata automaticamente scartata dal software per problemi derivanti da disturbi elettrici e da interruzioni dellalimentazione del sistema o del laptop. Inoltre, le forti sollecitazioni meccaniche dovute soprattutto alla navigazione in mare agitato, potevano rendere precari o danneggiare irreparabilmente connessioni, contatti e cablaggi.

Note sullautore:
M. Schiavetti, Enel Produzione

24

Readerser vice.it n.615

SCUOLA DI LABVIEW

06

Training per principianti

CONTROLLO
a cura di Matteo Foini

DELLINTERFACCIA UTENTE
Il VI Ser ver permette di accedere alle propriet e ai metodi del pannello frontale

uando scrivete dei programmi, spesso dovete cambiare gli attributi degli oggetti del pannello frontale da programma. Per esempio, potreste desiderare di rendere un oggetto invisibile fino a un certo punto dellesecuzione del programma. In LabVIEW, si usa il VI Server per accedere alle propriet e ai metodi del pannello frontale. Questa lezione spiega il VI Server, i Property Node (nodi delle propriet), i Control Reference (riferimenti dei controlli) e gli Invoke Node (nodi di chiamata).

Gli oggetti possono avere metodi e propriet. I metodi effettuano unoperazione, come la reinizializzazione di un oggetto al suo valore di default. Le propriet sono gli attributi di un oggetto. Le propriet di un oggetto possono essere la dimensione, il colore, la visibilit e cos via.

CLASSI DEI CONTROLLI


Gli oggetti del pannello frontale in LabVIEW ereditano propriet e metodi da una classe. Quando create un controllo Stop, esso un oggetto della classe dei booleani e ha propriet e metodi associati con quella classe, come mostrato nella Figura 1.

CLASSE DEI VI
I controlli non sono gli unici oggetti di LabVIEW che appartengono ad una classe. Il vostro VI appartiene alla classe dei VI e ha associate le sue propriet e i suoi metodi. Per esempio, potete usare i metodi della classe dei VI per terminare lesecuzione del vostro VI, per sistemare la posizione del pannello frontale e per prendere unimmagine dello schema a blocchi. Potete usare le propriet della classe dei VI per cambiare il titolo della finestra del vostro pannello frontale, per recuperare la dimensione dello schema a blocchi e per nascondere il pulsante di abbandono.

Figura 1 - Esempio di classe di booleani

A. ARCHITETTURA DEL VI SERVER


Il VI Server una tecnologia indipendente dalla piattaforma e orientata agli oggetti che d accesso in maniera programmatica a LabVIEW e alle applicazioni in LabVIEW. Il VI Server svolge molte funzioni; tuttavia, questa lezione si concentra sullutilizzo del VI Server per controllare gli oggetti del pannello frontale e modificare le propriet di un VI e di LabVIEW. Per capire come usare il VI Server, utile comprendere la terminologia ad esso associata.

B. PROPERTY NODE
I Property Node danno accesso alle propriet di un oggetto. In alcune applicazioni, potreste aver bisogno di cambiare da programma laspetto del pannello frontale in risposta a certi dati di ingresso. Per esempio, se un utente inserisce una password non valida, potreste volere che cominci a lampeggiare un LED rosso. Un altro esempio cambiare colore a una traccia su un grafico. Quando i dati superano un certo valore, potreste voler mostrare una traccia rossa invece di una verde. I Property Node vi consentono di effettuare queste modifiche programmaticamente. Potete anche usare i Property Node per ridimensionare gli oggetti del pannello

TERMINOLOGIA OBJECT-ORIENTED
La programmazione orientata agli oggetti basata su oggetti. Un oggetto un membro di una classe. Una classe definisce cosa un oggetto capace di fare, quali operazioni pu effettuare (metodi) e quali propriet possiede, quali il colore, la dimensione e cos via.

26

SCUOLA DI LABVIEW

frontale, nascondere parti del pannello frontale, aggiungere cursori ai grafici da programma e cos via. I Property Node in LabVIEW sono molto potenti e hanno molti usi. Questa sezione descrive degli esempi di propriet specifiche che possono cambiare da programma lapparenza e la funzione degli oggetti del pannello frontale. Fate riferimento al LabVIEW Help per maggiori informazioni sui Property Node.

CREAZIONE DI PROPERTY NODE


Quando volete creare un Property Node da un oggetto del pannello frontale, cliccate con il tasto destro sulloggetto, selezionate CreateProperty Node e selezionate una propriet dal menu rapido. In questo modo LabVIEW crea sullo schema a blocchi un Property Node che implicitamente collegato alloggetto del pannello frontale. Se loggetto ha una propria etichetta, il Property Node avr la stessa etichetta. Potete cambiare letichetta dopo la creazione del nodo. Potete anche creare pi Property Node per lo stesso oggetto.

sulla propriet, cliccate con il tasto destro sul nodo e selezionate Change to Write dal menu rapido. Se la piccola freccia di direzione della propriet sulla destra, state leggendo il valore della propriet. Se la piccola freccia di direzione della propriet sulla sinistra, state scrivendo il valore della propriet. Se il Property Node nella figura 2 impostato su Read (Lettura), quando va in esecuzione d come dato di uscita un booleano True se il controllo visibile e un booleano False se esso invisibile. Suggerimento Alcune propriet sono di sola lettura (come la propriet Label) o di sola scrittura come la propriet Value (Signaling). Per aggiungere dei terminali al nodo, cliccate con il tasto destro e selezionate Add Element dal menu rapido o usate lo strumento Positioning per ridimensionare il nodo. Quindi, potete associare ad ogni terminale del Property Node una differente propriet dal suo menu rapido. Suggerimento I Property Node eseguono ogni terminale in ordine dallalto verso il basso. Alcune propriet usano i cluster. Questi cluster contengono diverse propriet alle quali potete accedere usando le funzioni dei cluster. Scrivere su queste propriet in gruppo richiede la funzione Bundle e leggere da queste propriet richiede la funzione Unbundle. Per accedere alle propriet raggruppate, selezionate dal menu rapido All Elements. Per esempio, potete accedere a tutti gli elementi nella propriet Position selezionando PropertiesPositionAll Elements dal menu rapido. Tuttavia, potete anche accedere agli elementi del cluster come propriet singole, come mostrato nella figura 3.

UTILIZZO DEI PROPERTY NODE

Quando create un Property Node, esso inizialmente ha un terminale che rappresenta una propriet che potete modificare per il corrispondente oggetto del pannello frontale. Usando questo terminale, potete impostare (scrivere) la propriet oppure ottenere (leggere) lo stato corrente di quella propriet. Per esempio, se create un Property Node per un controllo numerico digitale, esso appare sullo schema a blocchi con la propriet Visibleselezionata di default. Una piccola freccia appare sul lato destro di quel terminale, indicando che state leggendo il valore di quella propriet. Potete cambiare lazione in scrittura cliccando con il tasto destro sul terminale e selezionando Change To Write dal menu rapido. La scrittura di un booleano False sul terminale della propriet Visible fa sparire il controllo numerico dal pannello frontale quando il Property Node riceve i dati. Figura 3 - Propriet che utilizzano i cluster Un booleano True lo fa riapparire. Per avere informazioni sulla propriet, cliccate con il tasto destro sul nodo e poi selezionate Change C. RIFERIMENTI DEI CONTROLLI to Read dal menu rapido. Per impostare le informazioni Un Property Node creato da un oggetto del pannello frontale o da un terminale dello schema a blocchi un Property Node implicitamente collegato. Questo significa che il Property Node collegato alloggetto del pannello frontale. Che cosa succede se dovete inserire i vostri Property Node in un subVI?. Allora gli oggetti non sono pi situati sul pannello frontale del VI che contiene i Property Node. In questo caso avete bisogno di Property Figura 2 - Utilizzo dei Proper ty Node Node collegati esplicitamente. Potete creare un Property

27

SCUOLA DI LABVIEW

06

Node esplicitamente collegato collegando un riferimento a un Property Node generico. Se state costruendo un VI che contiene diversi Property Node o se state accedendo alla stessa propriet per parecchi controlli e indicatori, potete inserire il Property Node in un subVI e usare i riferimenti dei controlli per accedere a quel nodo. Un riferimento del controllo un riferimento a uno specifico oggetto del pannello frontale.

Nota Una stella rossa sul controllo Control Reference indica che il refnum di tipo strict. Fate riferimento alla sezione Strictly Typed and Weakly Typed Control References dellargomento Controlling Front Panel Objects del LabVIEW Help.

CREAZIONE DEI RIFERIMENTI DEI CONTROLLI


Per creare un riferimento del controllo per un oggetto del pannello frontale, cliccate con il tasto destro sulloggetto o sul suo terminale sullo schema a blocchi e selezionate CreateReference dal menu rapido. Potete collegare questo riferimento del controllo a un Property Node generico. Potete passare il riferimento del controllo ad un subVI usando un terminale control refnum.

CREAZIONE DI UN SUBVI CON I PROPERTY NODE


Come mostrato nella figura 4, il modo pi semplice di creare Property Node collegati esplicitamente di completare i seguenti passaggi: 1. Create il vostro VI. 2. Selezionate la parte dello schema a blocchi che nel subVI, come mostrato nella prima parte della figura 4. 3. Selezionate EditCreate SubVI. LabVIEW crea automaticamente i riferimenti dei controlli necessari al subVI. 4. Personalizzate e salvate il subVI. Come potete vedere nella seconda parte della figura 4, il subVI utilizza licona e il riquadro dei connettori di default. Il subVI creato mostrato nella figura 5. Notate che i controlli Refnum del pannello frontale sono stati creati e connessi a un property node sullo schema a blocchi.

UTILIZZO DEI RIFERIMENTI DEI CONTROLLI


Impostare le propriet con il metodo dei riferimenti dei controlli utile per impostare le stesse propriet per pi controlli. Alcune propriet si applicano a tutte le classi di controlli, come la propriet Disabled. Alcune propriet sono applicabili solo a certe classi di controlli, come la propriet Housing Size, che si applica solo ai controlli Dial e Knob. Lesempio della figura 6 mostra come costruire un VI che utilizza un riferimento dei controlli sul subVI per impostare lo stato di un controllo Enable/Disable sul pannello frontale del VI principale. Il VI principale invia un riferimento per il controllo numerico digitale al subVI insieme a un valore zero, uno o due dal controllo enumerated. Il subVI riceve il riferimento per mezzo di Ctl Refnum sul suo pannello frontale. Il riferimento viene poi passato al Property Node. Poich il Property Node adesso collegato ad un controllo numerico nel VI principale, il Property Node pu cambiare le propriet di quel controllo. In questo caso, il Property Node manipola lo stato Enabled/Disabled. Notate laspetto del Property Node nello schema a blocchi. Non potete selezionare una propriet in un Property Node generico fino a quando non viene

Figura 4 - Utilizzo di EditCreate subVI per creare i riferimenti dei controlli

Figura 5 - Sub VI creato utilizzando EditCreate SubVI

28

SCUOLA DI LABVIEW

scelta la classe.La classe viene scelta collegando un riferimento al Property Node, Questo un esempio di Property Node collegato esplicitamente: Esso non collegato ad un controllo fino a quando il VI non in esecuzione e un riferimento passato al Property Node. Il vantaggio di questo tipo di Property Node la sua natura

D. INVOKE NODE
Usate gli Invoke Node per accedere ai metodi di un oggetto. Diversamente dal Property Node, un singolo Invoke Node esegue solo un singolo metodo per unapplicazione o un VI. Selezionate un metodo usando lo strumento Operating per cliccare sul terminale del metodo o cliccando con il tasto destro sullarea bianca del nodo e selezionando Methods dal menu rapido. Potete anche creare un Invoke Node cliccando con il tasto destro sulloggetto, selezionando CreateInvoke Node e selezionando un metodo dal menu rapido. Il nome del metodo sempre il primo terminale nellelenco dei parametri dellInvoke Node. Se il metodo restituisce un valore, il terminale del metodo visualizza il valore restituito. Altrimenti il terminale del metodo non d alcun valore. LInvoke Node elenca i parametri dallalto verso il basso con il nome del metodo in cima e i parametri opzionali, che sono opachi, in basso.

METODI DI ESEMPIO
Figura 6 - Riferimenti dei controlli

generica. Poich esso non ha alcun collegamento esplicito ad alcun controllo, pu essere riutilizzato per pi controlli diversi, Questo generico Property Node disponibile nella palette Functions.

Un esempio di un metodo comune a tutti i controlli il metodo Reinitialize to Default. Usate questo metodo per reinizializzare un controllo riportandolo al suo valore di default in un qualsiasi punto del vostro VI. La VI class ha un metodo simile chiamato Reinitialize All to Default.

SELEZIONE DEL TIPO DI CONTROLLO


Quando inserite un Control Refnum nel pannello frontale di un subVI, avete poi bisogno di specificare la VI Server Class del controllo. Questo specifica il tipo di riferimenti dei controlli che quel subVI accetter. Nellesempio precedente, Control era selezionato come tipo VI Server Class, come mostrato nella figura 6. Questo consente al VI di accettare un riferimento per qualsiasi tipo di controllo del pannello frontale. Tuttavia, potete indicare una classe pi specifica per il refnum per rendere il subVI pi restrittivo. Per esempio, potete selezionare Digital come classe e il subVI pu accettare solo riferimenti a controlli numerici della classe Digital. La selezione di una classe pi generica per un refnum del controllo consente di accettare un pi vasto insieme di oggetti, ma limita le propriet disponibili a quelle che si applicano a tutti gli oggetti che il Property Node pu accettare. Per selezionare una specifica classe di controlli, cliccate con il tasto destro sul controllo e selezionate Select VI Server ClassGenericGObjectControl dal menu rapido. Poi selezionate la specifica classe di controlli di cui avete bisogno.

Figura 7 - Invoke Node per il metodo Expor t Image

La figura 7 un esempio di metodo associato alla classe Waveform Graph. Questo metodo esporta limmagine del waveform graph sulla clipboard o su un file.
Readerser vice.it n. 625

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

29

SCUOLA DI LABVIEW

06

Training per esperti


RICHIAMARE OGGETTI IN LABVIEW
a cura di Matteo Foini

LabVIEW permette di accedere ad altre applicazioni Windows utilizzando le tecnologie .NET o ActiveX

l termine .NET fa riferimento alla tecnologia .NET di Microsoft. Il framework .NET la base di programmazione dellambiente .NET per costruire, rilasciare ed eseguire applicazioni basate su Web, applicazioni smart client e Web service XML. quindi necessario installare il framework .NET. Per maggiori informazioni si pu consultare il sito Web MSDN.

Nota Creare e comunicare con oggetti .NET richiede il .NET Framework 1.1 Service Pack 1 o successivo. Inoltre, National Instruments raccomanda vivamente di utilizzare solo oggetti .NET nei progetti LabVIEW. Il termine ActiveX si riferisce invece alla tecnologia ActiveX e alla tecnologia OLE di Microsoft. Con ActiveX Automation, unapplicazione Windows, come LabVIEW, fornisce un set pubblico di oggetti, comandi e funzioni a cui altre applicazioni Windows possono accedere. In questa prima parte verranno discussi i seguenti argomenti: A. Richiamo di oggetti in LabVIEW utilizzando ActiveX B. Uso di LabVIEW come Client ActiveX C. Uso di LabVIEW come Server ActiveX D. Eventi ActiveX Nella seconda parte, che verr pubblicata sul numero di Settembre, verranno invece trattati i temi seguenti: E. Richiamo di oggetti in LabVIEW utilizzando .NET F. Implementazione di .NET G. Registriazione di Eventi .NET A. Richiamo di oggetti in LabVIEW utilizzando ActiveX Potete utilizzare LabVIEW come client ActiveX per accedere ad oggetti, propriet, metodi ed eventi associati ad altre applicazioni abilitate ActiveX. LabVIEW pu operare anche come server ActiveX, permettendo ad altre applicazioni di accedere ad oggetti, propriet e metodi di LabVIEW. Oggetti, propriet, metodi ed eventi ActiveX Le applicazioni abilitate ActiveX includono oggetti aventi propriet e metodi accessibili ad altre applicazioni. Gli oggetti possono essere visibili agli utenti, come nel caso di pulsanti, finestre, immagini, documenti ed aree di dialogo, o invisibili agli utenti, come oggetti di applicazioni. Potete accedere a unapplicazione accedendo a un oggetto asso-

ciato a quellapplicazione e settando una propriet o invocando un metodo di quelloggetto. Gli eventi sono le azioni eseguite su un oggetto, come cliccare un mouse, premere un tasto o ricevere notifiche circa fatti come lesaurimento della memoria o il completamento di task. Ogni volta che queste azioni si verificano sulloggetto, loggetto invia un evento per avvertire il contenitore ActiveX, insieme ai dati specifici allevento. Loggetto ActiveX definisce gli eventi disponibili per un oggetto. VI ActiveX, funzioni, controlli e indicatori Utilizzate i VI, le funzioni, i controlli e gli indicatori seguenti per accedere ad oggetti, propriet, metodi ed eventi associati ad altre applicazioni abilitate ActiveX: Usate il controllo automation refnum per creare un riferimento ad un oggetto ActiveX. Cliccate con il tasto destro su questo controllo sul pannello frontale per selezionare un oggetto dalla type library a cui volete accedere. Usate la funzione Automation Open per aprire un oggetto ActiveX. Usate il contenitore ActiveX per accedere ad un oggetto ActiveX sul pannello frontale e visualizzarlo. Cliccate con il tasto destro sul contenitore, selezionate Insert ActiveX Object nel menu abbreviato e selezionate loggetto a cui volete accedere. Usate il Property Node per leggere (get) o scrivere (set) le propriet associate ad un oggetto ActiveX. Usate lInvoke Node per invocare i metodi associati a un oggetto ActiveX. Usate la funzione Register Event Callback per gestire gli eventi che si verificano su un oggetto ActiveX. Usate il controllo e lindicatore variant per trasferire dati verso o da controlli ActiveX. Suggerimento Selezionate Tools.NET & ActiveXAdd ActiveX Controls to Palette per aggiungere file di controllo custom alla palette dei controlli ActiveX. B. Uso di LabVIEW come Client ActiveX Quando LabVIEW accede agli oggetti associati a unaltra applicazione abilitata ActiveX, agisce come client ActiveX. Potete usare LabVIEW come client ActiveX nei modi seguenti:

30

SCUOLA DI LABVIEW

Aprite unapplicazione, come Microsoft Excel, create un documento ed aggiungete dati al documento. Incorporate un documento, come un documento Microsoft Word o uno spreadsheet Excel, sul pannello frontale in un contenitore. Piazzate sul pannello frontale un pulsante o un altro oggetto di unaltra applicazione, come un pulsante Help che richiama il file help dellaltra applicazione. Linkate da unaltra applicazione un controllo ActiveX che avete costruito. LabVIEW accede a un oggetto ActiveX con il controllo automation refnum o il contenitore ActiveX, che sono entrambi oggetti del pannello frontale. Usate il controllo automation refnum per selezionare un oggetto ActiveX. Usate il contenitore ActiveX per selezionare un oggetto ActiveX visualizzabile, come un pulsante o un documento, e piazzatelo sul pannello frontale. Entrambi gli oggetti appaiono come controlli automation refnum sullo schema a blocchi. La fig. 1 illustra come LabVIEW, operando come client ActiveX, interagisce con le applicazioni server.

Chiudendo il riferimento si rimuove loggetto dalla memoria. Per esempio, potete costruire un VI che apre Microsoft Excel in modo che appaia sullo schermo dellutente, crei un workbook, crei uno spreadsheet, crei una tabella in LabVIEW e scriva tale tabella nello spreadsheet Excel. Consultate il VI Write Table To XL in labview\examples\ comm\ExcelExamples.llb per un esempio sulluso di LabVIEW come client Excel. Inserimento di un oggetto ActiveX sul pannello frontale Per inserire un oggetto ActiveX sul pannello frontale, cliccate con il tasto destro sul contenitore ActiveX, selezionate Insert ActiveX Object dal menu abbreviato e selezionate il controllo o il documento ActiveX che volete inserire. Potete settare le propriet di un oggetto ActiveX usando lActiveX Property Browser o le pagine delle propriet, oppure potete settare le propriet da programma usando il Property Node. Usate lInvoke Node per invocare i metodi associati con loggetto. Per esempio, potete visualizzare una pagina Web sul pannello frontale usando un contenitore ActiveX per accedere al controllo Microsoft Web Browser, selezionando la classe di metodi Navigate, selezionando il metodo URL e specificando lURL. Se usate il contenitore ActiveX, non dovete collegare il controllo automation refnum sullo schema a blocchi alla funzione Automation Open o chiudere il rifrimento alloggetto usando la funzione Close Reference. Potete collegare direttamente lInvoke Node o il Property Node perch il contenitore ActiveX incorpora lapplicazione chiamante in LabVIEW. Tuttavia, se il contenitore ActiveX include propriet o metodi che restituiscono altri automation refnum, dovete chiudere tali riferimenti addizionali. Design Mode per oggetti ActiveX Cliccate con il tasto destro su un contenitore ActiveX e selezionate AdvancedDesign Mode dal menu abbreviato per visualizzare il contenitore in design mode mentre editate il VI. In design mode non vengono generati eventi e non sono eseguite procedure di evento. La modalit di default la run mode, nella quale potete interagire con loggetto come farebbe lutente. Impostazione delle propriet ActiveX Dopo avere aperto un server ActiveX o avere inserito un controllo o un documento ActiveX, potete settare le propriet associate a quel controllo o documento usando lActiveX Property Browser, le pagine delle propriet e il Property Node. ActiveX Property Browser Usate lActiveX Property Browser per visualizzare e impostare tutte le propriet associate a un controllo o documento ActiveX in un contenitore ActiveX. Per accedere

Figura 1 - LabVIEW come ActiveX Automation Client

LabVIEW accede alla type library del server per ottenere informazioni circa i suoi oggetti, metodi e propriet. LabVIEW pu eseguire azioni come invocare metodi, leggere o scrivere propriet e cos via. Accesso ad unapplicazione abilitata ActiveX Per accedere a unapplicazione abilitata ActiveX, usate il controllo automation refnum sullo schema a blocchi per creare un riferimento a unapplicazione. Collegate il controllo alla funzione Automation Open, che apre lapplicazione chiamante. Usate il Property Node per selezionare e accedere alle propriet associate con loggetto. Usate lInvoke Node per selezionare e accedere ai metodi associati con loggetto. Chiudete il riferimeno alloggetto usando la funzione Close Reference.

31

SCUOLA DI LABVIEW

06

allActiveX Property Browser, cliccate con il tasto destro sul controllo o documento nel contenitore sul pannello frontale e selezionate Property Browser nel menu abbreviato. Potete anche selezionare Tools.NET & ActiveXBrowse ActiveX Properties. LActiveX Property Browser un modo semplice per impostare le propriet di un oggetto ActiveX interattivamente, ma non potete usare il browser per impostare le propriet da programma e potete usare lActiveX Property Browser solo con oggetti ActiveX in un contenitore. LActiveX Property Browser non disponibile in run mode o mentre viene eseguito un VI. Pagine delle propriet ActiveX Molti oggetti ActiveX includono pagine di propriet, che organizzano le propriet associate con loggetto su tab separati. Per accedere alle pagine delle propriet ActiveX, cliccate con il tasto destro sulloggetto nel contenitore sul pannello frontale e selezionate il nome delloggetto nel menu abbreviato. Analogamente allActiveX Property Browser, anche le pagine delle propriet ActiveX sono un modo semplice per impostare le propriet di un oggetto ActiveX interattivamente, ma non potete utilizzarle per impostare le propriet da programma, e potete usare le pagine delle propriet solo con gli oggetti ActiveX in un contenitore. Le pagine delle propriet non sono disponibili per tutti gli oggetti ActiveX. Inoltre, le pagine delle propriet non sono disponibili in run mode o mentre il VI in esecuzione.

fa parte della National Instruments Measurement Studio User Interface ActiveX Library, quando la temperatura raggiunge o supera 85 gradi Fahrenheit. In questo caso, il controllo CWButton opera come un LED, cambia colori e visualizza Warning quando la temperatura raggiunge il limite, che lo stato on del controllo CWButton. Nota In questo esempio, potete utilizzare lActiveX Property Browser o le pagine delle propriet per impostare le propriet OffText, OffColor, OnText e OnColor per il controllo CWButton, perch non necessario impostare queste propriet da programma. C. Uso di LabVIEW come Server ActiveX Lapplicazione LabVIEW, i VI e le propriet e i metodi di controllo sono disponibili tramite chiamate ActiveX da altre applicazioni. Altre applicazioni abilitate ActiveX, come Microsoft Excel, possono richiedere propriet, metodi e singoli VI da LabVIEW, e LabVIEW opera come server ActiveX. Per esempio, potete incorporare un VI graph in uno spreadsheet Excel e dallo spreadsheet inserire dati negli input del VI ed eseguire il VI. Quando eseguite il VI, i dati sono plottati nel grafico. Consultate labview\examples\comm\freqresp.xls per un esempio duso delle propriet e dei metodi LabVIEW in uno spreadsheet Excel. LabVIEW supporta uninterfaccia ActiveX verso il VI Server. Tale interfaccia con il server permette alle applicazioni client di accedere da programma a LabVIEW. La fig. 3 illustra come LabVIEW opera come server ActiveX per interagire con le applicazioni client. La type library di LabVIEW, labview.tlb, fornisce informazioni circa oggetti, metodi e propriet di LabVIEW. Le applicazioni client possono accedere ai metodi e scrivere o leggere propriet del server ActiveX LabVIEW. Potete usare LabVIEW come server ActiveX, permettendo ad altri client abilitati ActiveX di richiedere propriet e metodi da LabVIEW e singoli VI. Per configurare LabVIEW come server ActiveX, selezionate ToolsOptions per visualizzare larea di dialogo Options. Selezionate VI Server: Configuration nel menu a tendina superiore e mettete un segno di spunta su ActiveX. Supporto per interfacce ActiveX Automation personalizzate Se state scrivendo un client ActiveX che accede a propriet e metodi di un server ActiveX usando LabVIEW, potete accedere alle interfacce custom esposte dal server. A tale scopo, non necessario utilizzare IDispatch. Tuttavia, lo sviluppatore del server ActiveX deve fare in modo che i parametri delle propriet e dei metodi in tali interfacce custom abbiano tipi di dati Automation (IDispatch). Lo sviluppatore del server deve fare in questo modo per esporre pi interfacce da un oggetto, anzich da pi oggetti.

Figura 2 - Cambiamento della propriet Value per il controllo ActiveX CWButton

Property Node Usate il Property Node per impostare le propriet ActiveX da programma. Per esempio, se usate un oggetto ActiveX per avvertire un utente quando una temperatura supera un limite, usate il Property Node per impostare la propriet Value delloggetto per specificare il limite. Lo schema a blocchi di fig. 2 illustra un esempio che cambia la propriet Value per il controllo ActiveX CWButton, che

32

SCUOLA DI LABVIEW

vento. Per creare un VI di callback, cliccate con il tasto destro sullinput VI Ref della funzione Register Event Callback e selezionate Create Callback VI nel menu abbreviato. LabVIEW crea un VI rientrante. Aprite il VI ed editate lo schema a blocchi per gestire levento. Il VI di callback contiene i seguenti elementi: Event common data contiene i seguenti elementi: Source un controllo numerico che specifica la sorgente dellevento, come LabVIEW o ActiveX. Un valore 1 indica un evento ActiveX. Type specifica quale evento si verificato. Questo un tipo enumerato per gli eventi dellinterfaccia utente e un tipo intero senza segno a 32 bit per le sorgenti ActiveX e altre sorgenti di eventi. Per gli eventi ActiveX, il tipo di evento rappresenta il codice del metodo, o ID, per levento registrato. Time il time stamp in millisecondi che specifica quando stato generato levento. Control Ref un riferimento allActiveX o allAutomation Refnum su cui si verificato levento. Event Data un cluster dei parametri specifici allevento gestito dal VI di callback. LabVIEW determina lappropriato Event Data quando selezionate un evento dalla funzione Register Event Callback. Se un evento non ha alcun dato associato ad esso, LabVIEW non crea questo controllo nel VI di callback. Event Data Out un cluster dei parametri modificabili specifici allevento gestito dal VI di callback. Tale elemento disponibile solo se levento ActiveX ha parametri duscita. (Opzionale) User Parameter il dato che si desidera passare al VI di callback quando loggetto ActiveX genera levento. Nota Potete usare un VI esistente come VI di callback purch il pannello dei connettori del VI che intendete utilizzare corrisponda al pannello dei connettori dei dati di evento. Il VI di callback deve essere rientrante e la reference al VI di callback deve essere strettamente tipizzato. Non potete eseguire chiamate sincrone a finestre di dialogo non modali da un VI di callback. Dovete chiamarle in modo asincrono da un VI di callback invocando un metodo Run VI e scrivendo una costante booleana FALSE allingresso Wait Until Done del metodo.
Readerser vice.it n. 626

Figura 3 - LabVIEW ActiveX Automation Server

D. Eventi ActiveX Per usare eventi ActiveX in unapplicazione, dovete registrare levento e gestirlo quando si verifica. La registrazione degli eventi ActiveX simile alla registrazione degli eventi dinamici. Tuttavia, larchitettura del VI di un evento ActiveX diversa dallarchitettura di un VI di gestione eventi. Un tipico VI di evento ActiveX formato dai seguenti componenti: Oggetto ActiveX per il quale desiderate generare un evento. Funzione Register Event Callback per specificare e registrare il tipo di evento che volete generare. VI Callback contenente il codice che dovete scrivere per gestire levento che specificate. Potete generare e gestire eventi relativi a oggetti ActiveX in un contenitore o relativi a oggetti ActiveX che specificate usando un Automation Refnum. Per esempio, potete chiamare un controllo ad albero Windows da un contenitore ActiveX e specificare che volete generare un evento Double Click per gli elementi visualizzati nel controllo ad albero. La funzione Register Event Callback un nodo ridimensionabile in grado di gestire pi eventi, analogamente alla funzione Register For Events. Quando cablate la reference di un oggetto ActiveX alla funzione Register Event Callback e specificate levento che volete generare per quelloggetto, state registrando loggetto ActiveX per quellevento. Dopo la registrazione, create un VI di callback che contiene il codice scritto per gestire levento. Eventi diversi possono avere formati dati differenti, quindi cambiare levento dopo avere creato un VI di callback potrebbe rompere i fili di connessione sullo schema a blocchi. Selezionate quindi levento prima di creare il VI di callback. Gestione di Eventi ActiveX Dovete creare un VI di callback per gestire eventi dai controlli ActiveX quando i controlli stessi generano gli eventi registrati. Il VI di callback viene eseguito al verificarsi delle-

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

33

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

06

HTTP://WWW
Quando le nostre pagine non bastano, lenorme serbatoio del web pu dare una mano. Su una rivista c ar tacea, anche la pi voluminosa, sarebbe impossibile trattare per esteso tutti gli argomenti relativi a LabVIEW. In molti casi, tuttavia, sul web sono disponibili ar ticoli esaustivi o altri documenti, a cui rimandiamo i lettori interessati. Il gioco Cannons dimostra luso del supporto integrato in LabVIEW per la programmazione orientata agli oggetti, enfatizzando concetti chiave come lincapsulamento e la modularit. Questi principi aiutano a ridurre il numero di fili (connessioni) richiesti nelle parti del programma di pi alto livello e semplificano le operazioni di modifica dei subVI senza la necessit di cambiare il codice che li utilizza come componenti. Il main VI del progetto usa unarchitettura produttoreconsumatore e una struttura a eventi per reagire agli input dellutente. Link alla pagina: ni.com/italian infocode: it59xt

Cannons (Programmazione orientata agli oggetti)

Uso del CAN con il LabVIEW Simulation Interface Toolkit Modello freni ABS
Questo esempio dimostra come potete utilizzare il CAN con il Simulation Interface Toolkit. Il modello quello di un sistema frenante ABS. In questo modello, i segnali di velocit del veicolo e delle ruote non sono collegati. Tali collegamenti verranno completati in un loop retroazionato utilizzando il DAQ, il CAN o una combinazione dei due. Link alla pagina: ni.com/italian infocode: it59xt

Implementare il protocollo I2C in LabVIEW FPGA


LI2C un comune protocollo di comunicazione usato nella progettazione di schede per la comunicazione fra il processore e i componenti periferici. Esso si basa su un semplice protocollo sincrono a due fili. Le velocit di comunicazione pi comuni sono 100 e 400 kbps, ma oggi si utilizzano anche velocit pi elevate. Usando lFPGA su hardware RIO e CompactRIO possiamo facilmente implementare uninterfaccia di comunicazione I2C e integrarla con il resto della nostra applicazione. Questo ci permette di comunicare con componenti commerciali per estendere le funzionalit dellhardware RIO/CompactRIO. Inoltre, ci consente di usare lhardware RIO/CompactRIO per automatizzare e integrare applicazioni di validazione e di test dei progetti di chip e componenti. Link alla pagina: ni.com/italian infocode: it59xt

Accedere alle informazioni sulla Time Zone di Windows in LabVIEW


Questo esempio fornisce uninterfaccia LabVIEW per le funzioni GetTimeZoneInformation e SetTimeZoneInformation disponibili in kernel32.dll. Il VI denominato TimeZone_Example.vi fornisce uninterfaccia che permetter di eseguire cambiamenti alle impostazioni delle time zone di Windows e di rileggerli. Questo dimostra come passare delle struct a dll utilizzando cluster e come convertire stringhe Ascii nel formato Wchar utilizzato da Windows. Link alla pagina: ni.com/italian infocode: it59xt

34

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

Costruire registri a scorrimento non inizializzati a esecuzione singola


Un registro a scorrimento non inizializzato tiene in memoria i valori da una chiamata a un subVI alla successiva. Se un programma contiene pi livelli di VI, i VI di livello superiore chiamano i subVI per eseguire determinate operazioni durante lesecuzione del programma. Un subVI pu essere chiamato pi volte durante lesecuzione del programma. Usate i registri a scorrimento non inizializzati per memorizzare un conteggio di esecuzioni o altre informazioni simili relative allesecuzione di un programma. I registri a scorrimento memorizzano i valori fra esecuzioni successive. Supponiamo che dobbiate contare quante volte un dato evento si verifica durante unesecuzione. Potete usare un registro a scorrimento non inizializzato in un subVI e incrementare il valore del registro a scorrimento ogni volta che il loop viene richiamato: quando eseguite il VI una seconda volta, il conteggio riprender dal punto in cui rimasto dopo la prima esecuzione. Per modificare questo comportamento, dovete includere una chiamata speciale al ciclo for o al ciclo while che resetti il loop a zero nei vostri VI di livello superiore. Link alla pagina: ni.com/italian infocode: it59xt

Comunicazione Bluetooth usando il modulo PDA di LabVIEW con dispositivi Palm OS o PocketPC
LabVIEW 7.1 e successivi includono il supporto per comunicazioni Bluetooth. Il modulo PDA supporta la comunicazione Bluetooth su dispositivi Palm OS 5.0 o successivi e Pocket PC 2003 con il driver Bluetooth Widcomm versione 1.4 o successive. Questo esempio mostra una semplice applicazione Bluetooth client e server che invia dati usando Bluetooth. Link alla pagina: ni.com/italian infocode: it59xt

Ottenere gli elementi figlio in un controllo ad albero di LabVIEW


Questo esempio illustra come ottenere gli elementi figlio di un elemento genitore specificato in un controllo ad albero di LabVIEW. Potete utilizzare lesempio come subVI che riceve in ingresso la reference di un controllo ad albero e un tag genitore e restituisce un array di tag figli Link alla pagina: ni.com/italian infocode: it59xt

Calcolare i giorni trascorsi fra due date in formato stringa


I due VI seguenti convertono le stringhe in timestamp e restituiscono il numero di giorni trascorsi. Il VI Elapsed Days usa la funzione Scan From String per generare il tempo trascorso. Il VI DateString-Days usa la funzione Scan From String e la funzione Date/Time To Seconds per restituire il numero di giorni trascorsi. Link alla pagina: ni.com/italian infocode: it59xt

Trasferire dati in virgola fissa con LabVIEW FPGA 8.5.x


Questo esempio illustra come trasferire dati in vigola fissa da un target FPGA ad un host senza perdere accuratezza. Quando si usano dati in virgola fissa in LabVIEW FPGA, vi sono alcune funzioni come le FIFO e le opzioni di memoria che non accettano dati in virgola fissa. Per utilizzare queste funzioni, i dati devono essere convertiti. I VI allegati indicano come convertire i dati in virgola fissa nella loro rappresentazione binaria e trasferire allhost i dati tramite una FIFO DMA senza perdere accuratezza. Link alla pagina: ni.com/italian infocode: it59xt

35

LA VOCE DEGLI UTENTI

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

Punti al posto delle virgole


Inviato: Mar Apr 22, 2008 3:59 pm Ciao a tutti! Innanzi tutto premetto che sono un novizio sia della programmazione in generale sia del LabVIEW, quindi mi scuso in anticipo degli sfondoni che potr dire e dei numerosi post che potr lasciare in caso non riesca a capire le vostre spiegazioni. Detto ci vengo subito al mio problema. Ho scritto un programma che crea e scrive in un nuovo file (che vi allego), programma che poi mi servir per l'acquisizione di dati. Poi per graficare questi dati ho trovato un file sul forum (vi allego anche questo). Il problema che il programma che crea e scrive in un nuovo file genera numeri con la virgola (es 0,521) mentre il programma che grafica i dati funziona solo se i dati sono con punto (es 0.521). Come posso fare a raccordare correttamente i due programmi? - robin_rl Non ho aperto gli allegati ma forse il programma genera o acquisisce i dati con la virgola perch cos impostato nel pannello di controllo, alla voce "Impostazioni internazionali" (stai usando Windows come SO?). Cambia la virgola con il punto e dovrebbe funzionare. Ciao!! - MagicBotolo Se non vuoi toccare le impostazioni internazionali, in labview devi entrare nel menu' sotto Tools -> Options -> Front Panel e deselezionare "Use Localized decimal point". Al prossimo riavvio di Laview, user i punti come separatore decimale. Se per devi farlo per un eseguibile, allora devi editare il file .ini che viene creato insieme all'eseguibile inserendo questo testo: Codice: Seleziona tutto [NomeDell'eseguibilesenzaestensione] useLocaleDecimalPt=False..ma ciao! - gepponline Ho provato entrambe le soluzioni e funziona in entrambi i casi! Grazie 1000!!! - robin_rl [continua su http://www.ilvg.it/ht/3969] robin_rl

Come si creano animazioni?


Inviato: Lun Apr 21, 2008 4:29 pm Come posso creare animazioni o movimenti e soprattutto come posso disegnare oggetti ad esempio cancelli o bracci robotici da poter muovere in seguito? emanuele88 Ciao! Cerca tra gli esempi, ce ne uno che si chiama "robot arm" o qualcosa del genere... ora non ho LV installato qui e non riesco a dirti il nome corretto. Altrimenti, se hai le mesh 3D dell'oggetto, ti crei una picture 3D e usi i tools dedicati alla grafica 3D.Ciao. - P!Pio Puoi usare un picture ring collegato ad una serie di immagini... Mi sembra che si possa collegare un array ad un picture ring per passare una serie di immagini; poi temporizzi e passi da una posizione all'altra del vettore...Ciao!! - MagicBotolo [continua su http://www.ilvg.it/ht/3964] emanuele88

Dimensioni Front Panel


Inviato: Sab Apr 26, 2008 8:12 am Nel programma che sto creando ho la necessit di visualizzare finestre in dimensioni pi piccole di quelle massime. Inizialmente avevo scaricato un vi che permette di settare le dimensioni della finestra in base alle proprie esigenze. Poi invece mi sono affidata al Windows Size del VI Properties. Tuttavia scaricando un p di roba da internet ho visto che in alcuni VI (come quello che ho allegato) la finestra mandata in esecuzione rimane nelle dimensioni stabilite anche se nel Window size sono settate dimensioni 0,0. Come possibile? - DanyB Nelle propriet devi settare anche window runtime, togli la spunta di utilizzare le current values e metti le tue impostazioni di posizione e dimensione. Questa propriet esiste dalla versione 8.2 (forse anche nella 8.0, ma non ne sono sicuro). - nicola [continua su http://www.ilvg.it/ht/3973] DanyB

36

LA VOCE DEGLI UTENTI

Controllo per impostazione COM


Inviato: Mar Apr 22, 2008 1:39 pm Ho 3 strumenti che acquisiscono da RS232 e sono raggruppati in un unico VI. All'apertura del programma ho creato un messaggio che invita l'utente a impostare le com. Premo ok e si apre un subVI con il controllo delle com da settare. Ho creato poi un pulsante di conferma e premendolo vorrei andare su un altro front panel. Come posso fare? Spero di essere stata chiara. - DanyB Basta che gestisci i subvi dal programma principale: 1- lanci il programma principale 2- si apre la box di selezione delle impostazioni della com (subvi1) 3- premi il pulsante di conferma che ti fa uscire dal subvi1 4- entri in un altro subvi. - coma Si, capisco che la logica sia quella, ma, poich sono alle prime armi, non riesco a gestire il pulsante che mi fa uscire dal subvi.(considera che il subvi deve comunque rimanere in esecuzione in backgorund per effettuare il warm up degli strumenti). - DanyB Se il subvi deve rimanere in esecuzione le cose si complicano un po': o adotti una struttura con cicli paralleli oppure devi chiamare i vi dinamicamente. In realt non capisco perch tu debba lasciare in esecuzione un vi che ti serve solo per delle impostazioni iniziali. - coma La cosa dovrebbe essere cos: mentre io faccio il resto, i miei strumenti eseguono il warm up e poi posso partire con la misura. Cmq...Il bottone per uscire dal vi come lo faccio???? Sono troppo imbranata... Non preoccuparti, non sei imbranata, tutti abbiamo qualcosa da imparare: sono sicuro che anche per i "maghi" del forum esistano problemi che ancora non hanno risolto e, quando ben li risolveranno, ne nasceranno di nuovi. Comunque, tornando al tuo problema, io procederei cos: - avvio il programma principale - dopo che l'utente ha scelto quale strumento utilizzare, lancio dinamicamente un vi che esegue il settaggio dello strumento e quando ha ultimato esce automaticamente. Guarda lesempio che ti ho allegato. - coma ...OH MIO DIO!!!!! Non ci ho capito nulla!!!...Sono disperata!!!! La cosa che volevo fare io era moooolto pi semplice...E forse proprio per questo non funziona!!! Cmq, come puoi vedere dall'immagine, quando il sistema mi dice "ATTENZIONE! DEVI SETTARE LE PORTE" si apre quel VI (grazie al "show front panel when called" del "subvi node setup"), setto le porte, premo ok e tutto prosegue, ma la finestra di quel VI non si chiude!!! Secondo me ti conviene utilizzare il VI Server ( un po' complicato all'inizio ma se cerchi in internet su http://www.ni.com o se guardi nel forum trovi sicuramente qualche esempio... appena riesco vedo di prepararne uno): in pratica nel tuo VI indichi che deve essere caricato un secondo VI con l'apertura del pannello frontale, poi metti in attesa il VI principale fino a quando l'utente non ha terminato le operazioni nel VI secondario e a questo punto torni nel VI principale e chiudi il pannello del VI secondario. Ciao!! - MagicBotolo Sono d'accordo, la struttura con il VI Server decisamente migliore per forse un po' troppo complicata per chi alle prime armi con labview. Comunque DanyB ti propongo una modifica all'esempio che ti avevo postato, poi vedi te cosa preferisci fare. coma GRAZIE!!! Il VI perfetto...Grazie di cuore!! - DanyB [continua su http://www.ilvg.it/ht/3966] DanyB

Disattivazione periferica
Inviato: Gio Mar 06, 2008 6:17 pm Qualcuno sa dirmi come si riesce a disattivare una periferica (per esempio Pen drive USB) utilizzando LabView - Michele Lanciando un comando esterno puoi usare il metodo descritto qui: http://ask-leo.com/is_there_a_way_to_sa ... _file.html Altrimenti mi sa che ti devi cercare la dll corrispondente... penso che con sg (san google) non sia difficile. Ciao - P!Pio Lutilizzo di hotplug.dll troppo complicata per un operatore inesperto. Ci sarebbe Devcon di Windows che per nel caso di un card-reader interno non si pu usare perch rimuove il card-reader. Sul sito http://www.uwe-sieber.de ho trovato ejectmedia.exe che funziona perfettamente! Michele [continua su http://www.ilvg.it/ht/3836]

Michele

37

EVENTI

06

NIDAYS HA FESTEGGIATO I SUOI PRIMI 15 ANNI


Nadia Albarello

Ledizione 2008 del Forum Tecnologico sulla Strumentazione Vir tuale organizzato da National Instruments ha registrato la presenza di oltre 450 par tecipanti

ome riferiamo anche nelleditoriale, si svolta il 27 febbraio 2008 a Roma la quindicesima edizione italiana di NIDays e, anche questanno, la forte adesione allannuale conferenza mondiale dedicata alla Strumentazione Virtuale e al Graphical System Design ha confermato linteresse degli addetti ai lavori e del mondo accademico nei confronti di questo evento. Sono stati infatti oltre 450 i visitatori tra ingegneri, tecnici, sviluppatori e professori, desiderosi di scoprire gli ultimi sviluppi nei settori del controllo, del design, dellautomazione, della misura e dellacquisizione dati, che hanno partecipato alle conferenze e alle sessioni tecniche organizzate nel corso della giornata ed hanno visitato larea espositiva di 1.000 m2 e le 30 postazioni dimostrative. Quindici anni rappresentano una conferma dellimpegno costante di National Instruments nella condivisione e diffusione di esperienze e conoscenze che in questo suo percorso si avvale di una rete di contatti che vede coinvolti partner, aziende clienti e le principali testate giornalistiche di settore.

World, in rappresentanza dello sponsor Edizioni Fiera Milano, e rispettivamente da Eric Starkloff, Francis Griffiths e Tim Dehne per NI Corporation. Primo classificato Il Campo Eolico Sperimentale di Trento Sistema di acquisizione Dati da Sensori Distribuiti su Turbine Eoliche di R. Fedrizzi, Dipartimento di Ingegneria dellUniversit di Trento. Secondo classificato Sviluppo di un Sistema di Test per le Pompe Motorizzate ed i Serbatoi

IL PREMIO NICOLA CHIARI


Durante la mattinata si svolta lormai tradizionale assegnazione del Premio Nicola Chiari per la Migliore Applicazione di Misura e Automazione 2008, consegnato da Nadia Albarello, Marketing Communications Manager di NI Italy, insieme a Valerio Alessandroni, direttore tecnico di Automazione Oggi, Fieldbus&Networks e di LabVIEW

dellAirbus A380 Ebh di A. Damiani, Bimal Automazioni. Terzo classificato Diagen, Sistema di Diagnostica Remota per Generatori Elettrici di Grande Potenza di A. Lugli, Sitem, e P. Bruzzone, G. Cresta, M. Manarini, A. Oldrati e M. Valgimigli, Ansaldo Energia.

LE CONFERENZE
La sessione plenaria - apertasi con la keynote di Tim Dehne, Senior Vice President Ricerca e Sviluppo di NI con una panoramica sullo stato dellarte e sulle pi recenti evoluzioni del Graphical System Design - ha offerto unampia visione del-

38

EVENTI

le tecnologie concorrenti, partendo dal superamento della legge di Moore, attraverso i processori multicore fino ad arrivare alle piattaforme risultanti dallintegrazione di queste tecnologie. Messaggio chiave del suo intervento: la combinazione delle nuove tecnologie concorrenti e la progettazione grafica di sistemi consente di realizzare sistemi di test ad elevate prestazioni in grado di soddisfare le crescenti richieste di prodotti di alta qualit. In altre parole, il futuro dipende dalla possibilit di trarre vantaggio dai benefici del parallelismo. A seguire, Alessandro Masi del Cern di Ginevra ha illustrato il sistema di controllo in tempo reale dei collimatori Large Hadron Collider, il nuovo acceleratore di particelle gestito mediante la strumentazione modulare PXI di National Instruments. Nel pomeriggio stato dato spazio allaspetto pratico: 4 moduli composti da quattro sessioni tecniche ciascuno si sono svolte in parallelo per dare la possibilit ai partecipanti di condividere esperienze e confrontarsi su problematiche comuni sulla base delle proprie esigenze di aggiornamento e formazione. Tra le novit di questanno, oltre alle 16 sessioni tecniche, due nuove aree pratiche: la LabVIEW Zone, che ha consentito di utilizzare direttamente LabVIEW 8.5 e tutte le novit della nuova release in abbinamento al sistema di acquisizione dati USB CompactDAQ, e larea Prove Pratiche di Automazione, dove toccare con mano le potenzialit del Programmable Automation Controller CompactRIO.

creazione di un sistema di visione industriale ad elevate prestazioni. Ampio spazio stato riservato anche alle prerogative dellapproccio meccatronico nella progettazione di macchine. Ha concluso la sessione una presentazione delle tecnologie offerte da National Instruments per la progettazione e la simulazione basate su modelli. Collaudo e acquisizione dati: Argomento centrale della sessione sono state le pi recenti tecnologie di acquisizione dati e collaudo: PXI Express, multicore, elaborazione Fpga e acquisizione dati intelligente, che offrono la possibilit di effettuare test basati su software, in altre parole, la strumentazione virtuale che si pone come punto di riferimento per le operazioni di test e misura (in figura: una schermata di LabVIEW SignalExpress). Soluzioni e applicazioni: Questa sessione tecnica ha offerto una panoramica di case study sviluppate dagli Alliance Partner di National Instruments e da utenti finali, quali Robotronix, Wintek, Geas, Pragma Engineering, Universit Politecnica delle Marche ed Enel Produzione.
Readerser vice.it n. 659

LE SESSIONI TECNICHE
Infine, le sessioni tecniche si sono articolate in quattro macro aree dinteresse: Tecnologie Software: Focus della sessione le nuove versioni di LabVIEW 8.5 e di LabWindows/ CVI 8.5, con la possibilit di sfruttare le tecnologie di ultima generazione tra cui la programmazione orientata agli oggetti. Progettazione, prototipazione e controllo: Gli argomenti di questa sessione hanno illustrato alcune tra le novit pi attese del settore machine vision, tra cui limplementazione di LabVIEW sulla nuova Smart Camera per la

EVENTI

06

NIDAYS SI FA IN QUATTRO! E DIVENTA ITINERANTE


Nadia Albarello

Saranno toccate le citt di Catania, Bologna, Ancora e Padova

a questanno il consueto appuntamento annuale con NIDays si arrichito di una versione itinerante per offrire unalternativa a chi non ha potuto partecipare alla data romana. NIDays si trasforma quindi in un tour itinerante in quattro citt italiane, Catania, Bologna, Ancona e Padova. In tutte le date, la keynote della mattina ha illustrato i benefici della Migrazione Parallela e delle potenzialit delle tecnologie multicore e concorrenti, le nuove funzionalit delle versioni 8.5 di NI LabVIEW e NI LabWindows/CVI. Successivamente, National Instruments ha presentato la piattaforma di test per applicazioni in banda base o RF con trasferimento dati ad altissima velocit tramite le tecnologie PXI Express e Raid; i vantaggi della strumentazione di misura via USB e lo stato dellarte sullacquisizione dati USB; la nuova NI Smart Camera per scaricare LabVIEW direttamente a bordo di una telecamera intelligente; infine, i nuovi NI CompactRIO con chassis e controller integrati, per completare la piattaforma embedded riconfigurabile di controllo avanzato nelle fasi di progettazione, prototipazione e distribuzione di applicazioni in volumi elevati. Durante il pomeriggio, Robotronix, Cate, Eurins e Gruppo Loccioni, Alliance Partner National Instruments, hanno illustrato lutilizzo dei prodotti hardware e software di National Instruments nel settore dellAutomazione e del Collaudo tramite casi applicativi. Alcuni prestigiosi atenei italiani hanno presentato esempi di utilizzo dei prodotti National Instruments e della strumentazione virtuale nella ricerca e nella didattica.

A seguire, i partecipanti hanno potuto mettere alla prova le proprie conoscenze nellarea adibita alle prove pratiche, ovvero speciali postazioni per lo svolgimento di esercitazioni su LabVIEW 8.5 e la piattaforma USB di acquisizione dati NI CompactDAQ (in figura). Nellarea espositiva i visitatori hanno potuto conoscere da vicino le ultime novit di prodotto National Instruments. Per scaricare le presentazioni online, si pu andare alla pagina web ni.com/italy/eventi

Readerser vice.it n. 658

40

EVENTI

06

AUTOMATED TEST SUMMIT 2008:


VIRTUALMENTE VERO, REALMENTE VIRTUALE
Nadia Albarello

Il convegno sul test automatizzato online si ripropone nella sua 5a edizione il prossimo 5 giugno

hi non credeva nella capacit di coinvolgimento e di affiliazione di un evento virtuale, si dovuto ricredere. Tra gli evoluti strumenti di social networking oggi a nostra disposizione, levento virtuale forse lunico in grado di offrire una valida alternativa al tradizionale congresso, forum, convegno. Grazie allintermediazione digitale, ovvero mediante tecniche di live streaming, presentazioni online e chat, levento virtuale in grado di proporre una ricca offerta di contenuti e livello di interazione, comportando per un notevole risparmio di tempo e di denaro.

Sviluppo di Averna, Jean-Yves Allard. In qualit di espositore, Averna pu interagire live con i visitatori dello stand provenienti da quattro continenti contemporaneamente. Le presentazioni tecniche ricche di contenuti innovativi e le ultime novit del settore proposte dagli espositori fanno di Automated Test Summit un evento da non perdere - e senza bisogno di lasciare la propria scrivania. Aziende leader mondiali di sistemi di test e misura del calibro di Intel, Microsoft, Tektronix, Averna e Cal-Bay, parteciperanno allevento per condividere competenze tecniche ed

Per la seconda volta, levento Automated Test Summit organizzato da National Instruments, ovvero la 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 rende 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. Levento gratuito si svolger dal vivo marted 5 giugno: durante lintera giornata sar possibile assistere alla presentazione delle keynote (in lingua inglese), partecipare attivamente alle numerose sessioni tecniche e interagire dal vivo con gli espositori di alcune delle maggiori aziende di test grazie ad un ambiente espositivo virtuale. Sar anche possibile richiedere informazioni attraverso una chat dal vivo con consulenti tecnici di National Instruments in lingua italiana. La 5a edizione propone contenuti rinnovati e una veste grafica totalmente nuova e accattivante. Tutte le risorse rimarranno poi a disposizione dei visitatori della rete per altri 90 giorni. Automated Test Summit 2008 di National Instruments riunisce in tempo reale un pubblico globale che appartiene ai diversi settori industriali associati al test elettronico, afferma il vice presidente del dipartimento Ricerca e

esperienze sul campo. Mike Santori, Business and Technology Fellow di National Instruments, presenter la keynote Ottimizzare l'efficienza nel test. Gli argomenti dellevento di questanno includono: Strategie per la progettazione software a costi ridotti Ultime tendenze nella progettazione hardware Ottimizzare i sistemi di test ed incrementarne la durata Confronto tra esperti di test engineering I partecipanti possono registrarsi on-line allevento dal vivo di marted 5 giugno, a partire dalle ore 11.00 alla pagina web www.ni.com/testsummit.

ULTIMORA
National Instruments ha recentemente concluso un accordo con Fiera Milano Editore, che sar media partner unico dellevento VATS, Virtual Automated Test Summit 2008.

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

Readerser vice.it n. 657

41

EVENTI

06

MC4 FA POKER
Valerio Alessandroni

Si conclusa la quar ta edizione della mostra convegno dedicata alle tecnologie e ai prodotti per il Motion Control

o scorso 11 Marzo la sede di Bologna Congressi ha ospitato la quarta edizione della mostra convegno MC4 Motion Control for, organizzata da Fiera Milano Editore con il supporto delle riviste Automazione Oggi, RMO Rivista di Meccanica Oggi e Progettare. I primi a testimoniare il successo dellevento sono i numeri: ben 37 aziende sponsor hanno accolto 634 visitatori per una giornata interamente dedicata al Motion Control, dando vita a un evento in cui le aziende hanno messo in campo il meglio delle loro risorse, tecniche e umane, per introdurre i visitatori nella realt pi allavanguardia del settore. Rispetto alla passata edizione anche questanno la crescita stata netta: il numero delle aziende partecipanti aumentato del 37% (erano 27 lo scorso anno), mentre laffluenza

del 21% (523 visitatori nel 2007). Risultati cos incoraggianti sono stato il frutto dellunione di due forze: da un lato, le aziende, che hanno dato o rinnovato la fiducia nellevento; dallaltro, la collaudata formula della mostra convegno. Limmediatezza della disposizione e la linearit dei percorsi hanno garantito la massima resa della componente mostra, caratterizzata dalla presenza in numerosi stand di prodotti funzionanti. Lambiente a disposizione delle singole aziende si dimostrato del tutto adeguato per una efficace comunicazione con i visitatori, che hanno potuto trovare in MC4 Motion Control for un attualissimo vademecum per le loro esigenze specifiche di Motion Montrol. A questo proposito spicca ancor di pi lefficacia della formula che coniuga la componente espositiva, pi classica, con quella convegnistica: al piano inferiore, il concreto delle aziende con la loro offerta; al piano superiore una fitta agenda di incontri. Lappuntamento rinnovato per il 2009 con la quinta edizione della mostra convegno, che si oramai attestata nel panorama degli eventi specializzati quale momento di riferimento nel settore del Motion Control. Per maggiori informazioni: www.ilb2b.it/mc4, mc4@fieramilanoeditore.it

42

Readerser vice.it n. 660

A P P U N TA M E N T I

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

CORSI DI LABVIEW
LABVIEW BASE 1: INTRODUZIONE
Milano: Roma: 19, 21 maggio 23, 25 giugno 26, 28 maggio 7, 9 luglio 10, 11 luglio Padova: 6, 8 maggio

CENTRI DI FORMAZIONE
Sede NI di Milano Via Anna Kuliscioff, 22 - 20152 Milano Tel: +39 02 41309217 - Fax: +39 02 41309215 E-mail: ni.italy@ni.com Filiale di Roma Pick Center Piazza Marconi, 15 - 00144 Roma Tel: +39 06 520871 - Fax: +39 06 52087409 E-mail: ni.italy@ni.com Sede Corsi Padova Presso il Centro di Formazione Certificato NI di I.R.S. srl Via Vigonovese 81/A - 35127 Padova Tel: +39 049 8705156 - Fax: +30 049 7625206 E-mail: osgualdo@irsweb.it Visitate ni.com/training/it per le descrizioni dettagliate dei corsi e per iscrivervi.

LABVIEW BASE 2: SVILUPPO


Milano: Roma: 27, 29 giugno 29, 30 maggio

Padova: 20, 21 maggio

LABVIEW INTERMEDIATE 1: TECNICHE DI DESIGN PROFESSIONALI


Milano: 9, 11 maggio Padova: 16, 19 giugno

LABVIEW INTERMEDIATE 2: CONNETTIVIT


Milano: 12, 13 maggio

LABVIEW ADVANCED: SVILUPPO DI APPLICAZIONI AVANZATE


Milano: 1, 3 luglio

APPUNTAMENTI NATIONAL INSTRUMENTS


AUTOMOTIVE DAY
Monaco 3 giugno

LABVIEW DAQ: ACQUISIZIONE DATI E CONDIZIONAMENTO DEI SEGNALI


Milano: Roma: 12, 14 maggio 14, 16 luglio 16, 18 giugno Padova: 1, 3 luglio

AUTOMOTIVE DAY
Parigi 26 giugno

AUTOMOTIVE FORUM LABVIEW E COMPACTRIO: FONDAMENTI DI SVILUPPO


Milano: 16, 18 maggio Barcellona 22 maggio

AUTOMOTIVE FORUM
Torino 12 giugno

LABVIEW: VISIONE ARTIFICIALE ED ELABORAZIONE IMMAGINI


Milano: 15, 16 maggio

EPAC 2008
Genova dal 23 al 27 giugno

LABVIEW: SVILUPPO DI APPLICAZIONI REAL-TIME


Milano: 7, 9 luglio

SIDISA 2008
Firenze dal 24 al 27 giugno

LBWINDOWS/CVI BASE 1: INTRODUZIONE


Milano: 7, 9 maggio

VISION FOR MANUFACTURING


Montichiari 24 giugno

TESTSTAND II: PERSONALIZZAZIONE


Milano: 22, 23 maggio

IEEE RADAR CONFERENCE


Roma dal 26 al 30 maggio

43

I N T E R V I S TA

06

INTERVISTA
Abbiamo intervistato Alberto Osgualdo di IRS (Ingegneria Ricerca Sistemi), un NICTC (National Instruments Certified Training Center) che ha un Centro di Formazione a Padova.

Quali sono i vantaggi che offrono i corsi di forD: mazione National Instruments? In particolare: pu riferirci testimonianze di partecipanti e feedback significativi, ossia esempi pratici di competenze acquisite per la risoluzione di problemi?
La decisione di unazienda di formare proprio personale pu essere dovuta alla necessit di dover affrontare con competenza nuovi strumenti di programmazione o allesigenza di approfondire e migliorare le performance nelluso di strumenti gi disponibili in azienda. La possibilit da parte degli utilizzatori LabVIEW di partecipare ai corsi di National Instruments comporta un vantaggio in pi per la conoscenza del prodotto perch da un lato hanno la possibilit di sfruttare le competenze dirette del produttore e daltra parte, nel caso del Centro di Formazione di IRS a Padova, di confrontarsi con tecnici con alta specializzazione ed esperienza diretta nella realizzazione di applicativi. IRS stessa al proprio personale neoassunto fa seguire tutti i corsi del calendario NI per raggiungere quel livello di rigore nella realizzazione dei programmi e quella ampiezza di conoscenze difficilmente attuabili con formazione casalinga o con il solo affiancamento ai tecnici pi esperti. Il sistema pi semplice di apprendimento sempre quello del tuffati in piscina e nuota o affondi che d innegabili risultati per la velocit di apprendimento di specifiche problematiche, ma dallaltro lascia evidenti lacune anche a distanza di anni dal primo approccio allambiente di sviluppo. I maggiori riconoscimenti ci vengono assegnati infatti proprio dai clienti che hanno gi una qualche esperienza da autodidatti e che riconoscono nei corsi di National Instruments (che, non dimentichiamo, sono corredati da una documentazione eccellente e da un percorso didattico ricco di esperienze pratiche) un fondamentale strumento per una preparazione completa.

ne un completamento della propria proposta. Nel 2005, in concomitanza con lampliamento della propria sede, ha deciso di rendere strategiche le attivit formative con lallestimento di unaula corsi dedicata. A quel punto divenire NICTC (National Instruments Certified Training Center) stato quasi un percorso obbligato. Inoltre vorrei sottolineare che anche le attivit di avvio e messa a punto dei sistemi che realizziamo sono in buona parte intese e organizzate come attivit di formazione per lutilizzo delle applicazioni sviluppate, ma le attivit formative strutturate consentono ai nostri clienti di affrontare con cognizione di causa le problematiche e le soluzioni che sono messe a loro disposizione con lutilizzo di LabVIEW, garantendo per i sistemi quelle attivit di manutenzione evolutiva che mantengono il sistema sempre aggiornato ed aderente alle necessit aziendali. anche per questo che spesso la formazione da ritenersi parte stessa dellattivit principale di IRS.

R:

Come viene garantita la qualit dei corsi e servizi D: erogati? Avete condotto survey per verificare il grado di soddisfazione?
motivo di grande stimolo per i nostri istruttori (in questo momento sono tre persone e a breve avremo un quarto istruttore) conoscere il livello di soddisfazione dei partecipanti ai corsi. Tale informazione viene raccolta sistematicamente alla conclusione di ogni corso e tiene conto sia di valutazioni che riguardano la struttura del corso stesso, sia del livello di efficienza della struttura logistica e del grado di preparazione e capacit comunicativa del docente. Devo dire che ad oggi le risposte sono state lusinghiere, sia che queste siano date da clienti che hanno acquistato anche altri prodotti e servizi di IRS, o da clienti che si sono limitati nel rapporto con IRS alla sola partecipazione al corso. Tali risultati sono di grande orgoglio per i miei colleghi e ci portano a ritenere valide le scelte fatte fino ad oggi, in primis la collaborazione anche in questo settore con National Instruments. Ma IRS ha un Sistema Qualit che le impone il miglioramento continuo: questi risultati positivi non sono quindi il nostro punto di arrivo, ma la lo stimolo per proporre soluzioni ancora migliori.

R:

Quali sono a suo parere le esigenze formative D: nell'area e nel settore applicativo a cui si rivolge IRS come NICTC?
Il Nordest dItalia una zona che ha proprie peculiarit, anche nel modo di affrontare la formazione. A parte qualche grossa realt, il tessuto industriale composto da piccole e medie aziende per le quali linvestimento in formazione spesso un costo anche importante che va valutato attentamente. Lazienda tipo spesso non arriva al corso appena sente lesigenza di risolvere il suo problema (di test e misura nella

Perch IRS ha deciso di diventare NICTC? Come si D: sposa questa attivit con il principale core busiR: ness dell'azienda, ovvero sviluppare sistemi?
IRS, che attualmente in Italia lunico Centro di formazione certificato da NI oltre a quelli di Milano e Roma gestiti in proprio da NI stessa, ha sempre fatto della formazio-

R:

44

I N T E R V I S TA

National Instruments, in collaborazione con IRS, amplier lofferta formativa disponibile con una serie di corsi orientati ai metodi di misura tramite lutilizzo di strumentazione basata su Personal Computer. La prima sessione dei nuovi corsi di misura a livello base e specialistico, prevista per il 23 giugno prossimo. In particolare, sono previsti i corsi seguenti.
a) La misura con il supporto del Personal Computer Corso base per non esperti di informatica, della durata complessiva di due giorni, dedicato a chi intende sviluppare competenze utili a confrontarsi con sviluppatori, progettisti di sistemi e fornitori di componenti per misura e acquisizione dati. richiesta una conoscenza di base di teoria della misura e alfabetizzazione informatica. Obiettivo del corso di fornire ai partecipanti, responsabili o tecnici di laboratorio e di produzione, le basi per poter affrontare le problematiche relative allutilizzo del PC per la gestione di misure di qualsiasi genere. b) Misure elettriche digitali Corso specialistico dedicato a tecnici che necessitano di informatizzare la misura di grandezze elettriche, siano queste specifiche (misure di macchine elettriche) o generali (misure elettriche su apparecchiature elettromecca niche o elettroniche). Obiettivo del corso fornire ai partecipanti tutte le conoscenze utili a definire completamente da un punto di vista informatico le migliori soluzioni per effettuare misure elettriche. Il corso, della durata di un giorno, dedicato a tecnici di laboratorio o di produzione, che abbiano gi una formazione di base di misure elettriche, che intendono sfruttare le potenzialit dei sistemi di acquisizione dati per risolvere problematiche di misura digitale di segnali elettrici, assieme alle possibilit di archiviazione, visualizzazione ed analisi dei segnali. c) Misure termodinamiche digitali Dedicato a tecnici che necessitano di informatizzare le misure di temperatura e termodinamiche pi in generale, per applicazioni nei settori pi svariati. Obiettivo del corso fornire ai partecipanti tutte le conoscenze utili a definire completamente da un punto di vista informatico le migliori soluzioni per effettuare misure di temperatura, di umidit, pressione. Il corso dedicato a tecnici di laboratorio o di produzione, che abbiano una formazione basilare di misure e che intendono sfruttare le potenzialit dei sistemi di acquisizione dati per risolvere problemi di misura digitale di grandezze termodinamiche, assieme alle possibilit di archiviazione, visualizzazione ed analisi dei segnali.

Per ogni informazione sui nuovi corsi di misura visitate le pagine dedicate ai corsi del sito web di IRS allindirizzo www.irsweb.it. fattispecie), ma appena si trova per cos dire impantanata nel risolvere le sue problematiche. Ecco allora che il corso diventa spesso scelta obbligata, e diventa anche oggetto di aspettative importanti: il servizio deve allora essere ancora pi attento e mirato, arrivando in molti casi a ritagliare attorno alle esigenze del cliente un percorso ad hoc studiato per la soluzione delle specifiche necessit aziendali (mi riferisco per esempio ai corsi onsite). Da questo punto di vista il fatto che i formatori di IRS siano tutte persone con una pluriennale esperienza di sviluppo applicativo e che lo siano a tuttoggi un enorme valore aggiunto per le aziende che intendono seguire i nostri corsi di formazione.

R:

Come accennavo in precedenza, la collaborazione in materia di formazione, nasce da lontano, potrei dire da quando IRS Alliance Member di NI e cio dal 1994, e ha trovato il suo naturale compimento nellallestimento del Centro di Formazione nel 2005. La collaborazione bidirezionale in quanto entrambe le parti riconoscono il valore aggiunto che la collaborazione d al progetto. Le capacit organizzative, di struttura e di innovazione di National Instruments ben si sposano con lesperienza di sviluppo software e integrazione di sistemi che IRS mette sul campo tutti i giorni. I corsi National Instruments inoltre sono preparati nei particolari e con grande cura, accompagnati da esaurienti materiali didattici e da un allestimento daula tecnicamente ottimale. Trovo inoltre interessante il buon numero di corsi che consentono approfondimenti differenziati e graduali allutilizzo di LabVIEW e agli altri temi del T&M e i percorsi di certificazione guidati e integrati nellofferta formativa.

il grado di collaborazione fra IRS e NI e D:Qual come questa si riporta alla formazione tecnica? R:

Proprio dallunione delle due anime sta nascendo una collaborazione che va al di l del rapporto organizzazione NI / competenza IRS. Da unanalisi congiunta sui dati provenienti dal nostro mercato di riferimento abbiamo ritenuto interessante proporre alcuni corsi di misura, non strettamente legati allambiente di programmazione. Abbiamo pensato che molto spesso gli interlocutori di IRS sono tecnici anche molto preparati sulle problematiche di misure ma non altrettanto sulle problematiche di digitalizzazione dei segnali. Ne scaturisce che dalla volont di approfondire le possibilit offerte nellinformatizzare il laboratorio o i test di fine linea e dallinteresse a confrontarsi con gli integratori di sistemi quali IRS possa essere interessante approfondire tematiche di test e misura applicate al computer senza dover necessariamente sapere come implementare dal punto di vista informatico tali soluzioni (a questo potr pensare un programmatore interno o esterno, come quelli di IRS). Nascono cos un corso di due giorni dal titolo Misure con lutilizzo del PC e altri corsi specialistici di un giorno, ognuno dedicato allapprofondimento di tematiche verticali (in preparazione sono Misure elettriche digitali e Digitalizzazione delle misure termodinamiche). Tali corsi, che entreranno a far parte del catalogo corsi di NI, sono in avanzato stato di realizzazione da parte degli esperti di IRS tanto che la prima edizione di questi corsi stata fissata a fine giugno.

Percentualmente, quanto cresciuta la D: domanda per i corsi di formazione di LabVIEW?

Che cosa potr riservare la formazione National D: Instruments e chi potr rivolgersi nel prossimo futuro? Ha qualche anticipazione a riguardo?

R:

Osserviamo una costante crescita nella richiesta di partecipazione ai corsi di National Instruments sulla formazione LabVIEW, in particolare negli ultimi due anni, con un aumento per anno che si attesta ad oltre il 20% rispetto allanno precedente.

45

L A BV I E W E L AVO R O

06

AAA
RICERCHIAMO
SISTEMISTA SOFTWARE Rif.#: 445 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. InterConsulting S.r.l www.monster.it

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

Ottima predisposizione allutilizzo dei sistemi informatici e buona conoscenza del pacchetto Office; Conoscenza della lingua inglese. Completano il profilo unelevata attitudine al lavoro di team, doti di precisione, flessibilit mentale e capacit proattiva nella gestione delle problematiche professionali. Linquadramento e la retribuzione saranno commisurati allesperienza professionale del candidato. Sede di lavoro: Milano Assystem Italia www.talentmanager.it

PROGETTISTA LABVIEW Importante gruppo internazionale francese, che opera in un ampio contesto di consulenza ingegneristica e di progettazione, nellottica del potenziamento della sede di Milano, ricerca progettista LabVIEW che si occuper delle attivit di sviluppo in Labview per i sistemi di automazione di banchi di tests e collaudo. Il candidato ideale in possesso dei seguenti requisiti: Laurea in Ingegneria Elettronica/Informatica/Telecomunicazio ni/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;

ADDETTO ALLO SVILUPPO PAGINE WEB (identificativo annuncio: 90946) Numero di riferimento aziendale relativo all'annuncio1055/0801ASPW Data di scadenza dell'annuncio 23/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

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 Management Process for product quality improvement and cost reduction; Good knowledge of Microsoft Office, knowledge of LabVIEW, INCA, Matlab; Fluent English, team working, good communication and leadership skills are required. 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

46

L A BV I E W E L AVO R O

TEST EQUIPMENT DEVELOPMENT ENGINEER Riferimento Annuncio: A-192 2008 Sede di lavoro: Provincia di Milano Per importante societ operante a livello internazionale nel settore della progettazione e produzione di sistemi di collaudo automatico per apparati elettronici, con sede nellarea di MONZA, ricerchiamo le seguenti figure professionali: Test Equipment Development Engineer Rif. A-192 Ci rivolgiamo a giovani di et intorno ai 30 anni con laurea breve in materie elettroniche/meccatroniche e con esperienza quinquennale nello sviluppo di sistemi di collaudo automatico. Si richiede: conoscenza della strumentazione di misura di laboratorio controllata da computer conoscenza dei protocolli di comunicazione automotive programmazione LabVIEW/CVI conoscenza della lingua inglese parlata e scritta. richiesta la disponibilit a viaggiare per brevi periodi allestero. Buone capacit di relazione, affidabilit e determinazione sono tra i requisiti richiesti che completano il profilo del candidato ideale. La societ offre un inserimento in ambiente dinamico, tecnologicamente avanzato con un trattamento economico di sicuro interesse. Sintex S.r.l. www.e-sintex.it

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

Buona capacit di comunicazione con collaboratori e clienti Disponibilit a trasferte Conoscenza lingua Inglese. Possesso patente B Le persone interessate (uomini e donne L. 903/77) sono pregate di inviare un dettagliato curriculum vitae corredato da fotografia, citando il rif. R8-220 ed evidenziando la dicitura Autorizzo ai sensi della Legge 196/2003 il trattamento dei dati da me trasmessi allindirizzo e.mail: labview@adocgroup.it. Sede di lavoro: Regione Piemonte - Torino provincia Adoc Group www.annuncidilavoro.info

TEST ENGINEER 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.

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 dellAutomazione/Informatica/Elettronic a/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

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 Elettronica/Informatica/Telecomunicazio ni/Automazione o Diploma equivalente ha una buona conoscenza dei linguaggi di programmazione Labview, C e della strumentazione da laboratorio elettronica conosce la lingua inglese Costituir titolo preferenziale breve esperienza maturata in ruolo analogo Informazioni aggiuntive Codice Riferimento: PL Persona da contattare: Elisabetta Mereghetti Adecco Italia SpA www.monster.it

47

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

LA VOCE DEGLI UTENTI

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

Comitato di redazione Redazione

Pubblicit

48