Sei sulla pagina 1di 52

ISSN 1972-3008

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

FEBBRAIO

2008

IL FUTURO DI LABVIEW PROGETTAZIONE DI SOFTWARE PER IL CONTROLLO MACCHINA RICHIAMARE SHARED LIBRARY IN LABVIEW

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

readerservice.it n.19995

SCENARIO
05

UNA RIVISTA CHE CRESCE CON VOI


priamo leditoriale di questo numero 5 salutando tutti i lettori ma soprattutto rivolgendo un caloroso benvenuto a tutti coloro che stanno sfogliando per la prima volta LabVIEW World. Dovremmo farlo sempre, perch la rivista viene letta da un numero di persone in costante crescita: grazie agli sforzi di National Instruments e di Fiera Milano Editore, al passaparola fra gli adepti di LabVIEW ed alla presenza agli eventi ed alle fiere specializzate pi importanti, stiamo infatti raggiungendo una platea davvero molto ampia. Siamo entrati in nuove zone geografiche (soprattutto nellItalia del Sud), siamo conosciuti in nuovi settori applicativi, troviamo spazio in aziende di ogni dimensione, negli studi di progettazione, in universit, in scuole superiori. Al di fuori del terreno tradizionale dove LabVIEW appezzato ed utilizzato (quello degli sviluppatori, dei tecnici e dei ricercatori), fra i nostri lettori in forte espansione soprattutto il comparto degli studenti. A dimostrazione della forza pedagogica del pi famoso linguaggio di programmazione grafica del mondo, capace di aprire la mente e di dare gli strumenti per esprimersi correttamente a tutti coloro che devono misurare, automatizzare o monitorare qualsiasi tipo di variabile fisica, macchina o sistema. Ed incredibile vedere, in occasioni come NIDays o NIWeek, il numero di applicazioni innovative che gli studenti sanno proporre, dimostrando una conoscenza davvero approfondita di LabVIEW e della strumentazione virtuale. logico, quindi, che proprio il mondo scolastico ed accademico stia contribuendo non solo a dare le maggiori soddisfazioni a LabVIEW World, ma anche a formare quella massa critica che sta trasformando la rivista da magazine per addetti ai lavori, come era ancora nei primissimi numeri, a magazine di grande diffusione. Le conseguenze di questa trasformazione non sono affatto trascurabili. Per esempio, quando cresce il numero di lettori la rivista acquista un nuovo spessore: nelle idee, nei contenuti, nella sua capacit di diventare il punto di riferimento di una comunit distribuita sul territorio. Una comunit molto attenta, che inizia a partecipare attivamente richiedendoci informazioni sugli articoli pubblicati e, soprattutto, inviandoci un prezioso feedback: perch non parlate anche di questo argomento? Perch non ritornate su quel particolare concetto con qualche esempio concreto? E cos via, in un ciclo virtuoso che rende dinamica e stimolante la vita di redazione. Cari lettori, questo pu essere il vostro momento. Comunicateci le vostre critiche, i vostri desideri, i vostri spunti. Descriveteci che cosa avete realizzato con LabVIEW. Partecipate anche voi alla trasformazione di LabVIEW World! Potete farlo, per esempio, iscrivendovi al Forum ILVG.it (ma come, non lo avevate ancora fatto?) oppure inviando i vostri messaggi alla redazione. Il 2008 sar un anno importante per LabVIEW World: vorremmo quindi conoscervi meglio, per offrirvi un prodotto sempre pi attento alle vostre esigenze, ricco di informazioni e in grado di fornirvi spunti utili per le vostre attivit di ricerca, sviluppo, produzione, collaudo e/o formazione.

SOMMARIO
05
SHARED LIBRARY 29 RICHIAMARE IN LABVIEW

01 UNA RIVISTA CHE CRESCE CON VOI


La comunit dei nostri lettori in continua espansione

Vediamo come utilizzare il Call Library Function Node per richiamare DLL su Windows

34 DALLA CARTA AL WEB

03 IL FUTURO DI LABVIEW

Link ad ar ticoli di approfondimento e altri documenti disponibili sul web

Parla James Truchard, cofondatore di National Instruments e coideatore di LabVIEW

36 LA VOCE DEGLI UTENTI

NUOVA STRUTTURA PER 06 UNA LA GESTIONE DELLA MEMORIA IN LABVIEW


Luso della struttura In Place Element aumenta lefficienza della memoria

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

BIAS 2008 LE NUOVE FRONTIERE 38 AL DELLA STRUMENTAZIONE


Sta per aprire ledizione 2008 della Biennale Internazionale dellAutomazione, Strumentazione, Microelettronica e ICT per lindustria

IL CROSS-LINKING 09 PREVENIRE DI VI CON IL NUOVO LABVIEW PROJECT POTENZIATO


LabVIEW 8.5 include nuovi tool per aiutare a prevenire il cross-linking

TEST SUMMIT: 40 AUTOMATED VIRTUALMENTE PERFETTO


La quarta edizione dellevento annuale organizzato da National Instruments si spostata online

NOVITA DEL PDA MODULE DI 12 LE LABVIEW 8.5


Il modulo PDA di LabVIEW 8.5 contiene molte nuove funzionalit e correzioni di bug

42 NASCE LABVIEW TOOLS NETWORK


Un archivio centralizzato per oltre 400 strumenti e componenti aggiuntivi di LabVIEW

DI SOFTWARE 14 PROGETTAZIONE PER IL CONTROLLO MACCHINA


Descriviamo unarchitettura di progettazione software basata sulle macchine a stati

44 APPUNTAMENTI 45 INTERVISTA

LOW COST DI 22 SISTEMA MONITORAGGIO MACCHINARIO ROTANTE


Il monitoraggio delle vibrazioni permette di identificare i malfunzionamenti

Oltre ad organizzare propri corsi e seminari, National Instruments sar presente a numerosi eventi

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

25 MIGLIORARE UN VI ESISTENTE

Spieghiamo alcuni metodi per eseguire il refactoring del software

47 LABVIEW E LAVORO
SEI UN FAN DI LABVIEW?

Proposte concrete per coloro che sanno utilizzare LabVIEW

AAA

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

ENTRA NELLA NOSTRA COMUNIT!


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

A TU PER TU

05

IL FUTURO DI LABVIEW
Valerio Alessandroni

In occasione degli NIDays, e prima dellannuale conferenza NIWeek di Austin, abbiamo lonore di ospitare sulle nostre pagine James Truchard, il mitico Dottor T, cofondatore di National Instruments e ideatore, insieme a Jeff Kodosky, di LabVIEW

Pur senza entrare nel merito di progetti straD : tegici delicati, che non possono essere ovviamente divulgati, pu descriverci a grandi linee che cosa possiamo attenderci, da oggi al 2010, in termini di nuovi prodotti e tecnologie?

R:

Grazie alla nostra visione di progettazione grafica di sistema, abbiamo un focus ben definito sullinnovazione in alcune aree. Per esempio, contiamo di ampliare laccessibilit agli Fpga per gli esperti dei singoli settori, offrendo loro nello stesso tempo maggiori prestazioni. Vi quindi il settore della strumentazione RF, dove introdurremo prodotti di prima classe ed aumenteremo le capacit software. Quindi, metteremo a disposizione piattaforme di rilascio pi complete, per la nostra crescente base di clienti OEM, basate sulla nostra piattaforma RIO differenziata. Infine, continueremo ad offrire, agli esperti dei singoli settori, tool intui-

tivi che permetteranno loro di accedere alle tecnologie pi avanzate e pi importanti nei campi del test, del controllo e della progettazione. I prossimi anni saranno molto interessanti, perch il ritmo di innovazione tecnologica, in continuo aumento (soprattutto per quanto riguarda le tecnologie embedded), render possibili sistemi ciber-fisici che miglioreranno la nostra vita in molti modi diversi, assai pi di quanto sia avvenuto in passato. Lapplicazione dei sistemi embedded si estender in nuove aree e, nello stesso tempo, diventer pi complessa che in passato. Molte di queste nuove applicazioni sono inimmaginabili persino oggi, ma la velocit dellinnovazione accelerer ed avr un impatto globale, a cui sar entusiasmante prendere parte. La chiave di volta nei tool software, che offriranno agli esperti dei singoli settori la produttivit necessaria per sfruttare pienamente le nuove opportunit dei sistemi embedded. Il ruolo che NI giocher si baser sul nostro approccio di progettazione grafica di sistema. Esso focalizzato su un obiettivo molto chiaro: mettere in grado gli esperti dei singoli settori, in tutti i campi, di essere il pi possibile produttivi nella progettazione e nellinstallazione di questi sistemi.

Nel 2008 verranno introdotte release imporD : tanti? Che cosa possiamo attenderci dalla nuova versione di LabVIEW che verr lanciata questanno?

R:

Afferma James Truchard: I prossimi anni saranno molto interessanti, perch il ritmo di innovazione tecnologica render possibili sistemi ciber-fisici che miglioreranno la nostra vita in molti modi diversi

Il nostro attuale sviluppo di LabVIEW si basa su un ottimo equilibrio tra feedback degli utenti esistenti, utilizzabilit, stabilit ed integrazione di tecnologie di punta, incluse le piattaforme multicore e le capacit wireless. Il team di sviluppo di LabVIEW sta anche lavorando con impegno per sfruttare molti degli attuali trend industriali nel mercato embedded, creando e favorendo uno sviluppo allinterno della comunit finalizzato a capacit avanzate IP (intellectual property) e a virgola fissa, integrando il silicio di prossima generazione ed assicurando una stretta connettivit con tecnologie e prodotti complementari. La piattaforma LabVIEW continua inoltre a svilupparsi sui modelli di calcolo espansivi offerti dalla messa a punto dei nostri moduli, incluse le capacit di statechart, real-time, Fpga, simulazione e LabVIEW MathScript. Infine, potremo vedere che LabVIEW continuer ad aiutare gli esperti di settore a sviluppare in modo pi rapido ed efficiente in

A TU PER TU

05

BIOGRAFIA
Il dr. James Truchard, presidente e CEO di National Instruments, stato cofondatore dellazienda nel 1976, mentre lavorava presso lUniversit del Texas ad Austin. Sotto la guida di Truchard, National Instruments ha pionierizzato lo sviluppo del software e dellhardware della strumentazione virtuale, che ha rivoluzionato il modo con il quale i tecnici approcciano le applicazioni di misura e automazione. Nel 1986, Truchard e Jeff Kodosky hanno inventato il software di sviluppo grafico LabVIEW. Mentre NI cresciuta, passando da un team di soli tre uomini ad unorganizzazione globale che ha oggi oltre 4.000 dipendenti, Truchard ha gestito lazienda con un approccio deliberatamente conservativo, che ha portato ad un costante successo. Egli ha promosso linnovazione, la crescita e lespansione in unimpresa mondiale di grande successo, pur mantenendo lo spirito imprenditoriale che aveva caratterizzato i primi anni di attivit di National Instruments. Grazie a ci, NI cresciuta costantemente nella sua storia ormai trentennale. Truchard ed il suo team di management hanno creato una cultura aziendale vincente, tanto che la rivista Fortune ha assegnato a NI il titolo di una delle 100 migliori aziende per cui lavorare in America negli ultimi otto anni. Truchard anche un leader industriale riconosciuto. Nel 2007 stato eletto membro della National Academy of Engineering, cosa che largamente considerata la massima onorificenza nella professione ingegneristica. Egli uno dei soli 156 Texani ad essere stato eletto nella storia dellAccademia. Truchard stato anche nominato The University of Texas Distinguished Engineering Graduate e, nel 2003, stato ammesso alla Royal Swedish Academy of Engineering Sciences. Nel 2002, la rivista di elettronica Electronic Design ha inserito Truchard nella sua Engineering Hall of Fame e, nel 2001, la societ di consulenza di mercato Frost & Sullivan ha onorato Truchard come CEO of the Year per il settore del test and measurement. Inoltre, la rivista Worth ha eletto Truchard uno dei migliori CEO per tre anni consecutivi, sottolineando il suo focus su crescita e innovazione a lungo termine. Mentre dirige con successo linnovazione dellazienda nel software e nellhardware, Truchard partecipa a molte organizzazioni comunitarie. Per esempio, egli membro ed ex presidente dellEngineering Foundation Advisory Council, collabora strettamente con lUniversity of Texas ad Austin come membro del Chancellor's Council ed membro dellElectrical and Computer Engineering Visiting Committee delluniversit. Truchard anche membro fondatore dellAustin Software Council ed stato membro dellAdvisory Council del Governatore del Texas Rick Perry sulla Digital Economy. Truchard anche un sostenitore attivo del programma NI LEGO Mindstorms che, insieme alla Tufts University ed alla Pitsco LEGO Educational Division, cerca di introdurre gli studenti di ogni et alle basi dellingegneria e dellinformatica. Nel 2005, il Governatore Perry ha chiesto a Truchard di presiedere il Texas Science, Technology, Engineering, and Math Industry Advisory Council, che affronta direttamente il declino di interesse e di preparazione dei giovani nei confronti di una carriera in campi tecnici. Prima di fondare NI, Truchard ha lavorato come managing director della divisione misure acustiche degli Applied Research Laboratories presso lUniversity of Texas ad Austin. Truchard ha un dottorato in ingegneria elettrotecnica, nonch un Master of Science ed un Bachelor of Science in fisica, tutti conseguiti presso lUniversity of Texas ad Austin. Nella comunit NI, James Truchard familiarmente noto come Dottor T.

anche principali fornitori di silicio, come Analog Devices, ARM e Freescale Semiconductor. Infine, mentre NI continua ad estendere la portata delle sue applicazioni, anche il ruolo del programma Alliance Partner di National Instruments in espansione e della fedele comunit LabVIEW cresce per importanza ed impatto. Per facilitare questa crescita nel futuro, abbiamo costruito una rete di tool di terze parti supportati per organizzare, certificare e promuovere questi tool di terze parti.

quali nuove aree applicative si espander D: In LabVIEW?

R:

Negli ultimi 22 anni, la risposta migliore a questa domanda lhanno data gli utenti LabVIEW - portando LabVIEW nel Large Hadron Collider del CERN, sotto loceano, nello spazio ed in modo autonomo in territori vergini. Parlando in modo pi formale, siamo entusiasti delle nuove capacit di LabVIEW che lo rendono ideale per nuove aree come la progettazione ed i test di alto livello nel campo delle comunicazioni, la vera progettazione embedded, la robotica e la fisica delle alte energie. Ma LabVIEW sta trovando applicazione anche come piattaforma per lingegneria verde a livello globale, permettendo di risparmiare energia e di prevenire linquinamento.

Oggi, LabVIEW un linguaggio universale D : che permette agli sviluppatori ed ai tecnici di tutto il mondo di parlare fra loro, scambiare idee e capirsi. Avevate previsto un tale successo planetario? Che responsabilit sentite di avere per mantenere e migliorare ulteriormente un risultato di questa rilevanza?

tutto il mondo, permettendo a tecnici e ricercatori meccanici, meccatronici, elettrici, biomedicali e di altre specializzazioni di accedere ai progressi tecnologici pi avanzati.

D:
R:

La piattaforma LabVIEW sta diventando sempre pi integrata con prodotti di terze parti. Questa tendenza allintegrazione sar confermata anche in futuro? In caso affermativo, che tipo di tool state attualmente prendendo in considerazione?

R:

Fin dallinizio, LabVIEW ha sempre fatto da battistrada al mercato del test e della misura con driver per strumentazione e connettivit pronti alluso. Infatti, questanno raggiungeremo la quota record di ben 6.000 driver sulla nostra rete di driver per strumentazione, compresa la connettivit con oltre 250 fornitori differenti. Mano a mano che la nostra visione e le capacit dei nostri prodotti sono evolute oltre il test and measurement, il nostro focus sulla progettazione grafica di sistema ha facilitato la creazione ed il continuo supporto di tool embedded e di progettazione di terze parti, tra cui il software Simulink e MATLAB di The MathWorks, SolidWorks ed

Effettivamente, ci eravamo preparati a raggiungere qualcosa di cos importante come LabVIEW diventato semplicemente non sapevamo sempre come arrivarci. Prima che LabVIEW fosse concepito nelle menti di Jeff Kodosky e mia, mi ero prefisso il semplice obiettivo di Fare per i tecnici ci che il foglio di calcolo aveva fatto per gli analisti finanziari. Nei primi anni 80 il settore finanziario iniziava a vedere i benefici offerti dalluso del software per eseguire calcoli che in precedenza erano impossibili o irragionevolmente improduttivi. Tenendo presente questo obiettivo, abbiamo riunito alcuni degli sviluppatori pi capaci per creare quello che oggi conosciamo come LabVIEW. Ma, ancora una volta, siamo soprattutto entusiasti ed orgogliosi dei nostri clienti per quello che sono riusciti a fare con la piattaforma LabVIEW. Sentiamo assolutamente una grande responsabilit non solo nel proseguire un costante miglioramento, ma anche nellintrodurre importanti innovazioni per rendere ancora pi autonoma la comunit. Finch i nostri tecnici rimarranno entusiasti della tecnologia e cercheranno di migliorare la nostra vita

Readerser vice.it n. 501

