52
LA PRIMA RIVISTA ITALIANA PER LA COMUNITÀ LABVIE W 05 FEBBRAIO 2008 E 5,00 ISSN 1972-3008 IL FUTURO DI LABVIEW PROGETTAZIONE DI SOFTWARE PER IL CONTROLLO MACCHINA RICHIAMARE SHARED LIBRARY IN LABVIEW In caso di mancata consegna restituire all’editore che si impegna a pagare la relativa tassa presso il CMP di Roserio - Milano

labviewworld-05

Embed Size (px)

Citation preview

Page 1: labviewworld-05

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

05FEBBRAIO2008E 5,00

ISSN

197

2-30

08

IL FUTURO DI LABVIEW

PROGETTAZIONE DI SOFTWAREPER IL CONTROLLO MACCHINARICHIAMARE SHARED LIBRARY IN LABVIEW

In ca

so d

i man

cata

cons

egna

resti

tuire

all’e

ditor

e che

si im

pegn

a a

paga

re la

relat

iva ta

ssa p

resso

il CM

P di

Rose

rio -

Milan

o

cop_labview5:cop_labview5 12-02-2008 12:01 Pagina 1

Page 2: labviewworld-05

Progetto1:Layout 1 7-02-2008 15:41 Pagina 1

readerservice.it n.19995

Page 3: labviewworld-05

05S C E N A R I O

Apriamo l’editoriale 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 gliadepti di LabVIEW ed alla presenza agli eventi ed alle fiere specializzate più importanti, stiamoinfatti raggiungendo una platea davvero molto ampia. Siamo entrati in nuove zone geografiche (soprattutto nell’Italia del Sud), siamo conosciuti in nuovisettori 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 parlateanche 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.

UNA RIVISTA CHE CRESCE CON VOI

LabVIEW_05:LabVIEW_05 12-02-2008 16:25 Pagina 1

Page 4: labviewworld-05

S O M M A R I O

UNA RIVISTA CHE CRESCE CON VOILa comunità dei nostr i lettor i è incont inua espansione

01

IL FUTURO DI LABVIEWPar la James Truchard, cofondatore d iNat ional Instruments e co ideatore d iLabVIE W

03

UNA NUOVA STRUTTURA PERLA GESTIONE DELLA MEMORIAIN LABVIEWL’uso del la st ruttura In P lace E lementaumenta l ’e f f ic ienza del la memoria

06

09

12

14

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

SEI UN FAN DI LABVIEW?

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

PREVENIRE IL CROSS-LINKINGDI VI CON IL NUOVO LABVIEWPROJECT POTENZIATOLabVIE W 8.5 inc lude nuovi tool pera iutare a prevenire i l c ross- l inking

LE NOVITA’ DEL PDA MODULE DILABVIEW 8.5Il modulo PDA di LabVIEW 8.5 contiene moltenuove funzionalità e correzioni di bug

PROGETTAZIONE DI SOFTWAREPER IL CONTROLLO MACCHINADescriviamo un’architettura di progettazionesoftware basata sulle macchine a stati

22 SISTEMA ‘LOW COST’ DI MONITORAGGIO MACCHINARIOROTANTEI l monitoraggio delle vibrazioni permettedi identificare i malfunzionamenti

42 NASCE LABVIEW TOOLS NETWORKUn archivio centralizzato per oltre 400strumenti e componenti aggiuntivi di LabVIEW

MIGLIORARE UN VI ESISTENTESpieghiamo alcuni metodi per eseguirei l refac tor ing del soft ware

25

29

DALLA CARTA AL WEBLink ad ar t ico l i d i approfondimento ealt r i documenti d isponibi l i su l web

34

36

38

40

LA VOCE DEGLI UTENTIEcco a lcuni spunt i d i d iscuss ioneappars i d i recente sul Forum di ILVG. i t

AL BIAS 2008 LE NUOVE FRONTIEREDELLA STRUMENTAZIONESta per aprire l’edizione 2008 della BiennaleInternazionale dell’Automazione, Strumen ta -zione, Microelettronica e ICT per l’industria

AUTOMATED TEST SUMMIT:VIRTUALMENTE PERFETTOLa quarta edizione dell’evento annuale organiz-zato da National Instruments si è spostata online

44 APPUNTAMENTIOltre ad organizzare propr i cors i eseminar i , Nat ional Instruments saràpresente a numeros i event i

45 INTERVISTAS apete ut i l i zzare LabVIE W? Forsetroverete la proposta che fa per voi

RICHIAMARE SHARED LIBRARYIN LABVIEWVediamo come utilizzare il Call Library FunctionNode per richiamare DLL su Windows

47 LABVIEW E LAVOROProposte concrete per co loro che sannout i l izzare LabVIE W

AAA

2

05

LabVIEW_05:LabVIEW_05 14-02-2008 15:11 Pagina 2

Page 5: labviewworld-05

3

A T U P E R T U

05

D: Pur senza entrare nel merito di progetti stra-tegici delicati, che non possono essere ovvia-

mente divulgati, può descriverci a grandi lineeche cosa possiamo attenderci, da oggi al 2010, intermini di nuovi prodotti e tecnologie?

R:Grazie alla nostra visione di progettazione grafica disistema, abbiamo un focus ben definito sull’innovazione

in alcune aree. Per esempio, contiamo di ampliarel’accessibilità agli Fpga per gli esperti dei singoli settori,offrendo loro nello stesso tempo maggiori prestazioni. Vi èquindi il settore della strumentazione RF, dove introdurremoprodotti di prima classe ed aumenteremo le capacità softwa-re. Quindi, metteremo a disposizione piattaforme di rilasciopiù complete, per la nostra crescente base di clienti OEM,basate sulla nostra piattaforma RIO differenziata. Infine, con-tinueremo 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 edella progettazione.I prossimi anni saranno molto interessanti, perché il ritmo diinnovazione tecnologica, in continuo aumento (soprattuttoper quanto riguarda le tecnologie embedded), renderà possi-bili sistemi ciber-fisici che miglioreranno la nostra vita in moltimodi diversi, assai più di quanto sia avvenuto in passato.L’applicazione dei sistemi embedded si estenderà in nuovearee e, nello stesso tempo, diventerà più complessa che inpassato. Molte di queste nuove applicazioni sono inimmagi-nabili persino oggi, ma la velocità dell’innovazione accelereràed avrà un impatto globale, a cui sarà entusiasmante prende-re parte. La chiave di volta è nei tool software, che offrirannoagli esperti dei singoli settori la produttività necessaria persfruttare pienamente le nuove opportunità dei sistemi embed-ded. Il ruolo che NI giocherà si baserà sul nostro approccio diprogettazione grafica di sistema. Esso è focalizzato su unobiettivo molto chiaro: mettere in grado gli esperti dei singolisettori, in tutti i campi, di essere il più possibile produttivi nel-la progettazione e nell’installazione di questi sistemi.

D: Nel 2008 verranno introdotte release impor-tanti? Che cosa possiamo attenderci dalla

nuova versione di LabVIEW che verrà lanciataquest’anno?

R:Il nostro attuale sviluppo di LabVIEW si basa su un otti-mo equilibrio tra feedback degli utenti esistenti, utilizza-

bilità, stabilità ed integrazione di tecnologie di punta, inclusele piattaforme multicore e le capacità wireless. Il team di svi-luppo di LabVIEW sta anche lavorando con impegno per sfrut-tare molti degli attuali trend industriali nel mercato embed-ded, creando e favorendo uno sviluppo all’interno della comu-nità finalizzato a capacità avanzate IP (intellectual property) ea virgola fissa, integrando il silicio di prossima generazione edassicurando una stretta connettività con tecnologie e prodotticomplementari. La piattaforma LabVIEW continua inoltre asvilupparsi sui modelli di calcolo espansivi offerti dalla messaa 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 esper-ti di settore a sviluppare in modo più rapido ed efficiente in

IL FUTURO DI LABVIEWIn occas ione degl i NIDays, e pr ima del l ’annuale conferenza NIWeek di Aust in, abbiamo l ’onoredi ospitare sul le nostre pagine James Truchard, i l mit ico ‘D ottor T ’, cofondatore d i Nat ionalInstruments e ideatore, ins ieme a Jef f Kodosky, d i LabVIE W

Vale

rio

Ale

ssan

dron

i

Afferma James Truchard: “ I pross imi anni saranno molto interessant i , perché i l r i tmo di innovazione tecnologicarenderà poss ib i l i s i s temi c iber-f i s ic i che migl iorerannola nostra v i ta in molt i modi d ivers i”

LabVIEW_05:LabVIEW_05 12-02-2008 16:25 Pagina 3

Page 6: labviewworld-05

4

05A T U P E R T U

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

D: La piattaforma LabVIEW sta diventandosempre più integrata con prodotti di terze

parti. Questa tendenza all’integrazione sarà con-fermata anche in futuro? In caso affermativo, chetipo di tool state attualmente prendendo in con-siderazione?

R:Fin dall’inizio, LabVIEW ha sempre fatto da battistrada almercato del test e della misura con driver per strumen-

tazione e connettività pronti all’uso. Infatti, quest’anno rag-giungeremo la quota record di ben 6.000 driver sulla nostrarete di driver per strumentazione, compresa la connettività conoltre 250 fornitori differenti. Mano a mano che la nostra visio-ne e le capacità dei nostri prodotti sono evolute oltre il testand measurement, il nostro focus sulla progettazione graficadi sistema ha facilitato la creazione ed il continuo supporto ditool embedded e di progettazione di terze parti, tra cui il soft-ware Simulink e MATLAB di The MathWorks, SolidWorks ed

anche principali fornitori di silicio, come Analog Devices, ARMe Freescale Semiconductor. Infine, mentre NI continua adestendere la portata delle sue applicazioni, anche il ruolo delprogramma ‘Alliance Partner’ di National Instruments inespansione e della fedele comunità LabVIEW cresce perimportanza ed impatto. Per facilitare questa crescita nel futu-ro, abbiamo costruito una rete di tool di terze parti supportatiper organizzare, certificare e promuovere questi tool di terzeparti.

D: In quali nuove aree applicative si espanderàLabVIEW?

R:Negli ultimi 22 anni, la risposta migliore a questadomanda l’hanno data gli utenti LabVIEW - portando

LabVIEW nel Large Hadron Collider del CERN, sotto l’oceano,nello spazio ed in modo autonomo in territori vergini. Parlandoin modo più formale, siamo entusiasti delle nuove capacità diLabVIEW che lo rendono ideale per nuove aree come la pro-gettazione ed i test di alto livello nel campo delle comunica-zioni, la vera progettazione embedded, la robotica e la fisicadelle alte energie. Ma LabVIEW sta trovando applicazioneanche come piattaforma per l’ingegneria ’verde’ a livello glo-bale, permettendo di risparmiare energia e di prevenirel’inquinamento.

D: Oggi, LabVIEW è un linguaggio universaleche permette agli sviluppatori ed ai tecnici di

tutto il mondo di parlare fra loro, scambiare ideee capirsi. Avevate previsto un tale successo plane-tario? Che responsabilità sentite di avere permantenere e migliorare ulteriormente un risulta-to di questa rilevanza?

R:Effettivamente, ci eravamo preparati a raggiungere qual-cosa di così importante come LabVIEW è diventato -

semplicemente non sapevamo sempre come arrivarci. Primache LabVIEW fosse concepito nelle menti di Jeff Kodosky emia, mi ero prefisso il semplice obiettivo di ‘Fare per i tecniciciò che il foglio di calcolo aveva fatto per gli analisti finanzia-ri’. Nei primi anni ’80 il settore finanziario iniziava a vedere ibenefici offerti dall’uso del software per eseguire calcoli che inprecedenza erano impossibili o irragionevolmente improdutti-vi. Tenendo presente questo obiettivo, abbiamo riunito alcunidegli sviluppatori più capaci per creare quello che oggi cono-sciamo come LabVIEW. Ma, ancora una volta, siamo soprat-tutto entusiasti ed orgogliosi dei nostri clienti per quello chesono riusciti a fare con la piattaforma LabVIEW. Sentiamo assolutamente una grande responsabilità non solonel proseguire un costante miglioramento, ma anche nell’in-trodurre importanti innovazioni per rendere ancora più auto-noma la comunità. Finché i nostri tecnici rimarranno entusia-sti della tecnologia e cercheranno di migliorare la nostra vita

Il dr. James Truchard, presidente e CEO di NationalInstruments, è stato cofondatore dell’azienda nel1976, mentre lavorava presso l’Università del Texasad Austin. Sotto la guida di Truchard, NationalInstruments ha pionierizzato lo sviluppo delsoftware e dell’hardware della strumentazionevirtuale, che ha rivoluzionato il modo con il quale itecnici approcciano le applicazioni di misura eautomazione. Nel 1986, Truchard e Jeff Kodosky hanno inventatoil software di sviluppo grafico LabVIEW. Mentre NI è cresciuta, passando da un team di solitre uomini ad un’organizzazione globale che haoggi oltre 4.000 dipendenti, Truchard ha gestitol’azienda con un approccio deliberatamenteconservativo, che ha portato ad un costantesuccesso. Egli ha promosso l’innovazione, la crescitae l’espansione in un’impresa mondiale di grandesuccesso, pur mantenendo lo spirito imprenditorialeche aveva caratterizzato i primi anni di attività diNational Instruments. Grazie a ciò, NI è cresciutacostantemente nella sua storia ormai trentennale.Truchard ed il suo team di management hannocreato una cultura aziendale vincente, tanto che larivista Fortune ha assegnato a NI il titolo di unadelle ‘100 migliori aziende per cui lavorare’ inAmerica negli ultimi otto anni.Truchard è anche un leader industriale riconosciuto.Nel 2007 è stato eletto membro della NationalAcademy of Engineering, cosa che è largamenteconsiderata la massima onorificenza nellaprofessione ingegneristica. Egli è uno dei soli 156Texani ad essere stato eletto nella storiadell’Accademia. Truchard è stato anche nominato‘The University of Texas Distinguished EngineeringGraduate’ e, nel 2003, è stato ammesso alla RoyalSwedish Academy of Engineering Sciences. Nel2002, la rivista di elettronica Electronic Design hainserito 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 Yearper il settore del test and measurement. Inoltre, larivista Worth ha eletto Truchard uno dei migliori CEOper tre anni consecutivi, sottolineando il suo focussu crescita e innovazione a lungo termine.Mentre dirige con successo l’innovazionedell’azienda nel software e nell’hardware, Truchardpartecipa a molte organizzazioni comunitarie. Peresempio, egli è membro ed ex presidentedell’Engineering Foundation Advisory Council,collabora strettamente con l’University of Texas adAustin come membro del Chancellor's Council ed èmembro dell’Electrical and Computer EngineeringVisiting Committee dell’università. Truchard è anchemembro fondatore dell’Austin Software Council edè stato membro dell’Advisory Council delGovernatore del Texas Rick Perry sulla DigitalEconomy. Truchard è anche un sostenitore attivo delprogramma NI LEGO Mindstorms che, insieme allaTufts University ed alla Pitsco LEGO EducationalDivision, cerca di introdurre gli studenti di ogni etàalle basi dell’ingegneria e dell’informatica. Nel2005, il Governatore Perry ha chiesto a Truchard dipresiedere il Texas Science, Technology, Engineering,and Math Industry Advisory Council, che affrontadirettamente il declino di interesse e dipreparazione dei giovani nei confronti di unacarriera in campi tecnici.Prima di fondare NI, Truchard ha lavorato comemanaging director della divisione misure acustichedegli Applied Research Laboratories pressol’University of Texas ad Austin. Truchard ha undottorato in ingegneria elettrotecnica, nonché unMaster of Science ed un Bachelor of Science infisica, tutti conseguiti presso l’University of Texas adAustin.Nella comunità NI, James Truchard è familiarmentenoto come ‘Dottor T’.

BIOGRAFIA

Read

erse

rvic

e.it

n. 5

01

LabVIEW_05:LabVIEW_05 12-02-2008 16:25 Pagina 4

Page 7: labviewworld-05

Brad

woodhead.com/automation

Contact: +39 026 64 29 61©2008 Molex

