Sei sulla pagina 1di 52

SETTEMBRE

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

CONDIVISE IN LABVIEW OTTIMIZZARE I TEST

USARE LE VARIABILI

AUTOMATIZZATI PER PROCESSORI

MULTICORE COME SVILUPPARE


CON SUCCESSO IN LABVIEW

ISSN 1972-3008

03

SCENARIO
03

LABVIEW SFRUTTA LA POTENZA DEI PROCESSORI MULTICORE C

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

SFRUTTA LA POTENZA 01 LABVIEW DEI PROCESSORI MULTICORE


Nel corso di NI Week 2007 stato presentato LabVIEW 8.5

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

IL PUNTO DI VISTA 03 LABVIEW: DELLR&D


Un nutrito team di ingegneri lavora quotidianamente al progetto LabVIEW

SVILUPPARE 32 COME CON SUCCESSO


Questo ar ticolo descrive tecniche di sviluppo basate su anni di esperienza nellingegneria del software

DI REPLICA DI SISTEMI 06 TOOL REAL-TIME


Un file eseguibile e alcuni VI per la replica di sistemi LabVIEW Real-Time

37 DALLA CARTA AL WEB

Come sempre, la rubrica offre una serie di link ad ar ticoli di approfondimento o altri documenti disponibili sul web

SIMULTANEO 09 CONTROLLO DI PANNELLI FRONTALI REMOTI


Controllo remoto simultaneo delle applicazioni

39 LA VOCE DEGLI UTENTI

Alessandro Ricco ha selezionato alcuni spunti di discussione apparsi sul Forum di ILVG.it

USARE LE VARIABILI 11 COME CONDIVISE IN LABVIEW


Lar ticolo introduce le variabili condivise e loro caratteristiche e prestazioni

LA COMUNIT 41 ILVGDAY: DI LABVIEW SI RIUNISCE


Il 23 giugno si svolto il primo ILVGDAY

APPLICAZIONI 19 OTTIMIZZARE DI TEST AUTOMATIZZATI PER PROCESSORI MULTICORE


Usando tecniche di programmazione parallela

AEROSPAZIO E DIFESA 42 FORUM 2007: MISSIONE COMPIUTA


Grande successo per la terza edizione dellevento organizzato a Roma da NI

24 UN'APPARECCHIATURA PER LA COLTURA DI CELLULE


L'invenzione descritta nell'ar ticolo coper ta da un brevetto congiunto Ispesl-CNR

44 APPUNTAMENTI

National Instruments sar presente a numerosi eventi, oltre ad organizzare propri corsi e seminari. Scegliete quelli che vi sono pi comodi

26 DERT: DATA EVALUATION REAL TIME


Un sistema a basso costo e flessibile per valutare sistemi di Difesa

46 LABVIEW E LAVORO
SEI UN FAN DI LABVIEW?

Sapete utilizzare LabVIEW? Forse troverete la proposta che fa per voi

AAA

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

ENTRA NELLA NOSTRA COMUNIT!


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

A TU PER TU

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.

organizzato il gruppo D: Come R&D di LabVIEW?

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

PER LA VOSTRA PUBBLICIT SU QUESTE PAGINE


per essere sicuri che un cambiamento in un prodotto software come LabVIEW o un driver non abbia impatti negativi su un altro. Questo il processo attraverso il quale gestiamo gli ultimi ritocchi di una versione beta di LabVIEW prima di passarla ai team hardware, che potranno validare il loro codice rispetto ad essa. Gran parte di questo processo, in termini di creazione di rapidi ritocchi e di loro installazione su macchine di test, estremamente automatizzato.

CONTATTATE I NOSTRI AGENTI REGIONALI

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.

larco temporale tipico nel quale viene D: Qual sviluppato un progetto?

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

TOOL DI REPLICA DI SISTEMI REAL-TIME


L'ar ticolo descrive lutilizzo di un file eseguibile e di alcuni VI specifici per la replica di sistemi LabVIEW Real-Time

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.

USO DELL'UTILITY DESEMPIO IN FORMATO ESEGUIBILE

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

USO DEI VI DI REPLICA DEL SISTEMA


I VI di replica del sistema permettono di creare VI ed eseguibili custom per eseguire operazioni di replica e di backup. Per esempio, un integratore di sistemi pu utilizzare un eseguibile di questo tipo per distribuire upgrade del software ai clienti, senza richiedere ai clienti stessi di installare dei driver o utilizzare il MAX e un client FTP per eseguire l'aggiornamento. Il paragrafo seguente discute un VI desempio per installare un'immagine su un target che non ha software installato, n un indirizzo IP configurato. Dopo questo Figura 5 esempio, ven-

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).

DISTRIBUIRE UN'IMMAGINE MEMORIZZATA


Questa utility presuppone che i target d'interesse siano pronti ad accettare trasferimenti di file. Ci significa che devono avere un indirizzo IP valido assegnato. 1. Selezionate questa volta Folder come sorgente. Quindi navigate o digitate il percorso verso l'immagine memorizzata nel paragrafo precedente. 2. Selezionate RT Target come destina-

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

CONTROLLO SIMULTANEO DI PANNELLI FRONTALI REMOTI LABVIEW


Vediamo come utilizzare una delle ultime funzionalit introdotte in LabVIEW per il controllo remoto simultaneo delle applicazioni

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

Figure 2 Abilitazione del Web Ser ver di LabVIEW

Figure 1 VI desempio per pannelli frontali remoti

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

Figure 3 Impostazione dell'esecuzione rientrante

W H AT S N E W

03

Figure 4 Uso del Web Publishing Tool

Figure 7 Controllo remoto di un VI in un web browser

Figure 5 Creazione di titolo, intestazione e piede della pagina

Figure 6 Creazione della pagina HTML per il pannello frontale remoto

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

TIPS & TECHNIQUES

03

COME USARE LE
Mike Trimborn

VARIABILI CONDIVISE IN LABVIEW