Brad
{
QUI LA VITA DURA.
Pi lambiente industriale lavora in condizioni difcili e pi aumenta la necessit di disporre di prodotti Brad allinterno della rete. Forniamo i prodotti pi resistenti e afdabili adatti alle applicazioni pi esigenti. Offriamo una gamma completa di prodotti per tutte le reti, quali, ad esempio, DeviceNet , PROFIBUS e lemergente Industrial Ethernet per il plant oor. Indipendentemente dai componenti che utilizzate nelle Vostre applicazioni, consentiteci di diventare il Vostro partner principale: BradCommunications, BradConnectivity , BradControl e BradPower.
A presto 25-30 Maggio 2008 Fieramilano, Rho

Brad: il potenziamento dellinfrastruttura industriale tramite prodotti e soluzioni...tramite lautomazione, linnovazione risultati e i.

readerservice.it n.19890
woodhead.com/automation
2008 Molex

Contact: +39 026 64 29 61

W H AT S N E W

05

UNA NUOVA STRUTTURA PER LA GESTIONE DELLA MEMORIA IN LABVIEW


a cura di Matteo Foini

Molte operazioni comuni in LabVIEW, come manipolare un elemento di un array e inserire il valore risultante nello stesso punto, richiedono la creazione di copie dei dati e il mantenimento di tali valori in memoria. Questo aumenta luso della memoria

on LabVIEW 8.5, potete utilizzare la struttura In Place Element per accedere in modo efficiente agli elementi presenti allinterno di complesse strutture dati: per esempio, eseguire operazioni su un elemento presente allinterno di un array, un cluster,

un variant o una forma donda senza che il compilatore di LabVIEW debba fare copie dei dati e mantenerle in memoria. La struttura In Place Element opera infatti sui dati e li restituisce a livello della stessa locazione di memoria.

USO DELLA STRUTTURA IN PLACE ELEMENT PER AUMENTARE LEFFICIENZA


La struttura In Place Element pu eseguire una variet di comuni operazioni LabVIEW in modo pi efficiente rispetto ai tradizionali metodi di program-

Figura 1 - Limmagine descrive una semplice situazione nella quale vengono eseguite operazioni su un elemento di un array ed il risultato viene riposizionato nella stessa posizione dellarray

Figura 2 - Potete guadagnare efficienza rimpiazzando un elemento di un array con la struttura In Place Element

mazione LabVIEW. La fig. 1 descrive uno scenario nel quale potete utilizzare la struttura In Place Element per migliorare lefficienza di un VI. LabVIEW indicizza un array di interi a 32 bit senza segno, incrementa il terzo elemento dellarray e rimette lelemento nella stessa posizione dellarray. Per rimettere il nuovo valore nello stesso array, la funzione Replace Array Subset richiede che colleghiate larray ed i valori degli indici dellarray agli ingressi array ed index della funzione. Quando eseguite il VI, LabVIEW esegue una nuova copia dellarray e la mette in memoria. Potete utilizzare la

W H AT S N E W

Figura 3 - Struttura In Place Element vuota

Figura 5 - Nodi risultanti per lindicizzazione di un array

Figura 4 - Configurazione del nodo per lindicizzazione di un array

a blocchi del primo esempio. In questo caso, tuttavia, LabVIEW non deve creare o immagazzinare copie addizionali dei valori dellarray in memoria. La struttura In Place Element richiede che ogni elemento indicizzato nellarray venga sostituito a livello del nodo presente sul lato destro della struttura. Poich il compilatore LabVIEW sa quale elemento sostituire, LabVIEW non deve creare o immagazzinare copie addizionali dei valori dellarray in memoria.

uno schema a blocchi. La fig. 3 visualizza una struttura In Place Element vuota su uno schema a blocchi. La struttura In Place Element utilizza nodi fissati sulla cornice per eseguire operazioni sui dati. Potete cliccare con il tasto destro sul bordo della struttura e selezionare il nodo appropriato in base al tipo di operazione che desiderate eseguire (fig. 4). Ogni nodo consiste di un terminale sul lato sinistro e uno sul lato destro della struttura (fig. 5). Dopo avere scelto un nodo e collegato un ingresso (un array, un cluster, un variant o una forma donda), potete selezionare un elemento sul lato sinistro della struttura, eseguire operazioni sullelemento allinterno della struttura e collegare il valore risultante sul lato destro per sostituire il valore nella locazione esistente (fig. 6).

struttura In Place Element per evitare di eseguire copie addizionali dellarray e dei valori degli indici, come illustrato nello schema a blocchi di fig. 2. Il nodo Array Index/Replace Elements presente sulla cornice della struttura In Place Element indicizza un array di interi a 32 bit senza segno, incrementa il terzo elemento dellarray e rimette lelemento nella stessa posizione dellarray, analogamente allo schema

PRIMI PASSI CON LA STRUTTURA IN PLACE ELEMENT


La struttura In Place Element non situata sulla paletta delle strutture. Potete trovarla sulla paletta Memory Control seguendo il percorso ProgrammingApplication Control Memory Control sulla paletta delle funzioni. Da questa paletta, potete trascinare la struttura In Place Element in

QUANDO UTILIZZARE LA STRUTTURA IN PLACE ELEMENT


Lovvia domanda che potreste porre in merito alla struttura In Place Element questa: Quando dovrei utilizzarla? Come avviene per ogni operazione di ottimizzazione del codice, la cosa migliore aspettare finch non sapete qual il collo di bottiglia del vostro sistema. Quando lelemento dellarray,

W H AT S N E W

05

Figura 6 - Una struttura In Place Element con un array collegato a un nodo

Figura 7 - Potete utilizzare una struttura In Place Element annidata con For Loop per eseguire operazioni in modo efficiente su tipi di dati estremamente complessi

del cluster o della forma donda a cui la struttura accede semplice (come un I32 o DBL), il guadagno di prestazioni piccolo. In generale, comunque, con la struttura In Place Element potete eseguire operazioni su strutture dati complesse in modo pi efficiente rispetto ai tradizionali metodi di programmazione di LabVIEW. Per esempio, consideriamo il caso di un array di cluster, ciascuno utilizzato per descrivere una persona. Il cluster composto da campi come

Nome, Data di nascita e Occupazione e da un array delle caratteristiche della persona. Per eseguire unoperazione su un singolo campo in tutti i cluster, potete utilizzare la struttura In Place Element ed un For Loop (fig. 7). Senza la struttura In Place Element, LabVIEW eseguirebbe una copia del cluster ad ogni iterazione del For Loop. Questo comporterebbe anche la copia di Nome, Data di nascita e cos via, anche se non dovete eseguire operazio-

ni su tali campi. Non si ottiene un incremento di velocit in tutte le applicazioni, ma la struttura In Place Element comoda quando dovete estrarre un elemento da un tipo di dati complesso, modificarlo e rimetterlo nellarray.

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

Readerser vice.it n. 503

W H AT S N E W

05

PREVENIRE IL CROSS-LINKING DI VI CON IL NUOVO LABVIEW PROJECT POTENZIATO


a cura di Matteo Foini

Insieme a molti altri miglioramenti e nuove caratteristiche, LabVIEW 8.5 include tool destinati ad aiutare gli sviluppatori a prevenire il cross-linking

uando un VI in memoria fa riferimento ad un subVI diverso da quello presente durante lultimo salvataggio (in altri termini, uno a cui non intendevate fare riferimento), si verifica il problema di cross-linking. Per esempio, LabVIEW potrebbe caricare accidentalmente una revisione passata dello stesso codice e lapplicazione, di conseguenza, presenterebbe un comportamento imprevisto, difficile da capire e correggere: un problema che ha frustrato anche gli utenti di LabVIEW pi esperti.

CHE COS IL CROSS-LINKING?


In LabVIEW, il cross-linking si verifica a causa di una differenza esistente fra i VI in memoria e i VI su disco. Gli ele-

menti di LabVIEW in memoria hanno un nome unico, ma su disco possono esistere pi VI con lo stesso nome. Di conseguenza, quando si cerca di caricare un VI da disco, LabVIEW controlla innanzitutto se un VI gi presente in memoria ha lo stesso nome e, in base al risultato, chiede di utilizzare il VI in memoria o di scartarlo e utilizzare il VI che sta su disco. Per i subVI per LabVIEW non chiede allutente se vuole usare il VI in memoria o il VI di uguale nome su disco ma aggancia il VI presente in memoria e mostra un messaggio di avvertimento, dove afferma che LabVIEW ha caricato dei VI da posizioni impreviste. Bench sia facile definire il cross-linking, prevenirlo comunque difficile.

Una pratica comune fra gli utenti LabVIEW creare dei backup progressivi di tutte le directory di lavoro; di conseguenza, su una macchina di sviluppo vi sono spesso molte copie di ogni VI. Tra i problemi che il cross-linking pu causare agli utenti ricordiamo: Un comportamento imprevisto del sistema, introdotto dal caricamento di un subVI che ha una funzionalit diversa da quella del subVI che si intendeva richiamare Modifiche accidentali che risultano dalla modifica di un VI diverso da quello previsto o dal salvataggio non intenzionale di VI in versioni pi recenti di LabVIEW

Figura 1 - Un LabVIEW Project con un conflitto

Figura 2 - Un secondo VI viene referenziato come dipendenza, provocando il conflitto

W H AT S N E W

05

Una ridotta produttivit causata dallo spreco di tempo nella ricerca e soluzione del cross-linking e nel ripristino dei VI.

STRUMENTI IN LABVIEW PER PREDIRE, PREVENIRE E RISOLVERE IL CROSS-LINKING


LabVIEW 8.5 introduce un insieme di nuovi tool progettati per aiutare gli utenti LabVIEW non solo a identificare e prevenire possibili situazioni di crosslinking, ma anche a risolvere il problema laddove si gi verificato. La maggior parte di queste nuove caratteristiche si trova integrata nel LabVIEW Project, introdotto in LabVIEW 8 al fine di migliorare la gestione dei target (per esempio, aiutando gli sviluppatori a gestire simultaneamente i VI sui sistemi host ed embedded). Ma un LabVIEW Project pu contenere alcuni elementi in conflitto fra loro. Un conflitto un potenziale cross-link che si verifica quando LabVIEW cerca di caricare un VI che ha lo stesso nome di un elemento gi presente nel progetto. Quando LabVIEW identifica un conflitto (in altri termini, una potenziale situazione di cross-linking), esso visualizza la parola [Conflict] dopo il nome del VI nel LabVIEW Project (fig. 1). Un triangolo giallo di avvertimento appare in corrispondenza di ogni elemento in conflitto presente nel progetto.
Figura 3 - Il LabVIEW Project con visualizzazione dei percorsi completi degli elementi

Nuove funzionalit di LabVIEW 8.5 vi aiuteranno a prevenire il cross-linking ed eliminare i conflitti: 1. Opzione Show Full Paths migliorata 2. Nuova pagina Files 3. Nuova finestra di dialogo Resolve Project Conflicts 4. Possibilit di sostituire facilmente un VI in un LabVIEW Project 5. Nuove finestre di dialogo Find Callers e Find SubVIs Per spiegare come potete sfruttare questi nuovi tool con il LabVIEW Project per risolvere i conflitti, esaminiamo ogni nuova caratteristica con un semplice esempio per illustrare ciascun punto.

maticamente la gerarchia di ogni elemento che viene incluso nel LabVIEW Project. Quando aprite un VI da un progetto, LabVIEW aggiunge nelle Dependencies tutti i membri della gerarchia del VI che non sono gi presenti nel LabVIEW Project. LabVIEW organizza le Dependencies in tre cartelle - vi.lib, user.lib e Items in Memory. Quando aprite un VI che non attualmente nel LabVIEW Project, LabVIEW aggiunge il VI dentro Items in Memory. La sezione Dependencies si aggiorna quando aggiungete, rimuovete o salvate un elemento nel LabVIEW Project (fig. 2).

VIEW FULL PATHS


Il modo pi semplice per determinare la causa di un conflitto (che potrebbe potenzialmente portare al cross-linking) quello di evidenziare il percorso completo relativo a ogni elemento del progetto con accanto il messaggio [Conflict]. Potete cliccare con il tasto destro sulla radice del progetto e selezionare ViewFull Paths dal menu abbreviato per visualizzare la colonna Paths ed osservare i percorsi dei file che corrispondono agli elementi del LabVIEW Project (fig. 3). Bench losservazione dei percorsi completi non sia tecnicamente nuova (potete infatti attivare i percorsi completi anche in LabVIEW 8 e 8.20), in precedenza non cera una colonna separata nel LabVIEW Project. Grazie ad un layout pi pulito e pi facile da capire, lopzione Full Paths vi aiuta a vedere lesatta posizione su disco dove si trova un elemento in conflitto. Per rimuovere il conflitto, dovete rinominare o rimuovere dal progetto tutti gli elementi meno uno aventi lo stesso nome.

DEPENDENCIES
Potete esaminare i file a cui il LabVIEW Project fa riferimento per localizzare la sorgente del conflitto. Per aiutare a prevenire i conflitti, LabVIEW traccia auto-

Figura 4 - La pagina Files visualizza le posizioni degli elementi su disco

10

W H AT S N E W

PAGINA FILES NEL PROGETTO


Potete vedere le posizioni dei file anche sulla nuova pagina Files. Tramite la pagina Items, che visualizza il contenuto del progetto, potete interagire con i componenti tipici di un progetto, esistenti gi in LabVIEW 8 e 8.20, come My Computer, Build Specifications e Dependencies (fig. 3). La nuova pagina Files visualizza gli elementi del LabVIEW Project che hanno un file corrispondente su disco (fig. 4). Con la pagina Files, potete avere una conferma visiva del fatto che VI indesiderati ed altri file situati in directory obsolete non siano accidentalmente inclusi in un particolare progetto. Potete inoltre eseguire operazioni su disco come rinominare, riorganizzare e rimuovere elementi. Per esempio, se rinominate un file sulla pagina Files, LabVIEW rinomina quel file su disco. Potete spostare file su disco utilizzando la pagina Files senza influenzare negativamente il linking dei VI. Quando spostate un VI attraverso la pagina Files, LabVIEW aggiorna automaticamente tutti i chiamanti allinterno di quel LabVIEW Project con lultima informazione di posizione del file disponibile per quel VI. Potete passare da una pagina a unaltra cliccando con il tasto destro su una cartella o un elemento sotto un target e selezionando Show in Items View o Show in Files View dal menu rapido (le voci appaiono solo se lelemento esiste nellaltra vista).

Figura 6 - Cliccate con il tasto destro su un File e selezionate Replace with per scegliere un nuovo file

modo i percorsi corretti (fig. 5). Questa finestra di dialogo visualizza tutti i conflitti presenti in un progetto. Allinterno della finestra potete confrontare due VI in conflitto con lo stesso nome (si pu richiamare lo strumento di differenziazione grafica esistente in LabVIEW). Potete anche osservare i dettagli di ogni elemento che selezionate, come percorso dellelemento, nome, data di creazione e data di modifica. Mano a mano che risolvete ciascun conflitto nellarea di dialogo, lelenco si aggiorna automaticamente.

CONCLUSIONE
LabVIEW 8.5 ha aggiunto nuove importanti caratteristiche al LabVIEW Project. Tali caratteristiche riguardano anche la risoluzione del cross-linking, un vecchio problema per molti sviluppatori che utilizzano LabVIEW (specialmente per grandi applicazioni). Grazie a queste nuove funzionalit, avete a disposizione vari modi con cui predire, evitare e riparare le situazioni di crosslinking, ottenendo maggiore produttivit e ridotti tempi di debugging.

REPLACE WITH...
Se rilevate che uno o pi VI fanno riferimento erroneamente a subVI sbagliati e non desiderate utilizzare larea di dialogo Resolve Project Conflicts per correggere il problema, avete altre opzioni per eliminare il conflitto. Potete ridirigere tutti i chiamanti in modo che facciano riferimento ad un subVI con un percorso differente cliccando con il tasto destro su un VI in conflitto nel LabVIEW Project e selezionando Replace with dal menu abbreviato per scegliere il corretto subVI su disco (fig. 6). LabVIEW aggiorna automaticamente tutti gli elementi che fanno riferimento al percorso errato con il nuovo percorso.

FINESTRA DI DIALOGO RESOLVE CONFLICTS


Un altro metodo per risolvere i conflitti in un progetto quello di usare il pulsante Resolve Conflicts nella toolbar del LabVIEW Project per visualizzare la finestra di dialogo Resolve Project Conflicts. Per risolvere i conflitti potete cliccare con il tasto destro su un elemento in conflitto e selezionare Resolve Conflicts dal menu abbreviato, oppure utilizzare larea di dialogo Resolve Project Conflicts, ristabilendo in tal

Figura 5 - La finestra di dialogo Resolve Project Conflicts offre un metodo automatizzato per rimuovere i conflitti dal LabVIEW Project

Readerser vice.it n. 504

11

W H AT S N E W

05

LE NOVIT DEL

PDA MODULE DI LABVIEW 8.5


a cura di Matteo Foini

Il modulo per PDA di LabVIEW 8.5 contiene molte nuove funzionalit e correzioni di bug programmate

saminiamo le nuove funzionalit e correzioni di bug programmate contenute nel modulo per PDA di LabVIEW 8.5.

LETTURA E SCRITTURA DI DATI SUL PANNELLO FRONTALE UTILIZZANDO IL DATA BINDING


Potete utilizzare il data binding per leggere o scrivere dati sul pannello frontale tramite shared variable pubblicate in rete. Potete utilizzare il data binding con qualsiasi controllo o indicatore del pannello frontale supportato dal PDA Module. Questa nuova funzionalit semplifica il processo di invio dei dati da visualizzare sul pannello frontale, eliminando la necessit di qualsiasi programmazione; gli oggetti sul pannello frontale sono connessi direttamente alle shared variable pubblicate in rete ed possibile inviare e ricevere dati senza alcuna istruzione sullo schema a blocchi. Nelle figure 1 e 2, un grafico denominato Data stato configurato in modo da leggere il valore di una forma donda da una shared variable pubblicata in rete. Dopo la configurazione tramite il men

Figura 1 - Configurazione di un grafico denominato Data per leggere il valore di una forma donda da una shared variable pubblicata in rete

Properties del grafico, non occorre alcun collegamento sullo schema a blocchi per portare i dati nel grafico.

SUPPORTO A INLINE C NODE


Potete utilizzare lInline C Node per aggiungere codice C allo schema a

Figura 2 - Dopo la configurazione tramite il men Proper ties del grafico, non occorre alcun collegamento sullo schema a blocchi per por tare i dati nel grafico

12

W H AT S N E W

blocchi (fig. 3). LInline C Node simile al Formula Node di LabVIEW, con supporto e funzionalit addizionali per

la programmazione a basso livello. Potete utilizzare lInline C Node per brevi blocchi di codice che non potete implementare facilmente in VI grafici. LInline C Node supporta qualsiasi porzione di codice C, i n c l u s e direttive assembly e #define, che sinFigura 3 - Si pu utilizzare lInline C Node per aggiungere codice C tatticamente allo schema a blocchi stia fra parentesi graffe in un file C. La verifica sintattica di un Inline C Node avviene in fase di editazione e gli errori vengono indicati da punti rossi sulla barra sinistra dellInline C Node. Alcuni errori, come funzioni o variabili indefinite, non possono essere rilevati prima della compilazione del codice C generato per il VI.
Figura 4 - Il PDA Module suppor ta ora sei tipi di azioni meccaniche per controlli booleani

5). Il controllo semplifica il processo di navigazione di controlli e indicatori di grandi dimensioni.

RUN APPLICATION VI
Potete utilizzare il VI Run Application per e s e g u i r e unapplicazione PDA specificata (fig. 6). Questo VI vi permette di richiamare facilm e n t e unapplicazione su PDA, senza dovere utilizzare una chiamata a DLL o lInline C Node.
Figura 7 - Il PDA Module include ora VI e funzioni per manipolare dati LabVIEW in formato XML

FUNZIONI XML
Il PDA Module include ora i VI e le funzioni Escape XML, Flatten To XML, Read From XML File, Unescape XML, Unflatten From XML e Write to XML File (fig. 7). Potete utilizzare questi VI e funzioni per manipolare dati LabVIEW in formato XML.

Figura 8 - Il PDA Module suppor ta laccensione intermittente per tutti i controlli e gli indicatori booleani, esclusi i controlli di sistema

Se si verificano degli errori, la fase di build si interrompe e si riceve un errore.

