52
LA PRIMA RIVISTA ITALIANA PER LA COMUNITÀ LABVIE W 03 SETTEMBRE 2007 E 5,00 USARE LE VARIABILI CONDIVISE IN LABVIEW OTTIMIZZARE I TEST AUTOMATIZZATI PER PROCESSORI MULTICORE COME SVILUPPARE CON SUCCESSO IN LABVIEW ISSN 1972-3008

labviewworld-03

Embed Size (px)

Citation preview

L A P R I M A R I V I S T A I T A L I A N A P E R L A C O M U N I T À L A B V I E W

03SETTEMBRE2007E 5,00

USARE LE VARIABILI CONDIVISEIN LABVIEWOTTIMIZZARE I TESTAUTOMATIZZATI PER PROCESSORIMULTICORE

COME SVILUPPARECON SUCCESSOIN LABVIEW

ISSN

197

2-30

08

03

LABVIEW SFRUTTA LA POTENZADEI PROCESSORI MULTICORE

Ci siamo: è nato LabVIEW 8.5! Nel corso di NI Week 2007, in una ballroom affollata da oltre3000 persone in perfetto silenzio, James Truchard, presidente, CEO e cofondatore di NationalInstruments, ha dato l’annuncio 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 lapiattaforma di programmazione grafica nelle applicazioni embedded ed industriali, con il nuovomodulo di progettazione a grafico di stati per modellare ed implementare il comportamento disistema. Per non parlare delle nuove librerie di I/O e di funzioni analitiche per il monitoraggio ed ilcontrollo industriale…Ma procediamo con ordine, partendo da una citazione fatta proprio dal ‘Dottor T’: “La rivoluzionerappresentata dall’elaborazione concorrente sarà probabilmente più esplosiva della rivoluzioneportata dai sistemi operativi” (dal libro ‘The Free Lunch is Over’ di Herb Sutter, Microsoft). E, con ilpassaggio ai processori multicore sul PC, i programmatori LabVIEW potranno beneficiare di unapproccio grafico semplificato al multithreading, che permetterà di massimizzare le prestazionidella tecnologia multicore con minime modifiche delle applicazioni. Il motivo è semplice: LabVIEWha già un’architettura intrinsecamente parallela. Il linguaggio a flusso di dati parallelo di LabVIEWpermette perciò di mappare facilmente le proprie applicazioni su architetture multicore e Fpga perdata streaming, controllo, analisi ed elaborazione dei segnali. “Basandosi sulla capacitàmultithreading automatica delle precedenti versioni, LabVIEW 8.5 gestisce le applicazioni degliutenti in funzione del numero di core disponibili ed offre driver e librerie ‘a prova di thread’ permigliorare il throughput delle applicazioni RF, di I/O digitale ad alta velocità e di test a segnalimisti”, ha aggiunto Truchard. In più, LabVIEW 8.5 offre il multiprocessing simmetrico (SMP) conl’ambiente LabVIEW Real-Time, dove i progettisti di sistemi embedded ed industriali possonoautomaticamente caricare task bilanciati su più core senza sacrificare il determinismo. “Con l’ultimaversione di LabVIEW, gli utenti possono assegnare manualmente parti di codice a specifici coreprocessori per mettere a punto sistemi real-time o isolare parti di codice critiche nel tempo su uncore dedicato”, ha sottolineato Truchard.“Un linguaggio di programmazione richiede 15 anni per essere adottato su vasta scala”, avevaaffermato il ‘Dottor T’ nel 1986, quando fu introdotto LabVIEW. Oggi, ben lungi dall’essersiconclusa, l’evoluzione di LabVIEW prosegue: progressi nel multiprocessing, il moduloLabVIEW Statechart, progressi sul ‘LabVIEW to the pin’ per LabVIEW Fpga, simulazioneFpga prima della compilazione, miglioramento delle prestazioni di LabVIEW e deitoolkit ed integrazione con tool di progettazione meccanica come SolidWorks sonosolo degli esempi. “Perché la soddisfazione del viaggiatore è nel viaggio stesso”, haconcluso Truchard, citando Steve Jobs, Apple Computer. Un emozionato Dottor T haquindi lasciato il palco, tra le ovazioni dei presenti.

Va l e r i o A l e s s a n d r o n i

S C E N A R I O

1

03S O M M A R I O

LABVIEW SFRUTTA LA POTENZADEI PROCESSORI MULTICORENel corso d i NI Week 2007 è statopresentato LabVIE W 8.5

01

LABVIEW: IL PUNTO DI VISTADELL’R&DUn nutr i to team di ingegner i lavoraquot id ianamente a l progetto LabVIE W

03

TOOL DI REPLICA DI SISTEMIREAL-TIME Un f i le eseguibi le e a lcuni VI per larepl ica d i s i s temi LabVIE W Real-Time

06

09

11

19

Per i l contr ibuto appor tato al progetto LabView World, s i r ingraziano:Valer io Alessandroni , L ino Fiore, Matteo B ambini , Nadia Albarel lo,Matteo Foini , Alessandro R icco.Progetto graf ico e impaginazione: Bimage. it

SEI UN FAN DI LABVIEW?

ENTRA NELLA NOSTRA COMUNITÀ!C a r o l e t to r e, s e r i t i e n i c h e q u e s t a n u ova i n i z i at i va L a b V I E W Wo r l d s i a u n u t i l e s t r u m e n to p e r l at u a at t i v i t à e d e s i d e r i c o n t i n u a r e a r i m a n e r e a g g i o r n ato s u l m o n d o L a b V I E W, c o l l e g at i a l l ap a g i n a h t t p : / / w w w. i l b 2 b. i t / l a b v i ew / l b _ wo r l d. a s p

CONTROLLO SIMULTANEODI PANNELLI FRONTALI REMOTI Control lo remoto s imultaneo del leappl icaz ioni

COME USARE LE VARIABILICONDIVISE IN LABVIEW L’ar t ico lo introduce le var iabi l i condiv i-se e loro caratter ist iche e prestaz ioni

OTTIMIZZARE APPLICAZIONI DI TEST AUTOMATIZZATI PERPROCESSORI MULTICOREUsando tecniche d i programmazioneparal le la

24 UN'APPARECCHIATURAPER LA COLTURA DI CELLULE L' invenzione descr i t ta nel l 'ar t ico lo ècoper ta da un brevetto congiuntoIspes l-CNR

42 FORUM AEROSPAZIO E DIFESA2007: MISSIONE COMPIUTAGrande successo per la ter za ediz ionedel l ’evento organizzato a Roma da NI

DERT:DATA EVALUATION REAL TIMEUn s istema a basso costo e f less ib i leper va lutare s is temi d i D i fesa

26

28

COME SVILUPPARE CON SUCCESSOQuesto ar t ico lo descr ive tecniche d isv i luppo basate su anni d i esper ienzanel l ’ ingegner ia del soft ware

32

37

39

41

DALLA CARTA AL WEBCome sempre, la rubr ica of f re una ser iedi l ink ad ar t ico l i d i approfondimento o a l t r i documenti d isponibi l i su l web

LA VOCE DEGLI UTENTIAlessandro R icco ha se lez ionato a lcuni spunt i d i d iscuss ione appars i su l Forum di ILVG. i t

ILVGDAY: LA COMUNITÀ DI LABVIEW SI RIUNISCEI l 23 g iugno s i è svolto i l pr imo ILVGDAY

44 APPUNTAMENTINational Instruments sarà presente anumeros i event i , o l t re ad organizzarepropr i cors i e seminar i . Scegl iete quel l iche v i sono più comodi

46 LABVIEW E LAVOROS apete ut i l i zzare LabVIE W? Forsetroverete la proposta che fa per voi

IL DEBUG DI VIPer avviare un VI, dovete col legare tutt ii subVI, le funzioni e le strutture con it ipi di dato corrett i per i terminal i

AAA

I n occasione di NIWeek 2007 abbiamo intervistato JeffWashington, Principal Engineering nel gruppo R&D diLabVIEW. Egli ci ha spiegato come vengono prese le

decisioni che sostengono la costante evoluzione del soft-ware di programmazione grafica National Instruments.In National Instruments da 13 anni, Jeff Washington dirigeattualmente un gruppo di altri quattro ingegneri, ma dedi-ca la maggior parte del suo tempo ad attività di ricerca esviluppo. “I progetti sui quali lavora il mio gruppo sonocambiati spesso negli ultimi anni”, egli ha affermato.“Principalmente, siamo oggi responsabili delLabVIEW Project e di alcune altre parti di fun-zionalità interne. Attualmente, metà del mioteam è impegnato su un grosso sforzo inambito real-time, che abbiamo intrapresoin vista di una futura release”.

D: Come è organizzato il gruppoR&D di LabVIEW?

R:La nostra organizzazione ha una strutturatipicamente piramidale, che cambia nel tempo per

adattarsi meglio ai progetti sui quali siamo focalizzati.Guardando le cose da un livello elevato, siamo organizzatiin gruppi focalizzati principalmente sul prodotto LabVIEWcore e su Real-Time, Fpga, LabVIEW Embedded, Matema-tica, Analisi dei segnali, Elaborazione dei segnali, ecc.I responsabili di tali gruppi rispondono direttamente alVicepresidente R&D di National Instruments. Naturalmente,come dicevo, la struttura dei gruppi non rimane fissa, per-ché quando una certa parte del progetto è terminata lerisorse disponibili vengono riallocate sulle altre parti.Questo movimento di persone è utile, perché le personalitàe le competenze dei singoli vengono continuamente ricom-binate, permettendo spesso di risolvere problemi che nellaconfigurazione precedente non avevano trovato una rispo-sta valida. E’ comunque molto importante per noi trovarcinello stesso luogo geografico e sotto la stessa leadership,per avere una direzione comune, velocizzare le comunica-zioni e reagire più tempestivamente alle decisioni prese.

D: Da dove giungono le idee di nuove funziona-lità e caratteristiche nelle nuove versioni di

of LabVIEW? Come vengono discusse (brainstor-ming, meeting, strategia/marketing)?

R:Le idee di nuove caratteristiche e miglioramenti diLabVIEW provengono da molte sorgenti diverse. Gli

utenti interni ed esterni forniscono, a noi del gruppo R&Ddi LabVIEW, un costante feedback nel corso dell’anno.A una parte di questo feedback possiamo rispondere rapi-damente introducendo cambiamenti nella prossima versio-ne di LabVIEW, mentre altro feedback richiede soluzioni piùa lungo termine, che possono dipendere da altre caratteri-stiche previste sulla nostra roadmap o da nuove tecnologieemergenti.Un buon esempio di quanto ho detto è rappresentato dai

03

Un nutr i to team di ingegner i lavora quot id ianamenteal progetto LabVIE W. Ma anche a l t r i team R&D, la retecommerc ia le e g l i utent i LabVIE W interni ed esternihanno molta voce in capito lo…

3

A T U P E R T U

Vale

rio

Ale

ssan

dron

i

Fig. 1 – Afferma Jef f Washington, Pr inc ipal Engineer ing nelgruppo R&D di LabVIE W: “Molte del le nuove caratter ist icheche entrano in LabVIE W provengono di rettamente dal la baseutent i”.

LABVIEW:IL PUNTO DI VISTA DELL’R&D

4

03A T U P E R T U

4

considerevoli cambiamenti e miglioramenti apportati alLabVIEW Project in LabVIEW 8.5. Il LabVIEW Project èstato introdotto per la prima volta nel 2005 con LabVIEW8 e, benché abbia certamente semplificato lo sviluppo inLabVIEW in vari modi, NI ha raccolto da molti utenti l’esi-genza di ulteriori caratteristiche e comportamenti.Nell’Agosto del 2006, molti dei nostri utenti più avanzati sisono riuniti in modo informale durante NIWeek, la nostraconferenza degli utenti che si svolge annualmente adAustin, in Texas, ed hanno discusso dei vari problemi chedovevano affrontare quando utilizzavano il LabVIEWProject.Il risultato diretto di quel meeting è stato che io stesso emolti altri sviluppatori del gruppo R&D di LabVIEW abbia-mo iniziato a formulare soluzioni per i problemi che eranostati descritti. Abbiamo discusso in riunioni di brainstor-ming diverse idee e finalmente abbiamo definito un set dinuove caratteristiche che, eravamo certi, avrebbero risoltotali problemi. Nel corso degli ultimi 12 mesi, abbiamo rifi-nito iterativamente queste caratteristiche, oltre a richiedereun input periodico ai clienti per essere sicuri di trovarcisulla strada giusta. Il risultato è una grande suite di carat-teristiche in LabVIEW 8.5 progettate per offrire al pro-grammatore LabVIEW strumenti migliori di gestione dei filee debugging nell’ambito del LabVIEW Project.

D: In che modo tenete conto ed implementate ilfeedback che proviene dalla grande base

utenti di LABVIEW?

R:Molte delle nuove caratteristiche che entrano inLabVIEW provengono direttamente dalla base uten-

ti. La nostra sorgente primaria di feedback è il databaseonline di suggerimenti sui prodotti, dove gli utenti posso-no sottoporre richieste di caratteristiche che vanno diret-tamente al gruppo R&D. Osserviamo anche i nostri forumutenti ed i meeting di gruppi di utenti per feedback,miglioramenti dei prodotti e suggerimenti di nuove carat-teristiche. Un buon esempio di questo è NIWeek, dovepossiamo parlare con gli utenti su come utilizzanoLabVIEW, mentre essi possono fornire un input diretta-mente a noi dell’R&D. Ma, al di là di NIWeek, mantenia-mo sempre un contatto diretto con i nostri ingegneri com-merciali e di marketing tecnico, che interagiscono quoti-dianamente con gli utenti, per raccogliere il feedback cheessi ottengono dagli utenti stessi. Essi rappresentanoun’importante sorgente di feedback, proprio perché otten-gono un input talmente cospicuo da potere individuare lerichieste che si ripetono continuamente.Quando abbiamo raccolto tutto questo input, lo combinia-mo con la nostra visione e la direzione che riteniamoLabVIEW debba seguire ed iniziamo a dare una diversapriorità alle differenti caratteristiche, non solo all’interno

del team LabVIEW, ma in tutta l’azienda, e ad ogni carat-teristica suggerita viene assegnato un colore. ‘Verde’significa che quella caratteristica deve essere inclusa nelprodotto che consegneremo; ‘giallo’ significa che vorrem-mo avere quella caratteristica ma potremmo consegnare ilprodotto anche senza di essa, se necessario; ‘rosso’, infi-ne, significa che scegliamo di non avere quella caratteri-stica nella release in elaborazione, a causa di vincoli dischedulazione, problemi di fattibilità o sovrapposizionecon un altro progetto.

D: Come vengono sviluppate le attività delgruppo e come vengono allineati ed integra-

ti fra loro i progetti paralleli?

R:I responsabili dell’ingegneria nell’ambito delle attivi-tà R&D LabVIEW collaborano con il nostro team di

strategia di prodotto per contribuire a definire le roadmapdi prodotto. L’ingegneria deve quindi definire le pietremiliari tecniche ed analizzare le dipendenze. Infatti, visono spesso molte dipendenze che è necessario risolvereprima di potere implementare una certa caratteristica;dobbiamo quindi esaminare le relazioni reciproche di talidipendenze e decidere quando la caratteristica in oggettosarà possibile.Per esempio, nel corso degli anni, molti clienti hannorichiesto una caratteristica Zoom per lo schema a blocchiLabVIEW. Vi sono diverse tecnologie, eventualmenteimplementabili in una futura versione di LabVIEW, che nerenderebbero più semplice la creazione e soddisferebberorealmente ciò che è stato richiesto. Se NI dovesse svilup-pare una caratteristica Zoom oggi, probabilmente non sitratterebbe di una soluzione a lungo termine, quindi stia-mo aspettando che altre tessere del mosaico vadano alloro posto prima di iniziare a sviluppare questo tipo ditool.

D: Come interagite con altri gruppi di sviluppo,relativi per esempio a DAQ, strumenti modu-

lari, ecc.?

R:Il gruppo R&D LabVIEW ed i team di sviluppo driverdevono coordinarsi molto spesso per fare in modo che

i nostri sforzi di sviluppo, dipendenti fra loro, procedanosenza intoppi. All’inizio di un’idea, abbiamo una culturamolto aperta, dove ciascuno può parlare ad un altro teamcirca una caratteristica che vorrebbe vedere aggiunta. Peresempio, uno sviluppatore in un team dedicato ai driversoftware per la strumentazione modulare potrebbe venireda noi se desidera che venga aggiunto un nuovo tipo di datio un nuovo meccanismo di gestione dei grafici. Tuttavia,quando il nostro set di caratteristiche per una particolareversione è deciso, abbiamo un processo molto formalizzato

5

per essere sicuri che un cambiamento in un prodotto soft-ware come LabVIEW o un driver non abbia impatti negativisu un altro. Questo è il processo attraverso il quale gestiamogli ultimi ritocchi di una versione beta di LabVIEW prima dipassarla ai team hardware, che potranno validare il lorocodice rispetto ad essa. Gran parte di questo processo, intermini di creazione di rapidi ritocchi e di loro installazionesu macchine di test, è estremamente automatizzato.

D: Quale processo utilizzate per il collaudo delcodice per il programma di utenti beta di LAB-

VIEW?

R:Come ho affermato in precedenza, il nostro processodi collaudo è molto definito. Durante lo sviluppo,

abbiamo frequenti giornate di test, nelle quali trascorriamol’intera giornata eseguendo test automatizzati e manualiper identificare i problemi. Lo stesso vale per i gruppi hard-ware che dipendono dal nostro software. Quando siamoarrivati ad una prima costruzione che riteniamo sia abba-stanza stabile e completa in termini di caratteristiche pergarantire un collaudo esterno, notifichiamo ai nostri uten-ti beta che è disponibile la prima versione beta per ildownload. Il gruppo R&D LabVIEW tipicamente rilasciadue o tre versioni beta di LabVIEW prima della releasefinale per la produzione; il beta testing avviene normal-mente entro gli ultimi 4-5 mesi prima della finalizzazionedel software. Mano a mano che vengono riportati dei bug,sia internamente che attraverso i clienti beta, essi vengonoclassificati e tracciati in modo da essere sicuri di risolvereprima i bug più critici”.

D: Qual è l’arco temporale tipico nel quale vienesviluppato un progetto?

R:L’arco temporale di un ciclo di rilascio LabVIEW è pro-babilmente più breve di quanto pensi la maggior

parte delle persone, in parte anche perché abbiamo recen-temente cambiato il nostro modo di lavorare. In passato,quasi tutti gli sviluppatori dovevano lavorare sulla prossi-ma versione, quindi il tempo era inferiore ma erano comun-que richieste moltissime ore-uomo. Oggi, abbiamo team dipersone che lavorano su versioni LabVIEW in anticipo di trecicli di rilascio. Poiché il nostro obiettivo è avere una relea-se LabVIEW ogni anno, ciò significa che abbiamo personeche stanno attivamente lavorando su versioni di LabVIEWin anticipo di tre anni. Abbiamo anche strateghi di pro-dotto che guardano persino più avanti, a quelle chedovrebbero essere le future direzioni di LabVIEW. Abbiamoquindi una visione di LabVIEW che si protrae per diversianni nel futuro in aree che spaziano dalle interfacce webthin-client alle piattaforme di sviluppo embedded emer-genti. re

ader

serv

ice.

it n

.300

PER LA VOSTRA

PUBBLICITÁ

SU QUESTE

PAGINE

CONTATTATE

I NOSTRI

AGENTI

REGIONALI

www.ilb2b.it

TRI-VENETO IDELFONSO ELBURGOVIA PIRANO, 1535135 PADOVATEL. 049 8642988 - FAX 049 8642989e-mail: [email protected]

PIEMONTE-LIGURIA ROSARIO ROMEO - PUBLIKAPPAVIA SAGRA S. MICHELE, 3710139 TORINOTEL./FAX 011 723406e-mail: [email protected]

MARCHE-UMBRIA-LAZIO-ABRUZZO-CAMPANIA-MOLISE-BASILICATA-PUGLIA-CALABRIA-SICILIA-SARDEGNAANDREA CESARANO

CELL.335 6473911

e-mail: [email protected]

CELL.335 6473911e-mail: [email protected]

6

03W H A T ’ S N E W S

Utilizzando un file eseguibile e VIspecifici per la replica di sistemiLabVIEW Real-Time, si può utiliz-

zare una singola utility o customizzarneuna con LabVIEW per creare più copieidentiche dello stesso target Real-Time.Questo evita l’utilizzo di un client FTP edel Measurement and AutomationExplorer (MAX), il programma di confi-gurazione dei prodotti NationalInstruments.L’eseguibile e i VI sono utili nel casodella distribuzione su target multipli onel caso di back up e di reinstallazionedi un sistema Real-Time, quando nonsiano disponibili diverse copie del MAXo di LabVIEW. Sono strumenti ideali perOEM ed utenti con più target identici,che possono trarre notevoli beneficidall'avere un set di VI e file eseguibiliche risolvono il problema di salvareintere configurazioni relative ai target oassegnare un'immagine a più target.

I VI richiedono l'InternetToolkit per LabVIEW perimplementare funzioni FTP(File Transfer Protocol).E' importante ricordare che leimmagini possono essere dis-tribuite esclusivamente susistemi identici. Ciò è dovutoal fatto che su ogni tipo ditarget sono scaricate le infor-mazioni specifiche relativealle differenti versioni disistema operativo, driver edatabase che identificanol'hardware.