Lar ticolo introduce le variabili condivise e contiene una discussione sulle loro caratteristiche e prestazioni in LabVIEW
abVIEW permette di accedere a unampia variet di tecnologie per creare applicazioni distribuite. La variabile condivisa (shared variable) introdotta in LabVIEW 8 rappresenta un importante passo avanti nella semplificazione della programmazione necessaria per tali applicazioni.

shared variable single-process. Il Modulo LabVIEW RealTime e il Modulo LabVIEW Datalogging and Supervisory Control (DSC) offrono propriet configurabili addizionali.

CREAZIONE DELLE SHARED VARIABLE


Utilizzando le shared variable, potete condividere dati fra pi cicli paralleli nello stesso diagramma o fra VI distinti distribuiti su una rete. A differenza di molti Figure 1 Finestra delle propriet di una shared variable single-process metodi esistenti di condivisione dei dati in LabVIEW come UDP/TCP, le code e le FIFO Real-Time, tipicamente dovete configurare la shared varia- TIPI DI DATO ble in fase di creazione della risorsa, mediante finestre di Creata una nuova shared variable, potete selezionare fra configurazione delle propriet, e non necessario include- un numero elevato di tipi di dato standard. In aggiunta, re codice di configurazione nella vostra applicazione. potete specificare anche un tipo di dato custom selezioPotete creare tre tipi di shared variable: single-process, nando Custom nellelenco a tendina Data Type e navinetwork-published e time-triggered. Larticolo discute in gando verso un controllo custom. Tuttavia, quando si utidettaglio le shared variable single-process e network- lizzano tipi di dato custom, LabVIEW non consente di abipublished. litare le opzioni FIFO real-time e scalatura. Inoltre, se avePer creare una shared variable dovete avere un progetto te installato il Modulo LabVIEW DSC, la gestione degli aperto. Per aggiungere una shared variable a un progetto, allarmi si limita alle notifiche di stato errato. cliccate con il pulsante destro del mouse su un target, su Dopo avere configurato le propriet della shared variable una libreria di progetto o su una cartella allinterno di una ed avere cliccato il pulsante OK, la shared variable appalibraria di progetto nella finestra Project Explorer. re nella vostra finestra Project Explorer sotto la libreria o Quindi selezionate NewVariable nel menu rapido per il target che avete selezionato, come mostrato in figura 2. visualizzare la finestra Shared Variable Properties, selezionate le opzioni di conRIFERIMENTI ALLA VARIABILE figurazione di vostro interesse e cliccate il Dopo avere aggiunto una shared pulsante OK. variable ad un progetto LabVIEW, Se cliccate con il pulsante destro del moupotete trascinare la shared variase direttamente su un target oppure su ble nello schema a blocchi di un VI una cartella che non sia allinterno di una per effettuare operazioni di lettulibreria di progetto e selezionate ra e scrittura, come mostrato in NewVariable dal menu rapido, LabVIEW figura 3. crea una nuova libreria di progetto e pone Potete cliccare con il pulsante la shared variable al suo interno. destro del mouse su una shared Figure 2 La shared variable nel La figura 1 mostra la finestra di dialogo variable nella finestra Project progetto Shared Variable Properties per una Explorer e cos editarne le pro-

11

TIPS & TECHNIQUES

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.

SHARED VARIABLE SINGLE-PROCESS


Utilizzate variabili single-process per trasferire dati fra due punti del diagramma di uno stesso VI che non possono essere connessi con un filo, come accade nel caso di cicli paralleli, oppure fra due VI distinti presenti sulla stessa mecchina. Limplementazione di una variabile single-process simile a quella di una variabile globale di LabVIEW. Il vantaggio principale della nuova variabile la possibilit di convertirla in una variabile network-published, accessibile a qualsiasi nodo sulla rete.

Figura 3 Operazioni di lettura e scrittura di una shared variable

LE SHARED VARIABLE SINGLE-PROCESS E LABVIEW REAL-TIME


Per mantenere il determinismo, unapplicazione real-time richiede luso di un meccanismo deterministico non bloccante per trasferire i dati dalle parti critiche del codice, come i timed loop a priorit pi alta e i VI con priorit time-critical, Figura 4 Variabile condivisa operante come FIFO real-time alle sezioni non deterministiche dellapplicazione. Quando installate il modulo LabVIEW Real-Time, pote- mamente precisa, vi conviene prevedere alcune iterazioni te configurare una shared variable per far s che utilizzi le iniziali di assestamento, per tenere conto di questa flutFIFO real-time, abilitando tale funzionalit dalla finestra di tuazione nei tempi di accesso, oppure leggere la variabile dialogo Shared Variable Properties. In questo modo almeno una volta allesterno del ciclo critico (fig. 4). LabVIEW crea ununica FIFO real-time per ogni shared potete evitare luso dei VI real-time FIFO di basso livello. LabVIEW crea una FIFO real-time la prima volta che un variable single-process anche quando la variabile gestisce nodo di variabile cerca di scrivere o leggere una variabile. lettori/scrittori multipli. Per assicurare lintegrit dei dati, Questo comportamento si traduce in un tempo di esecu- gli scrittori si bloccano reciprocamente e lo stesso accade zione leggermente pi lungo al primo utilizzo di una sha- per i lettori multipli. Tuttavia, un lettore non blocca uno red variable rispetto agli accessi effettuati successivamen- scrittore ed uno scrittore non blocca un lettore. National te. Se unapplicazione richiede una temporizzazione estre- Instruments raccomanda di evitare lettori/scrittori multipli di shared variable single-process utilizzate in cicli time-critical (fig. 5). Potete selezionare fre due tipi leggermente differenti di variabile con FIFO real-time abilitata: il buffer singolo elemento e il buffer multielemento. Una prima differenza fra i due che il buffer singolo elemento non riporta notifiche relative a condizioni di overflow o underflow. Una seconda distinzione si riferisce al valore restituito da LabVIEW quando pi lettori leggono un buffer vuoto. I lettori multipli di una FIFO singolo elemento ricevono lo stesso valore e il buffer restituisce lo stesso valore finch uno scrittore scrive nuovamente su quella variabile. Ciascuno dei lettori multipli di una FIFO multielemento vuota ottiene lultimo Figura 5 Scrittori e lettori multipli che condividono una singola FIFO valore che ha letto dal buffer, oppure il valore di default