{ LA VITA È DURA.QUI

Più l’ambiente industriale lavora in condizioni

diffi cili e più aumenta la necessità di disporre di

prodotti Brad® all’interno della rete.

Forniamo i prodotti più resistenti e affi dabili adatti

alle applicazioni più esigenti. Offriamo una gamma

completa di prodotti per tutte le reti, quali, ad

esempio, DeviceNet™ , PROFIBUS e l’emergente

Industrial Ethernet per il plant fl oor.

Indipendentemente dai componenti che utilizzate

nelle Vostre applicazioni, consentiteci di diventare

il Vostro partner principale: BradCommunications™,

BradConnectivity™ , BradControl™ e BradPower™.

Brad®: il potenziamento dell’infrastruttura industriale

tramite prodotti e soluzioni...tramite l’automazione,

l’innovazione risultati e i.

A presto 25-30 Maggio 2008 Fieramilano, Rho

Labview_210x197mm.indd 1Labview_210x197mm.indd 1 23.01.2008 16:53:1123.01.2008 16:53:11

readerservice.it n.19890

Page 8: labviewworld-05

6

05W H A T ’ S N E W

C on LabVIEW 8.5, potete utilizzarela struttura In Place Element peraccedere in modo efficiente agli

elementi presenti all’interno di com-plesse strutture dati: per esempio, ese-guire operazioni su un elemento pre-sente all’interno di un array, un cluster,

un variant o una forma d’onda senzache il compilatore di LabVIEW debbafare copie dei dati e mantenerle inmemoria. La struttura In Place Element operainfatti sui dati e li restituisce a livellodella stessa locazione di memoria.

USO DELLA STRUTTURA IN PLACE ELEMENTPER AUMENTARE L’EFFICIENZALa struttura In Place Element può ese-guire una varietà di comuni operazioniLabVIEW in modo più efficiente rispet-to ai tradizionali metodi di program-

mazione LabVIEW. La fig. 1 descriveuno scenario nel quale potete utilizza-re la struttura In Place Element permigliorare l’efficienza di un VI.LabVIEW indicizza un array di interi a32 bit senza segno, incrementa il terzoelemento dell’array e rimettel’elemento nella stessa posizione del-l’array. Per rimettere il nuovo valorenello stesso array, la funzione ReplaceArray Subset richiede che colleghiatel’array ed i valori degli indici dell’arrayagli ingressi array ed index della fun-zione. Quando eseguite il VI, LabVIEWesegue una nuova copia dell’array e lamette in memoria. Potete utilizzare la

UNA NUOVA STRUTTURA PER LA GESTIONE DELLA MEMORIA IN LABVIEWMolte operaz ioni comuni in LabVIE W, come manipolare un e lemento di un array e inser i re i l va lore r i su l tante nel lo stesso punto, r i chiedono la creaz ione di copie dei dat i e i l mantenimento d i ta l i va lor i in memoria . Questo aumenta l ’uso del la memoria

Figura 1 - L’ immagine descr ive una sempl ice s i tuaz ione nel la quale vengono eseguite operaz ioni su un e lemento di un array ed i lr i su l tato v iene r ipos iz ionato nel la stessa pos iz ione del l ’array

a cu

ra d

i M

atte

o Fo

ini

Figura 2 - Potete guadagnare ef f ic ienza r impiazzando un e lemento di un array con la st ruttura I n P l a ce E l e m e n t

LabVIEW_05:LabVIEW_05 12-02-2008 17:32 Pagina 6

Page 9: labviewworld-05

W H A T ’ S N E W

7

struttura In Place Element per evitaredi eseguire copie addizionali dell’arraye dei valori degli indici, come illustratonello schema a blocchi di fig. 2.Il nodo Array Index/Replace Elementspresente sulla cornice della struttura InPlace Element indicizza un array diinteri a 32 bit senza segno, incremen-ta il terzo elemento dell’array e rimet-te l’elemento nella stessa posizionedell’array, analogamente allo schema

a blocchi del primoesempio. In questo caso,tuttavia, LabVIEW nondeve creare o immagaz-zinare copie addizionalidei valori dell’array inmemoria.La struttura In PlaceElement richiede cheogni elemento indicizza-to nell’array venga sosti-tuito a livello del nodopresente sul lato destrodella struttura. Poiché il compilatoreLabVIEW sa qualeelemento sostituire,Lab VIEW non deve crea-re o immagazzinarecopie addizionali deivalori dell’array inmemoria.

PRIMI PASSI CON LA STRUTTURAIN PLACE ELEMENTLa struttura In Place Element non èsituata sulla paletta delle strutture. Po te te trovarla sulla paletta MemoryCon trol seguendo il percorso Pro -gram ming»Application Control»Me mory Control sulla paletta dellefunzioni. Da questa paletta, potete tra-scinare la struttura In Place Element in

uno schema a blocchi. La fig. 3 visua-lizza una struttura In Place Elementvuota su uno schema a blocchi.La struttura In Place Element utilizzanodi fissati sulla cornice per eseguireoperazioni sui dati. Potete cliccare conil tasto destro sul bordo della strutturae selezionare il nodo appropriato inbase al tipo di operazione che deside-rate eseguire (fig. 4). Ogni nodo consi-ste di un terminale sul lato sinistro euno sul lato destro della struttura (fig.5). Dopo avere scelto un nodo e colle-gato un ingresso (un array, un cluster,un variant o una forma d’onda), pote-te selezionare un elemento sul latosinistro della struttura, eseguire opera-zioni sull’elemento all’interno dellastruttura e collegare il valore risultantesul lato destro per sostituire il valorenella locazione esistente (fig. 6).

QUANDO UTILIZZARELA STRUTTURA IN PLACE ELEMENTL’ovvia domanda che potreste porre inmerito alla struttura In Place Element èquesta: “Quando dovrei utilizzarla?”Come avviene per ogni operazione diottimizzazione del codice, la cosamigliore è aspettare finché non sapetequal è il collo di bottiglia del vostrosistema. Quando l’elemento dell’array,

Figura 4 - Conf iguraz ione del nodo per l ’ indic izzaz ione di un array

Figura 5 - Nodi r i su l tant i per l ’ indic izzaz ione di un array

Figura 3 - Struttura I n P l a ce E l e m e n t vuota

LabVIEW_05:LabVIEW_05 12-02-2008 17:33 Pagina 7

Page 10: labviewworld-05

8

05W H A T ’ S N E W

Figura 6 - Una struttura I n P l a ce E l e m e n t con un array co l legato a un nodo

Figura 7 - Potete ut i l i zzare una struttura I n P l a ce E l e m e n t annidata con Fo r Lo o p per eseguire operaz ioni in modo ef f ic iente su t ip id i dat i estremamente compless i

Note sull’autoreLaureato in ingegneria nucleare alPolitecnico di Milano, Matteo Foini lavorain qualità di Technical Marketing Engineerpresso National Instruments Italy

Read

erse

rvic

e.it

n. 5

03

del cluster o della forma d’onda a cui lastruttura accede è semplice (come unI32 o DBL), il guadagno di prestazioni èpiccolo. In generale, comunque, con lastruttura In Place Element potete ese-guire operazioni su strutture dati com-plesse in modo più efficiente rispetto aitradizionali metodi di programmazionedi LabVIEW. Per esempio, consideriamoil caso di un array di cluster, ciascunoutilizzato per descrivere una persona. Ilcluster è composto da campi come

Nome, Data di nascita e Occupa -zione e da un array delle caratteristichedella persona. Per eseguireun’operazione su un singolo campo intutti i cluster, potete utilizzare la struttu-ra In Place Element ed un For Loop (fig.7). Senza la struttura In Place Element,LabVIEW eseguirebbe una copia del clu-ster ad ogni iterazione del For Loop.Questo comporterebbe anche la copia diNome, Data di nascita e così via,anche se non do vete eseguire operazio-

ni su tali campi. Non si ottiene un incre-mento di velocità in tutte le applicazio-ni, ma la struttura In Place Element ècomoda quando dovete estrarre un ele-mento da un tipo di dati complesso,modificarlo e rimetterlo nell’array.

LabVIEW_05:LabVIEW_05 14-02-2008 15:14 Pagina 8

Page 11: labviewworld-05

05W H A T ’ S N E W

9

Quando un VI in memoria fa rife-rimento ad un subVI diverso daquello presente durante l’ultimo

salvataggio (in altri termini, uno a cuinon intendevate fare riferimento), siverifica il problema di cross-linking.Per esempio, LabVIEW potrebbe cari-care accidentalmente una revisionepassata dello stesso codice el’applicazione, di conseguenza, pre-senterebbe un comportamento impre-visto, difficile da capire e correggere:un problema che ha frustrato anche gliutenti di LabVIEW più esperti.

CHE COS’È IL CROSS-LINKING?In LabVIEW, il cross-linking si verifica acausa di una differenza esistente fra iVI in memoria e i VI su disco. Gli ele-

menti di LabVIEW in memoria hannoun nome unico, ma su disco possonoesistere più VI con lo stesso nome. Di conseguenza, quando si cerca dicaricare un VI da disco, LabVIEW con-trolla innanzitutto se un VI già presen-te in memoria ha lo stesso nome e, inbase al risultato, chiede di utilizzare ilVI in memoria o di scartarlo e utilizza-re il VI che sta su disco.Per i subVI però LabVIEW non chiedeall’utente se vuole usare il VI in memo-ria o il VI di uguale nome su disco maaggancia il VI presente in memoria emostra un messaggio di avvertimento,dove afferma che LabVIEW ha caricatodei VI da posizioni impreviste.Benché sia facile definire il cross-lin-king, prevenirlo è comunque difficile.

Una pratica comune fra gli utentiLabVIEW è creare dei backup progres-sivi di tutte le directory di lavoro; diconseguenza, su una macchina di svi-luppo vi sono spesso molte copie diogni VI.Tra i problemi che il cross-linking puòcausare agli utenti ricordiamo:

• Un comportamento imprevisto delsistema, introdotto dal caricamento diun subVI che ha una funzionalitàdiversa da quella del subVI che siintendeva richiamare• Modifiche accidentali che risultanodalla modifica di un VI diverso da quel-lo previsto o dal salvataggio nonintenzionale di VI in versioni più recen-ti di LabVIEW

PREVENIRE IL CROSS-LINKING DI VI CON IL NUOVO LABVIEW PROJECTPOTENZIATOIns ieme a molt i a l t r i migl ioramenti e nuove caratter ist iche, LabVIE W 8.5 inc lude tooldest inat i ad a iutare g l i sv i luppator i a prevenire i l c ross- l inking

a cu

ra d

i M

atte

o Fo

ini

Figura 1 - Un LabVIE W Projec t con un conf l i t to Figura 2 - Un secondo VI v iene referenziato come dipendenza,provocando i l conf l i t to

LabVIEW_05:LabVIEW_05 12-02-2008 17:33 Pagina 9

Page 12: labviewworld-05

10

05W H A T ’ S N E W

• Una ridotta produttività causata dal-lo spreco di tempo nella ricerca e solu-zione del cross-linking e nel ripristinodei VI.

STRUMENTI IN LABVIEW PER PREDIRE, PREVENIRE E RISOLVERE IL CROSS-LINKINGLabVIEW 8.5 introduce un insieme dinuovi tool progettati per aiutare gliutenti LabVIEW non solo a identificaree prevenire possibili situazioni di cross-linking, ma anche a risolvere il proble-ma laddove si è già verificato. La mag-gior parte di queste nuove caratteristi-che si trova integrata nel LabVIEWProject, introdotto in LabVIEW 8 al finedi migliorare la gestione dei target (peresempio, aiutando gli sviluppatori agestire simultaneamente i VI sui siste-mi host ed embedded).Ma un LabVIEW Project può contenerealcuni elementi in conflitto fra loro. Unconflitto è un potenziale cross-linkche si verifica quando LabVIEW cercadi caricare un VI che ha lo stesso nomedi un elemento già presente nel pro-getto. Quando LabVIEW identifica unconflitto (in altri termini, una potenzia-le situazione di cross-linking), essovisualizza la parola [Conflict] dopo ilnome del VI nel LabVIEW Project (fig.1). Un triangolo giallo di avvertimentoappare in corrispondenza di ogni ele-mento in conflitto presente nel progetto.

Nuove funzionalità di LabVIEW 8.5 viaiuteranno a prevenire il cross-linkinged eliminare i conflitti:

1. Opzione Show Full Paths migliorata2. Nuova pagina Files3. Nuova finestra di dialogo ResolveProject Conflicts4. Possibilità di sostituire facilmente unVI in un LabVIEW Project 5. Nuove finestre di dialogo FindCallers e Find SubVIs

Per spiegare come potete sfruttarequesti nuovi tool con il LabVIEWProject per risolvere i conflitti, esami-niamo ogni nuova caratteristica con unsemplice esempio per illustrare ciascunpunto.

DEPENDENCIESPotete esaminare i file a cui il LabVIEWProject fa riferimento per localizzare lasorgente del conflitto. Per aiutare a pre-venire i conflitti, LabVIEW traccia auto-

maticamente la gerarchia di ogni ele-mento che viene incluso nel LabVIEWProject. Quando aprite un VI da un pro-getto, LabVIEW aggiunge nelle Depen -dencies tutti i membri della gerarchiadel VI che non sono già presenti nelLabVIEW Project. LabVIEW organizza leDependencies in tre cartelle - vi.lib,user.lib e Items in Memory. Quandoaprite un VI che non è attualmente nelLabVIEW Project, LabVIEW aggiunge ilVI dentro Items in Memory. La sezioneDependencies si aggiorna quandoaggiungete, rimuovete o salvate un ele-mento nel LabVIEW Project (fig. 2).

VIEW FULL PATHSIl modo più semplice per determinarela causa di un conflitto (che potrebbepotenzialmente portare al cross-lin-king) è quello di evidenziare il percor-so completo relativo a ogni elementodel progetto con accanto il messaggio[Conflict]. Potete cliccare con il tastodestro sulla radice del progetto e sele-zionare View»Full Paths dal menuabbreviato per visualizzare la colonnaPaths ed osservare i percorsi dei fileche corrispondono agli elementi delLabVIEW Project (fig. 3).Benché l’osservazione dei percorsi com-pleti non sia tecnicamente nuova (pote-te infatti attivare i percorsi completianche in LabVIEW 8 e 8.20), in prece-denza non c’era una colonna separatanel LabVIEW Project. Grazie ad unlayout più pulito e più facile da capire,l’opzione Full Paths vi aiuta a vederel’esatta posizione su disco dove si trovaun elemento in conflitto. Per rimuovereil conflitto, dovete rinominare o rimuo-vere dal progetto tutti gli elementimeno uno aventi lo stesso nome.

Figura 3 - I l LabVIE W Projec t con v isual izzaz ione dei percors i complet i degl i e lementi

Figura 4 - La pagina Fi les v isual izza le pos iz ioni degl i e lementi su d isco

LabVIEW_05:LabVIEW_05 12-02-2008 17:33 Pagina 10

Page 13: labviewworld-05

W H A T ’ S N E W

11

PAGINA FILES NEL PROGETTOPotete vedere le posizioni dei file anchesulla nuova pagina Files. Tramite lapagina Items, che visualizza il conte-nuto del progetto, potete interagire coni componenti tipici di un progetto, esi-stenti già in LabVIEW 8 e 8.20, comeMy Computer, Build Specifications eDependencies (fig. 3). La nuova paginaFiles visualizza gli elementi delLabVIEW Project che hanno un file cor-rispondente su disco (fig. 4).Con la pagina Files, potete avere unaconferma visiva del fatto che VI indesi-derati ed altri file situati in directoryobsolete non siano accidentalmenteinclusi in un particolare progetto.Potete inoltre eseguire operazioni sudisco come rinominare, riorganizzare erimuovere elementi.Per esempio, se rinominate un file sul-la pagina Files, LabVIEW rinomina quelfile su disco. Potete spostare file sudisco utilizzando la pagina Files senzainfluenzare negativamente il linkingdei VI. Quando spostate un VI attraver-so la pagina Files, LabVIEW aggiornaautomaticamente tutti i chiamantiall’interno di quel LabVIEW Project conl’ultima informazione di posizione delfile disponibile per quel VI.Potete passare da una pagina aun’altra cliccando con il tasto destrosu una cartella o un elemento sotto untarget e selezionando Show in ItemsView o Show in Files View dalmenu rapido (le voci appaiono solo sel’elemento esiste nell’altra vista).

FINESTRA DI DIALOGO RESOLVE CONFLICTSUn altro metodo per risolvere i conflit-ti in un progetto è quello di usare ilpulsante Resolve Conflicts nella tool-bar del LabVIEW Project per visualizza-re la finestra di dialogo ResolveProject Conflicts.Per risolvere i conflitti potete cliccarecon il tasto destro su un elemento inconflitto e selezionare ResolveConflicts dal menu abbreviato, oppu-re utilizzare l’area di dialogo ResolveProject Conflicts, ristabilendo in tal

modo i percorsi corretti (fig. 5).Questa finestra di dialogo visualizzatutti i conflitti presenti in un progetto.All’interno della finestra potete con-frontare due VI in conflitto con lo stes-so nome (si può richiamare lo stru-mento di differenziazione grafica esi-stente in LabVIEW).Potete anche osservare i dettagli diogni elemento che selezionate, comepercorso dell’elemento, nome, data dicreazione e data di modifica.Mano a mano che risolvete ciascunconflitto nell’area di dialogo, l’elencosi aggiorna automaticamente.

REPLACE WITH...Se rilevate che uno o più VI fanno rife-rimento erroneamente a subVI sba-gliati e non desiderate utilizzare l’areadi dialogo Resolve Project Con -flicts per correggere il problema, ave-te altre opzioni per eliminare il conflit-to. Potete ridirigere tutti i chiamanti inmodo che facciano riferimento ad unsubVI con un percorso differente clic-cando con il tasto destro su un VI inconflitto nel LabVIEW Project e sele-zionando Replace with dal menuabbreviato per scegliere il correttosubVI su disco (fig. 6). LabVIEWaggiorna automaticamente tutti glielementi che fanno riferimento al per-corso errato con il nuovo percorso.

CONCLUSIONELabVIEW 8.5 ha aggiunto nuoveimportanti caratteristiche al LabVIEWProject. Tali caratteristiche riguardanoanche la risoluzione del cross-linking,un vecchio problema per molti svilup-patori che utilizzano LabVIEW (special-mente per grandi applicazioni). Graziea queste nuove funzionalità, avete adisposizione vari modi con cui predire,evitare e riparare le situazioni di cross-linking, ottenendo maggiore produtti-vità e ridotti tempi di debugging.

Figura 5 - La f inestra d i d ia logo Resolve Projec t Conf l ic ts of f re un metodo automatizzato per r imuovere i conf l i t t i dal LabVIE W Projec t

Figura 6 - C l iccate con i l tasto destro su un Fi le e se lez ionate R e p l a c e w i t hper scegl iere un nuovo f i le

Read

erse

rvic

e.it

n. 5

04

LabVIEW_05:LabVIEW_05 12-02-2008 17:33 Pagina 11

Page 14: labviewworld-05

12

05W H A T ’ S N E W

Esaminiamo le nuove funzionalitàe correzioni di bug programmatecontenute nel modulo per PDA di

LabVIEW 8.5.

LETTURA E SCRITTURA DI DATI SUL PANNELLO FRONTALE UTILIZZANDO IL DATA BINDINGPotete utilizzare il data binding perleggere o scrivere dati sul pannellofrontale tramite shared variable pub-blicate in rete. Potete utilizzare il databinding con qualsiasi controllo o indi-catore del pannello frontale supporta-to dal PDA Module. Questa nuova fun-zionalità semplifica il processo di inviodei dati da visualizzare sul pannellofrontale, eliminando la necessità diqualsiasi programmazione; gli oggettisul pannello frontale sono connessidirettamente alle shared variable pub-blicate in rete ed è possibile inviare ericevere dati senza alcuna istruzionesullo schema a blocchi. Nelle figure 1 e2, un grafico denominato Data è sta-to configurato in modo da leggere ilvalore di una forma d’onda da unashared variable pubblicata in rete.Dopo la configurazione tramite il menù

Properties del grafico, non occorrealcun collegamento sullo schema ablocchi per portare i dati nel grafico.

SUPPORTO A INLINE C NODEPotete utilizzare l’Inline C Node peraggiungere codice C allo schema a

LE NOVITÀ DELPDA MODULE DI LABVIEW 8.5 I l modulo per PDA di LabVIE W 8.5 cont iene molte nuove funzional i tà e correz ioni d i bugprogrammate

a cu

ra d

i M

atte

o Fo

ini

Figura 2 - D opo la conf iguraz ione t ramite i l menù Proper t ies del graf ico, non occorre a lcun col legamento sul lo schema a b locchi perpor tare i dat i nel graf ico

Figura 1 - Conf iguraz ione di un graf ico denominato D at a per leggere i l va loredi una forma d’onda da una shared var iable pubbl icata in rete

LabVIEW_05:LabVIEW_05 12-02-2008 17:33 Pagina 12

Page 15: labviewworld-05

W H A T ’ S N E W

13

blocchi (fig. 3). L’Inline C Node è simi-le al Formula Node di LabVIEW, consupporto e funzionalità addizionali per

la programmazione a basso livello. Potete utilizzare l’Inline C Node perbrevi blocchi di codice che non potete

implementa-re facilmentein VI grafici. L’Inline C No -de supportaqualsiasi por-zione dicodice C,i n c l u s edirettive as -sembly e #de -fi ne, che sin-tatticamentestia fra paren-tesi graffe in

un file C. La verifica sintattica di unInline C Node avviene in fase di edita-zione e gli errori vengono indicati dapunti rossi sulla barra sinistradell’Inline C Node. Alcuni errori, comefunzioni o variabili indefinite, non pos-sono essere rilevati prima della compi-lazione del codice C generato per il VI.

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

AZIONE MECCANICA BOOLEANAIl PDA Module supporta ora sei tipi diazioni meccaniche per controlli boo-leani, che includono Switch whenpressed, Switch when released,Switch until released, Latch whenpressed, Latch when released eLatch until released (fig. 4).

CONTROLLOBARRADI SCORRIMENTOIl PDA Module sup-porta ora controlliper barre di scorri-mento, incluse barredi scorrimentoverticali eorizzontali ag -giungibili a qualsiasicontrollo o indicato-re presente sul pan-nello frontale (fig.

5). Il controllo sempli-fica il processo di navi-gazione di controlli eindicatori di grandidimensioni.

RUN APPLICATIONVIPotete utilizzare il VIRun Application pere s e g u i r eun’applicazione PDAspecificata (fig. 6).Questo VI vi permettedi richiamare facil-m e n t eun’applicazione suPDA, senza dovere uti-lizzare una chiamata aDLL o l’Inline C Node.

FUNZIONI XMLIl PDA Module includeora i VI e le funzioniEscape XML, FlattenTo XML, Read FromXML File, UnescapeXML, Unflatten FromXML e Write to XMLFile (fig. 7). Potete uti-lizzare questi VI e fun-zioni per manipolaredati LabVIEW in for-mato XML.

CONTROLLI E INDICATORIBOOLEANILAMPEGGIANTIA grande richiesta, il PDA Module sup-porta ora l’accensione intermittenteper tutti i controlli e gli indicatori boo-leani, esclusi i controlli di sistema (fig.8). Utilizzando un Property Node conla proprietà Blinking abilitata, poteteconfigurare un booleano per visualiz-zare lampeggiando avvertimenti im -por tanti per l’operatore.

GIUSTIFICAZIONE DEL TESTO PER CONTROLLI E INDICATORIPotete ora impostare la giustificazione

Figura 3 - S i può ut i l i zzare l ’ In l ine C Node per aggiungere codice Cal lo schema a b locchi

Figura 4 - I l PDA Module suppor taora se i t ip i d i az ioni meccanicheper control l i booleani

Figura 5 - I l PDA Module suppor ta oracontrol l i per barre d i scorr imento

Figura 6 -Potete ut i l i zzare i l V I Run Appl icat ion per eseguire un’appl icaz ione PDA spec i f icata

Read

erse

rvic

e.it

n. 5

05

F igura 9 - E ’ poss ib i le impostare la g iust i f i caz ione del testo e sotto l ineare i l testo d i pulsant i e d i control l i e indicator i d i t ipostr inga, t ime stamp e numeric i

Figura 8 - I l PDA Module suppor tal ’accensione intermittente per tutt i i control l i e g l i indicator i booleani ,esc lus i i control l i d i s i s tema

Figura 7 - I l PDA Module inc lude ora VIe funzioni per manipolare dat i LabVIE Win formato XML

LabVIEW_05:LabVIEW_05 12-02-2008 17:33 Pagina 13

Page 16: labviewworld-05

14

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

L’architettura che descriveremoqui può essere utilizzata per rea-lizzare applicazioni di controllo

su controllori LabVIEW Real-Time,inclusi CompactRIO, Compact Field -Point e PXI. La stessa architettura dibase può funzionare anche su altrepiattaforme, come controllori basati suWindows. LabVIEW Real-time è un lin-guaggio di programmazione completo,che offre agli sviluppatori numeroseopzioni su come costruire un controllo-re e permette loro di creare sistemimolto flessibili e complessi.I controllori LabVIEW Real-Time sonoutilizzati in applicazioni che spazianodal controllo delle barre in centralinucleari, al collaudo Hardware-in-the-Loop per le ECU dei motori, dal con-trollo adattativo per la trivellazione dipozzi petroliferi, al monitoraggio dellevibrazioni ad alta velocità per la manu-tenzione predittiva. Tuttavia, la grandeflessibilità di LabVIEW Real-Timepotrebbe anche scoraggiare l’inizio diuna nuova applicazione, specialmenteper i programmatori che non hannofamiliarità con LabVIEW o con la pro-grammazione di sistemi real-time.Questo articolo non ha lo scopo di for-nire un’architettura valida per ogniapplicazione e non vuole sostituirsi aicorsi di formazione su LabVIEW Real-Time. E’ stato scritto per offrireun’infrastruttura operativa ai progetti-sti di applicazioni di controllo indu-striale e specialmente a chi ha familia-rità con l’uso dei PLC. L’articolo è sta-to concepito per spiegare comecostruire facilmente applicazioniLabVIEW Real-Time in grado di offrireanche la flessibilità necessaria a gesti-

re applicazioni non tradizionali, comeI/O bufferizzati ad alta velocità, datalogging e visione artificiale.

TERMINOLOGIANonostante vi siano molti modi percostruire un’applicazione di controlloin LabVIEW Real-time, è necessario ini-ziare dalla comprensione di alcuniconcetti fondamentali relativi alla pro-grammazione real-time e alle applica-zioni di controllo.

Responsività: Un’applicazione di con-trollo deve essere in grado di interve-nire nel caso di eventi come un cam-biamento di I/O, un input dal dispositi-vo HMI o un cambiamento di statointerno. Il tempo richiesto per eseguireun’azione dopo un evento è notocome responsività e applicazioni dicontrollo differenti avranno tolleranzedifferenti per la responsività, che pos-sono variare da microsecondi a minuti.La maggior parte delle applicazioniindustriali ha requisiti di responsivitàcompresi fra il millisecondo e qualchesecondo. Un criterio di progettazioneimportante per un’applicazione di con-trollo è la responsività richiesta, perchéessa determinerà le velocità dei loop dicontrollo e influirà sulle decisioni alivello di I/O, processore e software.

Determinismo e jitter: Il determinismoconsiste nella garanzia di ripetibilitàdei tempi di un loop di controllo. Il jitter rappresenta una misura deldeterminismo, cioè l’errore che si hanel mancato rispetto dei tempi-ciclo.Per esempio, se un loop è impostatoper essere eseguito ogni 50 ms ma

qualche volta viene eseguito a 50,5ms, il jitter è di 0,5ms. Determinismo eaffidabilità più elevati sono i vantaggiprimari di un sistema di controllo real-time: un buon determinismo è criticoper applicazioni di controllo stabili. Un basso determinismo porta a un cat-tivo controllo analogico e può rendereun sistema non responsivo.

Priorità: La maggior parte dei controllo-ri usa un singolo processore per gesti-re tutti i task di controllo, monitorag-gio e comunicazione. Essendoci cosìuna singola risorsa (il processore) conpiù richieste in parallelo, il program-matore deve trovare il modo per gesti-re quelle più importanti.Impostando i loop critici di controllo inalta priorità, ottenete un controlloreche presenta ancora buon determini-smo e responsività. Per esempio, inun’applicazione con un loop di control-lo della temperatura e funzionalità dilogging embedded, il loop di controllopuò essere impostato a priorità più ele-vata rispetto all’operazione di loggingper ottenere un controllo deterministi-co della temperatura. Ciò fa sì che itask di priorità inferiore (logging deidati, web server, HMI, ecc.) non influi-scano negativamente sui controlli ana-logici o sulla logica digitale.

RICHIAMI SULL’ARCHITETTURADI BASE DEI CONTROLLORILa maggior parte dei programmatoriche non hanno familiarità conLabVIEW iniziano con un’applicazionemolto semplice ed espandono quindi illoro programma per aggiungere mag-giori funzioni. Un vantaggio di

PROGETTAZIONE SOFTWAREPER IL CONTROLLO MACCHINAQuesto ar t ico lo i l lustra una poss ib i le architettura d i progettaz ione soft ware per i l control lomacchina, basata sul le macchine a stat i

Chri

s W

ash

ingt

on

LabVIEW_05:LabVIEW_05 12-02-2008 17:33 Pagina 14

Page 17: labviewworld-05

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

15

LabVIEW è che è molto facile costruireed eseguire un semplice programma.Per esempio, vediamo la logica di unsemplice loop PID eseguito su un siste-ma Compact FieldPoint.

Purtroppo, costruire sistemi più com-plessi in LabVIEW richiedeun’architettura più sofisticata che per-metta un migliore riutilizzo del codice,scalabilità e gestione del flusso di ese-cuzione. Questo paragrafo descrive edinsegna a costruire un’architettura dibase per le applicazioni di controllo edesegue lo stesso loop PID utilizzandotale architettura.

Il controllore più semplice ha tresequenze o routine fondamentali:1. Routine di inizializzazione2. Routine di controllo3. Routine di chiusura

Tali routine riguardano lo stato delcontrollore. Dato che i controllori real-time di National Instruments vi per-mettono di definire le capacità com-plete del vostro sistema, dovretecostruire le sequenze in LabVIEW.

ROUTINE DI INIZIALIZZAZIONEPrima di eseguire il loop di controlloprincipale, il programma deve eseguireuna routine di inizializzazione che pre-para il controllore per l’esecuzione.Non è qui che trova posto la logica digestione della macchina (come la logi-ca di startup o di inizializzazione dellamacchina); tale logica dovrebbe essere

inserita nel loop di controllo principa-le. La routine di inizializzazione dovràquindi:1. Impostare allo stato di default tutte

le variabili interne, incluse le varia-bili d’uscita nellatabella di memo-ria degli I/O.2. Creare tutte lecode necessarie,le FIFO RT, i VIRefnum e scarica-re ogni bit filenegli FPGA.

3. Eseguire eventuale logica aggiunti-va definita dall’utente per rendereoperativo il controllore, come lapreparazione dei file di log.

ROUTINE DI CONTROLLOLa routine di controllo è il cuore delcontrollore, dove viene eseguita tuttala logica utente in forma di loop multi-pli paralleli. Anche se potete schema-tizzarla come un loop che esegue l’I/OScan Task, i task ad alta priorità equindi i task a bassa priorità, in realtàsi tratta di loop multipli sincronizzati.

Il primo loop scrive e legge gli I/O fisiciin una tabella di memoria e viene ese-guito per primo. Quindi, i task successi-vi eseguono la logica utente dalla prio-rità più elevata a quella più bassa, ter-minando con i task di comunicazione eoperazioni ausiliarie che funzionerannoalla minima priorità. Per servire questiultimi task efficacemente, dovete verifi-care di avere programmato il vostrocontrollore garantendo un tempo suffi-ciente di inattività del processore.

ROUTINE DI CHIUSURAQuando si comanda al controllore diinterrompere l’esecuzione o il control-

lore rileva una condizione di errore,esso interrompe l’esecuzione del loopdi controllo principale ed esegue unaroutine di chiusura. La routine ferma ilcontrollore e lo mette in sicurezza: ser-ve solo per lo shutdown del controllo-re e non è la sede per le routine dichiusura della macchina, che invecevanno inserite nel loop di controlloprincipale. La routine di chiusura deve:1. Impostare tutte le uscite a uno sta-

to di sicurezza2. Interrompere tutti i loop paralleli in

esecuzione3. Eseguire qualsiasi logica aggiuntiva

come quella di notifica all’operato-re di un guasto al controllore oinformazioni sullo stato del logging

DETTAGLI DELLA ROUTINE DI CONTROLLOLa maggior parte dei programmatoriLabVIEW ha familiarità con l’accessodiretto agli I/O, dove le subroutineinviano e ricevono direttamente inpute output dall’hardware. Questo meto-do è ideale per l’acquisizione di for-me d’onda, l’elaborazione dei segna-li e piccole applicazioni single-point.Tuttavia, le applicazioni di controllonormalmente utilizzano letture escritture single-point e possonodiventare molto grandi, con stati mul-tipli che devono tutti accedere agliI/O. L’accesso agli I/O introduce unoverhead nel sistema e può essererelativamente lento; inoltre, gestireaccessi multipli agli I/O attraversotutti i livelli di un programma rendemolto difficile cambiare gli I/O eimplementare funzionalità come lasimulazione o il “forcing”. Per evitarequesti problemi, la routine di control-lo usa un’architettura a scansione diI/O, dove l’accesso all’hardware fisicoavviene una sola volta per ogni itera-zione del loop. I valori di input e out-put sono immagazzinati in memoriain un costrutto noto come tabella dimemoria degli I/O e il codice di con-trollo accede allo spazio di memoriaanziché all’hardware diretto. Questaarchitettura offre numerosi benefici:

LabVIEW_05:LabVIEW_05 12-02-2008 17:33 Pagina 15

Page 18: labviewworld-05

16

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

• Astrazione degli I/O, per consentire ilriutilizzo di subVI e funzioni (no hardcoding 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 durantel’esecuzione della logica

TABELLA DI MEMORIA DEGLI I/OLa tabella di memoria degli I/O serve apassare i dati fra il loop di scansionedegli I/O ed altri loop o task paralleli dicontrollo o misura. Vi sono numerosime todi per la comunicazione fra i loop,ma uno dei più semplici è quello di usa-re una variabile globale. Per renderesemplice l’aggiornamento del program-ma, utilizzeremo un cluster basato su uncontrollo custom strict type def. Con uncontrollo strict type def, qualsiasi cam-biamento apportato al controllo si pro-paga automaticamente all’intero pro-gramma. Ciò vi permette di aggiungereo rinominare facilmente gli I/O sen za lanecessità di ricodificare il programma.

SCANSIONE DEGLI I/OIl loop di controllo principale sarà illoop con la massima priorità, quindisarà eseguito per primo ad ogni ciclo epresenterà due fasi, che si attiverannoripetutamente alla velocità desideratadel loop di controllo:1. Scrittura degli output - La tabella di

memoria degli I/O viene letta ed imoduli di output sono aggiornati.

2. Lettura degli input - I moduli di inputvengono letti ed i valori vengono scrit-ti nella tabella di memoria degli I/O.

Nota: Benché non sia intuitivo, scrivereprima sugli output aiuta ad assicurare ilfunzionamento deterministico e per-mette di ottenere un programma piùpulito per la gestione degli errori e latransizione a uno stato di shutdown.

TASK LOGICI DELL’UTENTELa logica utente è la logica specificaalla macchina che definiscel’applicazione di controllo. In molticasi, si basa su una macchina a statiper gestire il controllo di macchinecomplesse con stati multipli. Un para-grafo successivo spiegherà come utiliz-zare le macchine a stati per progettarela logica utente.Per essere eseguitanell’architettura di controllo, la logicautente deve:• Essere eseguita in meno tempo del

loop temporizzato• Accedere agli I/O attraverso la tabella

di memoria degli I/O anziché attraver-so letture o scritture dirette degli I/O

• Non usare “while loop” se non perman tenere informazioni di statonegli shift register

• Non usare “for loop” se non neglialgoritmi

• Non usare “wait” (attese), ma fun-zioni di temporizzazione o “TickCount” per la logica di timing

• Non eseguire operazioni non determi-nistiche, di logging o su forme d’onda

La logica utente può:• Includere operazioni single point

come PID o analisi punto-punto • Usare una macchina a stati per strut-

turare il codice

Ogni task logico verrà strutturato uti-lizzando un Timed Loop. La priorità delTimed Loop deve essere inferiore aquella del loop di scansione degli I/O ela temporizzazione dovrebbe essere unmultiplo intero della velocità del loopdi scansione degli I/O. Il task logicoconterà tre fasi:1. Copiare la tabella di memoria degli

I/O nel cluster locale - La tabella dime moria degli I/O viene letta e un clu-ster locale (strict type def) viene scrit-

to. Un cluster locale permette di offri-re scalabilità per task multipli e di uti-lizzare il modulo LabVIEW StateChart.

2. Eseguire la logica - Gli I/O vengonoletti e scritti nei cluster locali peringressi e uscite

3. Copiare il cluster locale nella tabelladi memoria degli I/O - Il cluster loca-le degli output (strict type def) vieneletto e scritto nella tabella di memo-ria degli I/O. Anche in questo caso, uncluster locale permette di offrire sca-labilità per task multipli e di utilizza-re il modulo LabVIEW StateChart.

ESEMPIO DI ARCHITETTURA DI BASE DEI CONTROLLORI IN LABVIEWPer mostrare questa architettura dicontrollo, costruiremo un’applicazionedi controllo PID elementare. Questasemplice applicazione controlla unacamera climatica in modo tale da man-tenervi una temperatura di 350 gradi.Essa prevede un ingresso analogico datermocoppia, un’uscita analogica (0-10V) collegata all’ingresso di un ele-mento riscaldante e un algoritmo PIDper il controllo. Questa applicazione èparticolarmente semplice ed è utilizza-ta qui solo per spiegare i componentidell’architettura senza aggiungere lacomplessità di un controllo intricato.

TABELLA DI MEMORIA DEGLI I/OPer creare la tabella di memoria degli I/O:1. Create un controllo custom strict

type def chiamato IO Cluster.ctl.Nel controllo custom aggiungete uncluster e create due controlli,Input_TC e Output_Heater.

2. Create una variabile globale chia-mata IO Table Global.vi contenenteIO Cluster.ctl.

Suggerimento: L’uso di un controllostrict type def custom permette il sem-plice aggiornamento del codice trami-te il LabVIEW project.

SCANSIONE DEGLI I/O1. Aprite un top level vi.2. Inserite un Time Loop sul diagram-

LabVIEW_05:LabVIEW_05 12-02-2008 17:33 Pagina 16

Page 19: labviewworld-05

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

17

ma e configurate il rate in funzionedel tempo-ciclo richiesto dallavostra applicazione.

3. Sullo schema, create due subVI:

Write Outputs e Read Inputs.4. Aprite Write Outputs. Sullo schema

a blocchi, inserite la variabile globa-le IO Table Global.vi e la logica perscrivere gli output fisici. Questoesempio è programmato perFieldPoint, quindi utilizza un FPWrite VI. La stessa architetturapotrebbe essere facilmente utilizza-ta per programmare CompactRIO,

PXI o DAQ.5. Aprite Read Inputs. Sullo schema a

blocchi, inserite la variabile globaleIO Table Global.vi e la logica per gli

input fisici.6. Salvate e chiudete i due subVI. Sul

top level vi disponete una strutturacase intorno ai subVI Write Outputse Read Inputs. Nel caso false createun nuovo subVI chiamatoShutdown Outputs, dove entreretenel caso in cui il controllore debbaessere fermato.

7. Aprite Shutdown Outputs.vi eaggiungete la logica necessaria per

scrivere valori di sicurezza sulleuscite alla chiusura e salvate ilsubVI. Invece di scrivere i valorid’uscita dalla tabella di memoriadegli I/O, scriverete i valori d’uscitadi sicurezza. In questo caso, il riscal-datore dovrebbe spegnersi se siesce dal programma, quindi il valo-re Output_Heater viene sostituito

con una costante zero.8. A livello di top level vi dovete ora

aggiungere della logica per decide-re quando eseguire la chiusura.Questa chiusura ferma il controllo-re. Nella maggior parte dei casi, ciòdovrebbe avvenire solo al verificarsidi un errore o se il controllore deveessere riprogrammato. Per questoesempio eseguiremo la chiusura inpresenza di un errore. Abbiamocreato un cluster di errore globaleche ci permette di raccogliere even-tuali errori da più task paralleli.Abbiamo creato due subVI pergestire e gli errori: Fault Manager.vi

e ilFau l t

Merge.vi.

Nota: Il comportamento in fase dichiusura è definito dal programmato-re. Potete decidere di ignorare certierrori o di riprovare a eseguire le ope-razioni prima della chiusura.9. Nel top level vi utilizzate il Fault Ma -

nager.vi e il Fault Merge.vi per ri le varegli errori e controllare la struttura caseper effettuare lo shutdown in caso dierrore. Notate che per ogni task dob-biamo assegnare un Task #: utilizzere-mo ‘0’ per la routine di inizializzazionee ‘1’ per il Task di scansione degli I/O.

ROUTINE DI INIZIALIZZAZIONE E CHIUSURA1. Ora dobbiamo aggiungere la routi-

ne di inizializzazione e una routinedi chiusura. La routine di inizializza-zione deve configurare il controllorein modo che sia pronto per esegui-re qualsiasi logica e la routine dichiusura deve eseguire qualsiasiazione legata alla fase di shut-down.

2. La routine di inizializzazione impo-sterà i valori di default per gli out-put ed eseguirà l’error trapping(gestione dell’errore). Ricordate cheil loop di controllo principale iniziascrivendo le uscite sull’hardware,quindi dobbiamo caricare i valori distartup per le uscite nella tabella dimemoria degli I/O.

3. Create un subVI chiamato DefaultOutputs.vi e scrivete del codice per

LabVIEW_05:LabVIEW_05 12-02-2008 17:33 Pagina 17

Page 20: labviewworld-05

18

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

impostare la tabella di memoriadegli I/O con i valori di default.Vogliamo che il comportamento didefault dell’uscita del riscaldatoresia off, quindi creeremo una costan-te ‘0’ e la collegheremo alla variabi-le condivisa Output_Heater.

4. Aggiungete l’error trapping con il

Fault Merge.vi ed usate il Task #0.5. Sul top level vi aggiungete una strut-

tura a sequenza (sequence structure)a sinistra dell’I/O Scan Task. Colle -gate il cluster di errore da DefaultOutputs.vi al bordo del Timed Loopper assicurare l’ordine di esecuzione.

6. Per la routine di chiusura aggiunge-

te una sequence structure a destradell’I/O Scan Task e collegate il clu-ster di errore al bordo della struttu-ra. Aggiungete l’eventuale logica dichiusura all’interno della struttura.In questo esempio non abbiamoroutine di chiusura.

7. Ora avete una routine completa diinizializzazione, scansione degli I/Oe chiusura. A questo punto doveteaggiungere i vostri task logici.

USER LOGIC TASKOgni task logico verrà strutturato utiliz-zando un Timed Loop con una prioritàinferiore a quella del loop di scansionedegli I/O e un timing pari a un multiplointero della velocità del loop di scan-sione degli I/O. Per scalare la vostraapplicazione e per consentirvi di ese-guire i loop a velocità diverse rispettoal task di scansione degli I/O, dovetecreare una versione locale degli I/O. Atale scopo, copiate la tabella di memo-ria degli I/O in due cluster locali (input

e output) che sono strict type def.

1. In primo luogo viene creato un con-trollo strict type def custom chiamatoInput Cluster.ctl. Nel controllo customaggiungiamo un cluster e creiamo uncontrollo chiamato Input_TC.

2. Viene quindi creato un controllo stricttype def custom chiamato OutputCluster.ctl. Nel controllo customaggiungiamo un cluster e creiamo uncontrollo chiamato Output_Heater.

Suggerimento: Se utilizzate loStateChart Module, esso creerà auto-maticamente uno strict type defInput Cluster.ctl e Output Cluster.ctl.

3. Sullo schema create due subVI, unochiamato Read Inputs Local e unochiamato Write Outputs Local.

4. Aprite Read Inputs Local. Sullo

schema a blocchi, inserite la I/OTable Global e la logica per leggeregli ingressi e scriverli nel cluster.

5. Aprite Write Outputs Local. Sulloschema a blocchi, inserite la I/O

Table Global e la logica per leggeregli ingressi e scriverli nel cluster.

6. Salvate e chiudete i due subVI. Sultop level vi disponete una strutturacase e la gestione degli errori.Notate che per Fault Merge.vi que-sto è il Task #2.

7. Ora create un subVI chiamatoLogic.vi. In questo vi cablerete iningresso e in uscita i cluster di erro-re e metterete la vostra logica.Ricordate che la logica deve: • Essere eseguita in meno tempo

di quello richiesto dal TimedLoop

• Non accedere direttamente all’-hardware per letture e scritturedegli I/O

• Non usare while loop se non permantenere informazioni di statonegli shift register

• Non usare for loop se non neglialgoritmi

• Non usare wait (attese), ma fun-zioni di temporizzazione o “TickCount” per la logica di timing

• Non eseguire operazioni nondeterministiche, di logging o suforme d’onda

8. Inserite un vi PID sullo schema ablocchi e collegate le costanti perim postare l’intervallo d’uscita a [10,0], i guadagni del PID a [10, 0,1, 0]e il setpoint a 350. I guadagni ed ilsetpoint del PID avrebbero potutoanche essere cablati ad elementi del-la tabella di memoria degli I/O epubblicati su un terminale operatore

per modificarli successivamente.Collegate il valore Input_TC al termi-nale Process Variable e collegate ilvalore Output_Heater al terminaleOutput. Aggiungete gli appropriati

LabVIEW_05:LabVIEW_05 12-02-2008 17:33 Pagina 18

Page 21: labviewworld-05

19

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

componenti per la gestione deglierrori.

Suggerimento: Si possono utilizzareStateChart per applicazioni di control-lo sequenziale, controllo batch o con-trollo macchina.9. Sul top level vi collegate il cluster di

errore dalla routine di inizializzazio-ne sul bordo del Timed Loop, quindisalvate ed eseguite l’applicazione.

Ora possiamo eseguire il programma

di controllo della temperatura. Esso haprocedure di avviamento e chiusura,un’architettura a scansione, subVIriutilizzabili e la gestione degli errori.Questa è l’architettura fondamentaleper il controllo di macchine utilizzatanel presente articolo.Esamineremo ora un esempio più com-plesso che evidenzia i benefici di que-sto tipo di architettura.

MACCHINE A STATILa maggior parte delle applicazioni dicontrollo reali è molto più complessadella semplice applicazione PIDcostruita nell’esempio precedente. Benché si possa utilizzare il PID percontrollare un setpoint di temperatura,esso sarà solo un piccolo componentenell’applicazione. Un esempio un po’ più realistico puòessere quello di un reattore chimico. Inquesta applicazione immaginaria, ilcontrollore deve:1. Attendere dall’operatore un coman-

do di partenza con la pressione diun pulsante

2. Misurare due flussi chimici in un

serbatoio sulla base dell’uscita diun totalizzatore di flusso (due pro-cessi paralleli, uno per ciascun flus-so chimico)

3. Dopo il riempimento del serbatoio,avviare un miscelatore ed aumenta-re la temperatura

4. Quando la temperatura ha raggiun-to 200 gradi, il sistema disattiva imiscelatori e tiene costante la tem-peratura per 10 secondi

5. Pompare il contenuto in un serba-toio di contenimento

6. Tornare allo statodi attesa

Notate che, per semplici-tà, in questa applicazio-ne le portate dei flussichimici sono stato codifi-cate a 850, la temperatu-ra a 200 e il tempo a 10secondi. Inun’applicazione realequesti valori potrebbero

essere caricati da una procedura oimmessi da un operatore.

RICHIAMI SULLE MACCHINE ASTATIIl modo migliore per rappresentarequesto tipo di sistema di controllo èquello di utilizzare una macchina a sta-ti. Il modello di progettazione basatosu macchina a stati è uno dei modelli diprogettazione più utili e diffusi perLabVIEW; potete implementare qual-siasi algoritmo che possa essere espli-citamente descritto da un diagramma astati o schema di flusso. Una macchinaa stati normalmente illustra un algorit-mo decisionale di media complessità,come una routine diagnostica o uncontrollore di processo.Una macchina a stati, che si può defi-nire con maggiore precisione macchi-na a stati finiti, consiste di un insiemedi stati e di una funzione di transizioneche mappa il passaggio allo stato suc-cessivo. Una macchina a stati comple-ta dovrebbe essere progettata per ese-guire azioni d’ingresso, in attività dellostato, o di uscita.

Poiché utilizziamo la macchina a statiall’interno della nostra più ampiaarchitettura di controllo macchina,essa non può usare istruzioni di attesané loop, se non per mantenere unostato o eseguire algoritmi, come un forloop usato per la manipolazione diarray.Usate la macchina a stati nelle appli-cazioni 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 sugliinput dell’utente o su calcoli effettuatiall’interno dello stato per determinarein quale stato andare successivamen-te. Molte applicazioni richiedono unostato di inizializzazione, seguito dauno stato di default, dove è possibileeseguire molte azioni differenti. Le azioni eseguite possono dipendereda input precedenti e correnti, nonchéda altri stati. Per eseguire le azioni di azzeramentoviene utilizzato comunemente uno sta-to di chiusura.

ESEMPIO DI MACCHINA A STATI IN LABVIEW

LabVIEW_05:LabVIEW_05 12-02-2008 17:33 Pagina 19

Page 22: labviewworld-05

20

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

Per costruire questa applicazione, ilprimo passo è quello di mappare lalogica e i punti di I/O. Poiché questaapplicazione implica una sequenza dipassi, uno schema di flusso è un otti-mo tool per pianificare l’applicazionestessa. Qui sotto sono riportati unoschema di flusso per l’applicazione eun elenco dei segnali di I/O.Ogni stato in una macchina a stati ese-gue un’azione unica e richiama altristati. Le transizioni fra gli stati dipen-dono dal verificarsi o meno di qualchecondizione o sequenza.Tradurre il diagramma di transizione distato in uno schema a blocchiLabVIEW richiede i seguenti compo-nenti:• Case structure - Contiene un caso

per ogni stato e il codice per ese-guire ciascuno stato

• Shift register (registro a scorrimen-to) - Contiene le informazioni ditransizione fra gli stati

• State functionality code -Implementa la funzione dello stato

• Transition code - Determina lo statosuccessivo nella sequenza

Per questo esempio utilizzeremo I/Osimulati invece di I/O fisici, in modo da

potere testare la nostra logica. A talescopo, utilizzeremo una variabile glo-bale invece di VI di lettura/scrittura.Questo è un modo comodo per testarela nostra logica con controlli e indica-

tori interattivi prima della distribuzionesull’hardware. La capacità di simularefacilmente I/O è un vantaggio di que-

sta architettura.Poiché uno stato nella nostra macchi-na presenta processi paralleli, costrui-remo una seconda macchina a statiper rappresentare la logica parallela erichiamarli in quello stato. Usciremo dallo stato solo quandoentrambi i processi paralleli sarannoterminati.LABVIEW STATECHART MODULEL’esempio precedente è stato costruitoutilizzando le strutture fondamentali diLabVIEW: cicli, sequenze e strict typedef enum. Con LabVIEW 8.5 è nato unnuovo modulo, il LabVIEW StateChart

Module. Si tratta di un nuovoeditor di LabVIEW che vi per-mette di costruire rapidamenteuna logica completa per mac-chine a stati, combinandoopportunamente diagrammi distato multipli e VI di LabVIEWin applicazioni complesse.Inoltre, può essere eseguito siasu Windows sia su target real-time ed FPGA. Lo StateChartModule è particolarmente utilese dovete gestire più transizio-ni possibili da uno stato o sevolete che eventi specifici atti-vino una transizione da statimultipli. Per esempio, sulla

base di un comando fornito dall’ope-ratore potreste volere abortire la pro-duzione da qualsiasi stato. LoStateChart Module vi permette di pro-grammare facilmente il sistema in

modo che esegua una transizione daqualsiasi stato e di dare priorità alletransizioni in modo che il comando di

interruzione vengaeseguito anche sealtre transizionivengono attivatenello stesso tempo.Tutte le funzionali-tà dello StateChartModule possonoessere programma-te in LabVIEW, mail moduloStateChart miglioranettamente il tem-

po di sviluppo ed è molto più facile daleggere e correggere rispetto alle mac-china a stati tradizionali scritte inLabVIEW. Si raccomanda quindi forte-mente a chiunque abbia necessità dicostruire applicazioni di controllo mac-china.

MODIFICA DELL’ESEMPIOIl modo più semplice per iniziare que-sto progetto è quello di modificarel’esempio esistente. In questo paragra-fo procederemo con la modifica delprecedente esempio della miscelazionechimica, dove è stato utilizzato il dia-gramma di stato per costruirel’applicazione. Ci sono quattro passiprincipali:1. Modificate I/O Scan Task per legge-

re e scrivere sugli I/O fisici dellavostra applicazione.

2. Modificate la routine di inizializza-zione per scrivere i valori di defaultdei vostri output fisici.

3. Modificate il Task 1 per mappare gliI/O. Cambierete lo StateChart, ilRead Inputs Local.vi e il WriteInputs Local.vi.

4. Modificate/riscrivete lo StateChart peradattarlo alla vostra applicazione.

MODIFICA DI I/O SCAN TASKAprite Chemical Mixing.lvproj. Poichéla vostra applicazione utilizzerà I/O dif-ferenti, dovrete modificare I/O ScanTask per leggere e scrivere sui vostriI/O. Ricordate che gli I/O possono esse-

LabVIEW_05:LabVIEW_05 14-02-2008 15:16 Pagina 20

Page 23: labviewworld-05

21

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

re I/O fisici, I/O in rete o I/O simulati.

1. Aprite il controllo strict type customIO Cluster.ctl. Esso definisce tutti gliI/O del vostro sistema.

2. Cambiate i controlli nel cluster conquelli richiesti per la vostra applica-zione. Salvate IO Cluster.ctl.LabVIEW aggiornerà automatica-mente la tabella di IO Global.vi conqueste modifiche.

3. Aprite Write Outputs.vi e ReadInputs.vi.

4. Modificate i VI in modo che scriva-no e leggano i vostri I/O fisici inve-

ce degli I/O simulati.5. Aprite Shutdown Outputs.vi. Modifi -

cate il VI in modo che scriva sui vostriI/O fisici invece degli I/O simulati.

MODIFICA DELLA ROUTINE DI INIZIALIZZAZIONEPoiché la vostra applicazione utilizzeràI/O differenti, dovrete modificare laroutine di inizializzazione per imposta-re i valori di default dei vostri output.1. Aprite Default Outputs.vi e modifi-

catelo per impostare i valori didefault dei vostri output.

MODIFICA DEL TASK 1 PER MAPPARE GLI I/OOra avete un I/O Scan Task completo eroutine di inizializzazione e chiusura.Ora dovete modificare la logica. Poichéogni task logico crea una copia localedegli I/O per la sua esecuzione, doveterimappare gli I/O1. Sotto il folder StateChart aprite

Outputs.ctl e Inputs.ctl. Modificateliper adattarli agli I/O della vostraapplicazione.

2. Aggiornate Write Outputs Local.vi eRead Outputs Local.vi per leggere escrivere i vostri I/O.

Modifica/riscrittura dello StateChartOra dovete inserire la vostra logica.Potete farlo modificando/riscrivendo loStateChart in modo che esegua la logi-

Read

erse

rvic

e.it

n.5

11

SCELTI PER TE

Abbiamo scelto per te alcune risorse utili per approfondire le tua conoscenza di LabVIEW.

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

CommunityDevZone www.zone.ni.comCommunity 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/labviewLabVIEW on ni.com/italy www.ni.com/labview/iLabVIEW Jobs http://www.labviewjobs.com/The VI Road Show http://viroadshow.blogspot.com/

Nota sull’autoreChris Washington è Product Manager diLabVIEW in National Instruments

LabVIEW_05:LabVIEW_05 12-02-2008 17:33 Pagina 21

Page 24: labviewworld-05

22

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

L’obiettivo dell’applicazione descritta nell’articolo eraquello di sviluppare un sistema di monitoraggio dimacchinario rotante, facilmente configurabile per ogni

applicazione, eseguire in tempo reale la sorveglianza convisualizzazione allarmi ed identificazione di eventuali incon-venienti attuali o imminenti ed analizzare i dati in post pro-cessing con emissione report dello stato del macchinario, iltutto con un sistema a basso costo ma con prestazioni ade-guate per il tipo di macchina sotto esame.

SISTEMA ‘LOW COST’ DIMONITORAGGIO MACCHINARIOROTANTE

R. R

usso I l monitoraggio del le v ibraz ioni è ampiamente impiegato per ident i f icare i

malfunzionamenti o per ef fettuare la manutenzione su condiz ione del macchinar io rotante

INTRODUZIONEIl monitoraggio delle vibrazioni è ampiamente impiegatoper identificare i malfunzionamenti o per effettuare lamanutenzione su condizione del macchinario rotante.I sistemi disponibili sul mercato non sempre consentono dieffettuare in modo semplice, intuitivo e soprattutto a costicontenuti le funzioni tipiche di questo processo, quali: con-figurazione per il tipo di macchinario, sorveglianza in temporeale, identificazione dell’avaria su segnalazione di allarme,

LabVIEW_05:LabVIEW_05 12-02-2008 16:27 Pagina 22

Page 25: labviewworld-05

23

o previsione anticipata di un eventuale guasto futuro, ana-lisi dei dati acquisiti e generazione del report sulla statodella macchina.Il sistema qui illustrato è costituito da una scheda multifun-zione National Instruments e da un insieme di softwareapplicativi sviluppati in NI LabVIEW.L’acquisizione si basa sulla scheda NI PCI-6284 scelta pernumero 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 interferenzeelettromagnetiche presenti nel PC, interfaccia con i front-end NI BNC-2090, possibilità di acquisizione sincrona conencoder ed infine per il suo costo contenuto.Il programma sviluppato con NI LabVIEW si basa su tremoduli aventi le funzioni principali di: configurazione,acquisizione/monitoraggio ed analisi/reporting.Nella fig. 1 è illustrato il pannello real time del sistema.

MODULO DI CONFIGURAZIONEIl modulo di configurazione legge da un file Excel la speci-fica del monitoraggio, definita da:• identificazione del macchinario: tipo, modello, ubicazione;• modello matematico del cinematismo: rotismi, cuscinetti;• punti di misura, tipo di trasduttori, (accelerometri o spo-

stamento a laser) e curva di taratura;• condizioni di funzionamentoTali parametri, convertiti in un file binario, vengono asso-ciati al macchinario da monitorare al momento in cui vieneattivato il modulo di acquisizione.

MODULO DI SETUP E ACQUISIZIONEQuesto modulo ha la duplice funzione di stabilire la modali-tà di acquisizione e di effettuare il monitoraggio in real time.La modalità di acquisizione definisce:

• 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 determinare le soglie di allarme per ogni punto di misura

Durante l’acquisizione, lo spettro di riferimentoviene sincronizzato con quello di prova, ed inquesta fase è possibile:• effettuare l’autorange 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 larelativa 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 diampiezza, 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 trasduttoriortogonali per identificare squilibrio o disallineamento;

• salvare gli spettri in modo: singolo, continuo o circolare;• memorizzare e visualizzare l’andamento dei picchi dello

spettro relativo al cinematismo del macchinario.

MODULO DI ANALISI E REPORTINGQuesto modulo, dal data base di ogni macchinario, richia-ma i segnali temporali o gli spettri acquisiti e consente di:• seguire l’evoluzione degli spettri con diagrammi waterfall;• confrontare gli spettri di un punto di misura al variare

della condizione di funzionamento o in funzione deltempo trascorso;

• identificare i picchi degli spettri con: squilibrio, disallinea-mento, frequenze di ingranamento, modulazione diampiezza, modulazione di fase;

• effettuare l’analisi di tendenza dei rotismi identificati sullospettro;

• rappresentare i risultati di prova su fogli Excel sia comespettri che come analisi di tendenza;

• infine, stendere in modo sintetico lo stato di funziona-mento del macchinario.

Note sull’autoreR.Russo, AgustaWestland

Read

erse

rvic

e.it

n. 5

15

F igura 1

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

LabVIEW_05:LabVIEW_05 12-02-2008 16:27 Pagina 23

Page 26: labviewworld-05

Images 24-07-2006 16*55 Pagina 1

readerservice.it n.15555

Page 27: labviewworld-05

25

Training per principianti05

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

MIGLIORARE UN VI ESISTENTEQuando s i eredita un VI da a l t r i sv i luppator i , quest i possono aver aggiunto del le funzional i tà senza fareattenzione a l progetto, rendendo sempre p iù d i f f i c i le aggiungere in seguito nuove caratter ist iche a l V I

a cu

ra d

i M

atte

o Fo

ini

Figura 1 - VI ereditato

’L obsolescenza del software è un problema comunequando ereditate un VI da altri sviluppatori. Esso nascedal fatto che gli altri sviluppatori possono aver aggiun-

to delle funzionalità senza fare attenzione al progetto, ren-dendo così sempre più difficile aggiungere in seguito carat-teristiche nuove al VI stesso. Una soluzione all’obsolescenza è quella di effettuare ilrefactoring del software: un processo di riprogettazioneattuato per renderlo più leggibile e manutenibile, in modotale che il costo del cambiamento non aumenti nel tempo. Il refactoring cambia la struttura interna di un VI per ren-derlo più leggibile e manutenibile, senza cambiarne il suocomportamento osservabile. Questo articolo analizza dei metodi per effettuare il refac-toring, presentando alcuni problemi tipici della gestione delcodice ereditato.

A. REFACTORING DI CODICE EREDITATOScrivete applicazioni software di grandi dimensioni e/o dilunga durata tenendone sempre presente la leggibilità per-ché il costo della lettura e modifica del software può verosi-milmente superare il costo di realizzazione. Costa di più aduno sviluppatore leggere e capire un codice mal progettatoche leggere un codice creato per essere leggibile. In genera-le, sono destinate più risorse alla lettura e modifica del soft-ware che all’implementazione iniziale. Perciò i VI facili daleggere e modificare valgono di più di quelli che non lo sono.Sebbene non sembri intuitivo, un software ben progettatofacilita un suo rapido sviluppo in quanto meno suscettibile adobsolescenza. Se un sistema comincia a diventare obsoleto,potete spendere molto tempo a rintracciare le cause di ciò, equesto non è produttivo. Anche i cambiamenti possonorichiedere più tempo perché è più difficile capire il sistema.

LabVIEW_05:LabVIEW_05 12-02-2008 16:28 Pagina 25

Page 28: labviewworld-05

26

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

Considerate il VI ereditato presente nella fig. 1.Potete eseguire il refactoring del codice come mostrato nel-la fig. 2. Il codice che ha subito il refactoring fa le stessecose del codice ereditato, ma è più leggibile. Il codice eredi-tato vìola molte delle linee guida che avete appreso sullosviluppo dello schema a blocchi. Attraverso il refactoring,potete riprogettare un VI difficile da leggere e manuteneree renderlo leggibile e manutenibile. Questo ne aumenta ilvalore perché diventa più facile aggiungere delle caratteri-stiche o farne il debug. Il processo di refactoring non cam-bia il comportamento osservabile. Cambiare il modo in cui ilVI interagisce con altri client (utenti o altri VI) introduce deirischi che non sono presenti quando vi limitate a cambia-menti visibili solo agli sviluppatori. Il beneficio di mantene-re i due tipi di cambiamenti separati risiede nel fatto chepotete gestire meglio i rischi potenziali.

CONFRONTO TRA REFACTORING E OTTIMIZZAZIONEDELLE PRESTAZIONISebbene possiate effettuare dei cambiamenti che ottimizzi-no le prestazioni di un VI, non è detto che ciò debba ancherisolversi nel contempo in una procedura di refactoring, cheinterviene specificamente per cambiare la struttura internadi un VI al fine di renderlo più facile da leggere, capire emanutenere.Un’ottimizzazione delle prestazioni non è un refactoringperché l’obiettivo dell’ottimizzazione non è di rendere il VIfacile da capire e modificare. Infatti, l’ottimizzazione delleprestazioni può rendere i VI più difficili da leggere e da capi-re, cosa che potrebbe essere un compromesso accettabile incerti casi. A volte dovete sacrificare la leggibilità a prestazioni miglio-ri, comunque la leggibilità ha di solito la priorità rispettoalla velocità di esecuzione.

QUANDO FARE IL REFACTORINGIl momento giusto per fare il refactoring è quando stateaggiungendo delle funzionalità a un VI o ne state facendo ildebug. Sebbene siate tentati di riscrivere completamente ilVI, dovete riconoscere che c’è del valore in un VI che fun-ziona, anche se lo schema a blocchi non è leggibile. I can-didati adatti alla riscrittura completa sono i VI che non fun-zionano o i VI che soddisfano solo una piccola parte dellevostre necessità. Potete anche riscrivere VI semplici checapite bene. Considerate ciò che funziona bene in un VI esi-stente prima di decidere di effettuare il refactoring. Il refac-toring è un processo metodico di ristrutturazione di un VIche funziona bene, ma è scritto in un modo che ne ostaco-la la leggibilità, la scalabilità e la manutenibilità.

B. PROBLEMI TIPICIQuando effettuate il refactoring di un VI, gestite il rischio diintrodurre dei bachi facendo piccoli cambiamenti incremen-tali al VI e verificando il VI dopo ogni cambiamento.Per migliorare lo schema a blocchi, fate piccoli cambiamen-ti cosmetici prima di affrontare problemi più impegnativi.Per esempio, è più facile trovare del codice duplicato se loschema a blocchi è ben organizzato e i terminali sono benetichettati.Sono molti i problemi che possono complicare il lavoro conun VI ereditato. L’elenco seguente descrive problemi tipici esoluzioni di refactoring per rendere i VI ereditati più leggibili.

• Lo schema a blocchi è troppo disorganizzatoMigliorate la leggibilitò di un VI disorganizzato spostandodegli oggetti all’interno dello schema a blocchi. Per sezio-ni del VI che sono disorganizzate potete anche creare deisubVI. Per migliorare la leggibilità del VI inserite dei com-menti sulle aree che sono disorganizzate.

Figura 2 - VI ereditato dopo i l refac tor ing

LabVIEW_05:LabVIEW_05 12-02-2008 16:28 Pagina 26

Page 29: labviewworld-05

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

27

• Lo schema a blocchi usa nomi di oggetti scorretti e iconepoco significativeI VI ereditati spesso contengono controlli e indicatori chenon hanno nomi significativi. Per esempio, il nome delcontrollo numero 1, mostrato nella fig. 3, non indica il suoscopo. Il controllo 2 è lo stesso controllo, rinominato perrendere lo schema a blocchi più leggibile e comprensibile.

Anche i nomi e le icone dei VI sono importanti per migliora-re la leggibilità di un VI. Per esempio, il nome ‘My Acqu.vi’,mostrato in alto nella fig. 4, non fornisce alcuna informa-zione sugli scopi del VI. Potete dare al VI un nome più signi-ficativo salvando una copia del VI con un nuovo nome esostituendo tutte le istanze del VI con il VI ribattezzato. Un metodo più semplice consiste nell’aprire tutti i program-mi chiamanti del VI che volete rinominare, quindi salvare ilVI con un nuovo nome. Quando usate questo metodo,LabVIEW cambia automaticamente i link di tutti i program-

mi chiamanti aperti del VI con il nuovo nome. ‘Acq WindowTemperature.vi’ è un nome più significativo per il VI.Anche l’icona del VI do vrebbe chiarire lo scopo del VI. Le ico-ne di default usate per i VI 1 e 2 nella fig. 4 non rappresen-tano lo scopo del VI. Potete migliorare la leggibilità del VI as -segnandogli un’icona significativa, co me mostrato per il VI 3.Rinominando i controlli e i VI e creando icone dei VI signifi-cative, potete migliorare fortemente la leggibilità di un VIereditato.

• Il diagramma a blocchi utilizza logica superfluaLeggendo 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.

• Lo schema a blocchi presenta logica duplicataSe un VI contiene della logica duplicata, dovreste sempreeffettuare 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 datiSe 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. L’uso più accettabile delle variabili locali è quello di far diventare indicatore un controllo.

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

Figura 4 - Migl iorare i l nome e l ’ i cona di un SubVI1 VI chiamato in modo non s igni f icat ivo 2 VI r inominato in modo più ef f ic iente3 Nome e icona del VI s igni f icat iv i

Figura 5 - Logica super f lua

Figura 3 - Assegnazione del nome a i control l i 1 Control lo pr ivo d i un nome s igni f icat ivo 2 Control lo r inominato in modo più ef f ic iente

LabVIEW_05:LabVIEW_05 12-02-2008 16:28 Pagina 27

Page 30: labviewworld-05

28

05

Quando fate il refactoring di un algoritmo complicato effettuate piccoli cambiamenti per volta e verificate fre-quentemente 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 del-le funzioni integrate per cercare stringhe, come indicato nel-la fig. 7.

• Lo schema a blocchi è troppo grandeUn 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. L’azione 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. Un’altra tecnica per ridurre lo spazio sullo schermo che uno schema a blocchi occupa è di creare dei subVI per sezioni di codice all’interno 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.

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

Figura 6 - VI con un a lgor i tmo compl icato

Figura 7 - VI sottoposto a refac tor ing

Note sull’autoreLaureato in ingegneria nucleare al Politecnico di Milano, MatteoFoini lavora in qualità di Technical Marketing Engineer pressoNational Instruments Italy

Read

erse

rvic

e.it

n. 5

25

LabVIEW_05:LabVIEW_05 12-02-2008 16:28 Pagina 28

Page 31: labviewworld-05

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

29

Training per esperti

RICHIAMARE SHARED LIBRARYIN LABVIEWVediamo come utilizzare il Call Library Function Node per richiamare Dynamic Link Library (shared library) su Windows

a cu

ra d

i M

atte

o Fo

ini

È possibile utilizzare LabVIEW per richiamare codicescritto in altri linguaggi nei modi seguenti:

• Mediante protocolli specifici (platform-specific).• Mediante il Call Library Function Node per richiamare iseguenti tipi di shared library:- Dynamic Link Library (DLL) su Windows- Framework su Mac OS- Shared Library su LinuxQuesto articolo tratta l’uso del Call Library Function Nodeper richiamare Dynamic Link Library (shared library) suWindows.

PANORAMICA SULLE SHARED LIBRARYSu Windows, una shared library si chiama DLL. Una shared library è una libreria di dati o funzioni eseguibi-li utilizzabili da un’applicazione Windows.Tipicamente, una shared library mette a disposizione una opiù funzioni particolari a cui un programma può accederecreando un link statico o dinamico alla shared library.Un link statico rimane costante durante l’esecuzione delprogramma, mentre un link dinamico viene creato dal pro-gramma quando è necessario. La libreria è memorizzatacome file binario. É possibile utilizzare qualsiasi linguaggioper scrivere delle DLL, purché le DLL possano essere richia-mate mediante una delle convenzioni di chiamata suppor-tate da LabVIEW: stdcall o C.I metodi generali descritti qui per le DLL valgono anche peraltri tipi di shared library.Consultate la directory labview\examples\dll per esempi sul-l’uso delle shared library.

CHIAMATE A SHARED LIBRARYQuesto paragrafo descrive l’utilizzo di una DLL in LabVIEW.

DESCRIZIONE E DEFINIZIONE DI SHARED LIBRARYE’ possibile richiamare la maggior parte delle shared librarystandard con il Call Library Function Node. Su Windows, talishared library sono DLL, su Mac OS, sono Framework e suLinux, sono Shared Library. Il Call Library Function Node inclu-de un numero elevato di tipi dato e convenzioni di chiamata:potete utilizzarlo per richiamare le funzioni appartenenti allamaggior parte delle librerie standard e personalizzate.

FUNZIONI, VANTAGGI E LIMITAZIONI DELLE DLLLe DLL hanno i seguenti vantaggi:• È possibile cambiare la DLL senza cambiare alcuno dei VIche si collegano alla DLL, purché non vengano modificati iprototipi delle funzioni.• Praticamente tutti i moderni ambienti di sviluppo forni-scono supporto per la creazione di DLL.Il Call Library Function Node è appropriato soprattuttoquando si desidera richiamare codice esistente o si ha fami-liarità con il processo di creazione di shared library stan-dard. Poiché una libreria utilizza un formato standard inambienti di sviluppo diversi, è possibile utilizzare pressochéqualsiasi ambiente di sviluppo per creare una libreria richia-mabile da LabVIEW. Consultate la documentazione delvostro compilatore per determinare se potete creare sharedlibrary standard. Il compilatore di LabVIEW può generare codice abbastanzavelocemente per la maggior parte dei task di programma-zione. Potete richiamare shared library da LabVIEW per svol-gere task che un linguaggio basato su testo può eseguirepiù facilmente, come task time-critical. Potete inoltre utiliz-zare shared library per task che non è possibile eseguiredirettamente dallo schema a blocchi, come la chiamata diroutine di sistema per le quali non esiste alcuna funzione diLabVIEW corrispondente. Le shared library possono anche collegare LabVIEW a codi-ce esistente, benché possa essere necessario modificare ilcodice in modo che usi i tipi di dato di LabVIEW corretti. Leshared library sono eseguite in modo sincrono, pertantoLabVIEW non può utilizzare il thread di esecuzione utilizza-to da questi oggetti per altri task. Quando un VI è in esecuzione, LabVIEW monitoral’interfaccia utente, inclusi menù e tastiera. Nelle applica-zioni multithread, LabVIEW usa un thread separato per itask dell’interfaccia utente. Nelle applicazioni a thread sin-golo, LabVIEW commuta fra i task dell’interfaccia e i VI inesecuzione. Quando il codice oggetto di una shared library viene ese-guito, esso assume il controllo del suo thread di esecuzione.Se un’applicazione ha solo un singolo thread di controllo,l’applicazione attende finché il codice oggetto non termina.Nei sistemi operativi a thread singolo come Mac OS, le sha-red library impediscono anche l’esecuzione di altre applica-

LabVIEW_05:LabVIEW_05 12-02-2008 16:28 Pagina 29

Page 32: labviewworld-05

30

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

zioni. LabVIEW non può interrompere il codice oggetto inesecuzione, pertanto non potete resettare un VI che sta ese-guendo una shared library finché l’esecuzione non termina.Se volete scrivere una shared library che esegue un lungotask, fate attenzione al fatto che LabVIEW non può esegui-re altri task nello stesso thread mentre tali oggetti vengonoeseguiti.

METODO PER CHIAMARE SHARED LIBRARYUtilizzate il Call Library Function Node per chiamare diret-tamente una DLL Windows a 32 bit, un Framework Mac OSo una funzione Shared Library Linux. Con questo nodo,potete creare un’interfaccia in LabVIEW per chiamare libre-rie esistenti o nuove librerie specificamente scritte per l’usocon LabVIEW. National Instruments raccomanda l’uso delCall Library Function Node per creare un’interfaccia versocodice esterno. Cliccate con il tasto destro sul Call LibraryFunction Node e selezionate Configure dal menù breveper aprire la finestra di dialogo Call Library Function,come illustrato in figura 1. Utilizzate la finestra di dialogo per specificare la libreria, lafunzione, i parametri, il valore di ritorno per l’oggetto e leconvenzioni di chiamata su Windows.

Cliccando infine OK,LabVIEW aggiorna il nodo in base allevostre impostazioni, visualizzando il numero corretto di ter-minali ed impostando i terminali in base ai tipi di dato cor-retti. Quando configurate i parametri, la finestra FunctionPrototype visualizza (in modalità di sola lettura) il prototi-po C per la funzione che state costruendo.

IMPOSTAZIONE DELLA CONVENZIONE DI CHIAMATASelezionate la convenzione di chiamata desiderata tra le

Calling Conventions della finestra di dialogo CallLibrary Function. La convenzione di default è C.

(Windows) Potete anche utilizzare la convenzioneWindows standard, stdcall.

CONFIGURAZIONE DEI PARAMETRIInizialmente, il Call Library Function Node non ha parametri erestituisce un tipo Void. Il tipo di ritorno viene restituito sulterminale destro della coppia superiore di terminali. Se il tipodi ritorno è Void, la coppia superiore di terminali è inutilizza-ta. Ogni coppia addizionale di terminali corri-sponde ad un parametro aggiunto nell’elencoche si trova cliccando sul tab Parameters dellafinestra Call Library Function. La figura 2 illustraun nodo con un tipo di ritorno Void, un parame-tro stringa ed un parametro numerico.

TIPO DI RITORNOCome tipo di ritorno è possibile impostare Type a Void,Numeric o String. Void è disponibile solo per il tipo di ritor-no e non è disponibile per i parametri. Utilizzate Void per iltipo di ritorno se la vostra funzione non restituisce alcunvalore. Anche se la funzione che richiamate restituisce unvalore, potete utilizzare Void per il tipo di ritorno. Quando lafunzione restituisce un valore e selezionate Void come tipodi ritorno, il valore restituito dalla funzione viene ignorato.

Nota Se la funzione che state richiamando restitui-sce un tipo di dato non elencato, scegliete un tipo di

dato di ritorno che abbia le stesse dimensioni dati di quellorestituito dalla funzione. Per esempio, se la funzione restituisce un tipo dato char, uti-lizzate un intero senza segno di 8 bit. Una chiamata a unafunzione in una DLL non può restituire un puntatore, perchénon vi sono tipi puntatore in LabVIEW. Tuttavia, potete spe-cificare il tipo di ritorno come un intero avente le stessedimensioni del puntatore. LabVIEW tratta quindi l’indirizzocome un semplice intero, che potete passare a future chia-mate della DLL.

AGGIUNTA E CANCELLAZIONE DI PARAMETRIPer aggiungere parametri al Call Library Function Node, clic-cate il pulsante Add a Parameter (simbolo: “+”). Perrimuovere un parametro, cliccate il pulsante Delete theselected parameter (simbolo: “x” rossa).

SELEZIONE DEL TIPO DI PARAMETROUtilizzate il menu a tendina Type per indicare il tipo di cia-scun parametro. Dopo la selezione, potete editare il nome(nel campo Name) per cambiarlo in qualcosa di più descrit-tivo. Potete selezionare fra i seguenti tipi di parametri:• Numeric

Figura 1 - Finestra Cal l L ibrar y Func t ion

Figura 2

LabVIEW_05:LabVIEW_05 12-02-2008 16:28 Pagina 30

Page 33: labviewworld-05

31

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

• 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 perindicare dettagli circa il parametro e la modalità di passaggiodei dati alla funzione di libreria. Il Call Library Function Node ha una serie di diversi elementiper i tipi di parametri, a causa della varietà di tipi di datirichiesti da librerie differenti. Consultate la documentazionedella libreria che richiamate per determinare quale tipo diparametro utilizzare. I paragrafi seguenti discutono i diffe-renti tipi di parametri disponibili.

(Windows) Consultate labview\examples\dll\data pas-sing\Call Native Code.llb per un esempio d’uso dei tipi didati nelle shared library.

NUMERICPer i tipi di dati numerici, dovete indicare l’esatto tiponumerico utilizzando il menù a tendina Data Type. Potetescegliere 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 com-plessi possono essere passati selezionando Adapt to

Type dal menù a tendina Type. Tuttavia, le librerie stan-dard generalmente non utilizzano numeri a precisione este-sa e numeri complessi. Utilizzate il menu a tendina Pass perindicare se volete passare il valore o un puntatore al valore.

ARRAYUtilizzate il menù a tendina Data Type per indicare il tipodi dato dell’array. Potete scegliere fra gli stessi tipi di datidisponibili per i parametri numerici. Specificate le dimensio-ni dell’array in Dimensions.Utilizzate il menù a tendina Array format per eseguire unadelle scelte seguenti:• Array Data Pointer passa un puntatore unidimensiona-le al dato array.• Array Handle passa un puntatore a un puntatore chepunta ad un valore a quattro byte per ogni dimensione,seguito dai dati.• Array Handle Puntatore passa un puntatore a un arrayhandle.

Nota Non cercate di ridimensionare un array confunzioni di sistema, come realloc, altrimenti potreste

mandare in crash il vostro sistema. Utilizzate invece unadelle funzioni di gestione del Code Interface Node (CIN),come NumericArrayResize.

STRINGUtilizzate il menù a tendina String format per indicare il for-mato stringa. Potete scegliere fra i seguenti formati stringa:• C String Pointer - una stringa seguita da un caratterenullo (null character)• Pascal String Pointer - una stringa preceduta da unbyte di lunghezza• String Handle - un puntatore a un puntatore a quattrobyte per l’informazione di lunghezza, seguito dai dati dellastringa• String Handle Pointer

Selezionate un formato stringa che la funzione di libreria siaspetta. La maggior parte delle librerie standard si aspettauna stringa C o una stringa Pascal. Se la funzione di libreriache state chiamando è scritta per LabVIEW, potreste prefe-rire l’uso del formato string handle.

Nota Non cercate di ridimensionare un array confunzioni di sistema, come realloc, altrimenti potreste

mandare in crash il vostro sistema.

OPZIONI STRINGALabVIEW memorizza le stringhe come array, ossia comestrutture puntate da handle. Il Call Library Function Nodepuò utilizzare puntatori a stinga in stile C e Pascal oLabVIEW string handle. La figura 3 mostra un esempio diLabVIEW string handle.

Si può pensare ad una stringa come ad un array di caratte-ri. Assemblando i caratteri in ordine si forma una stringa.LabVIEW memorizza le stringhe in uno speciale formato, nelquale i primi quattro byte dell’array di caratteri formano unintero a 32 bit con segno che memorizza la quantità dicaratteri che appare nella stringa. Quindi, una stringa con n caratteri richiede n + 4 byte peressere memorizzata in memoria. Per esempio, la stringa textcontiene quattro caratteri.

Figura 3 - Esempio d i LabVIE W str ing handle

LabVIEW_05:LabVIEW_05 12-02-2008 16:28 Pagina 31

Page 34: labviewworld-05

32

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

Quando LabVIEW memorizza la stringa, i primi quattro bytecontengono il valore 4 come numero a 32 bit con segno eciascuno dei successivi quattro byte contiene un caratteredella stringa. Il vantaggio di questo tipo di memorizzazione della stringaè che nella stringa sono ammessi caratteri NULL. Il formatostringa Pascal è quasi identico al formato stringa diLabVIEW, ma invece di memorizzare la lunghezza dellastringa come un intero a 32 bit con segno, utilizza un inte-ro a 8 bit senza segno. Ciò limita la lunghezza di una stin-ga tipo Pascal a 255 caratteri. In figura 4 è riportata unarappresentazione grafica di una stringa Pascal. Una stringa Pascal lunga n caratteri richiede n + 1 byte dimemoria per essere memorizzata.

Le stringhe C sono probabilmente il tipo di stringhe con lequali avrete a che fare più spesso. Le analogie fra la stringa stile C e i normali array numericiin C diventano molto più chiare se notate che le stringhe Csono dichiarate come char *. Le stringhe C non contengono alcuna informazione cheindichi direttamente la lunghezza della stringa, al contrariodelle stringhe LabVIEW e Pascal. Le stringhe C utilizzano un carattere speciale, chiamatocarattere NULL, per indicare la fine della stringa, come illu-strato in figura 5. NULL ha un valore zero nel set di caratteri ASCII. Notate che questo è il numero zero e non il carattere 0.

Pertanto, in C, una stringa contenente n caratteri richiede n+ 1 byte di memoria per essere memorizzata, n byte per icaratteri nella stringa ed un byte addizionale per il caratte-re di terminazione NULL.Il vantaggio delle stringhe tipo C è che sono limitate nelledimensioni solo dalla memoria disponibile.

Tuttavia, se state acquisendo dati da uno strumento cherestituisce dati numerici sotto forma di una stringa binaria,come è comune con gli strumenti seriali o GPIB, sono pos-sibili 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. Setrattate la stringa come una stringa tipo C, il programmaritiene erroneamente che sia stata raggiunta la fine dellastringa, mentre in effetti lo strumento sta restituendo unvalore numerico pari a zero.

WAVEFORMQuando richiamate una shared library che include un tipodati waveform, non dovete specificare un valore numericodal menu a tendina Data Type; il valore di default è 8-byteDouble. Tuttavia, dovete specificare un valore in Dimensions.Specificare 0 per una singola forma d’onda, 1 per un arraydi forme d’onda. LabVIEW non supporta array di forme d’onda di dimensio-ne maggiore a 1.

DIGITAL WAVEFORM E DIGITAL TABLESpecificare dimensione 0 per una singola forma d’onda odato digitale, 1 per un array di forme d’onda o dati digitali.LabVIEW non supporta array di forme d’onda o dati digita-li di dimensione maggiore a 1.

Nota Potete passare forme d’onda, forme d’ondadigitali e dati digitali tramite shared library, ma

attualmente non è supportato l’accesso ai dati all’internodelle shared library.

ACTIVEXSelezionate uno dei seguenti elementi dal menu a tendinaData Type:• ActiveX Variant Pointer passa un puntatore a dati ActiveX.• IDispatch* Puntatore passa un puntatore all’interfac-cia IDispatch di un server ActiveX Automation.• Iunknown* Puntatore passa un puntatore all’interfac-cia IUnknown di un server ActiveX Automation.

ADAPT TO TYPEUtilizzate Adapt to Type per passare tipi di dati LabVIEWarbitrari a DLL. I tipi di dati LabVIEW arbitrari vengono pas-sati alle DLL nei modi seguenti:• Gli scalari sono passati per riferimento. Alla libreria vienepassato un puntatore allo scalare.• Gli array e le stringhe sono passati in base all’imposta-zione di Data Format.

Potete scegliere fra le seguenti opzioni di Data Format:- Handles by Value passa l’handle alla libreria. L’handlenon è NULL.

Figura 4 - R appresentaz ione graf ica d i una str inga Pascal

Figura 5 - Carattere NULL, indicatore d i f ine st r inga in C

LabVIEW_05:LabVIEW_05 12-02-2008 16:28 Pagina 32

Page 35: labviewworld-05

33

- Pointers to Handles passa alla libreria un puntatore al -l’handle. Se l’handle è NULL, l’handle viene trattato comeuna stringa o un array vuoti. Per impostare un valore quan-do l’handle è NULL, dovete allocare un nuovo handle.• I cluster sono passati via reference.• Gli elementi scalari negli array o cluster sono inline. Peresempio, un cluster contenente un numerico viene passatocome un puntatore ad una struttura contenente un numeri-co.• I cluster all’interno di array sono inline.• Le stringhe e gli array all’interno di cluster vengono refe-renziati da un handle.

Nota Quando uno o più parametri della funzione chevolete chiamare in una DLL sono di tipi inesistenti in

LabVIEW, assicuratevi che ogni parametro sia passato allafunzione in un modo che permetta alla DLL di interpretarecorrettamente i dati. Create un file scheletro .c dalla confi-gurazione corrente del Call Library Function Node. Osservando il file .c, potete determinare se LabVIEW passai dati in modo compatibile con la funzione della DLL. Potetequindi eseguire gli eventuali aggiustamenti necessari.

LAVORARE CON TIPI DI DATI INSOLITIPotreste imbattervi in una funzione che si aspetta dati inuna forma che il Call Library Function Node non è in gradodi passare. Specificamente, il nodo non supporta strutture oarray contenenti un puntatore ad altri dati o strutture con-tenenti array flat che possono essere dimensionati in modovariabile. Potete richiamare una funzione che si aspetta untipo di dato non supportato nei modi seguenti:• Se il dato non contiene puntatori, potreste riuscire ad uti-lizzare la funzione Flatten to String per creare una stringacontenente l’immagine binaria dei dati richiesti e passaretale stringa come puntatore ad una stringa C. L’ingressobyte order della funzione Flatten to String può essere utiliz-zato per specificare correttamente l’ordine nativo dei byte.• Scrivere una funzione di libreria che accetta i dati nellaforma utilizzata da LabVIEW e costruisce la struttura datiattesa dall’altra libreria.Questa funzione può quindi richiamare l’altra libreria erecuperare eventuali valori restituiti prima di ritornare. La vostra funzione accetterà probabilmente i dati dalloschema come adapt to type, quindi è possibile passarequalsiasi tipo di dato del diagramma.

Note sull’autoreLaureato in ingegneria nucleare al Politecnico di Milano, MatteoFoini lavora in qualità di Technical Marketing Enginee pressoNational Instruments Italy.

Read

erse

rvic

e.it

n. 5

26

PER LA VOSTRA

PUBBLICITÁ

SU QUESTE

PAGINE

CONTATTATE

I NOSTRI

AGENTI

REGIONALI

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

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

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.525www.ilb2b.it - www.fieramilanoeditore.it

LabVIEW_05:LabVIEW_05 14-02-2008 10:45 Pagina 33

Page 36: labviewworld-05

34

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

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

Filtri di pesatura (simulati)Questo VI simula in continua il segnale specificato. La pesatura in frequenza è applicata sia nel dominio del tempo sia neldominio della frequenza. La pesatura nel dominio del tempo è applicata tramite VI di pesatura a percentuale fissa ed ilsegnale pesato può essere comparato al segnale d’ingresso. La pesatura è applicata anche nel dominio della frequenza. Glispettri di potenza dei segnali pesati sono anche riportati in un grafico con lo spettro di potenza del segnale d’ingresso.Cambiando il segnale simulato e la pesatura si ottiene una buona indicazione di come la pesatura in frequenza (neldominio del tempo o della frequenza) influisce sul segnale. Sono supportati i seguenti filtri di pesatura: A, B, C, ITU-R 468-4, Dolby, CCITT e C-message. Questo programma è un VI d’esempio incluso nei pacchetti NI Sound and VibrationMeasurement Suite ed NI Sound and Vibration Toolkit.

Link alla pagina:

ni .com/ita l ian infocode: i t3nch

Quale versione di LabVIEW posseggo?Questo VI vi dice quali versioni di LabVIEW sono presenti sul computer dal quale il programma viene eseguito. Oltre allaversione, esso elenca il tipo di ambiente di sviluppo installato (Base, Full o Professional). Rileva inoltre se è installata unaversione di valutazione di LabVIEW. Il programma scansiona il registro di Windows per le differenti versioni di LabVIEWinstallate e visualizza le informazioni sulla versione nell’indicatore del pannello frontale. Il programma rileva solo leprincipali versioni di LabVIEW, non i patch. Se è stato installato un patch (per es. 7.1.1), esso visualizza solo la versioneLabVIEW principale per il patch (7.1).

Link alla pagina:

ni .com/ita l ian infocode: i t3nch

VI di monitoraggio delle prestazioniIl VI di monitoraggio delle prestazioni è un esempio di come ottenere dei valori dai contatori di prestazioni di Windows dautilizzare per l’analisi delle prestazioni del codice. L’accesso a questi contatori integrati può essere eseguito su computerche eseguono Windows con il framework .NET. L’interfaccia è 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. Valorinormalmente tracciati sono la percentuale del ‘tempo processore’ utilizzato (sia totale sia per singoli processi), glisvuotamenti della cache e il numero di thread. Questo tipo di tool è particolarmente utile quando si deve ottimizzare delcodice complesso o si provano architetture di programma differenti. Anche l’analisi di sistemi multicore (dual-core e quad-core, per esempio) che eseguono programmi paralleli viene così semplificata.

Link alla pagina:

ni .com/ita l ian infocode: i t3nch

LabVIEW_05:LabVIEW_05 12-02-2008 16:31 Pagina 34

Page 37: labviewworld-05

35

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

Impostare la priorità di LabVIEW in WindowsQuesto esempio imposta la priorità di LabVIEW in Windows. La priorità di LabVIEW è diversa dalla priorità dei VI inLabVIEW perché riguarda l’intera applicazione LabVIEW e non un solo VI. L’esempio chiama GetCurrentProcess e SetPriorityClass dalla DLL kernel32. Consultate il sito Web MSDN sumsdn.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:

Riformattazione dei file XML di LabVIEW per semplici editor di testoI file XML creati in LabVIEW non sono sempre facilmente leggibili all’interno di semplici editor di testo. Vi sono due modiper creare file XML in LabVIEW: (1) usando i VI XML nativi in LabVIEW oppure (2) usando i VI DOM Parser XML che sonoinclusi nell’Internet Toolkit. I file XML creati con i VI nativi sono scritti come file testuali multilinea, mentre quelli creaticon l’Internet tookit sono scritti come file a singola linea. In entrambi i casi, i campi XML non sono chiaramente disposti inun modo che evidenzi la relazione genitore/figlio. Ovviamente, questi formati possono rendere i file XML di LabVIEW moltodifficili 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 edelle tabulazioni dove è necessario per renderne l’aspetto in un editor di testo analogo a quello di un editor XML. Dopol’esecuzione di questo VI, i campi genitore/figlio nel file XML sono indentati e spaziati in modo logico.

Link alla pagina:

ni .com/ita l ian infocode: i t3nch

Trasformare un VI LabVIEW in una finestra figlia integrata in una finestrad’interfaccia utente Visual C#

Questo esempio dimostra come trasformare un VI LabVIEW in una finestra figlia integrata di un Windows Form inun’applicazione Visual C#.Quando si esegue Embedded.exe, esso apre un Windows Form .NET, che è un’interfaccia utente Visual C#. Il Windows Forminclude due pulsanti. Quando si clicca il pulsante Open VI, l’applicazione apre test.vi e lo mette in un proprio form comefinestra figlia. Quando si finisce di usare il VI sul Windows Form, si deve cliccare il pulsante Stop per chiudere il VI. Cliccatenuovamente il pulsante Open VI per riaprire il VI. Quando avete terminato di usare l’applicazione, cliccate il pulsante Closeper uscire dall’applicazione.

Link alla pagina:

ni .com/ita l ian infocode: i t3nch

Realizzare una calcolatrice con un LabVIEW XControlQuesto esempio mostra come utilizzare un LabVIEW XControl. Calculator XControl può manipolare valori analogamente auna calcolatrice portatile. Il valore dell’XControl è il valore calcolato corrente indicato in Output. Aprite il Calculator XControl Project incluso in questo esempio per vedere la configurazione dell’XControl. Il progettoinclude i VI e i controlli dell’XControl, nonché il VI esemplificativo della calcolatrice che implementa l’XControl.

Link alla pagina:

ni .com/ita l ian infocode: i t3nch

ni .com/ita l ian infocode: i t3nch

LabVIEW_05:LabVIEW_05 12-02-2008 16:31 Pagina 35

Page 38: labviewworld-05

36

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

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 lagrafica anche se la trovo un pò troppo compatta.Secondo me era più chiaro l' highlight dei messaggi nonletti come era prima che adesso ma magari è soloabitudine! BYE BYE, HAPPY NEW YEAR! Apollon

[continua su http://www.ilvg.it/ht/3667]

ale914

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

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

Inviato: Dom Gen 27, 2008 7:30 pm Un saluto a tutti, chi per cortesia, mi può suggerire un aiuto sull'uso diINSERT (SQL) tramite connessione ODBC via ADO ?Il mio problema è che nonostante sia riuscito acollegarmi ad un DB access, tramite ODBC driver via ADOe tutto mi funziona fino all’esecuzione di una sempliceSELECT, quando invece imposto una semplice INSERT, allancio della stessa mi appare una Form di Dialogorelativa all’oggetto ADO (che utilizzo) con l’avvertimento:L’operazione non è consentita se l’oggetto è chiuso e diconseguenza l’inserimento del record nel mio DB fallisce.Il mio problema è come eseguire una open (immaginosull’ADO) ... o sbaglio ? chi mi può fornire un sempliceesempio 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 iblocchi di LabView? Se guardi nella sezione "Articoli" delforum puoi trovare alcune guide sull'argomentodatabase. 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'aperturadella connessione che ti chiede USER ID e PASSWORD.Se invece lavori con i nodi di LabView allora devisfruttare il metodo OPEN delle connessioni ADO e anchein questo caso devi specificare i parametri deldatabase.Ciao!! MagicBotolo

In effetti, ho provato una INSERT con un programminoche 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 esegueuna INSERT non bisogna lavorare sul Recordset, così comeè invece logico fare con una SELECT.Purtroppo non ho tempo per provarci, ma per ora misembra l'unica spiegazione. Bubbazz

[continua su http://www.ilvg.it/ht/3731]

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

Inviato: Dom Gen 27, 2008 11:32 am Salve a tutti, sono una nuova iscritta e una nuovainteressata a labview ...... ho però questo problema e chiedo a voi se esiste unmetodo per recuperare la password di alcunisorgenti da modificare lasciati da tempo in archivio e cheora sarebbe interessante spulciare e riutilizzare.Vorrei visionarli per imparare tecniche e trucchi e permagari ottimizzarli.

Chi li aveva realizzati non lavora più con noi ed io mi stoaffacciando ora a questo mondo...... è proprio tutto da buttare via ? mi aiutate ?ho dei progetti apribili ma quando vado in "Show BlockDiagram" mi chiede la password c'è qualche passwordRecovery per labview ?Grazie mille elenaM

[continua su http://www.ilvg.it/ht/3730]

elenaM

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

LabVIEW_05:LabVIEW_05 12-02-2008 16:31 Pagina 36

Page 39: labviewworld-05

37

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

Inviato: Mar Dic 04, 2007 2:39 pm Avevo letto qualcosa a riguardo di un comando allatastiera per "pulire" i fili in modo da togliere tutti gliscalini ... qualcuno sa dirmi qualcosa? Grazie mir

Ma non è che intendi la possibilità di selezionare un filo espostarlo con le frecce cursore, in modo da riallinearlo adaltri spezzoni? nicola

faccio un esempio ...mettiamo che da ubriaco abbia

tirato una linea a zigo zago ... non esiste un comando chela raddrizzi e la ottimizzi nel suo percorso? mir

Se tu vai colmouse sul filo e clikki il tasto destro ticompare CLEAN UP WIRE che ottimizza il percorso inmodo tale da fargli risultare meno incroci e partinascoste possibili. Credo sia questo che intendi, pero' nonmi risulta che ci sia l'equivalente da tastiera. gepponline

[continua su http://www.ilvg.it/ht/3615]

mir

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

dot_entr y

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 unindicatore bouleano da mettere nel Front Panel inmaniera che da un quadrato diventi un triangolo. Mi serve per indicare uno stato di movimento che va sù ogiù 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 finestrache ti consente di personalizzare il tuo controllo coma

Grazie! Fino a questo passaggio ero arrivato. Lo usavo peri controlli. Ma come faccio a modificare la formadell'indicatore? dot_entry

Puoi importare anche delle bitmap nei controlli tipo ringpicture e poi tradurre le uscite in dei booleani.Professormister

Non ho mai usato il customize per modificare le forme delgliindicatori. Qulacuno puoò inicarmi come fare o dove possotrovare 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, tramiteproperty node, rendi il primo invisibile e il secondovisibile. Mettendoli sovrapposti l'effetto è ovviamentequello di un cambiamento di forma. Bubbazz

[continua su http://www.ilvg.it/ht/3722]

robyf1

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 unavariabile globale? Grazie robyf1

Puoi creare nel tuo VI un indicatore invisibile collegatoalla variabile globale e gestire l'evento "Change value"dell'indicatore. Ciao!! MagicBotolo

Caro robyf1 e caro MagicBotolo dite pure a me come si famodificando da diagramma il contenuto di una variabile,a generare un evento di interfaccia gestiti dalla struttura"EventCase"??? Secondo me, l'unico modo è quello dipassare attraverso l'uso di "eventi dinamici" (tasto dx delmouse sul bordo dell'event structure e abilitare "ShowDynamic Event Terminals"), magari usando una"functional global" al posto della globale...paracarro

Ma perchè... se tu colleghi una Variabile Globale ad unindicatore nel momento in cui la variabile cambia (e neleggi il valore da assegnare all'indicatore...eventualmente il problema sta nel gestire i tempi dilettura della variabile) dovresti avere l'evento "Changevalue" da poter controllare con una Event Structure...Ciao!! MagicBotolo

Credo che se la variabile viene continuamente letta, e i tempidi 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 diregistarsi all'evento di cambiamento. Bubbazz

[continua su http://www.ilvg.it/ht/3729]

LabVIEW_05:LabVIEW_05 12-02-2008 16:31 Pagina 37

Page 40: labviewworld-05

38

E V E N T I

05

AL BIAS 2008 LE NUOVE FRONTIEREDELLA STRUMENTAZIONE

Vale

rio

Ale

ssan

dron

i

Il mondo della strumentazione è in fase di profonda erapida innovazione e in questi cambiamenti coinvolgel'industria di processo, i laboratori di test e sperimenta-

zione e tutti gli altri numerosi campi applicativi. Questenovità saranno al centro dell’attenzione di Bias 2008, laBiennale Internazionale dell’Automazione, Strumentazione,Microelettronica e ICT per l’Industria, che proprio nella stru-mentazione ha uno dei suoi punti di forza. La prossima edi-zione di Bias e Bias Manuf@cturing Solutions (Biennaledelle Soluzioni Globali di Information Technology perl’Industria) si svolgerà dal 27 al 30 maggio 2008 presso ilpolo fieristico fieramilano di Rho, alle porte di Milano.All’evento parteciperà National Instruments. I principalimotivi del cambiamento in atto nel mondo della strumenta-zione sono le continue innovazioni tecnologiche e le modi-fiche alle normative e agli standard. L'avanzata dei sistemiwireless, ad esempio, che soprattutto nell'industria di pro-cesso acquisiscono una posizione sempre più rilevante, con-sente ormai di inserire un modulo di trasmissione su stru-menti di misura da collocare in posizioni difficili e permettedi far dialogare tutta la strumentazione con il sistema dicontrollo. Questo apre nuove possibilità per quanto riguar-da l'ottimizzazione del processo produttivo in sé e per lagaranzia di sicurezza, intesa sia come safety sia come secu-rity. Grazie alla possibilità di sfruttare gli avanzati metodi didiagnostica e di simulazione, la manutenzione e la gestionedegli asset può diventare in questo modo capillare e predit-tiva. Sempre nell'ambito della comunicazione, procede agrandi passi la diffusione delle reti Ethernet, ormai diventa-te il ‘sistema nervoso’ delle fabbriche. Esse consentono,infatti, di connettere la strumentazione da campo con isistemi di supervisione e di portare poi le informazioni ailivelli superiori, fino ai sistemi gestionali dell'intera azienda.Per quanto concerne il collegamento tra gli strumenti, cre-sce l'esigenza di ridurre la varietà dei sistemi di fieldbus edegli standard più in generale, mentre si rafforzano e trova-

no crescenti adesioni iliberi consorzi, come ilgruppo FDT (Field DeviceTool), che applicano solu-zioni innovative hardwaree software per assicurare efacilitare l'interoperabilitàe il dialogo tra le apparec-chiature in campo.Bisogna considerare, infi-ne, che le sempre maggio-

ri esigenze di sicurezza e tutela ambientale, che trovanoriscontro in normative in continua evoluzione, richiedonoanche agli strumenti prestazioni e funzionalità particolari estimolano l’innovazione. Tutte queste premesse comportanol'esigenza di introdurre nuova strumentazione o di sostitui-re la precedente. Una situazione che impone alle aziendedel settore di cercare momenti in cui incontrare i propriclienti e presentare i vantaggi competitivi della propriaofferta e che fa di Bias, unico evento internazionale dedica-to al mondo dell’automazione e dell’elettronica in tutto il2008, il contesto migliore per proporre le ultime novitàtecnologiche e dare voce ai protagonisti e agli esperti attra-verso workshop mirati e convegni di livello internazionale,realizzati in collaborazione con le principali associazioni delsettore, che saranno un’opportunità unica di aggiornamen-to professionale e confronto. Un’occasione che già molteaziende hanno colto: proseguono con trend positivo le ade-sioni di espositori sia italiani che esteri. Numerose realtàhanno infatti già confermato la propria presenza da StatiUniti, Giappone ed Europa, ma anche dall’Asia, in partico-lare da Cina, Corea e Taiwan. Anche per il 2008 Bias, dati i positivi ritorni della scorsa edi-zione, si svolgerà in concomitanza con altre tre importantimanifestazioni: Fluidtrans Compomac (BiennaleInternazionale della Fluidotecnica, Trasmissioni di Potenza eMovimento, Comandi, Controlli, Progettazione), MechanicalPower Transmission & Motion Control (BiennaleInternazionale dei Sistemi di Controllo del Movimento,Tecniche di Azionamento e Trasmissioni Meccaniche) eBi.Man (Biennale della Manutenzione Industriale), creandoun’offerta espositiva completa di tutta la filiera di prodotti esoluzioni per l’industria di processo e manifatturiera. Bias eBias Manuf@cturing Solutions 2008 sono organizzate daFiera Milano Tech, in collaborazione con F&M Fiere &Mostre. Manifestazioni di riferimento per automazione,strumentazione, elettronica e soluzioni IT per l’industria,godono del supporto delle maggiori associazioni nazionalied internazionali di settore: AIM, Association for AutomaticIdentification & Mobility; AIS, Associazione ItalianaStrumentisti; Anipla, Associazione Nazionale Italiana perl’Automazione; Assintel, Associazione Nazionale delleImprese ICT; Assipe, Associazione Italiana ProgettazioneElettronica; Assodel, Associazione Nazionale FornitoriElettronica; Fast, Federazione delle Associazioni Scientifichee Tecniche; Gisi, Associazione Imprese Italiane diStrumentazione e ISA-Italy Section, The Instrumentation,Systems, and Automation Society. Re

ader

serv

ice.

it n

. 557

LabVIEW_05:LabVIEW_05 12-02-2008 16:31 Pagina 38

Page 41: labviewworld-05

Progetto2:Layout 1 22-01-2008 15:13 Pagina 1

readerservice.it n.19870

Page 42: labviewworld-05

40

05R E P O R T

AUTOMATED TEST SUMMIT: VIRTUALMENTE PERFETTOLa quar ta ediz ione del l ’evento annuale organizzato da Nat ional Instruments s i è spostata onl ine per of f r i reun accesso comodo a l le u l t ime tendenze tecnologiche sul la progettaz ione di s i s temi d i test automatizzat i

Nad

ia A

lbar

ello

C hi ha superato la ritrosia e lo scetti-cismo iniziali - comprensibili per chinon aveva mai partecipato ad un

evento virtuale - e ha preso parte al primosimposio virtuale sulle piattaforme di testorganizzato da National Instruments (intempo reale per la fascia oraria europea),ha potuto visitare la nuova frontiera deglieventi on-line.È bastato un click per completare la pre-registrazione e catapultarsi in un ambiente3D che ricorda da vicino ambientazioni vir-tuali che mirano a simulare la vita realecome secondlife (www.secondlife.com). National Instruments, sempre attenta alle più recenti rivolu-zioni tecnologiche, ha immediatamente colto in questa ilpotenziale per realizzare eventi di nuova generazione, in gra-do di coinvolgere in prima persona i visitatori non fisicamentepresenti alla manifestazione: una vera rivoluzione.Il visitatore, infatti, vi ha potuto partecipare comodamentedal proprio ufficio o da casa, senza spostarsi : unica preroga-tiva, possedere un accesso ad Internet. Organizzato come una mostra convegno in piena regola,Automated Test Summit dello scorso 27 novembre, ha alter-nato presentazioni live nella parte convegnistica a momentidi incontro, interazione ed autentica socializzazione virtualesia durante gli approfondimenti in chat room a seguire (dalvivo con consulenti tecnici di National Instruments in linguaitaliana), che all’interno dell'area espositiva. I visitatori hannoinfatti potuto interagire dal vivo con gli espositori di alcunedelle maggiori aziende di test grazie ad un ambiente esposi-tivo virtuale e richiedere informazioni attraverso una chat. Aziende del calibro di Microsoft, Intel, Tektronix, Averna eBAE Systems hanno partecipato all’evento per condividerecompetenze tecniche ed esperienze sul campo.Le presentazioni tecniche della mattina hanno illustrato lemigliori tecniche e strategie per la progettazione di sistemi ditest in due appuntamenti: la Keynote e le sessioni tecniche. Laprima, focalizzata sulla progettazione di sistemi di test di ulti-ma generazione, su casi applicativi concreti e come sviluppa-re un programma di test globale. A seguire, le sessioni tecni-

che hanno affrontato come applicare strategie vantaggioseper la progettazione di sistemi di test, analizzato come utiliz-zare i migliori strumenti di progettazione per la creazione disistemi di test riutilizzabili, esaminato le tecniche perl’ottimizzazione dei sistemi di test, quelle per mantenerel’esattezza e la validità del sistema e discusso sull’integrazio-ne di piattaforme di strumentazione diverse.“Ogni anno National Instruments collabora con le aziendeleader nel mercato tecnologico e dei prodotti ATE (AutomatedTest Equipment) per la buona riuscita dell’Automated TestSummit, ovvero la più avanzata occasione di aggiornamentosu strategie e tecnologie nel settore del test automatizzatorivolta a tecnici e management delle principali aziende di elet-tronica”, ha dichiarato Kevin Bisking, Automated Test ProductManager di National Instruments. L’idea di rendere l’eventodisponibile ai frequentatori del Web è nata a fronte del cre-scente numero di impegni di tecnici ed ingegneri di oggi. Ipartecipanti all’evento avranno la possibilità di imparare dal-le ‘best practice’ per applicazioni di test in tutta comodità dal-la propria postazione. L’evento si è confermato un successocon oltre 700 partecipanti. Vi aspettiamo alla prossima edi-zione di giugno!

Note sull’autoreNadia Albarello, laureata in Lingue Moderne e Comunicazione alla KarlFranzens Universität di Graz, Austria, lavora in qualità di MarketingCommunications Manager presso National Instruments Italy.

Read

erse

rvic

e.it

n. 5

58

LabVIEW_05:LabVIEW_05 12-02-2008 16:32 Pagina 40

Page 43: labviewworld-05

maggio27-30

In contemporanea con

Organizzato da In collaborazione con Partners

Il mondo dell’automazione, strumentazione, elettronica e delle soluzioni informatiche per l’industria si dà appuntamento afieramilano per un’imperdibile opportunità di business, aggiornamento professionale e confronto con il mercato. In più larinnovata concomitanza con Fluidtrans Compomac, Mechanical Power Transmission & Motion Control e BI.MAN creerà ununico grande evento fortemente sinergico, la Technology Exhibitions Week, che riunirà tutta la filiera di prodotti e soluzioniper l’industria di processo e manifatturiera.

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

- Rho

2008

www.fieremostre.it

Per informazioni

F&M Fiere & Mostre Srl - Via Caldera 21/C - 20153 MilanoTel. +39 02 40922560 - Fax +39 02 [email protected]

Biennale Internazionale

dell’Automazione,

Strumentazione,

Microelettronica

e ICT per l’Industria

ASSOCIAZIONE ITALIANASTRUMENTISTI

BS_210x297 18-10-2007 15:39 Pagina 1

readerservice.it n.19545

Page 44: labviewworld-05

42

05R E P O R T

NASCE LABVIEW TOOLS NETWORK Un archiv io centra l izzato per o l t re 400 strumenti spec i f ic i e component i aggiunt iv i d i LabVIE W

Nad

ia A

lbar

ello

National Instruments ha annunciato l’espansione diLabVIEW Tools Network, un portale online che rap-presenta la maggiore risorsa di componenti aggiun-

tivi e prodotti per la connettività per LabVIEW. Nel 2007sono stati inseriti oltre 100 nuovi strumenti sviluppati daNational Instruments e da venditori di terze parti. Il recente ampliamento del network fornisce a tecnici eingegneri l’accesso a oltre 400 prodotti da utilizzare conLabVIEW, come un toolkit in grado di visualizzare le inter-facce utente in qualsiasi lingua e uno strumento che auto-matizza la generazione di modelli, la progettazione di con-trolli e la regolazione dei parametri di un controllore.“La crescita impressionante di LabVIEW Tools Network con-ferma l’aumento della popolarità della pittaforma di pro-gettazione grafica LabVIEW", ha affermato Jack Barber,manager del programma Alliance Partner di NationalInstruments. “La comunità di LabVIEW prosegue nella rea-lizzazione di nuovi prodotti che arricchiscono la piattaformae ne estendono le funzionalità verso nuove aree applicati-ve”.LabVIEW Tools Network garantisce agli utenti LabVIEW unacorretta identificazione degli strumenti adatti al migliora-mento dei propri progetti di sviluppo. Il network online con-sente di effettuare ricerche tramite parole chiave o di filtra-re per funzione/industria, al fine di trovare i prodotti speci-fici per la propria applicazione. Tra i prodotti disponibili sul network vi sono strumenti checonsentono, ad esempio, la conversione di tutti gli elemen-ti testuali presenti nel codice, come il LabVIEW LocalizationToolkit realizzato da S.E.A. Daten technik GmbH e altri com-ponenti aggiuntivi che permettono di effettuare operazioni

avanzate di modellazione, controllo e parametrizzazione susistemi di misura real-time, tipo ICP per LabVIEW sviluppa-to da ExpertControl GmbH. LabVIEW Tools Network rappresenta una vetrina per i ven-ditori di terze parti che vogliono mostrare i propri toolkit ecomponenti aggiuntivi a migliaia di utenti LabVIEW. I ven-ditori hanno inoltre la possibilità di aggiungere un elemen-to di distinzione ai loro prodotti, validandoli comeCompatibile con LabVIEW, grazie a una campagna recente-mente annunciata da National Instruments. Le società par-tecipanti valutano i propri prodotti in base a una lista direquisiti che include specifiche su documentiazione, stile efunzionalità. Essa viene successivamente sottoposta aNational Instruments per l’approvazione (a sua discrezione).Il programma Compatibile con LabVIEW consente ai clientidi effettuare acquisti consapevoli e spinge i venditori di ter-ze parti a realizzare prodotti di alta qualità.Per maggiori informazioni sugli oltre 400 componentiaggiuntivi presenti su LabVIEW Tools Network e per iscri-versi al programma Compatibile con LabVIEW visitate il sitowww.ni.com/labviewtools.

Note sull’autoreNadia Albarello, laureata in Lingue Moderne e Comunicazione alla KarlFranzens Universität di Graz, Austria, lavora in qualità di MarketingCommunications Manager presso National Instruments Italy.

Read

erse

rvic

e.it

n. 5

59

LabVIEW_05:LabVIEW_05 14-02-2008 15:18 Pagina 42

Page 45: labviewworld-05

cognome nome

azienda posizione aziendale

settore

indirizzo

città prov cap

e-mail tel fax

Consenso ai sensi dell’art. 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 ACCETTOEsprimi/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

VforM - Vision for Manufacturing è la terza mostra convegno dedicata alla tecnologia della visione artificiale. Organizzato con il contributo delle riviste SdA-Soluzioni di Assemblaggio, Automa zione Oggi e Automazione e Strumentazione.

L’evento 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 FederazioneANIE (Confindustria), di AIdA-Associazione Italiana di Assemblaggio,di SIRI-Associazione Italiana di Robotica e Automazione, del Polo della Roboticadi Genova e con il patrocinio di EMVA - European Machine Vision Association.

VforM si rivolge a pro get tisti, system inte gra tor, responsa bili e tecnici della pro duzione che neces sitano di risolvere proble ma tiche in ambito manifatturierolegate a: ispezione e con trollo della quali tà, guida robot, rilevamento pre senza,posizione e orien tamento, controllo dimensionale, identi fica zione e OCR ecc.

La mostraIn uno spazio specifico sarà allestitaun’esposizione a cura delle aziendepartecipanti, in cui sarà possibile “toccare con mano” l’attuale offertacommerciale.

Il convegnoNel corso della giornata si susseguirannoseminari tecnici tenuti dalle aziendeespositrici della durata di 30 minuticiascuno.

I contenutiIl programma, l’agenda e i titoli dei seminari saranno aggiornati, man mano che verranno confermati, sul sito www.ilb2b.it/vm

Per aderireon line all’indirizzo www.ilb2b.it/vm e via fax compilando il coupon allegatoe inviandolo allo 02.36.6092.515

La partecipazione ai seminari e alla mostra è gratuita, così come la documentazione e il buffet.

Per informazioniTel. 02.36.6092.510 - 511Fax. 02.36.6092.515Email: [email protected]: 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 estIn 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:

24 GIUGNO 2008

COU

PON

DI A

DESIO

NE

LA PA

RTECIPA

ZION

E È GR

ATU

ITA

MARTEDÌ 24 GIUGNO I 2008 CENTRO CONGRESSI FIERA DEL GARDA

V4M_pag_210X297_08:V4M_pag_210X297_08 6-02-2008 16:41 Pagina 1

Page 46: labviewworld-05

44

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

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

CORSI DI LABVIEWLABVIEW BASE 1: INTRODUZIONEMilano: 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

LABVIEW BASE 2: SVILUPPOMilano: 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

LABVIEW COMPACTRIO: FONDAMENTI DI SVILUPPOMilano: 12, 13, 14 Marzo

16, 17, 18 Giugno

LABVIEW ACQUISIZIONE DATI E CONDIZIONAMENTO DEI SEGNALIRoma: 10, 11 Marzo

16, 17, 18 Giugno

Padova: 1, 2, 3 Aprile

Milano: 1 2, 13, 14 Maggio

LABVIEW INTERMEDIATE 1: TECNICHE DI DESIGN PROFESSIONALIRoma: 7, 8, 9 Aprile

Milano: 9, 10, 11 Giugno

Padova: 17, 18, 19 Giugno

LABVIEW SVILUPPO APPLICAZIONI REAL-TIME Padova: 15, 16, 17 Aprile

LABVIEW VISIONE ARTIFICIALE ED ELABORAZIONI IMMAGINIMilano: 15,16 Maggio

CENTRI DI FORMAZIONESede NI di Milano

Via Anna Kuliscioff, 22 - 20152 Milano

Tel: +39 02 41309217 - Fax: +39 02 41309215

E-mail: [email protected]

Filiale di Roma

Pick Center

Piazza Marconi, 15 - 00192 Roma

Tel: +39 02 41309217 - Fax: +39 02 41309215

E-mail: [email protected]

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

Visitate ni.com/training/i per le descrizioni dettagliate

dei corsi e per iscrivervi.

APPUNTAMENTI NATIONAL INSTRUMENTSMAQUINA HERRAMIENTABilbao 4, 5, 6 Marzo

MC4 – MOTION CONTROL FOR...Bologna 11 Marzo

NIDAYS 08 SPAGNAMadrid 13 Marzo

NI ROADSHOWPadova 2 Aprile

Bologna 8 Aprile

Ancona 10 Aprile

Catania 16 Aprile

NI AUTOMOTIVE FORUMTorino 12 Giugno

NI AUTOMOTIVE FORUMBarcellona 22 Giugno

NI AUTOMOTIVE DAYMonaco 3 Giugno

FIERA AEROSPACE TESTINGMonaco 15, 16, 17 Aprile

FIERA AUTOMOTIVE TESTING EXPOStoccarda 6, 7, 8 Maggio

LabVIEW_05:LabVIEW_05 12-02-2008 16:33 Pagina 44

Page 47: labviewworld-05

45

I N T E R V I S T A

N orthrop Grumman ha partecipato a corsi insede dedicati a LabVIEW. Abbiamo intervi-stato Ermanno Pieragostini, progettista

sistemi di collaudo presso l’azienda.Salve a tutti, sono Ermanno Pieragostini dipenden-te di Northrop Grumman Italia, azienda operantenel 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 siste-mi di collaudo automatizzati che vanno installatinelle linee collaudo di produzione. Sono utente LabVIEW da molti anni. Ho parteci-pando a molti corsi NI (Base, Intermediate, NI-DAQ,ecc.). I corsi vengono programmati in base allenostre esigenze lavorative e/o dal progetto da svol-gere, nonché all’addestramento di nuove figure chevengono a far parte del reparto, siano esse tecnici oingegneri. Il contatto con il personale National Instrumentsrimane aperto anche dopo che si effettua un corso,per chiarimenti o dubbi successivi che ci possonosorgere. Lo scambio di know how è comunque con-tinuo all’interno del nostro team di lavoro.

D:Perchè LabVIEW?

R:Sviluppiamo le nostre applicazioni conLabVIEW sin dalla versione 5.0. Nel tempo

abbiamo sperimentato e usato tutte le versioni finoalla attuale 8.50. Questa evoluzione, aggiunta aicorsi di formazione svolti, ha fatto crescere le per-formance e le funzionalità del prodotto sviluppato.Inoltre, la standardizzazione di LabVIEW per mezzodella VLA ha permesso di raggiungere delle econo-mie di scala, riducendo i costi di sviluppo, integra-zione e training. Per far sì che il know how acquisito venga subitomesso in pratica, i corsi di formazione vengonoorganizzati prima di iniziare un nuovo progetto.

D:Parliamo ora dei benefici derivatidai corsi…

R:Durante lo svolgimento dei corsi, tipicamentecustomizzati alle nostre esigenze, si cerca sem-

pre di portare in risalto quelle difficoltà incontratedurante le fasi di sviluppo di un progetto software.

Insieme al personale NI si trova la soluzione piùappropriata per poi adottarla, quindi la soluzione alproblema.Un esempio pratico poterebbe essere quello di averacquisito il modo di sviluppare il software conun’architettura chiara, così da portare vantaggio intempi di sviluppo a modifiche successive effettuateda un’altra persona. Essendo io la persona con più anni di esperienzanell’utilizzo di LabVIEW all’interno della nostraazienda, mi accorgo chi partecipa ad un corso diformazione viene da me meno frequentemente achiedere consigli relativi allo sviluppo software. Ciò evidenzia l’effetto ottenuto dai corsi.

D:Avete condotto survey per verificareil grado di soddisfazione?

R:Sì, viene compilato il modulo di fine corso perverificare il grado di efficienza/soddisfazione

dei corsi da parte dei partecipanti. Il modulo entraa far parte del database aziendale.

D:Progetti futuri?

R:Stiamo già pensando di usare per il prossimoprogetto i prodotti NI (sia software che hard-

ware) e sicuramente li useremo anche nei progettifuturi.

05

Read

erse

rvic

e.it

n. 5

70

LabVIEW_05:LabVIEW_05 12-02-2008 16:33 Pagina 45

Page 48: labviewworld-05

0236519123

READER SERVICE

Dati sul lettore

Nome

Cognome

Azienda

Indirizzo Azienda

Cap Città

Prov. Nazione

Tel.

Fax

e-mail

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

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

WWW.READERSERVICE.IT Compilate la cartolina virtuale e noi provvederemo a inoltraretempestivamente la richiesta all'azienda interessata, che invieràal vostro indirizzo tutta la documentazione disponibile.In alternativa compilate questa scheda e inviatela al numero di fax:

NUMERO DELLA RIVISTA:

NUMERI DI READER SERVICE

5

www.READERSERVICE.IT

IL READER SERVICE E’ ON LINE!

IL READER SERVICE E’ ON LINE!

EDIZIONI FIERA MILANO EDI

FIERA MILANO EDIZION

MILANO EDIZIONI F

FIERA MILANO

EDIZIONI F

FIERA

READE

VICE

SERVICE

READER SE

DER SERVICE

READER SERVICE

READER SERVICECE

READER SERVICE READ

IL SERVIZIO È GRATUITO

READER Labviews:READER Labviews 13-02-2008 15:00 Pagina 46

Page 49: labviewworld-05

47

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

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

RICERCHIAMO

INGEGNERE DI LABORATORIO

(RIF: LG/0673/TO)

Manpower Professional

Il nostro cliente, azienda leader nella pro-

gettazione 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 all’interno del-

l’ente Ricerca e Sviluppo e riporterà al

Responsabile di Laboratorio.

Alla posizione sarà affidata l’intera gestio-

ne delle prove di qualifica idrauliche e mec-

caniche 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 ban-

chi prova e di report sui test effettuati

Il candidato ideale è un giovane Ingegnere

Aeronautico, Meccanico o Elettronico che

possiede una buona conoscenza della pro-

grammazione in generale e dimestichezza

nell’uso di Matlab e LabVIEW.

Requisiti:

Sono richiesti una buona padronanza della

lingua inglese, l’utilizzo di Office e di appli-

cativi ERP (quali SAP o BaaN).

La conoscenza e l’applicazione delle norme:

EN/AS 9100 - CE 1702/2042 - AER-Q-2110

costituirà titolo preferenziale.

Completano il profilo precisione, doti rela-

zionali e attitudine al lavoro di gruppo.

Sede di lavoro: Nord Est Piemonte.

Per candidarsi contattare:

[email protected]

Sede di lavoro: Piemonte.

www.altamira.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 defi-

nire le specifiche dei software applicativi da

utilizzare nelle prove di validazione del pro-

dotto, nell'ambito dell'attività di test di

laboratorio. Collaborare nella definizione

delle specifiche dei Test Equipment neces-

sari 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 automoti-

ve costituiscono titolo preferenziale.

Competenze specifiche: conoscenza dei lin-

guaggi di programmazione C, LabView e

Test Stand.

Conoscenze hardware di elettronica analo-

gica 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 fluen-

te. Eventuale conoscenza della lingua tede-

sca costituirà titolo preferenziale.

Completano il profilo autonomia decisiona-

le, metodica consolidata nel problem sol-

ving e capacità di relazionarsi a diversi

livelli, anche con fornitori esterni

Contratto: L’azienda offre assunzione a

tempo indeterminato. L’inquadramento e la

retribuzione sa ranno commisurati al profilo

del candidato.

Sede di lavoro: Lombardia

www.altamira.it

TLC - AUTOMATION TESTER

E SYSTEM INTEGRATOR

INFO SOLUTION SPA - servizi

Info Solution fornisce consulenza Software

e Hardware nei settori Aerospazio

(Avionica, Spazio, Difesa), Telecomuni -

cazioni e Industriale (Elettronica, Tra sporti,

Automotive, Energia) nei principali poli tec-

nologici italiani (Milano, Roma, Genova,

Torino, Napoli). L’azienda è 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 esperien-

za in ambito maintenance e system inte-

gration.

Requisiti:

• Buona competenza nello sviluppo di siste-

mi 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

d’apparato;

• 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 cono-

scenza di Java.

Candidature all’indirizzo

[email protected],

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

LabVIEW_05:LabVIEW_05 12-02-2008 16:34 Pagina 47

Page 50: labviewworld-05

48

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

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

Comitato Nadia Albarello, Matteo Bambini,

di redazione Matteo Foini, Alessandro Ricco,

Redazione Alberto Taddei Direttore Responsabile - [email protected]

Valerio Alessandroni Direttore Tecnico • [email protected]

Alessandra Pelliconi, Maddalena Pria Segreteria- tel: 02 366092.527

[email protected]

Collaboratori: Nicola Bavarone, Michele Corrà, Massimo Lorenzi, Marco Luciani, Enzo Nava,

Alessandro Ricco, Emanuele Stucchi, Franco Trespidi, Halvor Snellingen

Grafica e Bimage.it Progetto grafico e Impaginazione

produzione Franco Tedeschi Coordinamento grafici - [email protected]

Alberto Decari Coordinamento DTP - [email protected]

Sate Zingonia Verdellino - BG - Stampa

Pubblicità Giuseppe De Gasperis Sales Manager

[email protected] - 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 SalesU.K.-SCANDINAVIA - OLANDA - BELGIO The Huson European Media • Gerry Rhoades-Brown •tel: +44-1932-564999 • fax: +44-1932-564998

SWITZERLAND:Iff media ag • Carla Widmer •tel: +41-52-6330888 • fax: +41-52-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 l’abbonamento 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 tota-

le di 4 numeri all'anno. Tiratura del presente numero: 3.000 copie.

INFORMATIVA AI SENSI DELCODICE IN MATERIA DI PROTEZIONE

DEI DATI PERSONALI(Decreto Legislativo n. 196 del 30 giugno 2003)

Il Decreto Legislativo n. 196 del 30 giugno 2003 ha la finalitàdi garantire che il trattamento dei Vostri dati personali si svol-ga nel rispetto dei diritti, delle libertà fondamentali e delladignità delle persone, con particolare riferimento alla riserva-tezza e all’identità personale.

Vi informiamo, ai sensi dell’art. 13 del Codice, che i dati perso-nali da Voi forniti ovvero altrimenti acquisiti nell’ambito del-l’attività da noi svolta, potranno formare oggetto di trattamen-to, per le finalità connesse all’esercizio della nostra attività. Pertrattamento di dati personali si intende la loro raccolta, regi-strazione, organizzazione, conservazione, elaborazione, modifi-cazione, selezione, estrazione, raffronto, utilizzo, diffusione,cancellazione, distribuzione, interconnessione e quant’altro siautile per l’esecuzione del Servizio, compresa la combinazione didue o più di tali operazioni.

Il trattamento dei Vostri dati per le finalità sopraindicate avràluogo prevalentemente con modalità automatizzate ed infor-matiche, sempre nel rispetto delle regole di riservatezza e disicurezza previste dalla legge, e con procedure idonee alla tute-la delle stesse. Il titolare del trattamento dei dati personali èEdizioni Fiera Milano S.p.A., con sede legale in Milano, nellapersona del legale rappresentante; responsabili del trattamen-to sono i dipendenti e/o professionisti incaricati da EdizioniFiera Milano S.p.A., i quali svolgono le suddette attività sotto lasua diretta supervisione e responsabilità.

Il conferimento dei dati personali da parte Vostra è assoluta-mente facoltativo; tuttavia l’eventuale rifiuto ci rende impossi-bile l’esecuzione di alcun adempimento contrattuale.I dati, o alcuni di essi, per i fini di cui dianzi, potranno esserecomunicati a:• società appartenenti al medesimo gruppo societario di cui faparte Edizioni Fiera Milano S.p.A.;• soggetti esterni che svolgano funzioni connesse e strumenta-li all’operatività del Servizio, come, a puro titolo esemplificati-vo, la gestione del sistema informatico, l’assistenza e consulen-za in materia contabile, amministrativa, legale, tributaria efinanziaria;• soggetti cui la facoltà di accedere ai dati sia riconosciuta dadisposizioni di legge o da ordini delle autorità.

Un elenco dettagliato dei predetti soggetti è disponibile pressoEdizioni Fiera Milano S.p.A.Vi informiamo, inoltre, che potrete consultare, modificare,opporVi o far cancellare i Vostri dati o comunque esercitaretutti i diritti che Vi sono riconosciuti ai sensi dell’art. 7 delCodice, inviando una lettera raccomandata a Edizioni FieraMilano S.p.A. – Via Salvatore Rosa, 14 - 20156 – Milano.

Se volete consultare il testo completo del Codice in materia diprotezione dei dati personali, visitate il sito ufficialedell’Autorità Garante www.garanteprivacy.it

colo LabvVIEW 05:Layout 1 12-02-2008 16:53 Pagina 48

Page 51: labviewworld-05

rswww.it

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

readerservice.it n19610

Page 52: labviewworld-05

NI LabVIEW.Un solo limite, la tua immaginazione.

Scarica codice su microprocessori a 32-bit e FPGA

Sviluppa la tua interfacciauomo-macchina (HMI)

Comunica attraversovari protocolli, tra cui Bluetooth

Controlla indipendentementediversi motori servo

Programma graficamente applicazioni real-time concorrenti

Realizza e programma il tuo robotcon LEGO® MINDSTORMS® NXTgrazie al software powered by NI LabVIEW

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

PIATTAFORMA

LabVIEW Real-Time Module

LabVIEW FPGA Module

LabVIEW SDK per Microprocessori

Piattaforma HardwareEmbedded NI CompactRIO

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

© 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 commercialidelle rispettive aziende. LEGO e MINDSTORMS sono marchi commerciali di LEGO Group utilizzati previa autorizzazione.2007-9147-821-122-I

Real-Time ed Embedded Test ad Elevate Prestazioni Controllo IndustrialeElaborazione dei Segnali

>> Espandi la tua immaginazione e consulta le risorse tecniche su ni.com/labview85/i 02 41 309 277

Multicore Ready

LabVIEW 8.5

2007-9147-821-122-I 10/1/07 1:22 PM Page 1

readerservice.it n.20049