AZIONE MECCANICA BOOLEANA


Il PDA Module supporta ora sei tipi di azioni meccaniche per controlli booleani, che includono Switch when pressed, Switch when released, Switch until released, Latch when pressed, Latch when released e Latch until released (fig. 4).

Figura 9 - E possibile impostare la giustificazione del testo e sottolineare il testo di pulsanti e di controlli e indicatori di tipo stringa, time stamp e numerici

Figura 5 - Il PDA Module suppor ta ora controlli per barre di scorrimento

CONTROLLI E INDICATORI BOOLEANI LAMPEGGIANTI


A grande richiesta, il PDA Module supporta ora laccensione intermittente per tutti i controlli e gli indicatori booleani, esclusi i controlli di sistema (fig. 8). Utilizzando un Property Node con la propriet Blinking abilitata, potete configurare un booleano per visualizzare lampeggiando avvertimenti importanti per loperatore.

CONTROLLO BARRA DI SCORRIMENTO


Il PDA Module supporta ora controlli per barre di scorrimento, incluse barre di scorrimento verticali e orizzontali aggiungibili a qualsiasi controllo o indicatore presente sul pannello frontale (fig.

Figura 6 -Potete utilizzare il VI Run Application per eseguire unapplicazione PDA specificata

GIUSTIFICAZIONE DEL TESTO PER CONTROLLI E INDICATORI


Potete ora impostare la giustificazione

Readerser vice.it n. 505

13

TIPS & TECHNIQUES

05

PROGETTAZIONE SOFTWARE PER IL CONTROLLO MACCHINA


Chris Washington

Questo ar ticolo illustra una possibile architettura di progettazione software per il controllo macchina, basata sulle macchine a stati

lizzare applicazioni di controllo su controllori LabVIEW Real-Time, inclusi CompactRIO, Compact FieldPoint e PXI. La stessa architettura di base pu funzionare anche su altre piattaforme, come controllori basati su Windows. LabVIEW Real-time un linguaggio di programmazione completo, che offre agli sviluppatori numerose opzioni su come costruire un controllore e permette loro di creare sistemi molto flessibili e complessi. I controllori LabVIEW Real-Time sono utilizzati in applicazioni che spaziano dal controllo delle barre in centrali nucleari, al collaudo Hardware-in-theLoop per le ECU dei motori, dal controllo adattativo per la trivellazione di pozzi petroliferi, al monitoraggio delle vibrazioni ad alta velocit per la manutenzione predittiva. Tuttavia, la grande flessibilit di LabVIEW Real-Time potrebbe anche scoraggiare linizio di una nuova applicazione, specialmente per i programmatori che non hanno familiarit con LabVIEW o con la programmazione di sistemi real-time. Questo articolo non ha lo scopo di fornire unarchitettura valida per ogni applicazione e non vuole sostituirsi ai corsi di formazione su LabVIEW RealTime. E stato scritto per offrire uninfrastruttura operativa ai progettisti di applicazioni di controllo industriale e specialmente a chi ha familiarit con luso dei PLC. Larticolo stato concepito per spiegare come costruire facilmente applicazioni LabVIEW Real-Time in grado di offrire anche la flessibilit necessaria a gesti-

che descriveremo architettura qui pu essere utilizzata per rea-

re applicazioni non tradizionali, come I/O bufferizzati ad alta velocit, data logging e visione artificiale.

TERMINOLOGIA
Nonostante vi siano molti modi per costruire unapplicazione di controllo in LabVIEW Real-time, necessario iniziare dalla comprensione di alcuni concetti fondamentali relativi alla programmazione real-time e alle applicazioni di controllo. Responsivit: Unapplicazione di controllo deve essere in grado di intervenire nel caso di eventi come un cambiamento di I/O, un input dal dispositivo HMI o un cambiamento di stato interno. Il tempo richiesto per eseguire unazione dopo un evento noto come responsivit e applicazioni di controllo differenti avranno tolleranze differenti per la responsivit, che possono variare da microsecondi a minuti. La maggior parte delle applicazioni industriali ha requisiti di responsivit compresi fra il millisecondo e qualche secondo. Un criterio di progettazione importante per unapplicazione di controllo la responsivit richiesta, perch essa determiner le velocit dei loop di controllo e influir sulle decisioni a livello di I/O, processore e software. Determinismo e jitter: Il determinismo consiste nella garanzia di ripetibilit dei tempi di un loop di controllo. Il jitter rappresenta una misura del determinismo, cio lerrore che si ha nel mancato rispetto dei tempi-ciclo. Per esempio, se un loop impostato per essere eseguito ogni 50 ms ma

qualche volta viene eseguito a 50,5 ms, il jitter di 0,5ms. Determinismo e affidabilit pi elevati sono i vantaggi primari di un sistema di controllo realtime: un buon determinismo critico per applicazioni di controllo stabili. Un basso determinismo porta a un cattivo controllo analogico e pu rendere un sistema non responsivo. Priorit: La maggior parte dei controllori usa un singolo processore per gestire tutti i task di controllo, monitoraggio e comunicazione. Essendoci cos una singola risorsa (il processore) con pi richieste in parallelo, il programmatore deve trovare il modo per gestire quelle pi importanti. Impostando i loop critici di controllo in alta priorit, ottenete un controllore che presenta ancora buon determinismo e responsivit. Per esempio, in unapplicazione con un loop di controllo della temperatura e funzionalit di logging embedded, il loop di controllo pu essere impostato a priorit pi elevata rispetto alloperazione di logging per ottenere un controllo deterministico della temperatura. Ci fa s che i task di priorit inferiore (logging dei dati, web server, HMI, ecc.) non influiscano negativamente sui controlli analogici o sulla logica digitale.

RICHIAMI SULLARCHITETTURA DI BASE DEI CONTROLLORI


La maggior parte dei programmatori che non hanno familiarit con LabVIEW iniziano con unapplicazione molto semplice ed espandono quindi il loro programma per aggiungere maggiori funzioni. Un vantaggio di

14

TIPS & TECHNIQUES

LabVIEW che molto facile costruire ed eseguire un semplice programma. Per esempio, vediamo la logica di un semplice loop PID eseguito su un sistema Compact FieldPoint.

Purtroppo, costruire sistemi pi complessi in LabVIEW richiede unarchitettura pi sofisticata che permetta un migliore riutilizzo del codice, scalabilit e gestione del flusso di esecuzione. Questo paragrafo descrive ed insegna a costruire unarchitettura di base per le applicazioni di controllo ed esegue lo stesso loop PID utilizzando tale architettura. Il controllore pi semplice ha tre sequenze o routine fondamentali: 1. Routine di inizializzazione 2. Routine di controllo 3. Routine di chiusura

inserita nel loop di controllo principale. La routine di inizializzazione dovr quindi: 1. Impostare allo stato di default tutte le variabili interne, incluse le variabili duscita nella tabella di memoria degli I/O. 2. Creare tutte le code necessarie, le FIFO RT, i VI Refnum e scaricare ogni bit file negli FPGA. 3. Eseguire eventuale logica aggiuntiva definita dallutente per rendere operativo il controllore, come la preparazione dei file di log.

lore rileva una condizione di errore, esso interrompe lesecuzione del loop di controllo principale ed esegue una routine di chiusura. La routine ferma il controllore e lo mette in sicurezza: serve solo per lo shutdown del controllore e non la sede per le routine di chiusura della macchina, che invece vanno inserite nel loop di controllo principale. La routine di chiusura deve: 1. Impostare tutte le uscite a uno stato di sicurezza 2. Interrompere tutti i loop paralleli in esecuzione 3. Eseguire qualsiasi logica aggiuntiva come quella di notifica alloperatore di un guasto al controllore o informazioni sullo stato del logging

ROUTINE DI CONTROLLO
La routine di controllo il cuore del controllore, dove viene eseguita tutta la logica utente in forma di loop multipli paralleli. Anche se potete schematizzarla come un loop che esegue lI/O Scan Task, i task ad alta priorit e quindi i task a bassa priorit, in realt si tratta di loop multipli sincronizzati.

DETTAGLI DELLA ROUTINE DI CONTROLLO


La maggior parte dei programmatori LabVIEW ha familiarit con laccesso diretto agli I/O, dove le subroutine inviano e ricevono direttamente input e output dallhardware. Questo metodo ideale per lacquisizione di forme donda, lelaborazione dei segnali e piccole applicazioni single-point. Tuttavia, le applicazioni di controllo normalmente utilizzano letture e scritture single-point e possono diventare molto grandi, con stati multipli che devono tutti accedere agli I/O. Laccesso agli I/O introduce un overhead nel sistema e pu essere relativamente lento; inoltre, gestire accessi multipli agli I/O attraverso tutti i livelli di un programma rende molto difficile cambiare gli I/O e implementare funzionalit come la simulazione o il forcing. Per evitare questi problemi, la routine di controllo usa unarchitettura a scansione di I/O, dove laccesso allhardware fisico avviene una sola volta per ogni iterazione del loop. I valori di input e output sono immagazzinati in memoria in un costrutto noto come tabella di memoria degli I/O e il codice di controllo accede allo spazio di memoria anzich allhardware diretto. Questa architettura offre numerosi benefici:

Tali routine riguardano lo stato del controllore. Dato che i controllori realtime di National Instruments vi permettono di definire le capacit complete del vostro sistema, dovrete costruire le sequenze in LabVIEW.

ROUTINE DI INIZIALIZZAZIONE
Prima di eseguire il loop di controllo principale, il programma deve eseguire una routine di inizializzazione che prepara il controllore per lesecuzione. Non qui che trova posto la logica di gestione della macchina (come la logica di startup o di inizializzazione della macchina); tale logica dovrebbe essere

Il primo loop scrive e legge gli I/O fisici in una tabella di memoria e viene eseguito per primo. Quindi, i task successivi eseguono la logica utente dalla priorit pi elevata a quella pi bassa, terminando con i task di comunicazione e operazioni ausiliarie che funzioneranno alla minima priorit. Per servire questi ultimi task efficacemente, dovete verificare di avere programmato il vostro controllore garantendo un tempo sufficiente di inattivit del processore.

ROUTINE DI CHIUSURA
Quando si comanda al controllore di interrompere lesecuzione o il control-

15

TIPS & TECHNIQUES

05

Astrazione degli I/O, per consentire il

riutilizzo di subVI e funzioni (no hard coding degli I/O) Basso overhead Funzionamento deterministico Facile transizione fra piattaforme hardware Supporto per la simulazione Supporto per interlocks e forcing Eliminazione del rischio legato al cambio degli I/O durante lesecuzione della logica

Nota: Bench non sia intuitivo, scrivere prima sugli output aiuta ad assicurare il funzionamento deterministico e permette di ottenere un programma pi pulito per la gestione degli errori e la transizione a uno stato di shutdown.

TASK LOGICI DELLUTENTE


La logica utente la logica specifica alla macchina che definisce lapplicazione di controllo. In molti casi, si basa su una macchina a stati per gestire il controllo di macchine complesse con stati multipli. Un paragrafo successivo spiegher come utilizzare le macchine a stati per progettare la logica utente.Per essere eseguita nellarchitettura di controllo, la logica utente deve: Essere eseguita in meno tempo del loop temporizzato Accedere agli I/O attraverso la tabella di memoria degli I/O anzich attraverso letture o scritture dirette degli I/O Non usare while loop se non per mantenere informazioni di stato negli shift register Non usare for loop se non negli algoritmi Non usare wait (attese), ma funzioni di temporizzazione o Tick Count per la logica di timing Non eseguire operazioni non deterministiche, di logging o su forme donda La logica utente pu: Includere operazioni single point come PID o analisi punto-punto Usare una macchina a stati per strutturare il codice

TABELLA DI MEMORIA DEGLI I/O


La tabella di memoria degli I/O serve a passare i dati fra il loop di scansione degli I/O ed altri loop o task paralleli di controllo o misura. Vi sono numerosi metodi per la comunicazione fra i loop, ma uno dei pi semplici quello di usare una variabile globale. Per rendere semplice laggiornamento del programma, utilizzeremo un cluster basato su un controllo custom strict type def. Con un controllo strict type def, qualsiasi cambiamento apportato al controllo si propaga automaticamente allintero programma. Ci vi permette di aggiungere o rinominare facilmente gli I/O senza la necessit di ricodificare il programma.

to. Un cluster locale permette di offrire scalabilit per task multipli e di utilizzare il modulo LabVIEW StateChart. 2. Eseguire la logica - Gli I/O vengono letti e scritti nei cluster locali per ingressi e uscite 3. Copiare il cluster locale nella tabella di memoria degli I/O - Il cluster locale degli output (strict type def) viene letto e scritto nella tabella di memoria degli I/O. Anche in questo caso, un cluster locale permette di offrire scalabilit per task multipli e di utilizzare il modulo LabVIEW StateChart.

ESEMPIO DI ARCHITETTURA DI BASE DEI CONTROLLORI IN LABVIEW


Per mostrare questa architettura di controllo, costruiremo unapplicazione di controllo PID elementare. Questa semplice applicazione controlla una camera climatica in modo tale da mantenervi una temperatura di 350 gradi. Essa prevede un ingresso analogico da termocoppia, unuscita analogica (010V) collegata allingresso di un elemento riscaldante e un algoritmo PID per il controllo. Questa applicazione particolarmente semplice ed utilizzata qui solo per spiegare i componenti dellarchitettura senza aggiungere la complessit di un controllo intricato.

TABELLA DI MEMORIA DEGLI I/O


Per creare la tabella di memoria degli I/O: 1. Create un controllo custom strict type def chiamato IO Cluster.ctl. Nel controllo custom aggiungete un cluster e create due controlli, Input_TC e Output_Heater. 2. Create una variabile globale chiamata IO Table Global.vi contenente IO Cluster.ctl. Suggerimento: Luso di un controllo strict type def custom permette il semplice aggiornamento del codice tramite il LabVIEW project.

SCANSIONE DEGLI I/O


Il loop di controllo principale sar il loop con la massima priorit, quindi sar eseguito per primo ad ogni ciclo e presenter due fasi, che si attiveranno ripetutamente alla velocit desiderata del loop di controllo: 1. Scrittura degli output - La tabella di memoria degli I/O viene letta ed i moduli di output sono aggiornati. 2. Lettura degli input - I moduli di input vengono letti ed i valori vengono scritti nella tabella di memoria degli I/O. Ogni task logico verr strutturato utilizzando un Timed Loop. La priorit del Timed Loop deve essere inferiore a quella del loop di scansione degli I/O e la temporizzazione dovrebbe essere un multiplo intero della velocit del loop di scansione degli I/O. Il task logico conter tre fasi: 1. Copiare la tabella di memoria degli I/O nel cluster locale - La tabella di memoria degli I/O viene letta e un cluster locale (strict type def) viene scrit-

SCANSIONE DEGLI I/O


1. Aprite un top level vi. 2. Inserite un Time Loop sul diagram-

16

TIPS & TECHNIQUES

ma e configurate il rate in funzione del tempo-ciclo richiesto dalla vostra applicazione. 3. Sullo schema, create due subVI:

scrivere valori di sicurezza sulle uscite alla chiusura e salvate il subVI. Invece di scrivere i valori duscita dalla tabella di memoria degli I/O, scriverete i valori duscita di sicurezza. In questo caso, il riscaldatore dovrebbe spegnersi se si esce dal programma, quindi il valore Output_Heater viene sostituito

Nota: Il comportamento in fase di chiusura definito dal programmatore. Potete decidere di ignorare certi errori o di riprovare a eseguire le operazioni prima della chiusura. 9. Nel top level vi utilizzate il Fault Ma-

Write Outputs e Read Inputs. 4. Aprite Write Outputs. Sullo schema a blocchi, inserite la variabile globale IO Table Global.vi e la logica per scrivere gli output fisici. Questo esempio programmato per FieldPoint, quindi utilizza un FP Write VI. La stessa architettura potrebbe essere facilmente utilizzata per programmare CompactRIO,

PXI o DAQ. 5. Aprite Read Inputs. Sullo schema a blocchi, inserite la variabile globale IO Table Global.vi e la logica per gli

con una costante zero. 8. A livello di top level vi dovete ora aggiungere della logica per decidere quando eseguire la chiusura. Questa chiusura ferma il controllore. Nella maggior parte dei casi, ci dovrebbe avvenire solo al verificarsi di un errore o se il controllore deve essere riprogrammato. Per questo esempio eseguiremo la chiusura in presenza di un errore. Abbiamo creato un cluster di errore globale che ci permette di raccogliere eventuali errori da pi task paralleli. Abbiamo creato due subVI per gestire e gli errori: Fault Manager.vi

nager.vi e il Fault Merge.vi per rilevare gli errori e controllare la struttura case per effettuare lo shutdown in caso di errore. Notate che per ogni task dobbiamo assegnare un Task #: utilizzeremo 0 per la routine di inizializzazione e 1 per il Task di scansione degli I/O.

ROUTINE DI INIZIALIZZAZIONE E CHIUSURA


1. Ora dobbiamo aggiungere la routine di inizializzazione e una routine di chiusura. La routine di inizializzazione deve configurare il controllore in modo che sia pronto per eseguire qualsiasi logica e la routine di chiusura deve eseguire qualsiasi azione legata alla fase di shutdown. 2. La routine di inizializzazione imposter i valori di default per gli output ed eseguir lerror trapping (gestione dellerrore). Ricordate che il loop di controllo principale inizia scrivendo le uscite sullhardware, quindi dobbiamo caricare i valori di startup per le uscite nella tabella di memoria degli I/O. 3. Create un subVI chiamato Default Outputs.vi e scrivete del codice per

input fisici. 6. Salvate e chiudete i due subVI. Sul top level vi disponete una struttura case intorno ai subVI Write Outputs e Read Inputs. Nel caso false create un nuovo subVI chiamato Shutdown Outputs, dove entrerete nel caso in cui il controllore debba essere fermato. 7. Aprite Shutdown Outputs.vi e aggiungete la logica necessaria per

e il Fault

Merge.vi.

17

TIPS & TECHNIQUES

05

impostare la tabella di memoria degli I/O con i valori di default. Vogliamo che il comportamento di default delluscita del riscaldatore sia off, quindi creeremo una costante 0 e la collegheremo alla variabile condivisa Output_Heater. 4. Aggiungete lerror trapping con il

e output) che sono strict type def. 1. In primo luogo viene creato un controllo strict type def custom chiamato Input Cluster.ctl. Nel controllo custom aggiungiamo un cluster e creiamo un controllo chiamato Input_TC. 2. Viene quindi creato un controllo strict type def custom chiamato Output Cluster.ctl. Nel controllo custom aggiungiamo un cluster e creiamo un controllo chiamato Output_Heater.