12

TIPS & TECHNIQUES

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.

DISTRIBUZIONE E HOSTING DELLE VARIABILI


Dovete assegnare le shared variable pubblicate in rete a un motore di gestione delle variabili condivise, o SVE (Shared Variable Engine), che ospita (hosting) i valori delle variabili sulla rete. Quando scrivete su un nodo di variabile, LabVIEW invia il nuovo valore al motore di competenza che ospita la variabile. Il Variable Engine pubblica quindi il valore in modo tale che i richiedenti ottengano il valore aggiornato. La figura 7 illustra tale processo. Utilizzando la terminologia client/server, il motore SVE il server per una shared variable, mentre tutti i riferimenti alla variabile sono i client, indipendentemente dal fatto che leggano o scrivano la variabile. Il lato client parte integrante dellimplementazione di ogni nodo di variabile condivisa.

LE VARIABILI NETWORK-PUBLISHED E LABVIEW REAL-TIME


Potete abilitare la FIFO real-time anche per una shared variable pubblicata in rete ma occorre tenere presente che si comportano in modo diverso rispetto alle variabili singleprocess, come visto in precedenza. Con le variabili singleprocess, tutti gli scrittori e tutti i lettori condividono ununica FIFO real-time. Con le variabili network-published, ogni lettore possiede una propria FIFO real-time, sia nel caso a singlo elemento che nel caso multielemento, come illustrato in figura 8.

Figura 7 Motore delle shared variable e gestione dei cambi di valore delle variabili

SHARED VARIABLE NETWORK-PUBLISHED


Usando una shared variable network-published, cio pubblicata in rete, potete scrivere e leggere una variabile per condividere dati su una rete Ethernet. Limplementazione delle modalit di comunicazione sulla rete viene gestita interamente dalla variabile. Oltre a rendere disponibili i vostri dati sulla rete, la shared variable network-published aggiunge molte funzionalit non disponibili con la shared variable single-process; questo comporta che limplementazione interna della variabile pubblicata in rete sia molto pi complessa. I prossimi paragrafi ne discutono alcuni aspetti e offrono raccomandazioni per ottenere le migliori prestazioni con il loro utilizzo.

Figura 8 Shared variable pubblicata in rete con opzione FIFO real-time abilitata

13

TIPS & TECHNIQUES

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 E FIFO REAL-TIME


Se abilitate sia la bufferizzazione di rete che la FIFO realtime, limplementazione della shared variable includer sia un buffer di rete che una FIFO real-time. Ricordate che lopzione FIFO real-time crea una coda separata per ogni scrittore e ogni lettore; pertanto scrittori e lettori multipli non si bloccano reciprocamente. Anche se potete impostare indipendentemente le dimensioni di questi due buffer, nella maggior parte dei casi National Instruments raccomanda di utilizzare le stesse dimensioni per entrambi (fig. 11).

Figura 9 Abilitazione della bufferizzazione di una shared variable pubblicata in rete

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

TIPS & TECHNIQUES

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).

Figura 12 Vita dei buffer

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.

VITA DELLE SHARED VARIABLE


Come detto in precedenza, tutte le shared variable sono parte di una libreria di progetto. Il motore SVE registra le librerie di progetto e le shared variable contenute in queste librerie ogni volta che LabVIEW richiede una di tali variabili. Di default, lSVE scarica e pubblica una libreria di shared variable sul target di competenza, come indicato dal progetto, non appena eseguite un VI che fa riferimento ad una qualsiasi delle variabili contenute. Il motore scarica lintera libreria e pubblica tutte le shared variable presenti, indipendentemente dal fatto che un VI in esecuzione faccia riferimento solamente a una parte di esse. Potete scaricare manualmente qualsiasi libreria di progetto cliccando con il pulsante destro del mouse sulla libreria nella finestra Project Explorer. Larresto del VI o il reboot della macchina che ospita la shared variable non rende la variabile indisponibile alla rete. Se volete rimuovere la shared variable dalla rete, dovete farlo esplicitamente nella finestra Project Explorer. Potete anche selezionare ToolsShared VariableVariable Manager per rimuovere variabili o intere librerie di variabili.

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).

DATA BINDING SUL PANNELO FRONTALE


Una caratteristica addizionale disponibile solo per le shared variable pubblicate in rete il data binding per oggetti del pannelo frontale. Dalla finestra Project Explorer trascinate una shared variable sul pannello frontale di un VI per creare un controllo legato alla shared variable. Quando abilitate il data binding per un controllo, cambiando il valore del controllo cambiate il valore della shared variable alla quale il controllo legato. Mentre il VI in esecuzione, se la connessione allSVE ha successo, appare un piccolo indicatore verde accanto alloggetto sul pannello frontale del VI, come si vede in figura 13. Potete modificare le propriet di binding relative a un qualsiasi controllo o indicatore dalla pagina Data Binding della finestra di dialogo Properties. Quando utilizzate il modulo LabVIEW Real-Time o LabVIEW DSC, potete selezionare ToolsShared VariableFront Panel Binding

Figura 14 Uso dellAPI DataSocket per leggere e scrivere programmaticamente shared variable

15

TIPS & TECHNIQUES

03

Figura 15 Architettura idonea per un delta filtering efficace

SHARED VARIABLE ENGINE


LSVE un framework che permette ad una shared variable pubblicata in rete di inviare valori attraverso la rete. Su Windows, LabVIEW configura lSVE come servizio e lancia lSVE allo startup di sistema. Su un target real-time, lSVE un componente di startup installabile che viene caricato al boot di sistema. Per utilizzare le shared variable pubblicate in rete, un SVE deve essere in esecuzione su almeno uno dei nodi del sistema distribuito. Qualsiasi nodo sulla rete pu leggere o scrivere le variabili pubblicate dallSVE. Potete anche avere pi SVE installati su pi sistemi simultaneamente se dovete distribuire le shared variable in posizioni differenti in base alle esigenze applicative.

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