USO DELL'UTILITY D’ESEMPIO IN FORMATOESEGUIBILEPer molti utenti, l'eseguibilepuò essere sufficiente per le loro esi-genze di replica. Esso può essere ese-guito su un desktop Windows, dallalinea di comando o all'interno di unfile batch come parte di un installer.L'esecuzione dell'eseguibile dal desk-top offre un'interfaccia utente graficaintuitiva, su cui si basa la descrizioneche segue. Spiegheremo in seguito l’u-tilizzo dei singoli VI che permettonomaggiori funzonalità e flessibilità.

MEMORIZZAZIONE DI UN'IMMAGINENormalmente, il processo di sviluppoporta alla configurazione di un targetReal-Time con il necessario set di dri-ver e un eseguibile. Per la successivereplica su sistemi identici, l'eseguibiledi replica memorizza l'immagine diquesti driver e, a scelta, anche il con-tenuto rimanente del disco rigido. Per

copiare il contenuto del disco rigidoremoto nel file system locale sono suf-ficienti pochi passi.1. Nell'utility, selezionate RT Targetcome sorgente, quindi il pulsanteBrowse… adiacente per scegliere unRT Target che serva da Master (fig. 1).Premendo il pulsante browse vienecreato un elenco di target Real-Timedisponibili nella sottorete locale (fig.2). Vengono forniti indirizzo IP, indiriz-zo MAC (un identificatore unico asse-gnato alle single schede di rete), Nomee Modello per facilitare l'identificazio-ne della corretta macchina remota.Scegliete la macchina che volete repli-care e premete OK.2. Scegliete ora Folder come destina-zione (fig. 3), quindi selezionate ladirectory del file system locale dovevolete salvare l'immagine master.3. Premete Start per iniziare il processo

TOOL DI REPLICA DI SISTEMI REAL-TIMEL'ar t ico lo descr ive l ’ut i l i zzo d i un f i le eseguibi le e d i a lcuni VI spec i f ic i per la repl ica d i s i s temi LabVIE W Real-Time

Figura 1

Figura 2

7

W H A T ’ S N E W S

di backup. Alla fine del processo, lafinestra Messages dovrebbe visualizza-re “Image created successfully” (fig. 4).

DISTRIBUIRE UN'IMMAGINEMEMORIZZATAQuesta utility presuppone che i targetd'interesse siano pronti ad accettaretrasferimenti di file. Ciò significa chedevono avere un indirizzo IP validoassegnato.1. Selezionate questa volta Foldercome sorgente. Quindi navigate o digi-tate il percorso verso l'immaginememorizzata nel paragrafo precedente.2. Selezionate RT Target come destina-

zione. Digitate poi l'indirizzo IP del tar-get desiderato o utilizzate il pulsanteBrowse… per selezionare interattiva-mente un target.3. Premete ora Start per iniziare il pro-cesso di copiatura dell'immagine pre-cedentemente memorizzata.

ALTRE POSSIBILITÀLe sezioni Source e Destination posso-no essere configurate per i seguentiusi:1. RT Target >> Folder – Fare ilback up del target in un folder sullamacchina host2. RT Target >> RT Target –Eseguire la replica di un sistema su unaltro sistema presente nella stessa rete 3. Folder >> RT Target – Scaricaresu un target un'immagine salvataSi può spuntare la casella InstalledSoftware per installare sul targetsolo i componenti che verrebberoinstallati dal MAX (software e driverNational Instruments). In altri termini,non vengono copiati altri file o esegui-bili sul disco rigido.

USO DEI VI DI REPLICA DEL SISTEMAI VI di replica del sistema permettono dicreare VI ed eseguibili custom per ese-guire operazioni di replica e di backup.Per esempio, un integratore di sistemipuò utilizzare un eseguibile di questotipo per distribuire upgrade del softwa-re ai clienti, senza richiedere ai clien-ti stessi di installare dei driver o utiliz-zare il MAX e unclient FTP pereseguire l'ag-giornamento.Il paragrafo se-guente discuteun VI d’esempioper installareun'immagine suun target chenon ha softwa-re installato, néun indirizzo IPconfigurato.Dopo questoesempio, ven-

gono discussi brevemente gli altri VI.Il programma trova un target appenaformattato e vi applica un'immagineselezionata. Esso ha il solo scopo difornire un punto di partenza per capi-re l'uso dei VI e non viene indicato daNational Instruments come soluzioneunica o speciale.Il pannello frontale fornisce i passi daseguire per utilizzare il VI (fig. 5). Inprimo luogo, scegliete il percorso ver-so l'immagine memorizzata e sceglie-te un hostname da applicare al targetper distinguerlo da altri target.Premete quindi il pulsante Run per ini-ziare a utilizzare il resto del VI.Dopo pochi secondi, la parte interme-dia del pannello frontale dovrebbevisualizzare un indirizzo MAC, un indi-rizzo IP ed un nome di modello (comePXI-8196) per ogni target non confi-gurato trovato. Scegliete il target d'in-teresse e selezionate il pulsanteImage This Target per procedere conl'installazione dell'immagine.Dopo un tempo variabile in base altraffico di rete e all'hardware, vienevisualizzato l'indirizzo IP assegnato(assegnato dal DHCP) e l'immagine èstata copiata con successo, inclusieventuali eseguibili di startup e file disupporto.Esaminiamo ora lo schema a blocchiper capire meglio i VI di replica delsistema.In primo luogo, viene eseguito il VIdenominato Find All Targets.vi (fig. 6).La costante booleana True collegata a

Figura 3

Figura 4

Figura 5

8

03W H A T ’ S N E W

questo VI comporta il rilevamento deisoli target non configurati.Ciò significa che vengono restituitisolo i target che non hanno un indi-rizzo IP assegnato. L'array di clusterrestituito contiene i dettagli relativi aogni target trovato, come il nome, gliindirizzi MAC e IP, il modello e altriancora. Questi possono essere utiliz-zati per filtrare l'elenco e restringerlosolo a determinati modelli di target.Ciò è particolarmente utile per lagestione della replica automatica deisistemi, perché una stessa immaginedeve essere distribuita solo su targetidentici. Per esempio, si potrebbeeffettuare il parsing dell'array di clu-ster per trovare solo i controllori PXI-8176.Successivamente, quando l'utente ha