Fault Merge.vi ed usate il Task #0. 5. Sul top level vi aggiungete una struttura a sequenza (sequence structure) a sinistra dellI/O Scan Task. Collegate il cluster di errore da Default Outputs.vi al bordo del Timed Loop per assicurare lordine di esecuzione. 6. Per la routine di chiusura aggiunge-

Suggerimento: Se utilizzate lo StateChart Module, esso creer automaticamente uno strict type def Input Cluster.ctl e Output Cluster.ctl.

te una sequence structure a destra dellI/O Scan Task e collegate il cluster di errore al bordo della struttura. Aggiungete leventuale logica di chiusura allinterno della struttura. In questo esempio non abbiamo routine di chiusura. 7. Ora avete una routine completa di inizializzazione, scansione degli I/O e chiusura. A questo punto dovete aggiungere i vostri task logici.

Table Global e la logica per leggere gli ingressi e scriverli nel cluster. 6. Salvate e chiudete i due subVI. Sul top level vi disponete una struttura case e la gestione degli errori. Notate che per Fault Merge.vi questo il Task #2. 7. Ora create un subVI chiamato Logic.vi. In questo vi cablerete in ingresso e in uscita i cluster di errore e metterete la vostra logica. Ricordate che la logica deve: Essere eseguita in meno tempo di quello richiesto dal Timed Loop Non accedere direttamente allhardware per letture e scritture degli I/O Non usare while loop se non per mantenere informazioni di stato negli shift register Non usare for loop se non negli algoritmi Non usare wait (attese), ma funzioni di temporizzazione o Tick Count per la logica di timing Non eseguire operazioni non deterministiche, di logging o su forme donda
8. Inserite un vi PID sullo schema a blocchi e collegate le costanti per impostare lintervallo duscita a [10, 0], i guadagni del PID a [10, 0,1, 0] e il setpoint a 350. I guadagni ed il setpoint del PID avrebbero potuto anche essere cablati ad elementi della tabella di memoria degli I/O e pubblicati su un terminale operatore

3. Sullo schema create due subVI, uno chiamato Read Inputs Local e uno chiamato Write Outputs Local. 4. Aprite Read Inputs Local. Sullo

USER LOGIC TASK