RACCOMANDAZIONI PER LA SCELTA DEL LUOGO IN CUI OSPITARE LE VARIABILI


Quando scegliete il dispositivo che ospiter le variabili di rete e da cui effettuare la distribuzione delle variabili che utilizzate in un sistema distribuito, dovete considerare una serie di fattori. Il dispositivo di elaborazione compatibile con lSVE? La tabella 1 riassume le piattaforme per le quali disponibile lSVE e identifica le piattaforme che possono utilizzare variabili condivise pubblicate in rete tramite nodi di variabile o lAPI DataSocket. National Instruments richiede 32 MB di RAM e ne raccomanda 64 MB per lSVE su tutte le piattaforme valide.

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

TIPS & TECHNIQUES

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

TIPS & TECHNIQUES

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

NON MONOPOLIZZATE IL PROCESSORE


La shared variable pubblicata in rete semplifica i diagrammi a blocchi di LabVIEW nascondendo allinterno della sua implementazione molti dettagli strutturali tipici della programmazione di rete. Le applicazioni comprendono i VI LabVIEW, lSVE e il codice client SVE. Per ottenere le mi-

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.

CONSIDERATE LA POSIZIONE DELLSVE


Nel paragrafo Raccomandazioni per la scelta del luogo in cui ospitare le variabili abbiamo discusso una serie di fat-

Note sullautore
Mike Trimborn, LabVIEW FPGA Product Marketing Manager, National Instruments.

18

Readerser vice.it n 310

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.

TIPS & TECHNIQUES

03

COME OTTIMIZZARE IN LABVIEW APPLICAZIONI DI TEST AUTOMATIZZATI PER PROCESSORI MULTICORE


David Hall

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.

LA SFIDA DELLA PROGRAMMAZIONE MULTITHREADED


Fino a poco tempo fa, le innovazioni apportate nella tecnologia dei processori si traducevano in computer con CPU (Central Processing Unit) in grado di funzionare a frequenze di clock pi elevate. Tuttavia, con lavvicinarsi di tali frequenze al loro limite fisico teorico, sono stati sviluppati nuovi processori con pi core di elaborazione, anzich uno solo. Con i nuovi processori multicore, le applicazioni di test automatizzati raggiungono le migliori prestazioni e i volumi di lavoro pi elevati quando si utilizzano tecniche di programmazione parallela. Edward Lee, professore di Ingegneria Elettrotecnica ed Informatica presso lUniversit della California (Berkeley), descrive cos i vantaggi dellelaborazione parallela: Molti esperti di settore prevedono che la risposta ai limiti della Legge di Moore si dar sempre pi con architetture di calcolo parallele. Per sperare di continuare ad ottenere prestazioni sempre migliori in questo campo, i programmi dovranno essere in grado di sfruttare al meglio questo parallelismo. Programmare applicazioni in grado di sfruttare tecnologie hardware parallele rappresenta una grande sfida in campo informatico. Fortunatamente, LabVIEW offre un ambiente di programmazione ideale per i processori multicore, perch offre un ambiente intuitivo per creare algoritmi paralleli e pu assegnare dinamicamente thread multipli a una data applicazione. Infatti, le applicazioni di test automatizzati che utilizzano processori multicore possono essere facilmente ottimizzate per raggiungere le migliori prestazioni. Grandi benefici ne possono ricavare in particolare gli struFigure 1 Codice LabVIEW per lesecuzione sequenziale

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.

IMPLEMENTAZIONE DI ALGORITMI DI TEST PARALLELI


Una comune applicazione di test automatizzati (ATE) che trae vantaggio dallelaborazione parallela lanalisi di segnale multicanale. Poich lanalisi in frequenza normalmente unoperazione onerosa per i processori, la velocit di esecuzione pu essere migliorata parallelizzando il codice di test, in modo tale che lelaborazione di segnale di ogni canale possa essere distribuita su pi core di elaborazione. Dal punto di vista del programmatore, lunica modifica richiesta per ottenere questo beneficio semplicemente quella di ristrutturare lalgoritmo di test. Per illustrare il concetto, confronteremo i tempi di esecuzione di due algoritmi di analisi in frequenza multicanale operanti su due canali di un digitalizzatore ad alta velocit. Nel nostro test viene impiegato un digitizer a 14 bit PXIe-5122 per acquisire i segnali alla massima velocit di campionamento consentita (100 MS/s). Innanzitutto, vediamo in LabVIEW il modello di programmazione

19

TIPS & TECHNIQUES

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

TIPS & TECHNIQUES

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

TIPS & TECHNIQUES

03

Figura 8 Le code permettono la condivisione dei dati fra pi loop

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

Figura 9 Elaborazione del segnale a pipeline con loop multipi e code

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

TIPS & TECHNIQUES

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

Figura 10 Throughput delle strutture multiloop e a loop singolo

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)

Readerser vice.it n 311

23

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

03

UN'APPARECCHIATURA PER LA COLTURA DI CELLULE EUCARIOTICHE E PROCARIOTICHE


Enrico DEmilia, Donatella Sacco, Livio Giuliani, Settimio Grimaldi, Antonella Lisi L'invenzione descritta nell'ar ticolo coper ta da un brevetto congiunto Ispesl-CNR

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

STIMOLAZIONE ELETTRICA E MAGNETICA


La stimolazione elettrica e magnetica rappresenta un importante e affidabile strumento da poter utilizzare in Medicina Rigenerativa. Con tale stimolazione si in grado di aumentare la proliferazione cellulare, come ad esempio quella osteogenica nel tessuto osseo. Il sistema in oggetto quindi idoneo a produrre protocolli di esposizione elettromagnetica in grado di indurre diffe-

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

Fig. 1 Schema a blocchi dell'impianto

24

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