selezionato il target d'interesse,l'indirizzo MAC del target viene iso-lato e passato a Set IP Address.vi(fig. 7). Questo VI può abilitare odisabilitare il DHCP (assegnazioneautomatica dell'IP) ed impostare gliindirizzi IP, Subnet, Gateway e DNS.Esso applica inoltre un hostname altarget. Il VI restituisce l'indirizzo IPassegnato, cosa particolarmenteutile nel caso del DHCP, visto chetrova automaticamente un indirizzoIP disponibile e potrebbe fornireindirizzi imprevedibili.

Set Target Image.viQuesto indirizzo IP vienetrasferito al VI Set Target

Image.vi. Tale VI esegue l'operazionefinale di copia dell'immagine mastersulla macchina duplicata. Il VI rilevaeventuali installazioni Windows edevita di sovrascrivere Windows e filerelativi. Pertanto, è sicuro eseguire SetTarget Image su target dual-boot.Il VI preserva inoltre le impostazionidegli indirizzi IP anziché sovrascriverlecon le impostazioni del master. Unnormale trasferimento FTP sovrascri-verebbe invece le impostazioni degliindirizzi IP.I VI rimanenti che non sono ancorastati esaminati si riveleranno utili nel-la progettazione di applicazioni direplica custom.

Get Target Info (IP).vi e GetTarget Info (MAC).viQuesti due VI cercano un singolo tar-get in base al suo indirizzo IP o MAC erestituiscono la stessa informazione diFind All Targets.vi, ma solo per il sin-golo target specificato. Per esempio,può essere utile per verificare che l'in-dirizzo IP o MAC corrisponda alModello corretto.

Format Target.vi Format Target formatta ildisco di target remoti. Esso è

supportato su target che non richiedo-no un floppy disk per il boot in safemode e può rivelarsi utile per i targetche possono creare numerosi filedurante l'esecuzione o che possonorichiedere frequenti upgrade e modifi-che. I vecchi target potrebbero nonsupportare questa funzione, perché illoro firmware non è stato aggiornato.Applicando l'aggiornamento firmwarepiù recente si può porre rimedio alproblema.

Get Target Image.viQuesto VI salva l'immaginetarget nella directory specifi-

cata. Un ingresso booleano determinase devono essere copiati tutti i file pre-senti sul target o solo quelli che sononormalmente installati dal MAX. Sevengono copiati tutti i file, ogni even-tuale eseguibile impostato come star-tup verrà anche eseguito allo startupdella macchina duplicata.

CONCLUSIONEUtilizzando i VI e gli esempi descritti, sipuò realizzare una varietà di applica-zioni di replica del sistema. Gli integra-tori che desiderano evitare ai loroutenti di aprire o installare il MAX etutti gli utenti che intendono duplicarepiù macchine, troveranno questi VI uti-li e flessibili.

readerservice.it n. 303

Figura 6

Figura 7

9

03W H A T ’ S N E W

Una nuova funzionalità permette dicostruire applicazioni in LabVIEWche consentono ad ogni utente

remoto di avere la propria interfacciautente, anziché visualizzarne una solain comune per tutti gli utenti. In altritermini, più utenti possono controllarecontemporaneamente il pannello fron-tale remoto di un VI senza influenzareeventuali altri utenti connessi allo stes-so pannello contemporaneamente.

I pannelli frontali remoti di LabVIEWpermettono di vedere e controllare unVI attraverso un web browser standard.Creare la pagina web di un pannellofrontale remoto è facile grazie al WebPublishing Tool di LabVIEW. Con pochiclick del mouse si può creare una pagi-na web che incorpora l'immagine delpannello frontale del VI, visualizzabileattraverso il web browser del client.I pannelli frontali remoti permettono apiù client di visualizzare simultanea-mente il pannello frontale dello stesso

VI; tuttavia, in precedenza, solo unclient per volta poteva controllare il VI.La novità ora è che più client possonocontrollare contemporaneamente ilpannello frontale del VI. Ogni volta cheviene assegnato il controllo, viene crea-ta una nuova istanza del pannello fron-tale, permettendo a ciascun client dicontrollare il VI senza influenzare glialtri client. Per illustrare l'uso di questafunzionalità, seguiamo un'applicazione

esemplificativa che utilizza questa tec-nica. Il VI di figura 1 legge un file dati evisualizza un'onda sinusoidale con dis-turbo. L'utente può quindi applicare unfiltro e visualizzare su un grafico i risul-tati dell’operazione.LabVIEW utilizza il proprio web serverper pubblicare il pannello frontale su unweb browser in modo tale da rendere ilVI accessibile da remoto. Il primo passonell'uso dei pannelli frontali remoti èabilitare il web server integrato inLabVIEW. Andate su Tools > Options

e selezionate Web Server: Configu-ration. Spuntate la casella di EnableWeb Server e cliccate OK. In questomodo si lancia il web server (fig. 2).Ora che il web server è stato abilitato, ilpasso successivo è rendere rientrante ilVI. Impostare il VI come rientrante per-mette a più client di ottenere la propriaistanza del pannello frontale.Nell'esecuzione rientrante, le chiamatea istanze multiple di un VI possonoessere eseguite in parallelo con gestio-ne separata della memorizzazione deidati. La possibilità di impostare un VIcome rientrante era già presente nelleprecedenti versioni di LabVIEW, ma ora

CONTROLLO SIMULTANEO DI PANNELLIFRONTALI REMOTI LABVIEWVediamo come ut i l i zzare una del le u l t ime funzional i tà introdotte in LabVIE W per i l control lo remoto s imultaneo del le appl icaz ioni

Figure 2 – Abi l i taz ione del Web S er ver d i LabVIE W

Figure 1 – VI d ’esempio per pannel l i f rontal i remoti

Figure 3 – Impostaz ione del l 'esecuzione r ientrante

l’ambiente offre la possibilitàdi utilizzare la rientranza con ipannelli frontali remoti. Perimpostare a rientrante l'esecu-zione del VI, andate su File >VI Properties e selezionateExecution dall'elenco a ten-dina Category. Spuntate lacasella di Reentrant execu-tion (fig. 3).Quando il VI è stato impostatocome rientrante, potete inizia-re i passi necessari per pubbli-care il vostro VI sul web.Andate su Tools > WebPublishing Tool.Selezionate il VI che voletepubblicare, in questo esempio“Remote_Front_Panels.vi”.Selezionate poi l'EmbeddedViewing Mode che vi per-metterà di visualizzare e con-trollare il VI da remoto, quindicliccate Next (fig. 4).Potete anche selezionare ilpulsante Preview in Browser inqualsiasi momento per vederecome si presenterebbero levostre impostazioni correnti inun web browser.La schermata della fig. 5 vipermette di creare il titolodel documento, l'intestazioneed il piede della pagina web

dove il VI verrà pubblicato.Selezionate quindi la directory di desti-nazione nella quale la pagina webcreata verrà salvata ed il filename del-la pagina web. Il Web Publishing Toolfornisce anche l'URL per la pagina webdel pannello frontale remoto che puòessere inserito direttamente in unbrowser. Cliccate Save to Disk equindi OK. Ora è possibile accedereremotamente al VI (fig. 6).Per accedere al pannello frontaleremoto attraverso il web, aprite unapagina web e navigate all'url specifi-cato nel Web Publishing Tool.A questo punto, potete visualizzarel'interfaccia utente attraverso il web.Per ottenere il controllo, cliccate con iltasto destro del mouse nella paginaweb e selezionate Request Controlof VI. Ora il VI può essere controllatoremotamente. Potete ora eseguire il VI,interagire mediante i controlli e visua-lizzare i vostri dati negli indicatoricome se steste eseguendo il VI dal-l'ambiente di sviluppo (fig. 7).Anche un altro utente in un luogo dif-ferente può aprire un web browser,navigare allo stesso indirizzo ed otte-nere la propria istanza di questo VI, chepuò controllare senza essere influenza-to dalla presenza di eventuali altriutenti collegati simultaneamente.

readerservice.it n. 304

10

03W H A T ’ S N E W

Figure 4 – Uso del Web Publ ishing Tool

Figure 5 – Creazione di t i to lo, intestaz ione e p iede del la pagina

Figure 6 – Creazione del la pagina HTML per i l pannel lo f rontale remoto

Figure 7 – Control lo remoto di un VI in un web browser

11

COME USARE LE VARIABILI CONDIVISE IN LABVIEW

Mik

e Tr

imbo

rn

03T I P S & T E C H N I Q U E S

L’ar t ico lo introduce le var iabi l i condiv ise e cont iene una discuss ione sul le loro caratter ist iche e prestaz ioni in LabVIE W

LabVIEW permette di accedere a un’ampia varietà ditecnologie per creare applicazioni distribuite. Lavariabile condivisa (shared variable) introdotta in

LabVIEW 8 rappresenta un importantepasso avanti nella semplificazione dellaprogrammazione necessaria per tali appli-cazioni.

CREAZIONE DELLE SHARED VARIABLEUtilizzando le shared variable, potete con-dividere dati fra più cicli paralleli nellostesso diagramma o fra VI distinti distri-buiti su una rete. A differenza di moltimetodi esistenti di condivisione dei dati inLabVIEW come UDP/TCP, le code e le FIFOReal-Time, tipicamente dovete configurare la shared varia-ble in fase di creazione della risorsa, mediante finestre diconfigurazione delle proprietà, e non è necessario include-re codice di configurazione nella vostra applicazione.Potete creare tre tipi di shared variable: single-process,network-published e time-triggered. L’articolo discute indettaglio le shared variable single-process e network-published.Per creare una shared variable dovete avere un progettoaperto. Per aggiungere una shared variable a un progetto,cliccate con il pulsante destro del mouse su un target, suuna libreria di progetto o su una cartella all’interno di unalibraria di progetto nella finestra Project Explorer.Quindi selezionate New»Variable nel menu rapido pervisualizzare la finestra Shared VariableProperties, selezionate le opzioni di con-figurazione di vostro interesse e cliccate ilpulsante OK.Se cliccate con il pulsante destro del mou-se direttamente su un target oppure suuna cartella che non sia all’interno di unalibreria di progetto e selezionateNew»Variable dal menu rapido, LabVIEWcrea una nuova libreria di progetto e ponela shared variable al suo interno.La figura 1 mostra la finestra di dialogoShared Variable Properties per una

shared variable single-process. Il Modulo LabVIEW Real-Time e il Modulo LabVIEW Datalogging and SupervisoryControl (DSC) offrono proprietà configurabili addizionali.

TIPI DI DATOCreata una nuova shared variable, potete selezionare fraun numero elevato di tipi di dato standard. In aggiunta,potete specificare anche un tipo di dato custom selezio-nando Custom nell’elenco a tendina Data Type e navi-gando verso un controllo custom. Tuttavia, quando si uti-lizzano tipi di dato custom, LabVIEW non consente di abi-litare le opzioni FIFO real-time e scalatura. Inoltre, se ave-te installato il Modulo LabVIEW DSC, la gestione degliallarmi si limita alle notifiche di stato errato.Dopo avere configurato le proprietà della shared variableed avere cliccato il pulsante OK, la shared variable appa-re nella vostra finestra Project Explorer sotto la libreria oil target che avete selezionato, come mostrato in figura 2.

RIFERIMENTI ALLA VARIABILEDopo avere aggiunto una sharedvariable ad un progetto LabVIEW,potete trascinare la shared varia-ble nello schema a blocchi di un VIper effettuare operazioni di lettu-ra e scrittura, come mostrato infigura 3.Potete cliccare con il pulsantedestro del mouse su una sharedvariable nella finestra ProjectExplorer e così editarne le pro-

Figure 1 – Finestra del le propr ietà d i una shared var iable s ingle-process

Figure 2 – La shared var iable nel progetto

12

03T I P S & T E C H N I Q U E S

prietà in qualsiasi momento. Il progettoLabVIEW propaga le nuove impostazioni a tutti iriferimenti alla variabile presenti in memoria.Quando salvate la libreria di variabili, questicambiamenti vengono applicati anche alla defi-nizione della variabile memorizzata su disco.

SHARED VARIABLE SINGLE-PROCESSUtilizzate variabili single-process per trasferiredati fra due punti del diagramma di uno stessoVI che non possono essere connessi con un filo,come accade nel caso di cicli paralleli, oppure fradue VI distinti presenti sulla stessa mecchina.L’implementazione di una variabile single-pro-cess è simile a quella di una variabile globale diLabVIEW. Il vantaggio principale della nuovavariabile è la possibilità di convertirla in unavariabile network-published, accessibile a qual-siasi nodo sulla rete.

LE SHARED VARIABLE SINGLE-PROCESS E LABVIEW REAL-TIMEPer mantenere il determinismo, un’applicazionereal-time richiede l’uso di un meccanismo deter-ministico non bloccante per trasferire i dati dal-le parti critiche del codice, come i timed loop apriorità più alta e i VI con priorità time-critical,alle sezioni non deterministiche dell’applicazio-ne. Quando installate il modulo LabVIEW Real-Time, pote-te configurare una shared variable per far sì che utilizzi leFIFO real-time, abilitando tale funzionalità dalla finestra didialogo Shared Variable Properties. In questo modopotete evitare l’uso dei VI real-time FIFO di basso livello.LabVIEW crea una FIFO real-time la prima volta che unnodo di variabile cerca di scrivere o leggere una variabile.Questo comportamento si traduce in un tempo di esecu-zione leggermente più lungo al primo utilizzo di una sha-red variable rispetto agli accessi effettuati successivamen-te. Se un’applicazione richiede una temporizzazione estre-

mamente precisa, vi conviene prevedere alcune iterazioniiniziali di assestamento, per tenere conto di questa flut-tuazione nei tempi di accesso, oppure leggere la variabilealmeno una volta all’esterno del ciclo critico (fig. 4).LabVIEW crea un’unica FIFO real-time per ogni sharedvariable single-process anche quando la variabile gestiscelettori/scrittori multipli. Per assicurare l’integrità dei dati,gli scrittori si bloccano reciprocamente e lo stesso accadeper i lettori multipli. Tuttavia, un lettore non blocca unoscrittore ed uno scrittore non blocca un lettore. NationalInstruments raccomanda di evitare lettori/scrittori multiplidi shared variable single-process utilizzate in cicli time-cri-tical (fig. 5).Potete selezionare fre due tipi leggermente differenti divariabile con FIFO real-time abilitata: il buffer singolo ele-mento e il buffer multielemento. Una prima differenza frai due è che il buffer singolo elemento non riporta notificherelative a condizioni di overflow o underflow. Una secon-da distinzione si riferisce al valore restituito da LabVIEWquando più lettori leggono un buffer vuoto. I lettori multi-pli di una FIFO singolo elemento ricevono lo stesso valoree il buffer restituisce lo stesso valore finché uno scrittorescrive nuovamente su quella variabile. Ciascuno dei lettorimultipli di una FIFO multielemento vuota ottiene l’ultimovalore che ha letto dal buffer, oppure il valore di default

Figura 3 – Operaz ioni d i lettura e scr i t tura d i una shared var iable

Figura 5 – Scr i t tor i e lettor i mult ip l i che condiv idono una s ingola F IFO

Figura 4 – Var iabi le condiv isa operante come FIFO real-t ime

13

T I P S & T E C H N I Q U E S

associato al tipo di dato della variabile, nel caso in cui nonabbia mai letto prima la variabile. Tale comportamento èdescritto in figura 6.Se un’applicazione richiede che ogni lettore ottenga ognisingolo dato scritto in una shared variable con FIFO mul-tielemento, utilizzate una shared variable separata per cia-scun lettore.

SHARED VARIABLE NETWORK-PUBLISHEDUsando una shared variable network-published, cioè pub-blicata in rete, potete scrivere e leggere una variabile percondividere dati su una rete Ethernet. L’implementazionedelle modalità di comunicazione sulla rete viene gestitainteramente dalla variabile.Oltre a rendere disponibili i vostri dati sulla rete, la sharedvariable network-published aggiunge molte funzionalitànon disponibili con la shared variable single-process; que-sto comporta che l’implementazione interna della variabilepubblicata in rete sia molto più complessa. I prossimi para-grafi ne discutono alcuni aspetti e offrono raccomandazio-ni per ottenere le migliori prestazioni con il loro utilizzo.

IL PROTOCOLLO NI-PSPLe variabili condivise network-published utilizzanoNI Publish-Subscribe Protocol (NI-PSP) per inviare ericevere dati attraverso la rete. Il protocollo NI-PSPè costruito sopra il protocollo UDP e ne sfrutta quin-di i tipici aspetti di rapidità ed efficienza. l protocol-lo NI-PSP utilizza meno ampiezza di banda ed è piùefficiente del TCP/IP, in relazione alle specificheproprie del protocollo NI-PSP. Tuttavia, a differenzadel protocollo UDP, NI-PSP garantisce la ricezionedei dati, implementando uno strato addizionalesopra il protocollo UDP grezzo.

DISTRIBUZIONE E HOSTING DELLE VARIABILIDovete assegnare le shared variable pubblicate in rete aun motore di gestione delle variabili condivise, o SVE(Shared Variable Engine), che ospita (hosting) i valori dellevariabili sulla rete.Quando scrivete su un nodo di variabile, LabVIEW invia ilnuovo valore al motore di competenza che ospita la varia-bile. Il Variable Engine pubblica quindi il valore in modotale che i richiedenti ottengano il valore aggiornato.La figura 7 illustra tale processo. Utilizzando la terminologiaclient/server, il motore SVE è il server per una shared varia-ble, mentre tutti i riferimenti alla variabile sono i client,indipendentemente dal fatto che leggano o scrivano lavariabile. Il lato client è parte integrante dell’implementa-zione di ogni nodo di variabile condivisa.

LE VARIABILI NETWORK-PUBLISHED E LABVIEW REAL-TIMEPotete abilitare la FIFO real-time anche per una sharedvariable pubblicata in rete ma occorre tenere presente chesi comportano in modo diverso rispetto alle variabili single-process, come visto in precedenza. Con le variabili single-process, tutti gli scrittori e tutti i lettori condividono un’uni-ca FIFO real-time. Con le variabili network-published, ognilettore possiede una propria FIFO real-time, sia nel caso asinglo elemento che nel caso multielemento, come illustra-to in figura 8.

Figura 6 – Shared var iable con F IFO real-t ime mult ie lemento e modal i tàdi lettura del buffer condiv iso da par te d i p iù var iabi l i

Figura 7 – Motore del le shared var iable e gest ione deicambi d i va lore del le var iabi l i

Figura 8 – Shared var iable pubbl icata in rete con opzioneFIFO real-t ime abi l i tata

14

03T I P S & T E C H N I Q U E S

BUFFERIZZAZIONE DI RETECon le shared variable network-published potete abilitareun buffer di rete, configurandolo nella finestra di dialogoShared Variable Properties, come illustrato in figura 9.Con la bufferizzazione, tenete sotto controllo le fluttuazio-ni temporanee che possono avvenire fra le velocità di let-tura e scrittura di una variabile. I lettori che occasional-

mente leggono unavariabile più lenta-mente rispetto allavelocità di scrittura,possono perderequalche aggiorna-mento. Se l’applica-zione può tollerarela perdita occasio-nale di qualche valo-re, non c’è necessitàdi abilitare la buffe-rizzazione. Tuttavia,se il lettore deve

ricevere ogni aggiornamento, abilitate la bufferizzazione.Potete impostare le dimensioni del buffer nella paginaVariable della finestra di dialogo Shared VariableProperties, in modo tale da poterdecidere quanti aggiornamenti l’appli-cazione deve mantenere memorizzati incoda prima di iniziare a sovrascrivere ivecchi dati. LabVIEW usa la dimensionedel buffer che specificate per crearedue buffer interni, uno sul motore SVEe uno a livello del richiedente.Dato che ogni lettore di una sharedvariable pubblicata in rete ottiene ilproprio buffer, i lettori non interagisco-no fra loro.La bufferizzazione è utile solo nelle

situazioni in cui le velocità di lettura/scrittura hanno flut-tuazioni temporanee. Se l’applicazione viene eseguita perun periodo indefinito, i lettori che leggono costantementead una velocità più bassa del rate di scrittura alla fine per-dono dei dati, indipendentemente dalle dimensioni delbuffer che specificate. Poiché la bufferizzazione alloca unbuffer per ogni richiedente, usatela solo quando è neces-sario, per evitare di sprecare memoria.

BUFFERIZZAZIONE DI RETE E FIFO REAL-TIMESe abilitate sia la bufferizzazione di rete che la FIFO real-time, l’implementazione della shared variable includerà siaun buffer di rete che una FIFO real-time. Ricordate che l’op-zione FIFO real-time crea una coda separata per ogni scrit-tore e ogni lettore; pertanto scrittori e lettori multipli non sibloccano reciprocamente. Anche se potete impostare indi-pendentemente le dimensioni di questi due buffer, nellamaggior parte dei casi National Instruments raccomanda diutilizzare le stesse dimensioni per entrambi (fig. 11).

VITA DEI BUFFERLabVIEW crea i buffer di rete e le FIFO real-time in occa-sione di una scrittura o lettura iniziale. I buffer lato serversono creati quando uno scrittore scrive per la prima voltasu una shared variable. I buffer lato client sono creatiquando un richiedente legge per la prima volta da unashared variable. Se uno scrittore scrive dati su una sharedvariable prima che un richiedente inizi a leggere da talevariabile, i valori iniziali non saranno più disponibili per ilrichiedente (fig. 12).

OVERFLOW/UNDERFLOW DEL BUFFERLa shared variable pubblicata in rete riporta le condizionidi overflow e underflow dei buffer di rete a partire dallaversione di LabVIEW 8.20. Una FIFO real-time, invece,indica l’overflow/underflow della coda, restituendo errori,in tutte le versioni di LabVIEW. Un’applicazione inLabVIEW 8.0 o 8.0.1 può verificare gli underflow dei buf-fer di rete in due modi. Quando aggiornate la variabile auna frequenza inferiore a 1 kHz, tenuto conto che la riso-

Figura 11 – Buffer izzaz ione di rete e F IFO real-t ime abi l i tata

Figura 10 – Buffer izzaz ione di rete

Figura 9 – Abi l i taz ione del la buffer izzaz ione di una sharedvar iable pubbl icata in rete

15

T I P S & T E C H N I Q U E S

luzione temporale del timestamp di una shared variable èdi 1 ms, potete confrontare il timestamp di una variabilecon quello relativo a una lettura successiva per rilevare gliunderflow dei buffer. Oppure, per applicazioni non real-time, il lettore può utilizzare un numero sequenziale dalegare ai dati per notificare gli overflow/underflow dei buf-fer. Non potete utilizzare il secondo approccio con le sha-red variable usate all’interno di un loop time-critical, per-ché le shared variable con opzione FIFO real-time abilitatanon supportano il tipo di dato Custom Control (cluster).

VITA DELLE SHARED VARIABLECome detto in precedenza, tutte le shared variable sonoparte di una libreria di progetto. Il motore SVE registra lelibrerie di progetto e le shared variable contenute in questelibrerie ogni volta che LabVIEW richiede una di tali variabi-li. Di default, l’SVE scarica e pubblica una libreria di sharedvariable sul target di competenza, come indicato dal pro-getto, non appena eseguite un VI che fa riferimento ad unaqualsiasi delle variabili contenute. Il motore scarica l’interalibreria e pubblica tutte le shared variable presenti, indipen-dentemente dal fatto che un VI in esecuzione faccia riferi-mento solamente a una parte di esse. Potete scaricaremanualmente qualsiasi libreria di progetto cliccando con ilpulsante destro del mouse sulla libreria nella finestraProject Explorer.L’arresto del VI o il reboot della macchina che ospita la sha-red variable non rende la variabile indisponibile alla rete. Sevolete rimuovere la shared variable dalla rete, dovete farloesplicitamente nella finestra Project Explorer. Poteteanche selezionare Tools»Shared Variable»Variable Ma-nager per rimuovere variabili o intere librerie di variabili.

DATA BINDING SUL PANNELO FRONTALEUna caratteristica addizionale disponibile solo per le sha-red variable pubblicate in rete è il data binding per ogget-ti del pannelo frontale. Dalla finestra Project Explorertrascinate una shared variable sul pannello frontale di un VIper creare un controllo legato alla shared variable. Quandoabilitate il data binding per un controllo, cambiando il valo-re del controllo cambiate il valore della shared variable allaquale il controllo è legato.Mentre il VI è in esecuzione,se la connessione all’SVEha successo, appare un pic-colo indicatore verdeaccanto all’oggetto sul pannello frontale del VI, come sivede in figura 13.Potete modificare le proprietà di binding relative a un qual-siasi controllo o indicatore dalla pagina Data Binding del-la finestra di dialogo Properties. Quando utilizzate ilmodulo LabVIEW Real-Time o LabVIEW DSC, potete sele-zionare Tools»Shared Variable»Front Panel Binding

Mass Configuration per visualizzare la finestra di dialo-go Front Panel Binding Mass Configuration e creareun’interfaccia operatore che lega numerosi controlli e indi-catori alle shared variable.

ACCESSO PROGRAMMATICOCome discusso in precedenza, potete creare, configurare escaricare interattivamente le shared variable utilizzando ilLabVIEW Project, e potete leggere e scrivere le variabili uti-lizzando i nodi relativi presenti sullo schema a blocchi oattraverso il data binding. LabVIEW offre anche l’accessoprogrammatico a tutte queste funzionalità.Utilizzate il VI Server per creare programmatica-mente librerie di progetto e shared variable nelleapplicazioni dove dovete creare un grande numerodi variabili. Inoltre, il Modulo LabVIEW DSC offreun set completo di VI per creare ed editare pro-grammaticamente shared variable e librerie di pro-getto, nonché per gestire l’SVE. Potete creare pro-grammaticamente librerie di shared variable solosu sistemi Windows; tuttavia, potete distribuireprogrammaticamente queste nuove librerie sia susistemi Windows che LabVIEW Real-Time. Usatel’API DataSocket nelle applicazioni dove dovete cambiaredinamicamente la shared variable che un VI legge e scrive.Potete cambiare dinamicamente una shared variablecostruendo programmaticamente l’URL della connessioneDataSocket. Potete anche controllare programmaticamentealtre caratteristiche della shared variable, come le dimen-sioni del buffer. Inoltre, l’API DataSocket ha una letturabloccante che restituisce un valore solo quando la sharedvariable viene aggiornata (fig. 14).

Figura 12 – Vita dei buffer

Figura 14 – Uso del l ’API DataSocket per leggere e scr ivere pro-grammaticamente shared var iable

Figura 13 – Binding di un con-trollo a una shared variable

16

03T I P S & T E C H N I Q U E S

SHARED VARIABLE ENGINEL’SVE è un framework che permette ad una shared varia-ble pubblicata in rete di inviare valori attraverso la rete. SuWindows, LabVIEW configura l’SVE come servizio e lancial’SVE allo startup di sistema. Su un target real-time, l’SVEè un componente di startup installabile che viene caricatoal boot di sistema. Per utilizzare le shared variable pubbli-cate in rete, un SVE deve essere in esecuzione su almenouno dei nodi del sistema distribuito. Qualsiasi nodo sullarete può leggere o scrivere le variabili pubblicate dall’SVE.Potete anche avere più SVE installati su più sistemi simul-taneamente se dovete distribuire le shared variable inposizioni differenti in base alle esigenze applicative.

RACCOMANDAZIONI PER LA SCELTA DEL LUOGO INCUI OSPITARE LE VARIABILIQuando scegliete il dispositivo che ospiterà le variabili direte e da cui effettuare la distribuzione delle variabili cheutilizzate in un sistema distribuito, dovete considerare unaserie di fattori.

Il dispositivo di elaborazione è compatibile con l’SVE?La tabella 1 riassume le piattaforme per le quali è dispo-nibile l’SVE e identifica le piattaforme che possono utiliz-zare variabili condivise pubblicate in rete tramite nodi divariabile o l’API DataSocket. National Instruments richiede32 MB di RAM e ne raccomanda 64 MB per l’SVE su tut-te le piattaforme valide.

L’applicazione richiede funzionalità di datalogginge supervisione?Se volete usare le caratteristiche proprie del moduloLabVIEW DSC, dovete ospitare le shared variable suWindows. Il modulo LabVIEW DSC aggiunge le seguentifunzionalità alle shared variable pubblicate in rete:• Logging storico nel database NI Citadel.• Allarmi in rete e logging degli allarmi.• Scalatura.• Sicurezza basata sull’utente.• Valore iniziale.• Possibilità di creare server di I/O custom.• Integrazione della struttura a eventi di LabVIEW con leshared variable.• VI LabVIEW per controllare programmaticamente tuttigli aspetti delle shared variable e del motore delle variabi-li. Questi VI sono particolarmente utili per gestire grandinumeri di shared variable.

Il dispositivo di elaborazione ha risorse adeguate intermini di processore e memoria?L’SVE è un processo addizionale che richiede risorse di ela-borazione e memoria. Per ottenere le migliori prestazioniin un sistema distribuito, installate l’SVE su macchine chegarantiscono la massima capacità di memoria ed elabora-zione in quel sistema.

Dove vengono generati ed elaborati i dati?L’SVE riduce il traffico di rete quando la bufferizzazione èdisabilitata. Abilitate la bufferizzazione se vi occorre ogninuovo valore di una shared variable. Quando la bufferizza-zione è disabilitata, l’SVE esegue il cosiddetto delta filte-ring: rimuove i valori ridondanti e invia ai richiedenti sologli effettivi cambi di valore di una shared variable.L’architettura di un sistema distribuito può influenzarenotevolmente l’efficacia di questa funzionalità, come sivede in figura 15. LabVIEW implementa questo tipo di fil-traggio solo per tipi scalari come numeri interi, numeridecimali in virgola mobile e booleani, e per gli array distringhe e di booleani.Il delta filtering è efficace soprattutto se generate dati sul-la stessa macchina che ospita una variabile, come mostra-to in figura 15. In questo esempio, lo scrittore è su My

Tabel la 1 – S intes i del le compat ib i l i tà per le shared var iable pubbl icate in rete

PCWindows

Mac OS

.

.

.

Linux

.

.

.

PXI Real-Time

Compact FieldPoint

CompactRIO

Compact VisionSystem

PC commercialicon LabVIEW

Real-Time ETS

RTX

SVENodi di variabileDataSocket API con PSP

Figura 15 – Architettura idonea per un delta f i l ter ing ef f icace

17

T I P S & T E C H N I Q U E S

Computer e scrive più valori ridondanti su una variabile.L’SVE esegue il filtraggio delta e invia solo due aggiorna-menti sulla rete al target PXI RT.La figura 16 illustra un esempio di filtraggio delta non effi-cace. Lo scrittore è sul target PXI RT e invia all’SVE tutti icambi di valore, inclusi gli aggiornamenti ridondanti.I valori ridondanti vengono rimossi successivamente su MyComputer per i richiedenti ma questo non riduce il traffi-co in rete. Se costruite un’applicazione distribuita e sapeteche alcuni dei sistemi possono andare offline periodica-mente, fate in modo di ospitate l’SVE su un sistema che siasempre online.

CARATTERISTICHE ADDIZIONALI DELLO SHAREDVARIABLE ENGINELa figura 17 illustra le numerose responsabilità dell’SVE,oltre a quella di gestire le shared variable pubblicate in rete:• Raccogliere i dati ricevuti dai server di I/O.• Fornire i dati ai richiedenti, attraverso i server OPC e PSP.• Fornire servizi di scalatura, allarme e logging per qualsia-si shared variable per cui siano stati configurati tali serviziche, ricordiamo, sono disponibili solo con il moduloLabVIEW DSC.• Monitorare le condizioni di allarme e rispondere di con-seguenza.

SERVER DI I/OI server di I/O sono plug-indell’SVE con i quali i programmipossono usare l’SVE per pubbli-care dati. NI FieldPoint 5.0 inclu-de un server di I/O che pubblica idati direttamente da banchiFieldPoint sull’SVE. Poiché l’SVEè un server OPC, la combinazio-ne dell’SVE e del server di I/OFieldPoint configura di fatto unserver OPC per FieldPoint.L’installer del driver FieldPointnon include l’SVE, che deve

essere installato da un altro componente sofware, adesempio LabVIEW.Anche il driver NI-DAQmx dalla versione 8.0 include unserver di I/O che può pubblicareautomaticamente canali virtua-li globali NI-DAQmx sull’SVE.Tale server di I/O sostituisce ilserver OPC e la tecnologia diaccesso remoto RDA (RemodeDevice Access) presenti nel vec-chio driver NI-DAQ Traditional.Il driver NI-DAQmx includel’SVE. Con il modulo LabVIEWDSC, gli utenti possono crearenuovi server di I/O.

OPCL’SVE è conforme alla versione3.0 e può operare come un ser-ver OPC su macchine Windows.Qualsiasi client OPC può scrive-re o leggere una shared variableospitata su una macchina Windows. Quando installate ilmodulo LabVIEW DSC su una macchina Windows, l’SVEpuò operare anche come client OPC. Potete legare le sha-

red variable ospitate su una mac-china Windows a degli item OPCcon il DSC e abilitare la comuni-cazione in lettura e scrittura trale variabili e gli item OPC.Poiché OPC è una tecnologiabasata su COM, una API diWindows, i target real-time nonlavorano direttamente con OPC.Come mostrato in figura 18,potete comunque accedere agliitem OPC da un target real-timeospitando le shared variable suuna macchina Windows.

Figura 17 – Shared Var iable Engine (SVE)

Figura 18 – Legare var iabi l i ad i tem OPC

Figura 16 – Architettura che non consente un delta f i l ter ing ef f icace

18

03T I P S & T E C H N I Q U E S

PRESTAZIONIQuesto paragrafo fornisce dellelinee guida generali per creareapplicazioni ad alte prestazioni uti-lizzando le shared variable. Poichéla shared variable single-processha un’implementazione simile allevariabili globali e alle FIFO real-time di LabVIEW, National Instru-ments non ha particolari racco-mandazioni per ottenere buoneprestazioni con questo tipo divariabili. I paragrafi seguenti siconcentrano quindi sulle sharedvariable pubblicate in rete.

NON MONOPOLIZZATE IL PROCESSORELa shared variable pubblicata in rete semplifica i diagram-mi a blocchi di LabVIEW nascondendo all’interno della suaimplementazione molti dettagli strutturali tipici della pro-grammazione di rete. Le applicazioni comprendono i VILabVIEW, l’SVE e il codice client SVE. Per ottenere le mi-

gliori prestazioni dalle shared variable, sviluppate l’applica-zione in modo tale che liberi regolarmente il processore perl’esecuzione dei thread SVE. Un modo per ottenere questoeffetto è quello di inserire delle attese nei cicli di elabora-zione e assicurarsi che l’applicazione non faccia uso di ciclinon temporizzati. L’esatta quantità di tempo che doveteattendere dipende dall’applicazione, dal processore e dallarete; ogni applicazione richiede un certo livello di messa apunto empirica per ottenere le massime prestazioni.

CONSIDERATE LA POSIZIONE DELL’SVENel paragrafo Raccomandazioni per la scelta del luogo incui ospitare le variabili abbiamo discusso una serie di fat-

tori che dovete considerare nella scelta del punto in cuiinstallare l’SVE. La figura 19 mostra un altro fattore chepuò avere un forte impatto sulle prestazioni delle sharedvariable. Questo esempio riguarda un target real-time, male stesse considerazioni valgono anche per sistemi nonreal-time. La figura mostra un uso inefficiente delle sha-

red variable pubblicate in rete:generate dati su un target real-time e avete necessità di esegui-re il logging locale dei dati ela-borati e monitorare il processoda una macchina remota.Dato che i richiedenti dellevariabili devono ricevere i datidall’SVE, la latenza fra la scrittu-ra nel loop ad alta priorità e lalettura nel loop a priorità nor-male è elevata e sono richiestidue viaggi attraverso la rete.

La figura 20 illustra un’architet-tura migliore per questa appli-cazione. L’applicazione usa unashared variable single-process

per trasferire i dati fra il loop ad alta priorità e il loop abassa priorità, riducendo notevolmente la latenza. Il loopa bassa priorità esegue il logging dei dati e scrive l’ag-giornamento in una shared variable pubblicata in rete peril richiedente presente sull’host.

Read

erse

rvic

e.it

310

Note sull’autoreMike Trimborn, LabVIEW FPGA Product Marketing Manager,National Instruments.

Figura 19 – Uso inef f ic iente del le shared var iable pubbl icate in rete su un target real-t ime

Figura 20 – Uso ef f ic iente del le shared var iable pubbl icate in rete su un target real-t ime

03

COME OTTIMIZZARE IN LABVIEW APPLICAZIONI DI TEST AUTOMATIZZATI PER PROCESSORI MULTICORE

Dav

id H

all

19

T I P S & T E C H N I Q U E S

Vediamo come del le appl icaz ioni scr i t te in LabVIE W possono essere ott imizzate s f ruttando tecniche d i programmazione paral le la

L abVIEW offre un ambiente di programmazione grafi-ca unico e di semplice utilizzo per le applicazioni ditest automatizzati, ma è la sua capacità di assegna-

re dinamicamente parti di codice ai vari core della CPU adaumentare la velocità di esecuzione sui processori multi-core.

LA SFIDA DELLA PROGRAMMAZIONE MULTITHREADEDFino a poco tempo fa, le innovazioni apportate nella tec-nologia dei processori si traducevano in computer conCPU (Central Processing Unit) in grado di funzionare afrequenze di clock più elevate. Tuttavia, con l’avvicinarsi ditali frequenze al loro limite fisico teorico, sono stati svi-luppati nuovi processori con più core di elaborazione, anzi-ché uno solo. Con i nuovi processori multicore, le applica-zioni di test automatizzati raggiungono le migliori presta-zioni e i volumi di lavoro più elevati quando si utilizzanotecniche di programmazione parallela. Edward Lee, profes-sore di Ingegneria Elettrotecnica ed Informatica pressol’Università della California (Berkeley), descrive così i van-taggi dell’elaborazione parallela:“Molti esperti di settore prevedono che la risposta ai limi-ti della Legge di Moore si darà sempre più con architettu-re di calcolo parallele. Per sperare di continuare ad otte-nere prestazioni sempre migliori in questo campo, i pro-grammi dovranno essere in grado di sfruttare al meglioquesto parallelismo”.Programmare applicazioni in grado di sfruttare tecnologiehardware parallele rappresenta una grande sfida in campoinformatico.Fortunatamente, LabVIEW offre un ambiente di program-mazione ideale per i processori multicore, perché offre unambiente intuitivo per creare algoritmi paralleli e puòassegnare dinamicamente thread multipli a una dataapplicazione. Infatti, le applicazioni di test automatizzatiche utilizzano processori multicore possono essere facil-mente ottimizzate per raggiungere le migliori prestazioni.Grandi benefici ne possono ricavare in particolare gli stru-

menti modulari PXI Express, ad esempio in applicazioni dianalisi di segnale multicanale e di elaborazione Hardwarein the Loop, grazie alle velocità elevate di trasferimentodati ottenibili con il bus PXI Express. Nel seguito, valutere-mo varie tecniche di programmazione parallela e caratte-rizzeremo in termini di prestazioni i benefici offerti da cia-scuna tecnica.

IMPLEMENTAZIONE DI ALGORITMI DI TEST PARALLELIUna comune applicazione di test automatizzati (ATE) chetrae vantaggio dall’elaborazione parallela è l’analisi disegnale multicanale. Poiché l’analisi in frequenza è nor-malmente un’operazione onerosa per i processori, la velo-cità di esecuzione può essere migliorata parallelizzando ilcodice di test, in modo tale che l’elaborazione di segnaledi ogni canale possa essere distribuita su più core di ela-borazione. Dal punto di vista del programmatore, l’unicamodifica richiesta per ottenere questo beneficio è sempli-cemente quella di ristrutturare l’algoritmo di test.Per illustrare il concetto, confronteremo i tempi di esecu-zione di due algoritmi di analisi in frequenza multicanaleoperanti su due canali di un digitalizzatore ad alta veloci-tà. Nel nostro test viene impiegato un digitizer a 14 bitPXIe-5122 per acquisire i segnali alla massima velocità dicampionamento consentita (100 MS/s). Innanzitutto,vediamo in LabVIEW il modello di programmazione

Figure 1 – Codice LabVIE W per l ’esecuzione sequenzia le

20

03T I P S & T E C H N I Q U E S

sequenziale tradizionale necessario per effettuare questaoperazione.Nello schema a blocchi della fig. 1, l’analisi in frequenzadi entrambi i canali viene eseguita in un VI Express permisure spettrali basate su FFT che analizza ciascun canalein serie. Anche se l’algoritmo della fig. 1 può esserecomunque eseguito efficientemente su processori multico-re, è possibile migliorarne le prestazioni elaborando cia-scun canale in parallelo.Se analizzassimo i dettagli esecutivi dell'algoritmo prece-dente, noteremmo che la FFT richiede un tempo significa-tivamente più lungo per essere completata rispetto all’ac-quisizione dal digitalizzatore ad alta velocità. Acquisendoseparatamente i due canali ed eseguendo due FFT inparallelo, possiamo ridurre notevolmen-te il tempo di elaborazione. Utilizzandol’approccio parallelo, si ottiene il nuovoschema a blocchi illustrato nella fig. 2.I canali del digitalizzatore vengonocoinvolti sequenzialmente. Notate chequeste operazioni potrebbero essereeseguite completamente in parallelo sele due operazioni di fetch fossero asso-ciate a strumenti distinti. Tuttavia, datoche sono le operazioni di trasformazio-ne ad impegnare particolarmente il pro-cessore, riusciamo ancora a migliorarele prestazioni semplicemente paralleliz-zando l’elaborazione di segnale. Di con-seguenza, il tempo di esecuzione totalesi riduce. Nella fig. 3 è illustrato il tem-po di esecuzione delle due implementa-zioni.All’aumentare delle dimensioni del bloc-

co (campioni per fetch), il tempo di elabo-razione risparmiato attraverso l’esecuzio-ne parallela diventa molto più evidente.Infatti, l’algoritmo parallelo si avvicina aun raddoppio delle prestazioni per i bloc-chi di dimensioni più grosse. Il grafico nel-la fig. 4 illustra l’esatto aumento percen-tuale di prestazioni in funzione delledimensioni dell’acquisizione (in campio-ni).Per dimensioni dei blocchi maggiori di 1milione di campioni (ampiezza di bandadi risoluzione pari a 100 Hz), l’approccioparallelo si traduce in aumenti di presta-zioni di almeno l’80%.Ottenere un aumento di prestazioni delleapplicazioni di test automatizzati sui pro-cessori multicore è facile in LabVIEW, per-ché l’ambiente alloca dinamicamente

ogni thread. Infatti, agli utenti non è richiesto di crearecodice speciale per abilitare il multithreading, mentre leapplicazioni di test parallelo possono trarre beneficio daiprocessori multicore con minimi aggiustamenti della pro-grammazione.

CONFIGURAZIONE DEGLI ALGORITMI DI TESTPARALLELO CUSTOMIZZATOIl beneficio della parallelizzazione degli algoritmi di elabo-razione dei segnali è che permette a LabVIEW di suddivi-dere l’uso della CPU fra più core.LabVIEW è in grado di elaborare in parallelo gran parte deidati acquisiti, risparmiando tempo di esecuzione.Un requisito per l’elaborazione parallela è che LabVIEW

Figura 3 – Tempo di esecuzione degl i a lgor i tmi sequenzia le e paral le lo

Figura 4 – Aumento di prestaz ioni degl i a lgor i tmi paral le l i ( in percentuale)

esegua una copia (o clone) di ciascuna subroutine di ela-borazione del segnale. Di default, molti degli algoritmi dielaborazione dei segnali di LabVIEW sono configurati pergarantire un’esecuzione rientrante. Ciò significa cheLabVIEW alloca dinamicamente una singola istanza di cia-scuna subroutine – inclusi thread distinti e spazio dimemoria. Di conseguenza, le subroutine custom devonoessere configurate affinché funzionino in modo rientrante.Ciò si può fare con un semplice step di configurazione inLabVIEW. Per impostare questa proprietà, selezionate File>> VI Properties e scegliete la categoria “Execution”.Selezionate quindi il flag che abilita l’esecuzione rientran-te come illustrato nella fig. 5.Con il semplice passo mostrato in figura è possibile ese-guire in parallelo più subroutine custom, come accade perle funzioni di analisi standard presenti in LabVIEW. Di con-seguenza, le applicazioni di test automatizzati possonoraggiungere migliori prestazioni sui processori multicoretramite semplici tecniche di programmazione.

OTTIMIZZAZIONE DELLE APPLICAZIONIHARDWARE-IN-THE-LOOPUn altro esempio di applicazioni che possono trarre van-taggio dalle tecniche di elaborazione parallela del segna-le, utilizzando più strumenti per gestire input e outputsimultanei, sono le applicazioni hardware-in-the loop (HIL)

e di elaborazione in linea. Prendiamo adesempio il caso di un’acquisizione cheutilizzi un digitalizzatore ad alta veloci-tà o un modulo di I/O digitale ad altavelocità. A livello software, viene ese-guito un algoritmo di elaborazione digi-tale del segnale. Infine, il risultato vienegenerato da un altro strumento modula-re. Nella fig. 6 è illustrato un tipico sche-ma a blocchi.Comuni applicazioni HIL includono lasimulazione di sensori e l’emulazione dicomponenti custom. In questo articolo,esploreremo alcune tecniche per otte-nere il migliore throughput per applica-zioni in linea di elaborazione digitaledei segnali. In generale, si possono usa-

re due strutture di programmazione fondamentali: la strut-tura a loop singolo e la struttura multiloop basata su pipe-line con utilizzo di code. La struttura a loop singolo è sem-plice da implementare e presenta una bassa latenza per i

blocchi di piccole dimensioni. Al contrario, le architetturemultiloop possono raggiungere un throughput molto piùelevato, perché sono in grado di utilizzare meglio le CPUmulticore.Usando l’approccio tradizionale a loop singolo, mettiamoin ordine sequenziale una funzione di lettura di un digita-lizzatore ad alta velocità, l’algoritmo di elaborazione delsegnale e una scrittura di I/O digitale ad alta velocità.

Come lo schema a blocchi nella fig. 7 illu-stra, ciascuna di queste subroutine deveessere eseguita in serie, secondo quantodeterminato dal modello di programma-zione a flusso di dati di LabVIEW.La struttura a loop singolo è soggetta adiversi limiti. Poiché ogni stadio viene ese-guito in serie, il processore è limitato nel-l’eseguire I/O dallo strumento mentre ela-bora i dati. Con questo approccio, una

21

T I P S & T E C H N I Q U E S

Figura 6 – Schema a b locchi del l ’e laboraz ione di segnale in l inea

Figura 7 – Approcc io a loop s ingolo a l Process ing in the Loop

Figura 5 – Conf iguraz ione per l ’esecuzione r ientrante in LabVIE W

22

03T I P S & T E C H N I Q U E S

CPU multicore non può essere utilizzata in modo efficienteperché il processore può eseguire una sola funzione per vol-ta. Quindi, verrà utilizzato un unico core di una CPU multi-core per questa applicazione. Benché la struttura a loop sin-golo sia sufficiente per le velocità di acquisizione più basse,per gestire un throughput dati più elevato è richiesto unapproccio multiloop.L’architettura multiloop utilizza le code per passare i datifra i vari cicli while. Nella fig. 8 illustriamo il concetto del-la programmazione a flusso di dati nel caso di più cicli

while con l’utilizzo delle code. Le code permettono la con-divisione dei dati fra più loop. La figura rappresenta quel-la che viene tipicamente chiamata ‘struttura a ciclo pro-duttore-consumatore’. In questo caso, un digitalizzatoread alta velocità acquisice i dati in un primo loop e passaad ogni iterazione un nuovo set di dati alla FIFO.Il loop consumer monitorizza semplicemente lo stato del-la coda e scrive ogni nuovo set di dati sul disco quandodiventa disponibile. Il valore dell’uso delle code è cheentrambi i loop possono essere eseguiti indipendentemen-te fra loro. Nell’esempio precedente, il digitalizzatore adalta velocità può continuare ad acquisire dati anche se c’èun ritardo nella loro scrittura su disco. Nel frattempo, icampioni in più vengono semplicemente memorizzati nel-la FIFO.Generalmente, l’approccio produttore-consumatore apipeline permette un throughput dati maggiore, consen-tendo un utilizzo più efficiente dei processori. Questo van-taggio è ancora più evidente nei processori multicore, per-ché LabVIEW può assegnare dinamicamente i thread del-la CPU ad ogni core.Per un’applicazione di elaborazione del segnale in linea,possiamo usare tre while loop indipendenti e due code perpassare i dati fra loro. In questo scenario, un loop acquisi-rà i dati da uno strumento, uno sarà dedicato all’elabora-zione del segnale ed il terzo scriverà i dati su un secondostrumento. Nella fig. 9 è riportato uno schema a blocchi di

LabVIEW che illustra questo approccio.Nella fig. 9, il loop superiore è un loopproduttore che acquisisce dati da undigitalizzatore ad alta velocità e li pas-sa alla prima struttura a coda (FIFO). Illoop intermedio opera sia come produt-tore che consumatore.Ad ogni iterazione, il ciclo carica (con-suma) diversi set di dati dalla primacoda e li elabora indipendentementecome pipeline. Questo approcciomigliora le prestazioni di elaborazionenei processori multicore permettendodi elaborare indipendentemente fino aquattro set di dati. Notate che illoop intermedio opera anche come pro-duttore, passando i dati elaborati nellaseconda coda. Infine, il loop inferiorescrive i dati elaborati sul modulo di I/Odigitale ad alta velocità.Gli algoritmi di elaborazione parallelasfruttano il processore in modo più effi-ciente sulle CPU multicore. Infatti, ilthroughput totale dipende da due fat-tori: l’utilizzo del processore e le veloci-tà di trasferimento sul bus. In generale,

Figura 8 – Le code permettono la condiv is ione dei dat i f rapiù loop

Figura 9 – E laboraz ione del segnale a p ipel ine con loop mult ip i e code

la CPU e il bus dati funzionano in modo più efficientequando si elaborano grossi blocchi di dati. Inoltre, possia-mo ridurre ancora di più i tempi di trasferimento dei datiusando strumenti PXI Express, che hanno tempi di trasfe-rimento più veloci. Di conseguenza, possiamo illustrare ilmassimo throughput in termini di velocità di campiona-mento in funzione dell’acquisizione espressa in numero dicampioni, come si vede nella fig. 10.Tutti i benchmark illustrati in questo grafico sono stati ese-guiti su campioni a 16 bit. Inoltre, l’algoritmo di elabora-zione del segnale usato era un filtro passa-bassoButterworth del 7° ordine con un cutoff di 0,45 moltipli-cato per la velocità di campionamento. Come i dati illu-strano, l’approccio a pipeline (multiloop) a 4 stadi permet-te di ottenere il throughput dati più elevato. Notate che unapproccio di elaborazione del segnale a 2 stadi permettedi ottenere prestazioni migliori del metodo a singolo loop(sequenziale), ma non utilizza la CPU con altrettanta effi-cienza del metodo a 4 stadi. Le velocità di campionamen-to elencate nelle tabelle 1 e 2 sono la massima velocità dicampionamento di input e output per un digitalizzatore adalta velocità PXIe-5122 ed un modulo di I/O digitale ad

alta velocità PXIe-6537. Notate che a 20 MS/s, il bus tra-sferisce dati alle velocità di 40 MB/s per l’input e 40 MB/sper l’output, per un’ampiezza di banda totale del bus di80 MB/s.E’ anche importante considerare che l’approccio di elabo-razione a pipeline introduce latenza fra input e output.La latenza dipende da diversi fattori, incluse le dimensionidei blocchi e la velocità di campionamento. Le tabelle 1 e2 confrontano la latenza misurata in funzione delle dimen-sioni dei blocchi e della massima velocità di campiona-mento per le architetture a loop singolo e multiloop a 4stadi.Come ci si poteva aspettare, la latenza aumenta mano amano che l’utilizzo della CPU si avvicina al 100%. Ciò èparticolarmente evidente nell’esempio della pipeline a 4

stadi, con velocità di campionamento di 20 MS/s. Al con-trario, l’utilizzo della CPU supera di poco il 50% in tutti gliesempi a loop singolo.

CONCLUSIONELa strumentazione basatasu PC, come gli strumentimodulari PXI e PXIexpress, trae grandi bene-fici dai progressi della tec-nologia dei processorimulticore e dall’aumentodella velocità dei bus dati.Mano a mano che le nuo-ve CPU migliorano le pre-stazioni aggiungendo piùcore di elaborazione, sononecessarie strutture di ela-borazione parallela o a

pipeline per massimizzare l’efficienza della CPU.Fortunatamente, LabVIEW offre un’eccellente soluzione aquesto problema di programmazione, assegnando dinami-camente i task di elaborazione ai singoli core di elabora-zione. Come i dati sopra riportati evidenziano, si possonoraggiungere significativi miglioramenti di prestazioni strut-turando gli algoritmi di LabVIEW in modo da sfruttare l’e-laborazione parallela.

23

T I P S & T E C H N I Q U E S

Tabel la 1 e 2 – B enchmark d i latenza per loop s ingolo e per p ipel ine a 4 stadi

Dimensionidel blocco

32k

64k

128k

256k

512k

1M

2M

4M

Velocità dicampionamento (max)

1 MS/s

2,5 MS/s

2,5 MS/s

5 MS/s

6,25 MS/s

8,25 MS/s

8,28 MS/s

8,25 MS/s

Latenza

2,50 ms

5,62 ms

11,56 ms

22,03 ms

44,22 ms

85,63 ms

169,52 ms

199,62 ms

Dimensionidel blocco

32k

64k

128k

256k

512k

1M

2M

4M

Velocità dicampionamento (max)

12,5 MS/s

12,5 MS/s

16,67 MS/s

16,67 MS/s

16,67 MS/s

20 MS/s

20 MS/s

20 MS/s

Latenza

38,78 ms

45,41ms

38,27 ms

44,86 ms

55,17 ms

148,85 ms

247,29 ms

581,15 ms

Read

erse

rvic

e.it

311

Note sull’autoreDavid Hall, Signal Sources Product Engineer, NationalInstruments.

Figura 10 – Throughput del le st rutture mult i loop e a loop s ingolo

TABELLA 1 TABELLA 2

UN'APPARECCHIATURA PER LA COLTURADI CELLULE EUCARIOTICHE E PROCARIOTICHE

L articolo descrive un’apparecchiatura per la crescita dicellule eucariotiche e procariotiche umane utilizzandoprotocolli di esposizione con campi elettrici ed elet-

tromagnetici costantemente controllati. La possibilità dipoter disporre di un software e di un sistema di acquisizio-ne dati e automazione come LabVIEW, flessibile ed imple-mentabile, ha consentito, oltre che produrre protocolli diesposizione altamente riproducibili, onde garantire unifor-mità e ripetitibilità dei risultati, l’automatizzazione dell’inte-ro processo di controllo di tutte le funzioni della macchinain oggetto.

STIMOLAZIONE ELETTRICA E MAGNETICALa stimolazione elettrica e magnetica rappresenta un impor-tante e affidabile strumento da poter utilizzare in MedicinaRigenerativa. Con tale stimolazione si è in grado di aumen-tare la proliferazione cellulare, come ad esempio quellaosteogenica nel tessuto osseo.Il sistema in oggetto è quindi idoneo a produrre protocollidi esposizione elettromagnetica in grado di indurre diffe-

renziamento su cellule eucariotiche, risultando particolar-mente efficace nel differenziamento di cellule staminaliumane in osteociti senza l’ausilio di differenzianti chimici.Da ciò si deduce che il sistema stesso apre la possibilità adun duplice obiettivo. In primo luogo, ad applicazioni tera-peutiche degli effetti indotti dall’esposizione a campimagnetici risonanti sul meccanismo di differenziamento dicellule eucaristiche. In secondo luogo, alla produzione diprotesi autologhe in Medicina Rigenerativa.Il raggiungimento del secondo obiettivo significa che neisoggetti in cui oggi si interviene con l’impianto di protesiossee metalliche, quando il brevetto avrà superato i trial cli-nici richiesti dalla legge, si potrà intervenire prelevando cel-lule dal midollo osseo del paziente (cellule autologhe) diffe-renziarle con l’impiego di campi magnetici risonanti, far cre-scere gli osteociti su supporti biodegradabili con la formaadeguata alla protesi che si vuol impiantare e quindi proce-dere all’impianto osseo. Una protesi così ottenuta avrà lacaratteristica di essere perenne, in quanto si salderà all’os-so come in qualsiasi frattura e, avendo la capacità di riva-scolarizzarsi, non andrà soggetta ad infezioni come spessoaccade con le costose protesi metalliche.

DESCRIZIONE DELL'IMPIANTOIn una camera amagnetica è installato il solenoide per laproduzione dei campi magnetici ed elettromagnetici per l’e-sposizione delle culture cellulari.Il solenoide è stato realizzato con un cilindro in PVC aventedimensioni tali da garantire la linearità del campo prodottoentro ± 1%.Il solenoide è costituito da tre avvolgimenti coassiali eviene pilotato da altrettanti stadi di potenza integrati inconfigurazione di amplificatore differenziale in modo dapoter riprodurre, oltre al campo magnetico terrestre, ancheil campo elettromagnetico per l’esposizione delle culturecellulari.Per il protocollo di campi magnetici da generare ci si avvaledi strumentazione virtuale a bordo del computer.Il campo generato dal solenoide viene rilevato in continuoda un sensore isotropico di campo connesso al computer disistema.All’interno del solenoide viene inserito tramite una slitta,che

Enri

co D

’Em

ilia,

Dona

tella

Sac

co,L

ivio

Giu

liani

,Set

tim

io G

rim

aldi

,Ant

onel

la L

isi

24

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

L' invenzione descr i t ta nel l 'ar t ico lo è coper ta da un brevetto congiunto Ispes l-CNR

Fig. 1 – Schema a b locchi del l ' impianto

funge anche da supporto, l’incubatore per le cellule; quest’ul-timo è realizzato in policarbonato e contiene al proprio inter-no un sistema di scambio termico nel quale scorre acquacalda forzata per la termostatazione in atmosfera controllata.L’acqua per la termostatazione viene scaldata in una vascaesterna alla camera amagnetica e, tramite una pompa volu-metrica e una valvola di by-pass,viene fatta circolare a pres-sione costante nell’impianto; un sensore di temperatura e diumidità installato all’interno dell’incubatore provvede a for-nire il segnale al computer di sistema che a sua volta con-trolla il sopracitato sistema di riscaldamento.L’atmosfera controllata all’interno dell’incubatore deve con-tenere anche una percentuale di anidride carbonica del 5%:il gas in oggetto viene prelevato da una bombola e misce-lato nelle giuste proporzioni nel miscelatore aria/ CO2 nelquale un sensore ed una elettrovalvola, tramite il computerdi sistema, provvedono a mantenere l’atmosfera creata allecondizioni prescritte.La miscela aria/ CO2 viene quindi inviata con un sistema aricircolo all’incubatore tramite una doppia pompa a mem-brana; anche in questo caso una valvola di by-pass provve-de a regolare la portata fino a 20 litri/min.All’interno dell’incubatore la miscela aria/ CO2 viene iniet-

tata tramite un diffusore e prelevata tramite 5 orifizi, invia-ta poi in un condensatore che provvede a separare l’acquadalla miscela aria/ CO2 rinviando nell’incubatore l’acquastessa.Nel fondo dell’incubatore deve essere presente anche uncerto quantitativo di acqua che serve a produrre l’umiditarelativa prescritta per l’atmosfera controllata (circa 90%);un sensore di livello min/max provvede a inviare un segna-le al computer che a sua volta, tramite un serbatoio e unaelettrovalvola esterni alla camera amagnetica, mantiene illivello dell’acqua al valore prescritto.Il computer che gestisce l’impianto è provvisto di una sche-da in/out analogica e digitale National InstrumentsDAQCard-6036E con terminaliera schermata e per lagestione dell’intero processo è stato realizzato uno specifi-co programma in linguaggio LabVIEW.

25

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

Fig. 2 – Camera amagnet ica Fig. 4 – Ins ieme miscelatore Ar ia/CO 2-r isca ldatore

Fig. 3 – Ins ieme solenoide/ incubatore Fig. 5 – Ins ieme s istema di comando e control lo impianto

Note sugli autoriEnrico D’Emilia, Donatella Sacco e Livio Giuliani: Ispesl Roma;Settimio Grimaldi e Antonella Lisi: CNR-Inmm Roma

read

erse

rvic

e.it

n.3

20

DERT: DATA EVALUATION REAL TIME

Il Dert è un applicativo sviluppatoin LabVIEW per PC che ha lo sco-po di valutare in Real Time le pre-

stazioni di un Sistema di Difesa com-posto da Radar e Comando eControllo. Esso utilizza i dati raccoltisul bus operativo del sistema ed i datidi traiettografia forniti da un enteesterno in tempo reale. La cattura deidati di sistema avviene senza interfe-rire con gli apparati che lo compon-gono. L’uso della traiettografia inter-viene nella verifica della verifica dellaprecisione delle misure radar.

ANALISI E VALIDAZIONEIl Dert è una novità nell’ambito dellastrumentazione d’analisi e validazio-ne e rappresenta l’evoluzione di unlavoro decennale svolto nel campo della validazione deisistemi Radar. Partendo dall’esperienza maturata nellarealizzazione di tool di analisi prestazionali in LabVIEWnati per lavorare offline al termine della fase di raccoltadati, si è cercato di realizzare un tool che potesse realiz-

zare un’analisi dei dati in tempo reale.Il Dert è un’applicazione che è stata sviluppata inLabVIEW per essere utilizzata durante le campagne di vali-dazione di un sistema missilistico prodotto da Selex-SI chesi chiama Paams e rappresenta uno strumento potente pereffettuare analisi di prestazioni sia radar che di sistemacontestualmente all’esecuzione di una prova. Certamenteun requisito necessario per realizzare una tale applicazio-ne è la potenza di calcolo della piattaforma impiegata.Qualche anno fa non era facile disporre di hardware ade-guato a tale scopo, soprattutto a costi abbordabili. La con-figurazione 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 inter-facciare la rete. Le funzioni disponibili sono solamenteimplementazioni deli protocolli UDP e TCP che presentanonotevoli limitazioni in termini di configurabilità di indirizzie porte. L’elemento chiave della applicazione Dert scritta

Gen

nar

o R

icco

26

03

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

La ' s f ida ' era quel la d i real izzare un s istema a basso costo, f less ib i le e fac i lmente r iconf igurabi le in grado di va lutare le prestaz ioni d i un S istema di D i fesa in tempo reale

Fig. 1 – Schermata Pr inc ipale - Graf ico PPI

interamente in LabVIEW resta comunque la libreria difunzioni appositamente realizzata per l’interfacciamentocon i dispositivi di rete. La libreria sviluppata supera lelimitazioni della versione base di LabVIEW e semplifica larealizzazione di applicazioni che richiedono accesso inlettura e scrittura su un qualunque tipo di dispositivo direte. Tali funzioni si appoggiano su una DLL realizzata daun gruppo di ricercatori del Politecnico di Torino che sichiama WinPcap. Questa DLL viene distribuita gratuita-mente ed è alla base di applicazioni free software comeEthereal che rappresenta uno dei più sofisticati NetworkProtocol 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 ber-

sagli 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 sincroniz-

zate con gli eventi rappresentati;• archiviare automaticamente i dati raccolti con eventua-

le compressione dei file.La cattura dei messaggi viene fatta senza interferire con leunità presenti sulla rete. La registrazione dei dati permet-te il salvataggio in formato Libcap compatibile per essereaperto da Ethereal. Non sono previsti altri tipi di formatodi registrazione visto che tramite Ethereal è possibile effet-tuare la conversione.Il calcolo della precisione di tracciamento radar viene fattoutilizzando i dati di traiettografia ricevuti sulla secondainterfaccia di rete. La traiettografia viene messa a disposi-zione in tempo reale dal poligono dove vengono realizza-te le prove. Per poter utilizzare e confrontare questi daticon il tracciamento del radar, il Dert provvede ad effettua-re 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 verificabilisenza la traiettografia. In questo caso il Dert consente dimonitorare il buon funzionamento del sistema.La rappresentazione del PPI e del PPI 3D non utilizza lefunzioni grafiche di LabVIEW, bensì una serie di libreriesviluppate ad hoc già all’epoca della versione 4.1. Talelibrerie utilizzano come interfaccia utente dei sempliciindicatori GraphXY che risultano assai più maneggevoli eflessibili delle nuove primitive grafiche presenti dalla ver-sione 6.1 in avanti.Le mappe geografiche sono quelle Dted reperibili libera-mente su Internet L’applicazione è organizzata a pagine che raccolgono rap-

presentazioni grafiche e numeriche congruenti con le variefunzioni controllate. La possibilità di catturare le immaginidei vari front panel durante lo svolgimento della provapermette di raccogliere materiale utile per una rapidacompilazione di report alla fine della prova. Tali immaginisono salvate in formato PNG e possono essere inseritefacilmente in documenti word o presentazioni.L’applicativo è stato sviluppato a moduli per facilitare l’e-voluzione e l’adattabilità a differenti tipologie di sistema,cosa peraltro già concretamente verificata.L’applicazione è corredata di help in formato standarddove vengono descritte le varie funzionalità del program-ma.Grazie alle capacità real-time si riducono i tempi di esecu-zione ed i costi delle prove di qualifica e collaudo di unsistema. La possibilità di utilizzare un prodotto come que-sto 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.

27

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

Note sull’autoreGennaro Ricco, Selex Sistemi Integrati

read

erse

rvic

e.it

n.3

18

F ig. 2 – Graf ico PPI 3D

IL DEBUG DI VI

28

T alvolta un VI produce dati o si avvia in un modo chenon vi aspettavate. Potete utilizzare LabVIEW per con-figurare come avviare un VI e per individuare i proble-

mi con l’organizzazione dello schema a blocchi o con il flus-so dei dati nello schema a blocchi.

A. CORREZIONE DI VI NON FUNZIONANTISe un VI non si avvia, è guasto o non eseguibile. Il pulsanteRun appare rotto, come mostrato in fig. 1, quando il VI chestate creando o modificando contiene errori.

Se il pulsante risulta ancora rotto quando avete finito di col-legare lo schema a blocchi, il VI è guasto e non può essereavviato.

COME TROVARE LE CAUSE DEI VI GUASTIGli avvisi non vi impediscono di avviare un VI. Essi sono pro-gettati per aiutarvi ad evitare potenziali problemi nei VI.

Gli errori, invece, possono guastare un VI. Dovete quindirisolvere ogni errore prima di avviare il VI.Cliccate sul pulsante Run o selezionate View»Error Listper capire perché il VI è guasto. La finestra Error list elencatutti gli errori. La sezione Items with errors elenca i nomidi tutte le voci in memoria, come i VI e le librerie del pro-getto che possiedono errori.Se due o più voci hanno lo stesso nome, questa sezionemostra l’istanza dell’applicazione specifica per ogni voce.La sezione errors and warnings elenca gli errori e gliavvertimenti per il VI selezionato nella sezione Items witherrors. La sezione Details descrive gli errori ed in alcunicasi raccomanda come correggere gli errori.Cliccate sul pulsante Help per visualizzare un argomentodel LabVIEW Help che descrive l’errore in dettaglio ed include istruzioni passo-passo per la correzione deglierrori.Cliccate sul pulsante Show Error o cliccate due volte sulladescrizione dell’errore per evidenziare l’area nello schema ablocchi o nel pannello frontale che contiene l’errore.

CAUSE COMUNI DI ERRORE NEI VIL’elenco seguente contiene i motivi comuni per cui un VIrisulta guasto mentre lo modificate:• Lo schema a blocchi contiene un collegamento interrotto

a causa di incompatibilità di tipi di dato o di un’estremitànon collegata.Fate riferimento all’argomento Correcting BrokenWires del LabVIEW Help per informazioni sulla correzio-ni di collegamenti interrotti.

• Nello schema a blocchi un terminale essenziale non è col-legato.Fate riferimento all’argomento Using Wires to LinkBlock Diagram Objects del LabVIEW Help per ulterio-ri informazioni sulla impostazione degli ingressi e delleuscite necessarie.

• Un subVI è guasto o avete modificato il suo pannelloconnettori dopo aver inserito la sua icona nello schema ablocchi del VI.Fate riferimento all’argomento Creating subVI delLabVIEW Help per informazioni sui subVI.

Per avviare un VI , dovete col legare tutt i i subVI , le funzioni e le s t rutture con i t ip i d i dato corrett iper i terminal i

03S C U O L A D I L A B V I E W

Fig 1 – La freccia rotta indica la presenza di errori nel VI

a cu

ra d

i M

atte

o Fo

ini

Training per principianti

Fig 2 – Esempio d i f inestra d i d ia logo Error L ist

29

B. TECNICHE DI DEBUGSe un VI non è guasto, ma ottenete dei dati inattesi, poteteutilizzare le tecniche seguenti per individuare e correggere iproblemi 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 fun-zioni. Questi parametri rilevano gli errori incontrati in ogninodo dello schema a blocchi ed indicano se e dove c’èstato un errore. Potete utilizzare questi parametri anchenei VI che realizzate.

• Per eliminare tutti gli avvertimenti dei VI, selezionateView»Error List e contrassegnate il riquadro ShowWarnings per vedere tutti gli avvertimenti del VI.Determinate le cause e correggetele nel VI.

• Cliccate tre volte sul collegamento con lo strumentoOperativo attivo per evidenziare il suo percorso completoed assicurarvi che i collegamenti siano eseguiti sui termi-nali corretti.

• Utilizzate la finestra Context Help per verificare i valoridi default per ogni funzione e subVI dello schema a bloc-chi. I VI e le funzioni passano i valori di default se gliingressi consigliati o opzionali sono scollegati. Per esem-pio, un ingresso booleano potrebbe essere impostato suTRUE se scollegato.

• Usate la finestra di dialogo Find per ricercare subVI, testoe altri oggetti da correggere nel VI.

• Selezionate View»Browse Relationships»This VI’sHierarchy per trovare subVI scollegati. A parte funzioniscollegate, i VI non sempre generano errori a meno chenon configuriate un ingresso come necessario. Se inseriteper errore un subVI scollegato nello schema a blocchi,esso viene eseguito quando viene eseguito lo schema ablocchi. Quindi, il VI svolge azioni extra.

• Utilizzate l’esecuzione evidenziata per osservare il flussodei dati nello schema a blocchi.

• Scorrete passo passo il VI per visualizzare ogni azione delVI nello schema a blocchi.

• Utilizzate lo strumento Probe per osservare i valori inter-medi dei dati e per verificare gli errori in uscita di VI e fun-zioni, specialmente di quelli che effettuano I/O.

• Utilizzate dei punti d’interruzione per mettere in pausal’esecuzione, così potete andare passo passo o inserire deiprobe.

• Sospendete l’esecuzione di un subVI per modificare i valo-ri dei controlli e degli indicatori, per controllare il numerodi volte che viene eseguito o per andare indietro all’iniziodell’esecuzione del subVI.

• Verificate se i dati passati da una funzione o da un subVIsono indefiniti. Ciò avviene spesso con i numeri. Peresempio, in un punto del VI un’operazione potrebbe averdiviso un numero per zero, restituendo Inf (infinito), men-tre le funzioni o i subVI successivi erano in attesa dinumeri.

• Se il VI viene eseguito più lentamente del previsto, verifi-cate di aver disattivato l’esecuzione evidenziata nei subVI.Inoltre, chiudete i pannelli frontali e gli schemi a blocchidei subVI quando non li usate perché le finestre apertepossono compromettere la velocità di esecuzione.

• Verificate la rappresentazione dei controlli e degli indica-tori per vedere se state ottenendo un overflow perchéavete convertito un numero in virgola mobile in un interoo un intero in un intero più piccolo. Per esempio, potresteaver collegato un intero a 16 bit ad una funzione cheaccetta solo interi a 8 bit. Questo fa sì che la funzioneconverta l’intero a 16 bit in uno a 8 bit, provocando unapotenziale perdita di dati.

• Verificate se qualche For Loop esegue inavvertitamentezero iterazioni e produce array vuoti.

• Verificate di aver inizializzato correttamente i registri ascorrimento, a meno che non intendiate salvarne i dati daun’esecuzione del ciclo ad un’altra.

• Verificate l’ordine degli elementi del cluster nei punti sor-gente e di destinazione. LabVIEW rileva i tipi di dato e lediscrepanze durante la creazione, ma non rileva discre-panze di elementi dello stesso tipo.

• Verificate l’ordine di esecuzione dei nodi.• Verificate che il VI non contenga subVI nascosti. Potreste

aver nascosto un subVI inavvertitamente disponendoneuno direttamente sopra un altro nodo o durante la dimi-nuzione delle dimensioni di una struttura senza mantene-re in vista il subVI.

• Verificate il numero di subVI utilizzati dal VI con i risulta-ti di View»Browse Relationships»This VI’s SubVIs eView»Browse Relationships»Unopened SubVIs perstabilire se esistono ulteriori subVI. Aprite anche la fine-stra VI Hierarchy per vedere i subVI di un VI. Per evitarerisultati sbagliati causati da subVI nascosti, specificatequali ingressi sono necessari ai VI.

ESECUZIONE EVIDENZIATAVisualizzate un’animazione dell’esecuzione dello schemaa blocchi cliccando sul pulsante Highlight Execution(fig. 3).

L’esecuzione evidenziata mostra lo spostamento dei datinello schema a blocchi da un nodo all’altro utilizzandodelle bolle che si muovono sui collegamenti. Utilizzate l’e-secuzione evidenziata unitamente a quella passo passoper vedere come i valori dei dati si spostano da nodo anodo in un VI.

Nota L’esecuzione evidenziata riduce enormementela velocità di esecuzione dei VI.

S C U O L A D I L A B V I E W

Fig 3 – Pulsante Highl ight Execut ion

ESECUZIONE SINGLE-STEPEseguite passo passo un VI per visualizzare ogni azione del VIsullo schema a blocchi mentre il VI è in esecuzione. I pulsan-ti per l’esecuzione passo passo, mostrati nella fig. 5, influen-zano l’esecuzione solo in modalità single-step del VI o subVI.

Entrate nella modalità single-step cliccando sul pulsanteStep Over o Step Into della barra degli strumenti delloschema a blocchi. Spostate il cursore sul pulsante StepOver, Step Into o Step Out per visualizzare delle note chedescrivono il passo successivo se cliccate su quel pulsante.Potete andare passo passo nei subVI o eseguirli normal-mente. Se andate passo passo in un VI con l’esecuzione evi-denziata attiva, appare un simbolo di esecuzione sulle iconedei subVI che sono attualmente in esecuzione (fig. 6).

STRUMENTI PROBEUtilizzate lo strumento Probe, mostrato nella fig. 7, per veri-ficare i valori intermedi su un collegamento mentre un VI èin esecuzione.

Utilizzate lo strumento Probe se avete uno schema a bloc-chi complicato da una serie di operazioni, ognuna dellequali potrebbe restituire dati sbagliati. Utilizzate lo stru-mento Probe con l’esecuzione evidenziata, passo passo econ punti d’interruzione per stabilire se e dove i dati sonosbagliati. Se il dato è disponibile, il probe si aggiorna imme-diatamente durante l’esecuzione passo passo o quandoponete in pausa nel punto d’interruzione. Quando l’esecu-zione è in pausa in un nodo a causa dell’esecuzione passopasso o di un punto d’interruzione, potete anche sondare ilcollegamento appena eseguito per vedere il valore fluitoattraverso quel collegamento.

TIPI DI PROBEPotete verificare i valori intermedi su un collegamento quan-do un VI è in esecuzione utilizzando un probe generico, uti-lizzando un indicatore sulla palette Controls per visualiz-zare i dati, utilizzando un probe in dotazione, utilizzando unprobe personalizzato o creando un nuovo probe Generico.Utilizzate il probe generico per visualizzare i dati che passa-no attraverso un collegamento. Cliccate con il tasto destro suun collegamento e selezionate Custom Probe» GenericProbe dal menu rapido per utilizzare il probe generico.Il probe generico visualizza i dati. Non potete configurare ilprobe generico per rispondere ai dati. LabVIEW visualizza ilprobe generico quando cliccate con il tasto destro su un col-legamento e selezionate Probe, a meno che non abbiategià specificato un probe personalizzato o in dotazione per iltipo di dato. Potete verificare un probe personalizzato ana-logamente ad un VI. Tuttavia un probe non può sondare ilproprio schema a blocchi, né lo schema a blocchi di uno deisuoi subVI. Quando si verificano i probe, utilizzate probegenerici.

30

03S C U O L A D I L A B V I E W

Fig 4 – Esempio d i esecuzione evidenziata

Fig 5 – I pulsanti per l ’esecuzione passo passo_stepinto (a s ini-stra), passo_stepout (al centro) e passo_stepover (a destra)

Fig 6 – Anal is i passo passo ev idenziata

Fig 7 – Strumento Probe per la ver i f i ca d i va lor i infase d i esecuzione

31

S C U O L A D I L A B V I E W

UTILIZZO DI INDICATORI PER VISUALIZZARE I DATIPotete anche utilizzare un indicatore per visualizzare i datiche passano attraverso un collegamento. Per esempio, sevisualizzate dati numerici, potete utilizzare un chart nelprobe per visualizzare i dati. Cliccate con il tasto destro delmouse su un collegamento, selezionate CustomProbe»Controls dal menu rapido e selezionate l’indicato-re che volete usare. Potete anche cliccare sull’icona Selecta Control sulla palette Controls e selezionare uno deicontrolli personalizzati o definizioni di tipo salvate sul com-puter o in una directory condivisa su un server.LabVIEW tratta le definizioni di tipo come controlli persona-lizzati quando li utilizzate per visualizzare dati sotto probe.Se il tipo di dato che avete selezionato per l’indicatore nonè adatto al tipo di dato del collegamento su cui avete clic-cato con il tasto destro del mouse, LabVIEW non inseriscel’indicatore sul collegamento.

PROBE IN DOTAZIONEI probe in dotazione sono VI che visualizzano informazionicomplete sui dati che passano attraverso un collegamento.Per esempio, il VI Refnum Probe restituisce informazioni sulnome del VI, il percorso del VI e il valore esadecimale delriferimento. Potete anche utilizzare un probe in dotazioneper rispondere conseguentemente sulla base dei dati chefluiscono attraverso il collegamento. Per esempio, utilizzateun probe Error su un cluster di errori per ricevere lo stato,il codice, la sorgente e la descrizione dell’errore e specifica-re se volete impostare un punto d’interruzione condizionalein caso di errore o di avvertimento.I probe in dotazione appaiono nella parte superiore delmenu rapido Custom Probe. Cliccate con il tasto destro delmouse su un collegamento e selezionate Custom Probedal menu rapido per selezionare un probe in dotazione. Soloi probe che si adattano al tipo di dato del collegamento sucui avete cliccato con il tasto destro del mouse appaiono nelmenu rapido. Fate riferimento al VI Using Supplied Probesnella directory labview\examples\general\probes.llb per unesempio di utilizzo dei probe in dotazione.

PROBE PERSONALIZZATIUtilizzate il Custom Probe Wizard per creare un probesulla base di un probe esistente o per creare un nuovoprobe. Cliccate con il tasto destro del mouse su un colle-gamento e selezionate Custom Probe»New dal menurapido per visualizzare il Custom Probe Wizard. Create unprobe quando volete avere più controllo su come LabVIEWanalizza i dati che fluiscono su un collegamento. Quandocreate un nuovo probe, il tipo di dato del probe si adattaal tipo di dato del collegamento su cui avete cliccato conil tasto destro del mouse. Se volete modificare il probe cheavete creato, dovete aprirlo dalla directory in cui lo avetesalvato.

Dopo avere selezionato un probe dal menu rapido CustomProbe, ed essere andati su di esso utilizzando l’opzionedella palette Select a Control o avere creato un nuovoprobe utilizzando il Custom Probe Wizard, quel probediventa il probe di default per quel tipo di dato e LabVIEWcarica quel probe quando cliccate con il tasto destro delmouse su un collegamento e selezionate Probe dal menurapido. LabVIEW carica solo i probe che coincidono esatta-mente con il tipo di dato del collegamento su cui avete clic-cato. Quindi, un probe numerico a virgola mobile in doppiaprecisione non può lavorare su un collegamento con unintero a 32 bit senza segno, anche se LabVIEW può con-vertire i dati.

Nota Se volete che un probe personalizzato diventiil probe di default per un particolare tipo di dato, sal-

vate il probe nella directory user.lib\_probes\default. Nonsalvate i probe nella directory vi.lib\_probes perchéLabVIEW sovrascrive quei file quando eseguite gli aggior-namenti o reinstallate il programma.

read

erse

rvic

e.it

n.3

25

Note sull’autoreLaureato in ingegneria nucleare al Politecnico diMilano, Matteo Foini lavora in qualità di TechnicalMarketing Engineer presso National Instruments Italy.

32

S C U O L A D I L A B V I E W

03

COME SVILUPPARE CONSUCCESSO

Questo articolo descrive strategie e tecniche di pro-grammazione che potete utilizzare per costruire ivostri VI. Imparerete come evitare l’aggiunta di

caratteristiche impreviste che possano alterare l’intentooriginale dell’applicazione e rendere più difficile la manu-tenzione del codice. Imparerete anche tecniche di risolu-zione dei problemi e come utilizzare in modo ottimaleLabVIEW per risolvere problemi.Esploreremo tutte le fasi del processo di sviluppo delsoftware: progettazione, implementazione, test e messain opera, come indicato in figura 1. Potete utilizzare que-ste procedure per costruire VI scalabili, leggibili e manu-tenibili.

VI SCALABILI, LEGGIBILI E MANUTENIBILISe utilizzate LabVIEW per sviluppare applicazioni com-plesse, dovreste usare dei buoni principi di progettazionesoftware. Il vostro scopo è sempre quello di creare VI chesiano scalabili, leggibili e manutenibili.

• Scalabile - Deve essere facile aggiungere nuove fun-zionalità ad un’applicazione senza riprogettare completa-mente l’applicazione stessa.

• Leggibile - Deve essere facile ispezionare visivamenteil progetto di un’applicazione e capirne lo scopo e le fun-zionalità.

• Manutenibile - Deve essere facile cambiare il codiceda parte dello sviluppatore originale o di qualsiasi altrosviluppatore senza minare l’intento del codice originale.

Poiché LabVIEW è un linguaggio di programmazione,quando programmate con LabVIEW trovate molti deglistessi problemi di progettazione che incontrate quandoprogrammate coi linguaggi tradizionali basati su testo.Tuttavia, LabVIEW offre molte funzionalità e tecnichepotenti di programmazione che vi permettono di concen-trarvi sulla stesura di un progetto anziché focalizzarvi, peresempio, su problemi di sintassi o di memoria.

SCALABILITÀPer creare un VI scalabile, dovete iniziare a pensare allastruttura dell’applicazione già nelle prime fasi del proces-so di progettazione. Un VI scalabile ben progettato vi per-mette di modificare e aggiungere facilmente funzionalitàal progetto originale. Per esempio, consideriamo un VI di

Questo ar t ico lo descr ive tecniche d i sv i luppo basate su anni d i esper ienza nel l ’ ingegner iadel soft ware. L’argomento v iene introdotto con un l ive l lo d i teor ia adatto per a iutar v i acapire come ta l i tecniche v i permettono di c reare VI sca labi l i , leggibi l i e manutenibi l i

Training per espertiA

cur

a di

Mat

teo

Foin

i

Figura 1 – Mappa di sv i luppo del soft ware

Analisi del progetto

Implementazioneinterfaccia utente

Implementazionecodice

Implementazionepiano di test

Valutazione prestazioni del codice

Implementazionedocumentazione

Messa in operaTestImplementazioneProgettazione

Costruzione e messa in opera dell’applicazione

Progettazione interfaccia utente

Progettazione codice

33

S C U O L A D I L A B V I E W

acquisizione che acquisisce dati da tre termocoppie.Supponiamo che i requisiti dell’applicazione cambino eche sia necessario acquisire dati da centinaia di termo-coppie. Se il VI originale è stato progettato per essere sca-labile, estendere il VI per acquisire dati da centinaia ditermocoppie sarà più facile che progettare un nuovo VI.Utilizzate buone pratiche di progettazione per creare VIscalabili. Molte applicazioni esistenti devono essereriscritte quando sono necessari dei cambiamenti, perché ilcodice non è stato progettato per essere scalabile. Per unVI non scalabile, anche semplici cambiamenti, comeacquisire dati da più sensori o controllare più attuatori,possono richiedere una riscrittura. Quando progettateun’applicazione qualsiasi, considerate lo scopo dell’appli-cazione e come gestire i cambiamenti quando la scaladell’applicazione va oltre le specifiche originali.

LEGGIBILITÀNella vostra esperienza di lavoro con LabVIEW, vi sareteimbattuti in esempi di schemi a blocchi non ben struttu-rati, difficili da leggere e difficili da capire. Il codice con-fuso e non manutenibile viene chiamato a volte “spa-ghetti code”; tale codice illeggibile può rendere impossi-bile decifrare le funzionalità di un diagramma a blocchi.

MANUTENIBILITÀUn VI scritto seguendo delle solide basi di progettazionesoftware e avente una solida architettura vi permette diaggiungere nuove funzionalità senza dovere riscriverecompletamente l’applicazione.Quando sviluppate un’applicazione, tenete presente cheun altro programmatore potrebbe avere la necessità diusare e modificare il VI in futuro.L’articolo vi spiega come applicare le funzionalità diLabVIEW e utilizzare buoni principi di progettazione delsoftware, direttamente correlati a LabVIEW, per creareapplicazioni ben formate, scalabili, leggibili e manutenibili.

REGOLE PER SVILUPPARE CON SUCCESSOLabVIEW facilita l’integrazione di componenti di sistemidi acquisizione dati, test e controllo. Dato che creareapplicazioni in LabVIEW è così facile, molte persone ini-ziano a sviluppare immediatamente VI con una pianifica-zione relativamente modesta. Per le applicazioni semplici,come test di laboratorio veloci o applicazioni di monito-raggio, questo approccio può essere appropriato.Tuttavia, per i progetti di sviluppo più grossi, una buonapianificazione del progetto è vitale.

LABVIEW:UN LINGUAGGIO DI PROGRAMMAZIONELabVIEW è un linguaggio di programmazione generalpurpose progettato specificamente per la creazione di

applicazioni di misura e automazione. Le applicazioniLabVIEW possono spaziare da un semplice VI a grosseapplicazioni, contenenti molti VI organizzati in gerarchiecomplesse. Mano a mano che espandete l’uso di LabVIEWe create applicazioni più articolate, inevitabilmente, ilcodice che scrivete diventa più complesso.Molte industrie in tutto il mondo utilizzano LabVIEWcome strumento per eseguire una vasta gamma di opera-zioni di misura e automazione, molto spesso in ambientidove la sicurezza è critica: come programmatori, quindi,dovete creare applicazioni che siano sicure, facili damanutenere e facili da capire.

IL CICLO DI VITA DEL SOFTWAREPer affrontare le complessità proprie dei grandi progetti disviluppo del software, molti sviluppatori seguono unnucleo base di principi di sviluppo che definiscono il cam-po dell’ingegneria del software. Uno dei componenti fon-damentali è rappresentato dal modello del ciclo di vita,che descrive i passi da seguire quando si sviluppa delsoftware: dal concetto iniziale alle fasi di rilascio, manu-tenzione e successivo upgrade del software.Esistono molti modelli diversi del ciclo di vita. Ciascuno diessi ha i propri vantaggi e svantaggi in termini di tempodi rilascio, qualità e gestione dei rischi.Questo paragrafo descrive alcuni dei modelli più comunima ne esistono molti altri nati da combinazioni dei prin-cipali; pertanto, potete personalizzare i modelli esistentiper adattarli ai requisiti di un progetto. Benché la discus-sione in questa sede rimanga teorica, considerate semprenella pratica tutte le fasi che questi modelli abbracciano,come decidere quali requisiti e specifiche il progetto deb-ba soddisfare e come affrontare i loro cambiamenti.Il modello del ciclo di vita è un fondamento dell’interoprocesso di sviluppo. Buone decisioni possono migliorarela qualità del software che sviluppate e diminuire il tem-po necessario per lo sviluppo.

IL MODELLO “CODE AND FIX”Il modello “code and fix” è probabilmente la metodologiadi sviluppo utilizzata più frequentemente. Si cominciaimmediatamente a sviluppare, con una pianificazioneminima o nulla, sistemando i problemi mano a mano chesi presentano, finché il progetto è completo.Il modello “code and fix” rappresenta la scelta preferitaquando la pianificazione prevede tempi stretti di sviluppo,perché vi mette in condizione di scrivere subito codice evedere dei risultati immediatamente.Purtroppo, se si scoprono problemi strutturali significativiin una fase avanzata del processo di sviluppo, normal-mente è necessario riscrivere grosse parti dell’applicazio-ne. Modelli di sviluppo alternativi possono aiutarvi a sco-prire tali problemi già nelle prime fasi, quando eseguire

34

S C U O L A D I L A B V I E W

03

cambiamenti è più facile e meno costoso. Il modello“code and fix” è appropriato solo per piccoli progetti nondestinati a servire come base per sviluppi futuri.

IL MODELLO A CASCATAIl modello a cascata è il classico modello dell’ingegneriadel software, uno dei più vecchi e ampiamente utilizzatonei progetti delle grandi aziende. Enfatizzando l’impor-tanza della documentazione e della pianificazione fin dal-le prime fasi, il modello permette di rilevare i difetti pre-senti nel progetto prima che possano svilupparsi ulterior-mente e funziona bene per progetti nei quali il controllodi qualità sia una questione di primaria importanza.Il ciclo di vita a cascata puro consiste di più fasi nonsovrapposte, come mostrato in figura 2. Il modello iniziastabilendo i requisiti di sistema e i requisiti software eprosegue con il progetto generale dell’architettura, il pro-getto dettagliato, la generazione del codice, il collaudo ela manutenzione. Il modello a cascata serve come riferi-mento per molti altri modelli del ciclo di vita.L’elenco seguente spiega i passi necessari per utilizzare ilmodello a cascata:

• Requisiti di sistema – Stabilisce i componenti necessariper costruire il sistema, inclusi i requisiti hardware, gli stru-menti software e gli altri componenti necessari. Esempiincludono la scelta dell’hardware, come le schede plug-in(numero di canali, velocità di acquisizione e così via) ecomponenti software esterni come database o librerie.• Requisiti software – Stabilisce le aspettative sulle fun-zionalità del software e identifica quali requisiti di siste-ma dipendono dal software. L’analisi dei requisiti includela determinazione delle interazioni necessarie con altre

applicazioni e database, i requisiti di prestazioni, i requi-siti di interfaccia utente e così via.• Progettazione generale dell’architettura - Determinal’infrastruttura software del sistema necessaria per soddi-sfare i requisiti specificati. Il progetto definisce i principa-li componenti e l’interazione di tali componenti, ma nondefinisce la struttura di ciascun componente.Determinerete inoltre le interfacce e gli strumenti esternida usare nel progetto.• Progettazione dettagliata - Esamina i componenti soft-ware definiti nella fase di progettazione generale e pro-duce una specifica su come implementare ogni compo-nente.• Generazione del codice - Implementa le specifiche det-tagliate del progetto.• Collaudo – Determina se il software risponde ai requi-siti specificati e trova tutti gli errori presenti nel codice.• Manutenzione – Risolve i problemi e le richieste dimiglioramento dopo il rilascio del software.In alcune organizzazioni, un comitato di controllo dei cam-biamenti mantiene la qualità del prodotto rivedendo cia-scun cambiamento eseguito nella fase di manutenzione.

Considerate l’applicazio-ne dell’intero modello acascata del ciclo di svilup-po quando sia necessarioapportare correzioni oimplementare richieste dimiglioramento.In ogni fase, create docu-menti che spiegano gliobiettivi e descrivono irequisiti per quella fase.Alla fine di ogni fase,eseguite una revisioneper determinare se il pro-getto può procedere nel-la fase successiva.Dovete anche incorpora-re la prototipazione inogni fase a partire dallaprogettazione generaledell’architettura.

Molti ritengono che non sia possibile applicare questomodello a tutte le situazioni. Per esempio, con il modelloa cascata puro, dovete definire i requisiti prima di inizia-re il progetto e dovete definire il progetto completo primadi iniziare la codifica. Non essendoci sovrapposizione trale fasi, nello sviluppo reale potreste scoprire problemidurante le fasi di progettazione o codifica che evidenzia-no errori o lacune presenti nei requisiti.Il metodo a cascata non proibisce il ritorno ad una faseprecedente: per esempio, dalla fase di progettazione alla

Figure 2 – Le fas i del model lo a cascata

Requisiti di sistema

Requisiti software

Progettazione gene-rale dell’architettura

Progettazione dettagliata

Generazionedel codice

Collaudo

Manutenzione

35

S C U O L A D I L A B V I E W

fase dei requisiti. Tuttavia, ciò implica costose fasi di revi-sione e lo sviluppo di un’ampia documentazione.Pertanto, correggere successivamente le sviste compiutenella fase dei requisiti risulta dispendioso.Poiché l’effettivo sviluppo avviene tardi nel corso del pro-cesso, normalmente non si vedono risultati per moltotempo. Questo ritardo può lasciare perplessi sia i dirigen-ti che i clienti finali. Molte persone ritengono inoltre chela quantità di documentazione richiesta sia eccessiva epoco flessibile.Benché il modello a cascata abbia i suoi punti deboli,risulta comunque istruttivo, perché enfatizza fasi impor-tanti dello sviluppo del progetto. Anche se non applicatequesto modello, considerate ciascuna di tali fasi e la suarelazione con il vostro progetto.

IL MODELLO A CASCATA MODIFICATOMolti ingegneri raccomandano versioni modificate delciclo di vita a cascata.Tali modifiche tendono a focalizzarsi sulla possibililtà disovrapporre alcune fasi, riducendo il volume di documen-tazione necessario e il costo del ritorno a fasi precedentiper la loro revisione. Un’altra modifica comune è quella diincorporare la prototipazione nelle fasi dei requisiti.La sovrapposizione delle fasi, come la fase dei requisiti ela fase di progettazione, rende possibile integrare neirequisiti un feedback dalla fase di progettazione. Tuttavia,la sovrapposizione delle fasi può rendere difficile saperequando si è finito di lavorare con una di esse. Di conse-guenza, è più difficile tracciare il progresso nello sviluppodel progetto. Senza fasi distinte, i problemi possonocostringervi a deferire decisioni importanti, quando risul-ta più costoso apportare correzioni.

PROTOTIPAZIONEUno dei problemi principali con il modello a cascata è chei requisiti spesso non vengono completamente compresinelle prime fasi di sviluppo. Quando raggiungete le fasi diprogettazione o codifica, conviene cominciare a vederecome ogni parte funziona insieme alle altre e scoprireeventualmente se occorre apportare qualche modifica airequisiti.La prototipazione è uno strumento efficace per dimostra-re come un progetto soddisfi un insieme di requisiti.Potete costruire un prototipo, modificare i requisiti e rive-dere il prototipo diverse volte finché non avete un quadrochiaro degli obiettivi globali. Oltre a chiarire i requisiti, unprototipo definisce anche molte aree del progetto simul-taneamente. Il modello a cascata puro permette la proto-tipazione nella fase avanzata di progettazione generaledell’architettura e nelle fasi successive, ma non nelle pri-me fasi dello sviluppo.Tuttavia, anche la prototipazione ha i suoi svantaggi: la

sensazione di avere un sistema funzionante può indurre iclienti ad attendersi un sistema completo prima di quan-to sia possibile. Nella maggior parte dei casi, i prototipi sibasano su compromessi che permettono di procedere piùrapidamente, ma che impediscono al prototipo di rappre-sentare una base efficace per futuri sviluppi. Dovete deci-dere presto se volete utilizzare il prototipo come base perfuturi sviluppi e tutte le parti devono concordare con que-sta decisione prima che inizi lo sviluppo.Fate attenzione che la prototipazione non diventi unamaschera per un ciclo di sviluppo “code and fix”. Primadi iniziare la prototipazione, raccogliete chiari requisiti ecreate un piano di progettazione. Limitate la quantità ditempo che dedicherete alla prototipazione prima di ini-ziare. I limiti di tempo aiutano ad evitare un eccesso dilavoro nella fase di prototipazione. Mano a mano cheincorporate cambiamenti, aggiornate i requisiti e il pro-getto corrente. Quando avete finito la prototipazione,considerate la possibilità di tornare a uno degli altrimodelli di sviluppo.

METODI DI PROTOTIPAZIONE IN LABVIEWVi sono diversi modi per prototipare un sistema inLabVIEW. Nei sistemi che presentano requisiti di I/O chesono difficili da soddisfare, potete sviluppare un prototipoper testare i cicli di controllo e acquisizione e le loro velo-cità. Nei prototipi di I/O, dati casuali possono simulare idati acquisiti nel sistema reale.I sistemi aventi molti requisiti di interfaccia utente sonoperfetti per la prototipazione. E’ difficile determinare sul-la carta il metodo da usare per visualizzare i dati o chie-dere impostazioni all’utente. Al contrario, considerate laprogettazione di pannelli frontali dei VI con i controlli e

Figure 3 – Model lo del c ic lo d i v i ta a spi ra le

Determinazione obiettivi, alternative e vincoli

Legame al ciclo successivo

Pianificazionefase successiva

Valutazionealternative e rischi

Costo cumulativo

Prototipo

Analisi dei rischi

Sviluppo e test

gli indicatori che vi occorrono. Lasciate il diagramma ablocchi vuoto e immaginate il funzionamento dei control-li e se le varie azioni implementate richiedano eventual-mente altri pannelli frontali.Se siete impegnati su un progetto per un cliente, usareprototipi dei pannelli frontali è un modo estremamenteefficace per discutere con il cliente come potete soddisfa-re i suoi requisiti.

IL MODELLO A SPIRALEIl modello a spirale è una popolare alternativa al modelloa cascata. Esso enfatizza la gestione dei rischi, permet-tendovi di scoprire i maggiori problemi nelle prime fasidel ciclo di sviluppo. Nel modello a cascata, dovete com-pletare il progetto prima di iniziare la codifica.

Con il modello a spirale, il progetto viene suddiviso in uninsieme di rischi che è necessario affrontare. Iniziate conuna serie di iterazioni nelle quali analizzate il rischio piùimportante, valutate le opzioni per risolvere il rischio,gestite il rischio, valutate i risultati e pianificate l’iterazio-ne successiva. La figura 3 illustra il modello del ciclo divita a spirale.I rischi sono tutti gli aspetti che non sono chiaramentedefiniti o che hanno la possibilità di influire negativa-mente sul progetto. Per ogni rischio, considerate le duecose seguenti:• La probabilità che il rischio si verifichi• La severità dell’effetto del rischio sul progetto (perdita)Potete usare una scala da 1 a 10 per ciascuno di questielementi, dove 1 rappresenta la minima probabilità o per-dita e 10 rappresenta il massimo. L’esposizione al rischioè il prodotto di questi due valori.Usate qualcosa di simile alla tab. 1 per tenere tracciadegli elementi di massimo rischio del progetto.In generale, affrontate prima i rischi che hanno la più altaesposizione al rischio. In questo esempio, la prima spiraleaffronta la possibilità che le velocità di acquisizione datisiano troppo elevate. Se dopo la prima spirale dimostrateche le velocità sono elevate, potete passare a una diver-sa configurazione hardware per soddisfare i requisiti diacquisizione. Ogni iterazione può identificare nuovi rischi.In questo esempio, usare hardware più potente può intro-

durre il nuovo rischio di costi più elevati.Supponiamo che stiate progettando un sistema di acqui-sizione dati con una scheda di acquisizione plug-in. Inquesto caso, il rischio è se il sistema può acquisire, ana-lizzare e visualizzare i dati abbastanza rapidamente.Alcuni dei vincoli, in questo caso, sono il costo del siste-ma e i requisiti di una specifica velocità di campionamen-to e precisione.Una volta determinate le opzioni e i vincoli, potete valu-tare i rischi. In questo esempio, create un prototipo o unbenchmark per testare le velocità di acquisizione. Dopoaver visto i risultati, potete valutare se continuare conl’approccio o scegliere un’opzione differente. Lo fareteriesaminando i rischi in base alla nuova conoscenza cheavete acquisito costruendo il prototipo.

Nella fase finale, valuterete i risultaticon il cliente. In base all’input del clien-te, potete riesaminare la situazione,decidere il prossimo rischio più elevato ericominciare il ciclo. Il processo continuafinché il software è finito o quando deci-dete che i rischi sono troppo elevati eterminate lo sviluppo. E’ possibile chenessuna di queste opzioni sia percorribi-le, perché le opzioni sono troppo costo-

se, laboriose o non soddisfano i requisiti.Il vantaggio del modello a spirale, rispetto al modello acascata, è che potete valutare quale rischio affrontare adogni ciclo. Potendo valutare prima i rischi grazie ai proto-tipi, potete affrontare i maggiori ostacoli e selezionaredelle alternative già nelle prime fasi, cosa che si rivelameno costosa. Con un modello a cascata standard, inve-ce, le ipotesi relative ai componenti rischiosi possonoessere distribuite lungo l’intero progetto e quando sco-prite i problemi, il lavoro aggiuntivo necessario può rive-larsi molto costoso.

36

S C U O L A D I L A B V I E W

03

Note sull’autoreLaureato in ingegneria nucleare al Politecnico diMilano, Matteo Foini lavora in qualità di TechnicalMarketing Engineer presso National Instruments Italy.

read

erse

rvic

e.it

n.3

26

Tabel la 1 – S intes i del le compat ib i l i tà per le shared var iable pubbl icate in rete

Rischio

I rate di acquisizione sonotroppo elevati

Il formato dei file potrebbenon essere efficiente

Interfaccia utentenon ben definita

Probabilità

5

5

2

Perdita

9

3

5

Esposizione al rischio

45

15

10

Gestione del rischio

Sviluppare un prototipoper dimostrare la fattibilità

Sviluppare dei benchmark per valutarela velocità di manipolazione dei dati

Coinvolgere il cliente;sviluppare un prototipo

1

2

3

37

03HTTP://WWWUtilizzo di funzioni grafiche in un XControl di LabVIEW

L'esempio mostra come implementare un XControl. Il VI Paint Demo utilizza l'XControl Paint per dimostrare come utilizzarealcune delle funzioni grafiche disponibili in un XControl di LabVIEW. L'XControl Paint vi permette di disegnare oggetticome linee e cerchi e di scrivere testo. L'XControl restituisce poi l'immagine disegnata. Aprite il VI Paint Demo per vederel'implementazione dell'XControl. Aprite il progetto Paint XControl per vedere la struttura dell'XControl.

Link alla pagina:

D A L L A C A R T A A L W E B

Q u a n d o l e n o s t r e p a g i n e n o n b a s t a n o, l ’ e n o r m e s e r b ato i o d e l we b p u ò d a r e u n a m a n o.S u u n a r i v i s t a c a r t a c e a , a n c h e l a p i ù vo l u m i n o s a , s a r e b b e i m p o s s i b i l e t r at t a r e p e r e s te s o t u t t i g l i a r g o m e n t i r e l at i v i a L a b V I E W. I n m o l t i c a s i , t u t t av i a , s u l we b s o n o d i s p o n i b i l i a r t i c o l i e s a u s t i v i o a l t r i d o c u m e n t i , a c u i r i m a n d i a m o i l e t to r i i n te r e s s at i .

Come sfruttare le tecnologie multicore grazie a LabVIEW 8.5Presentazione 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 learchitetture 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:

LabVIEW .NET Web Service BrowserIl .NET Web Service Browser è un tool basato su LabVIEW per esplorare i servizi web e generare per loro .NET AssemblyWrappers. Per utilizzare il .NET Web Service Browser, estraete il file allegato nella directory ... LabVIEW X.X\project elanciate LabVIEW. Selezionate Tools».NET Web Service Browser per lanciare il browser.

Link alla pagina:

ni .com/info infocode: i tqsdw

ni .com/info infocode: i tqsdw

ni .com/info infocode: i tqsdw

Passare una varietà di tipi dati da DLL a LabVIEWL'esempio illustra come passare diversi tipi di dati da codice C a LabVIEW attraverso la Call Library Function presente inLabVIEW. Il codice C mostra come creare dinamicamente dati e passarli a LabVIEW usando le funzioni di gestione dellamemoria di LabVIEW. Il codice C visualizza come modificare i dati passati da LabVIEW e modificare il contenuto dei datistessi, e mostra inoltre come LabVIEW può passare ed accettare tipi di dati C standard come i double per gli array o i charper le stringhe, oltre a come passare strutture native di LabVIEW al codice C e come gestirle.

Link alla pagina:

ni .com/info infocode: i tqsdw

38

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'esempioutilizza gli eventi di filtro ‘Mouse Down?’ e ‘Shortcut Menu Activation?’. Nell'evento ‘Mouse Down?’, l'esempio modifica il para-metro ‘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: i tqsdw

Arrotondamento dei numeri alla cifra decimale desiderataLabVIEW supporta, come funzione pronta all’uso, solo l'arrotondamento dei numeri a valori interi. Per esempio, LabVIEWarrotonda il numero 543,21 a 543,00. Questo VI illustra come arrotondare i numeri a valori non interi. Per esempio, potetearrotondare 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: i tqsdw

Interazione tra LabVIEW e la finestra interattiva del MathScript utilizzandovariabili globali

Con LabVIEW potete lavorare in modalità sia grafica che testuale per la progettazione di algoritmi ed altri compiti cherichiedano elaborazione di segnali, analisi e matematica. La disponibilità di entrambi gli approcci offre la libertà diaffrontare i problemi nei loro vari aspetti usando gli strumenti più appropriati. Come si vede nell'esempio, si possonoutilizzare fianco a fianco i due approcci e condividere dati e risultati fra loro. Specificamente, si esamina come i programmigrafici scritti in LabVIEW (strumenti virtuali) possono condividere dati con la finestra interattiva del MathScript. Poteteprogettare e implementare algoritmi nell'interfaccia utente di tipo testuale della finestra interattiva del MathScript evedere immediatamente i risultati all’interno di un'interfaccia utente custom sviluppata graficamente in LabVIEW.

Link alla pagina:

ni .com/info infocode: i tqsdw

read

erse

rvic

e.it

n.3

50

Dice Rolling Game in LabVIEWL'esempio ricrea in LabVIEW il gioco Yahtzee (http://it.wikipedia.org/wiki/Yahtzee). Si tratta di un esempio eccellente suuna serie di concetti di LabVIEW, alcuni di base e altri avanzati. L'esempio utilizza un controllo Picture Ring, struttureSequence 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: i tqsdw

03D A L L A C A R T A A L W E B

L'esempio descrive l'uso dei VI di gestione del suono in un'applicazione LabVIEW PDA per Pocket PC. Esso permette diaprire un file .wav o registrare l'ingresso del microfono. Permette quindi di riprodurre tale informazione attraversol'altoparlante e salvarla in un file .wav. Illustra inoltre la possibilità di leggere e scrivere file .wav.

Link alla pagina:

Esempio di gestione del suono per LabVIEW PDA su Pocket PC

ni .com/info infocode: i tqsdw

39

03L A V O C E D E G L I U T E N T I

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

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 automaticononostante io abbia settato nel ‘Source File Settings’

l'inverso e cioè che non parta in automatico quandoclicco sull'exe.Perché ? [continua su http://www.ilvg.it/ht/3345]

Pr inc ip iante

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

Ale

ssan

dro

Ric

co

Esistono Driver di webcam per l'Imaging? http://www.ilvg.it/ht/581Inviato: 28 Gen 2005 11:06 am ..ma ciao! ...allora devo riciclare una telecamera ad infrarossi conl'uscita video PAL normalissima...La questione è che 650€ per prendere un frame grabbere acquisire ‘ste immagini non me li danno.Quindi volevo utilizzare una scheda o di acquisizione TVoppure realizzare qualcosa in modo tale da far risultarela telecamera come una webcam e poi andare ariprenderla in LabVIEW.

Per prendere una webcam in LabVIEW si deve lavoraresulle API di windows ma nonsaprei da dove partire pertrovare la procedura giusta. Quindi la domanda è:Conoscete dei produttori di framegrabber VERAMENTElowcost con driver per LabVIEW?? Oppure avete idea di come acquisire in LabVIEW unasorgente video che non arriva da un framegrabber?(meglio se non è un continuo salvataggio di immaginisingole :D ) [continua su http://www.ilvg.it/ht/581]

Gepponl ine

Memorizzazione dato (tipo latch D) http://www.ilvg.it/ht/3028Inviato: 26 Apr 2007 10:33 amCiao a tutti,sono uno studente di ingegneria elettronica specialisticache 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 taglioimpostabile dall’utente ogni qual volta egli lo voglia.Ho anche messo un valore di default. Il VI parte filtrandocol valore di default (100) poi se l’utente vuole cambiaref, 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 immessofinché premendo l'ok della finestra non se ne inserisce unaltro (il latch lascia passare il dato). Io invece non riescoa tenere il dato memorizzato, dopo un ciclo torno alvalore di default.Se qln mi aiuta mi fa un piacere, spiegandomi lasoluzione del mio problema, o dandomi il VI stesso dascaricare per vederlo meglio, oppure spiegandomi come si fa in generale se si vuole tenere un nodo a un certovalore fino all'inserimento di uno nuovo.Grazie1000!!!![continua su http://www.ilvg.it/ht/3028]

Sundance

40

03L A V O C E D E G L I U T E N T I

Inviato: 01 Giu 2007 1:12 pm ..ma ciao! Devo pilotare un dispositivo sfruttando la porta LPT.Non avendola sul portatile ho installato un adattatoreUSB.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 isingoli canali?[continua su http://www.ilvg.it/ht/3199]

Gepponl ine

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

Cobain

help sui property & invoke node http://www.ilvg.it/ht/3296Inviato: 13 Lug 2007 10:10 am Ciao a tutti mi chiamo Max! Vi spiego la mia situazione: dovrei realizzare unainterfaccia utente fatta in questo modo: una matrice i cuielementi di devono illuminare a seconda del valoreselezionato di riga e colonna.Pensavo (e sono ancora convinto ;) ) di poter realizzarequesta cosa con i property node ma finora sto avendo un

po' di difficoltà qualcuno mi potrebbe dare qualchedritta? per cortesia? grazie a tutti quelli che risponderanno! PS: ho già visto la property blinking e pensavo di potersfruttare le property selction size e selection start ma cideve essere ancora qualcosa che mi sfugge ;)Di nuovo grazie! [continua su http://www.ilvg.it/ht/3296]

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

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

read

erse

rvic

e.it

n.3

45

Inviato: 31 Mag 2007 4:04 pm Ciao a tutti Ho una finestra secondaria che richiamo dal programmaprincipale, e che serve a mostrare alcuni dati; per farequesto, ho creato a parte un nuovo VI nel quale ho messogli indicatori che mi servono collegati a dei vertical pointslide (che ho poi occultato) ed un pulsante collegato adun WHILE che mi permette di uscire dalla finestra inseguito ad una sua pressione. Ho configuratoopportunamente il connettore del vi, e lo richiamocorrettamente dal programma principale (ho configuratosub vi node setup). Il problema è che la finestra

secondaria, quando aperta, mi blocca l'elaborazioneprincipale, permettendomi solo di visualizzare gli ultimidati disponibili forniti dall'elaborazione principale,perché la finestra ‘aspetta’ la pressione del pulsate diuscita. Ora, mi chiedo: è possibile fare in modo chel'apertura di questa finestra non blocchi tutto ilprogramma principale finché non viene chiusa? In praticami servirebbe un modo alternativo per uscire dallafinestra senza usare un ciclo while + pulsante.Grazie in anticipo Sundance [continua su http://www.ilvg.it/ht/3191]

Sundance

41

I LVG, la prima Comunità di LabVIEW in Italia, nata per farfronte alle esigenze di condivisione di esperienze e com-petenze tecniche dei numerosi appassionati di LabVIEW in

Italia e che conta ormai numerosissimi iscritti, ha sentito l’esi-genza di incontrarsi dal vivo, al di fuori, quindi, delle familiaripareti di casa del Forum di Discussione ilvg.itLo scorso sabato 23 giugno, 30 persone si sono quindi incon-trate presso il Collegio Lorenzo Valla dell’Università di Pavia.Obiettivo della manifestazione, riunire la Comunità virtuale inuno spazio reale, potersi confrontare e creare un momento diaggiornamento importante per un pubblico circoscritto, maestremamente eterogeneo. Il menù della giornata: nessunaagenda classica, se non una scaletta di base da cui attingerespunti di confronto reciproco e panel di discussione generatidal reale interesse di confronto del momento. Il filo logico del-la discussione si è quindi dipanato naturalmente e spontanea-mente nel corso della giornata, affrontando temi come ‘l’ac-

quisizione analogica sincronizzata da un encoder incrementa-le’, ‘la programmazione ad oggetti in LabVIEW’, ‘Lua &LuaVIEW scripting’, ‘Data I/O veloce’ e ‘Foxboard&LabVIEW’ emolto altro ancora. Durante l'incontro, gli appassionati di LegoMindstorm NXT, il celebre robottino che sta raccogliendo con-sensi e nuovi fan in tutto il mondo ogni giorno, hanno potutoapprofondire le tecniche di programmazione in LabVIEW escambiarsi ‘trucchi e segreti del mestiere’.“Siamo riusciti a riunire esperti provenienti da ogni settore eda tutta Italia sotto un unico tetto grazie alla forte motivazio-ne ed interesse personale di ognuno dei presenti”, ha dichia-rato Alessandro Ricco, uno dei fondatori di ILVG.“Naturalmente, stiamo già pensando alla prossima edizione.Vi aspettiamo!”.

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

Nad

ia A

lbar

ello

03R E P O R T

I l 23 g iugno s i è svolto i l pr imo ILVGDAY

National Instruments fa di nuovo centro con un corso diaggiornamento itinerante: il Corso di programmazionedei sistemi PAC (Programmable Automation Control-

ler), basato sulla tecnologia FPGA per la misura e l'automa-zione avanzata. Obiettivo del corso: offrire un'opportunitàformativa gratuita a tecnici ed ingegneri legati al mondo del-la progettazione, della prototipazione e della realizzazione disistemi di controllo industriale, costruttori di macchine, inte-gratori di sistemi. L’ormai collaudata formula dei corsi ‘hands-on’ permette ai partecipanti di provare dal vivo le potenziali-tà del software e dell’hardware di National Instruments edapprendere tramite esempi pratici.Al Corso di programmazione dei sistemi PAC i presenti, gui-dati dai tecnici di National Instruments, hanno appreso i fon-

damentali del linguaggio grafico di LabVIEW e la sua flessibi-lità nel programmare sistemi basati su CPU real-time e siste-mi di controllo FPGA.“Dimostrare ad una platea tanto eterogenea come LabVIEWpossa diventare un notevole valore aggiunto se integrato a si-stemi di controllo e automazione avanzata, ha contribuito alsuccesso dell’evento”, commenta Roberto Isernia, TechnicalMarketing Engineer di National Instruments Italy. “La possibi-lità di utilizzare lo stesso linguaggio di programmazione daisistemi SCADA a quelli di controllo basato su FPGA è statapercepita come un altro notevole vantaggio. Inoltre, la formu-la hands-on ha permesso a tutti i partecipanti di provare dipersona prodotti e tecnologie e acquisire nuove competenzein un lasso di tempo ragionevolmente breve”.

Nad

ia A

lbar

ello 8 date in 8 c i t tà i ta l iane: ol t re 200 cors ist i

read

erse

rvic

e.it

n.3

38re

ader

serv

ice.

it n

.337

SCELTI PER VOI ABBIAMO SCELTO PER VOI ALCUNE RISORSE UTILI PER APPROFONDIRE LA VOSTRA CONOSCENZA DI LABVIEW.

LabVIEW on ni.com www.ni.com/labviewLabVIEW on ni.com/italy www.ni.com/labview/iLabVIEW Jobs http://www.labviewjobs.com/The VI Road Show http://viroadshow.blogspot.com

FORU

M

COM

MU

NIT

Y

CON

TEN

UTIILVG.it www.ilvg.it

LabVIEW www.ni.com/labviewzoneLAVA - LabVIEW Advanced Virtual Architects http://forums.lavag.org/home.html

DevZone www.zone.ni.comCommunity on ni.com http://community.ni.com/Mindstorm NXThttp://www.ni.com/academic/mindstorms/community.htm

CORSO DI PROGRAMMAZIONE DEI SISTEMI PAC

ILVGDAY: LA COMUNITÀ DI LABVIEW SI RIUNISCE

FORUM AEROSPAZIO E DIFESA 2007:MISSIONE COMPIUTA

S i è conclusa il 30 maggio la terza edizione del ForumAerospazio e Difesa 2007, appuntamento organizzatoa Roma da National Instruments Italy e che dà spazio

alle voci di riferimento dell’industria italiana nei settoriAerospazio e Difesa.Giunto alla terza edizione, l’evento ha visto la presenza di140 partecipanti, 12 espositori e di un comitato scientificocomposto da primarie aziende di settore.

LE SESSIONIDurante la sessione plenaria, National Instruments ha deli-neato le ultime tendenze del settore, dando enfasi, in parti-colare, all’evoluzione del ruolo di software e hardware nelleapplicazioni militari ed aerospaziali. La keynote di NationalInstruments ha infatti sottolineato la crescente importanzadelle tecnologie commerciali nelle funzioni di test real-time

nel settore, auspicando una sempre maggiore integrazionetra due realtà ormai sempre più vicine, la ricerca industrialee quella condotta in ambito militare.E’ seguito l’intervento del Generale Ispettore PietroFinocchio, direttore generale di Teledife, Direzione delleTelecomunicazioni dell’informatica e delle TecnologieAvanzate, che ha spostato l’attenzione sulle esigenze prati-che di innovazione tecnologica del Settore Difesa in ambitiquali radar, sistemi elettronici, sistemi di telecomunicazione,informatici e di osservazione spaziale.Radar, aerospazio, elettronica per la difesa e telecomunica-zioni per la difesa: queste le quattro sessioni tecniche, pre-sentate dopo la keynote, che sono state introdotte da unrappresentante di aziende leader nel settore Aerospazio eDifesa. Ognuno dei quattro chairman ha illustrato unapanoramica del proprio settore di appartenenza, introdu-

Nad

ia A

lbar

ello

42

03R E P O R T

Grande successo per la ter za ediz ione del l ’eventoorganizzato a Roma da Nat ional Instruments

cendo poi testimoni di casi applicativi reali che, a loro volta,hanno sviluppato il relativo tema presentando problemiaffrontati e successi ottenuti.Tra gli espositori intervenuti, erano presenti alcuni AlliancePartner di National Instruments, rappresentanti del mondoaccademico, Wind River, Selex Communications e aziendeinternazionali. La Poster Session ha ospitato 7 aziende,offrendo loro la possibilità di presentare le proprie applica-zioni tecniche in un contesto più informale ed innovativo.Ha affermato Lino Fiore, Managing Director di NationalInstruments Italy: "National Instruments è orgogliosa diessere stata promotrice del Forum Aerospazio e Difesa2007, un evento diventato ormai momento di incontro fissoper diverse realtà aziendali ed istituzioni del settore. IlForum ha rappresentato un'occasione di interscambio diidee e sinergie che possa promuovere concretamente il‘Sistema Italia’ in questo mercato. E' grazie alla continuaricerca e al confronto costante che possono nascere risulta-ti eccellenti e, fino ad ora, il nostro mercato ha dimostratodi avere tutte le carte in regola per emergere e potersidistinguere per innovazione e tecnologia”.

PROBLEMATICHE SPECIFICHEMa quali sono le principali problematiche di real-time spe-cifiche del settore aeronautico e in che modo NationalInstruments risponde a queste esigenze?“Quando si parla di progettazione e test di sottosistemireal-time si abbraccia un vasto campo di applicazioni: siste-mi idraulici, sottoassiemi di bordo, sistemi servo-meccanicisolo per menzionarne alcuni", ha spiegato AugustoMandelli, Area Sales & Academic Relations Manager diNational Instruments Italy. "Il settore aeronautico è di fatto,per evidenti vincoli di sicurezza e di operatività, tra quelliche pongono maggiormente l’accento su queste problema-tiche. La piattaforma software LabVIEW, assieme ad unaserie di target hardware quali il PXI, il cRIO ed il cFPNational Instruments, permette di affrontare in manierarapida, efficace ed economica le sfide del settore aeronau-tico ed avionico. I moduli Real Time ed Fpga, assieme aquelli per il modeling e la System Identification, in virtù diun unico paradigma di programmazione (parlo dellaGraphical Programming o, nella sua accezione evoluta, delGraphical System Design) ed un unico ambiente, permetto-no di sviluppare con successo le più svariate applicazionireal time – e questo non solo nel settore aeronautico.Inoltre, il continuo sforzo verso l’eccellenza tecnologica edal contempo verso un supporto continuo ed esteso neglianni, fa sì che gli operatori del settore guardino alle nostresoluzioni con estrema confidenza, come testimonianoanche le decine di applicazioni presentate durante ilForum”.Ma i prodotti per il settore aeronautico sono quelli stan-dard o ne è stata eseguita una customizzazione? Mandelli

ha affermato che non è necessaria alcuna customizzazio-ne, in quanto la piattaforma NI di per sé stessa è quantodi più aperto e personalizzabile esiste sul mercato.Saranno i System Integrator e gli utenti finali che, di voltain volta, aggiungeranno il loro know-how specifico e disettore per modellare la nostra piattaforma – questoperaltro in tempi ridotti e con una notevole riusabilità delloro prodotto finale.In generale, i comparti della Difesa, dell’Avionica edell’Aerospazio rappresentano storicamente e strategica-mente alcuni dei più importanti e proficui settori per NI alivello mondiale. Questa attenzione è stata sempre benrecepita dagli operatori del settore, fin dagli albori dellaStrumentazione Virtuale. Basti pensare al concetto diStrumentazione Sintetica (un modulo che può essere ricon-figurato in tempo reale via software nella sua logica perassolvere a diverse funzioni, permettendo di sopperire ainoti ed annosi problemi di logistica ed obsolescenza dellastrumentazione standard) delineato dal DoD Office ofTechnology Transition nel 2002, e che di fatto sposa perfet-tamente il paradigma della Strumento Virtuale coniato da NIalla fine degli anni 80.National Instruments ritiene che dallo sviluppo di soluzioniper il settore aeronautico si otterranno risultati trasferibilianche in altri settori e questo grazie all’importanza del con-cetto di ‘converging technologies’. "Prendiamo ad esempioun moderno sistema di ‘in-vehicle infotainment’ (GPS,GSM/EDGE/UMTS, Video/Audio, DVD, radio, ecc.) ed uncockpit di nuova generazione dei prossimi super-aerei, comel’Airbus 380 o il Boeing Dreamliner", ha concluso Mandelli."Ebbene, le problematiche di design, V&V e testing, al nettodelle varie normative, non differiscono affatto.Tutto ciò portaverso una necessità di progettare e mettere sul mercato pro-dotti sempre migliori, più rapidamente e a costi più conte-nuti: ed in questo NI è assolutamente impareggiabile”.

43

R E P O R T

read

erse

rvic

e.it

n.3

35

Note sull’autoreNadia Albarello, laureata in Lingue Moderne eComunicazione alla Karl Franzens Universität di Graz,Austria, lavora in qualità di Marketing CommunicationsManager presso National Instruments Italy.

44

03A P P U N T A M E N T I

EVENTI NICONTROL DESIGNMilano, 25 settembre

Roma, 27 settembre

EVENTI EDIZIONI FIERA MILANOC2 – CONTROL & COMMUNICATIONMilano, 20 settembre

Bari, 25 settembre

FOCUS EMBEDDEDRoma, 8 novembre

Milano, 13 novembre

FIERESAVEVerona, dal 23 al 25 ottobre

BIMECMilano, dal 14 al 17 novembre

VISIONStoccarda, dal 6 all'8 novembre

PRODUCTRONICAMonaco, dal 13 al 16 novembre

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

CORSI DI LABVIEWLABVIEW BASE I: INTRODUZIONEMilano: dal 17 al 19 settembre

dal 12 al 14 novembre

dal 10 al 12 dicembre

Roma: dal 24 al 26 settembre

dal 15 al 16 ottobre

dal 5 al 6 novembre

dal 10 al 12 dicembre

Padova: dal 3 al 5 ottobre

LABVIEW BASE II: SVILUPPOMilano: dal 20 al 21 settembre

dal 15 al 16 novembre

Roma: dal 27 al 28 settembre

dal 8 al 9 novembre

Padova: dal 25 al 26 ottobre

LABVIEW INTERMEDIATE I:TECNICHE DI DESIGN PROFESSIONALIMilano: dal 24 al 26 settembre

dal 3 al 5 dicembre

Roma: dal 8 al 10 ottobre

Padova: dal 28 al 30 novembre

LABVIEW INTERMEDIATE II: CONNETTIVITA’Milano: dal 18 al 19 ottobre

dal 6 al 7 dicembre

LABVIEW ACQUISIZIONE DATI E CONDIZIONAMENTO DEI SEGNALIMilano: dal 8 al 10 ottobre

dal 26 al 28 novembre

Roma: dal 22 al 24 ottobre

Padova: dal 7 al 9 novembre

LABVIEW SVILUPPO DI APPLICAZIONI REAL-TIMEMilano: dal 5 al 7 novembre

LABVIEW ADVANCED I: ARCHITECTUREMilano: dal 19 al 21 novembre

MANIFESTAZIONEGMEE 2007Torino, dal 6 all'8 settembre

INTERVISTANegli ultimi tre anni Magneti Marelliha partecipato a corsi in sede dedi-cati a LabVIEW. Abbiamo raccolto leimpressioni di Sergio Mo, TestingManager - divisione testing R&D diMagenti Marelli Sistemi Elettronici.

D: Come è organizzato ilgruppo R&D di LabVIEW?

R:La nostra organizzazione hauna struttura tipicamente pira-

midale, che cambia nel tempo.

D: Ci descriva la vostra espe-rienza…

R:Magneti Marelli SistemiElettronici da molti anni utilizza LabVIEW come

software per tutti gli sviluppi dei programmi di Test; èpertanto molto importante investire in formazione pergarantire le conoscenze adeguate dell’ambiente soft-ware e poterne sfruttare al meglio le potenzialità. Ilnostro dipartimento è sicuramente il maggior utilizza-tore di LabVIEW ma anche i nostri progettisti hardwa-re e software hanno iniziato ad utilizzarlo e pertanto achiedere formazione. Da alcuni anni vengono organiz-zati corsi presso le nostre sedi con i formatori NI.Questo servizio è svolto in maniera molto professiona-le sia per l’ottima preparazione dei docenti, sia per lacompletezza delle attrezzature necessarie per lo svolgi-mento del corso. Il corso svolto nella nostra sede ci per-mette di evitare spostamenti del personale, di coinvol-gere il maggior numero di persone e di essere vicini ainostri laboratori ed alle nostre apparecchiature di test.La tipologia dei corsi richiesti spazia dal corso diLabVIEW base, all’intermediate fino all’advanced aseconda delle esigenze e delle conoscenze acquisitedai partecipanti.

D: Come applicate nello specifico le espe-rienze acquisite? Quali sono i benefici a

livello strategico ed economico derivati dallascelta?

R:La nostra organizzazione lavora per i maggioriCar Maker a livello mondiale ed abbiamo sedi

che operano nel Nord e Sud America, Europa ed Asia.

LabVIEW è per noi diventato il lin-guaggio universale di Test che vieneutilizzato su tutte le sedi di Progetto eProduzione. Questo ci permette di svi-luppare applicazioni ad esempio inEuropa e trasferirle agli stabilimenti intutto il mondo velocemente, senzaproblemi, visto che chi riceve l’applica-zione ne comprende appieno i conte-nuti. Questo punto diventa moltoimportante per poter completare lamessa a punto dei programmi con laproduzione ed essere pronti almomento giusto, evitando rifacimenti,fraintendimenti e pertanto perdite ditempo e di denaro.

D: Parliamo ora dei beneficiderivati dai corsi…

R:La formazione è un elemento essenziale per otte-nere dei risultati, pertanto è mia cura accogliere

le richieste e pianificare i corsi per le singole persone.La creazioni di classi omogenee e l’ottima interattivitàcon i docenti permette di coprire le esigenze di tutti. Irisultati li vediamo sulle applicazioni dove i tempi disviluppo si accorciano e la capacità individuale di svi-luppo o risoluzione di problemi aumenta.

D: Avete condotto survey per verificare ilgrado di soddisfazione?

R:Alla fine di ogni corso i partecipanti compilanoun questionario per valutare la qualità della for-

mazione ricevuta e l’applicabilità negli sviluppi in corso(valutazione a caldo). La stessa scheda viene ripresaper verificare i risultati dopo circa 6 mesi (valutazionea freddo) e devo dire che i risultati sono stati ad oggisempre molto buoni a conferma della buona qualitàdel lavoro svolto dai formatori NI, non solo in terminidi contenuti ma anche di capacità di trasferirli ai par-tecipanti.

D: Progetti futuri?

R:Utilizzare LabVIEW su microprocessori, in partico-lare su microprocessori di telecamere intelligenti

in modo diminuire i tempi di test per i prodotti doveutilizziamo la Visione.

45

A P P U N T A M E N T I

read

erse

rvic

e.it

n.3

57

46

03L A B V I E W E L A V O R O

AAA Conoscete bene LabVIEW? Date un’occhiata alle offerte di lavoro che abbiamo selezionato da ILVG.it…

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 labora-

torio inclusi i sistemi di aquisizione dati e

controllo (es. LabVIEW)

• la proposta e la realizzazione di attrezza-

ture di test complesse

• la valutazione dell'attività di testing più

idonea alla verifica della qualità ed affida-

bilità 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 compo-

nenti meccanici e elettromeccanici, idrau-

lici e/o pneumatici, inglese fluente.

I candidati ambosessi (L.903/77) sono

invitati a leggere su www.adecco.it l'infor-

mativa sulla privacy (art.13 D. Lgs.

196/03). Facsimile di domanda è disponi-

bile 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

Titolo di studio richiesto: Laurea speciali-

stica / Vecchio ordinamento - Ingegneria

Lingue conosciute: Inglese - Ottimo

http://lavoro.corriere.it/

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 pro-

dotti e nella conquista di nuovi mercati.

Stiamo cercando degli ingegneri per delle

posizioni di sviluppo e progettazione

Software / Hardware all’interno del nostro

dipartimento software. I nostri prodotti

software, principalmente applicazioni nel

campo della microscopia automatizzata ed

dell’analisi delle immagini, sono sviluppa-

ti in LabVIEW, integrando anche moduli

scritti in altri linguaggi. Stiamo cercando

dei candidati fortemente motivati, interes-

sati 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 pro-

grammazione di basso ed alto livello: C,

C++, Java, C#, UML, dei protocolli di

comunicazione di rete, ed in particolare

dimestichezza nell’uso e realizzazione di

driver e dll. La conoscenza dell’ambiente

LabVIEW, e di nozioni di manipolazione ed

analisi delle immagini è considerata prefe-

renziale, ma non vincolante.

Data: 21/07/2007

Provincia/Città: Quarto – NA

Inquadramento: Prima esperienza

Settore di impresa:Ricerca - Sviluppo

Area funzionale: IT/Software

Zona di residenza: Campania

Permesso di lavoro: UNIONE EUROPEA

Studi minimi: Laurea

Tipo di contratto:

Lavoro a progetto Full-Time.

www.lavoro.org

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 indu-

striali) 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 pro-

gettazione e la produzione sviluppano

sistemi di trazione, ausiliari, controllo e

diagnostica per treni ad Alta Velocità,

EMU, Tram, Metropolitane e veicoli elettri-

ci per il trasporto urbano.

Requisiti:

Per lo sviluppo del business, richiede l'in-

serimento 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 medesi-

mo 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

47

L A B V I E W E L A V O 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 det-

tagliato CV con foto tessera allegata, in-

dicando il riferimento della posizione e l'au-

torizzazione al trattamento dei dati perso-

nali (D. Lgs. 30 giugno 2003, n.196), via po-

sta, fax o e-mail a: [email protected]

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 realiz-

zare firmware per schede aventi le se-

guenti funzioni/caratteristiche

Requisiti:

• Microcontrollore con flash a bordo oppu-

re eprom esterna

• Memoria (ram, e2prom) per l’archivia-

zione dei dati e parametri

• RTC •Acquisizione dati tramite uno o più

ingressi analogici ad alta risoluzione colle-

gati a traduttori a basso livello (celle di cari-

co, trasduttori di pressione, strani gauges)

oppure ad alto livello(trasduttori potenzio-

metrici, 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 con-

trollo 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 princi-

pali 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 condiziona-

mento 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, even-

tualmente 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

all’indirizzo e-mail:

[email protected] 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

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, espe-

rienza pregressa nel settore, buona cono-

scenza Visual Basic, LabVIEW.

Disponibile da: 25/07/2007

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 espe-

rienza, da inserire in laboratorio metrolo-

gico per la gestione/organizzazione o l'e-

secuzione di test di validazione/qualifica-

zione su prodotti elettronici, in particolare

prove di EMC.

Gradita conoscenza di programmazione di

microprocessori, Assembler, C e LabVIEW.

Gradito Inglese.

www.parmaitaly.it/gmconsulting

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 parti-

colare di sistemi EOL e ICT. Conoscenza di

sistemi basati su architetture National

Instruments e linguaggio LabVIEW. Il can-

didato gestirà un piccolo reparto e si

inter faccierà con la direzione tecnica.

Gradita provenienza dal settore automoti-

ve e conoscenza lingua Inglese.

www.parmaitaly.it/gmconsulting

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.itSede Operativa - Via M. Gorki 69, 20092 Cinisello Balsamo (Mi)tel. +39 02 66034.1 fax +39 02 66034.238

Direzione Sergio Maggioni PresidenteCostante Casali Amministratore Delegato Alberto Taddei Publisher

Comitato Nadia Albarello, Matteo Bambini, di redazione Matteo Foini, Alessandro Ricco,

Redazione Alberto Taddei Direttore ResponsabileValerio Alessandroni Direttore Tecnico • [email protected] 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 Bimage.it Progetto grafico e Impaginazioneproduzione Franco Tedeschi Coordinamento grafici

Alberto Decari Coordinamento DTPSate Zingonia Verdellino - BG - StampaFotlito 73 Fotolito

Pubblicità Giuseppe De Gasperis Sales Managertel. 02-66034223

Agenti Italia:PIEMONTE/VALLE D'AOSTA • R. Romeo/Publikappa • tel: 011-723406 • fax: 011-723.406 • cell 335-5304196VENETO, TRENTINO ALTO ADIGE, FRIULI VENEZIA GIULIA • Idelfonso Elburgo •tel: 049-8642.988 • fax: 049-8642989 • cell 328-8855203CENTRO SUD • Italia 3000 • Andrea Cesarano •tel: 02-66034.262 • fax: 02-700431547 • cell 335-6473911

International SalesU.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-6330899GERMANIA e AUSTRIA: Mediaagentur • Adela Ploner •tel: +49-8131-3669920 • fax: +49-8131-3669929USA: Huson European Media Usa • Ralph S. Lockwood •tel: +1-408-8796666 • fax: +1-408-8796669TAIWAN: Worldwide Services • Stuart Phillips-Laurie • tel: +886-4-2325-1784 • fax: +886-4-2325-2967

Abbonamenti N. di conto corrente postale per sottoscrizione abbonamenti:48199749 intestato a:Edizioni Fiera Milano SpA, Via Salvatore Rosa 14, 20156 Milano. Si accettano pagamenti anche con le principali carte di credito.Per gli utenti Developer Suite e standard Service Program di National Instruments è già incluso l’abbonamento alla rivista

Abbonamento annuale (4 numeri): E 20,00Abbonamento per l'estero (4 numeri) E 40,00Prezzo 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. Autorizzazionealla pubblicazione del tribunale di Milano n° 754 del 11/12/2006. Tutti i diritti di riproduzione degli articoli pubblicatisono riservati. Manoscritti, disegni e fotografie non si restituiscono. LabVIEW World ha frequenza trimestrale, per un tota-le di 4 numeri all'anno. Tiratura del presente numero: 3.000 copie.

INFORMATIVA AI SENSI DELCODICE 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 garan-tire che il trattamento dei Vostri dati personali si svolga nel rispettodei diritti,delle libertà fondamentali e della dignità delle persone,conparticolare riferimento alla riservatezza e all’identità personale.

Vi informiamo, ai sensi dell’art. 13 del Codice, che i dati personali daVoi forniti ovvero altrimenti acquisiti nell’ambito dell’attività da noisvolta, potranno formare oggetto di trattamento, per le finalità con-nesse all’esercizio della nostra attività. Per trattamento di dati per-sonali si intende la loro raccolta, registrazione, organizzazione, con-servazione, elaborazione, modificazione, selezione, estrazione, raf-fronto, utilizzo, diffusione, cancellazione, distribuzione, interconnes-sione e quant’altro sia utile per l’esecuzione del Servizio, compresala combinazione di due o più di tali operazioni.

Il trattamento dei Vostri dati per le finalità sopraindicate avrà luogoprevalentemente con modalità automatizzate ed informatiche, sem-pre nel rispetto delle regole di riservatezza e di sicurezza previste dal-la legge, e con procedure idonee alla tutela delle stesse. Il titolare deltrattamento dei dati personali è Edizioni Fiera Milano S.p.A., consede legale in Milano, nella persona del legale rappresentante;responsabili del trattamento sono i dipendenti e/o professionisti inca-ricati da Edizioni Fiera Milano S.p.A., i quali svolgono le suddette atti-vità sotto la sua diretta supervisione e responsabilità.

Il conferimento dei dati personali da parte Vostra è assolutamentefacoltativo; tuttavia l’eventuale rifiuto ci rende impossibile l’esecu-zione di alcun adempimento contrattuale.I dati, o alcuni di essi, per i fini di cui dianzi, potranno essere comu-nicati a:• società appartenenti al medesimo gruppo societario di cui fa par-te Edizioni Fiera Milano S.p.A.;• soggetti esterni che svolgano funzioni connesse e strumentali all’o-peratività del Servizio, come, a puro titolo esemplificativo, la gestio-ne del sistema informatico, l’assistenza e consulenza in materia con-tabile, amministrativa, legale, tributaria e finanziaria;• soggetti cui la facoltà di accedere ai dati sia riconosciuta da dispo-sizioni di legge o da ordini delle autorità.

Un elenco dettagliato dei predetti soggetti è disponibile pressoEdizioni Fiera Milano S.p.A.Vi informiamo, inoltre, che potrete consultare, modificare, opporVi ofar cancellare i Vostri dati o comunque esercitare tutti i diritti che Visono riconosciuti ai sensi dell’art. 7 del Codice, inviando una letteraraccomandata a Edizioni Fiera Milano S.p.A. – Via Salvatore Rosa, 14- 20156 – Milano.

Se volete consultare il testo completo del Codice in materia di pro-tezione dei dati personali, visitate il sito ufficiale dell’AutoritàGarante www.garanteprivacy.it

0236519123

READER SERVICE

Dati sul lettore

Nome

Cognome

Azienda

Indirizzo Azienda

Cap Città

Prov. Nazione

Tel.

Fax

e-mail

Consenso ai sensi dell’art.23 del D.Lgs. n.196 del 30 giugno 2003 (riportati anche sul Vs. sitowww.vnu.it), esprimo il consenso a che i dati qui contenuti vengano trattati, comunicati e diffusi da voie/o da Vs. aventi causa per l'attività di promozione e diffusione dei Vs. prodotti ed anche messi a dispo-sizione di operatori qualificati e/o aziende del settore.

Sempre più al passo con i tempi, LabVIEW WORLD è la prima rivistain Italia a fornirvi il servizio di reader service on line. Ora è possibile rice-vere maggiori informazioni su prodotti e servizi presentati negli articolie/o inserzioni pubblicitarie LabVIEW WORLD semplicemente regi-strandosi al sito:

WWW.READERSERVICE.IT Compilate la cartolina virtuale e noi provvederemo a inoltraretempestivamente 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:

NUMERO DELLA RIVISTA:

NUMERI DI READER SERVICE

3

www.READERSERVICE.IT

DA OGGI IL READER SERVICE

E’ SUL WEB!

DA OGGI IL READER SERVICE

E’ SUL WEB!

EDIZIONI FIERA MILANO EDI

FIERA MILANO EDIZION

MILANO EDIZIONI F

FIERA MILANO

EDIZIONI F

FIERA

READE

VICE

SERVICE

READER SE

DER SERVICE

READER SERVICE

READER SERVICECE

READER SERVICE READ

IL SERVIZIO È GRATUITO

Una progettazione 10 volte più rapidacon Graphical System Design

“Grazie alla tecnologia Graphical System Design di LabVIEW e CompactRIO di National Instruments,siamo riusciti a progettare il prototipo di unacentralina di controllo elettronico di una motociclettain soli tre mesi. L’utilizzo di strumenti tradizionaliavrebbe richiesto due anni e mezzo.”

– Carroll Dase, design engineerDrivven, Inc.

Scopri come sviluppare i tuoi progetti ancora più velocementeattraverso una Presentazione Multimediale di Analog Devices,Celoxica e Maplesoft visitando il sito ni.com/embedded.

Graphical System DesignVelocizza 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.

> Piattaforme di distribuzione robuste

> Networking distribuito> Interfacce uomo-macchina > Gestione di firmware

> Driver e moduli di I/O > Hardware FPGA commerciale > Integrazione di codice C e VDHL> Strumenti di validazione

del design

> Control design> Librerie di proprietà intellettuali> Progettazione filtri digitali> Simulazione sistemi dinamici

02 41 309 277

DESIGN PROTOTYPE DEPLOY

National Instruments ItalyTel: 02 413091 • Fax: 02 41309215 • Tel: 06 520871 (Roma)[email protected] • ni.com/italy

© 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

System Design tradizionale Graphical System Design

readerservice.it n.17288