Ogni task logico verr strutturato utilizzando un Timed Loop con una priorit inferiore a quella del loop di scansione degli I/O e un timing pari a un multiplo intero della velocit del loop di scansione degli I/O. Per scalare la vostra applicazione e per consentirvi di eseguire i loop a velocit diverse rispetto al task di scansione degli I/O, dovete creare una versione locale degli I/O. A tale scopo, copiate la tabella di memoria degli I/O in due cluster locali (input schema a blocchi, inserite la I/O Table Global e la logica per leggere gli ingressi e scriverli nel cluster. 5. Aprite Write Outputs Local. Sullo schema a blocchi, inserite la I/O per modificarli successivamente. Collegate il valore Input_TC al terminale Process Variable e collegate il valore Output_Heater al terminale Output. Aggiungete gli appropriati

18

TIPS & TECHNIQUES

componenti per la gestione degli errori. Suggerimento: Si possono utilizzare StateChart per applicazioni di controllo sequenziale, controllo batch o controllo macchina. 9. Sul top level vi collegate il cluster di errore dalla routine di inizializzazione sul bordo del Timed Loop, quindi salvate ed eseguite lapplicazione. Ora possiamo eseguire il programma

serbatoio sulla base delluscita di un totalizzatore di flusso (due processi paralleli, uno per ciascun flusso chimico) 3. Dopo il riempimento del serbatoio, avviare un miscelatore ed aumentare la temperatura 4. Quando la temperatura ha raggiunto 200 gradi, il sistema disattiva i miscelatori e tiene costante la temperatura per 10 secondi 5. Pompare il contenuto in un serbatoio di contenimento 6. Tornare allo stato di attesa Notate che, per semplicit, in questa applicazione le portate dei flussi chimici sono stato codificate a 850, la temperatura a 200 e il tempo a 10 secondi. In unapplicazione reale questi valori potrebbero essere caricati da una procedura o immessi da un operatore.

di controllo della temperatura. Esso ha procedure di avviamento e chiusura, unarchitettura a scansione, subVI riutilizzabili e la gestione degli errori. Questa larchitettura fondamentale per il controllo di macchine utilizzata nel presente articolo. Esamineremo ora un esempio pi complesso che evidenzia i benefici di questo tipo di architettura.

Poich utilizziamo la macchina a stati allinterno della nostra pi ampia architettura di controllo macchina, essa non pu usare istruzioni di attesa n loop, se non per mantenere uno stato o eseguire algoritmi, come un for loop usato per la manipolazione di array. Usate la macchina a stati nelle applicazioni dove esistono stati distinti. Ogni stato pu portare ad uno o pi stati o terminare il flusso del processo. Una macchina a stati si basa sugli input dellutente o su calcoli effettuati allinterno dello stato per determinare in quale stato andare successivamente. Molte applicazioni richiedono uno stato di inizializzazione, seguito da uno stato di default, dove possibile eseguire molte azioni differenti. Le azioni eseguite possono dipendere da input precedenti e correnti, nonch da altri stati. Per eseguire le azioni di azzeramento viene utilizzato comunemente uno stato di chiusura.

RICHIAMI SULLE MACCHINE A STATI


Il modo migliore per rappresentare questo tipo di sistema di controllo quello di utilizzare una macchina a stati. Il modello di progettazione basato su macchina a stati uno dei modelli di progettazione pi utili e diffusi per LabVIEW; potete implementare qualsiasi algoritmo che possa essere esplicitamente descritto da un diagramma a stati o schema di flusso. Una macchina a stati normalmente illustra un algoritmo decisionale di media complessit, come una routine diagnostica o un controllore di processo. Una macchina a stati, che si pu definire con maggiore precisione macchina a stati finiti, consiste di un insieme di stati e di una funzione di transizione che mappa il passaggio allo stato successivo. Una macchina a stati completa dovrebbe essere progettata per eseguire azioni dingresso, in attivit dello stato, o di uscita.

ESEMPIO DI MACCHINA A STATI IN LABVIEW

MACCHINE A STATI
La maggior parte delle applicazioni di controllo reali molto pi complessa della semplice applicazione PID costruita nellesempio precedente. Bench si possa utilizzare il PID per controllare un setpoint di temperatura, esso sar solo un piccolo componente nellapplicazione. Un esempio un po pi realistico pu essere quello di un reattore chimico. In questa applicazione immaginaria, il controllore deve: 1. Attendere dalloperatore un comando di partenza con la pressione di un pulsante 2. Misurare due flussi chimici in un

19

TIPS & TECHNIQUES

05

Per costruire questa applicazione, il primo passo quello di mappare la logica e i punti di I/O. Poich questa applicazione implica una sequenza di passi, uno schema di flusso un ottimo tool per pianificare lapplicazione stessa. Qui sotto sono riportati uno schema di flusso per lapplicazione e un elenco dei segnali di I/O. Ogni stato in una macchina a stati esegue unazione unica e richiama altri stati. Le transizioni fra gli stati dipendono dal verificarsi o meno di qualche condizione o sequenza. Tradurre il diagramma di transizione di stato in uno schema a blocchi LabVIEW richiede i seguenti componenti: Case structure - Contiene un caso per ogni stato e il codice per eseguire ciascuno stato Shift register (registro a scorrimento) - Contiene le informazioni di transizione fra gli stati State functionality code Implementa la funzione dello stato Transition code - Determina lo stato successivo nella sequenza Per questo esempio utilizzeremo I/O simulati invece di I/O fisici, in modo da

tori interattivi prima della distribuzione sullhardware. La capacit di simulare facilmente I/O un vantaggio di que-

sta architettura. Poich uno stato nella nostra macchina presenta processi paralleli, costruiremo una seconda macchina a stati per rappresentare la logica parallela e richiamarli in quello stato. Usciremo dallo stato solo quando entrambi i processi paralleli saranno terminati.

modo che esegua una transizione da qualsiasi stato e di dare priorit alle transizioni in modo che il comando di interruzione venga eseguito anche se altre transizioni vengono attivate nello stesso tempo. Tutte le funzionalit dello StateChart Module possono essere programmate in LabVIEW, ma il modulo StateChart migliora nettamente il tempo di sviluppo ed molto pi facile da leggere e correggere rispetto alle macchina a stati tradizionali scritte in LabVIEW. Si raccomanda quindi fortemente a chiunque abbia necessit di costruire applicazioni di controllo macchina.

MODIFICA DELLESEMPIO
Il modo pi semplice per iniziare questo progetto quello di modificare lesempio esistente. In questo paragrafo procederemo con la modifica del precedente esempio della miscelazione chimica, dove stato utilizzato il diagramma di stato per costruire lapplicazione. Ci sono quattro passi principali: 1. Modificate I/O Scan Task per leggere e scrivere sugli I/O fisici della vostra applicazione. 2. Modificate la routine di inizializzazione per scrivere i valori di default dei vostri output fisici. 3. Modificate il Task 1 per mappare gli I/O. Cambierete lo StateChart, il Read Inputs Local.vi e il Write Inputs Local.vi. 4. Modificate/riscrivete lo StateChart per adattarlo alla vostra applicazione.

LABVIEW STATECHART MODULE


Lesempio precedente stato costruito utilizzando le strutture fondamentali di LabVIEW: cicli, sequenze e strict type def enum. Con LabVIEW 8.5 nato un nuovo modulo, il LabVIEW StateChart Module. Si tratta di un nuovo editor di LabVIEW che vi permette di costruire rapidamente una logica completa per macchine a stati, combinando opportunamente diagrammi di stato multipli e VI di LabVIEW in applicazioni complesse. Inoltre, pu essere eseguito sia su Windows sia su target realtime ed FPGA. Lo StateChart Module particolarmente utile se dovete gestire pi transizioni possibili da uno stato o se volete che eventi specifici attivino una transizione da stati multipli. Per esempio, sulla base di un comando fornito dalloperatore potreste volere abortire la produzione da qualsiasi stato. Lo StateChart Module vi permette di programmare facilmente il sistema in

MODIFICA DI I/O SCAN TASK


Aprite Chemical Mixing.lvproj. Poich la vostra applicazione utilizzer I/O differenti, dovrete modificare I/O Scan Task per leggere e scrivere sui vostri I/O. Ricordate che gli I/O possono esse-

potere testare la nostra logica. A tale scopo, utilizzeremo una variabile globale invece di VI di lettura/scrittura. Questo un modo comodo per testare la nostra logica con controlli e indica-

20

TIPS & TECHNIQUES

ce degli I/O simulati. 5. Aprite Shutdown Outputs.vi. Modificate il VI in modo che scriva sui vostri I/O fisici invece degli I/O simulati.

catelo per impostare i valori di default dei vostri output.

MODIFICA DEL TASK 1 PER MAPPARE GLI I/O


Ora avete un I/O Scan Task completo e routine di inizializzazione e chiusura. Ora dovete modificare la logica. Poich ogni task logico crea una copia locale degli I/O per la sua esecuzione, dovete rimappare gli I/O 1. Sotto il folder StateChart aprite Outputs.ctl e Inputs.ctl. Modificateli per adattarli agli I/O della vostra applicazione. 2. Aggiornate Write Outputs Local.vi e Read Outputs Local.vi per leggere e scrivere i vostri I/O. Modifica/riscrittura dello StateChart Ora dovete inserire la vostra logica. Potete farlo modificando/riscrivendo lo StateChart in modo che esegua la logi-

MODIFICA DELLA ROUTINE DI INIZIALIZZAZIONE


Poich la vostra applicazione utilizzer I/O differenti, dovrete modificare la routine di inizializzazione per impostare i valori di default dei vostri output. 1. Aprite Default Outputs.vi e modifire I/O fisici, I/O in rete o I/O simulati. 1. Aprite il controllo strict type custom IO Cluster.ctl. Esso definisce tutti gli I/O del vostro sistema. 2. Cambiate i controlli nel cluster con quelli richiesti per la vostra applicazione. Salvate IO Cluster.ctl. LabVIEW aggiorner automaticamente la tabella di IO Global.vi con queste modifiche. 3. Aprite Write Outputs.vi e Read Inputs.vi. 4. Modificate i VI in modo che scrivano e leggano i vostri I/O fisici inve-

Nota sullautore
Chris Washington Product Manager di LabVIEW in National Instruments

SCELTI PER TE
Abbiamo scelto per te alcune risorse utili per approfondire le tua conoscenza di LabVIEW.
Forum ILVG.it www.ilvg.it LabVIEW www.ni.com/labviewzone LAVA - LabVIEW Advanced Virtual Architects http://forums.lavag.org/home.html Community DevZone www.zone.ni.com Community on ni.com http://community.ni.com/ Mindstorm NXT http://www.ni.com/academic/mindstorms/community.htm Contenuti LabVIEW on ni.com www.ni.com/labview LabVIEW on ni.com/italy www.ni.com/labview/i LabVIEW Jobs http://www.labviewjobs.com/ The VI Road Show http://viroadshow.blogspot.com/

Readerser vice.it n.511

21

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

05

SISTEMA LOW COST DI MONITORAGGIO MACCHINARIO

ROTANTE
L

R. Russo

Il monitoraggio delle vibrazioni ampiamente impiegato per identificare i malfunzionamenti o per effettuare la manutenzione su condizione del macchinario rotante

dellapplicazione descritta nellarticolo era obiettivo quello di sviluppare un sistema di monitoraggio di

INTRODUZIONE
Il monitoraggio delle vibrazioni ampiamente impiegato per identificare i malfunzionamenti o per effettuare la manutenzione su condizione del macchinario rotante. I sistemi disponibili sul mercato non sempre consentono di effettuare in modo semplice, intuitivo e soprattutto a costi contenuti le funzioni tipiche di questo processo, quali: configurazione per il tipo di macchinario, sorveglianza in tempo reale, identificazione dellavaria su segnalazione di allarme,

macchinario rotante, facilmente configurabile per ogni applicazione, eseguire in tempo reale la sorveglianza con visualizzazione allarmi ed identificazione di eventuali inconvenienti attuali o imminenti ed analizzare i dati in post processing con emissione report dello stato del macchinario, il tutto con un sistema a basso costo ma con prestazioni adeguate per il tipo di macchina sotto esame.

22

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

Figura 1

o previsione anticipata di un eventuale guasto futuro, analisi dei dati acquisiti e generazione del report sulla stato della macchina. Il sistema qui illustrato costituito da una scheda multifunzione National Instruments e da un insieme di software applicativi sviluppati in NI LabVIEW. Lacquisizione si basa sulla scheda NI PCI-6284 scelta per numero di canali di ingresso (32 ADC), risoluzione (18 bit), banda passante (500 kHz distribuibili su uno o pi canali), filtro passa basso a 45 kHz, immunit dalle interferenze elettromagnetiche presenti nel PC, interfaccia con i frontend NI BNC-2090, possibilit di acquisizione sincrona con encoder ed infine per il suo costo contenuto. Il programma sviluppato con NI LabVIEW si basa su tre moduli aventi le funzioni principali di: configurazione, acquisizione/monitoraggio ed analisi/reporting. Nella fig. 1 illustrato il pannello real time del sistema.

scelta macchinario da monitorare; scelta condizione di funzionamento; scelta dei parametri da acquisire; metodo di salvataggio dei segnali temporali o degli spettri; frequenza di campionamento, righe spettrali, finestra temporale; caricamento degli spettri di riferimento e definizione della curva limite con cui deter minare le soglie di allarme per ogni punto di misura Durante lacquisizione, lo spettro di riferimento viene sincronizzato con quello di prova, ed in questa fase possibile: effettuare lautorange di ogni canale; visualizzare, su dei grafici da uno a 16: il segnale temporale, lo spettro istantaneo o medio, con scala in velocit o accelerazione; sovrapporre allo spettro in acquisizione la relativa curva limite ricavata dallo spettro di riferimento; visualizzare gli allarmi di superamento curva limite; identificare i picchi dello spettro con: rotazione alberi, ingranamenti, modulazione di fase, modulazione di ampiezza, frequenze tipiche dei cuscinetti (Bpfo, Bpfi, BSF, FTF) e relative armoniche; rilevare i parametri statistici dei segnali in acquisizione (rms, kurtosis, ecc.); rappresentare i diagrammi ad orbita di due trasduttori ortogonali per identificare squilibrio o disallineamento; salvare gli spettri in modo: singolo, continuo o circolare; memorizzare e visualizzare landamento dei picchi dello spettro relativo al cinematismo del macchinario.

MODULO DI ANALISI E REPORTING


Questo modulo, dal data base di ogni macchinario, richiama i segnali temporali o gli spettri acquisiti e consente di: seguire levoluzione degli spettri con diagrammi waterfall; confrontare gli spettri di un punto di misura al variare della condizione di funzionamento o in funzione del tempo trascorso; identificare i picchi degli spettri con: squilibrio, disallineamento, frequenze di ingranamento, modulazione di ampiezza, modulazione di fase; effettuare lanalisi di tendenza dei rotismi identificati sullo spettro; rappresentare i risultati di prova su fogli Excel sia come spettri che come analisi di tendenza; infine, stendere in modo sintetico lo stato di funzionamento del macchinario.

MODULO DI CONFIGURAZIONE
Il modulo di configurazione legge da un file Excel la specifica del monitoraggio, definita da: identificazione del macchinario: tipo, modello, ubicazione; modello matematico del cinematismo: rotismi, cuscinetti; punti di misura, tipo di trasduttori, (accelerometri o spostamento a laser) e curva di taratura; condizioni di funzionamento Tali parametri, convertiti in un file binario, vengono associati al macchinario da monitorare al momento in cui viene attivato il modulo di acquisizione.

MODULO DI SETUP E ACQUISIZIONE


Questo modulo ha la duplice funzione di stabilire la modalit di acquisizione e di effettuare il monitoraggio in real time. La modalit di acquisizione definisce:

Note sullautore
R.Russo, AgustaWestland

Readerser vice.it n. 515

23

readerservice.it n.15555

SCUOLA DI LABVIEW

05

Training per principianti

MIGLIORARE UN VI ESISTENTE
a cura di Matteo Foini

Quando si eredita un VI da altri sviluppatori, questi possono aver aggiunto delle funzionalit senza fare attenzione al progetto, rendendo sempre pi difficile aggiungere in seguito nuove caratteristiche al VI

obsolescenza del software un problema comune quando ereditate un VI da altri sviluppatori. Esso nasce dal fatto che gli altri sviluppatori possono aver aggiunto delle funzionalit senza fare attenzione al progetto, rendendo cos sempre pi difficile aggiungere in seguito caratteristiche nuove al VI stesso. Una soluzione allobsolescenza quella di effettuare il refactoring del software: un processo di riprogettazione attuato per renderlo pi leggibile e manutenibile, in modo tale che il costo del cambiamento non aumenti nel tempo. Il refactoring cambia la struttura interna di un VI per renderlo pi leggibile e manutenibile, senza cambiarne il suo comportamento osservabile. Questo articolo analizza dei metodi per effettuare il refactoring, presentando alcuni problemi tipici della gestione del codice ereditato.

A. REFACTORING DI CODICE EREDITATO


Scrivete applicazioni software di grandi dimensioni e/o di lunga durata tenendone sempre presente la leggibilit perch il costo della lettura e modifica del software pu verosimilmente superare il costo di realizzazione. Costa di pi ad uno sviluppatore leggere e capire un codice mal progettato che leggere un codice creato per essere leggibile. In generale, sono destinate pi risorse alla lettura e modifica del software che allimplementazione iniziale. Perci i VI facili da leggere e modificare valgono di pi di quelli che non lo sono. Sebbene non sembri intuitivo, un software ben progettato facilita un suo rapido sviluppo in quanto meno suscettibile ad obsolescenza. Se un sistema comincia a diventare obsoleto, potete spendere molto tempo a rintracciare le cause di ci, e questo non produttivo. Anche i cambiamenti possono richiedere pi tempo perch pi difficile capire il sistema.

Figura 1 - VI ereditato

25

SCUOLA DI LABVIEW

05

Figura 2 - VI ereditato dopo il refactoring

Considerate il VI ereditato presente nella fig. 1. Potete eseguire il refactoring del codice come mostrato nella fig. 2. Il codice che ha subito il refactoring fa le stesse cose del codice ereditato, ma pi leggibile. Il codice ereditato vola molte delle linee guida che avete appreso sullo sviluppo dello schema a blocchi. Attraverso il refactoring, potete riprogettare un VI difficile da leggere e manutenere e renderlo leggibile e manutenibile. Questo ne aumenta il valore perch diventa pi facile aggiungere delle caratteristiche o farne il debug. Il processo di refactoring non cambia il comportamento osservabile. Cambiare il modo in cui il VI interagisce con altri client (utenti o altri VI) introduce dei rischi che non sono presenti quando vi limitate a cambiamenti visibili solo agli sviluppatori. Il beneficio di mantenere i due tipi di cambiamenti separati risiede nel fatto che potete gestire meglio i rischi potenziali.

QUANDO FARE IL REFACTORING


Il momento giusto per fare il refactoring quando state aggiungendo delle funzionalit a un VI o ne state facendo il debug. Sebbene siate tentati di riscrivere completamente il VI, dovete riconoscere che c del valore in un VI che funziona, anche se lo schema a blocchi non leggibile. I candidati adatti alla riscrittura completa sono i VI che non funzionano o i VI che soddisfano solo una piccola parte delle vostre necessit. Potete anche riscrivere VI semplici che capite bene. Considerate ci che funziona bene in un VI esistente prima di decidere di effettuare il refactoring. Il refactoring un processo metodico di ristrutturazione di un VI che funziona bene, ma scritto in un modo che ne ostacola la leggibilit, la scalabilit e la manutenibilit.

B. PROBLEMI TIPICI
Quando effettuate il refactoring di un VI, gestite il rischio di introdurre dei bachi facendo piccoli cambiamenti incrementali al VI e verificando il VI dopo ogni cambiamento. Per migliorare lo schema a blocchi, fate piccoli cambiamenti cosmetici prima di affrontare problemi pi impegnativi. Per esempio, pi facile trovare del codice duplicato se lo schema a blocchi ben organizzato e i terminali sono ben etichettati. Sono molti i problemi che possono complicare il lavoro con un VI ereditato. Lelenco seguente descrive problemi tipici e soluzioni di refactoring per rendere i VI ereditati pi leggibili. Lo schema a blocchi troppo disorganizzato Migliorate la leggibilit di un VI disorganizzato spostando degli oggetti allinterno dello schema a blocchi. Per sezioni del VI che sono disorganizzate potete anche creare dei subVI. Per migliorare la leggibilit del VI inserite dei commenti sulle aree che sono disorganizzate.

CONFRONTO TRA REFACTORING E OTTIMIZZAZIONE DELLE PRESTAZIONI


Sebbene possiate effettuare dei cambiamenti che ottimizzino le prestazioni di un VI, non detto che ci debba anche risolversi nel contempo in una procedura di refactoring, che interviene specificamente per cambiare la struttura interna di un VI al fine di renderlo pi facile da leggere, capire e manutenere. Unottimizzazione delle prestazioni non un refactoring perch lobiettivo dellottimizzazione non di rendere il VI facile da capire e modificare. Infatti, lottimizzazione delle prestazioni pu rendere i VI pi difficili da leggere e da capire, cosa che potrebbe essere un compromesso accettabile in certi casi. A volte dovete sacrificare la leggibilit a prestazioni migliori, comunque la leggibilit ha di solito la priorit rispetto alla velocit di esecuzione.

26

SCUOLA DI LABVIEW

Lo schema a blocchi usa nomi di oggetti scorretti e icone poco significative I VI ereditati spesso contengono controlli e indicatori che non hanno nomi significativi. Per esempio, il nome del controllo numero 1, mostrato nella fig. 3, non indica il suo scopo. Il controllo 2 lo stesso controllo, rinominato per rendere lo schema a blocchi pi leggibile e comprensibile.

mi chiamanti aperti del VI con il nuovo nome. Acq Window Temperature.vi un nome pi significativo per il VI. Anche licona del VI dovrebbe chiarire lo scopo del VI. Le icone di default usate per i VI 1 e 2 nella fig. 4 non rappresentano lo scopo del VI. Potete migliorare la leggibilit del VI assegnandogli unicona significativa, come mostrato per il VI 3. Rinominando i controlli e i VI e creando icone dei VI significative, potete migliorare fortemente la leggibilit di un VI ereditato. Il diagramma a blocchi utilizza logica superflua Leggendo lo schema a blocchi nella fig. 5, notate che esso contiene della logica superflua. Se una porzione dello schema a blocchi non va in esecuzione, cancellatela. Capire il codice che va in esecuzione difficile, ma cercare di capire il codice che non va mai in esecuzione inefficiente e rende inutilmente complicato lo schema a blocchi.

Figura 3 - Assegnazione del nome ai controlli 1 Controllo privo di un nome significativo 2 Controllo rinominato in modo pi efficiente

Anche i nomi e le icone dei VI sono importanti per migliorare la leggibilit di un VI. Per esempio, il nome My Acqu.vi, mostrato in alto nella fig. 4, non fornisce alcuna informazione sugli scopi del VI. Potete dare al VI un nome pi significativo salvando una copia del VI con un nuovo nome e sostituendo tutte le istanze del VI con il VI ribattezzato. Un metodo pi semplice consiste nellaprire tutti i programmi chiamanti del VI che volete rinominare, quindi salvare il VI con un nuovo nome. Quando usate questo metodo, LabVIEW cambia automaticamente i link di tutti i programFigura 5 - Logica super flua

Lo schema a blocchi presenta logica duplicata Se un VI contiene della logica duplicata, dovreste sempre effettuare il refactoring del VI creando un subVI per la logica duplicata. Questo pu migliorare la leggibilit e verificabilit del VI. Lo schema a blocchi non impiega la programmazione a flusso di dati Se nello schema a blocchi ci sono strutture sequenziali e variabili locali, il VI con ogni probabilit non fa uso del flusso di dati per determinare il flusso di programmazione. Dovete sostituire la maggioranza delle strutture sequenziali con schemi di progetto basati su macchine a stati. Cancellate le variabili locali ed effettuate collegamenti diretti quando possibile. Luso pi accettabile delle variabili locali quello di far diventare indicatore un controllo.
Figura 4 - Migliorare il nome e licona di un SubVI 1 VI chiamato in modo non significativo 2 VI rinominato in modo pi efficiente 3 Nome e icona del VI significativi

Lo schema a blocchi utilizza algoritmi complicati Gli algoritmi complicati possono rendere un VI difficile da leggere.

27

SCUOLA DI LABVIEW

05

Figura 6 - VI con un algoritmo complicato

Figura 7 - VI sottoposto a refactoring

Quando fate il refactoring di un algoritmo complicato effettuate piccoli cambiamenti per volta e verificate frequentemente il codice, essendo alta la probabilit di introdurre errori. In alcuni casi potete fare il refactoring di un algoritmo complicato usando funzioni integrate in LabVIEW. Per esempio, il VI nella fig. 6 effettua il controllo di nome utente e password rispetto a un database. Potreste effettuare il refactoring di questo VI utilizzando delle funzioni integrate per cercare stringhe, come indicato nella fig. 7. Lo schema a blocchi troppo grande Un VI che ha uno schema a blocchi pi grande della dimensione dello schermo difficile da leggere. Dovete effettuare il refactoring del VI per renderlo pi piccolo. Lazione di scorrimento (scrolling) complica la lettura di uno schema a blocchi e la comprensione del codice.

Potete migliorare uno schema a blocchi troppo grande spostando gli oggetti. Unaltra tecnica per ridurre lo spazio sullo schermo che uno schema a blocchi occupa di creare dei subVI per sezioni di codice allinterno dello schema a blocchi. Se non potete ridurre lo schema a blocchi in maniera da far lo entrare nello schermo, limitate lo scorrimento ad una direzione.

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

28

Readerser vice.it n. 525

SCUOLA DI LABVIEW

05

Training per esperti


RICHIAMARE SHARED LIBRARY IN LABVIEW
a cura di Matteo Foini

Vediamo come utilizzare il Call Library Function Node per richiamare Dynamic Link Library (shared library) su Windows

Mediante protocolli specifici (platform-specific). Mediante il Call Library Function Node per richiamare i seguenti tipi di shared library: - Dynamic Link Library (DLL) su Windows - Framework su Mac OS - Shared Library su Linux Questo articolo tratta luso del Call Library Function Node per richiamare Dynamic Link Library (shared library) su Windows.

possibile utilizzare LabVIEW per richiamare codice scritto in altri linguaggi nei modi seguenti:

FUNZIONI, VANTAGGI E LIMITAZIONI DELLE DLL


Le DLL hanno i seguenti vantaggi: possibile cambiare la DLL senza cambiare alcuno dei VI che si collegano alla DLL, purch non vengano modificati i prototipi delle funzioni. Praticamente tutti i moderni ambienti di sviluppo forniscono supporto per la creazione di DLL. Il Call Library Function Node appropriato soprattutto quando si desidera richiamare codice esistente o si ha familiarit con il processo di creazione di shared library standard. Poich una libreria utilizza un formato standard in ambienti di sviluppo diversi, possibile utilizzare pressoch qualsiasi ambiente di sviluppo per creare una libreria richiamabile da LabVIEW. Consultate la documentazione del vostro compilatore per determinare se potete creare shared library standard. Il compilatore di LabVIEW pu generare codice abbastanza velocemente per la maggior parte dei task di programmazione. Potete richiamare shared library da LabVIEW per svolgere task che un linguaggio basato su testo pu eseguire pi facilmente, come task time-critical. Potete inoltre utilizzare shared library per task che non possibile eseguire direttamente dallo schema a blocchi, come la chiamata di routine di sistema per le quali non esiste alcuna funzione di LabVIEW corrispondente. Le shared library possono anche collegare LabVIEW a codice esistente, bench possa essere necessario modificare il codice in modo che usi i tipi di dato di LabVIEW corretti. Le shared library sono eseguite in modo sincrono, pertanto LabVIEW non pu utilizzare il thread di esecuzione utilizzato da questi oggetti per altri task. Quando un VI in esecuzione, LabVIEW monitora linterfaccia utente, inclusi men e tastiera. Nelle applicazioni multithread, LabVIEW usa un thread separato per i task dellinterfaccia utente. Nelle applicazioni a thread singolo, LabVIEW commuta fra i task dellinterfaccia e i VI in esecuzione. Quando il codice oggetto di una shared library viene eseguito, esso assume il controllo del suo thread di esecuzione. Se unapplicazione ha solo un singolo thread di controllo, lapplicazione attende finch il codice oggetto non termina. Nei sistemi operativi a thread singolo come Mac OS, le shared library impediscono anche lesecuzione di altre applica-

PANORAMICA SULLE SHARED LIBRARY


Su Windows, una shared library si chiama DLL. Una shared library una libreria di dati o funzioni eseguibili utilizzabili da unapplicazione Windows. Tipicamente, una shared library mette a disposizione una o pi funzioni particolari a cui un programma pu accedere creando un link statico o dinamico alla shared library. Un link statico rimane costante durante lesecuzione del programma, mentre un link dinamico viene creato dal programma quando necessario. La libreria memorizzata come file binario. possibile utilizzare qualsiasi linguaggio per scrivere delle DLL, purch le DLL possano essere richiamate mediante una delle convenzioni di chiamata supportate da LabVIEW: stdcall o C. I metodi generali descritti qui per le DLL valgono anche per altri tipi di shared library. Consultate la directory labview\examples\dll per esempi sulluso delle shared library.

CHIAMATE A SHARED LIBRARY


Questo paragrafo descrive lutilizzo di una DLL in LabVIEW.

DESCRIZIONE E DEFINIZIONE DI SHARED LIBRARY


E possibile richiamare la maggior parte delle shared library standard con il Call Library Function Node. Su Windows, tali shared library sono DLL, su Mac OS, sono Framework e su Linux, sono Shared Library. Il Call Library Function Node include un numero elevato di tipi dato e convenzioni di chiamata: potete utilizzarlo per richiamare le funzioni appartenenti alla maggior parte delle librerie standard e personalizzate.

29

SCUOLA DI LABVIEW

05

zioni. LabVIEW non pu interrompere il codice oggetto in esecuzione, pertanto non potete resettare un VI che sta eseguendo una shared library finch lesecuzione non termina. Se volete scrivere una shared library che esegue un lungo task, fate attenzione al fatto che LabVIEW non pu eseguire altri task nello stesso thread mentre tali oggetti vengono eseguiti.

Calling Conventions della finestra di dialogo Call Library Function. La convenzione di default C. (Windows) Potete anche utilizzare la convenzione Windows standard, stdcall.

CONFIGURAZIONE DEI PARAMETRI


Inizialmente, il Call Library Function Node non ha parametri e restituisce un tipo Void. Il tipo di ritorno viene restituito sul terminale destro della coppia superiore di terminali. Se il tipo di ritorno Void, la coppia superiore di terminali inutilizzata. Ogni coppia addizionale di terminali corrisponde ad un parametro aggiunto nellelenco che si trova cliccando sul tab Parameters della finestra Call Library Function. La figura 2 illustra un nodo con un tipo di ritorno Void, un parameFigura 2 tro stringa ed un parametro numerico.

METODO PER CHIAMARE SHARED LIBRARY


Utilizzate il Call Library Function Node per chiamare direttamente una DLL Windows a 32 bit, un Framework Mac OS o una funzione Shared Library Linux. Con questo nodo, potete creare uninterfaccia in LabVIEW per chiamare librerie esistenti o nuove librerie specificamente scritte per luso con LabVIEW. National Instruments raccomanda luso del Call Library Function Node per creare uninterfaccia verso codice esterno. Cliccate con il tasto destro sul Call Library Function Node e selezionate Configure dal men breve per aprire la finestra di dialogo Call Library Function, come illustrato in figura 1. Utilizzate la finestra di dialogo per specificare la libreria, la funzione, i parametri, il valore di ritorno per loggetto e le convenzioni di chiamata su Windows.

TIPO DI RITORNO
Come tipo di ritorno possibile impostare Type a Void, Numeric o String. Void disponibile solo per il tipo di ritorno e non disponibile per i parametri. Utilizzate Void per il tipo di ritorno se la vostra funzione non restituisce alcun valore. Anche se la funzione che richiamate restituisce un valore, potete utilizzare Void per il tipo di ritorno. Quando la funzione restituisce un valore e selezionate Void come tipo di ritorno, il valore restituito dalla funzione viene ignorato. Nota Se la funzione che state richiamando restituisce un tipo di dato non elencato, scegliete un tipo di dato di ritorno che abbia le stesse dimensioni dati di quello restituito dalla funzione. Per esempio, se la funzione restituisce un tipo dato char, utilizzate un intero senza segno di 8 bit. Una chiamata a una funzione in una DLL non pu restituire un puntatore, perch non vi sono tipi puntatore in LabVIEW. Tuttavia, potete specificare il tipo di ritorno come un intero avente le stesse dimensioni del puntatore. LabVIEW tratta quindi lindirizzo come un semplice intero, che potete passare a future chiamate della DLL.

Figura 1 - Finestra Call Library Function

AGGIUNTA E CANCELLAZIONE DI PARAMETRI


Cliccando infine OK,LabVIEW aggiorna il nodo in base alle vostre impostazioni, visualizzando il numero corretto di terminali ed impostando i terminali in base ai tipi di dato corretti. Quando configurate i parametri, la finestra Function Prototype visualizza (in modalit di sola lettura) il prototipo C per la funzione che state costruendo. Per aggiungere parametri al Call Library Function Node, cliccate il pulsante Add a Parameter (simbolo: +). Per rimuovere un parametro, cliccate il pulsante Delete the selected parameter (simbolo: x rossa).

SELEZIONE DEL TIPO DI PARAMETRO


Utilizzate il menu a tendina Type per indicare il tipo di ciascun parametro. Dopo la selezione, potete editare il nome (nel campo Name) per cambiarlo in qualcosa di pi descrittivo. Potete selezionare fra i seguenti tipi di parametri: Numeric

IMPOSTAZIONE DELLA CONVENZIONE DI CHIAMATA


Selezionate la convenzione di chiamata desiderata tra le

30

SCUOLA DI LABVIEW

Array String Waveform Digital Waveform Digital Data ActiveX Adapt to Type Instance Data Pointer Dopo avere selezionato una voce dal men a tendina Type, vedrete comparire altri elementi che potete utilizzare per indicare dettagli circa il parametro e la modalit di passaggio dei dati alla funzione di libreria. Il Call Library Function Node ha una serie di diversi elementi per i tipi di parametri, a causa della variet di tipi di dati richiesti da librerie differenti. Consultate la documentazione della libreria che richiamate per determinare quale tipo di parametro utilizzare. I paragrafi seguenti discutono i differenti tipi di parametri disponibili. (Windows) Consultate labview\examples\dll\data passing\Call Native Code.llb per un esempio duso dei tipi di dati nelle shared library.

Nota Non cercate di ridimensionare un array con funzioni di sistema, come realloc, altrimenti potreste mandare in crash il vostro sistema. Utilizzate invece una delle funzioni di gestione del Code Interface Node (CIN), come NumericArrayResize.

STRING
Utilizzate il men a tendina String format per indicare il formato stringa. Potete scegliere fra i seguenti formati stringa: C String Pointer - una stringa seguita da un carattere nullo (null character) Pascal String Pointer - una stringa preceduta da un byte di lunghezza String Handle - un puntatore a un puntatore a quattro byte per linformazione di lunghezza, seguito dai dati della stringa String Handle Pointer Selezionate un formato stringa che la funzione di libreria si aspetta. La maggior parte delle librerie standard si aspetta una stringa C o una stringa Pascal. Se la funzione di libreria che state chiamando scritta per LabVIEW, potreste preferire luso del formato string handle. Nota Non cercate di ridimensionare un array con funzioni di sistema, come realloc, altrimenti potreste mandare in crash il vostro sistema.

NUMERIC
Per i tipi di dati numerici, dovete indicare lesatto tipo numerico utilizzando il men a tendina Data Type. Potete scegliere fra i seguenti tipi di dati: interi a 8, 16, 32 e 64 bit con segno e senza segno numeri a 4 byte, in singola precisione numeri a 8 byte, in doppia precisione Nota I numeri a precisione estesa ed i numeri complessi possono essere passati selezionando Adapt to Type dal men a tendina Type. Tuttavia, le librerie standard generalmente non utilizzano numeri a precisione estesa e numeri complessi. Utilizzate il menu a tendina Pass per indicare se volete passare il valore o un puntatore al valore.

OPZIONI STRINGA
LabVIEW memorizza le stringhe come array, ossia come strutture puntate da handle. Il Call Library Function Node pu utilizzare puntatori a stinga in stile C e Pascal o LabVIEW string handle. La figura 3 mostra un esempio di LabVIEW string handle.

ARRAY
Utilizzate il men a tendina Data Type per indicare il tipo di dato dellarray. Potete scegliere fra gli stessi tipi di dati disponibili per i parametri numerici. Specificate le dimensioni dellarray in Dimensions. Utilizzate il men a tendina Array format per eseguire una delle scelte seguenti: Array Data Pointer passa un puntatore unidimensionale al dato array. Array Handle passa un puntatore a un puntatore che punta ad un valore a quattro byte per ogni dimensione, seguito dai dati. Array Handle Puntatore passa un puntatore a un array handle.
Figura 3 - Esempio di LabVIEW string handle

Si pu pensare ad una stringa come ad un array di caratteri. Assemblando i caratteri in ordine si forma una stringa. LabVIEW memorizza le stringhe in uno speciale formato, nel quale i primi quattro byte dellarray di caratteri formano un intero a 32 bit con segno che memorizza la quantit di caratteri che appare nella stringa. Quindi, una stringa con n caratteri richiede n + 4 byte per essere memorizzata in memoria. Per esempio, la stringa text contiene quattro caratteri.

31

SCUOLA DI LABVIEW

Quando LabVIEW memorizza la stringa, i primi quattro byte contengono il valore 4 come numero a 32 bit con segno e ciascuno dei successivi quattro byte contiene un carattere della stringa. Il vantaggio di questo tipo di memorizzazione della stringa che nella stringa sono ammessi caratteri NULL. Il formato stringa Pascal quasi identico al formato stringa di LabVIEW, ma invece di memorizzare la lunghezza della stringa come un intero a 32 bit con segno, utilizza un intero a 8 bit senza segno. Ci limita la lunghezza di una stinga tipo Pascal a 255 caratteri. In figura 4 riportata una rappresentazione grafica di una stringa Pascal. Una stringa Pascal lunga n caratteri richiede n + 1 byte di memoria per essere memorizzata.

Tuttavia, se state acquisendo dati da uno strumento che restituisce dati numerici sotto forma di una stringa binaria, come comune con gli strumenti seriali o GPIB, sono possibili valori uguali a zero nella stringa. Per i dati binari dove potrebbero essere presenti dei NULL, dovreste utilizzare un array di interi a 8 bit senza segno. Se trattate la stringa come una stringa tipo C, il programma ritiene erroneamente che sia stata raggiunta la fine della stringa, mentre in effetti lo strumento sta restituendo un valore numerico pari a zero.

WAVEFORM
Quando richiamate una shared library che include un tipo dati waveform, non dovete specificare un valore numerico dal menu a tendina Data Type; il valore di default 8-byte Double. Tuttavia, dovete specificare un valore in Dimensions. Specificare 0 per una singola forma donda, 1 per un array di forme donda. LabVIEW non supporta array di forme donda di dimensione maggiore a 1.

Figura 4 - Rappresentazione grafica di una stringa Pascal

DIGITAL WAVEFORM E DIGITAL TABLE


Specificare dimensione 0 per una singola forma donda o dato digitale, 1 per un array di forme donda o dati digitali. LabVIEW non supporta array di forme donda o dati digitali di dimensione maggiore a 1. Nota Potete passare forme donda, forme donda digitali e dati digitali tramite shared library, ma attualmente non supportato laccesso ai dati allinterno delle shared library.

Le stringhe C sono probabilmente il tipo di stringhe con le quali avrete a che fare pi spesso. Le analogie fra la stringa stile C e i normali array numerici in C diventano molto pi chiare se notate che le stringhe C sono dichiarate come char *. Le stringhe C non contengono alcuna informazione che indichi direttamente la lunghezza della stringa, al contrario delle stringhe LabVIEW e Pascal. Le stringhe C utilizzano un carattere speciale, chiamato carattere NULL, per indicare la fine della stringa, come illustrato in figura 5. NULL ha un valore zero nel set di caratteri ASCII. Notate che questo il numero zero e non il carattere 0.

ACTIVEX
Selezionate uno dei seguenti elementi dal menu a tendina Data Type: ActiveX Variant Pointer passa un puntatore a dati ActiveX. IDispatch* Puntatore passa un puntatore allinterfaccia IDispatch di un server ActiveX Automation. Iunknown* Puntatore passa un puntatore allinterfaccia IUnknown di un server ActiveX Automation.

ADAPT TO TYPE
Utilizzate Adapt to Type per passare tipi di dati LabVIEW arbitrari a DLL. I tipi di dati LabVIEW arbitrari vengono passati alle DLL nei modi seguenti: Gli scalari sono passati per riferimento. Alla libreria viene passato un puntatore allo scalare. Gli array e le stringhe sono passati in base allimpostazione di Data Format. Potete scegliere fra le seguenti opzioni di Data Format: - Handles by Value passa lhandle alla libreria. Lhandle non NULL.

Figura 5 - Carattere NULL, indicatore di fine stringa in C

Pertanto, in C, una stringa contenente n caratteri richiede n + 1 byte di memoria per essere memorizzata, n byte per i caratteri nella stringa ed un byte addizionale per il carattere di terminazione NULL. Il vantaggio delle stringhe tipo C che sono limitate nelle dimensioni solo dalla memoria disponibile.

32

PER LA VOSTRA PUBBLICIT SU QUESTE


- Pointers to Handles passa alla libreria un puntatore allhandle. Se lhandle NULL, lhandle viene trattato come una stringa o un array vuoti. Per impostare un valore quando lhandle NULL, dovete allocare un nuovo handle. I cluster sono passati via reference. Gli elementi scalari negli array o cluster sono inline. Per esempio, un cluster contenente un numerico viene passato come un puntatore ad una struttura contenente un numerico. I cluster allinterno di array sono inline. Le stringhe e gli array allinterno di cluster vengono referenziati da un handle. Nota Quando uno o pi parametri della funzione che volete chiamare in una DLL sono di tipi inesistenti in LabVIEW, assicuratevi che ogni parametro sia passato alla funzione in un modo che permetta alla DLL di interpretare correttamente i dati. Create un file scheletro .c dalla configurazione corrente del Call Library Function Node. Osservando il file .c, potete determinare se LabVIEW passa i dati in modo compatibile con la funzione della DLL. Potete quindi eseguire gli eventuali aggiustamenti necessari.

PAGINE CONTATTATE I NOSTRI AGENTI REGIONALI

LAVORARE CON TIPI DI DATI INSOLITI


Potreste imbattervi in una funzione che si aspetta dati in una forma che il Call Library Function Node non in grado di passare. Specificamente, il nodo non supporta strutture o array contenenti un puntatore ad altri dati o strutture contenenti array flat che possono essere dimensionati in modo variabile. Potete richiamare una funzione che si aspetta un tipo di dato non supportato nei modi seguenti: Se il dato non contiene puntatori, potreste riuscire ad utilizzare la funzione Flatten to String per creare una stringa contenente limmagine binaria dei dati richiesti e passare tale stringa come puntatore ad una stringa C. Lingresso byte order della funzione Flatten to String pu essere utilizzato per specificare correttamente lordine nativo dei byte. Scrivere una funzione di libreria che accetta i dati nella forma utilizzata da LabVIEW e costruisce la struttura dati attesa dallaltra libreria. Questa funzione pu quindi richiamare laltra libreria e recuperare eventuali valori restituiti prima di ritornare. La vostra funzione accetter probabilmente i dati dallo schema come adapt to type, quindi possibile passare qualsiasi tipo di dato del diagramma.

TRI-VENETO IDELFONSO ELBURGO VIA PIRANO, 15 35135 PADOVA TEL. 049 8642988 - FAX 049 8642989 e-mail: ielburg@tin.it

PIEMONTE-LIGURIA-VALLE DAOSTA ROSARIO ROMEO - PUBLIKAPPA VIA SAGRA S. MICHELE, 37 10139 TORINO TEL./FAX 011 723406 e-mail: publika@tin.it

Readerser vice.it n. 526

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

Sede legale - Via Salvatore Rosa, 14 - 20156 Milano, tel +39 02 366092.1 - fax +39 02 366092.280 Sede operativa - Viale Espinasse, 141- 20156 Milano, tel.+39 02 366092.1 - fax +39 02 366092.525 www.ilb2b.it - www.fieramilanoeditore.it

33

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

05

HTTP://WWW
Quando le nostre pagine non bastano, lenorme serbatoio del web pu dare una mano. Su una rivista c ar tacea, anche la pi voluminosa, sarebbe impossibile trattare per esteso tutti gli argomenti relativi a LabVIEW. In molti casi, tuttavia, sul web sono disponibili ar ticoli esaustivi o altri documenti, a cui rimandiamo i lettori interessati Questo VI vi dice quali versioni di LabVIEW sono presenti sul computer dal quale il programma viene eseguito. Oltre alla versione, esso elenca il tipo di ambiente di sviluppo installato (Base, Full o Professional). Rileva inoltre se installata una versione di valutazione di LabVIEW. Il programma scansiona il registro di Windows per le differenti versioni di LabVIEW installate e visualizza le informazioni sulla versione nellindicatore del pannello frontale. Il programma rileva solo le principali versioni di LabVIEW, non i patch. Se stato installato un patch (per es. 7.1.1), esso visualizza solo la versione LabVIEW principale per il patch (7.1). Link alla pagina: ni.com/italian infocode: it3nch

Quale versione di LabVIEW posseggo?

Filtri di pesatura (simulati)


Questo VI simula in continua il segnale specificato. La pesatura in frequenza applicata sia nel dominio del tempo sia nel dominio della frequenza. La pesatura nel dominio del tempo applicata tramite VI di pesatura a percentuale fissa ed il segnale pesato pu essere comparato al segnale dingresso. La pesatura applicata anche nel dominio della frequenza. Gli spettri di potenza dei segnali pesati sono anche riportati in un grafico con lo spettro di potenza del segnale dingresso. Cambiando il segnale simulato e la pesatura si ottiene una buona indicazione di come la pesatura in frequenza (nel dominio del tempo o della frequenza) influisce sul segnale. Sono supportati i seguenti filtri di pesatura: A, B, C, ITU-R 4684, Dolby, CCITT e C-message. Questo programma un VI desempio incluso nei pacchetti NI Sound and Vibration Measurement Suite ed NI Sound and Vibration Toolkit. Link alla pagina: ni.com/italian infocode: it3nch

VI di monitoraggio delle prestazioni


Il VI di monitoraggio delle prestazioni un esempio di come ottenere dei valori dai contatori di prestazioni di Windows da utilizzare per lanalisi delle prestazioni del codice. Laccesso a questi contatori integrati pu essere eseguito su computer che eseguono Windows con il framework .NET. Linterfaccia simile al tool Windows Performance Monitor (perfmon.exe), ma sono ammessi cambiamenti della frequenza di campionamento. I contatori di Windows permettono il tracking di varie statistiche di prestazioni di sistema e applicative. Valori normalmente tracciati sono la percentuale del tempo processore utilizzato (sia totale sia per singoli processi), gli svuotamenti della cache e il numero di thread. Questo tipo di tool particolarmente utile quando si deve ottimizzare del codice complesso o si provano architetture di programma differenti. Anche lanalisi di sistemi multicore (dual-core e quadcore, per esempio) che eseguono programmi paralleli viene cos semplificata. Link alla pagina: ni.com/italian infocode: it3nch

34

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

Riformattazione dei file XML di LabVIEW per semplici editor di testo


I file XML creati in LabVIEW non sono sempre facilmente leggibili allinterno di semplici editor di testo. Vi sono due modi per creare file XML in LabVIEW: (1) usando i VI XML nativi in LabVIEW oppure (2) usando i VI DOM Parser XML che sono inclusi nellInternet Toolkit. I file XML creati con i VI nativi sono scritti come file testuali multilinea, mentre quelli creati con lInternet tookit sono scritti come file a singola linea. In entrambi i casi, i campi XML non sono chiaramente disposti in un modo che evidenzi la relazione genitore/figlio. Ovviamente, questi formati possono rendere i file XML di LabVIEW molto difficili da analizzare e leggere in un normale editor di testo. Questo VI esemplificativo cerca di eliminare tale dilemma. Esso esplora un file XML di LabVIEW ed inserisce degli a capo e delle tabulazioni dove necessario per renderne laspetto in un editor di testo analogo a quello di un editor XML. Dopo lesecuzione di questo VI, i campi genitore/figlio nel file XML sono indentati e spaziati in modo logico. Link alla pagina: ni.com/italian infocode: it3nch

Trasformare un VI LabVIEW in una finestra figlia integrata in una finestra dinterfaccia utente Visual C#
Questo esempio dimostra come trasformare un VI LabVIEW in una finestra figlia integrata di un Windows Form in unapplicazione Visual C#. Quando si esegue Embedded.exe, esso apre un Windows Form .NET, che uninterfaccia utente Visual C#. Il Windows Form include due pulsanti. Quando si clicca il pulsante Open VI, lapplicazione apre test.vi e lo mette in un proprio form come finestra figlia. Quando si finisce di usare il VI sul Windows Form, si deve cliccare il pulsante Stop per chiudere il VI. Cliccate nuovamente il pulsante Open VI per riaprire il VI. Quando avete terminato di usare lapplicazione, cliccate il pulsante Close per uscire dallapplicazione. Link alla pagina: ni.com/italian infocode: it3nch

Impostare la priorit di LabVIEW in Windows


Questo esempio imposta la priorit di LabVIEW in Windows. La priorit di LabVIEW diversa dalla priorit dei VI in LabVIEW perch riguarda lintera applicazione LabVIEW e non un solo VI. Lesempio chiama GetCurrentProcess e SetPriorityClass dalla DLL kernel32. Consultate il sito Web MSDN su msdn.microsoft.com per maggiori informazioni sulla chiamata a queste funzioni. ATTENZIONE: Se impostate una priorit errata, il sistema operativo potrebbe diventare instabile. Link alla pagina: ni.com/italian infocode: it3nch

Realizzare una calcolatrice con un LabVIEW XControl


Questo esempio mostra come utilizzare un LabVIEW XControl. Calculator XControl pu manipolare valori analogamente a una calcolatrice portatile. Il valore dellXControl il valore calcolato corrente indicato in Output. Aprite il Calculator XControl Project incluso in questo esempio per vedere la configurazione dellXControl. Il progetto include i VI e i controlli dellXControl, nonch il VI esemplificativo della calcolatrice che implementa lXControl. Link alla pagina: ni.com/italian infocode: it3nch

35

LA VOCE DEGLI UTENTI

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

Supporto all'uso della nuova piattaforma http://www.ilvg.it/ht/3667


Inviato: Mer Gen. 02, 2008 3:04 am Anno nuovo piattaforma forum nuova... Ho upgradato tutto il forum alla release 3.0.0 di phpBB, dovrebbe essere tutto ok, per ogni problema scrivete qui. Ciao ale914 Bellissima, per ora tutto ok m minzuk Ciao, per ora tutto ok anche per me, molto meglio la grafica anche se la trovo un p troppo compatta. Secondo me era pi chiaro l' highlight dei messaggi non letti come era prima che adesso ma magari solo abitudine! BYE BYE, HAPPY NEW YEAR! Apollon [continua su http://www.ilvg.it/ht/3667] ale914

Utilizzo di INSER (SQL) tramite connessione ODBC via ADODC http://www.ilvg.it/ht/3731


Inviato: Dom Gen 27, 2008 7:30 pm Un saluto a tutti, chi per cortesia, mi pu suggerire un aiuto sull'uso di INSERT (SQL) tramite connessione ODBC via ADO ? Il mio problema che nonostante sia riuscito a collegarmi ad un DB access, tramite ODBC driver via ADO e tutto mi funziona fino allesecuzione di una semplice SELECT, quando invece imposto una semplice INSERT, al lancio della stessa mi appare una Form di Dialogo relativa alloggetto ADO (che utilizzo) con lavvertimento: Loperazione non consentita se loggetto chiuso e di conseguenza linserimento del record nel mio DB fallisce. Il mio problema come eseguire una open (immagino sullADO) ... o sbaglio ? chi mi pu fornire un semplice esempio di connessione ODBC via ADO con il lancio di una INSERT grazie ciao a tutti Roby Usi il toolkit per la connessione ai database o lavori con i blocchi di LabView? Se guardi nella sezione "Articoli" del forum puoi trovare alcune guide sull'argomento database. In generale nello stesso modo in cui realizzi un'istruzione SELECT puoi realizzare un'istruzione INSERT: se usi il toolbox gi pronto c' un blocco per l'apertura della connessione che ti chiede USER ID e PASSWORD. Se invece lavori con i nodi di LabView allora devi sfruttare il metodo OPEN delle connessioni ADO e anche in questo caso devi specificare i parametri del database.Ciao!! MagicBotolo In effetti, ho provato una INSERT con un programmino che stavo facendo io (connessione ad Oracle) e mi d questo errore. Il problema non nella connessione, perch una normale SELECT mi funziona bene. Prover a capire di che errore si tratta...Bubbazz Provo ad indovinare: probabilmente quando si esegue una INSERT non bisogna lavorare sul Recordset, cos come invece logico fare con una SELECT. Purtroppo non ho tempo per provarci, ma per ora mi sembra l'unica spiegazione. Bubbazz [continua su http://www.ilvg.it/ht/3731] Roby

Show Block Diagram" Password http://www.ilvg.it/ht/3730


Inviato: Dom Gen 27, 2008 11:32 am Salve a tutti, sono una nuova iscritta e una nuova interessata a labview ... ... ho per questo problema e chiedo a voi se esiste un metodo per recuperare la password di alcuni sorgenti da modificare lasciati da tempo in archivio e che ora sarebbe interessante spulciare e riutilizzare. Vorrei visionarli per imparare tecniche e trucchi e per magari ottimizzarli. Chi li aveva realizzati non lavora pi con noi ed io mi sto affacciando ora a questo mondo... ... proprio tutto da buttare via ? mi aiutate ? ho dei progetti apribili ma quando vado in "Show Block Diagram" mi chiede la password c' qualche password Recovery per labview ? Grazie mille elenaM [continua su http://www.ilvg.it/ht/3730] elenaM

36

LA VOCE DEGLI UTENTI

"Raddrizzare i fili" http://www.ilvg.it/ht//3615


Inviato: Mar Dic 04, 2007 2:39 pm Avevo letto qualcosa a riguardo di un comando alla tastiera per "pulire" i fili in modo da togliere tutti gli scalini ... qualcuno sa dirmi qualcosa? Grazie mir Ma non che intendi la possibilit di selezionare un filo e spostarlo con le frecce cursore, in modo da riallinearlo ad altri spezzoni? nicola faccio un esempio ...mettiamo che da ubriaco abbia tirato una linea a zigo zago ... non esiste un comando che la raddrizzi e la ottimizzi nel suo percorso? mir Se tu vai colmouse sul filo e clikki il tasto destro ti compare CLEAN UP WIRE che ottimizza il percorso in modo tale da fargli risultare meno incroci e parti nascoste possibili. Credo sia questo che intendi, pero' non mi risulta che ci sia l'equivalente da tastiera. gepponline [continua su http://www.ilvg.it/ht/3615] mir

Personalizzare un indicatore booleano http://www.ilvg.it/ht/3722


Inviato: Mer Gen 23, 2008 11:48 am Ciao! Ho una piccola richiesta. Devo personalizzare un indicatore bouleano da mettere nel Front Panel in maniera che da un quadrato diventi un triangolo. Mi serve per indicare uno stato di movimento che va s o gi a seconda della regolazione automatica. Qualcuno pu indicarmi come si fa? Gazie e saluti!D. dot_entry Ciao,utilizza il menu contestuale di un controllo boleano, vai su "advanced" --> "customize". Ti si apre una finestra che ti consente di personalizzare il tuo controllo coma Grazie! Fino a questo passaggio ero arrivato. Lo usavo per i controlli. Ma come faccio a modificare la forma dell'indicatore? dot_entry Puoi importare anche delle bitmap nei controlli tipo ring picture e poi tradurre le uscite in dei booleani. Professormister Non ho mai usato il customize per modificare le forme delgli indicatori. Qulacuno puo inicarmi come fare o dove posso trovare delle istruzioni per capirne di pi? dot_entry Ne puoi utilizzare due con due forme diverse: in condizioni 'normali' lasci il primo visibile e il secondo nascosco, quando invece si genera una condizione anomala, tramite property node, rendi il primo invisibile e il secondo visibile. Mettendoli sovrapposti l'effetto ovviamente quello di un cambiamento di forma. Bubbazz [continua su http://www.ilvg.it/ht/3722] dot_entry

Variabile globale event case http://www.ilvg.it/ht/3729


Inviato: Ven Gen 25, 2008 5:04 pm CiaoSi puo gestire con l'event case in value change di una variabile globale? Grazie robyf1 Puoi creare nel tuo VI un indicatore invisibile collegato alla variabile globale e gestire l'evento "Change value" dell'indicatore. Ciao!! MagicBotolo Caro robyf1 e caro MagicBotolo dite pure a me come si fa modificando da diagramma il contenuto di una variabile, a generare un evento di interfaccia gestiti dalla struttura "EventCase"??? Secondo me, l'unico modo quello di passare attraverso l'uso di "eventi dinamici" (tasto dx del mouse sul bordo dell'event structure e abilitare "Show Dynamic Event Terminals"), magari usando una "functional global" al posto della globale...paracarro Ma perch... se tu colleghi una Variabile Globale ad un indicatore nel momento in cui la variabile cambia (e ne leggi il valore da assegnare all'indicatore... eventualmente il problema sta nel gestire i tempi di lettura della variabile) dovresti avere l'evento "Change value" da poter controllare con una Event Structure... Ciao!! MagicBotolo Credo che se la variabile viene continuamente letta, e i tempi di lettura vanno bene per quello che si vuole fare, allora pu andare bene la soluzione proposta da MagicBotolo. Altrimenti la soluzione da usare in casi simili quella di registarsi all'evento di cambiamento. Bubbazz [continua su http://www.ilvg.it/ht/3729] robyf1

37

EVENTI

05

AL BIAS 2008 LE NUOVE FRONTIERE DELLA STRUMENTAZIONE


Valerio Alessandroni

l mondo della strumentazione in fase di profonda e rapida innovazione e in questi cambiamenti coinvolge l'industria di processo, i laboratori di test e sperimentazione e tutti gli altri numerosi campi applicativi. Queste novit saranno al centro dellattenzione di Bias 2008, la Biennale Internazionale dellAutomazione, Strumentazione, Microelettronica e ICT per lIndustria, che proprio nella strumentazione ha uno dei suoi punti di forza. La prossima edizione di Bias e Bias Manuf@cturing Solutions (Biennale delle Soluzioni Globali di Information Technology per lIndustria) si svolger dal 27 al 30 maggio 2008 presso il polo fieristico fieramilano di Rho, alle porte di Milano. Allevento parteciper National Instruments. I principali motivi del cambiamento in atto nel mondo della strumentazione sono le continue innovazioni tecnologiche e le modifiche alle normative e agli standard. L'avanzata dei sistemi wireless, ad esempio, che soprattutto nell'industria di processo acquisiscono una posizione sempre pi rilevante, consente ormai di inserire un modulo di trasmissione su strumenti di misura da collocare in posizioni difficili e permette di far dialogare tutta la strumentazione con il sistema di controllo. Questo apre nuove possibilit per quanto riguarda l'ottimizzazione del processo produttivo in s e per la garanzia di sicurezza, intesa sia come safety sia come security. Grazie alla possibilit di sfruttare gli avanzati metodi di diagnostica e di simulazione, la manutenzione e la gestione degli asset pu diventare in questo modo capillare e predittiva. Sempre nell'ambito della comunicazione, procede a grandi passi la diffusione delle reti Ethernet, ormai diventate il sistema nervoso delle fabbriche. Esse consentono, infatti, di connettere la strumentazione da campo con i sistemi di supervisione e di portare poi le informazioni ai livelli superiori, fino ai sistemi gestionali dell'intera azienda. Per quanto concerne il collegamento tra gli strumenti, cresce l'esigenza di ridurre la variet dei sistemi di fieldbus e degli standard pi in generale, mentre si rafforzano e trovano crescenti adesioni i liberi consorzi, come il gruppo FDT (Field Device Tool), che applicano soluzioni innovative hardware e software per assicurare e facilitare l'interoperabilit e il dialogo tra le apparecchiature in campo. Bisogna considerare, infine, che le sempre maggio-

ri esigenze di sicurezza e tutela ambientale, che trovano riscontro in normative in continua evoluzione, richiedono anche agli strumenti prestazioni e funzionalit particolari e stimolano linnovazione. Tutte queste premesse comportano l'esigenza di introdurre nuova strumentazione o di sostituire la precedente. Una situazione che impone alle aziende del settore di cercare momenti in cui incontrare i propri clienti e presentare i vantaggi competitivi della propria offerta e che fa di Bias, unico evento internazionale dedicato al mondo dellautomazione e dellelettronica in tutto il 2008, il contesto migliore per proporre le ultime novit tecnologiche e dare voce ai protagonisti e agli esperti attraverso workshop mirati e convegni di livello internazionale, realizzati in collaborazione con le principali associazioni del settore, che saranno unopportunit unica di aggiornamento professionale e confronto. Unoccasione che gi molte aziende hanno colto: proseguono con trend positivo le adesioni di espositori sia italiani che esteri. Numerose realt hanno infatti gi confermato la propria presenza da Stati Uniti, Giappone ed Europa, ma anche dallAsia, in particolare da Cina, Corea e Taiwan. Anche per il 2008 Bias, dati i positivi ritorni della scorsa edizione, si svolger in concomitanza con altre tre importanti manifestazioni: Fluidtrans Compomac (Biennale Internazionale della Fluidotecnica, Trasmissioni di Potenza e Movimento, Comandi, Controlli, Progettazione), Mechanical Power Transmission & Motion Control (Biennale Internazionale dei Sistemi di Controllo del Movimento, Tecniche di Azionamento e Trasmissioni Meccaniche) e Bi.Man (Biennale della Manutenzione Industriale), creando unofferta espositiva completa di tutta la filiera di prodotti e soluzioni per lindustria di processo e manifatturiera. Bias e Bias Manuf@cturing Solutions 2008 sono organizzate da Fiera Milano Tech, in collaborazione con F&M Fiere & Mostre. Manifestazioni di riferimento per automazione, strumentazione, elettronica e soluzioni IT per lindustria, godono del supporto delle maggiori associazioni nazionali ed internazionali di settore: AIM, Association for Automatic Identification & Mobility; AIS, Associazione Italiana Strumentisti; Anipla, Associazione Nazionale Italiana per lAutomazione; Assintel, Associazione Nazionale delle Imprese ICT; Assipe, Associazione Italiana Progettazione Elettronica; Assodel, Associazione Nazionale Fornitori Elettronica; Fast, Federazione delle Associazioni Scientifiche e Tecniche; Gisi, Associazione Imprese Italiane di Strumentazione e ISA-Italy Section, The Instrumentation, Systems, and Automation Society.

38

Readerser vice.it n. 557

readerservice.it n.19870

REPORT

05

AUTOMATED TEST SUMMIT:


VIRTUALMENTE PERFETTO
Nadia Albarello

La quar ta edizione dellevento annuale organizzato da National Instruments si spostata online per offrire un accesso comodo alle ultime tendenze tecnologiche sulla progettazione di sistemi di test automatizzati

hi ha superato la ritrosia e lo scetticismo iniziali - comprensibili per chi non aveva mai partecipato ad un evento virtuale - e ha preso parte al primo simposio virtuale sulle piattaforme di test organizzato da National Instruments (in tempo reale per la fascia oraria europea), ha potuto visitare la nuova frontiera degli eventi on-line. bastato un click per completare la preregistrazione e catapultarsi in un ambiente 3D che ricorda da vicino ambientazioni virtuali che mirano a simulare la vita reale come secondlife (www.secondlife.com). National Instruments, sempre attenta alle pi recenti rivoluzioni tecnologiche, ha immediatamente colto in questa il potenziale per realizzare eventi di nuova generazione, in grado di coinvolgere in prima persona i visitatori non fisicamente presenti alla manifestazione: una vera rivoluzione. Il visitatore, infatti, vi ha potuto partecipare comodamente dal proprio ufficio o da casa, senza spostarsi : unica prerogativa, possedere un accesso ad Internet. Organizzato come una mostra convegno in piena regola, Automated Test Summit dello scorso 27 novembre, ha alternato presentazioni live nella parte convegnistica a momenti di incontro, interazione ed autentica socializzazione virtuale sia durante gli approfondimenti in chat room a seguire (dal vivo con consulenti tecnici di National Instruments in lingua italiana), che allinterno dell'area espositiva. I visitatori hanno infatti potuto interagire dal vivo con gli espositori di alcune delle maggiori aziende di test grazie ad un ambiente espositivo virtuale e richiedere informazioni attraverso una chat. Aziende del calibro di Microsoft, Intel, Tektronix, Averna e BAE Systems hanno partecipato allevento per condividere competenze tecniche ed esperienze sul campo. Le presentazioni tecniche della mattina hanno illustrato le migliori tecniche e strategie per la progettazione di sistemi di test in due appuntamenti: la Keynote e le sessioni tecniche. La prima, focalizzata sulla progettazione di sistemi di test di ultima generazione, su casi applicativi concreti e come sviluppare un programma di test globale. A seguire, le sessioni tecni-

che hanno affrontato come applicare strategie vantaggiose per la progettazione di sistemi di test, analizzato come utilizzare i migliori strumenti di progettazione per la creazione di sistemi di test riutilizzabili, esaminato le tecniche per lottimizzazione dei sistemi di test, quelle per mantenere lesattezza e la validit del sistema e discusso sullintegrazione di piattaforme di strumentazione diverse. Ogni anno National Instruments collabora con le aziende leader nel mercato tecnologico e dei prodotti ATE (Automated Test Equipment) per la buona riuscita dellAutomated Test Summit, ovvero la pi avanzata occasione di aggiornamento su strategie e tecnologie nel settore del test automatizzato rivolta a tecnici e management delle principali aziende di elettronica, ha dichiarato Kevin Bisking, Automated Test Product Manager di National Instruments. Lidea di rendere levento disponibile ai frequentatori del Web nata a fronte del crescente numero di impegni di tecnici ed ingegneri di oggi. I partecipanti allevento avranno la possibilit di imparare dalle best practice per applicazioni di test in tutta comodit dalla propria postazione. Levento si confermato un successo con oltre 700 partecipanti. Vi aspettiamo alla prossima edizione di giugno!

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

40

Readerser vice.it n. 558

BS_210x297

18-10-2007

15:39

Pagina 1

27-30
maggio

2008
- Rho

Biennale Internazionale dellAutomazione, Strumentazione, Microelettronica e ICT per lIndustria

Il mondo dellautomazione, strumentazione, elettronica e delle soluzioni informatiche per lindustria si d appuntamento a fieramilano per unimperdibile opportunit di business, aggiornamento professionale e confronto con il mercato. In pi la rinnovata concomitanza con Fluidtrans Compomac, Mechanical Power Transmission & Motion Control e BI.MAN creer un unico grande evento fortemente sinergico, la Technology Exhibitions Week, che riunir tutta la filiera di prodotti e soluzioni per lindustria di processo e manifatturiera.

Guarda al futuro del tuo business: partecipa a BIAS 2008!


Organizzato da In collaborazione con Partners

ASSOCIAZIONE ITALIANA STRUMENTISTI

Per informazioni

F&M Fiere & Mostre Srl - Via Caldera 21/C - 20153 Milano Tel. +39 02 40922560 - Fax +39 02 40922599 promo.bias@fieremostre.it readerservice.it

n.19545

www.fieremostre.it

In contemporanea con

REPORT

05

NASCE LABVIEW TOOLS NETWORK


Nadia Albarello

Un archivio centralizzato per oltre 400 strumenti specifici e componenti aggiuntivi di LabVIEW

ational Instruments ha annunciato lespansione di LabVIEW Tools Network, un portale online che rappresenta la maggiore risorsa di componenti aggiuntivi e prodotti per la connettivit per LabVIEW. Nel 2007 sono stati inseriti oltre 100 nuovi strumenti sviluppati da National Instruments e da venditori di terze parti. Il recente ampliamento del network fornisce a tecnici e ingegneri laccesso a oltre 400 prodotti da utilizzare con LabVIEW, come un toolkit in grado di visualizzare le interfacce utente in qualsiasi lingua e uno strumento che automatizza la generazione di modelli, la progettazione di controlli e la regolazione dei parametri di un controllore. La crescita impressionante di LabVIEW Tools Network conferma laumento della popolarit della pittaforma di progettazione grafica LabVIEW", ha affermato Jack Barber, manager del programma Alliance Partner di National Instruments. La comunit di LabVIEW prosegue nella realizzazione di nuovi prodotti che arricchiscono la piattaforma e ne estendono le funzionalit verso nuove aree applicative. LabVIEW Tools Network garantisce agli utenti LabVIEW una corretta identificazione degli strumenti adatti al miglioramento dei propri progetti di sviluppo. Il network online consente di effettuare ricerche tramite parole chiave o di filtrare per funzione/industria, al fine di trovare i prodotti specifici per la propria applicazione. Tra i prodotti disponibili sul network vi sono strumenti che consentono, ad esempio, la conversione di tutti gli elementi testuali presenti nel codice, come il LabVIEW Localization Toolkit realizzato da S.E.A. Datentechnik GmbH e altri componenti aggiuntivi che permettono di effettuare operazioni

avanzate di modellazione, controllo e parametrizzazione su sistemi di misura real-time, tipo ICP per LabVIEW sviluppato da ExpertControl GmbH. LabVIEW Tools Network rappresenta una vetrina per i venditori di terze parti che vogliono mostrare i propri toolkit e componenti aggiuntivi a migliaia di utenti LabVIEW. I venditori hanno inoltre la possibilit di aggiungere un elemento di distinzione ai loro prodotti, validandoli come Compatibile con LabVIEW, grazie a una campagna recentemente annunciata da National Instruments. Le societ partecipanti valutano i propri prodotti in base a una lista di requisiti che include specifiche su documentiazione, stile e funzionalit. Essa viene successivamente sottoposta a National Instruments per lapprovazione (a sua discrezione). Il programma Compatibile con LabVIEW consente ai clienti di effettuare acquisti consapevoli e spinge i venditori di terze parti a realizzare prodotti di alta qualit. Per maggiori informazioni sugli oltre 400 componenti aggiuntivi presenti su LabVIEW Tools Network e per iscriversi al programma Compatibile con LabVIEW visitate il sito www.ni.com/labviewtools.

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

42

Readerser vice.it n. 559

CENTRO CONGRESSI FIERA DEL GARDA

MARTED 24 GIUGNO I 2008

La mostra
In uno spazio specifico sar allestita unesposizione a cura delle aziende partecipanti, in cui sar possibile toccare con mano lattuale offerta commerciale.

Il convegno
Nel corso della giornata si susseguiranno seminari tecnici tenuti dalle aziende espositrici della durata di 30 minuti ciascuno.

I contenuti
VforM - Vision for Manufacturing la terza mostra convegno dedicata alla tecnologia della visione artificiale. Organizzato con il contributo delle riviste SdA-Soluzioni di Assemblaggio, Automazione Oggi e Automazione e Strumentazione. Levento Vision for Manufacturing nasce in collaborazione con IMVG, Italian Machine Vision Group e vede il supporto di ASSOAUTOMAZIONE Associazione Italiana Automazione e Misura, appartenente alla Federazione ANIE (Confindustria), di AIdA-Associazione Italiana di Assemblaggio, di SIRI-Associazione Italiana di Robotica e Automazione, del Polo della Robotica di Genova e con il patrocinio di EMVA - European Machine Vision Association. VforM si rivolge a progettisti, system integrator, responsabili e tecnici della produzione che necessitano di risolvere problematiche in ambito manifatturiero legate a: ispezione e controllo della qualit, guida robot, rilevamento presenza, posizione e orientamento, controllo dimensionale, identificazione e OCR ecc.
Il programma, lagenda e i titoli dei seminari saranno aggiornati, man mano che verranno confermati, sul sito www.ilb2b.it/vm

Per aderire
on line allindirizzo www.ilb2b.it/vm e via fax compilando il coupon allegato e inviandolo allo 02.36.6092.515 La partecipazione ai seminari e alla mostra gratuita, cos come la documentazione e il buffet.

Per informazioni
Tel. 02.36.6092.510 - 511 Fax. 02.36.6092.515 Email: vm@fieramilanoeditore.it Web: www.ilb2b.it/vm

Come arrivare
In auto: da Venezia: autostrada A4 uscita Brescia est da Mantova: statale Goitese da Parma: statale Asolana da Cremona: autostrada A21 uscita Brescia est In treno: stazione di Brescia 15 km dal Centro Fiera di Montichiari stazione di Desenzano del Garda 10 km dal Centro Fiera di Montichiari

PRESSO LA SEDE DI:

IN COLLABORAZIONE CON:

ORGANIZZATO DA:

COUPON DI ADESIONE LA PARTECIPAZIONE GRATUITA

24 GIUGNO 2008

cognome azienda settore indirizzo citt e-mail

nome posizione aziendale

prov tel

cap fax

Consenso ai sensi dellart. 23 del D.Lgs n. 196 del 30 giugno 2003. Letta la nota informativa riportata su questa rivista, esprimi il tuo consenso al trattamento, alla comunicazione dei tuoi dati personali ed ai correlati trattamenti ai soggetti che svolgono le attivit indicate nella informativa stessa. In mancanza del tuo consenso la registrazione non potr essere eseguita. ACCETTO NON ACCETTO Esprimi/nega il tuo consenso alla comunicazione dei dati personali ed ai correlati trattamenti ad aziende terze che ne facciano richiesta ai fini pubblicitari e di marketing. ACCETTO NON ACCETTO

Compila il coupon e invialo tramite fax al n 02.36.6092.515 oppure registrati sul sito www.ilb2b.it/vm

A P P U N TA M E N T I

05

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

CORSI DI LABVIEW
LABVIEW BASE 1: INTRODUZIONE
Milano: 3, 4, 5 Marzo 14, 15, 16 Aprile 19, 20, 21 Maggio 23, 24, 25 Giugno Roma: 26, 27, 28 Maggio Padova: 6, 7, 8 Maggio

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

LABVIEW BASE 2: SVILUPPO


Milano: 6, 7 Marzo 17, 18 Aprile 26, 27 Giugno Padova: 20, 21 Maggio Roma: 29, 30 Maggio

LABVIEW INTERMEDIATE 2: CONNETTIVIT


Milano: 10, 11 Marzo 12, 13 Giugno Padova: 4, 5 Marzo Roma: 10, 11 Aprile

APPUNTAMENTI NATIONAL INSTRUMENTS


MAQUINA HERRAMIENTA
Bilbao 4, 5, 6 Marzo

LABVIEW COMPACTRIO: FONDAMENTI DI SVILUPPO


Milano: 12, 13, 14 Marzo 16, 17, 18 Giugno

MC4 MOTION CONTROL FOR...


Bologna 11 Marzo

LABVIEW ACQUISIZIONE DATI E CONDIZIONAMENTO DEI SEGNALI


Roma: 10, 11 Marzo 16, 17, 18 Giugno Padova: 1, 2, 3 Aprile Milano: 1 2, 13, 14 Maggio

NIDAYS 08 SPAGNA
Madrid 13 Marzo

NI ROADSHOW
Padova 2 Aprile Bologna 8 Aprile Ancona 10 Aprile Catania 16 Aprile

LABVIEW INTERMEDIATE 1: TECNICHE DI DESIGN PROFESSIONALI


Roma: Milano: 7, 8, 9 Aprile 9, 10, 11 Giugno

NI AUTOMOTIVE FORUM
Torino 12 Giugno

NI AUTOMOTIVE FORUM
Barcellona 22 Giugno

Padova: 17, 18, 19 Giugno

LABVIEW SVILUPPO APPLICAZIONI REAL-TIME


Padova: 15, 16, 17 Aprile

NI AUTOMOTIVE DAY
Monaco 3 Giugno

FIERA AEROSPACE TESTING LABVIEW VISIONE ARTIFICIALE ED ELABORAZIONI IMMAGINI


Milano: 15,16 Maggio Monaco 15, 16, 17 Aprile

FIERA AUTOMOTIVE TESTING EXPO


Stoccarda 6, 7, 8 Maggio

44

I N T E R V I S TA

05

orthrop Grumman ha partecipato a corsi in sede dedicati a LabVIEW. Abbiamo intervistato Ermanno Pieragostini, progettista sistemi di collaudo presso lazienda. Salve a tutti, sono Ermanno Pieragostini dipendente di Northrop Grumman Italia, azienda operante nel settore difesa. La mia mansione quella di Progettista Senior Test Equipment. Il mio reparto fa parte della direzione operazioni. Abbiamo il compito di progettare e produrre sistemi di collaudo automatizzati che vanno installati nelle linee collaudo di produzione. Sono utente LabVIEW da molti anni. Ho partecipando a molti corsi NI (Base, Intermediate, NI-DAQ, ecc.). I corsi vengono programmati in base alle nostre esigenze lavorative e/o dal progetto da svolgere, nonch alladdestramento di nuove figure che vengono a far parte del reparto, siano esse tecnici o ingegneri. Il contatto con il personale National Instruments rimane aperto anche dopo che si effettua un corso, per chiarimenti o dubbi successivi che ci possono sorgere. Lo scambio di know how comunque continuo allinterno del nostro team di lavoro.

Sviluppiamo le nostre applicazioni con LabVIEW sin dalla versione 5.0. Nel tempo abbiamo sperimentato e usato tutte le versioni fino alla attuale 8.50. Questa evoluzione, aggiunta ai corsi di formazione svolti, ha fatto crescere le performance e le funzionalit del prodotto sviluppato. Inoltre, la standardizzazione di LabVIEW per mezzo della VLA ha permesso di raggiungere delle economie di scala, riducendo i costi di sviluppo, integrazione e training. Per far s che il know how acquisito venga subito messo in pratica, i corsi di formazione vengono organizzati prima di iniziare un nuovo progetto.

D:Perch LabVIEW? R:

Insieme al personale NI si trova la soluzione pi appropriata per poi adottarla, quindi la soluzione al problema. Un esempio pratico poterebbe essere quello di aver acquisito il modo di sviluppare il software con unarchitettura chiara, cos da portare vantaggio in tempi di sviluppo a modifiche successive effettuate da unaltra persona. Essendo io la persona con pi anni di esperienza nellutilizzo di LabVIEW allinterno della nostra azienda, mi accorgo chi partecipa ad un corso di formazione viene da me meno frequentemente a chiedere consigli relativi allo sviluppo software. Ci evidenzia leffetto ottenuto dai corsi.

S, viene compilato il modulo di fine corso per verificare il grado di efficienza/soddisfazione dei corsi da parte dei partecipanti. Il modulo entra a far parte del database aziendale.

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

Durante lo svolgimento dei corsi, tipicamente customizzati alle nostre esigenze, si cerca sempre di portare in risalto quelle difficolt incontrate durante le fasi di sviluppo di un progetto software.

Stiamo gi pensando di usare per il prossimo progetto i prodotti NI (sia software che hardware) e sicuramente li useremo anche nei progetti futuri.

Readerser vice.it n. 570

ora dei benefici D:Parliamo dai corsi R:

derivati

D:Progetti futuri? R:

45

READER SERVICE
IL READER SERVICE E ON LINE!

www. READERSERVICE.IT
Sempre pi al passo con i tempi, LabVIEW WORLD la prima rivista in Italia a fornirvi il servizio di reader service on line. Ora possibile ricevere maggiori informazioni su prodotti e servizi presentati negli articoli e/o inserzioni pubblicitarie LabVIEW WORLD semplicemente registrandosi al sito: WWW.READERSERVICE.IT Compilate la cartolina virtuale e noi provvederemo a inoltrare tempestivamente la richiesta all'azienda interessata, che invier al vostro indirizzo tutta la documentazione disponibile.
In alternativa compilate questa scheda e inviatela al numero di fax:

0236519123
NUMERO DELLA RIVISTA: NUMERI DI READER SERVICE

VICE

READE FIERA MILANO EDIZION SERVICE READER SE MILANO EDIZIONI F DER SERVICE FIERA MILANO READER SERVICE CE READER SERVICE EDIZIONI F FIERA READER SERVICE READ
IL SERVIZIO GRATUITO

EDIZIONI FIERA MILANO EDI

Dati sul lettore


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

Citt Nazione

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

AAA
RICERCHIAMO
INGEGNERE DI LABORATORIO (RIF: LG/0673/TO) Manpower Professional Il nostro cliente, azienda leader nella progettazione e produzione di dispositivi e componenti meccanici ed idraulici per applicazioni Aeronautiche, ci ha incaricati di ricercare una/un: INGEGNERE DI LABORATORIO (RIF: LG/0673/TO) La posizione sar inserita allinterno dellente Ricerca e Sviluppo e riporter al Responsabile di Laboratorio. Alla posizione sar affidata lintera gestione delle prove di qualifica idrauliche e meccaniche dei componenti sperimentali, a partire dalla lettura delle specifiche di prova. In particolare il ruolo avr i seguenti compiti: Set Up dei banchi di prova Preparazione software di controllo del banco e di acquisizione dei dati di interesse Predisposizione ed esecuzione di prove complesse Redazione di relazioni descrittive dei banchi prova e di report sui test effettuati Il candidato ideale un giovane Ingegnere Aeronautico, Meccanico o Elettronico che possiede una buona conoscenza della programmazione in generale e dimestichezza nelluso di Matlab e LabVIEW. Requisiti: Sono richiesti una buona padronanza della lingua inglese, lutilizzo di Office e di applicativi ERP (quali SAP o BaaN). La conoscenza e lapplicazione delle norme: EN/AS 9100 - CE 1702/2042 - AER-Q-2110 costituir titolo preferenziale. Completano il profilo precisione, doti relazionali e attitudine al lavoro di gruppo. Sede di lavoro: Nord Est Piemonte. Per candidarsi contattare: laura.giordani@manpower.it Sede di lavoro: Piemonte. www.altamira.it

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

TEST LABORATORY Cobra Automotive Technologies S.p.A. Collocazione Organizzativa. La posizione sar inserita alle dirette dipendenze del Respon sabile dell'area Test Laboratory, nell'ambito del Dipartimento Technical Operations. Principali Responsabilit. Sviluppare e definire le specifiche dei software applicativi da utilizzare nelle prove di validazione del prodotto, nell'ambito dell'attivit di test di laboratorio. Collaborare nella definizione delle specifiche dei Test Equipment necessari nella fase di validazione. Requisiti: Formazione: Laurea in Ingegneria Elet tronica o in Informatica. Esperienza pluriennale nello sviluppo di software applicativi con buona pratica anche degli aspetti hardware correlati. Precedenti esperienze in ambito automotive costituiscono titolo preferenziale. Competenze specifiche: conoscenza dei linguaggi di programmazione C, LabView e Test Stand. Conoscenze hardware di elettronica analogica e digitale, di sistemi embedded con microcontrollori e di sistemi PXI per uso in laboratorio prove. Plus: conoscenza principali protocolli di comunicazione automotive, tipo CAN e LIN Lingue Straniere: conoscenza inglese fluente. Eventuale conoscenza della lingua tedesca costituir titolo preferenziale. Completano il profilo autonomia decisionale, metodica consolidata nel problem solving e capacit di relazionarsi a diversi livelli, anche con fornitori esterni Contratto: Lazienda offre assunzione a tempo indeterminato. Linquadramento e la retribuzione sa ranno commisurati al profilo del candidato. Sede di lavoro: Lombardia www.altamira.it

e Hardware nei settori Aerospazio (Avionica, Spazio, Difesa), Telecomuni cazioni e Industriale (Elettronica, Tra sporti, Automotive, Energia) nei principali poli tecnologici italiani (Milano, Roma, Genova, Torino, Napoli). Lazienda organizzata per centri di competenza: software embedded (software life cycle, firmware, BSP, drivers, sistemi operativi Real Time, middleware), software applicativo (supervision & control, dbms, datawarehouse), hardware design (hardware life cycle, FPGA, board, test equipment, processori). Per far fronte ad una richiesta da parte di un ns. importante cliente di Genova, cerchiamo candidati con almeno 1 anni di esperienza nella integrazione di apparati di Telecomu nicazione. Ai candidati richiesta esperienza in ambito maintenance e system integration. Requisiti: Buona competenza nello sviluppo di sistemi con Labview; Definire una proposta implementativa partendo dai requisiti Progettare i processi di test dei dispositivi elettronici; Predisporre le attrezzature e il banco di test (HW e SW); Sviluppo ed esecuzione test di load-stress dapparato; Automatizzare configurazioni apparati, sequenze test e gestione Test Report; E la conoscenza di: Protocolli di comunicazione: Ethernet, ATM, PDH, SDH/Sonet; Linguaggi di scripting: TCL/TK, script shell unix; Strumentazione di laboratorio: generatori di traffico, bus analyzer; Gradita la conoscenza di Java. Candidature allindirizzo recruiting_ge@infosol.it, specificando il riferimento: RIF: GE-SYS-37-07 Sede di Lavoro: Genova INFO SOLUTION SPA , via della Burrona 51 20090 Vimodrone (MI), Tel.: 02 27409353, Fax: 02/25029042 E-mail: recruiting_ge@infosol.it

TLC - AUTOMATION TESTER E SYSTEM INTEGRATOR INFO SOLUTION SPA - servizi Info Solution fornisce consulenza Software

47

INFORMATIVA AI SENSI DEL CODICE IN MATERIA DI PROTEZIONE DEI DATI PERSONALI (Decreto Legislativo n. 196 del 30 giugno 2003) Il Decreto Legislativo n. 196 del 30 giugno 2003 ha la finalit di garantire che il trattamento dei Vostri dati personali si svolga nel rispetto dei diritti, delle libert fondamentali e della dignit delle persone, con particolare riferimento alla riservatezza e allidentit personale. Vi informiamo, ai sensi dellart. 13 del Codice, che i dati personali da Voi forniti ovvero altrimenti acquisiti nellambito dellattivit da noi svolta, potranno formare oggetto di trattamento, per le finalit connesse allesercizio della nostra attivit. Per trattamento di dati personali si intende la loro raccolta, registrazione, organizzazione, conservazione, elaborazione, modificazione, selezione, estrazione, raffronto, utilizzo, diffusione, cancellazione, distribuzione, interconnessione e quantaltro sia utile per lesecuzione del Servizio, compresa la combinazione di due o pi di tali operazioni. Il trattamento dei Vostri dati per le finalit sopraindicate avr luogo prevalentemente con modalit automatizzate ed informatiche, sempre nel rispetto delle regole di riservatezza e di sicurezza previste dalla legge, e con procedure idonee alla tutela delle stesse. Il titolare del trattamento dei dati personali Edizioni Fiera Milano S.p.A., con sede legale in Milano, nella persona del legale rappresentante; responsabili del trattamento sono i dipendenti e/o professionisti incaricati da Edizioni Fiera Milano S.p.A., i quali svolgono le suddette attivit sotto la sua diretta supervisione e responsabilit. Il conferimento dei dati personali da parte Vostra assolutamente facoltativo; tuttavia leventuale rifiuto ci rende impossibile lesecuzione di alcun adempimento contrattuale. I dati, o alcuni di essi, per i fini di cui dianzi, potranno essere comunicati a: societ appartenenti al medesimo gruppo societario di cui fa parte Edizioni Fiera Milano S.p.A.; soggetti esterni che svolgano funzioni connesse e strumentali alloperativit del Servizio, come, a puro titolo esemplificativo, la gestione del sistema informatico, lassistenza e consulenza in materia contabile, amministrativa, legale, tributaria e finanziaria; soggetti cui la facolt di accedere ai dati sia riconosciuta da disposizioni di legge o da ordini delle autorit. Un elenco dettagliato dei predetti soggetti disponibile presso Edizioni Fiera Milano S.p.A. Vi informiamo, inoltre, che potrete consultare, modificare, opporVi o far cancellare i Vostri dati o comunque esercitare tutti i diritti che Vi sono riconosciuti ai sensi dellart. 7 del Codice, inviando una lettera raccomandata a Edizioni Fiera Milano S.p.A. Via Salvatore Rosa, 14 - 20156 Milano. Se volete consultare il testo completo del Codice in materia di protezione dei dati personali, visitate il sito ufficiale dellAutorit Garante www.garanteprivacy.it

LA VOCE DEGLI UTENTI

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

Comitato di redazione Redazione

Pubblicit

48

Con decine di migliaia di prodotti per lelettronica, trovi sempre la soluzione per trasformare ogni tuo lavoro in un grande successo.

rswww.it

readerservice.it n19610

M L ab ul V ti c I E or

5 8 . dy W Rea e

NI LabVIEW.
Un solo limite, la tua immaginazione.

Comunica attraverso vari protocolli, tra cui Bluetooth Realizza e programma il tuo robot con LEGO MINDSTORMS NXT grazie al software powered by NI LabVIEW Programma gracamente applicazioni real-time concorrenti

Sviluppa la tua interfaccia uomo-macchina (HMI)

Controlla indipendentemente diversi motori servo

Scarica codice su microprocessori a 32-bit e FPGA

Real-Time ed Embedded PIATTAFORMA

Elaborazione dei Segnali

Test ad Elevate Prestazioni

Controllo Industriale

LabVIEW Real-Time Module LabVIEW FPGA Module LabVIEW SDK per Microprocessori Piattaforma Hardware Embedded NI CompactRIO

Grazie alla progettazione grafica di sistemi in LabVIEW, gli esperti di settore possono sviluppare complessi sistemi real-time ed embedded con FPGA, DSP e microprocessori. LEGO Group ha scelto un software grafico basato su NI LabVIEW per programmare in parallelo e controllare motori: la potenza intuitiva di LabVIEW anche a portata di bambino.

>>

Espandi la tua immaginazione e consulta le risorse tecniche su ni.com/labview85/i

02 41 309 277

NATIONAL INSTRUMENTS ITALY S.r.l. Via Anna Kuliscioff, 22 20152 Milano Tel.: 02-413091 Fax: 02-41309215 P.IVA/C.F.: 09777310153 CCIAA Milano 1317488 Iscr. Trib. Milano 296073/7502/23 S.r.l.
I I I I I I I

2007 National Instruments Corporation. Tutti i diritti riservati. CompactRIO, LabVIEW, National Instruments, NI e ni.com sono marchi commerciali di National Instruments. Altri prodotti e nomi aziendali citati sono marchi commerciali delle rispettive aziende. LEGO e MINDSTORMS sono marchi commerciali di LEGO Group utilizzati previa autorizzazione. 2007-9147-821-122-I

readerservice.it n.20049