Fig. 2 Camera amagnetica

Fig. 4 Insieme miscelatore Aria/CO 2 -riscaldatore

Fig. 3 Insieme solenoide/ incubatore

Fig. 5 Insieme sistema di comando e controllo impianto

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

Note sugli autori


Enrico DEmilia, Donatella Sacco e Livio Giuliani: Ispesl Roma; Settimio Grimaldi e Antonella Lisi: CNR-Inmm Roma

25

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

03

DERT: DATA EVALUATION REAL TIME


Gennaro Ricco

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

Fig. 1 Schermata Principale - Grafico PPI

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-

Fig. 2 Grafico PPI 3D

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

readerser vice.it n.318

27

SCUOLA DI LABVIEW

03

Training per principianti

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.

A. CORREZIONE DI VI NON FUNZIONANTI


Se un VI non si avvia, guasto o non eseguibile. Il pulsante Run appare rotto, come mostrato in fig. 1, quando il VI che state creando o modificando contiene errori.
Fig 1 La freccia rotta indica la presenza di errori nel VI

Se il pulsante risulta ancora rotto quando avete finito di collegare lo schema a blocchi, il VI guasto e non pu essere avviato.

COME TROVARE LE CAUSE DEI VI GUASTI


Gli avvisi non vi impediscono di avviare un VI. Essi sono progettati per aiutarvi ad evitare potenziali problemi nei VI.

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.

CAUSE COMUNI DI ERRORE NEI VI


Lelenco seguente contiene i motivi comuni per cui un VI risulta guasto mentre lo modificate: Lo schema a blocchi contiene un collegamento interrotto a causa di incompatibilit di tipi di dato o di unestremit non collegata. Fate riferimento allargomento Correcting Broken Wires del LabVIEW Help per informazioni sulla correzioni di collegamenti interrotti. Nello schema a blocchi un terminale essenziale non collegato. Fate riferimento allargomento Using Wires to Link Block Diagram Objects del LabVIEW Help per ulteriori informazioni sulla impostazione degli ingressi e delle uscite necessarie. Un subVI guasto o avete modificato il suo pannello connettori dopo aver inserito la sua icona nello schema a blocchi del VI. Fate riferimento allargomento Creating subVI del LabVIEW Help per informazioni sui subVI.

Fig 2 Esempio di finestra di dialogo Error List

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

Fig 4 Esempio di esecuzione evidenziata

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.

Fig 6 Analisi passo passo evidenziata

STRUMENTI PROBE
Utilizzate lo strumento Probe, mostrato nella fig. 7, per verificare i valori intermedi su un collegamento mentre un VI in esecuzione.

Fig 7 Strumento Probe per la verifica di valori in fase di esecuzione

30

SCUOLA DI LABVIEW

UTILIZZO DI INDICATORI PER VISUALIZZARE I DATI


Potete anche utilizzare un indicatore per visualizzare i dati che passano attraverso un collegamento. Per esempio, se visualizzate dati numerici, potete utilizzare un chart nel probe per visualizzare i dati. Cliccate con il tasto destro del mouse su un collegamento, selezionate Custom ProbeControls dal menu rapido e selezionate lindicatore che volete usare. Potete anche cliccare sullicona Select a Control sulla palette Controls e selezionare uno dei controlli personalizzati o definizioni di tipo salvate sul computer o in una directory condivisa su un server. LabVIEW tratta le definizioni di tipo come controlli personalizzati quando li utilizzate per visualizzare dati sotto probe. Se il tipo di dato che avete selezionato per lindicatore non adatto al tipo di dato del collegamento su cui avete cliccato con il tasto destro del mouse, LabVIEW non inserisce lindicatore sul collegamento.

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.

readerser vice.it n.325

31

SCUOLA DI LABVIEW

03

Training per esperti


COME SVILUPPARE CON

A cura di Matteo Foini

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.

VI SCALABILI, LEGGIBILI E MANUTENIBILI


Se utilizzate LabVIEW per sviluppare applicazioni complesse, dovreste usare dei buoni principi di progettazione software. Il vostro scopo sempre quello di creare VI che siano scalabili, leggibili e manutenibili. Scalabile - Deve essere facile aggiungere nuove funzionalit ad unapplicazione senza riprogettare completamente lapplicazione stessa.

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

Progettazione Analisi del progetto

Implementazione Implementazione interfaccia utente

Test Implementazione piano di test

Messa in opera Implementazione documentazione

Progettazione interfaccia utente

Implementazione codice

Valutazione prestazioni del codice

Costruzione e messa in opera dellapplicazione

Progettazione codice

Figura 1 Mappa di sviluppo del software

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.

IL CICLO DI VITA DEL SOFTWARE


Per affrontare le complessit proprie dei grandi progetti di sviluppo del software, molti sviluppatori seguono un nucleo base di principi di sviluppo che definiscono il campo dellingegneria del software. Uno dei componenti fondamentali rappresentato dal modello del ciclo di vita, che descrive i passi da seguire quando si sviluppa del software: dal concetto iniziale alle fasi di rilascio, manutenzione e successivo upgrade del software. Esistono molti modelli diversi del ciclo di vita. Ciascuno di essi ha i propri vantaggi e svantaggi in termini di tempo di rilascio, qualit e gestione dei rischi. Questo paragrafo descrive alcuni dei modelli pi comuni ma ne esistono molti altri nati da combinazioni dei principali; pertanto, potete personalizzare i modelli esistenti per adattarli ai requisiti di un progetto. Bench la discussione in questa sede rimanga teorica, considerate sempre nella pratica tutte le fasi che questi modelli abbracciano, come decidere quali requisiti e specifiche il progetto debba soddisfare e come affrontare i loro cambiamenti. Il modello del ciclo di vita un fondamento dellintero processo di sviluppo. Buone decisioni possono migliorare la qualit del software che sviluppate e diminuire il tempo necessario per lo sviluppo.

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.

REGOLE PER SVILUPPARE CON SUCCESSO


