Documentos de Académico
Documentos de Profesional
Documentos de Cultura
2007
E 5,00 L A P R I M A R I V I S TA I TA L I A N A P E R L A CO M U N I T L A BV I E W
USARE LE VARIABILI
ISSN 1972-3008
03
SCENARIO
03
i siamo: nato LabVIEW 8.5! Nel corso di NI Week 2007, in una ballroom affollata da oltre 3000 persone in perfetto silenzio, James Truchard, presidente, CEO e cofondatore di National Instruments, ha dato lannuncio che tutti aspettavamo. E la nuova versione ci permetter di fare grandi cose! Intanto, dopo quasi 10 anni di investimenti nella tecnologia multithreading, LabVIEW 8.5 semplifica lo sviluppo di applicazioni basate sia su processori multicore che su Fpga, grazie al suo intuitivo linguaggio a flusso di dati. Inoltre, LabVIEW estende ulteriormente la piattaforma di programmazione grafica nelle applicazioni embedded ed industriali, con il nuovo modulo di progettazione a grafico di stati per modellare ed implementare il comportamento di sistema. Per non parlare delle nuove librerie di I/O e di funzioni analitiche per il monitoraggio ed il controllo industriale Ma procediamo con ordine, partendo da una citazione fatta proprio dal Dottor T: La rivoluzione rappresentata dallelaborazione concorrente sar probabilmente pi esplosiva della rivoluzione portata dai sistemi operativi (dal libro The Free Lunch is Over di Herb Sutter, Microsoft). E, con il passaggio ai processori multicore sul PC, i programmatori LabVIEW potranno beneficiare di un approccio grafico semplificato al multithreading, che permetter di massimizzare le prestazioni della tecnologia multicore con minime modifiche delle applicazioni. Il motivo semplice: LabVIEW ha gi unarchitettura intrinsecamente parallela. Il linguaggio a flusso di dati parallelo di LabVIEW permette perci di mappare facilmente le proprie applicazioni su architetture multicore e Fpga per data streaming, controllo, analisi ed elaborazione dei segnali. Basandosi sulla capacit multithreading automatica delle precedenti versioni, LabVIEW 8.5 gestisce le applicazioni degli utenti in funzione del numero di core disponibili ed offre driver e librerie a prova di thread per migliorare il throughput delle applicazioni RF, di I/O digitale ad alta velocit e di test a segnali misti, ha aggiunto Truchard. In pi, LabVIEW 8.5 offre il multiprocessing simmetrico (SMP) con lambiente LabVIEW Real-Time, dove i progettisti di sistemi embedded ed industriali possono automaticamente caricare task bilanciati su pi core senza sacrificare il determinismo. Con lultima versione di LabVIEW, gli utenti possono assegnare manualmente parti di codice a specifici core processori per mettere a punto sistemi real-time o isolare parti di codice critiche nel tempo su un core dedicato, ha sottolineato Truchard. Un linguaggio di programmazione richiede 15 anni per essere adottato su vasta scala, aveva affermato il Dottor T nel 1986, quando fu introdotto LabVIEW. Oggi, ben lungi dallessersi conclusa, levoluzione di LabVIEW prosegue: progressi nel multiprocessing, il modulo LabVIEW Statechart, progressi sul LabVIEW to the pin per LabVIEW Fpga, simulazione Fpga prima della compilazione, miglioramento delle prestazioni di LabVIEW e dei toolkit ed integrazione con tool di progettazione meccanica come SolidWorks sono solo degli esempi. Perch la soddisfazione del viaggiatore nel viaggio stesso, ha concluso Truchard, citando Steve Jobs, Apple Computer. Un emozionato Dottor T ha quindi lasciato il palco, tra le ovazioni dei presenti.
Valerio Alessandroni
SOMMARIO
03
28 IL DEBUG DI VI
Per avviare un VI, dovete collegare tutti i subVI, le funzioni e le strutture con i tipi di dato corretti per i terminali
Come sempre, la rubrica offre una serie di link ad ar ticoli di approfondimento o altri documenti disponibili sul web
Alessandro Ricco ha selezionato alcuni spunti di discussione apparsi sul Forum di ILVG.it
44 APPUNTAMENTI
National Instruments sar presente a numerosi eventi, oltre ad organizzare propri corsi e seminari. Scegliete quelli che vi sono pi comodi
46 LABVIEW E LAVORO
SEI UN FAN DI LABVIEW?
AAA
Per il contributo apportato al progetto LabView World, si ringraziano: Valerio Alessandroni, Lino Fiore, Matteo Bambini, Nadia Albarello, Matteo Foini, Alessandro Ricco. Progetto grafico e impaginazione: Bimage.it
A TU PER TU
03
LABVIEW:
Valerio Alessandroni
IL PUNTO DI VISTA
DELLR&D
Un nutrito team di ingegneri lavora quotidianamente al progetto LabVIEW. Ma anche altri team R&D, la rete commerciale e gli utenti LabVIEW interni ed esterni hanno molta voce in capitolo
n occasione di NIWeek 2007 abbiamo intervistato Jeff Washington, Principal Engineering nel gruppo R&D di LabVIEW. Egli ci ha spiegato come vengono prese le decisioni che sostengono la costante evoluzione del software di programmazione grafica National Instruments. In National Instruments da 13 anni, Jeff Washington dirige attualmente un gruppo di altri quattro ingegneri, ma dedica la maggior parte del suo tempo ad attivit di ricerca e sviluppo. I progetti sui quali lavora il mio gruppo sono cambiati spesso negli ultimi anni, egli ha affermato. Principalmente, siamo oggi responsabili del LabVIEW Project e di alcune altre parti di funzionalit interne. Attualmente, met del mio team impegnato su un grosso sforzo in ambito real-time, che abbiamo intrapreso in vista di una futura release.
R:
La nostra organizzazione ha una struttura tipicamente piramidale, che cambia nel tempo per adattarsi meglio ai progetti sui quali siamo focalizzati. Guardando le cose da un livello elevato, siamo organizzati in gruppi focalizzati principalmente sul prodotto LabVIEW core e su Real-Time, Fpga, LabVIEW Embedded, Matematica, Analisi dei segnali, Elaborazione dei segnali, ecc. I responsabili di tali gruppi rispondono direttamente al Vicepresidente R&D di National Instruments. Naturalmente, come dicevo, la struttura dei gruppi non rimane fissa, perch quando una certa parte del progetto terminata le risorse disponibili vengono riallocate sulle altre parti. Questo movimento di persone utile, perch le personalit e le competenze dei singoli vengono continuamente ricombinate, permettendo spesso di risolvere problemi che nella configurazione precedente non avevano trovato una risposta valida. E comunque molto importante per noi trovarci nello stesso luogo geografico e sotto la stessa leadership, per avere una direzione comune, velocizzare le comunicazioni e reagire pi tempestivamente alle decisioni prese.
Fig. 1 Afferma Jeff Washington, Principal Engineering nel gruppo R&D di LabVIEW: Molte delle nuove caratteristiche che entrano in LabVIEW provengono direttamente dalla base utenti.
Da dove giungono le idee di nuove funzionaD : lit e caratteristiche nelle nuove versioni di of LabVIEW? Come vengono discusse (brainstorming, meeting, strategia/marketing)?
R:
Le idee di nuove caratteristiche e miglioramenti di LabVIEW provengono da molte sorgenti diverse. Gli utenti interni ed esterni forniscono, a noi del gruppo R&D di LabVIEW, un costante feedback nel corso dellanno. A una parte di questo feedback possiamo rispondere rapidamente introducendo cambiamenti nella prossima versione di LabVIEW, mentre altro feedback richiede soluzioni pi a lungo termine, che possono dipendere da altre caratteristiche previste sulla nostra roadmap o da nuove tecnologie emergenti. Un buon esempio di quanto ho detto rappresentato dai
A TU PER TU
03
considerevoli cambiamenti e miglioramenti apportati al LabVIEW Project in LabVIEW 8.5. Il LabVIEW Project stato introdotto per la prima volta nel 2005 con LabVIEW 8 e, bench abbia certamente semplificato lo sviluppo in LabVIEW in vari modi, NI ha raccolto da molti utenti lesigenza di ulteriori caratteristiche e comportamenti. NellAgosto del 2006, molti dei nostri utenti pi avanzati si sono riuniti in modo informale durante NIWeek, la nostra conferenza degli utenti che si svolge annualmente ad Austin, in Texas, ed hanno discusso dei vari problemi che dovevano affrontare quando utilizzavano il LabVIEW Project. Il risultato diretto di quel meeting stato che io stesso e molti altri sviluppatori del gruppo R&D di LabVIEW abbiamo iniziato a formulare soluzioni per i problemi che erano stati descritti. Abbiamo discusso in riunioni di brainstorming diverse idee e finalmente abbiamo definito un set di nuove caratteristiche che, eravamo certi, avrebbero risolto tali problemi. Nel corso degli ultimi 12 mesi, abbiamo rifinito iterativamente queste caratteristiche, oltre a richiedere un input periodico ai clienti per essere sicuri di trovarci sulla strada giusta. Il risultato una grande suite di caratteristiche in LabVIEW 8.5 progettate per offrire al programmatore LabVIEW strumenti migliori di gestione dei file e debugging nellambito del LabVIEW Project.
del team LabVIEW, ma in tutta lazienda, e ad ogni caratteristica suggerita viene assegnato un colore. Verde significa che quella caratteristica deve essere inclusa nel prodotto che consegneremo; giallo significa che vorremmo avere quella caratteristica ma potremmo consegnare il prodotto anche senza di essa, se necessario; rosso, infine, significa che scegliamo di non avere quella caratteristica nella release in elaborazione, a causa di vincoli di schedulazione, problemi di fattibilit o sovrapposizione con un altro progetto.
Come vengono sviluppate le attivit del D : gruppo e come vengono allineati ed integrati fra loro i progetti paralleli?
R:
In che modo tenete conto ed implementate il D : feedback che proviene dalla grande base utenti di LABVIEW?
R:
Molte delle nuove caratteristiche che entrano in LabVIEW provengono direttamente dalla base utenti. La nostra sorgente primaria di feedback il database online di suggerimenti sui prodotti, dove gli utenti possono sottoporre richieste di caratteristiche che vanno direttamente al gruppo R&D. Osserviamo anche i nostri forum utenti ed i meeting di gruppi di utenti per feedback, miglioramenti dei prodotti e suggerimenti di nuove caratteristiche. Un buon esempio di questo NIWeek, dove possiamo parlare con gli utenti su come utilizzano LabVIEW, mentre essi possono fornire un input direttamente a noi dellR&D. Ma, al di l di NIWeek, manteniamo sempre un contatto diretto con i nostri ingegneri commerciali e di marketing tecnico, che interagiscono quotidianamente con gli utenti, per raccogliere il feedback che essi ottengono dagli utenti stessi. Essi rappresentano unimportante sorgente di feedback, proprio perch ottengono un input talmente cospicuo da potere individuare le richieste che si ripetono continuamente. Quando abbiamo raccolto tutto questo input, lo combiniamo con la nostra visione e la direzione che riteniamo LabVIEW debba seguire ed iniziamo a dare una diversa priorit alle differenti caratteristiche, non solo allinterno
I responsabili dellingegneria nellambito delle attivit R&D LabVIEW collaborano con il nostro team di strategia di prodotto per contribuire a definire le roadmap di prodotto. Lingegneria deve quindi definire le pietre miliari tecniche ed analizzare le dipendenze. Infatti, vi sono spesso molte dipendenze che necessario risolvere prima di potere implementare una certa caratteristica; dobbiamo quindi esaminare le relazioni reciproche di tali dipendenze e decidere quando la caratteristica in oggetto sar possibile. Per esempio, nel corso degli anni, molti clienti hanno richiesto una caratteristica Zoom per lo schema a blocchi LabVIEW. Vi sono diverse tecnologie, eventualmente implementabili in una futura versione di LabVIEW, che ne renderebbero pi semplice la creazione e soddisferebbero realmente ci che stato richiesto. Se NI dovesse sviluppare una caratteristica Zoom oggi, probabilmente non si tratterebbe di una soluzione a lungo termine, quindi stiamo aspettando che altre tessere del mosaico vadano al loro posto prima di iniziare a sviluppare questo tipo di tool.
Come interagite con altri gruppi di sviluppo, D : relativi per esempio a DAQ, strumenti modulari, ecc.?
R:
Il gruppo R&D LabVIEW ed i team di sviluppo driver devono coordinarsi molto spesso per fare in modo che i nostri sforzi di sviluppo, dipendenti fra loro, procedano senza intoppi. Allinizio di unidea, abbiamo una cultura molto aperta, dove ciascuno pu parlare ad un altro team circa una caratteristica che vorrebbe vedere aggiunta. Per esempio, uno sviluppatore in un team dedicato ai driver software per la strumentazione modulare potrebbe venire da noi se desidera che venga aggiunto un nuovo tipo di dati o un nuovo meccanismo di gestione dei grafici. Tuttavia, quando il nostro set di caratteristiche per una particolare versione deciso, abbiamo un processo molto formalizzato
Quale processo utilizzate per il collaudo del D : codice per il programma di utenti beta di LABVIEW?
R:
Come ho affermato in precedenza, il nostro processo di collaudo molto definito. Durante lo sviluppo, abbiamo frequenti giornate di test, nelle quali trascorriamo lintera giornata eseguendo test automatizzati e manuali per identificare i problemi. Lo stesso vale per i gruppi hardware che dipendono dal nostro software. Quando siamo arrivati ad una prima costruzione che riteniamo sia abbastanza stabile e completa in termini di caratteristiche per garantire un collaudo esterno, notifichiamo ai nostri utenti beta che disponibile la prima versione beta per il download. Il gruppo R&D LabVIEW tipicamente rilascia due o tre versioni beta di LabVIEW prima della release finale per la produzione; il beta testing avviene normalmente entro gli ultimi 4-5 mesi prima della finalizzazione del software. Mano a mano che vengono riportati dei bug, sia internamente che attraverso i clienti beta, essi vengono classificati e tracciati in modo da essere sicuri di risolvere prima i bug pi critici.
TRI-VENETO IDELFONSO ELBURGO VIA PIRANO, 15 35135 PADOVA TEL. 049 8642988 - FAX 049 8642989 e-mail: ielburg@tin.it
R:
Larco temporale di un ciclo di rilascio LabVIEW probabilmente pi breve di quanto pensi la maggior parte delle persone, in parte anche perch abbiamo recentemente cambiato il nostro modo di lavorare. In passato, quasi tutti gli sviluppatori dovevano lavorare sulla prossima versione, quindi il tempo era inferiore ma erano comunque richieste moltissime ore-uomo. Oggi, abbiamo team di persone che lavorano su versioni LabVIEW in anticipo di tre cicli di rilascio. Poich il nostro obiettivo avere una release LabVIEW ogni anno, ci significa che abbiamo persone che stanno attivamente lavorando su versioni di LabVIEW in anticipo di tre anni. Abbiamo anche strateghi di prodotto che guardano persino pi avanti, a quelle che dovrebbero essere le future direzioni di LabVIEW. Abbiamo quindi una visione di LabVIEW che si protrae per diversi anni nel futuro in aree che spaziano dalle interfacce web thin-client alle piattaforme di sviluppo embedded emergenti.
PIEMONTE-LIGURIA ROSARIO ROMEO - PUBLIKAPPA VIA SAGRA S. MICHELE, 37 10139 TORINO TEL./FAX 011 723406 e-mail: publika@tin.it
MARCHE-UMBRIA-LAZIO-ABRUZZOCAMPANIA-MOLISE-BASILICATA-PUGLIACALABRIA-SICILIA-SARDEGNA ANDREA CESARANO CELL.335 6473911 CELL.335 6473911 e-mail: andrea.cesarano@libero.it
e-mail: andrea.cesarano@libero.it
readerser vice.it n.300
www.ilb2b.it
5
W H AT S N E W S
03
tilizzando un file eseguibile e VI specifici per la replica di sistemi LabVIEW Real-Time, si pu utilizzare una singola utility o customizzarne una con LabVIEW per creare pi copie identiche dello stesso target Real-Time. Questo evita lutilizzo di un client FTP e del Measurement and Automation Explorer (MAX), il programma di configurazione dei prodotti National Instruments. Leseguibile e i VI sono utili nel caso della distribuzione su target multipli o nel caso di back up e di reinstallazione di un sistema Real-Time, quando non siano disponibili diverse copie del MAX o di LabVIEW. Sono strumenti ideali per OEM ed utenti con pi target identici, che possono trarre notevoli benefici dall'avere un set di VI e file eseguibili che risolvono il problema di salvare intere configurazioni relative ai target o assegnare un'immagine a pi target.
I VI richiedono l'Internet Toolkit per LabVIEW per implementare funzioni FTP (File Transfer Protocol). E' importante ricordare che le immagini possono essere distribuite esclusivamente su sistemi identici. Ci dovuto al fatto che su ogni tipo di target sono scaricate le informazioni specifiche relative alle differenti versioni di sistema operativo, driver e database che identificano l'hardware.
Figura 1
Per molti utenti, l'eseguibile pu essere sufficiente per le loro esigenze di replica. Esso pu essere eseguito su un desktop Windows, dalla linea di comando o all'interno di un file batch come parte di un installer. L'esecuzione dell'eseguibile dal desktop offre un'interfaccia utente grafica intuitiva, su cui si basa la descrizione che segue. Spiegheremo in seguito lutilizzo dei singoli VI che permettono maggiori funzonalit e flessibilit.
MEMORIZZAZIONE DI UN'IMMAGINE
Normalmente, il processo di sviluppo porta alla configurazione di un target Real-Time con il necessario set di driver e un eseguibile. Per la successive replica su sistemi identici, l'eseguibile di replica memorizza l'immagine di questi driver e, a scelta, anche il contenuto rimanente del disco rigido. Per
Figura 2
copiare il contenuto del disco rigido remoto nel file system locale sono sufficienti pochi passi. 1. Nell'utility, selezionate RT Target come sorgente, quindi il pulsante Browse adiacente per scegliere un RT Target che serva da Master (fig. 1). Premendo il pulsante browse viene creato un elenco di target Real-Time disponibili nella sottorete locale (fig. 2). Vengono forniti indirizzo IP, indirizzo MAC (un identificatore unico assegnato alle single schede di rete), Nome e Modello per facilitare l'identificazione della corretta macchina remota. Scegliete la macchina che volete replicare e premete OK. 2. Scegliete ora Folder come destinazione (fig. 3), quindi selezionate la directory del file system locale dove volete salvare l'immagine master. 3. Premete Start per iniziare il processo
W H AT S N E W S
zione. Digitate poi l'indirizzo IP del target desiderato o utilizzate il pulsante Browse per selezionare interattivamente un target. 3. Premete ora Start per iniziare il processo di copiatura dell'immagine precedentemente memorizzata.
ALTRE POSSIBILIT
Le sezioni Source e Destination possono essere configurate per i seguenti usi: 1. RT Target >> Folder Fare il back up del target in un folder sulla macchina host 2. RT Target >> RT Target Eseguire la replica di un sistema su un altro sistema presente nella stessa rete 3. Folder >> RT Target Scaricare su un target un'immagine salvata Si pu spuntare la casella Installed Software per installare sul target solo i componenti che verrebbero installati dal MAX (software e driver National Instruments). In altri termini, non vengono copiati altri file o eseguibili sul disco rigido.
Figura 3
Figura 4
gono discussi brevemente gli altri VI. Il programma trova un target appena formattato e vi applica un'immagine selezionata. Esso ha il solo scopo di fornire un punto di partenza per capire l'uso dei VI e non viene indicato da National Instruments come soluzione unica o speciale. Il pannello frontale fornisce i passi da seguire per utilizzare il VI (fig. 5). In primo luogo, scegliete il percorso verso l'immagine memorizzata e scegliete un hostname da applicare al target per distinguerlo da altri target. Premete quindi il pulsante Run per iniziare a utilizzare il resto del VI. Dopo pochi secondi, la parte intermedia del pannello frontale dovrebbe visualizzare un indirizzo MAC, un indirizzo IP ed un nome di modello (come PXI-8196) per ogni target non configurato trovato. Scegliete il target d'interesse e selezionate il pulsante Image This Target per procedere con l'installazione dell'immagine. Dopo un tempo variabile in base al traffico di rete e all'hardware, viene visualizzato l'indirizzo IP assegnato (assegnato dal DHCP) e l'immagine stata copiata con successo, inclusi eventuali eseguibili di startup e file di supporto. Esaminiamo ora lo schema a blocchi per capire meglio i VI di replica del sistema. In primo luogo, viene eseguito il VI denominato Find All Targets.vi (fig. 6). La costante booleana True collegata a
di backup. Alla fine del processo, la finestra Messages dovrebbe visualizzare Image created successfully (fig. 4).
W H AT S N E W
03
Figura 6
selezionato il target d'interesse, l'indirizzo MAC del target viene isolato e passato a Set IP Address.vi (fig. 7). Questo VI pu abilitare o disabilitare il DHCP (assegnazione automatica dell'IP) ed impostare gli indirizzi IP, Subnet, Gateway e DNS. Esso applica inoltre un hostname al target. Il VI restituisce l'indirizzo IP assegnato, cosa particolarmente utile nel caso del DHCP, visto che trova automaticamente un indirizzo IP disponibile e potrebbe fornire indirizzi imprevedibili. questo VI comporta il rilevamento dei soli target non configurati. Ci significa che vengono restituiti solo i target che non hanno un indirizzo IP assegnato. L'array di cluster restituito contiene i dettagli relativi a ogni target trovato, come il nome, gli indirizzi MAC e IP, il modello e altri ancora. Questi possono essere utilizzati per filtrare l'elenco e restringerlo solo a determinati modelli di target. Ci particolarmente utile per la gestione della replica automatica dei sistemi, perch una stessa immagine deve essere distribuita solo su target identici. Per esempio, si potrebbe effettuare il parsing dell'array di cluster per trovare solo i controllori PXI8176. Successivamente, quando l'utente ha Set Target Image.vi Questo indirizzo IP viene trasferito al VI Set Target Image.vi. Tale VI esegue l'operazione finale di copia dell'immagine master sulla macchina duplicata. Il VI rileva eventuali installazioni Windows ed evita di sovrascrivere Windows e file relativi. Pertanto, sicuro eseguire Set Target Image su target dual-boot. Il VI preserva inoltre le impostazioni degli indirizzi IP anzich sovrascriverle con le impostazioni del master. Un normale trasferimento FTP sovrascriverebbe invece le impostazioni degli indirizzi IP. I VI rimanenti che non sono ancora stati esaminati si riveleranno utili nella progettazione di applicazioni di replica custom.
Get Target Info (IP).vi e Get Target Info (MAC).vi Questi due VI cercano un singolo target in base al suo indirizzo IP o MAC e restituiscono la stessa informazione di Find All Targets.vi, ma solo per il singolo target specificato. Per esempio, pu essere utile per verificare che l'indirizzo IP o MAC corrisponda al Modello corretto. Format Target.vi Format Target formatta il disco di target remoti. Esso supportato su target che non richiedono un floppy disk per il boot in safe mode e pu rivelarsi utile per i target che possono creare numerosi file durante l'esecuzione o che possono richiedere frequenti upgrade e modifiche. I vecchi target potrebbero non supportare questa funzione, perch il loro firmware non stato aggiornato. Applicando l'aggiornamento firmware pi recente si pu porre rimedio al problema. Get Target Image.vi Questo VI salva l'immagine target nella directory specificata. Un ingresso booleano determina se devono essere copiati tutti i file presenti sul target o solo quelli che sono normalmente installati dal MAX. Se vengono copiati tutti i file, ogni eventuale eseguibile impostato come startup verr anche eseguito allo startup della macchina duplicata.
CONCLUSIONE
Utilizzando i VI e gli esempi descritti, si pu realizzare una variet di applicazioni di replica del sistema. Gli integratori che desiderano evitare ai loro utenti di aprire o installare il MAX e tutti gli utenti che intendono duplicare pi macchine, troveranno questi VI utili e flessibili.
Figura 7
readerservice.it n. 303
W H AT S N E W
03
na nuova funzionalit permette di costruire applicazioni in LabVIEW che consentono ad ogni utente remoto di avere la propria interfaccia utente, anzich visualizzarne una sola in comune per tutti gli utenti. In altri termini, pi utenti possono controllare contemporaneamente il pannello frontale remoto di un VI senza influenzare eventuali altri utenti connessi allo stesso pannello contemporaneamente.
VI; tuttavia, in precedenza, solo un client per volta poteva controllare il VI. La novit ora che pi client possono controllare contemporaneamente il pannello frontale del VI. Ogni volta che viene assegnato il controllo, viene creata una nuova istanza del pannello frontale, permettendo a ciascun client di controllare il VI senza influenzare gli altri client. Per illustrare l'uso di questa funzionalit, seguiamo un'applicazione
e selezionate Web Server: Configuration. Spuntate la casella di Enable Web Server e cliccate OK. In questo modo si lancia il web server (fig. 2). Ora che il web server stato abilitato, il passo successivo rendere rientrante il VI. Impostare il VI come rientrante permette a pi client di ottenere la propria istanza del pannello frontale. Nell'esecuzione rientrante, le chiamate a istanze multiple di un VI possono essere eseguite in parallelo con gestione separata della memorizzazione dei dati. La possibilit di impostare un VI come rientrante era gi presente nelle precedenti versioni di LabVIEW, ma ora
I pannelli frontali remoti di LabVIEW permettono di vedere e controllare un VI attraverso un web browser standard. Creare la pagina web di un pannello frontale remoto facile grazie al Web Publishing Tool di LabVIEW. Con pochi click del mouse si pu creare una pagina web che incorpora l'immagine del pannello frontale del VI, visualizzabile attraverso il web browser del client. I pannelli frontali remoti permettono a pi client di visualizzare simultaneamente il pannello frontale dello stesso
esemplificativa che utilizza questa tecnica. Il VI di figura 1 legge un file dati e visualizza un'onda sinusoidale con disturbo. L'utente pu quindi applicare un filtro e visualizzare su un grafico i risultati delloperazione. LabVIEW utilizza il proprio web server per pubblicare il pannello frontale su un web browser in modo tale da rendere il VI accessibile da remoto. Il primo passo nell'uso dei pannelli frontali remoti abilitare il web server integrato in LabVIEW. Andate su Tools > Options
W H AT S N E W
03
lambiente offre la possibilit di utilizzare la rientranza con i pannelli frontali remoti. Per impostare a rientrante l'esecuzione del VI, andate su File > VI Properties e selezionate Execution dall'elenco a tendina Category. Spuntate la casella di Reentrant execution (fig. 3). Quando il VI stato impostato come rientrante, potete iniziare i passi necessari per pubblicare il vostro VI sul web. Andate su Tools > Web Publishing Tool. Selezionate il VI che volete pubblicare, in questo esempio Remote_Front_Panels.vi. Selezionate poi l'Embedded Viewing Mode che vi permetter di visualizzare e controllare il VI da remoto, quindi cliccate Next (fig. 4). Potete anche selezionare il pulsante Preview in Browser in qualsiasi momento per vedere come si presenterebbero le vostre impostazioni correnti in un web browser. La schermata della fig. 5 vi permette di creare il titolo del documento, l'intestazione ed il piede della pagina web
dove il VI verr pubblicato. Selezionate quindi la directory di destinazione nella quale la pagina web creata verr salvata ed il filename della pagina web. Il Web Publishing Tool fornisce anche l'URL per la pagina web del pannello frontale remoto che pu essere inserito direttamente in un browser. Cliccate Save to Disk e quindi OK. Ora possibile accedere remotamente al VI (fig. 6). Per accedere al pannello frontale remoto attraverso il web, aprite una pagina web e navigate all'url specificato nel Web Publishing Tool. A questo punto, potete visualizzare l'interfaccia utente attraverso il web. Per ottenere il controllo, cliccate con il tasto destro del mouse nella pagina web e selezionate Request Control of VI. Ora il VI pu essere controllato remotamente. Potete ora eseguire il VI, interagire mediante i controlli e visualizzare i vostri dati negli indicatori come se steste eseguendo il VI dall'ambiente di sviluppo (fig. 7). Anche un altro utente in un luogo differente pu aprire un web browser, navigare allo stesso indirizzo ed ottenere la propria istanza di questo VI, che pu controllare senza essere influenzato dalla presenza di eventuali altri utenti collegati simultaneamente.
readerservice.it n. 304
10
03
COME USARE LE
Mike Trimborn
shared variable single-process. Il Modulo LabVIEW RealTime e il Modulo LabVIEW Datalogging and Supervisory Control (DSC) offrono propriet configurabili addizionali.
11
03
priet in qualsiasi momento. Il progetto LabVIEW propaga le nuove impostazioni a tutti i riferimenti alla variabile presenti in memoria. Quando salvate la libreria di variabili, questi cambiamenti vengono applicati anche alla definizione della variabile memorizzata su disco.
12
IL PROTOCOLLO NI-PSP
Le variabili condivise network-published utilizzano NI Publish-Subscribe Protocol (NI-PSP) per inviare e ricevere dati attraverso la rete. Il protocollo NI-PSP costruito sopra il protocollo UDP e ne sfrutta quindi i tipici aspetti di rapidit ed efficienza. l protocollo NI-PSP utilizza meno ampiezza di banda ed pi efficiente del TCP/IP, in relazione alle specifiche proprie del protocollo NI-PSP. Tuttavia, a differenza del protocollo UDP, NI-PSP garantisce la ricezione dei dati, implementando uno strato addizionale sopra il protocollo UDP grezzo.
Figura 6 Shared variable con FIFO real-time multielemento e modalit di lettura del buffer condiviso da par te di pi variabili
associato al tipo di dato della variabile, nel caso in cui non abbia mai letto prima la variabile. Tale comportamento descritto in figura 6. Se unapplicazione richiede che ogni lettore ottenga ogni singolo dato scritto in una shared variable con FIFO multielemento, utilizzate una shared variable separata per ciascun lettore.
Figura 7 Motore delle shared variable e gestione dei cambi di valore delle variabili
Figura 8 Shared variable pubblicata in rete con opzione FIFO real-time abilitata
13
03
situazioni in cui le velocit di lettura/scrittura hanno fluttuazioni temporanee. Se lapplicazione viene eseguita per un periodo indefinito, i lettori che leggono costantemente ad una velocit pi bassa del rate di scrittura alla fine perdono dei dati, indipendentemente dalle dimensioni del buffer che specificate. Poich la bufferizzazione alloca un buffer per ogni richiedente, usatela solo quando necessario, per evitare di sprecare memoria.
BUFFERIZZAZIONE DI RETE
Con le shared variable network-published potete abilitare un buffer di rete, configurandolo nella finestra di dialogo Shared Variable Properties, come illustrato in figura 9. Con la bufferizzazione, tenete sotto controllo le fluttuazio- VITA DEI BUFFER ni temporanee che possono avvenire fra le velocit di let- LabVIEW crea i buffer di rete e le FIFO real-time in occatura e scrittura di una variabile. I lettori che occasional- sione di una scrittura o lettura iniziale. I buffer lato server mente leggono una sono creati quando uno scrittore scrive per la prima volta variabile pi lenta- su una shared variable. I buffer lato client sono creati mente rispetto alla quando un richiedente legge per la prima volta da una velocit di scrittura, shared variable. Se uno scrittore scrive dati su una shared possono perdere variable prima che un richiedente inizi a leggere da tale qualche aggiorna- variabile, i valori iniziali non saranno pi disponibili per il mento. Se lapplica- richiedente (fig. 12). zione pu tollerare la perdita occasio- OVERFLOW/UNDERFLOW DEL BUFFER nale di qualche valo- La shared variable pubblicata in rete riporta le condizioni re, non c necessit di overflow e underflow dei buffer di rete a partire dalla di abilitare la buffe- versione di LabVIEW 8.20. Una FIFO real-time, invece, Figura 10 Bufferizzazione di rete rizzazione. Tuttavia, indica loverflow/underflow della coda, restituendo errori, se il lettore deve in tutte le versioni di LabVIEW. Unapplicazione in ricevere ogni aggiornamento, abilitate la bufferizzazione. LabVIEW 8.0 o 8.0.1 pu verificare gli underflow dei bufPotete impostare le dimensioni del buffer nella pagina fer di rete in due modi. Quando aggiornate la variabile a Variable della finestra di dialogo Shared Variable una frequenza inferiore a 1 kHz, tenuto conto che la risoProperties, in modo tale da poter decidere quanti aggiornamenti lapplicazione deve mantenere memorizzati in coda prima di iniziare a sovrascrivere i vecchi dati. LabVIEW usa la dimensione del buffer che specificate per creare due buffer interni, uno sul motore SVE e uno a livello del richiedente. Dato che ogni lettore di una shared variable pubblicata in rete ottiene il proprio buffer, i lettori non interagiscono fra loro. Figura 11 Bufferizzazione di rete e FIFO real-time abilitata La bufferizzazione utile solo nelle
14
luzione temporale del timestamp di una shared variable di 1 ms, potete confrontare il timestamp di una variabile con quello relativo a una lettura successiva per rilevare gli underflow dei buffer. Oppure, per applicazioni non realtime, il lettore pu utilizzare un numero sequenziale da legare ai dati per notificare gli overflow/underflow dei buffer. Non potete utilizzare il secondo approccio con le shared variable usate allinterno di un loop time-critical, perch le shared variable con opzione FIFO real-time abilitata non supportano il tipo di dato Custom Control (cluster).
Mass Configuration per visualizzare la finestra di dialogo Front Panel Binding Mass Configuration e creare uninterfaccia operatore che lega numerosi controlli e indicatori alle shared variable.
ACCESSO PROGRAMMATICO
Come discusso in precedenza, potete creare, configurare e scaricare interattivamente le shared variable utilizzando il LabVIEW Project, e potete leggere e scrivere le variabili utilizzando i nodi relativi presenti sullo schema a blocchi o attraverso il data binding. LabVIEW offre anche laccesso programmatico a tutte queste funzionalit. Utilizzate il VI Server per creare programmaticamente librerie di progetto e shared variable nelle applicazioni dove dovete creare un grande numero di variabili. Inoltre, il Modulo LabVIEW DSC offre un set completo di VI per creare ed editare programmaticamente shared variable e librerie di progetto, nonch per gestire lSVE. Potete creare programmaticamente librerie di shared variable solo Figura 13 Binding di un consu sistemi Windows; tuttavia, potete distribuire trollo a una shared variable programmaticamente queste nuove librerie sia su sistemi Windows che LabVIEW Real-Time. Usate lAPI DataSocket nelle applicazioni dove dovete cambiare dinamicamente la shared variable che un VI legge e scrive. Potete cambiare dinamicamente una shared variable costruendo programmaticamente lURL della connessione DataSocket. Potete anche controllare programmaticamente altre caratteristiche della shared variable, come le dimensioni del buffer. Inoltre, lAPI DataSocket ha una lettura bloccante che restituisce un valore solo quando la shared variable viene aggiornata (fig. 14).
Figura 14 Uso dellAPI DataSocket per leggere e scrivere programmaticamente shared variable
15
03
Lapplicazione richiede funzionalit di datalogging e supervisione? Se volete usare le caratteristiche proprie del modulo LabVIEW DSC, dovete ospitare le shared variable su Windows. Il modulo LabVIEW DSC aggiunge le seguenti funzionalit alle shared variable pubblicate in rete: Logging storico nel database NI Citadel. Allarmi in rete e logging degli allarmi. Scalatura. Sicurezza basata sullutente. Valore iniziale. Possibilit di creare server di I/O custom. Integrazione della struttura a eventi di LabVIEW con le shared variable. VI LabVIEW per controllare programmaticamente tutti gli aspetti delle shared variable e del motore delle variabili. Questi VI sono particolarmente utili per gestire grandi numeri di shared variable. Il dispositivo di elaborazione ha risorse adeguate in termini di processore e memoria? LSVE un processo addizionale che richiede risorse di elaborazione e memoria. Per ottenere le migliori prestazioni in un sistema distribuito, installate lSVE su macchine che garantiscono la massima capacit di memoria ed elaborazione in quel sistema. Dove vengono generati ed elaborati i dati? LSVE riduce il traffico di rete quando la bufferizzazione disabilitata. Abilitate la bufferizzazione se vi occorre ogni nuovo valore di una shared variable. Quando la bufferizzazione disabilitata, lSVE esegue il cosiddetto delta filtering: rimuove i valori ridondanti e invia ai richiedenti solo gli effettivi cambi di valore di una shared variable. Larchitettura di un sistema distribuito pu influenzare notevolmente lefficacia di questa funzionalit, come si vede in figura 15. LabVIEW implementa questo tipo di filtraggio solo per tipi scalari come numeri interi, numeri decimali in virgola mobile e booleani, e per gli array di stringhe e di booleani. Il delta filtering efficace soprattutto se generate dati sulla stessa macchina che ospita una variabile, come mostrato in figura 15. In questo esempio, lo scrittore su My
PC Mac OS Linux PXI Compact CompactRIO Compact Vision PC commerciali RTX Windows System con LabVIEW Real-Time FieldPoint Real-Time ETS . . SVE . . Nodi di variabile . . DataSocket API con PSP
Tabella 1 Sintesi delle compatibilit per le shared variable pubblicate in rete
16
SERVER DI I/O
I server di I/O sono plug-in dellSVE con i quali i programmi possono usare lSVE per pubblicare dati. NI FieldPoint 5.0 include un server di I/O che pubblica i dati direttamente da banchi FieldPoint sullSVE. Poich lSVE un server OPC, la combinazione dellSVE e del server di I/O FieldPoint configura di fatto un server OPC per FieldPoint. Figura 16 Architettura che non consente un delta filtering efficace Linstaller del driver FieldPoint non include lSVE, che deve Computer e scrive pi valori ridondanti su una variabile. essere installato da un altro componente sofware, ad LSVE esegue il filtraggio delta e invia solo due aggiorna- esempio LabVIEW. Anche il driver NI-DAQmx dalla versione 8.0 include un menti sulla rete al target PXI RT. La figura 16 illustra un esempio di filtraggio delta non effi- server di I/O che pu pubblicare cace. Lo scrittore sul target PXI RT e invia allSVE tutti i automaticamente canali virtuali globali NI-DAQmx sullSVE. cambi di valore, inclusi gli aggiornamenti ridondanti. I valori ridondanti vengono rimossi successivamente su My Tale server di I/O sostituisce il Computer per i richiedenti ma questo non riduce il traffi- server OPC e la tecnologia di co in rete. Se costruite unapplicazione distribuita e sapete accesso remoto RDA (Remode che alcuni dei sistemi possono andare offline periodica- Device Access) presenti nel vecmente, fate in modo di ospitate lSVE su un sistema che sia chio driver NI-DAQ Traditional. Il driver NI-DAQmx include sempre online. lSVE. Con il modulo LabVIEW DSC, gli utenti possono creare CARATTERISTICHE ADDIZIONALI DELLO SHARED nuovi server di I/O. VARIABLE ENGINE La figura 17 illustra le numerose responsabilit dellSVE, oltre a quella di gestire le shared variable pubblicate in rete: OPC Raccogliere i dati ricevuti dai server di I/O. LSVE conforme alla versione Fornire i dati ai richiedenti, attraverso i server OPC e PSP. 3.0 e pu operare come un ser Fornire servizi di scalatura, allarme e logging per qualsia- ver OPC su macchine Windows. Figura 17 Shared Variable Engine (SVE) si shared variable per cui siano stati configurati tali servizi Qualsiasi client OPC pu scriveche, ricordiamo, sono disponibili solo con il modulo re o leggere una shared variable LabVIEW DSC. ospitata su una macchina Windows. Quando installate il Monitorare le condizioni di allarme e rispondere di con- modulo LabVIEW DSC su una macchina Windows, lSVE seguenza. pu operare anche come client OPC. Potete legare le shared variable ospitate su una macchina Windows a degli item OPC con il DSC e abilitare la comunicazione in lettura e scrittura tra le variabili e gli item OPC. Poich OPC una tecnologia basata su COM, una API di Windows, i target real-time non lavorano direttamente con OPC. Come mostrato in figura 18, potete comunque accedere agli item OPC da un target real-time ospitando le shared variable su Figura 18 Legare variabili ad item OPC una macchina Windows.
17
03
PRESTAZIONI
Questo paragrafo fornisce delle linee guida generali per creare applicazioni ad alte prestazioni utilizzando le shared variable. Poich la shared variable single-process ha unimplementazione simile alle variabili globali e alle FIFO realtime di LabVIEW, National Instruments non ha particolari raccomandazioni per ottenere buone prestazioni con questo tipo di variabili. I paragrafi seguenti si concentrano quindi sulle shared variable pubblicate in rete.
Figura 20 Uso efficiente delle shared variable pubblicate in rete su un target real-time
tori che dovete considerare nella scelta del punto in cui installare lSVE. La figura 19 mostra un altro fattore che pu avere un forte impatto sulle prestazioni delle shared variable. Questo esempio riguarda un target real-time, ma le stesse considerazioni valgono anche per sistemi non real-time. La figura mostra un uso inefficiente delle shared variable pubblicate in rete: generate dati su un target realtime e avete necessit di eseguire il logging locale dei dati elaborati e monitorare il processo da una macchina remota. Dato che i richiedenti delle variabili devono ricevere i dati dallSVE, la latenza fra la scrittura nel loop ad alta priorit e la lettura nel loop a priorit normale elevata e sono richiesti due viaggi attraverso la rete.
Note sullautore
Mike Trimborn, LabVIEW FPGA Product Marketing Manager, National Instruments.
18
La figura 20 illustra unarchitettura migliore per questa appliFigura 19 Uso inefficiente delle shared variable pubblicate in rete su un target real-time cazione. Lapplicazione usa una shared variable single-process gliori prestazioni dalle shared variable, sviluppate lapplica- per trasferire i dati fra il loop ad alta priorit e il loop a zione in modo tale che liberi regolarmente il processore per bassa priorit, riducendo notevolmente la latenza. Il loop lesecuzione dei thread SVE. Un modo per ottenere questo a bassa priorit esegue il logging dei dati e scrive lageffetto quello di inserire delle attese nei cicli di elabora- giornamento in una shared variable pubblicata in rete per zione e assicurarsi che lapplicazione non faccia uso di cicli il richiedente presente sullhost. non temporizzati. Lesatta quantit di tempo che dovete attendere dipende dallapplicazione, dal processore e dalla rete; ogni applicazione richiede un certo livello di messa a punto empirica per ottenere le massime prestazioni.
03
Vediamo come delle applicazioni scritte in LabVIEW possono essere ottimizzate sfruttando tecniche di programmazione parallela
abVIEW offre un ambiente di programmazione grafica unico e di semplice utilizzo per le applicazioni di test automatizzati, ma la sua capacit di assegnare dinamicamente parti di codice ai vari core della CPU ad aumentare la velocit di esecuzione sui processori multicore.
menti modulari PXI Express, ad esempio in applicazioni di analisi di segnale multicanale e di elaborazione Hardware in the Loop, grazie alle velocit elevate di trasferimento dati ottenibili con il bus PXI Express. Nel seguito, valuteremo varie tecniche di programmazione parallela e caratterizzeremo in termini di prestazioni i benefici offerti da ciascuna tecnica.
19
03
co (campioni per fetch), il tempo di elaborazione risparmiato attraverso lesecuzione parallela diventa molto pi evidente. Infatti, lalgoritmo parallelo si avvicina a un raddoppio delle prestazioni per i blocchi di dimensioni pi grosse. Il grafico nella fig. 4 illustra lesatto aumento percentuale di prestazioni in funzione delle dimensioni dellacquisizione (in campioni). Per dimensioni dei blocchi maggiori di 1 milione di campioni (ampiezza di banda di risoluzione pari a 100 Hz), lapproccio parallelo si traduce in aumenti di prestazioni di almeno l80%. Ottenere un aumento di prestazioni delle applicazioni di test automatizzati sui proFigura 3 Tempo di esecuzione degli algoritmi sequenziale e parallelo cessori multicore facile in LabVIEW, perch lambiente alloca dinamicamente sequenziale tradizionale necessario per effettuare questa ogni thread. Infatti, agli utenti non richiesto di creare codice speciale per abilitare il multithreading, mentre le operazione. Nello schema a blocchi della fig. 1, lanalisi in frequenza applicazioni di test parallelo possono trarre beneficio dai di entrambi i canali viene eseguita in un VI Express per processori multicore con minimi aggiustamenti della promisure spettrali basate su FFT che analizza ciascun canale grammazione. in serie. Anche se lalgoritmo della fig. 1 pu essere comunque eseguito efficientemente su processori multico- CONFIGURAZIONE DEGLI ALGORITMI DI TEST re, possibile migliorarne le prestazioni elaborando cia- PARALLELO CUSTOMIZZATO scun canale in parallelo. Il beneficio della parallelizzazione degli algoritmi di elaboSe analizzassimo i dettagli esecutivi dell'algoritmo prece- razione dei segnali che permette a LabVIEW di suddividente, noteremmo che la FFT richiede un tempo significa- dere luso della CPU fra pi core. tivamente pi lungo per essere completata rispetto allac- LabVIEW in grado di elaborare in parallelo gran parte dei quisizione dal digitalizzatore ad alta velocit. Acquisendo dati acquisiti, risparmiando tempo di esecuzione. separatamente i due canali ed eseguendo due FFT in Un requisito per lelaborazione parallela che LabVIEW parallelo, possiamo ridurre notevolmente il tempo di elaborazione. Utilizzando lapproccio parallelo, si ottiene il nuovo schema a blocchi illustrato nella fig. 2. I canali del digitalizzatore vengono coinvolti sequenzialmente. Notate che queste operazioni potrebbero essere eseguite completamente in parallelo se le due operazioni di fetch fossero associate a strumenti distinti. Tuttavia, dato che sono le operazioni di trasformazione ad impegnare particolarmente il processore, riusciamo ancora a migliorare le prestazioni semplicemente parallelizzando lelaborazione di segnale. Di conseguenza, il tempo di esecuzione totale si riduce. Nella fig. 3 illustrato il tempo di esecuzione delle due implementazioni. Figura 4 Aumento di prestazioni degli algoritmi paralleli (in percentuale) Allaumentare delle dimensioni del bloc-
20
e di elaborazione in linea. Prendiamo ad esempio il caso di unacquisizione che utilizzi un digitalizzatore ad alta velocit o un modulo di I/O digitale ad alta velocit. A livello software, viene eseguito un algoritmo di elaborazione digitale del segnale. Infine, il risultato viene generato da un altro strumento modulare. Nella fig. 6 illustrato un tipico schema a blocchi. Comuni applicazioni HIL includono la simulazione di sensori e lemulazione di componenti custom. In questo articolo, esploreremo alcune tecniche per otteFigura 5 Configurazione per lesecuzione rientrante in LabVIEW nere il migliore throughput per applicazioni in linea di elaborazione digitale dei segnali. In generale, si possono usaesegua una copia (o clone) di ciascuna subroutine di ela- re due strutture di programmazione fondamentali: la strutborazione del segnale. Di default, molti degli algoritmi di tura a loop singolo e la struttura multiloop basata su pipeelaborazione dei segnali di LabVIEW sono configurati per line con utilizzo di code. La struttura a loop singolo semgarantire unesecuzione rientrante. Ci significa che plice da implementare e presenta una bassa latenza per i LabVIEW alloca dinamicamente una singola istanza di ciascuna subroutine inclusi thread distinti e spazio di memoria. Di conseguenza, le subroutine custom devono essere configurate affinch funzionino in modo rientrante. Ci si pu fare con un semplice step di configurazione in LabVIEW. Per impostare questa propriet, selezionate File >> VI Properties e scegliete la categoria Execution. Selezionate quindi il flag che abilita lesecuzione rientrante come illustrato nella fig. 5. Con il semplice passo mostrato in figura possibile eseguire in parallelo pi subroutine custom, come accade per le funzioni di analisi standard presenti in LabVIEW. Di conFigura 7 Approccio a loop singolo al Processing in the Loop seguenza, le applicazioni di test automatizzati possono raggiungere migliori prestazioni sui processori multicore blocchi di piccole dimensioni. Al contrario, le architetture tramite semplici tecniche di programmazione. multiloop possono raggiungere un throughput molto pi elevato, perch sono in grado di utilizzare meglio le CPU OTTIMIZZAZIONE DELLE APPLICAZIONI multicore. HARDWARE-IN-THE-LOOP Un altro esempio di applicazioni che possono trarre van- Usando lapproccio tradizionale a loop singolo, mettiamo taggio dalle tecniche di elaborazione parallela del segna- in ordine sequenziale una funzione di lettura di un digitale, utilizzando pi strumenti per gestire input e output lizzatore ad alta velocit, lalgoritmo di elaborazione del simultanei, sono le applicazioni hardware-in-the loop (HIL) segnale e una scrittura di I/O digitale ad alta velocit. Come lo schema a blocchi nella fig. 7 illustra, ciascuna di queste subroutine deve essere eseguita in serie, secondo quanto determinato dal modello di programmazione a flusso di dati di LabVIEW. La struttura a loop singolo soggetta a diversi limiti. Poich ogni stadio viene eseguito in serie, il processore limitato nelleseguire I/O dallo strumento mentre elaFigura 6 Schema a blocchi dellelaborazione di segnale in linea bora i dati. Con questo approccio, una
21
03
CPU multicore non pu essere utilizzata in modo efficiente perch il processore pu eseguire una sola funzione per volta. Quindi, verr utilizzato un unico core di una CPU multicore per questa applicazione. Bench la struttura a loop singolo sia sufficiente per le velocit di acquisizione pi basse, per gestire un throughput dati pi elevato richiesto un approccio multiloop. Larchitettura multiloop utilizza le code per passare i dati fra i vari cicli while. Nella fig. 8 illustriamo il concetto della programmazione a flusso di dati nel caso di pi cicli
while con lutilizzo delle code. Le code permettono la condivisione dei dati fra pi loop. La figura rappresenta quella che viene tipicamente chiamata struttura a ciclo produttore-consumatore. In questo caso, un digitalizzatore ad alta velocit acquisice i dati in un primo loop e passa ad ogni iterazione un nuovo set di dati alla FIFO. Il loop consumer monitorizza semplicemente lo stato della coda e scrive ogni nuovo set di dati sul disco quando diventa disponibile. Il valore delluso delle code che entrambi i loop possono essere eseguiti indipendentemente fra loro. Nellesempio precedente, il digitalizzatore ad alta velocit pu continuare ad acquisire dati anche se c un ritardo nella loro scrittura su disco. Nel frattempo, i campioni in pi vengono semplicemente memorizzati nella FIFO. Generalmente, lapproccio produttore-consumatore a pipeline permette un throughput dati maggiore, consentendo un utilizzo pi efficiente dei processori. Questo vantaggio ancora pi evidente nei processori multicore, perch LabVIEW pu assegnare dinamicamente i thread della CPU ad ogni core. Per unapplicazione di elaborazione del segnale in linea, possiamo usare tre while loop indipendenti e due code per passare i dati fra loro. In questo scenario, un loop acquisir i dati da uno strumento, uno sar dedicato allelaborazione del segnale ed il terzo scriver i dati su un secondo strumento. Nella fig. 9 riportato uno schema a blocchi di LabVIEW che illustra questo approccio. Nella fig. 9, il loop superiore un loop produttore che acquisisce dati da un digitalizzatore ad alta velocit e li passa alla prima struttura a coda (FIFO). Il loop intermedio opera sia come produttore che consumatore. Ad ogni iterazione, il ciclo carica (consuma) diversi set di dati dalla prima coda e li elabora indipendentemente come pipeline. Questo approccio migliora le prestazioni di elaborazione nei processori multicore permettendo di elaborare indipendentemente fino a quattro set di dati. Notate che il loop intermedio opera anche come produttore, passando i dati elaborati nella seconda coda. Infine, il loop inferiore scrive i dati elaborati sul modulo di I/O digitale ad alta velocit. Gli algoritmi di elaborazione parallela sfruttano il processore in modo pi efficiente sulle CPU multicore. Infatti, il throughput totale dipende da due fattori: lutilizzo del processore e le velocit di trasferimento sul bus. In generale,
22
la CPU e il bus dati funzionano in modo pi efficiente quando si elaborano grossi blocchi di dati. Inoltre, possiamo ridurre ancora di pi i tempi di trasferimento dei dati usando strumenti PXI Express, che hanno tempi di trasferimento pi veloci. Di conseguenza, possiamo illustrare il massimo throughput in termini di velocit di campionamento in funzione dellacquisizione espressa in numero di campioni, come si vede nella fig. 10. Tutti i benchmark illustrati in questo grafico sono stati eseguiti su campioni a 16 bit. Inoltre, lalgoritmo di elaborazione del segnale usato era un filtro passa-basso Butterworth del 7 ordine con un cutoff di 0,45 moltiplicato per la velocit di campionamento. Come i dati illustrano, lapproccio a pipeline (multiloop) a 4 stadi permette di ottenere il throughput dati pi elevato. Notate che un approccio di elaborazione del segnale a 2 stadi permette di ottenere prestazioni migliori del metodo a singolo loop (sequenziale), ma non utilizza la CPU con altrettanta efficienza del metodo a 4 stadi. Le velocit di campionamento elencate nelle tabelle 1 e 2 sono la massima velocit di campionamento di input e output per un digitalizzatore ad alta velocit PXIe-5122 ed un modulo di I/O digitale ad
TABELLA 1 Dimensioni Velocit di Latenza del blocco campionamento (max) TABELLA 2
stadi, con velocit di campionamento di 20 MS/s. Al contrario, lutilizzo della CPU supera di poco il 50% in tutti gli esempi a loop singolo.
CONCLUSIONE
La strumentazione basata su PC, come gli strumenti modulari PXI e PXI 38,78 ms 32k 2,50 ms 32k 12,5 MS/s 1 MS/s express, trae grandi benefici dai progressi della tec45,41ms 64k 5,62 ms 64k 12,5 MS/s 2,5 MS/s nologia dei processori 38,27 ms 128k 11,56 ms 128k 16,67 MS/s 2,5 MS/s multicore e dallaumento 44,86 ms 256k 22,03 ms 256k 16,67 MS/s 5 MS/s della velocit dei bus dati. 55,17 ms 512k 44,22 ms 512k 16,67 MS/s 6,25 MS/s Mano a mano che le nuo148,85 ms 1M 85,63 ms 1M 20 MS/s 8,25 MS/s ve CPU migliorano le pre247,29 ms 2M 169,52 ms 2M 20 MS/s 8,28 MS/s stazioni aggiungendo pi 581,15 ms 4M 199,62 ms 4M 20 MS/s 8,25 MS/s core di elaborazione, sono Tabella 1 e 2 Benchmark di latenza per loop singolo e per pipeline a 4 stadi necessarie strutture di elaborazione parallela o a alta velocit PXIe-6537. Notate che a 20 MS/s, il bus tra- pipeline per massimizzare lefficienza della CPU. sferisce dati alle velocit di 40 MB/s per linput e 40 MB/s Fortunatamente, LabVIEW offre uneccellente soluzione a per loutput, per unampiezza di banda totale del bus di questo problema di programmazione, assegnando dinami80 MB/s. camente i task di elaborazione ai singoli core di elaboraE anche importante considerare che lapproccio di elabo- zione. Come i dati sopra riportati evidenziano, si possono razione a pipeline introduce latenza fra input e output. raggiungere significativi miglioramenti di prestazioni strutLa latenza dipende da diversi fattori, incluse le dimensioni turando gli algoritmi di LabVIEW in modo da sfruttare ledei blocchi e la velocit di campionamento. Le tabelle 1 e laborazione parallela. 2 confrontano la latenza misurata in funzione delle dimensioni dei blocchi e della massima velocit di campionamento per le architetture a loop singolo e multiloop a 4 Note sullautore stadi. David Hall, Signal Sources Product Engineer, National Come ci si poteva aspettare, la latenza aumenta mano a Instruments. mano che lutilizzo della CPU si avvicina al 100%. Ci particolarmente evidente nellesempio della pipeline a 4
Dimensioni Velocit di Latenza del blocco campionamento (max)
23
D A L L A T E O R I A A L L A P R AT I C A
03
protocolli di esposizione con campi elettrici ed elettromagnetici costantemente controllati. La possibilit di poter disporre di un software e di un sistema di acquisizione dati e automazione come LabVIEW, flessibile ed implementabile, ha consentito, oltre che produrre protocolli di esposizione altamente riproducibili, onde garantire uniformit e ripetitibilit dei risultati, lautomatizzazione dellintero processo di controllo di tutte le funzioni della macchina in oggetto.
descrive unapparecchiatura per la crescita di articolo cellule eucariotiche e procariotiche umane utilizzando
renziamento su cellule eucariotiche, risultando particolarmente efficace nel differenziamento di cellule staminali umane in osteociti senza lausilio di differenzianti chimici. Da ci si deduce che il sistema stesso apre la possibilit ad un duplice obiettivo. In primo luogo, ad applicazioni terapeutiche degli effetti indotti dallesposizione a campi magnetici risonanti sul meccanismo di differenziamento di cellule eucaristiche. In secondo luogo, alla produzione di protesi autologhe in Medicina Rigenerativa. Il raggiungimento del secondo obiettivo significa che nei soggetti in cui oggi si interviene con limpianto di protesi ossee metalliche, quando il brevetto avr superato i trial clinici richiesti dalla legge, si potr intervenire prelevando cellule dal midollo osseo del paziente (cellule autologhe) differenziarle con limpiego di campi magnetici risonanti, far crescere gli osteociti su supporti biodegradabili con la forma adeguata alla protesi che si vuol impiantare e quindi procedere allimpianto osseo. Una protesi cos ottenuta avr la caratteristica di essere perenne, in quanto si salder allosso come in qualsiasi frattura e, avendo la capacit di rivascolarizzarsi, non andr soggetta ad infezioni come spesso accade con le costose protesi metalliche.
DESCRIZIONE DELL'IMPIANTO
In una camera amagnetica installato il solenoide per la produzione dei campi magnetici ed elettromagnetici per lesposizione delle culture cellulari. Il solenoide stato realizzato con un cilindro in PVC avente dimensioni tali da garantire la linearit del campo prodotto entro 1%. Il solenoide costituito da tre avvolgimenti coassiali e viene pilotato da altrettanti stadi di potenza integrati in configurazione di amplificatore differenziale in modo da poter riprodurre, oltre al campo magnetico terrestre, anche il campo elettromagnetico per lesposizione delle culture cellulari. Per il protocollo di campi magnetici da generare ci si avvale di strumentazione virtuale a bordo del computer. Il campo generato dal solenoide viene rilevato in continuo da un sensore isotropico di campo connesso al computer di sistema. Allinterno del solenoide viene inserito tramite una slitta,che
24
D A L L A T E O R I A A L L A P R AT I C A
funge anche da supporto, lincubatore per le cellule; questultimo realizzato in policarbonato e contiene al proprio interno un sistema di scambio termico nel quale scorre acqua calda forzata per la termostatazione in atmosfera controllata. Lacqua per la termostatazione viene scaldata in una vasca esterna alla camera amagnetica e, tramite una pompa volumetrica e una valvola di by-pass,viene fatta circolare a pressione costante nellimpianto; un sensore di temperatura e di umidit installato allinterno dellincubatore provvede a fornire il segnale al computer di sistema che a sua volta controlla il sopracitato sistema di riscaldamento. Latmosfera controllata allinterno dellincubatore deve contenere anche una percentuale di anidride carbonica del 5%: il gas in oggetto viene prelevato da una bombola e miscelato nelle giuste proporzioni nel miscelatore aria/ CO2 nel quale un sensore ed una elettrovalvola, tramite il computer di sistema, provvedono a mantenere latmosfera creata alle condizioni prescritte. La miscela aria/ CO2 viene quindi inviata con un sistema a ricircolo allincubatore tramite una doppia pompa a membrana; anche in questo caso una valvola di by-pass provvede a regolare la portata fino a 20 litri/min. Allinterno dellincubatore la miscela aria/ CO2 viene iniet-
tata tramite un diffusore e prelevata tramite 5 orifizi, inviata poi in un condensatore che provvede a separare lacqua dalla miscela aria/ CO2 rinviando nellincubatore lacqua stessa. Nel fondo dellincubatore deve essere presente anche un certo quantitativo di acqua che serve a produrre lumidita relativa prescritta per latmosfera controllata (circa 90%); un sensore di livello min/max provvede a inviare un segnale al computer che a sua volta, tramite un serbatoio e una elettrovalvola esterni alla camera amagnetica, mantiene il livello dellacqua al valore prescritto. Il computer che gestisce limpianto provvisto di una scheda in/out analogica e digitale National Instruments DAQCard-6036E con terminaliera schermata e per la gestione dellintero processo stato realizzato uno specifico programma in linguaggio LabVIEW.
readerser vice.it n.320
25
D A L L A T E O R I A A L L A P R AT I C A
03
La 'sfida' era quella di realizzare un sistema a basso costo, flessibile e facilmente riconfigurabile in grado di valutare le prestazioni di un Sistema di Difesa in tempo reale
l Dert un applicativo sviluppato in LabVIEW per PC che ha lo scopo di valutare in Real Time le prestazioni di un Sistema di Difesa composto da Radar e Comando e Controllo. Esso utilizza i dati raccolti sul bus operativo del sistema ed i dati di traiettografia forniti da un ente esterno in tempo reale. La cattura dei dati di sistema avviene senza interferire con gli apparati che lo compongono. Luso della traiettografia interviene nella verifica della verifica della precisione delle misure radar.
ANALISI E VALIDAZIONE
Il Dert una novit nellambito della strumentazione danalisi e validazione e rappresenta levoluzione di un lavoro decennale svolto nel campo della validazione dei sistemi Radar. Partendo dallesperienza maturata nella realizzazione di tool di analisi prestazionali in LabVIEW nati per lavorare offline al termine della fase di raccolta dati, si cercato di realizzare un tool che potesse realiz-
zare unanalisi dei dati in tempo reale. Il Dert unapplicazione che stata sviluppata in LabVIEW per essere utilizzata durante le campagne di validazione di un sistema missilistico prodotto da Selex-SI che si chiama Paams e rappresenta uno strumento potente per effettuare analisi di prestazioni sia radar che di sistema contestualmente allesecuzione di una prova. Certamente un requisito necessario per realizzare una tale applicazione la potenza di calcolo della piattaforma impiegata. Qualche anno fa non era facile disporre di hardware adeguato a tale scopo, soprattutto a costi abbordabili. La configurazione utilizzata per la realizzazione proposta cos composta: PC Pentium 4 a 3GHz RAM 1 GB HD 140 GB Doppia Interfaccia di rete Ethernet (10/100 Mb) Sistema Operativo Windows XP Pro LabVIEW di base non fornisce molte possibilit per interfacciare la rete. Le funzioni disponibili sono solamente implementazioni deli protocolli UDP e TCP che presentano notevoli limitazioni in termini di configurabilit di indirizzi e porte. Lelemento chiave della applicazione Dert scritta
26
D A L L A T E O R I A A L L A P R AT I C A
interamente in LabVIEW resta comunque la libreria di funzioni appositamente realizzata per linterfacciamento con i dispositivi di rete. La libreria sviluppata supera le limitazioni della versione base di LabVIEW e semplifica la realizzazione di applicazioni che richiedono accesso in lettura e scrittura su un qualunque tipo di dispositivo di rete. Tali funzioni si appoggiano su una DLL realizzata da un gruppo di ricercatori del Politecnico di Torino che si chiama WinPcap. Questa DLL viene distribuita gratuitamente ed alla base di applicazioni free software come Ethereal che rappresenta uno dei pi sofisticati Network Protocol Analyzer che si possono trovare su internet. Le funzioni svolte dal Dert sono le seguenti: registrare i dati ricevuti sui bus; rappresentare i dati radar su PPI classico e PPI 3D con integrata una mappa Dted; calcolare la precisione del tracciamento radar dei bersagli forniti di traiettografia; calcolare la probabilit di detezione su traccia; visualizzare grafici relativi alle logiche interne del Comando e Controllo; memorizzare i grafici e sequenze di immagini sincronizzate con gli eventi rappresentati; archiviare automaticamente i dati raccolti con eventuale compressione dei file. La cattura dei messaggi viene fatta senza interferire con le unit presenti sulla rete. La registrazione dei dati permette il salvataggio in formato Libcap compatibile per essere aperto da Ethereal. Non sono previsti altri tipi di formato di registrazione visto che tramite Ethereal possibile effettuare la conversione. Il calcolo della precisione di tracciamento radar viene fatto utilizzando i dati di traiettografia ricevuti sulla seconda interfaccia di rete. La traiettografia viene messa a disposizione in tempo reale dal poligono dove vengono realizzate le prove. Per poter utilizzare e confrontare questi dati con il tracciamento del radar, il Dert provvede ad effettuare la sincronizzazione dei tempi in due modalit distinte: utilizzando dati forniti da un apparato esterno; utilizzando una scheda di clock interna munita di GPS. Il resto delle funzionalit del sistema sono verificabili senza la traiettografia. In questo caso il Dert consente di monitorare il buon funzionamento del sistema. La rappresentazione del PPI e del PPI 3D non utilizza le funzioni grafiche di LabVIEW, bens una serie di librerie sviluppate ad hoc gi allepoca della versione 4.1. Tale librerie utilizzano come interfaccia utente dei semplici indicatori GraphXY che risultano assai pi maneggevoli e flessibili delle nuove primitive grafiche presenti dalla versione 6.1 in avanti. Le mappe geografiche sono quelle Dted reperibili liberamente su Internet Lapplicazione organizzata a pagine che raccolgono rap-
presentazioni grafiche e numeriche congruenti con le varie funzioni controllate. La possibilit di catturare le immagini dei vari front panel durante lo svolgimento della prova permette di raccogliere materiale utile per una rapida compilazione di report alla fine della prova. Tali immagini sono salvate in formato PNG e possono essere inserite facilmente in documenti word o presentazioni. Lapplicativo stato sviluppato a moduli per facilitare levoluzione e ladattabilit a differenti tipologie di sistema, cosa peraltro gi concretamente verificata. Lapplicazione corredata di help in formato standard dove vengono descritte le varie funzionalit del programma. Grazie alle capacit real-time si riducono i tempi di esecuzione ed i costi delle prove di qualifica e collaudo di un sistema. La possibilit di utilizzare un prodotto come questo per validare tutti i sistemi di Selex consente di: uniformare le procedure di test ed i risultati ottenuti; elevare lo standard qualitativo dei test; rendere le prestazioni facilmente confrontabili; creare un archivio da utilizzare per sviluppi futuri.
Note sullautore
Gennaro Ricco, Selex Sistemi Integrati
27
SCUOLA DI LABVIEW
03
IL DEBUG DI VI
a cura di Matteo Foini
Per avviare un VI, dovete collegare tutti i subVI, le funzioni e le strutture con i tipi di dato corretti per i terminali
alvolta un VI produce dati o si avvia in un modo che non vi aspettavate. Potete utilizzare LabVIEW per configurare come avviare un VI e per individuare i problemi con lorganizzazione dello schema a blocchi o con il flusso dei dati nello schema a blocchi.
Se il pulsante risulta ancora rotto quando avete finito di collegare lo schema a blocchi, il VI guasto e non pu essere avviato.
Gli errori, invece, possono guastare un VI. Dovete quindi risolvere ogni errore prima di avviare il VI. Cliccate sul pulsante Run o selezionate ViewError List per capire perch il VI guasto. La finestra Error list elenca tutti gli errori. La sezione Items with errors elenca i nomi di tutte le voci in memoria, come i VI e le librerie del progetto che possiedono errori. Se due o pi voci hanno lo stesso nome, questa sezione mostra listanza dellapplicazione specifica per ogni voce. La sezione errors and warnings elenca gli errori e gli avvertimenti per il VI selezionato nella sezione Items with errors. La sezione Details descrive gli errori ed in alcuni casi raccomanda come correggere gli errori. Cliccate sul pulsante Help per visualizzare un argomento del LabVIEW Help che descrive lerrore in dettaglio ed include istruzioni passo-passo per la correzione degli errori. Cliccate sul pulsante Show Error o cliccate due volte sulla descrizione dellerrore per evidenziare larea nello schema a blocchi o nel pannello frontale che contiene lerrore.
28
SCUOLA DI LABVIEW
B. TECNICHE DI DEBUG
Se un VI non guasto, ma ottenete dei dati inattesi, potete utilizzare le tecniche seguenti per individuare e correggere i problemi con il VI o il flusso dei dati nello schema a blocchi: Collegate i parametri di error in ed error out presenti nella parte inferiore della maggior parte dei VI e delle funzioni. Questi parametri rilevano gli errori incontrati in ogni nodo dello schema a blocchi ed indicano se e dove c stato un errore. Potete utilizzare questi parametri anche nei VI che realizzate. Per eliminare tutti gli avvertimenti dei VI, selezionate ViewError List e contrassegnate il riquadro Show Warnings per vedere tutti gli avvertimenti del VI. Determinate le cause e correggetele nel VI. Cliccate tre volte sul collegamento con lo strumento Operativo attivo per evidenziare il suo percorso completo ed assicurarvi che i collegamenti siano eseguiti sui terminali corretti. Utilizzate la finestra Context Help per verificare i valori di default per ogni funzione e subVI dello schema a blocchi. I VI e le funzioni passano i valori di default se gli ingressi consigliati o opzionali sono scollegati. Per esempio, un ingresso booleano potrebbe essere impostato su TRUE se scollegato. Usate la finestra di dialogo Find per ricercare subVI, testo e altri oggetti da correggere nel VI. Selezionate ViewBrowse RelationshipsThis VIs Hierarchy per trovare subVI scollegati. A parte funzioni scollegate, i VI non sempre generano errori a meno che non configuriate un ingresso come necessario. Se inserite per errore un subVI scollegato nello schema a blocchi, esso viene eseguito quando viene eseguito lo schema a blocchi. Quindi, il VI svolge azioni extra. Utilizzate lesecuzione evidenziata per osservare il flusso dei dati nello schema a blocchi. Scorrete passo passo il VI per visualizzare ogni azione del VI nello schema a blocchi. Utilizzate lo strumento Probe per osservare i valori intermedi dei dati e per verificare gli errori in uscita di VI e funzioni, specialmente di quelli che effettuano I/O. Utilizzate dei punti dinterruzione per mettere in pausa lesecuzione, cos potete andare passo passo o inserire dei probe. Sospendete lesecuzione di un subVI per modificare i valori dei controlli e degli indicatori, per controllare il numero di volte che viene eseguito o per andare indietro allinizio dellesecuzione del subVI. Verificate se i dati passati da una funzione o da un subVI sono indefiniti. Ci avviene spesso con i numeri. Per esempio, in un punto del VI unoperazione potrebbe aver diviso un numero per zero, restituendo Inf (infinito), mentre le funzioni o i subVI successivi erano in attesa di numeri.
Se il VI viene eseguito pi lentamente del previsto, verificate di aver disattivato lesecuzione evidenziata nei subVI. Inoltre, chiudete i pannelli frontali e gli schemi a blocchi dei subVI quando non li usate perch le finestre aperte possono compromettere la velocit di esecuzione. Verificate la rappresentazione dei controlli e degli indicatori per vedere se state ottenendo un overflow perch avete convertito un numero in virgola mobile in un intero o un intero in un intero pi piccolo. Per esempio, potreste aver collegato un intero a 16 bit ad una funzione che accetta solo interi a 8 bit. Questo fa s che la funzione converta lintero a 16 bit in uno a 8 bit, provocando una potenziale perdita di dati. Verificate se qualche For Loop esegue inavvertitamente zero iterazioni e produce array vuoti. Verificate di aver inizializzato correttamente i registri a scorrimento, a meno che non intendiate salvarne i dati da unesecuzione del ciclo ad unaltra. Verificate lordine degli elementi del cluster nei punti sorgente e di destinazione. LabVIEW rileva i tipi di dato e le discrepanze durante la creazione, ma non rileva discrepanze di elementi dello stesso tipo. Verificate lordine di esecuzione dei nodi. Verificate che il VI non contenga subVI nascosti. Potreste aver nascosto un subVI inavvertitamente disponendone uno direttamente sopra un altro nodo o durante la diminuzione delle dimensioni di una struttura senza mantenere in vista il subVI. Verificate il numero di subVI utilizzati dal VI con i risultati di ViewBrowse RelationshipsThis VIs SubVIs e ViewBrowse RelationshipsUnopened SubVIs per stabilire se esistono ulteriori subVI. Aprite anche la finestra VI Hierarchy per vedere i subVI di un VI. Per evitare risultati sbagliati causati da subVI nascosti, specificate quali ingressi sono necessari ai VI.
ESECUZIONE EVIDENZIATA
Visualizzate unanimazione dellesecuzione dello schema a blocchi cliccando sul pulsante Highlight Execution (fig. 3).
Fig 3 Pulsante Highlight Execution
Lesecuzione evidenziata mostra lo spostamento dei dati nello schema a blocchi da un nodo allaltro utilizzando delle bolle che si muovono sui collegamenti. Utilizzate lesecuzione evidenziata unitamente a quella passo passo per vedere come i valori dei dati si spostano da nodo a nodo in un VI. Nota Lesecuzione evidenziata riduce enormemente la velocit di esecuzione dei VI.
29
SCUOLA DI LABVIEW
03
ESECUZIONE SINGLE-STEP
Eseguite passo passo un VI per visualizzare ogni azione del VI sullo schema a blocchi mentre il VI in esecuzione. I pulsanti per lesecuzione passo passo, mostrati nella fig. 5, influenzano lesecuzione solo in modalit single-step del VI o subVI.
Fig 5 I pulsanti per lesecuzione passo passo_stepinto (a sinistra), passo_stepout (al centro) e passo_stepover (a destra)
Entrate nella modalit single-step cliccando sul pulsante Step Over o Step Into della barra degli strumenti dello schema a blocchi. Spostate il cursore sul pulsante Step Over, Step Into o Step Out per visualizzare delle note che descrivono il passo successivo se cliccate su quel pulsante. Potete andare passo passo nei subVI o eseguirli normalmente. Se andate passo passo in un VI con lesecuzione evidenziata attiva, appare un simbolo di esecuzione sulle icone dei subVI che sono attualmente in esecuzione (fig. 6).
Utilizzate lo strumento Probe se avete uno schema a blocchi complicato da una serie di operazioni, ognuna delle quali potrebbe restituire dati sbagliati. Utilizzate lo strumento Probe con lesecuzione evidenziata, passo passo e con punti dinterruzione per stabilire se e dove i dati sono sbagliati. Se il dato disponibile, il probe si aggiorna immediatamente durante lesecuzione passo passo o quando ponete in pausa nel punto dinterruzione. Quando lesecuzione in pausa in un nodo a causa dellesecuzione passo passo o di un punto dinterruzione, potete anche sondare il collegamento appena eseguito per vedere il valore fluito attraverso quel collegamento.
TIPI DI PROBE
Potete verificare i valori intermedi su un collegamento quando un VI in esecuzione utilizzando un probe generico, utilizzando un indicatore sulla palette Controls per visualizzare i dati, utilizzando un probe in dotazione, utilizzando un probe personalizzato o creando un nuovo probe Generico. Utilizzate il probe generico per visualizzare i dati che passano attraverso un collegamento. Cliccate con il tasto destro su un collegamento e selezionate Custom Probe Generic Probe dal menu rapido per utilizzare il probe generico. Il probe generico visualizza i dati. Non potete configurare il probe generico per rispondere ai dati. LabVIEW visualizza il probe generico quando cliccate con il tasto destro su un collegamento e selezionate Probe, a meno che non abbiate gi specificato un probe personalizzato o in dotazione per il tipo di dato. Potete verificare un probe personalizzato analogamente ad un VI. Tuttavia un probe non pu sondare il proprio schema a blocchi, n lo schema a blocchi di uno dei suoi subVI. Quando si verificano i probe, utilizzate probe generici.
STRUMENTI PROBE
Utilizzate lo strumento Probe, mostrato nella fig. 7, per verificare i valori intermedi su un collegamento mentre un VI in esecuzione.
30
SCUOLA DI LABVIEW
Dopo avere selezionato un probe dal menu rapido Custom Probe, ed essere andati su di esso utilizzando lopzione della palette Select a Control o avere creato un nuovo probe utilizzando il Custom Probe Wizard, quel probe diventa il probe di default per quel tipo di dato e LabVIEW carica quel probe quando cliccate con il tasto destro del mouse su un collegamento e selezionate Probe dal menu rapido. LabVIEW carica solo i probe che coincidono esattamente con il tipo di dato del collegamento su cui avete cliccato. Quindi, un probe numerico a virgola mobile in doppia precisione non pu lavorare su un collegamento con un intero a 32 bit senza segno, anche se LabVIEW pu convertire i dati. Nota Se volete che un probe personalizzato diventi il probe di default per un particolare tipo di dato, salvate il probe nella directory user.lib\_probes\default. Non salvate i probe nella directory vi.lib\_probes perch LabVIEW sovrascrive quei file quando eseguite gli aggiornamenti o reinstallate il programma.
PROBE IN DOTAZIONE
I probe in dotazione sono VI che visualizzano informazioni complete sui dati che passano attraverso un collegamento. Per esempio, il VI Refnum Probe restituisce informazioni sul nome del VI, il percorso del VI e il valore esadecimale del riferimento. Potete anche utilizzare un probe in dotazione per rispondere conseguentemente sulla base dei dati che fluiscono attraverso il collegamento. Per esempio, utilizzate un probe Error su un cluster di errori per ricevere lo stato, il codice, la sorgente e la descrizione dellerrore e specificare se volete impostare un punto dinterruzione condizionale in caso di errore o di avvertimento. I probe in dotazione appaiono nella parte superiore del menu rapido Custom Probe. Cliccate con il tasto destro del mouse su un collegamento e selezionate Custom Probe dal menu rapido per selezionare un probe in dotazione. Solo i probe che si adattano al tipo di dato del collegamento su cui avete cliccato con il tasto destro del mouse appaiono nel menu rapido. Fate riferimento al VI Using Supplied Probes nella directory labview\examples\general\probes.llb per un esempio di utilizzo dei probe in dotazione.
PROBE PERSONALIZZATI
Utilizzate il Custom Probe Wizard per creare un probe sulla base di un probe esistente o per creare un nuovo probe. Cliccate con il tasto destro del mouse su un collegamento e selezionate Custom ProbeNew dal menu rapido per visualizzare il Custom Probe Wizard. Create un probe quando volete avere pi controllo su come LabVIEW analizza i dati che fluiscono su un collegamento. Quando create un nuovo probe, il tipo di dato del probe si adatta al tipo di dato del collegamento su cui avete cliccato con il tasto destro del mouse. Se volete modificare il probe che avete creato, dovete aprirlo dalla directory in cui lo avete salvato.
Note sullautore
Laureato in ingegneria nucleare al Politecnico di Milano, Matteo Foini lavora in qualit di Technical Marketing Engineer presso National Instruments Italy.
31
SCUOLA DI LABVIEW
03
SUCCESSO
Q
Questo ar ticolo descrive tecniche di sviluppo basate su anni di esperienza nellingegneria del software. Largomento viene introdotto con un livello di teoria adatto per aiutar vi a capire come tali tecniche vi permettono di creare VI scalabili, leggibili e manutenibili
uesto articolo descrive strategie e tecniche di programmazione che potete utilizzare per costruire i vostri VI. Imparerete come evitare laggiunta di caratteristiche impreviste che possano alterare lintento originale dellapplicazione e rendere pi difficile la manutenzione del codice. Imparerete anche tecniche di risoluzione dei problemi e come utilizzare in modo ottimale LabVIEW per risolvere problemi. Esploreremo tutte le fasi del processo di sviluppo del software: progettazione, implementazione, test e messa in opera, come indicato in figura 1. Potete utilizzare queste procedure per costruire VI scalabili, leggibili e manutenibili.
Leggibile - Deve essere facile ispezionare visivamente il progetto di unapplicazione e capirne lo scopo e le funzionalit. Manutenibile - Deve essere facile cambiare il codice da parte dello sviluppatore originale o di qualsiasi altro sviluppatore senza minare lintento del codice originale. Poich LabVIEW un linguaggio di programmazione, quando programmate con LabVIEW trovate molti degli stessi problemi di progettazione che incontrate quando programmate coi linguaggi tradizionali basati su testo. Tuttavia, LabVIEW offre molte funzionalit e tecniche potenti di programmazione che vi permettono di concentrarvi sulla stesura di un progetto anzich focalizzarvi, per esempio, su problemi di sintassi o di memoria.
SCALABILIT
Per creare un VI scalabile, dovete iniziare a pensare alla struttura dellapplicazione gi nelle prime fasi del processo di progettazione. Un VI scalabile ben progettato vi permette di modificare e aggiungere facilmente funzionalit al progetto originale. Per esempio, consideriamo un VI di
Implementazione codice
Progettazione codice
32
SCUOLA DI LABVIEW
acquisizione che acquisisce dati da tre termocoppie. Supponiamo che i requisiti dellapplicazione cambino e che sia necessario acquisire dati da centinaia di termocoppie. Se il VI originale stato progettato per essere scalabile, estendere il VI per acquisire dati da centinaia di termocoppie sar pi facile che progettare un nuovo VI. Utilizzate buone pratiche di progettazione per creare VI scalabili. Molte applicazioni esistenti devono essere riscritte quando sono necessari dei cambiamenti, perch il codice non stato progettato per essere scalabile. Per un VI non scalabile, anche semplici cambiamenti, come acquisire dati da pi sensori o controllare pi attuatori, possono richiedere una riscrittura. Quando progettate unapplicazione qualsiasi, considerate lo scopo dellapplicazione e come gestire i cambiamenti quando la scala dellapplicazione va oltre le specifiche originali.
applicazioni di misura e automazione. Le applicazioni LabVIEW possono spaziare da un semplice VI a grosse applicazioni, contenenti molti VI organizzati in gerarchie complesse. Mano a mano che espandete luso di LabVIEW e create applicazioni pi articolate, inevitabilmente, il codice che scrivete diventa pi complesso. Molte industrie in tutto il mondo utilizzano LabVIEW come strumento per eseguire una vasta gamma di operazioni di misura e automazione, molto spesso in ambienti dove la sicurezza critica: come programmatori, quindi, dovete creare applicazioni che siano sicure, facili da manutenere e facili da capire.
LEGGIBILIT
Nella vostra esperienza di lavoro con LabVIEW, vi sarete imbattuti in esempi di schemi a blocchi non ben strutturati, difficili da leggere e difficili da capire. Il codice confuso e non manutenibile viene chiamato a volte spaghetti code; tale codice illeggibile pu rendere impossibile decifrare le funzionalit di un diagramma a blocchi.
MANUTENIBILIT
Un VI scritto seguendo delle solide basi di progettazione software e avente una solida architettura vi permette di aggiungere nuove funzionalit senza dovere riscrivere completamente lapplicazione. Quando sviluppate unapplicazione, tenete presente che un altro programmatore potrebbe avere la necessit di usare e modificare il VI in futuro. Larticolo vi spiega come applicare le funzionalit di LabVIEW e utilizzare buoni principi di progettazione del software, direttamente correlati a LabVIEW, per creare applicazioni ben formate, scalabili, leggibili e manutenibili.
33
SCUOLA DI LABVIEW
03
applicazioni e database, i requisiti di prestazioni, i requisiti di interfaccia utente e cos via. Progettazione generale dellarchitettura - Determina linfrastruttura software del sistema necessaria per soddisfare i requisiti specificati. Il progetto definisce i principaIL MODELLO A CASCATA Il modello a cascata il classico modello dellingegneria li componenti e linterazione di tali componenti, ma non del software, uno dei pi vecchi e ampiamente utilizzato definisce la struttura di ciascun componente. nei progetti delle grandi aziende. Enfatizzando limpor- Determinerete inoltre le interfacce e gli strumenti esterni tanza della documentazione e della pianificazione fin dal- da usare nel progetto. le prime fasi, il modello permette di rilevare i difetti pre- Progettazione dettagliata - Esamina i componenti softsenti nel progetto prima che possano svilupparsi ulterior- ware definiti nella fase di progettazione generale e promente e funziona bene per progetti nei quali il controllo duce una specifica su come implementare ogni componente. di qualit sia una questione di primaria importanza. Il ciclo di vita a cascata puro consiste di pi fasi non Generazione del codice - Implementa le specifiche detsovrapposte, come mostrato in figura 2. Il modello inizia tagliate del progetto. stabilendo i requisiti di sistema e i requisiti software e Collaudo Determina se il software risponde ai requiprosegue con il progetto generale dellarchitettura, il pro- siti specificati e trova tutti gli errori presenti nel codice. getto dettagliato, la generazione del codice, il collaudo e Manutenzione Risolve i problemi e le richieste di la manutenzione. Il modello a cascata serve come riferi- miglioramento dopo il rilascio del software. In alcune organizzazioni, un comitato di controllo dei cammento per molti altri modelli del ciclo di vita. Lelenco seguente spiega i passi necessari per utilizzare il biamenti mantiene la qualit del prodotto rivedendo ciascun cambiamento eseguito nella fase di manutenzione. modello a cascata: Considerate lapplicazione dellintero modello a Requisiti cascata del ciclo di svilupdi sistema po quando sia necessario Requisiti apportare correzioni o software implementare richieste di miglioramento. Progettazione geneIn ogni fase, create docurale dellarchitettura menti che spiegano gli Progettazione obiettivi e descrivono i dettagliata requisiti per quella fase. Generazione Alla fine di ogni fase, del codice eseguite una revisione per determinare se il proCollaudo getto pu procedere nella fase successiva. Manutenzione Dovete anche incorporare la prototipazione in ogni fase a partire dalla Figure 2 Le fasi del modello a cascata progettazione generale dellarchitettura. Requisiti di sistema Stabilisce i componenti necessari Molti ritengono che non sia possibile applicare questo per costruire il sistema, inclusi i requisiti hardware, gli stru- modello a tutte le situazioni. Per esempio, con il modello menti software e gli altri componenti necessari. Esempi a cascata puro, dovete definire i requisiti prima di iniziaincludono la scelta dellhardware, come le schede plug-in re il progetto e dovete definire il progetto completo prima (numero di canali, velocit di acquisizione e cos via) e di iniziare la codifica. Non essendoci sovrapposizione tra le fasi, nello sviluppo reale potreste scoprire problemi componenti software esterni come database o librerie. Requisiti software Stabilisce le aspettative sulle fun- durante le fasi di progettazione o codifica che evidenziazionalit del software e identifica quali requisiti di siste- no errori o lacune presenti nei requisiti. ma dipendono dal software. Lanalisi dei requisiti include Il metodo a cascata non proibisce il ritorno ad una fase la determinazione delle interazioni necessarie con altre precedente: per esempio, dalla fase di progettazione alla cambiamenti pi facile e meno costoso. Il modello code and fix appropriato solo per piccoli progetti non destinati a servire come base per sviluppi futuri.
34
SCUOLA DI LABVIEW
fase dei requisiti. Tuttavia, ci implica costose fasi di revisione e lo sviluppo di unampia documentazione. Pertanto, correggere successivamente le sviste compiute nella fase dei requisiti risulta dispendioso. Poich leffettivo sviluppo avviene tardi nel corso del processo, normalmente non si vedono risultati per molto tempo. Questo ritardo pu lasciare perplessi sia i dirigenti che i clienti finali. Molte persone ritengono inoltre che la quantit di documentazione richiesta sia eccessiva e poco flessibile. Bench il modello a cascata abbia i suoi punti deboli, risulta comunque istruttivo, perch enfatizza fasi importanti dello sviluppo del progetto. Anche se non applicate questo modello, considerate ciascuna di tali fasi e la sua relazione con il vostro progetto.
sensazione di avere un sistema funzionante pu indurre i clienti ad attendersi un sistema completo prima di quanto sia possibile. Nella maggior parte dei casi, i prototipi si basano su compromessi che permettono di procedere pi rapidamente, ma che impediscono al prototipo di rappresentare una base efficace per futuri sviluppi. Dovete decidere presto se volete utilizzare il prototipo come base per futuri sviluppi e tutte le parti devono concordare con questa decisione prima che inizi lo sviluppo. Fate attenzione che la prototipazione non diventi una maschera per un ciclo di sviluppo code and fix. Prima di iniziare la prototipazione, raccogliete chiari requisiti e create un piano di progettazione. Limitate la quantit di tempo che dedicherete alla prototipazione prima di iniziare. I limiti di tempo aiutano ad evitare un eccesso di lavoro nella fase di prototipazione. Mano a mano che incorporate cambiamenti, aggiornate i requisiti e il progetto corrente. Quando avete finito la prototipazione, considerate la possibilit di tornare a uno degli altri modelli di sviluppo.
PROTOTIPAZIONE
Uno dei problemi principali con il modello a cascata che i requisiti spesso non vengono completamente compresi nelle prime fasi di sviluppo. Quando raggiungete le fasi di progettazione o codifica, conviene cominciare a vedere come ogni parte funziona insieme alle altre e scoprire eventualmente se occorre apportare qualche modifica ai requisiti. La prototipazione uno strumento efficace per dimostrare come un progetto soddisfi un insieme di requisiti. Potete costruire un prototipo, modificare i requisiti e rivedere il prototipo diverse volte finch non avete un quadro chiaro degli obiettivi globali. Oltre a chiarire i requisiti, un prototipo definisce anche molte aree del progetto simultaneamente. Il modello a cascata puro permette la prototipazione nella fase avanzata di progettazione generale dellarchitettura e nelle fasi successive, ma non nelle prime fasi dello sviluppo. Tuttavia, anche la prototipazione ha i suoi svantaggi: la
Determinazione obiettivi, alternative e vincoli Valutazione alternative e rischi
Costo cumulativo
Prototipo
Sviluppo e test
35
SCUOLA DI LABVIEW
03
durre il nuovo rischio di costi pi elevati. Supponiamo che stiate progettando un sistema di acquisizione dati con una scheda di acquisizione plug-in. In questo caso, il rischio se il sistema pu acquisire, analizzare e visualizzare i dati abbastanza rapidamente. Alcuni dei vincoli, in questo caso, sono il costo del sistema e i requisiti di una specifica velocit di campionamento e precisione. Una volta determinate le opzioni e i vincoli, potete valutare i rischi. In questo esempio, create un prototipo o un IL MODELLO A SPIRALE Il modello a spirale una popolare alternativa al modello benchmark per testare le velocit di acquisizione. Dopo a cascata. Esso enfatizza la gestione dei rischi, permet- aver visto i risultati, potete valutare se continuare con tendovi di scoprire i maggiori problemi nelle prime fasi lapproccio o scegliere unopzione differente. Lo farete del ciclo di sviluppo. Nel modello a cascata, dovete com- riesaminando i rischi in base alla nuova conoscenza che avete acquisito costruendo il prototipo. pletare il progetto prima di iniziare la codifica. Nella fase finale, valuterete i risultati Esposizione con il cliente. In base allinput del clienProbabilit Perdita Rischio Gestione del rischio al rischio te, potete riesaminare la situazione, 1 I rate di acquisizione sono Sviluppare un prototipo decidere il prossimo rischio pi elevato e 5 9 45 troppo elevati per dimostrare la fattibilit ricominciare il ciclo. Il processo continua 2 Il formato dei file potrebbe Sviluppare dei benchmark per valutare finch il software finito o quando deci15 5 3 non essere efficiente la velocit di manipolazione dei dati dete che i rischi sono troppo elevati e Interfaccia utente Coinvolgere il cliente; 3 10 2 5 terminate lo sviluppo. E possibile che non ben definita sviluppare un prototipo nessuna di queste opzioni sia percorribiTabella 1 Sintesi delle compatibilit per le shared variable pubblicate in rete le, perch le opzioni sono troppo costose, laboriose o non soddisfano i requisiti. Con il modello a spirale, il progetto viene suddiviso in un Il vantaggio del modello a spirale, rispetto al modello a insieme di rischi che necessario affrontare. Iniziate con cascata, che potete valutare quale rischio affrontare ad una serie di iterazioni nelle quali analizzate il rischio pi ogni ciclo. Potendo valutare prima i rischi grazie ai protoimportante, valutate le opzioni per risolvere il rischio, tipi, potete affrontare i maggiori ostacoli e selezionare gestite il rischio, valutate i risultati e pianificate literazio- delle alternative gi nelle prime fasi, cosa che si rivela ne successiva. La figura 3 illustra il modello del ciclo di meno costosa. Con un modello a cascata standard, invece, le ipotesi relative ai componenti rischiosi possono vita a spirale. I rischi sono tutti gli aspetti che non sono chiaramente essere distribuite lungo lintero progetto e quando scodefiniti o che hanno la possibilit di influire negativa- prite i problemi, il lavoro aggiuntivo necessario pu rivemente sul progetto. Per ogni rischio, considerate le due larsi molto costoso. cose seguenti: La probabilit che il rischio si verifichi La severit delleffetto del rischio sul progetto (perdita) Potete usare una scala da 1 a 10 per ciascuno di questi elementi, dove 1 rappresenta la minima probabilit o perdita e 10 rappresenta il massimo. Lesposizione al rischio il prodotto di questi due valori. Usate qualcosa di simile alla tab. 1 per tenere traccia degli elementi di massimo rischio del progetto. In generale, affrontate prima i rischi che hanno la pi alta esposizione al rischio. In questo esempio, la prima spirale affronta la possibilit che le velocit di acquisizione dati siano troppo elevate. Se dopo la prima spirale dimostrate Note sullautore che le velocit sono elevate, potete passare a una diverLaureato in ingegneria nucleare al Politecnico di sa configurazione hardware per soddisfare i requisiti di Milano, Matteo Foini lavora in qualit di Technical acquisizione. Ogni iterazione pu identificare nuovi rischi. Marketing Engineer presso National Instruments Italy. In questo esempio, usare hardware pi potente pu introgli indicatori che vi occorrono. Lasciate il diagramma a blocchi vuoto e immaginate il funzionamento dei controlli e se le varie azioni implementate richiedano eventualmente altri pannelli frontali. Se siete impegnati su un progetto per un cliente, usare prototipi dei pannelli frontali un modo estremamente efficace per discutere con il cliente come potete soddisfare i suoi requisiti.
36
D A L L A C A RTA A L W E B
HTTP://WWW
Utilizzo di funzioni grafiche in un XControl di LabVIEW
Link alla pagina: ni.com/info infocode: itqsdw
03
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.
L'esempio mostra come implementare un XControl. Il VI Paint Demo utilizza l'XControl Paint per dimostrare come utilizzare alcune delle funzioni grafiche disponibili in un XControl di LabVIEW. L'XControl Paint vi permette di disegnare oggetti come linee e cerchi e di scrivere testo. L'XControl restituisce poi l'immagine disegnata. Aprite il VI Paint Demo per vedere l'implementazione dell'XControl. Aprite il progetto Paint XControl per vedere la struttura dell'XControl.
37
D A L L A C A RTA A L W E B
03
Cliccare con il tasto sinistro del mouse per visualizzare un menu di scelta rapida in LabVIEW
Questo esempio mostra come visualizzare un menu contestuale cliccando con il tasto sinistro del mouse su un controllo. L'esempio utilizza gli eventi di filtro Mouse Down? e Shortcut Menu Activation?. Nell'evento Mouse Down?, l'esempio modifica il parametro Button in modo che LabVIEW interpreti un click sinistro come un click destro e lanci l'evento Shortcut Menu Activation?. Link alla pagina: ni.com/info infocode: itqsdw
Interazione tra LabVIEW e la finestra interattiva del MathScript utilizzando variabili globali
Con LabVIEW potete lavorare in modalit sia grafica che testuale per la progettazione di algoritmi ed altri compiti che richiedano elaborazione di segnali, analisi e matematica. La disponibilit di entrambi gli approcci offre la libert di affrontare i problemi nei loro vari aspetti usando gli strumenti pi appropriati. Come si vede nell'esempio, si possono utilizzare fianco a fianco i due approcci e condividere dati e risultati fra loro. Specificamente, si esamina come i programmi grafici scritti in LabVIEW (strumenti virtuali) possono condividere dati con la finestra interattiva del MathScript. Potete progettare e implementare algoritmi nell'interfaccia utente di tipo testuale della finestra interattiva del MathScript e vedere immediatamente i risultati allinterno di un'interfaccia utente custom sviluppata graficamente in LabVIEW. Link alla pagina: ni.com/info infocode: itqsdw
38
03
Vi presentiamo una selezione di argomenti di discussione sul Forum di ILVG.it
Per prendere una webcam in LabVIEW si deve lavorare sulle API di windows ma nonsaprei da dove partire per trovare la procedura giusta. Quindi la domanda : Conoscete dei produttori di framegrabber VERAMENTE lowcost con driver per LabVIEW?? Oppure avete idea di come acquisire in LabVIEW una sorgente video che non arriva da un framegrabber? (meglio se non un continuo salvataggio di immagini singole :D ) [continua su http://www.ilvg.it/ht/581] Gepponline
39
03
Note sullautore: Alessandro Ricco (www.agilesystems.it), ILVG.it Admin & LabVIEW Champion
40
REPORT
03
SCELTI PER VOI ABBIAMO SCELTO PER VOI ALCUNE RISORSE UTILI PER APPROFONDIRE LA VOSTRA CONOSCENZA DI LABVIEW.
COMMUNITY ILVG.it www.ilvg.it LabVIEW www.ni.com/labviewzone LAVA - LabVIEW Advanced Virtual Architects http://forums.lavag.org/home.html DevZone www.zone.ni.com Community on ni.com http://community.ni.com/ Mindstorm NXT http://www.ni.com/academic/mindstorms/community.htm CONTENUTI LabVIEW on ni.com www.ni.com/labview LabVIEW on ni.com/italy www.ni.com/labview/i LabVIEW Jobs http://www.labviewjobs.com/ The VI Road Show http://viroadshow.blogspot.com FORUM
Nadia Albarello
LVG, la prima Comunit di LabVIEW in Italia, nata per far fronte alle esigenze di condivisione di esperienze e competenze tecniche dei numerosi appassionati di LabVIEW in Italia e che conta ormai numerosissimi iscritti, ha sentito lesigenza di incontrarsi dal vivo, al di fuori, quindi, delle familiari pareti di casa del Forum di Discussione ilvg.it Lo scorso sabato 23 giugno, 30 persone si sono quindi incontrate presso il Collegio Lorenzo Valla dellUniversit di Pavia. Obiettivo della manifestazione, riunire la Comunit virtuale in uno spazio reale, potersi confrontare e creare un momento di aggiornamento importante per un pubblico circoscritto, ma estremamente eterogeneo. Il men della giornata: nessuna agenda classica, se non una scaletta di base da cui attingere spunti di confronto reciproco e panel di discussione generati dal reale interesse di confronto del momento. Il filo logico della discussione si quindi dipanato naturalmente e spontaneamente nel corso della giornata, affrontando temi come lac-
quisizione analogica sincronizzata da un encoder incrementale, la programmazione ad oggetti in LabVIEW, Lua & LuaVIEW scripting, Data I/O veloce e Foxboard&LabVIEW e molto altro ancora. Durante l'incontro, gli appassionati di Lego Mindstorm NXT, il celebre robottino che sta raccogliendo consensi e nuovi fan in tutto il mondo ogni giorno, hanno potuto approfondire le tecniche di programmazione in LabVIEW e scambiarsi trucchi e segreti del mestiere. Siamo riusciti a riunire esperti provenienti da ogni settore e da tutta Italia sotto un unico tetto grazie alla forte motivazione ed interesse personale di ognuno dei presenti, ha dichiarato Alessandro Ricco, uno dei fondatori di ILVG. Naturalmente, stiamo gi pensando alla prossima edizione. Vi aspettiamo!.
41
REPORT
03
Grande successo per la terza edizione dellevento organizzato a Roma da National Instruments
i conclusa il 30 maggio la terza edizione del Forum Aerospazio e Difesa 2007, appuntamento organizzato a Roma da National Instruments Italy e che d spazio alle voci di riferimento dellindustria italiana nei settori Aerospazio e Difesa. Giunto alla terza edizione, levento ha visto la presenza di 140 partecipanti, 12 espositori e di un comitato scientifico composto da primarie aziende di settore.
LE SESSIONI
Durante la sessione plenaria, National Instruments ha delineato le ultime tendenze del settore, dando enfasi, in particolare, allevoluzione del ruolo di software e hardware nelle applicazioni militari ed aerospaziali. La keynote di National Instruments ha infatti sottolineato la crescente importanza delle tecnologie commerciali nelle funzioni di test real-time
nel settore, auspicando una sempre maggiore integrazione tra due realt ormai sempre pi vicine, la ricerca industriale e quella condotta in ambito militare. E seguito lintervento del Generale Ispettore Pietro Finocchio, direttore generale di Teledife, Direzione delle Telecomunicazioni dellinformatica e delle Tecnologie Avanzate, che ha spostato lattenzione sulle esigenze pratiche di innovazione tecnologica del Settore Difesa in ambiti quali radar, sistemi elettronici, sistemi di telecomunicazione, informatici e di osservazione spaziale. Radar, aerospazio, elettronica per la difesa e telecomunicazioni per la difesa: queste le quattro sessioni tecniche, presentate dopo la keynote, che sono state introdotte da un rappresentante di aziende leader nel settore Aerospazio e Difesa. Ognuno dei quattro chairman ha illustrato una panoramica del proprio settore di appartenenza, introdu-
42
REPORT
cendo poi testimoni di casi applicativi reali che, a loro volta, hanno sviluppato il relativo tema presentando problemi affrontati e successi ottenuti. Tra gli espositori intervenuti, erano presenti alcuni Alliance Partner di National Instruments, rappresentanti del mondo accademico, Wind River, Selex Communications e aziende internazionali. La Poster Session ha ospitato 7 aziende, offrendo loro la possibilit di presentare le proprie applicazioni tecniche in un contesto pi informale ed innovativo. Ha affermato Lino Fiore, Managing Director di National Instruments Italy: "National Instruments orgogliosa di essere stata promotrice del Forum Aerospazio e Difesa 2007, un evento diventato ormai momento di incontro fisso per diverse realt aziendali ed istituzioni del settore. Il Forum ha rappresentato un'occasione di interscambio di idee e sinergie che possa promuovere concretamente il Sistema Italia in questo mercato. E' grazie alla continua ricerca e al confronto costante che possono nascere risultati eccellenti e, fino ad ora, il nostro mercato ha dimostrato di avere tutte le carte in regola per emergere e potersi distinguere per innovazione e tecnologia.
PROBLEMATICHE SPECIFICHE
Ma quali sono le principali problematiche di real-time specifiche del settore aeronautico e in che modo National Instruments risponde a queste esigenze? Quando si parla di progettazione e test di sottosistemi real-time si abbraccia un vasto campo di applicazioni: sistemi idraulici, sottoassiemi di bordo, sistemi servo-meccanici solo per menzionarne alcuni", ha spiegato Augusto Mandelli, Area Sales & Academic Relations Manager di National Instruments Italy. "Il settore aeronautico di fatto, per evidenti vincoli di sicurezza e di operativit, tra quelli che pongono maggiormente laccento su queste problematiche. La piattaforma software LabVIEW, assieme ad una serie di target hardware quali il PXI, il cRIO ed il cFP National Instruments, permette di affrontare in maniera rapida, efficace ed economica le sfide del settore aeronautico ed avionico. I moduli Real Time ed Fpga, assieme a quelli per il modeling e la System Identification, in virt di un unico paradigma di programmazione (parlo della Graphical Programming o, nella sua accezione evoluta, del Graphical System Design) ed un unico ambiente, permettono di sviluppare con successo le pi svariate applicazioni real time e questo non solo nel settore aeronautico. Inoltre, il continuo sforzo verso leccellenza tecnologica ed al contempo verso un supporto continuo ed esteso negli anni, fa s che gli operatori del settore guardino alle nostre soluzioni con estrema confidenza, come testimoniano anche le decine di applicazioni presentate durante il Forum. Ma i prodotti per il settore aeronautico sono quelli standard o ne stata eseguita una customizzazione? Mandelli
ha affermato che non necessaria alcuna customizzazione, in quanto la piattaforma NI di per s stessa quanto di pi aperto e personalizzabile esiste sul mercato. Saranno i System Integrator e gli utenti finali che, di volta in volta, aggiungeranno il loro know-how specifico e di settore per modellare la nostra piattaforma questo peraltro in tempi ridotti e con una notevole riusabilit del loro prodotto finale. In generale, i comparti della Difesa, dellAvionica e dellAerospazio rappresentano storicamente e strategicamente alcuni dei pi importanti e proficui settori per NI a livello mondiale. Questa attenzione stata sempre ben recepita dagli operatori del settore, fin dagli albori della Strumentazione Virtuale. Basti pensare al concetto di Strumentazione Sintetica (un modulo che pu essere riconfigurato in tempo reale via software nella sua logica per assolvere a diverse funzioni, permettendo di sopperire ai noti ed annosi problemi di logistica ed obsolescenza della strumentazione standard) delineato dal DoD Office of Technology Transition nel 2002, e che di fatto sposa perfettamente il paradigma della Strumento Virtuale coniato da NI alla fine degli anni 80. National Instruments ritiene che dallo sviluppo di soluzioni per il settore aeronautico si otterranno risultati trasferibili anche in altri settori e questo grazie allimportanza del concetto di converging technologies. "Prendiamo ad esempio un moderno sistema di in-vehicle infotainment (GPS, GSM/EDGE/UMTS, Video/Audio, DVD, radio, ecc.) ed un cockpit di nuova generazione dei prossimi super-aerei, come lAirbus 380 o il Boeing Dreamliner", ha concluso Mandelli. "Ebbene, le problematiche di design, V&V e testing, al netto delle varie normative, non differiscono affatto. Tutto ci porta verso una necessit di progettare e mettere sul mercato prodotti sempre migliori, pi rapidamente e a costi pi contenuti: ed in questo NI assolutamente impareggiabile.
Note sullautore
Nadia Albarello, laureata in Lingue Moderne e Comunicazione alla Karl Franzens Universitt di Graz, Austria, lavora in qualit di Marketing Communications Manager presso National Instruments Italy.
43
A P P U N TA M E N T I
03
Come sempre, vi segnaliamo i prossimi corsi di formazione di LabVIEW e i principali eventi internazionali che vedranno la partecipazione di National Instruments
EVENTI NI
CONTROL DESIGN
Milano, 25 settembre Roma, 27 settembre
FOCUS EMBEDDED
Roma, 8 novembre Milano, 13 novembre
FIERE
SAVE
Verona, dal 23 al 25 ottobre
VISION
Stoccarda, dal 6 all'8 novembre
BIMEC
Milano, dal 14 al 17 novembre
PRODUCTRONICA
Monaco, dal 13 al 16 novembre
CORSI DI LABVIEW
LABVIEW BASE I: INTRODUZIONE
Milano: dal 17 al 19 settembre dal 12 al 14 novembre dal 10 al 12 dicembre dal 24 al 26 settembre dal 15 al 16 ottobre dal 5 al 6 novembre dal 10 al 12 dicembre dal 3 al 5 ottobre
Roma:
Padova:
MANIFESTAZIONE
GMEE 2007
Torino, dal 6 all'8 settembre
44
A P P U N TA M E N T I
INTERVISTA
Negli ultimi tre anni Magneti Marelli ha partecipato a corsi in sede dedicati a LabVIEW. Abbiamo raccolto le impressioni di Sergio Mo, Testing Manager - divisione testing R&D di Magenti Marelli Sistemi Elettronici.
R: R:
La nostra organizzazione ha una struttura tipicamente piramidale, che cambia nel tempo.
LabVIEW per noi diventato il linguaggio universale di Test che viene utilizzato su tutte le sedi di Progetto e Produzione. Questo ci permette di sviluppare applicazioni ad esempio in Europa e trasferirle agli stabilimenti in tutto il mondo velocemente, senza problemi, visto che chi riceve lapplicazione ne comprende appieno i contenuti. Questo punto diventa molto importante per poter completare la messa a punto dei programmi con la produzione ed essere pronti al momento giusto, evitando rifacimenti, fraintendimenti e pertanto perdite di tempo e di denaro.
R:
La formazione un elemento essenziale per ottenere dei risultati, pertanto mia cura accogliere le richieste e pianificare i corsi per le singole persone. La creazioni di classi omogenee e lottima interattivit con i docenti permette di coprire le esigenze di tutti. I risultati li vediamo sulle applicazioni dove i tempi di sviluppo si accorciano e la capacit individuale di sviluppo o risoluzione di problemi aumenta.
R:
Alla fine di ogni corso i partecipanti compilano un questionario per valutare la qualit della formazione ricevuta e lapplicabilit negli sviluppi in corso (valutazione a caldo). La stessa scheda viene ripresa per verificare i risultati dopo circa 6 mesi (valutazione a freddo) e devo dire che i risultati sono stati ad oggi sempre molto buoni a conferma della buona qualit del lavoro svolto dai formatori NI, non solo in termini di contenuti ma anche di capacit di trasferirli ai partecipanti.
Come applicate nello specifico le espeD : rienze acquisite? Quali sono i benefici a Progetti futuri? livello strategico ed economico derivati dalla D : scelta?
R:
La nostra organizzazione lavora per i maggiori Car Maker a livello mondiale ed abbiamo sedi che operano nel Nord e Sud America, Europa ed Asia.
R:
Utilizzare LabVIEW su microprocessori, in particolare su microprocessori di telecamere intelligenti in modo diminuire i tempi di test per i prodotti dove utilizziamo la Visione.
45
L A B V I E W E L AVO R O
03
AAA
RICERCHIAMO
QUALIFICATION TEST ENGINEER Gruppo multinazionale leader mondiale di settore, nell'ottica del potenziamento della struttura R&D ubicata nella sede direzionale fra Modena e Bologna, ci ha incaricato di ricercare: MECHANICAL QUALIFICATION ENGINEER All'interno di un team multifunzionale, la posizione prevede: competenze maturate in attivit di test per sensori, attuatori e componentistica meccanica, idralulica, pneumatica utilizzo della strumentazione di laboratorio inclusi i sistemi di aquisizione dati e controllo (es. LabVIEW) la proposta e la realizzazione di attrezzature di test complesse la valutazione dell'attivit di testing pi idonea alla verifica della qualit ed affidabilit dei componenti la realizzazione dei piani di test e della documentazione necessaria all'attivit di testing la verifica dello stato di avanzamento dei piani di test l'analisi di criticit rispetto a criteri di qualit e affidabilit il supporto ad attivit sul campo Requisiti: Si richiede laurea in ingegneria meccanica, ingegneria dei materiali, ingegneria aereonautica/aerospaziale, esperienza di almeno 3 anni nell'area testing di componenti meccanici e elettromeccanici, idraulici e/o pneumatici, inglese fluente. I candidati ambosessi (L.903/77) sono invitati a leggere su www.adecco.it l'informativa sulla privacy (art.13 D. Lgs. 196/03). Facsimile di domanda disponibile su http://www.adecco.it/pagine/FacSimilecCV.aspx. Adecco Italia S.p.A. (Aut. Min.Prot. N. 1100-SG del 26.11.2004). Data di pubblicazione: 20/07/2007 Sede di Lavoro: Emilia Romagna - Modena Categoria Ruolo: Ricerca e Sviluppo
Conoscete bene LabVIEW? Date unocchiata alle offerte di lavoro che abbiamo selezionato da ILVG.it
Titolo di studio richiesto: Laurea specialistica / Vecchio ordinamento - Ingegneria Lingue conosciute: Inglese - Ottimo http://lavoro.corriere.it/
Zona di residenza: Campania Permesso di lavoro: UNIONE EUROPEA Studi minimi: Laurea Tipo di contratto: Lavoro a progetto Full-Time. www.lavoro.org
INFORMATICO / INGEGNERE INFORMATICO/ELETTRONICO/TLC NAPOLI La OKO-lab s.r.l. (www.oko-lab.com) si occupa di produzione di apparecchiature di ricerca, in particolare accessoristica per microscopi, la sede operativa a Quarto (NA), ma siamo attivi in tutto il mondo. Si tratta di una societ giovane che investe molto in ricerca e sviluppo di nuovi prodotti e nella conquista di nuovi mercati. Stiamo cercando degli ingegneri per delle posizioni di sviluppo e progettazione Software / Hardware allinterno del nostro dipartimento software. I nostri prodotti software, principalmente applicazioni nel campo della microscopia automatizzata ed dellanalisi delle immagini, sono sviluppati in LabVIEW, integrando anche moduli scritti in altri linguaggi. Stiamo cercando dei candidati fortemente motivati, interessati ad una realt come la nostra in cui la qualit delle persone viene riconosciuta ed apprezzata perch pu fare la differenza. Requisiti: richiesta conoscenza di linguaggi di programmazione di basso ed alto livello: C, C++, Java, C#, UML, dei protocolli di comunicazione di rete, ed in particolare dimestichezza nelluso e realizzazione di driver e dll. La conoscenza dellambiente LabVIEW, e di nozioni di manipolazione ed analisi delle immagini considerata preferenziale, ma non vincolante. Data: 21/07/2007 Provincia/Citt: Quarto NA Inquadramento: Prima esperienza Settore di impresa:Ricerca - Sviluppo Area funzionale: IT/Software
SPECIALISTA DEL SOFTWARE Presente in oltre 70 paesi con circa 70.000 persone ed un fatturato di 23 miliardi di euro, ALSTOM un Gruppo internazionale specializzato nell'energia (infrastrutture e tecnologie per la produzione di energia e per le sue applicazioni ai processi industriali) e nei trasporti (navali e su rotaia). Alstom Ferroviaria S.p.A., con sede a Sesto San Giovanni (Milano), Gruppo Alstom Transport, impiega oltre 400 dipendenti ed opera nel Settore Ferroviario come leader di sistemi elettrici ed elettronici. La progettazione e la produzione sviluppano sistemi di trazione, ausiliari, controllo e diagnostica per treni ad Alta Velocit, EMU, Tram, Metropolitane e veicoli elettrici per il trasporto urbano. Requisiti: Per lo sviluppo del business, richiede l'inserimento di: SPECIALISTA DEL SOFTWARE Area: Settore Tecnico Riferimento: 2534 Il/la candidato/a ideale ha 32/35 anni, in possesso di una laurea in Ingegneria Elettronica o Informatica ed ha maturato una esperienza di ca. 3/4 anni nel medesimo ruolo in aziende di medio grandi dimensioni e modernamente strutturate. In particolare si dovr occupare di: -progettare e definire i processi di test dei dispositivi elettronici; -progettare le attrezzature di test (HW e SW). Requisito fondamentale:ottima conoscenza di LabVIEW Software, Visual Basic, C, e buona esperienza in industrializzazione. La posizione riporta al Responsabile
46
L A B V I E W E L AVO R O
Ingegneria Industriale. Sede lavorativa: Sesto San Giovanni (MI) La ricerca rivolta a candidature di entrambi i sessi (l.903/77). Gli interessati sono pregati di inviare un dettagliato CV con foto tessera allegata, indicando il riferimento della posizione e l'autorizzazione al trattamento dei dati personali (D. Lgs. 30 giugno 2003, n.196), via posta, fax o e-mail a: bologna@mcs-accord.com www.mcs-accord.com
PROGETTISTA FIRMWARE Importante societ operante nel settore Automazione Industriale ricerca per la propria sede di Segrate: PROGETTISTA FIRMWARE in grado di progettare e realizzare firmware per schede aventi le seguenti funzioni/caratteristiche Requisiti: Microcontrollore con flash a bordo oppure eprom esterna Memoria (ram, e2prom) per larchiviazione dei dati e parametri RTC Acquisizione dati tramite uno o pi ingressi analogici ad alta risoluzione collegati a traduttori a basso livello (celle di carico, trasduttori di pressione, strani gauges) oppure ad alto livello(trasduttori potenziometrici, trasduttori LVDT amplificati, segnali analogici) oppure digitali (encoder) Gestione di display grafico Comunicazione mono/bidirezionale con PC tramite porte di comunicazione (RS232, UBS, ethernet) In aggiunta nelle comunicazioni avanzate: Pilotaggio di uscite digitali per il controllo di motori e/o valvole ON/OFF Pilotaggio di uscite analogiche ad alta risoluzione per il controllo di attuatori proporzionali Gestione di automatismi con logiche di controllo a logo chiuso Controllo remoto di sistemi Il candidato ideale, inoltre, avr: Conoscenza di microcontrollori embedded Conoscenza del linguaggio C dei principali compilatori (LabVIEW, visual c, visual
basic, cvi) Conoscenze hardware delle principali periferiche collegate al microcontrollore Conoscenza delle porte di comunicazione RS232, RS485, USB, ethernet e dei relativi protocolli di comunicazione; capacit di mettere in comunicazione bidirezionale scheda embedded e pc; ottimizzazione del flusso dati Conoscenza delle tecniche di condizionamento dei segnali analogici Conoscenza della logica di controllo P.I.D. e sua applicazione/ottimizzazione su diversi sistemi Capacit (in una prima fase) di lavorare su firmware e software gi esistenti, eventualmente anche solo in parte funzionanti Sede di lavoro: Milano Consul Emme Sas - agenzie di ricerca e selezione Data: 23/7/2007 Gli interessati possono inviare il proprio cv allindirizzo e-mail: consulenza@consulemme.com oppure mandare un fax al numero 02/20402953, facendo attenzione a specificare il Rif: PF autorizzando il trattamento dei propri dati personali secondo il D.Lgs 196/03 Consulemme via bronzino, 9 Tel: 02 20404051 - Fax: 02 20402953 www.trovalavoro.it
Riferimenti: 7084 Anni di esperienza nel settore: 3 Istruzione - Titolo di studio: Diploma di istituto tecnico - Perito elettronico www.borsalavorolombardia.net
TECNICO DI LABORATORIO METROLOGICO Inserzione N. 547 del 26/3/2007 Area: Qualit - Qualifica: Impiegato Settore: Elettronico Zona di lavoro: Reggio Emilia Titolo di studio richiesto: Diploma/Laurea ad indirizzo elettronico Lingue conosciute: Inglese Esperienza e caratteristiche: Si valutano candidature di differente livello di esperienza, da inserire in laboratorio metrologico per la gestione/organizzazione o l'esecuzione di test di validazione/qualificazione su prodotti elettronici, in particolare prove di EMC. Gradita conoscenza di programmazione di microprocessori, Assembler, C e LabVIEW. Gradito Inglese. www.parmaitaly.it/gmconsulting
TECNICO APPARECCHIATURE ELETTRONICHE Denominazione: Studioemme S.r.l. Sede di Lavoro: Varese Tipo contratto: Contratto a tempo indeterminato Compiti principali: Per grande gruppo che opera in campo elettronico vicinanze Varese cerchiamo Tecnico Elettronico per la progettazione hardware elettronico e software per attrezzature di collaudo e realizzazione documentazione relativa. Il candidato ideale un Perito Elettronico o simili, et indicativa 30 anni circa, esperienza pregressa nel settore, buona conoscenza Visual Basic, LabVIEW. Disponibile da: 25/07/2007
RESPONSABILE REPARTO COLLAUDO/TESTING Inserzione N. 537 del 26/1/2007 Area: Produzione/Stabilimento - Qualifica: Impiegato Settore: Elettronico Zona di lavoro: Reggio Emilia Titolo di studio richiesto: Diploma/Laurea ad indirizzo elettronico o similare Lingue conosciute: Inglese Esperienza e caratteristiche: Si richiede esperienza nella progettazione di SW per il collaudo di schede elettroniche, in particolare di sistemi EOL e ICT. Conoscenza di sistemi basati su architetture National Instruments e linguaggio LabVIEW. Il candidato gestir un piccolo reparto e si interfaccier con la direzione tecnica. Gradita provenienza dal settore automotive e conoscenza lingua Inglese. www.parmaitaly.it/gmconsulting
47
INFORMATIVA AI SENSI DEL CODICE IN MATERIA DI PROTEZIONE DEI DATI PERSONALI (Decreto Legislativo n. 196 del 30 giugno 2003)
Il Decreto Legislativo n.196 del 30 giugno 2003 ha la finalit di garantire che il trattamento dei Vostri dati personali si svolga nel rispetto dei diritti, delle libert fondamentali e della dignit delle persone, con particolare riferimento alla riservatezza e allidentit personale. Vi informiamo, ai sensi dellart. 13 del Codice, che i dati personali da Voi forniti ovvero altrimenti acquisiti nellambito dellattivit da noi svolta, potranno formare oggetto di trattamento, per le finalit connesse allesercizio della nostra attivit. Per trattamento di dati personali si intende la loro raccolta, registrazione, organizzazione, conservazione, elaborazione, modificazione, selezione, estrazione, raffronto, utilizzo, diffusione, cancellazione, distribuzione, interconnessione e quantaltro sia utile per lesecuzione del Servizio, compresa la combinazione di due o pi di tali operazioni. Il trattamento dei Vostri dati per le finalit sopraindicate avr luogo prevalentemente con modalit automatizzate ed informatiche, sempre nel rispetto delle regole di riservatezza e di sicurezza previste dalla legge, e con procedure idonee alla tutela delle stesse. Il titolare del trattamento dei dati personali Edizioni Fiera Milano S.p.A., con sede legale in Milano, nella persona del legale rappresentante; responsabili del trattamento sono i dipendenti e/o professionisti incaricati da Edizioni Fiera Milano S.p.A., i quali svolgono le suddette attivit sotto la sua diretta supervisione e responsabilit. Il conferimento dei dati personali da parte Vostra assolutamente facoltativo; tuttavia leventuale rifiuto ci rende impossibile lesecuzione di alcun adempimento contrattuale. I dati, o alcuni di essi, per i fini di cui dianzi, potranno essere comunicati a: societ appartenenti al medesimo gruppo societario di cui fa parte Edizioni Fiera Milano S.p.A.; soggetti esterni che svolgano funzioni connesse e strumentali alloperativit del Servizio, come, a puro titolo esemplificativo, la gestione del sistema informatico, lassistenza e consulenza in materia contabile, amministrativa, legale, tributaria e finanziaria; soggetti cui la facolt di accedere ai dati sia riconosciuta da disposizioni di legge o da ordini delle autorit. Un elenco dettagliato dei predetti soggetti disponibile presso Edizioni Fiera Milano S.p.A. Vi informiamo, inoltre, che potrete consultare, modificare, opporVi o far cancellare i Vostri dati o comunque esercitare tutti i diritti che Vi sono riconosciuti ai sensi dellart. 7 del Codice, inviando una lettera raccomandata a Edizioni Fiera Milano S.p.A. Via Salvatore Rosa, 14 - 20156 Milano. Se volete consultare il testo completo del Codice in materia di protezione dei dati personali, visitate il sito ufficiale dellAutorit Garante www.garanteprivacy.it
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 - Via M. Gorki 69, 20092 Cinisello Balsamo (Mi) tel. +39 02 66034.1 fax +39 02 66034.238 Direzione Sergio Maggioni Presidente Costante Casali Amministratore Delegato Alberto Taddei Publisher Nadia Albarello, Matteo Bambini, Matteo Foini, Alessandro Ricco, Alberto Taddei Direttore Responsabile Valerio Alessandroni Direttore Tecnico valerio.alessandroni@tiscali.it Lucia Favara Segreteria- tel: 02 66034.231 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 Alberto Decari Coordinamento DTP Sate Zingonia Verdellino - BG - Stampa Fotlito 73 Fotolito Giuseppe De Gasperis Sales Manager tel. 02-66034223 Agenti Italia: PIEMONTE/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 CENTRO SUD Italia 3000 Andrea Cesarano tel: 02-66034.262 fax: 02-700431547 cell 335-6473911 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.
Pubblicit
READER SERVICE
DA OGGI IL READER SERVICE E SUL WEB! www. READERSERVICE.IT
Sempre pi al passo con i tempi, LabVIEW WORLD la prima rivista in Italia a fornirvi il servizio di reader service on line. Ora possibile ricevere maggiori informazioni su prodotti e servizi presentati negli articoli e/o inserzioni pubblicitarie LabVIEW WORLD semplicemente registrandosi al sito: WWW.READERSERVICE.IT Compilate la cartolina virtuale e noi provvederemo a inoltrare tempestivamente la richiesta all'azienda interessata, che invier al vostro indirizzo tutta la documentazione disponibile.
In alternativa compilate questa scheda e inviatela al numero di fax:
0236519123
3
VICE
READE FIERA MILANO EDIZION SERVICE READER SE MILANO EDIZIONI F DER SERVICE FIERA MILANO READER SERVICE CE READER SERVICE EDIZIONI F FIERA READER SERVICE READ
IL SERVIZIO GRATUITO
Citt Nazione
DESIGN
PROTOTYPE
DEPLOY
Grazie alla tecnologia Graphical System Design di LabVIEW e CompactRIO di National Instruments, siamo riusciti a progettare il prototipo di una centralina di controllo elettronico di una motocicletta in soli tre mesi. Lutilizzo di strumenti tradizionali avrebbe richiesto due anni e mezzo.
Control design Librerie di propriet intellettuali Progettazione filtri digitali Simulazione sistemi dinamici
Driver e moduli di I/O Hardware FPGA commerciale Integrazione di codice C e VDHL Strumenti di validazione del design
> Piattaforme di distribuzione robuste > Networking distribuito > Interfacce uomo-macchina > Gestione di firmware
Scopri come sviluppare i tuoi progetti ancora pi velocemente attraverso una Presentazione Multimediale di Analog Devices, Celoxica e Maplesoft visitando il sito ni.com/embedded.
02 41 309 277
readerservice.it n.17288
2006 National Instruments Corporation. Tutti i diritti riservati. CompactRIO, LabVIEW, National Instruments, NI e ni.com sono marchi registrati di National Instruments. Altri prodotti e nomi aziendali citati sono marchi commerciali delle rispettive aziende. 7853-104-122