LabVIEW facilita lintegrazione di componenti di sistemi di acquisizione dati, test e controllo. Dato che creare applicazioni in LabVIEW cos facile, molte persone iniziano a sviluppare immediatamente VI con una pianificazione relativamente modesta. Per le applicazioni semplici, come test di laboratorio veloci o applicazioni di monitoraggio, questo approccio pu essere appropriato. Tuttavia, per i progetti di sviluppo pi grossi, una buona pianificazione del progetto vitale.

IL MODELLO CODE AND FIX


Il modello code and fix probabilmente la metodologia di sviluppo utilizzata pi frequentemente. Si comincia immediatamente a sviluppare, con una pianificazione minima o nulla, sistemando i problemi mano a mano che si presentano, finch il progetto completo. Il modello code and fix rappresenta la scelta preferita quando la pianificazione prevede tempi stretti di sviluppo, perch vi mette in condizione di scrivere subito codice e vedere dei risultati immediatamente. Purtroppo, se si scoprono problemi strutturali significativi in una fase avanzata del processo di sviluppo, normalmente necessario riscrivere grosse parti dellapplicazione. Modelli di sviluppo alternativi possono aiutarvi a scoprire tali problemi gi nelle prime fasi, quando eseguire

LABVIEW: UN LINGUAGGIO DI PROGRAMMAZIONE


LabVIEW un linguaggio di programmazione general purpose progettato specificamente per la creazione di

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.

IL MODELLO A CASCATA MODIFICATO


Molti ingegneri raccomandano versioni modificate del ciclo di vita a cascata. Tali modifiche tendono a focalizzarsi sulla possibililt di sovrapporre alcune fasi, riducendo il volume di documentazione necessario e il costo del ritorno a fasi precedenti per la loro revisione. Unaltra modifica comune quella di incorporare la prototipazione nelle fasi dei requisiti. La sovrapposizione delle fasi, come la fase dei requisiti e la fase di progettazione, rende possibile integrare nei requisiti un feedback dalla fase di progettazione. Tuttavia, la sovrapposizione delle fasi pu rendere difficile sapere quando si finito di lavorare con una di esse. Di conseguenza, pi difficile tracciare il progresso nello sviluppo del progetto. Senza fasi distinte, i problemi possono costringervi a deferire decisioni importanti, quando risulta pi costoso apportare correzioni.

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.

METODI DI PROTOTIPAZIONE IN LABVIEW


Vi sono diversi modi per prototipare un sistema in LabVIEW. Nei sistemi che presentano requisiti di I/O che sono difficili da soddisfare, potete sviluppare un prototipo per testare i cicli di controllo e acquisizione e le loro velocit. Nei prototipi di I/O, dati casuali possono simulare i dati acquisiti nel sistema reale. I sistemi aventi molti requisiti di interfaccia utente sono perfetti per la prototipazione. E difficile determinare sulla carta il metodo da usare per visualizzare i dati o chiedere impostazioni allutente. Al contrario, considerate la progettazione di pannelli frontali dei VI con i controlli e

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

Analisi dei rischi

Costo cumulativo

Legame al ciclo successivo

Prototipo

Pianificazione fase successiva

Sviluppo e test

Figure 3 Modello del ciclo di vita a spirale

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

readerser vice.it n. 326

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.

Come sfruttare le tecnologie multicore grazie a LabVIEW 8.5


Presentazione multimediale sulle funzionalit di sviluppo multicore offerte dalla nuova versione di LabVIEW 8.5. Si potr vedere come la programmazione grafica di LabVIEW e la sua logica a flusso di dati possono aiutarci a sfruttare al meglio le architetture per PC di ultima generazione. Tra i principali argomenti trattati: - Punti chiave dello sviluppo di soluzioni multicore - Strategie per sfruttare i vantaggi offerti dalle architetture multicore - Nuove funzionalit in LabVIEW 8.5 Link alla pagina: ni.com/info infocode: itqsdw

LabVIEW .NET Web Service Browser


Il .NET Web Service Browser un tool basato su LabVIEW per esplorare i servizi web e generare per loro .NET Assembly Wrappers. Per utilizzare il .NET Web Service Browser, estraete il file allegato nella directory ... LabVIEW X.X\project e lanciate LabVIEW. Selezionate Tools.NET Web Service Browser per lanciare il browser. Link alla pagina: ni.com/info infocode: itqsdw

Passare una variet di tipi dati da DLL a LabVIEW


L'esempio illustra come passare diversi tipi di dati da codice C a LabVIEW attraverso la Call Library Function presente in LabVIEW. Il codice C mostra come creare dinamicamente dati e passarli a LabVIEW usando le funzioni di gestione della memoria di LabVIEW. Il codice C visualizza come modificare i dati passati da LabVIEW e modificare il contenuto dei dati stessi, e mostra inoltre come LabVIEW pu passare ed accettare tipi di dati C standard come i double per gli array o i char per le stringhe, oltre a come passare strutture native di LabVIEW al codice C e come gestirle. Link alla pagina: ni.com/info infocode: itqsdw

37

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

03

Esempio di gestione del suono per LabVIEW PDA su Pocket PC


L'esempio descrive l'uso dei VI di gestione del suono in un'applicazione LabVIEW PDA per Pocket PC. Esso permette di aprire un file .wav o registrare l'ingresso del microfono. Permette quindi di riprodurre tale informazione attraverso l'altoparlante e salvarla in un file .wav. Illustra inoltre la possibilit di leggere e scrivere file .wav. Link alla pagina: ni.com/info infocode: itqsdw

Dice Rolling Game in LabVIEW


L'esempio ricrea in LabVIEW il gioco Yahtzee (http://it.wikipedia.org/wiki/Yahtzee). Si tratta di un esempio eccellente su una serie di concetti di LabVIEW, alcuni di base e altri avanzati. L'esempio utilizza un controllo Picture Ring, strutture Sequence e Case per controllare il flusso del codice, finestre di dialogo, Property Node e Invoke Node e reference ai controlli. Link alla pagina: ni.com/info infocode: itqsdw

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

Arrotondamento dei numeri alla cifra decimale desiderata


LabVIEW supporta, come funzione pronta alluso, solo l'arrotondamento dei numeri a valori interi. Per esempio, LabVIEW arrotonda il numero 543,21 a 543,00. Questo VI illustra come arrotondare i numeri a valori non interi. Per esempio, potete arrotondare il numero 543,21 a 543,20 o 540,00 scegliendo la cifra decimale a cui volete arrotondare. 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

readerser vice.it n.350

LA VOCE DEGLI UTENTI

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

Esistono Driver di webcam per l'Imaging? http://www.ilvg.it/ht/581


Inviato: 28 Gen 2005 11:06 am ..ma ciao! ...allora devo riciclare una telecamera ad infrarossi con l'uscita video PAL normalissima... La questione che 650 per prendere un frame grabber e acquisire ste immagini non me li danno. Quindi volevo utilizzare una scheda o di acquisizione TV oppure realizzare qualcosa in modo tale da far risultare la telecamera come una webcam e poi andare a riprenderla in LabVIEW.
Alessandro Ricco

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

Build executable http://www.ilvg.it/ht/3345


Inviato: 06 Ago 2007 10:07 am Ciao, ho un semplice VI per schede DAQ usb. Quando eseguo il build il vi parte RUN in automatico nonostante io abbia settato nel Source File Settings l'inverso e cio che non parta in automatico quando clicco sull'exe. Perch ? [continua su http://www.ilvg.it/ht/3345] Principiante

Memorizzazione dato (tipo latch D) http://www.ilvg.it/ht/3028


Inviato: 26 Apr 2007 10:33 am Ciao a tutti, sono uno studente di ingegneria elettronica specialistica che sta lavorando con LabView 8.20 per la tesi. Sto diventando matto perch non riesco a fare una cosa: memorizzare un dato. Per esempio: voglio fare un filtro passa basso con frequenza di taglio impostabile dallutente ogni qual volta egli lo voglia. Ho anche messo un valore di default. Il VI parte filtrando col valore di default (100) poi se lutente vuole cambiare f, schiaccia un pulsante che apre una finestra di dialogo, inserisce il nuovo valore e schiaccia ok. Questa operazione deve poterla fare ogni volta che vuole, ma deve restare memorizzato (latchato) il dato immesso finch premendo l'ok della finestra non se ne inserisce un altro (il latch lascia passare il dato). Io invece non riesco a tenere il dato memorizzato, dopo un ciclo torno al valore di default. Se qln mi aiuta mi fa un piacere, spiegandomi la soluzione del mio problema, o dandomi il VI stesso da scaricare per vederlo meglio, oppure spiegandomi come si fa in generale se si vuole tenere un nodo a un certo valore fino all'inserimento di uno nuovo. Grazie1000!!!! [continua su http://www.ilvg.it/ht/3028] Sundance

39

LA VOCE DEGLI UTENTI

03

LPT tramite USB http://www.ilvg.it/ht/3199


Inviato: 01 Giu 2007 1:12 pm ..ma ciao! Devo pilotare un dispositivo sfruttando la porta LPT. Non avendola sul portatile ho installato un adattatore USB. Come faccio ad utilizzarla? ho sperato che funzionasse come una porta normale usando il PORT I/O invece no. Devo cambiare il numero della porta oppure dubbio pi atroce...mi tocca usare i blocchi visa? Se la risposta la seconda, come faccio a pilotare i singoli canali? [continua su http://www.ilvg.it/ht/3199] Gepponline

Uscita da finestra secondaria subvi http://www.ilvg.it/ht/3191


Inviato: 31 Mag 2007 4:04 pm Ciao a tutti Ho una finestra secondaria che richiamo dal programma principale, e che serve a mostrare alcuni dati; per fare questo, ho creato a parte un nuovo VI nel quale ho messo gli indicatori che mi servono collegati a dei vertical point slide (che ho poi occultato) ed un pulsante collegato ad un WHILE che mi permette di uscire dalla finestra in seguito ad una sua pressione. Ho configurato opportunamente il connettore del vi, e lo richiamo correttamente dal programma principale (ho configurato sub vi node setup). Il problema che la finestra secondaria, quando aperta, mi blocca l'elaborazione principale, permettendomi solo di visualizzare gli ultimi dati disponibili forniti dall'elaborazione principale, perch la finestra aspetta la pressione del pulsate di uscita. Ora, mi chiedo: possibile fare in modo che l'apertura di questa finestra non blocchi tutto il programma principale finch non viene chiusa? In pratica mi servirebbe un modo alternativo per uscire dalla finestra senza usare un ciclo while + pulsante. Grazie in anticipo Sundance [continua su http://www.ilvg.it/ht/3191] Sundance

help sui property & invoke node http://www.ilvg.it/ht/3296


Inviato: 13 Lug 2007 10:10 am Ciao a tutti mi chiamo Max! Vi spiego la mia situazione: dovrei realizzare una interfaccia utente fatta in questo modo: una matrice i cui elementi di devono illuminare a seconda del valore selezionato di riga e colonna. Pensavo (e sono ancora convinto ;) ) di poter realizzare questa cosa con i property node ma finora sto avendo un po' di difficolt qualcuno mi potrebbe dare qualche dritta? per cortesia? grazie a tutti quelli che risponderanno! PS: ho gi visto la property blinking e pensavo di poter sfruttare le property selction size e selection start ma ci deve essere ancora qualcosa che mi sfugge ;) Di nuovo grazie! [continua su http://www.ilvg.it/ht/3296] Cobain
readerser vice.it n. 345

Note sullautore: Alessandro Ricco (www.agilesystems.it), ILVG.it Admin & LabVIEW Champion

40

REPORT

03

ILVGDAY: LA COMUNIT DI LABVIEW SI RIUNISCE


Nadia Albarello

Il 23 giugno si svolto il primo ILVGDAY

http://www.ilvg.it/ Italian LabVIEW Usergroup

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

CORSO DI PROGRAMMAZIONE DEI SISTEMI PAC N


8 date in 8 citt italiane: oltre 200 corsisti
ational Instruments fa di nuovo centro con un corso di aggiornamento itinerante: il Corso di programmazione dei sistemi PAC (Programmable Automation Controller), basato sulla tecnologia FPGA per la misura e l'automazione avanzata. Obiettivo del corso: offrire un'opportunit formativa gratuita a tecnici ed ingegneri legati al mondo della progettazione, della prototipazione e della realizzazione di sistemi di controllo industriale, costruttori di macchine, integratori di sistemi. Lormai collaudata formula dei corsi handson permette ai partecipanti di provare dal vivo le potenzialit del software e dellhardware di National Instruments ed apprendere tramite esempi pratici. Al Corso di programmazione dei sistemi PAC i presenti, guidati dai tecnici di National Instruments, hanno appreso i fondamentali del linguaggio grafico di LabVIEW e la sua flessibilit nel programmare sistemi basati su CPU real-time e sistemi di controllo FPGA. Dimostrare ad una platea tanto eterogenea come LabVIEW possa diventare un notevole valore aggiunto se integrato a sistemi di controllo e automazione avanzata, ha contribuito al successo dellevento, commenta Roberto Isernia, Technical Marketing Engineer di National Instruments Italy. La possibilit di utilizzare lo stesso linguaggio di programmazione dai sistemi SCADA a quelli di controllo basato su FPGA stata percepita come un altro notevole vantaggio. Inoltre, la formula hands-on ha permesso a tutti i partecipanti di provare di persona prodotti e tecnologie e acquisire nuove competenze in un lasso di tempo ragionevolmente breve.
readerser vice.it n. 338

Nadia Albarello

readerser vice.it n. 337

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

FORUM AEROSPAZIO E DIFESA 2007: MISSIONE COMPIUTA


Nadia Albarello

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.

readerser vice.it n.335

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

EVENTI EDIZIONI FIERA MILANO


C2 CONTROL & COMMUNICATION
Milano, 20 settembre Bari, 25 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

LABVIEW INTERMEDIATE II: CONNETTIVITA


Milano: dal 18 al 19 ottobre dal 6 al 7 dicembre

Roma:

LABVIEW ACQUISIZIONE DATI E CONDIZIONAMENTO DEI SEGNALI


Milano: Roma: Padova: dal 8 al 10 ottobre dal 26 al 28 novembre dal 22 al 24 ottobre dal 7 al 9 novembre

Padova:

LABVIEW BASE II: SVILUPPO


Milano: Roma: Padova: dal 20 al 21 settembre dal 15 al 16 novembre dal 27 al 28 settembre dal 8 al 9 novembre dal 25 al 26 ottobre

LABVIEW SVILUPPO DI APPLICAZIONI REAL-TIME


Milano: dal 5 al 7 novembre

LABVIEW ADVANCED I: ARCHITECTURE


Milano: dal 19 al 21 novembre

LABVIEW INTERMEDIATE I: TECNICHE DI DESIGN PROFESSIONALI


Milano: Roma: Padova: dal 24 al 26 settembre dal 3 al 5 dicembre dal 8 al 10 ottobre dal 28 al 30 novembre

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.

organizzato il D: Come gruppo R&D di LabVIEW?

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.

descriva la vostra espeD: Ci rienza


Magneti Marelli Sistemi Elettronici da molti anni utilizza LabVIEW come software per tutti gli sviluppi dei programmi di Test; pertanto molto importante investire in formazione per garantire le conoscenze adeguate dellambiente software e poterne sfruttare al meglio le potenzialit. Il nostro dipartimento sicuramente il maggior utilizzatore di LabVIEW ma anche i nostri progettisti hardware e software hanno iniziato ad utilizzarlo e pertanto a chiedere formazione. Da alcuni anni vengono organizzati corsi presso le nostre sedi con i formatori NI. Questo servizio svolto in maniera molto professionale sia per lottima preparazione dei docenti, sia per la completezza delle attrezzature necessarie per lo svolgimento del corso. Il corso svolto nella nostra sede ci permette di evitare spostamenti del personale, di coinvolgere il maggior numero di persone e di essere vicini ai nostri laboratori ed alle nostre apparecchiature di test. La tipologia dei corsi richiesti spazia dal corso di LabVIEW base, allintermediate fino alladvanced a seconda delle esigenze e delle conoscenze acquisite dai partecipanti.

ora dei benefici D: Parliamo derivati dai corsi

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.

condotto survey per verificare il D: Avete grado di soddisfazione?

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.

readerser vice.it n.357

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.

Comitato di redazione Redazione

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

NUMERO DELLA RIVISTA: NUMERI DI READER SERVICE

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

EDIZIONI FIERA MILANO EDI

Dati sul lettore


Nome Cognome Azienda Indirizzo Azienda Cap Prov. Tel. Fax e-mail
Consenso ai sensi dellart.23 del D.Lgs. n.196 del 30 giugno 2003 (riportati anche sul Vs. sito www.vnu.it), esprimo il consenso a che i dati qui contenuti vengano trattati, comunicati e diffusi da voi e/o da Vs. aventi causa per l'attivit di promozione e diffusione dei Vs. prodotti ed anche messi a disposizione di operatori qualificati e/o aziende del settore.

Citt Nazione

Una progettazione 10 volte pi rapida


con Graphical System Design

System Design tradizionale

Graphical System Design

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

Carroll Dase, design engineer Drivven, Inc.

Graphical System Design


Velocizza la tua progettazione embedded con la piattaforma di programmazione grafica LabVIEW di National Instruments, strumenti di terze parti e hardware commerciale disponibile sul mercato. Con Graphical System Design potrai progettare, prototipare e distribuire sistemi embedded in modo rapido ed efficace.

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

National Instruments Italy


Tel: 02 413091 Fax: 02 41309215 Tel: 06 520871 (Roma) ni.italy@ni.com ni.com/italy

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