LA PRIMA RIVISTA ITALIANA PER LA COMUNITÀ LABVIEW ·  · 2011-02-12VISION NIWEEK AAA. 3 Durante...

51
LA PRIMA RIVISTA ITALIANA PER LA COMUNITÀ LABVIE W 11 SETTEMBRE 2009 E 5,00 ISSN 1972-3008 LE NOVITÀ COMPACTRIO EVENTI LE NOVITÀ DEI MODULI DI LABVIEW UN DATALOGGER BASATO SU COMPACTRIO PROGRAMMAZIONE A In caso di mancata consegna restituire all’editore che si impegna a pagare la relativa tassa presso il CMP di Roserio - Milano

Transcript of LA PRIMA RIVISTA ITALIANA PER LA COMUNITÀ LABVIEW ·  · 2011-02-12VISION NIWEEK AAA. 3 Durante...

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

11SETTEMBRE2009E 5,00

ISSN

197

2-30

08

LE NOVITÀ

COMPACTRIO

EVENTI

LE NOVITÀ DEI MODULI DI LABVIEW

UN DATALOGGER BASATO SUCOMPACTRIO

PROGRAMMAZIONE A

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

readerservice.it n.24254

S O M M A R I O11

DO MORE WITH LESS

Sfruttare megl io le r i sorse d isponibi l i01

A TU PER TUNIWeek 2009: fare d i p iù

con i prodott i NI

03

LE NOVITA’ DEI MODULI DI LABVIEW

O gni modulo e toolk i t d i LabVIE W 2009

offre migl ioramenti e upgrade

a l la funzional i tà core

06

08

10

20

CARATTERISTICHE AVANZATE IN LABVIEW 2009

Numeros i migl ioramenti d i prestaz ioni

ed ef f ic ienza per i programmator i

avanzat i

UN DATALOGGER BASATO SU COMPACTRIO

Soluz ione soft ware d i r i fer imento per

un datalogger embedded stand-alone

basato su Compac tRIO

UN SISTEMA DI TELEMONITORAGGIO CLINICO

Dal l ’acquis iz ione dei parametr i

b iomedic i a l l ’att ivaz ione di un s istema

di a ler t ing

23 IMPLEMENTAZIONE DELLA DOCUMENTAZIONE

Tecniche per implementare

la documentazione del VI

26 PROGRAMMAZIONE A EVENTI

Creare appl icaz ioni p iù ef f ic ient i

e f less ib i l i con i model l i d i

progettaz ione basat i su event i

DALLA CARTA AL WEB

Link ad ar t ico l i d i approfondimento e

alt r i documenti d isponibi l i su l web

32

34

SEMPRE PIÙ IN ALTO!

Si è svolto a Roma il Forum Aerospazio e

Difesa 09

36

37

38

38

LABVIEW MUOVE KUKA

Un workshop organizzato da Kuka,

ImagingLab e NI su l la programmazione

graf ica d i robot

IL 4° VISION FOR MANUFACTURING

A Mi lano la Mostra convegno dedicata

al la tecnologia del la v is ione ar t i f i c ia le

LA SFIDA DELL’INNOVAZIONE

Le novità d i NIWeek 2009

40 INTERVISTA

I l prof. Enr ico Ambros ini è autore

del corso ‘L’e lettronica’

42 SRC - SERVICE RESOURCE CENTER

Un por ta le web per accedere a ser v iz i

e benef ic i per i c l ient i del le l i cenze

soft ware NI

44 APPUNTAMENTI

Oltre ad organizzare propr i cors i e

seminar i , Nat ional Instruments sarà

presente a numeros i event i

46 LABVIEW E LAVORO

Proposte da e per co loro che sanno

ut i l i zzare LabVIE W

LA VOCE DEGLI UTENTI

Alcuni spunt i d i d iscuss ione appars i d i

recente sul Forum di ILVG. i t

17 UNA CREATURA UMANO-ELETTRONICA

Un robot con neuroni d i cer vel lo umani

r isponde a comandi esterni

VISIO

NNIW

EEK

AAA

3

Durante NIWeek 2009 National Instruments ha annunciatoLabVIEW 2009. La nuova versione semplifica i problemi lega-ti allo sviluppo di architetture hardware parallele con unanuova tecnologia di virtualizzazione che sfrutta i sistemi mul-ticore, oltre ad offrire nuovi miglioramenti del compilatore e IPche potenziano la progettazione di field-programmable gatearray (Fpga). Inoltre, LabVIEW 2009 permette di scaricare codi-ce su reti di sensori wireless per favorire la costruzione di siste-mi di misura e monitoraggio industriali più intelligenti ed offrenuove soluzioni per collaudare più standard wireless, come isistemi Wlan, WiMax, GPS e Mimo, su una singola piattaformahardware. Infine, LabVIEW 2009 semplifica la matematicareal-time linearizzando la progettazione di algoritmi matema-tici e la loro implementazione su hardware real-time. JohnGraff, Vice Presidente Marketing, è in National Instruments da22 anni. Gli abbiamo posto qualche domanda sui nuoviannunci.

D: Possiamo dire che LabVIEW 2009 è una ‘major release’di LabVIEW? In altri termini: se National Instruments non aves-se seguito la nuova convenzione di naming, avremmo avutoLabVIEW 8.7 o LabVIEW 9?

R: Come è noto, National Instruments sta adottando un ciclodi rilascio annuale per LabVIEW, con i nomi delle versioni basa-ti sull’anno di rilascio. Il ciclo di rilascio annuale consolida lapianificazione, la stabilità e la gamma di caratteristiche di ogninuova release, in modo da fornire un facile processo di upgra-de ai clienti. Consideriamo comunque LabVIEW 2009 unamajor release. LabVIEW è sul mercato da oltre 20 anni. Neiprimi tempi, nel software per PC si dava molto peso alle ver-sioni: 1.0, 2.0, e così via. Oggi, tuttavia, il software si è evolu-to, ed anche le aspettative dei clienti si sono evolute e sonocambiate. In particolare, esiste l’aspettativa di un costantemiglioramento, che ci obbliga a rimanere al passo con i siste-mi operativi, i computer e le tecnologie più recenti. Tuttavia,nello stesso tempo, dobbiamo continuare a spingere l’innova-zione di LabVIEW. Ciò implica un lavoro notevole che qualchevolta i clienti non possono vedere, perché è all’interno diLabVIEW. Il numero della versione dovrebbe allora basarsi suciò che il cliente vede o su ciò che sappiamo di avere fattointernamente? Abbiamo deciso che, con la nuova convenzionedi naming basata sull’anno di rilascio, il cliente può avvertireuna pianificazione più regolare degli aggiornamenti. In effetti,la versione che annunceremo ogni nuovo anno sarà sempreuna major release.

D: In che modo i confini di LabVIEW sono stati ampliatidalla nuova release?

R: : In molti modi. I confini di LabVIEW sono ovviamentemolto ampi, e questo è uno dei motivi per cui LabVIEW ha cosìsuccesso da oltre 20 anni. Ciò nonostante, vi sono moltimiglioramenti, In primo luogo, LabVIEW 2009 è stato irrobu-stito in quanto tool di progettazione: la matematica real-timee la collaborazione con SolidWorks e l’integrazione con i loroprodotti CAD/CAM sono solo esempi dei nostri sforzi di facili-tare e semplificare l’uso di LabVIEW. Un’altra area importanteè quella delle tradizionali applicazioni T&M. NI serve da 30anni questo segmento, dove LabVIEW è largamente utilizzato,ma nascono continuamente nuovi problemi di test e vogliamofare in modo che LabVIEW li possa risolvere. La tecnologiamulticore offre enormi benefici per aumentare le prestazioni ediminuire i costi dei test. Nei test wireless, molti si concentra-no sul nuovo hardware, ma parte delle innovazioni più signifi-cative viene da nuove possibilità di LabVIEW e dalla sua capa-cità di gestire protocolli wireless ed il lato software del mondowireless. Una terza area riguarda le applicazioni industriali edembedded. In quest’area possiamo realmente aiutare i clientia progettare, testare ed implementare dispositivi custom unicicome robot e apparecchiature medicali. Molte delle caratteri-stiche aggiunte in LabVIEW 2009 sono veramente utili in que-sto processo. Infine, in LabVIEW 2009 vi sono nuove caratteri-stiche riguardanti gli Fpga.

D: Nella keynote, lei ha sottolineato alcune nuove caratte-ristiche di LabVIEW 2009, riguardanti la programmazione, ilparallel computing e la matematica real-time. Perché sonostate scelte proprio quelle caratteristiche fra le molte altreincluse in LabVIEW 2009?

R: Non è stato facile scegliere quali caratteristiche eviden-ziare nella keynote. Infatti, LabVIEW 2009 ha centinaia dinuove caratteristiche e la maggior parte di esse è stataaggiunta in risposta a specifiche richieste dei clienti. Nella key-note, naturalmente, abbiamo cercato di vivacizzare l’atmosfe-ra e di attirare l’attenzione delle persone presenti. Abbiamoquindi provato a selezionare alcune cose che sapevamo sareb-bero state immediatamente comprese ed apprezzate dal pub-blico (migliaia di sviluppatori LabVIEW). Per esempio, abbiamodeciso di sottolineare il VI Snippet con l’Icon Editor, i cicli Forparalleli e la matematica real-time. Il VI Snippet e l’Icon Editorsono semplici caratteristiche utilizzate da tutti i programmato-ri LabVIEW del mondo, quindi ogni programmatore le puòapprezzare immediatamente. Anche i cicli For paralleli sonouna delle caratteristiche più semplici ma più significative diLabVIEW 2009, perché sono orientati ai processori multicoreche permettono a tecnici e ricercatori di sfruttare un nuovolivello di potenza. Con i cicli For paralleli, è sufficiente cliccare

11

A T U P E R T U

NIWEEK 2009: FARE DI PIÙ CON I PRODOTTI NI

Le innovazioni incorporate in LabVIE W 2009 possono a iutare a essere p iù ef f ic ient i e produtt iv i : un requis i to

fondamentale per a l imentare la r ipresa del l ’economia mondiale

Va

leri

o A

less

an

dro

ni

4

11

A T U P E R T U

su un codice e selezionare il numero di core che si desidera uti-lizzare, perché la nuova caratteristica gestisca automatica-mente il processo di allocazione. Infine, la matematica real-time. Come è noto, negli ultimi cinque anni abbiamo fattoevolvere LabVIEW per renderlo maggiormente un tool di pro-gettazione. Più si entra nel processo di progettazione, più èimportante aiutare i tecnici con modelli e simulazioni e pro-cessi matematici. Oggi, con le nuove capacità matematichereal-time, possiamo aiutarli a prendere questi modelli mate-matici e ad implementarli più facilmente su prototipi e hard-ware real-time. Durante la keynote, comunque, abbiamo cita-to molte altre nuove caratteristiche …

D: Sì, per esempio avete parlato di virtualizzazione. Perchéla virtualizzazione è così importante in LabVIEW 2009?

R: : La tecnologia della virtualizzazione rende possibile ese-guire più sistemi operativi uno accanto all’altro sullo stessohardware di elaborazione multicore, per realizzare sistemi piùefficienti. Il nuovo software NI Real-Time Hypervisor combinala potenza del LabVIEW Real-Time Module con le capacità disistemi operativi general-purpose per ridurre il costo e ledimensioni globali del sistema. Usando questo software, tec-nici e ricercatori possono eseguire Windows XP e LabVIEWReal-Time fianco a fianco sullo stesso controllore e suddivide-re i core del processore fra i due sistemi operativi per un usopiù efficiente delle risorse di sistema. Il Real-Time Hypervisorfunziona con controllori NI PXI dual- e quad-core, o con l’NIIndustrial Controller. Mentre la virtualizzazione offre un nuovo modo per progetta-re sistemi paralleli, LabVIEW 2009 mette a disposizione anchemiglioramenti per la tecnologia di progettazione parallela esi-stente, compresi la programmazione multicore e lo sviluppo diFpga. LabVIEW 2009 offre anche una nuova struttura a cicliFor paralleli, che divide automaticamente le iterazioni dei ciclifra più processori per incrementare la velocità di esecuzionedel processo. Inoltre, LabVIEW semplifica ulteriormente la pro-grammazione degli Fpga offrendo un feedback anticipatodella compilazione e l’evidenziazione dei percorsi critici perfacilitare una stima preliminare dell’uso di risorse dell’Fpga eun migliore debug delle violazioni di timing. Infine, nuovi IPFpga linearizzati offrono prestazioni matematiche e di elabo-razione del segnale con maggiore throughput.

D: Qual è la singolarità dell’approccio di LabVIEW allamatematica real-time?

R: La possibilità di portare più modelli computazionali –compresi i propri file .m personalizzati – direttamente nel-l’ambiente grafico. LabVIEW offre librerie matematiche incor-porate contenenti oltre 1.000 funzioni che spaziano dall’ela-borazione di segnale punto a punto a basso livello, alle imple-mentazioni basate su configurazione ad alto livello. Tutte pos-sono essere facilmente implementate su dispositivi embedded

real-time. Con LabVIEW MathScript RT Module, LabVIEW2009 espande ulteriormente l’accesso alla matematica real-time, ossia all’implementazione e all’utilizzo di algoritmi mate-matici su sistemi operativi deterministici, per tecnici e ricerca-tori che utilizzano tool matematici basati su testo. Come hodetto, il modulo offre anche a tecnici e ricercatori la possibili-tà di incorporare i loro file .m esistenti usando interfacce uten-te interattive e I/O reali e di implementarli facilmente su hard-ware real-time per una prototipazione di sistema più veloce.Semplificando il processo di implementazione degli algoritmimatematici su hardware embedded real-time, LabVIEW 2009può aiutare i progettisti di apparecchiature medicali, i costrut-tori di macchine e i progettisti di sistemi autonomi ad accor-ciare il time-to-market dei loro prodotti.

D: Un’altra area di innovazione di LabVIEW 2009 riguardala tecnologia wireless …

R: Le reti di sensori wireless (WSN) permettono di realizzaremisure distribuite su sistemi hardware di vasta estensione fisi-ca. Con le WSN, tecnici e ricercatori possono analizzare piùefficacemente foreste pluviali, foci di fiumi, lo stato di salute esicurezza di edifici e ponti, e così via. LabVIEW offre la possi-bilità di configurare la nuova piattaforma NI WSN con unambiente di programmazione drag-and-drop per eseguireanalisi ed estrarre e presentare i dati di misura. Grazie alnuovo LabVIEW Wireless Sensor Network Module Pioneer, tec-nici e ricercatori possono programmare i singoli nodi di misu-ra NI WSN per estendere la vita della batteria nel nodo, incre-mentare le prestazioni di acquisizione e creare interfacce sen-sore custom. Con strumentazione definita via software usando LabVIEW, èpossibile implementare la stessa piattaforma di misura peracquisire e analizzare qualsiasi schema di modulazione o stan-dard di protocollo anziché utilizzare strumenti hardware dedi-cati per specifici protocolli. La nuova NI WLAN MeasurementSuite per LabVIEW garantisce la conformità agli standard Ieee802.11 a/b/g ed esegue le misure più di cinque volte veloce-mente rispetto agli strumenti hardware tradizionali.

D: NI sta già lavorando su LabVIEW 2010?

R: : Sì, NI ha un grosso team di sviluppo che sta già lavo-rando sulle future versioni. Come ha detto il Dott. Trucharddurante la keynote, la roadmap iniziale di LabVIEW coprivacento anni. Quindi, siamo solo all’inizio … R

eade

rser

vice

.it

n. 1

101

Figura 1 – John Graff, Vice Presidente Marketing: “Questo è ilmomento dei veri ingegneri, dei veri ricercatori e dei veri motori di innovazione. Le persone che hanno par tecipato a NIWeek 2009rappresentavano aziende che possono cambiare le cose”

ADVANCED TECHNOLOGIES S.p.A.Via Carducci, 35 | 20090 Trezzano S/N | Milano | ItalyT +39 02 4455154 | F +39 02 4453103 www.adv-tech.itMACHINE VISION EXPERTS

Da 10 anni aiutiamo con successo produttori ed integratori di sistemi con un unico scopo: supportarli a sviluppare efficacemente il loro business proponendo le migliori tecnologie presenti sul mercato, coadiuvate da servizi altamente specializzati.Da 10 anni siamo il partner ideale per chi opera nel mondo della visione industriale e dell’imaging scientifico in generale.

Sei sicuro di quello che vedi?Noi lo siamo sempre, grazie al nostro consolidato know-how

nella distribuzione di componenti e sistemi per la visione artificiale.

readerservice.it n.21841

NI LabVIEW 2009 è una release com-pleta della piattaforma, quindi ognimodulo e toolkit offre miglioramenti eupgrade alle funzionalità core diLabVIEW.Inoltre, nuove caratteristiche dell’am-biente, che ne migliorano la produttivià,come il tool potenziato di BlockDiagram Cleanup parziale, il tool VIsnippet ed il Quick Drop migliorato,insieme a potenziamenti del linguaggiocome le reference ai dati, i for loopparalleli e la ricorsione, offrono ulteriorivantaggi agli utenti deimoduli di LabVIEW2009. LabVIEW 2009 Real-Time ModuleL’ambiente LabVIEWReal-Time contiene orauna sorgente di timingper il timed loop, chia-mata Timed Structure,che potete alimentareda una sorgente ditiming di rete. I task sutarget real-time distri-buiti possono ora iterarein fase o essere eseguitiad un orario specifico,come 11:59:01 p.m.,ogni giorno. LabVIEWReal-Time introduceanche il Multicast UDP etool migliorati per il

back up, il ripristino e lareplica di target real-time.Vi è una serie dimiglioramenti anchenello Scan Mode di NICompactRIO, inclusaun’API di I/O configu-rabile, che vi permettedi accedere dinamica-mente a variabili di I/Oe configurare moduliSerie C supportatidallo Scan Mode diCompactRIO, il tutto infase di run time.Inoltre, potete ora inse-rire dati preelaboratidall’Fpga (Field-pro-grammable gate array)direttamente nello Scan

6

11

W H A T ' S N E W

LE NOVITÀ’DEI MODULI DI LABVIEW

Figura 1 . La nuova inter facc ia d i I /O programmatica con lo Scan Mode diCompac tRIO v i a iuta con tecniche d i programmazione come l ’ indic izzaz io-ne per nome di e lenchi d i var iabi l i d i I /O in un c ic lo.

Figura 2 . I l d iagramma a b locchi d i LabVIE W FPGA evidenzia una del le nuove funzio-ni matematiche ad e levate prestaz ioni accanto a l la nuova f inestra d i compi laz ione,che espone st ime tempest ive d i d imensioni , indicaz ioni su l lo stato d i avanzamento del processo e a l t r i repor t in fase d i compi laz ione.

Qui sotto, potete apprendere altre informazioni sulle nuove caratteristiche specif iche di par ticolari

moduli di LabVIEW. Se non avete esperienza di programmazione con i moduli di LabVIEW,

visitate ni.com/labview/family per un’introduzione

A c

ura

di

Ma

tte

o F

oin

i

Engine, permettendo all’host di leggerei dati elaborati dall’Fpga attraverso unavariabile di I/O.LabVIEW 2009 FPGA ModuleBasandosi sulle principali richieste deiclienti, National Instruments ha netta-mente migliorato il processo di compila-zione Fpga per potenziare l’interfacciautente, aumentare le opzioni di ottimiz-zazione, diminuire l’utilizzo di memoriae anticipare i messaggi di warning e ireport in fase di compilazione, in basealle stime di utilizzo delle risorse Fpga ealle violazioni di timing.Ora potete regolare il compilatore inmodo da ottimizzare dimensioni e velo-cità ed ottenere indicazioni tempestivesul fatto che il progetto LabVIEW Fpgapossa risiedere sull’Fpga.NI ha anche migliorato complessiva-mente l’esperienza di debugging al veri-ficarsi di violazioni di timing. Un errore

di timing basato sui risultati di compila-zione vi dirige ora alla porzione di codi-ce esatta nel diagramma a blocchi diLabVIEW che ha causato le violazioni,evidenziando ogni step nel percorso cri-tico.Fra le numerose altre caratteristiche,LabVIEW Fpga include anche nuoveproprietà intellettuali (IP) per elabora-zioni matematiche e dei segnali ad ele-vate prestazioni, per implementarenuove funzioni come algoritmi trascen-denti a virgola fissa e funzioni già esi-stenti a velocità più elevata, come latrasformata veloce di Fourier (FFT), lafinestratura e il ricampionamento a100 MHz.Altri moduli e funzionalità di LabVIEW 2009Il Control Design and SimulationModule di LabVIEW 2009 possiedeora una External Model Interface per

importare modelli da tool di modella-zione multifisica di terze parti. Ilmodulo include anche il filtraggio diKalman esteso e il supporto delLabVIEW MathScript per funzioni diprogettazione dei controlli. IlLabVIEW Control Design andSimulation Module presenta nuovicontrolli di navigazione integrati perlo sviluppo di interfacce uomo-mac-china (HMI). Lo Statechart Module diLabVIEW 2009 include un generatoreautomatico di documentazione el’Embedded Module for ARMMicrocontrollers di LabVIEW 2009offre il supporto di file system evariabili condivise. Due nuovi modulidi LabVIEW sono il LabVIEWMathScript RT Module e il LabVIEWWireless Sensor Network (WSN)Module Pioneer.

W H A T ' S N E W

Rea

ders

ervi

ce.i

t n

. 110

3

Specialisti nel PROFIBUS

COMSOFT

Produttore:COMSOFT GmbH | Wachhausstr. 5a | 76227 Karlsruhe | Germania Tel.: +49- (0) 721 - 9497 - 291 | Fax: +49- (0) 721 - 9497 - 299 E-mail: [email protected] | Internet: www.comsoft.de

Contatto commerciale:SOLINTEC AUTOMAZIONE SNC | Via 8 Marzo 1/B | 20040 Cavenago B.za (MI) | Italia | Tel.: 02 - 95336189 | Fax: 02 - 95335432 E-mail: [email protected] | www.solintecautomazione.it

Soluzioni National Instruments disponibili con tecnologia PROFIBUS

cRIO PBModulo Master/Slave PROFIBUS DP per sistemi cRIO della National Instruments

Driver per modulo FNL in ambiente LabVIEWIl Gateway Ethernet/PROFIBUS DP della COMSOFT è ora disponibile con il Driver LabVIEW– Rapida l’integrazione mediante interfaccia Ethernet TCP/IP

readerservice.it n.24005

8

11

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

Se siete interessati ad aumentare leprestazioni del vostro codice, a ridurrela memoria richiesta dalla vostra appli-cazione, o a migliorare le pratichecomuni di ingegneria del software,consultate questo elenco di nuovecaratteristiche avanzate.

1. Struttura New Data ValueReference/In Place Element –Come implica il nome, la ‘programma-zione a flusso di dati’ utilizza dei filiper rappresentare i dati che scorronoin un’applicazione durante l’esecuzio-ne. Poiché ogni filo è di fatto un con-tenitore di dati, può essere necessariauna copia del valore quando si diramaun filo sul diagramma. Questo non èun problema per la maggior partedelle applicazioni LabVIEW, ma il pro-cesso di allocare nuova memoria ecopiare i dati può richiedere tempoaddizionale del processore, soprattuttose dovete manipolare grandi quantitàdi informazione.In LabVIEW 2009 potete creare unareference a qualsiasi tipo di dato perridurre la quantità di memoria utilizza-ta dalla vostra applicazione. Invece dicablare fili contenenti il valore effetti-vo, una reference è in grado di punta-re alla locazione di memoria in cui ildato è memorizzato. Il concetto è simi-le a ciò che nella programmazionetestuale è noto come ‘puntatori’.La struttura In Place Element è stataaggiornata per includere il nodo New

Data Value Reference Read/WriteElement Border. Usate questi nodi permanipolare, modificare ed aggiornare idati a cui punta la vostra reference.L’ingresso nella struttura blocca l’ese-cuzione di ogni altra struttura In PlaceElement all’interno della vostra appli-cazione, cosa che elimina la necessitàdi copie dei dati e può aumentare leprestazioni, diminuendo nello stessotempo l’utilizzo di memoria.

2. For Loop paralleli/Strumenti dianalisi/CPU Palette – I processorimulticore hanno reso più semplicemigliorare le prestazioni del softwarepermettendo elaborazioni parallele.LabVIEW vi aiuta a sfruttare questa tec-nologia rilevando automaticamentesezioni di codice che possono essereassegnate a thread differenti. LabVIEW2009 estende questa capacità alle

strutture for loop per le quali sia possibi-le eseguire iterazioni distinte in parallelo.Quando usate una struttura for loop,LabVIEW tradizionalmente eseguesequenzialmente le iterazioni del loop;tuttavia, si può pensare di parallelizzareun for loop i cui ingressi non dipendanodai risultati di un’iterazione precedente.Per determinare se potete incrementarele prestazioni di un ciclo for avente uncosto computazionale elevato, selezio-

nate Tools » Profile » Find ParallelizableLoops per analizzare un VI.Una volta resa parallela una strutturafor loop, configurate il numero diistanze concorrenti o impostatele daprogramma. Potete anche utilizzarecongiuntamente la nuova palette CPUper adattare da programma il paralle-lismo a differenti configurazioni delsistema.

W H A T ' S N E W

CINQUE

FUNZIONALITÀ AVANZATE DI LABVIEW 2009

Figura 1 . Ev i tate d i c reare copie dei dat i in memoria con i l New Data ValueReference VI

LabVIEW 2009 offre numerosi miglioramenti di prestazioni

ed eff icienza ai programmatori avanzati

A c

ura

di

Ma

tte

o F

oin

i

9

3. Ricorsione nativa – Una funzionericorsiva richiama se stessa nell’ambitodella propria definizione. La ricorsioneè un concetto di programmazioneavanzato utilizzabile per ridurre lacomplessità e le dimensioni del codicerichiesto per implementare algoritmiiterativi. Potete usare la ricorsione inLabVIEW 2009 se tutti i VI nella VI hie-rarchy sono rientranti e almeno unodei VI condivide propri cloni fra le chia-mate. Dopo avere configurato un VIcome rientrante, potete trascinare l’i-cona del VI sul suo schema a blocchi.

4. Command-Line differencingper sistemi di source code control– Lo sviluppo di grandi applicazionipuò trarre beneficio dal corretto uso ditool di gestione della configurazione edi sistemi di source code control pergestire il codice, tenere traccia dellemodifiche e risolvere i conflitti fra glisviluppatori.Data la natura grafica del codice

LabVIEW, i tool tradizionali di merge ediffereziazione non funzionano, maLabVIEW ora offre utility grafiche perentrambe le operazioni all’interno del-l’ambiente di sviluppo.

In LabVIEW 2009 è disponibile comeeseguibile la funzione di differenziazionegrafica, che può essere invocata quandoun tool di source code control vuole con-frontare dei file. LVCompare.exe è uneseguibile a linea di comando che con-fronta due VI da voi specificati. Ciò elimi-na la necessità di rinominare e salvaremanualmente versioni precedenti dei fileper confrontarle.

5. Metriche standard di analisi delcodice – Analizzare la complessità, l’ac-curatezza e l’efficienza del software èuno dei passi più importanti per com-prendere e migliorare la qualità del codi-ce. Per LabVIEW sono disponibili nume-rosi tool di ingegneria del software chepermettono di automatizzare l’analisi delcodice e la validazione funzionale delleapplicazioni.Uno di questi tool, il LabVIEW VIAnalyzer Toolkit, è stato aggiornato inLabVIEW 2009 per includere diversemetriche standard di complessità delcodice. Potete ora usare il LabVIEW VIAnalyzer Toolkit per analizzare la com-plessità ciclomatica, che misura il nume-ro di percorsi linearmente indipendentinel codice del diagramma a blocchi. Essofornisce un’indicazione del livello dibranching del codice e il numero racco-mandato di test per il VI.

W H A T ' S N E W

Figura 2 . Usate i l nuovo Find Paral le l izable Loops per capire dove potete migl iorare le prestaz ioni

Figura 3 . Confrontate le modif iche a i V I dal soft ware d i source code control usandola funzional i tà d i d i f ferenziaz ione di LabVIE W 2009

read

erse

rvic

e.it

n. 1

102

uesta applicazio-ne presenta unasoluzione softwa-

re per un dataloggerembedded stand-alonebasato su hardwareCompactRIO. Le caratteristi-che di questa applicazionesono adatte per applicazionidi logging a bordo veicolo,benché adattabili anche peraltre tipologie di logging. Sitenga presente che l’appli-cazione qui mostrata rap-presenta un esempio confi-gurabile, non un’applicazio-ne pronta all’uso; in molticasi occorrerà quindi appor-tare qualche modifica alcodice in funzione dell’hard-ware specifico impiegato.

Le caratteristiche dell’ap-plicazione di riferimentodescritta nell’articolo inclu-dono:• Supporto per velocitàdi scansione multiple• Supporto per il loggingdi canali CAN con unappropriato database CAN• Supporto per file TDMS• Indicatori di loggingsul controllore e loro over-ride attraverso LED eswitch• Modalità monitor PChost e override del logging

ArchitetturaLo schema a sinistra fornisceuna visione dettagliata delleoperazioni eseguite dai VI deldatalogger e del flusso di datiattraverso il datalogger.

Meccanismi di comunicazioneI paragrafi seguenti descrivonoi meccanismi di comunicazioneutilizzati dal datalogger.

Flusso di dati Il flusso di dati è il normale tra-sferimento di dati fra oggettidello schema a blocchimediante fili. Il flusso di dati ègeneralmente utilizzato pertrasferire dati fra le funzioniall’interno di un loop.

Coda Le code trasferiscono dati buffe-rizzati fra loop. Notate che viene spesso inco-raggiato l’uso delle FIFO Real-Time rispetto alle code per codi-ce Real-Time. Ciò perché le codeallocano memoria in fase di run-time, un’operazione non deter-ministica. Tuttavia, per mante-nere il determinismo, le FIFOReal-Time impongono una seriedi requisiti che limitano i tipi e ledimensioni degli elementi. Perrimanere flessibile, il dataloggerin-vehicle deve essere in grado

10

11

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

APPLICAZIONE

COMPACTRIO

Rya

n K

ing

Q

DI RIFERIMENTO PER UN DATALOGGER A BORDO VEICOLO BASATO SU

11

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

di accettare pacchetti di dati da registrare su disco da unavarietà di sorgenti e a diverse velocità. Ciò richiede un mec-canismo flessibile di trasferimento fra i loop. La parte Fpgaesegue tutte le operazioni deterministiche e non ha alcunadipendenza temporale dal codice Real-Time. Pertanto, ildatalogger in-vehicle implementa intenzionalmente lacomunicazione fra i loop utilizzando le code anziché le Fifo.

DMA Per trasferire i dati bufferizzati fra il sistema operativo Real-Time e l’Fpga su un CompactRIO viene utilizzato il DirectMemory Access (DMA). I trasferimenti dei dati in DMA per-mettono al sistema operativo Real-Time di leggere tutti idati e, nello stesso tempo, all’Fpga di effettuare un’esecu-zione deterministica senza alcuna dipendenza temporaledal codice Real-Time.Il datalogger in-vehicle utilizza tre canali DMA da Fpga a RT:uno per trasferire dati ad alta velocità, uno per trasferiredati a bassa velocità ed uno per trasferire messaggi CAN edaltri dati basati su eventi.

I/O di controllo Fpga Controlli e indicatori su un VI Fpga possono essere letti escritti sia dall’interno del codice Fpga, utilizzando variabililocali, sia da un VI Real-Time, usando la funzioneRead/Write Control.Il datalogger in-vehicle utilizza gli I/O di controllo dell’Fpgaper la scansione e l’impostazione dei dati che non richiedo-no buffer, come le informazioni di stato e configurazione.

STM Il componente Simple TCP Messaging (STM) semplifica lacomunicazione in rete stabilendo un protocollo basato sumessaggi per il trasferimento dei dati.Il datalogger in-vehicle utilizza messaggi STM per tutte lecomunicazioni dirette fra il CompactRIO e l’host Windows.

FTP Il File Transfer Protocol (FTP) offre un protocollo sicuro per iltrasferimento dei file in rete.L’host Windows utilizzato per il datalogger in-vehicle fa usodi VI FTP del LabVIEW Internet Toolkit per recuperare pro-grammaticamente file di dati ed errori dal target. Se nonavete l’Internet Toolkit, potete rimpiazzare questi VI conun’implementazione FTP alternativa, oppure disabilitarequesta funzione dell’host e trasferire manualmente i file uti-lizzando un client FTP.

Dettagli del VI Fpga CalibrationIl VI Fpga Calibration recupera le costanti di calibrazionememorizzate su moduli hardware Serie C. Il VI è separatodal codice principale di acquisizione Fpga perché i valori dicalibrazione devono essere recuperati una sola volta per

acquisizione. Isolando il codice di calibrazione in un VI sepa-rato si utilizzano meno gate per il VI principale.

Il VI legge le costanti di calibrazione da ciascun modulo diacquisizione. Dovete modificare queste parti di codice perleggere le costanti di calibrazione dai moduli che configura-te nel vostro sistema.

12

11

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

I dati di calibrazione sono riuniti nei cluster di weight/offsete quindi incorporati in array per il trasferimento. Gli arraydevono avere un punto d’ingresso per ogni canale. I canaliche non richiedono calibrazione, come i canali digitali, sonorappresentati da un cluster di due valori zero. Gli indicatoridel pannello frontale trasferiscono i dati utilizzando gli I/Odi controllo dell’Fpga. Notate che non per tutti i dati basatisu eventi viene fornito il codice di calibrazione. Se i vostridati basati su eventi richiedono costanti di calibrazione,dovete implementare un indicatore separato per trasferire idati di calibrazione.

Dettagli del VI Fpga AcquisitionIl VI Fpga Acquisition attende una condizione di trigger,acquisisce dati dai moduli Serie C finché non viene rilevatoun trigger o una condizione di stop e trasferisce i dati alcontrollore Real-Time.

System Manager LoopIl System Manager Loop verifica la presenza di trigger distop o di un comando di stop dal controllore Real-Time etrasferisce i messaggi di stop agli altri loop nel sistema.

Il datalogger vi permette di configurare i triggerdi start e stop. Dovete rimpiazzare i nodi di I/Odell’Fpga che rilevano i trigger esterni con nodicollegati ai vostri specifici canali di trigger. Se ilvostro sistema non richiede trigger esterni, pote-te sostituire i nodi con valori costanti ed evitarel’uso di trigger di tipo digitale o analogico.

High-Speed LoopLo High-Speed Loop gestisce l’acquisizione da moduli diacquisizione temporizzati, come la serie 923x. In alternati-va, questo loop può scansionare altri moduli ad una veloci-

tà di campionamen-to diversa da quelladel Low-Speed Loop.

Il loop legge un singolo campione di dati da ogni canale adalta velocità. Sostituite il nodo di I/O con uno o più nodi diI/O configurati per i vostri canali ad alta velocità. Potete leg-gere dati da moduli temporizzati, moduli normali o entram-bi i tipi di moduli dall’interno di questo loop. Se sono pre-senti moduli temporizzati, la frequenza di acquisizione ècontrollata dal controllo HS Scan Rate e il controllo HS ScanPeriod è ignorato. Nel caso contrario, HS Scan Period deter-mina la frequenza e HS Scan Rate è ignorato.

Tutti i dati vengono trasferiti in formato grezzo attraversoun buffer DMA. Potreste avere la necessità di modificare ledimensioni del buffer di memoria nel progetto per diminui-re la possibilità di overflow o preservare risorse sull’FPGA.Per default, per il DMA ad alta velocità viene allocato unbuffer molto più grande di quello del DMA a bassa velocità,per consentire velocità di scansione più elevate nel loop adalta velocità.

Ogni loop verifica se il loop stesso è stato eseguito nelperiodo di tempo configurato (overrun) e se vi era spaziosufficiente nel buffer del DMA per i dati (overflow). Il loopmemorizza gli eventuali errori, in modo che le iterazioni suc-cessive non cancellino l’indicazione di errore prima chepossa essere letta.

Low-Speed LoopIl Low-Speed Loop gestisce l’acquisizione da altri moduli, aduna velocità di campionamento diversa da quella del loopad alta velocità.Il loop legge un singolo campione di dati da ogni canale a

13

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

bassa velocità. Sostituite il nodo di I/O con uno o più nodidi I/O configurati per i vostri canali a bassa velocità. Poteteleggere dati da qualsiasi modulo che non utilizzi una tem-porizzazione interna. LS Scan Period determina la frequenzadi acquisizione.

Questo loop utilizza anche la funzionalità DMA Write eStatus Check.

Event LoopL’Event Loop acquisisce messaggi dai canali CAN e puòessere opzionalmente utilizzato per acquisire altri dati basa-ti su eventi.

Il loop legge messaggi da un canale CAN. Collegate il nodo

di I/O al canale CAN che state leggendo. Notate che il codi-ce corrente è impostato per leggere solo un singolo canaleCAN. Potete utilizzare il caso timeout in questo loop pergestire altri canali basati su eventi. Configurate il timeoutdel CAN attraverso le proprietàavanzate del modulo nel projectexplorer. Se sono richiesti più canaliCAN, potrebbe essere necessariomodificare il codice per gestire sin-golarmente il timeout da ciascuncanale CAN.

L’Event Loop trasferisce i dati su DMA costruendo pacchet-ti. Ogni pacchetto contiene un indice eventi, che corrispon-de ad un canale eventi configurato, nonché le dimensionidei dati di evento e i dati stessi.Potrebbe essere necessario modifi-care le dimensioni del buffer dimemoria nel progetto per diminuirela probabilità di overflow o preserva-re risorse sull’Fpga.L’Event Loop verifica se nel bufferDMA vi era spazio sufficiente per l’e-

vento (overflow). L’Event Loop non verifica l’overrun perchénon c’è un periodo di loop previsto. Il loop memorizza glieventuali errori, in modo che le iterazioni successive noncancellino l’indicazione di errore prima che possa essereletta.

Dettagli del VI RT ControllerIl Real-Time Controller legge la configurazione del datalog-ger da un file, acquisisce i dati dall’Fpga, li memorizza sudisco, comunica con l’host Windows ed interagisce con l’u-tente attraverso switch e LED.

Loop FpgaIl loop Fpga Comm si interfaccia con l’FPGA e trasmette datida/verso il resto del sistema.

Nel suo stato Run, il loop Fpga Comm legge i tre canaliDMA che trasferiscono dati di misura ed eventi dall’Fpga.Il loop raccoglie i dati letti dai canali DMA in pacchetti eli trasferisce al loop File I/O usando una coda. Il loop FpgaComm legge inoltre le informazioni di stato dai controlli

14

11

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

Front Panel dell’Fpga. Le informazioni di stato sono tra-sferite agli altri loop usando lo Status Manager.Nel suo stato Get Calibration, il loop Fpga Comm legge idati di calibrazione dal VI FpgaCalibration usando i controlliFront Panel dell’Fpga. Il loopmemorizza i dati di calibrazionenel Channel Manager per l’usoda parte del loop File I/O.

Una variabile globale funzionale Status Manager memoriz-za le informazioni di stato del sistema. Più loop possono

accedere a questa locazione dimemoria per leggere o modificarelo stato del sistema.

Una variabile globale funzionale del Channel Managermemorizza un elenco di canali e informazioni su ciascuncanale. L’elenco dei canali è inizializzato con dati dal file diconfigurazione del Real-Time Controller. Le informazioni di

calibrazione sono memorizzatedal loop Fpga Comm. Il loop FileI/O utilizza le informazioni memo-rizzate per accedere alle informa-zioni dei canali e converte i datigrezzi in unità ingegneristiche.

Il componente Real-Time Error Log (Rtel) offre un sempli-ce metodo per la registrazione degli errori che tiene contodi considerazioni sulle prestazioni Real-Time, come l’allo-cazione di memoria. Benché sia ottimizzato, non è sicuroutilizzare il componente da un loop realmente determini-stico, perché esso accede ad un file su disco. L’Rtel memo-rizza gli errori in un semplice formato Ascii con unadimensione fissa per linea e dimensioni massime del filedefinibili. Quando le dimensio-ni massime del file sono stateraggiunte, l’Rtel sovrascrive inuovi errori sugli errori più vec-chi. Notate che, per questomotivo, gli errori in un file dilog Rtel non sono necessaria-mente in ordine cronologico. IlVI host include una utility per convertire i log Rtel in ordi-ne cronologico.

Loop File I/OIl loop File I/O riceve dati grezzi dal loop FpgaComm, cate-

gorizza i dati per canale e gruppo, converte i dati in unitàingegneristiche e registra i dati su disco.

Il loop File I/O può brevemente mettere in pausa il logging perconsentire la rimozione sicura dei dispositivi di memorizzazio-ne. Il logging può essere messo in pausa da un host Windowso utilizzando uno switch sul CompactRIO. Notate che quandoil logging è in pausa, i dati vengono ancora acquisiti e buffe-rizzati se il sistema riceve un trigger. Lasciare il logging inpausa per un periodo di tempo este-so porta ad un overflow del buffer.La quantità di tempo per cui si puòmettere in pausa con sicurezza unsistema dipende dalle frequenze diacquisizione utilizzate.

Il component Channel Based File I/O (Cbfio) è un’API ad altolivello per scrivere dati basati su canale in un file. Attualmente,l’API memorizza i file in formato Tdms, usando un’implemen-tazione Tdms basata su VI. Il Tdms offre un formato file flessi-bile che può essere scritto da qualsiasi sistema operativo ed èdirettamente accessibile a programmi di analisi, ma non forni-sce necessariamente le velocità di streaming più elevate dis-ponibili. Il componente Cbfio è stato progettato tenendo pre-sente la capacità di scrivere più tipi di file e in futuro potreb-bero essere supportati altri formati di file.

Questo loop utilizza anche la funzionalità Status Manager,Channel Manager e Rtel.

Loop Switch/LED ControlIl loop Switch/LED Control aggiorna i LED con valori dallo

Status Manager ed invia comandi al loop File I/O tramiteuna coda quando gli switch sono modificati.

Il loop Switch/LED Control aggiorna il LED User1 sul con-trollore CompactRIO. Il valore del LED User1 visualizza l’a-bilitazione del logging. Potete usare questo LED per deter-minare quando è sicuro rimuovere un dispositivo di memo-rizzazione dopo avere disabilitato il logging. Potete anchealterare il comportamento di questo VI per visualizzare altreinformazioni sul LED.Notate che il sistema aggiornaanche il LED Fpga disponibile sualcuni sistemi CompactRIO, magli aggiornamenti sono eseguitidal codice dell’Fpga. Il LEDFpgavisualizza se è in corso l’ac-quisizione di dati.

Il loop Switch/LED Control monitorizza lo stato dello switchUser1 sul controllore CompactRIO. Quando lo switch è nellaposizione ON, il loop invia un comando al loop File I/O tra-mite la coda di logging per mandare in pausa il logging.Quando lo switch è nella posizione OFF, il logging è abiuli-tato. Potete modificare il comportamento di questo VI percambiare la funzione dello switch User1. Per esempio,potreste fare in modo che lo switch User1 dia il trigger peravviare e fermare l’acquisizione, anziché mettere in pausa eriprendere il logging.

Questo loop utilizza anche la funzionalità Status Manager eRtel.

Loop Host CommunicationIl loop Host Communication accetta connessioni da una

macchina host Windows opzionale. Quando esiste una con-nessione, il loop aggiorna la macchina host con informazio-ni di stato e permette alla macchina host di escludere ilcomportamento standard del logger.

La comunicazione diretta con l’host utilizza il protocolloSimple TCP Messaging (STM). L’host può inviare messaggi

per resettare il sistema, metterein pausa il logging o cambiare leimpostazioni del monitor. Il targetinvia messaggi per trasmettereinformazioni di stato e dati moni-torizzati all’host.

Il loop usa anche la funzionalità Status Manager. Esso nonutilizza invece l’Rtel perché sono previsti errori nella comu-nicazione con l’host, dato che le connessioni possono cade-re ed essere ripristinate. Inoltre, l’host è un elemento ausi-liario del sistema, pertanto lo spazio di registrazione deglierrori è riservato per un comportamento più critico del siste-ma stesso. Se non utilizzate il datalogger in un sistema dovel’host è un tool essenziale, potete aggiungere l’Rtel al loopHost Communicationed ignorare gli errorispecifici associaticon le connessionicadute.

Dettagli del VIWindows HostIl VI Windows Hostoffre un’interfacciautente per monitora-re e gestire il data-logger, nonché pervisualizzare i datiacquisiti.

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

16

11

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

Loop Event HandlerQuesto loop risponde ad eventi dall’interfaccia utente elegge i comandi STM in un evento di timeout.

L’host usa l’FTP per trasferire file di dati e log di errori daltarget.

L’host usa l’STM per inviare mes-saggi di pausa, reset e impostazionidi monitoraggio. L’host riceve datidi monitoraggio e messaggi di statodel sistema.

L’host permette all’utente di confi-gurare la locazione del target sullarete, la locazione dei file sul target,le locazioni locali per memorizzare ifile trasferiti e, opzionalmente, uncanale di acquisizione da monitoriz-zare.

L’host permette di escludere il nor-male funzionamento del targetmettendo in pausa il data logging oresettando il target.

L’host visualizza lo stato del siste-ma, ricevuto da messaggi STM. Esso include la segnala-zione di un’eventuale acquisizione in corso e l’eventuale

messa in pausa del logging.Indica inoltre errori comuni chepossono verificarsi sul target.

Un errore Fpga Overflow indica che il buffer DMAnon è abbastanza grande per memorizzare i datitrasferiti, o che il loop Fpga Comm non è abba-stanza veloce da svuotare il buffer.Un errore Fpga Overrun indica che il loop di acqui-sizione non può essere eseguito alla velocità dicampionamento desiderata. Notate che ogni nododi I/O dell’Fpga richiede una minima quantità dicicli di clock in base ai canali che legge.Un errore RT Overflow indica che non è stato pos-sibile scrivere i dati su disco abbastanza veloce-mente da svuotare il buffer di memoria fra il loopFpga Comm ed il loopFile I/O. Ciò indica che ilthroughput totale del

sistema è troppo elevato per l’archi-tettura corrente o il formato di fileimpiegato.

L’host può monitorare dal vivo gli aggiornamenti dei dati su unsingolo canale. Ciò è utile soprattutto per scopi di debuggingo monitoraggio e potrebbe non essere disponibile se non vi èuna sufficiente ampiezza di banda del processore sul target.L’host crea finestre di pop-up per visualizzare il contenuto difile dati e log di errori una volta trasferiti con successo.

Componenti richiestiL’applicazione richiede la seguente configurazione hardware esoftware:

Application Software: LabVIEW Professional DevelopmentSystem 8.5.1 Toolkit e Add-On: LabVIEW Real-Time Module 8.5.1, LabVIEWInternet Toolkit 6.0, LabVIEW FPGA Module 8.5.1 Hardware: CompactRIODriver: NI-RIO 2.4.1

Inoltre, prima di aprire l’applicazione stessa, occorre installarealcuni componenti che troverete insieme al sorgente dell’ap-plicazione al seguente link: ni.com/italian Infocode: it6ktd

read

erse

rvic

e.it

n.1

111Note sull’autore

Ryan King è un Systems Engineer in National InstrumentsCorporate. Si dedica alle applicazioni di datalogging imbarcabilie/o embedded e delle relative piattaforme hardware. Haoccupato in precedenza la posizione di Course DevelopmentEngineer nel dipartimento formazione di NI.

17

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

La ricerca nel campo delle protesi bioelettroniche e della bio-nica in generale sta compiendo veloci progressi. Tuttavia, ladinamica delle reti di neuroni biologici ed il modo in cui que-ste controllano le informazioni non sono ancora stati com-presi. A questo scopo, il gruppo Living Networks Lab(Dipartimento di Tecnologie dell’Informazione dell’Universitàdegli Studi di Milano) ha sviluppato un sistema ibrido com-posto da una rete di neuroni umani connessi direttamenteall’elettronica per studiare i meccanismi alla base dell’ap-prendimento e della memorizzazione.I neuroni umani, adesi ad array di microelettrodi (MEA -MicroElectrode Array), sono stati stimolati con pattern digi-tali. Le reazioni cellulari sono state registrate ed analizzatein tempo reale con una speciale rete neurale artificiale, cheha decodificato le reazioni dei neuroni ai diversi stimoliinviati, ed è stata connessa con un attuatore robotico. Èstato possibile muovere l’attuatore robotico somministran-

do alla rete di neuroni biologici specifici comandi digitali. Lacreatura ibrida umano-elettronica ha risposto in modo effi-ciente, mostrando che una rete di neuroni biologici puòessere addestrata ed è possibile decodificarne i segnali.

L'INTERFACCIAMENTO NEURONI-ELETTRONICANegli ultimi anni sono state condotte numerose ricerche nelcampo dell’interfacciamento diretto fra elettronica e siste-ma nervoso, principalmente dedicate allo sviluppo di prote-si elettroniche di supporto a deficit neurologici. Nonostanteparziali successi, l’impianto diretto di elettrodi nel cervelloha dato luogo a distruzione del tessuto nervoso, infezioni erigetto. Per apportare un reale sviluppo a queste ricerche ènecessario quindi utilizzare un metodo di interfacciamentofra neuroni ed elettronica che si dimostri meno invasivo deimetodi attualmente utilizzati.Parallelamente, la ricerca in campo neurofisiologico può

UNA CREATURA

UMANO-ELETTRONICAE' stato svi luppato un sistema ibrido umano elettronico, un robot con 'cer vello' di

neuroni umani che r isponde correttamente a comandi somministrati dall ’esterno

Rit

a P

izzi

11

18

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

11

trarre giovamento da moderne tecnologie in grado di ana-lizzare in dettaglio il comportamento di reti di neuroni,superando il limite attuale dell’analisi da singolo neurone,evidentemente inadatta ad esplorare la complessità delle

connessioni neurali. Utilizzando sistemi multielettrodo sonopossibili nuovi successi nella ricerca neurofisiologica, in par-ticolare nel campo ancora molto intricato della decodifica delsegnale neurale. In particolare, l’utilizzo di array di microe-lettrodi permette di non distruggere i neuroni utilizzati.Inoltre, i successi della robotica e della bionica indicano ilprogresso verso sistemi hardware/software in grado di emu-lare le funzionalità più evolute del cervello e del corpoumano, tanto da rendere immaginabili sistemi ibridiumani/elettronici le cui potenzialità sono ancora da esplo-rare. Semplici applicazioni dell’evoluzione dell’interfacciauomo-macchina saranno però immediatamente sviluppabiliper facilitare l’utilizzo di PDA/telefonini IP sia da parte deidisabili che dei normodotati. Si prospetta infatti la possibili-tà di usare questi strumenti di lavoro e di comunicazione amani libere, senza bisogno di tastiera e di video.Il Living Networks Lab si propone di approfondire la tema-tica dell’interfacciamento fra sistemi hardware/software eneuroni biologici, utilizzando sistemi a multielettrodo su cuii neuroni vengono adesi. Ciò permette da un lato la loromiglior sopravvivenza rispetto ai sistemi invasivi in uso inprecedenza, dall’altra uno studio dettagliato delle interazio-ni fra neuroni e dell’interfaccia fra reti di neuroni ed elettro-nica, rendendo possibili operazioni di acquisizione ed anali-si di segnali e di stimolazioni di reti di neuroni secondo pat-

tern complessi che simulano le percezioni sensoriali.Inoltre, l’utilizzo di neuroni ricavati da cellule staminali, dellequali è nota la tendenza ad essere trapiantate facilmente intessuti estranei, permette di sperare in una futura più effi-cace impiantabilità della protesi bioelettronica nel sistemanervoso.

SPERIMENTAZIONISono state studiate in particolare alcune architetture di retineurali artificiali tipiche (Kohonen e Hopfield), per la loroaffinità strutturale e comportamentale con le reti neuralibiologiche. Si è indagato sui meccanismi di apprendimentodei neuroni naturali aggregati secondo queste architetturein modo da valutare se effettivamente l’agglomerato di neu-roni biologici strutturato in una topologia di rete neuraleartificiale sia in grado di trattenere una qualsivoglia tipo diinformazione. Queste sperimentazioni hanno dato esito positivo, ossiahanno mostrato che reti di neuroni biologi aggregate inarchitetture Kohonen- o Hopfield-like sono in grado diapprendere e memorizzare pattern digitali somministraticon un sistema di stimolazioni elettriche parallele.Si è passati quindi ad una successiva fase, dove è stata svi-luppata un’interfaccia reti biologiche/computer atta a confi-gurare i pattern di input con i quali le reti vengono stimola-te, e a raccogliere gli output provenienti dai neuroni. Il soft-ware è stato scritto in LabVIEW, che controlla una scheda diacquisizione DAQ National Instruments tipo NI PXI 6251.La parte hardware è costituita da un controller customche tramuta gli stimoli digitali in forme d’onda adeguateper la stimolazione dei neuroni e le comunica al sistemadi array di microelettrodi su cui sono adesi i neuroni informa di rete di Hopfield. Il controller gestisce anche ladigitalizzazione dei segnali di risposta emessi dalla rete dineuroni biologici e la trasmette al computer.I neuroni sono stati stimolati da diversi modelli di patterndigitali, in modo da apprenderli secondo la tecnica con-solidata nella prima parte del progetto. Una volta nelcomputer, i segnali provenienti dai neuroni sono statiposti in cascata con una rete neurale artificiale ad hoc,sviluppata in C, che funge da decodificatore. I segnali cosìdecodificati possono fungere da comandi per un attuato-re robotico, che in questo modo risulta guidato dallarisposta neurale naturale a stimoli sensoriali simulati. L’algoritmo di questa rete neurale artificiale, che abbiamochiamato Itsom (Inductive Tracing Self Organizing Map),utilizza un sistema di riconoscimento di attrattori caoticinei segnali di input e si è rivelato il punto di forza delsistema complessivo. Infatti la mancanza di risultati defi-nitivi in sperimentazioni avvenute nei pochi laboratori almondo in possesso di queste tecnologie è motivata dallelimitazioni dell’algoritmo utilizzato per decodificare isegnali provenienti dai neuroni biologici.

Fig. 1 - Schema del s i s tema sper imentale

19

Una serie di esperimenti off-line ha permesso di testare ivari moduli biologici ed artificiali prima di assemblarli in ununico sistema ibrido robotico-biologico.Infine siamo passati alla sperimentazione on-line, collegan-do via radio al computer un piccolo robot, che si muovevain base alle reazioni della rete di neuroni umani a comandidirezionali somministrati dall’esterno in forma di patterndigitali.

RISULTATICome anticipato dagli esperimenti off-line, il robot si èmosso in modo congruo agli stimoli sensoriali simulati.Risultato notevole, la possibilità di quantificare esattamen-te le prestazioni del sistema ibrido: la sensibilità (accuratez-za) media sui quattro comandi direzionali è statadell’80,11%, mentre la specificità (precisione) è stata del90,50%. Possiamo quindi considerare il sistema ibrido unclassificatore piuttosto efficiente. Di fatto dato vita ad una creatura ibrida formata da un pic-colo “cervello” di neuroni umani e dotata di movimentorobotico. Il risultato del progetto può essere letto quindi come unprogresso sia nell’interpretazione della dinamica neuro-nale che nell’implementazione di un prototipo di protesibioelettronica.Questa serie di esperimenti ci permette di mostrare da unaparte la capacità di sviluppare un sistema hardwa-re/software in grado di interagire con i neuroni umani e farlimemorizzare ed apprendere percezioni simulate, dall’altrala capacità da parte di una opportuna rete neurale artificia-le di decodificare, in tempo reale, le reazioni dei neuroni finoa riuscire a pilotare gli attuatori del robot. In letteratura non vi sono attualmente lavori che abbiano

ottenuto questo genere dirisultati: infatti in nessuncaso si è giunti a decodifi-care i segnali in modo daverificare se una rete dineuroni abbia o meno effet-tivamente appreso. Ciò cheviene fatto in letteratura èaffidare alla rete di neuronistessa il compito di autoorganizzarsi sotto l’azionedi stimoli esterni e di impa-rare a finalizzare il propriocomportamento. Quindi ilvantaggio della nostra tec-

nica è da una parte la capacità di interpretare la semanticadei segnali, dall’altra di poter in questo modo guidare l’ap-prendimento fino a raggiungerne l’efficacia voluta.Al di là delle applicazioni robotiche, la cui utilità spazia dalcampo industriale a quello sanitario a quello domotico, laprima utilizzazione di questo sistema è da ritenersi lo svi-luppo di protesi bioniche minimamente invasive capaci dimigliorare o sostituire funzionalità nervose danneggiate.Si può prevedere che gli sviluppi futuri di un sistema di que-sto tipo possano portare parallelamente a progressi in neu-rofisiologia, con miglioramento della conoscenza delle fun-zionalità di apprendimento e di memorizzazione delle reti dineuroni biologiche.Nell’immediato, applicazioni dirette saranno lo sviluppo diinterfacce uomo-macchina direttamente guidate dal nostrosistema sensoriale, utili all’aumento della funzionalità deidispositivi mobili di comunicazione sia per disabili che pertutti i normodotati. Tali interfacce potranno essere concepi-te con invasività nulla o fino alla totale biointegrazione.

PROSPETTIVE FUTUREL’evoluzione futura di questo prototipo è principalmente losviluppo di protesi bioelettroniche in supporto a lesioni delsistema nervoso, ma sono pronosticabili altre applicazionipiù immediate nel campo dell’interfaccia uomo-macchinabiointegrata.

Note sugli autoriRita Pizzi è coordinatrice del Living Networks LAB - Dipartimento diTecnologie dell’Informazione presso l'Università di Milano

read

erse

rvic

e.it

n. 1

199

F ig. 2 - Pannel lo real izzato con LabVIE W

Il termine ‘Telemedicina’ si presta a svariate definizioni, nonsempre univoche in letteratura, che spesso focalizzano l’at-tenzione solo su alcuni aspetti della materia. Si tratta sostan-zialmente della trasmissione in tempo reale di informazioni acarattere scientifico tra medico e cittadino o tra addetti ailavori, attraverso sistemi di comunicazione di tipo telemati-co/informatico. I campi di applicazione della telemedicina sono numerosissi-

mi e in continua evoluzione, dalla cardiologia (trasmissionedi tracciati elettrocardiografici) alla radiologia (immaginiradiografiche e computerizzate), dalla dermatologia (fotodigitali di lesioni cutanee) all’anatomia patologica, dallaginecologia (monitoraggio in gravidanza) all’odontoiatria evia dicendo; praticamente ogni branca della medicina puòavvalersi di questo strumento per migliorare l’esercizio delleattività cliniche, assistenziali e didattiche. Applicare la tele-

20

11

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

IL SISTEMA DI

TELEMONITORAGGIO CLINICO STANDARD SI ORIENTA AL BLUETOOTH

I l s istema consente l ’acquisizione dei parametri biomedici, i l trasferimento dati, la gestione

della r icezione e archiviazione delle misure, l ’attivazione di un sistema di aler ting. La car tel la cl inica,

consultabile via web è uti l izzata per la visualizzazione delle misure, per la prescrizione e/o variazione

della terapia e del protocollo di misura

Da

nie

la C

ucè

, Fl

av

io F

orm

ica

matica in ambito medico significa, infatti, rispondere contempestività alle esigenze diagnostiche (telediagnosi) e tera-peutiche (teleassistenza) di cittadini distanti dalle strutturesanitarie o comunque impossibilitati a muoversi da casa. La sfida era quella di progettare e realizzare un sistema chepermettesse di offrire un servizio di Telemonitoraggio ClinicoMultipaziente (TCM) a pazienti residenti presso un’unicastruttura esterna all’ospedale (case alloggio anziani, case dicura, luogo di lavoro, ecc.) affetti da patologie croniche sele-zionate. L’aggettivo Multipaziente sta ad indicare che il siste-ma prevede l’utilizzo di un solo kit di telemonitoraggio peril controllo dei parametri clinici di più pazienti. A tali pazien-ti, verranno offerti alti standard diagnostici e di controlloattraverso l’uso di un kit di telemonitoraggio appositamen-te progettato contenente un insieme di dispositivi biomedi-cali: elettrocardiografo, sfigmomanometro, glucometro, satu-rimetro, bilancia, spirometro, fotocamera digitale; tutti adeccezione della fotocamera con interfaccia Bluetooh.I dati clinici rilevati dalle apparecchiature, sono acquisitilocalmente e vengono successivamente inviati attraversouna connesione sicura dalla postazione remota verso un ser-ver centrale di raccolta dati situato nella server farm dellastruttura ospedaliera di riferimento. A livello server i dati rice-vuti vengono opportunamente archiviati in un database esono resi disponibili per la visualizzazione, da parte di medi-ci della struttura o comunque autorizzati alla visualizzazione,attraverso un’applicazione web dedicata. Attraverso questastessa applicazione, i medici potranno visualizzare l’intera lascheda clinica dei pazienti ed eventualmente effettuaremodifiche alla terapia e al protocollo di musura. Tali varia-zioni verranno comunicate con meccanismi di sincronizza-zione alla postazione locale. Inoltre, il superamento dei valo-ri di soglia dei parametri biomedici, le variazioni alla prescri-zione farmacologica e al protocollo di misura innescherannodei meccanismi di alerting attraverso l’invio di SMS e/oe.mail al paziente e/o ad un suo familiare ed eventualmenteal medico di riferimento. L’applicazione Web ‘Diario Clinico’offre inoltre la possibilità di stampare l’intera cartella clinicae la scheda di dimissione nella quale sono raccolte le infor-mazioni salienti raccolte durante l’intero periodo di telemo-nitoraggio.Architettura del sistemaL’architettura del sistema è di tipo Server - Multiclient pergestire la connessione da più di un sito remoto ed è statointeramente realizzato il LabVIEW 8.5.1 con i moduli NIDatabase Connectivity Tool e Ni Internet Toolkit. A livello Client è stata sviluppata a un’applicazione softwa-re che consente dia. garantire un meccanismo di sincronizzazione conil server centrale dal quale saranno ricevuti sia i dati genera-li dei pazienti ricoverati nella struttura remota e seguiti tra-mite il servizio di telemedicina sia informazioni per la confi-gurazione della postazione locale (gestione degli accessi,

elenco strumentazione affidata). Questo meccanismo di sin-cronizzazione consentirà alla postazione client di poter ope-rare in modalità stand alone per poi richiedere successiva-mente un allineamento con il server alla ripresa della con-nessione. b. introdurre funzionalità di identificazione

del pazientec. introdurre il concetto di sessione di misurazione

(contenitore dell’insieme di dati misurati sul singolo paziente)

d. introdurre funzionalità di caching dei pacchetti dati misurati e relativa spedizione differita via Gprs e/o Adsl, sempre attraverso unaconnessione VPN ai server dedicati

e. gestire l’acquisizione dei parametri biomedici dalle apparecchiature. In particolare sono stati realizzati i driver per l’acquisizione dai seguentidispositivi: elettrocardiografo, sfigmomanometro,

bilancia, ossimetro e spirometro con interfacciaBluetooth.

Caratteristica peculiare del sistema è l’apertura e scalabilitàche consente l’agevole introduzione ed implementazione deimeccanismi di comunicazione con svariate apparecchiaturebiomedicali.A livello Server l’applicazione creata consentea. la sincronizzazione con le postazioni client b. la ricezione dei dati clinicic. la gestione della base datid. la gestione del sistema di alertinge. pubblicazione dei dati attraverso un web

server dedicatoIn particolare, per quanto riguarda quest’ultimo punto, l’ap-

21

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

Fig 1 - MMI sul la postaz ione C l ient - V isual izzaz ione del le misure d i oss imetr ia

plicazione realizzata consente la visualizzazione della sche-da clinica di ciascun paziente via web. La scheda clinica di unpaziente è organizzata in maniera tale da raccogliere in pagi-ne dedicate le informazioni riguardanti, l’anamnesi, la tera-pia, il protocollo di misura et al.. Interfacce specifiche sono state realizzate per la visualizza-zione dei dati clinici. Sfruttando le caratteristiche intrinsechedel LabVIEW Web Server è stato possibile offrire agli utentila possibilità di interagirecon i remote panel costruitiin particolare per l’interro-gazione degli storici dellemisure e la relativa presen-tazione attraverso graficistandard oppure personaliz-zati in base alle esigenze dianalisi medica. Un interfac-cia specifica è stata inoltreprogettata, per la visualiz-zazione immagini cliniche,tipicamente immagini dilesioni cutanee. In particola-re è stata offerta la possibi-lità di effettuare calcoli sulladimensione delle ulcere con la possibilità di associare diret-tamente all’immagine le informazioni saliti per un successi-va interpretazione da parte dei medici. In conclusione, il sistema TCM realizzato consente:• ai medici, di poter offrire a pazienti selezionati e

ricoverati virtualmente presso strutture remote, un servizio continuo di assistenza remota

contribuendo così alla riduzione delle lunghe listed’attesa negli ospedali e dell’elevato numero

di accessi al DEA e ai poliambulatori. • ai pazienti, di poter rilevare, con strumentazione

affidabile e di facile utilizzo, i principali parametribiomedici e contare così sulla teleassistenza

da parte di specialisti, presso il proprio domiciliosenza il disagio di recarsi in ospedale.

22

11

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

Note sugli autoriDaniela Cucè e Flavio Formica sono Software Engineer presso FormatSystems&Networks

Rea

ders

ervi

ce.i

t n

. 111

7

D iar io C l in ico Web: Pannel lo Remoto per la v isual izzaz ione del le immagini

Fig 3 - D iar io C l in ico Web: Pannel lo Remoto per la v isual izzaz ione dei dat i d i oss imetr ia

23

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

IMPLEMENTAZIONE DELLA

DOCUMENTAZIONE

E’ importante fornire una documentazione significativa persupportare gli utenti del VI ed altri sviluppatori che potreb-bero ereditare il VI. In questa lezione apprenderete concet-ti che vi permetteranno di creare standard di documenta-zione per il vostro lavoro.

ARGOMENTIA. Progettazione della documentazioneB. Sviluppo della documentazione utenteC. Descrizione di VI, controlli e indicatoriD. Creare file di help

A. Progettazione della documentazioneGli obiettivi di qualità del progetto determinano il formato eil livello di dettaglio della documentazione che sviluppate perrequisiti, specifiche e altra documentazione relativa al pro-getto stesso. Se il progetto deve soddisfare uno standard diqualità come l’ISO 9000, il formato e il livello di dettagliodella documentazione sono differenti dal formato e dal livel-lo di dettaglio di un progetto interno.LabVIEW include caratteristiche che semplificano il processodi creazione della documentazione per i VI che progettate.• History window - Usate questa finestra per registrare lemodifiche apportate a un VI mano a mano che le effettuate.• Print dialog box - Usate questa area di dialogo percreare stampe del pannello frontale, del diagramma a bloc-chi, del pannello connettori e della descrizione di un VI.Potete utilizzarla anche per stampare i nomi e le descrizio-ni di controlli e indicatori del VI e i nomi e i percorsi dieventuali subVI. Potete stampare queste informazioni,generare file di testo o generare file HTML o RTF che pote-te usare per creare file di help compilati.

B. Sviluppo della documentazione utenteOrganizzare la documentazione sistematicamente aiuta gliutenti ad apprendere il prodotto, il VI o l’applicazione.Utenti diversi hanno esigenze di documentazione differen-ti. Gli utenti finali dei VI appartengono a due classi: gliutenti finali di VI di interfaccia e gli utenti finali di subVI.Ciascuno di questi utenti ha esigenze di documentazionedifferenti.Questo paragrafo descrive tecniche per creare e organizza-

re documentazione che aiuti entrambe queste classi diutenti. Il formato della documentazione utente dipende daltipo di prodotto che create.Organizzazione sistematica della documentazionePer rendere la documentazione più utile per l’utente, con-siderate l’organizzazione della documentazione in modosistematico. Dividete la documentazione in tre categorie:concetti, procedure e materiale di riferimento. Create docu-mentazione che rifletta queste tre categorie.Documentare una libreria di VISe il software che state creando è una libreria di VI utiliz-zata da altri sviluppatori, come driver per strumentazione opacchetti add-on, create documenti con un formato similea quello del LabVIEW Help. Poiché l’audience è costituitada altri sviluppatori, potete ipotizzare che l’audience abbiauna conoscenza operativa di LabVIEW. Create documenta-zione che contenga una visione d’insieme del contenutodel pacchetto, esempi di come utilizzare i subVI e unadescrizione dettagliata di ciascun subVI.Per ogni subVI, includete informazioni come il nome e ladescrizione del VI, un’immagine del pannello dei connetto-ri e un’immagine della descrizione del tipo di dato per ognicontrollo e indicatore presente sul pannello dei connettori.Per generare la maggior parte della documentazione per VIe controlli, selezionate File»VI Properties e selezionateDocumentation dal menù a tendina Category.Selezionate File»Print per stampare la documentazionedel VI, in un formato quasi identico al formato usato nel VI,e informazioni di riferimento delle funzioni nel LabVIEWHelp. Usate l’area di dialogo Print per salvare la docu-mentazione in un file e per creare documentazione per piùVI con una sola operazione.Documentare un’applicazioneSe state sviluppando un’applicazione per utenti che nonhanno familiarità con LabVIEW, la documentazione richie-de più materiale introduttivo. Create un documento chefornisca i requisiti di sistema, istruzioni base di installazio-ne e una visione d’insieme del funzionamento del pacchet-to. Se il pacchetto usa I/O, includete i requisiti hardware etutte le eventuali istruzioni di configurazione che l’utentedeve completare prima di utilizzare l’applicazione.Per ogni pannello frontale con cui l’utente interagisce, for-

Questa lez ione descr ive tecniche per implementare la

documentazione del VI

Training per principianti

a c

ura

di

Ma

tte

o F

oin

i

11

24

11

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

nite un’immagine del pannello frontale e una descrizionedei principali controlli e indicatori. Organizzate le descrizio-ni dei pannelli frontali dall’alto verso il basso, documen-tando per primo il pannello frontale che l’utente vede perprimo. Potete anche usare l’area di dialogo Print per crea-re questa documentazione.Documentare un modello di progettazioneQuando implementate un’architettura scalabile, dovrestesempre considerare quali problemi di scalabilità potrebbe-ro manifestarsi. Dopo avere implementato un’architetturaper un’applicazione, è difficile cambiare l’architettura dibase. Scegliete buone tecniche di programmazione perimplementare un’architettura scalabile, perché è inevitabi-le che voi o un altro sviluppatore avrete la necessità dicambiare o modificare il VI in futuro. Le applicazioni e i lorousi evolvono. Per essere certi che l’architettura che avetescelto non richieda di essere completamente riarchitettatao riscritta quando farete dei cambiamenti, create un’op-portuna documentazione sulla funzionalità dell’architettu-ra stessa.Mettete uno schema o una descrizione dell’architetturascelta sullo schema a blocchi per illustrare la sua funziona-lità e aumentare la leggibilità del modello di progettazione.Per esempio, per migliorare la leggibilità di un VI progetta-to come macchina a stati, incorporate all’interno del dia-gramma a blocchi un’immagine del grafo della relativamacchina a stati, come illustrato nella figura 1.

Anche commentare il modello di progettazione è estre-mamente importante. I commenti dovrebbero sempreindicare il motivo per cui avete scelto un particolaremodello di progettazione.Documentare la storia dello sviluppoUsate la finestra History per visualizzare la storia dello

sviluppo di un VI, includendo i numeri di revisione.Quando apportate cambiamenti al VI, registrateli e segui-teli nella finestra History. Selezionate Edit»VI RevisionHistory per visualizzare la finestra History. Potete anchestampare la storia delle revisioni o salvarla in un fileHTML, RTF o di testo.Numeri di revisioneIl numero di revisione è un modo semplice per teneretraccia delle modifiche apportate a un VI. Il numero direvisione parte da zero e aumenta ogni volta che salvateil VI. Per visualizzare il numero di revisione corrente nellabarra del titolo del VI e nella barra del titolo della finestraHistory, selezionate Tools»Options, selezionateRevision History dall’elenco Category e mettere unsegno di spunta nella casella Show revision number intitlebar.Il numero visualizzato da LabVIEW nella finestra Historyè il numero di revisione successivo, pari al numero di revi-sione corrente più uno. Quando aggiungete un commen-to alla storia, l’intestazione del commento include il pros-simo numero di revisione. Il numero di revisione nonincrementa quando salvate un VI dopo averne salvatosolo la storia.I numeri di revisione sono indipendenti dai commentinella finestra History. I gap nei numeri di revisione fra icommenti indicano che avete salvato il VI senza un com-mento.

Poiché la storia è strettamente un tool di sviluppo,LabVIEW rimuove automaticamente la storia quandorimuovete lo schema a blocchi di un VI. La finestraHistory non è disponibile nella versione run-time di unVI. La pagina General dell’area di dialogo delle VIProperties visualizza il numero di revisione anche per i VI

Figura 1 – Incorporare un diagramma a stat i nel lo schema a b locchi

25

senza schemi a blocchi. Cliccate il pulsante Reset nellafinestra History per cancellare la storia delle revisioni eresettare a zero il numero di revisione.C. Descrizione di VI, controlli e indicatoriIntegrate le informazioni per l’utente in ogni VI che crea-te usando la funzionalità VI description, mettendo istru-zioni sul pannello frontale e includendo descrizioni perogni controllo e indicatore.Creazione di descrizioni dei VICreate ed editate VI description selezionando File»VIProperties e selezionando Documentation dal menù atendina Category.La VI description è spesso la sola sorgente di informazio-ni su un VI disponibile all’utente. La VI description appa-re nella finestra Context Help quando spostate il curso-re sopra l’icona del VI e in ogni documentazione del VIche generate.Includete i seguenti elementi nella VI description:• Una visione d’insieme del VI• Istruzioni per l’uso del VI• Descrizione di ingressi e usciteDocumentare pannelli frontaliUn modo per fornire istruzioni importanti è mettere unblocco di testo ben evidenziato sul pannello frontale. Unelenco dei passi importanti è molto utile. Includete istru-zioni come “Selezionare File»VI Properties per istruzioni”o “Selezionare Help»Show Context Help”. Per istruzionilunghe, usate un controllo stringa scorrevole invece diun’etichetta libera. Quando finite di inserire il testo, clic-cate con il tasto destro il controllo e selezionate DataOperations»Make Current Value Default dal menùabbreviato per salvare il testo.Se un blocco di testo richiede troppo spazio sul pannellofrontale, usate invece un pulsante Help sul pannello fron-tale. Includete la stringa di istruzioni nella finestra di helpche appare quando l’utente clicca il pulsante Help. Usatela pagina Window Appearance nell’area di dialogo VIProperties per configurare questa finestra di help comeun’area di dialogo che richiede che l’utente clicchi un pul-sante OK per chiuderla e continuare, o come una finestrache l’utente può spostare ovunque e chiudere in qualsia-si momento.Potete anche utilizzare un pulsante Help per aprire unavoce in un file di help online. Usate le funzioni Help peraprire la finestra Context Help o per aprire un file dihelp e accedere a un argomento specifico.Creare descrizioni di controlli e indicatoriIncludete una descrizione per ogni controllo e indicatore.Per creare, editare e visualizzare le descrizioni deglioggetti, cliccate con il tasto destro l’oggetto e seleziona-te Description and Tip dal menù abbreviato. La descri-zione dell’oggetto appare nella finestra Context Helpquando spostate il cursore sopra l’oggetto e in ogni

documentazione del VI che generate.A meno che ogni oggetto abbia una descrizione, l’utenteche osserva un nuovo VI non ha altre possibilità che quel-la di indovinare la funzione di ogni controllo e indicatore.Ricordate quindi di inserire una descrizione quando crea-te l’oggetto. Se copiate l’oggetto in un altro VI, ne copia-te anche la descrizione.Ogni controllo e indicatore richiede una descrizione cheinclude le seguenti informazioni:• Funzionalità• Tipo di dato• Range valido (per gli input)• Valore di default (per gli input) – Potete anche elenca-re il valore di default fra parentesi come parte del nomedel controllo o indicatore.• Comportamento per valori speciali (0, array vuoto, strin-ga vuota, ecc.)• Informazioni addizionali, per esempio se l’utente deveimpostare questo valore sempre, spesso o raramenteDesignate quali ingressi e uscite sono richiesti, racco-mandati e opzionali per evitare che gli utenti dimentichi-no di cablare i collegamenti di subVI. Per indicare gliingressi e uscite richiesti, raccomandati e opzionali, clic-cate con il tasto destro sul quadro connettori, seleziona-te This Connection Is dal menù abbreviato e seleziona-te Required, Recommended o Optional.

D. Creazione di file di helpSe avete i corretti tool di sviluppo, create documenti dihelp o di riferimento online.Usate l’area di dialogo Print per facilitare la creazionedel materiale sorgente per i documenti di help.Dopo avere creato i documenti sorgente, usate un compi-latore di help per creare il documento di help. Se vi occor-rono file di help su più piattaforme, usate un compilatoredi help per la specifica piattaforma per la quale voletegenerare i file di help.Potete anche linkarvi ai file di help direttamente da un VI.Linkate i VI al menu Help usando la paginaDocumentation dell’area di dialogo VI Properties.Potete anche usare le funzioni Help per linkarvi agli argo-menti in specifici file di help programmaticamente.

Note sull'autoreLaureato in ingegneria nucleare al Politecnico di Milano, Matteo Foinilavora in qualità di Technical Marketing Engineer presso NationalInstruments Italy

Rea

ders

ervi

ce.i

t n

. 112

5

26

11

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

PROGRAMMAZIONEA EVENTI

I modelli di progettazione basati su eventi utilizzano lastruttura ad eventi per rispondere direttamente all’utenteo ad altri eventi. Questa lezione descrive la programma-zione guidata da eventi utilizzando la struttura ad eventi ei modelli di progettazione che impiegano la struttura adeventi.

ArgomentiA. Programmazione guidata da eventiB. Modelli di progettazione basati su eventi

A. Programmazione guidata da eventiLabVIEW è un ambiente di programmazione a flusso didati nel quale il flusso dei dati determina l’ordine di ese-cuzione degli elementi dello schema a blocchi. Le caratte-ristiche della programmazione guidata da eventi estendo-no le potenzialità dell’ambiente per consentire l’interazio-ne diretta dell’utente con il pannello ed altre attività asin-crone per influenzare ulteriormente l’esecuzione delloschema a blocchi.

Nota Le funzionalità della programmazione guidata daeventi sono disponibili solo nelle versioni Full e Professionaldi LabVIEW. Potete eseguire un VI costruito con questecaratteristiche anche in LabVIEW Base, ma non potetericonfigurare i componenti che gestiscono gli eventi.

Che cosa sono gli eventi?Un evento è una notifica asincrona che qualcosa si è veri-ficato. Gli eventi possono avere origine dall’interfacciautente, da I/O esterno o da altre parti del programma. Glieventi dell’interfaccia utente includono click del mouse,pressioni di tasti, e così via. Gli eventi di I/O esterni inclu-dono timer hardware o trigger che segnalano quando l’ac-quisizione dati è terminata o quando si verifica una condi-zione di errore. Altri tipi di eventi possono essere generatiprogrammaticamente ed essere utilizzati per comunicarecon parti differenti del programma stesso. LabVIEW sup-porta gli eventi di interfaccia utente e generati da pro-gramma, ma non supporta gli eventi di I/O esterni.In un programma guidato da eventi, gli eventi che si veri-ficano nel sistema influenzano direttamente il flusso diesecuzione. Al contrario, un programma procedurale viene

eseguito in un ordine sequenziale predeterminato. I pro-grammi guidati da eventi includono solitamente un loopche attende il verificarsi di un evento, esegue codice perrispondere all’evento e si reitera in attesa dell’evento suc-cessivo. Come il programma risponde a ciascun eventodipende dal codice scritto per quello specifico evento.L’ordine nel quale un programma guidato da eventi vieneeseguito dipende da quali eventi si verificano e dall’ordinenel quale essi si verificano. Alcune parti del programmapotrebbero essere eseguite spesso perché gli eventi chegestiscono si manifestano frequentemente, mentre altreparti del programma potrebbero non essere eseguiteaffatto perché i relativi eventi non si verificano mai.

Perché usare gli eventi?Usate eventi dell’interfaccia utente in LabVIEW per sincro-nizzare le azioni dell’utente sul pannello frontale con l’e-secuzione dello schema a blocchi. Gli eventi vi permetto-no di eseguire una specifica sezione di gestione di eventoogni volta che un utente effettua una determinata azione.Senza eventi, lo schema a blocchi deve interrogare (pol-ling) lo stato degli oggetti del pannello frontale in un loop,controllando se si è verificato qualche cambiamento.L’interrogazione del pannello frontale richiede tuttaviauna significativa quantità di tempo della CPU e può fallirenel rilevamento di cambiamenti che si verificano tropporapidamente. Utilizzando eventi per rispondere a specifi-che azioni dell’utente, potete eliminare la necessità diinterrogare il pannello frontale per determinare quali azio-ni siano state eseguite dall’utente. LabVIEW notifica atti-vamente allo schema a blocchi ogni volta che si verificaun’interazione che avete specificato. L’uso degli eventiriduce la richiesta di tempo macchina del programma,semplifica il codice dello schema a blocchi e garantisce lacapacità del diagramma di rispondere a tutte le interazio-ni eseguite dall’utente.Usate eventi generati da programma per comunicare fraparti differenti del programma che non dipendono dal flus-so dei dati. Gli eventi generati da programma hanno moltidegli stessi vantaggi degli eventi dell’interfaccia utente epossono condividere lo stesso codice di gestione degli even-ti, facilitando l’implementazione di architetture avanzate,come le macchine a stati con gestione di code di eventi.

Training per espertiA

cu

ra d

i M

att

eo

Fo

ini

I model l i d i progettaz ione basat i su event i v i permet-

tono di c reare appl icaz ioni p iù ef f ic ient i e f less ib i l i

27

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

Componenti della struttura ad eventiUsate la struttura ad eventi, illustrata in figura, per gestiregli eventi in un VI.

La struttura ad eventi opera come una struttura Case,con una funzione Wait on Notification incorporata. Lastruttura ad eventi può avere più casi, ciascuno dei qualiè una routine separata di gestione degli eventi. Poteteconfigurare ogni caso in modo da gestire uno o più even-ti, ma può verificarsi uno solo di tali eventi per volta.Quando la struttura ad eventi viene eseguita, attendefino al verificarsi di uno degli eventi configurati, quindiesegue il caso corrispondente a tale evento. La strutturatermina l’esecuzione dopo avere gestito esattamente unevento. Essa non entra implicitamente in loop per gesti-re più eventi. Analogamente a una funzione Wait on Notification, lastruttura ad eventi può andare in timeout mentre è inattesa della notifica di un evento. Quando ciò si verifica,viene eseguito uno specifico caso Timeout.L’etichetta del selettore eventi nella parte superiore dellastruttura ad eventi, illustrata in figura, indica quali eventicausano l’esecuzione del caso attualmente visualizzato.

Potete visualizzare altri casi di eventi cliccando la frecciaverso il basso accanto al nome del caso e selezionandoun altro caso dal menu abbreviato.Il terminale Timeout nell’angolo superiore sinistro dellastruttura ad eventi, illustrato in figura, specifica il numerodi millisecondi per i quali attendere un evento prima deltimeout.

Il default è –1, che specifica un’at-tesa indefinita del verificarsi di unevento. Se cablate un valore al ter-minale Timeout, dovete fornire uncaso Timeout.

L’Event Data Node, illu-strato in figura, si com-porta in modo similealla funzione UnbundleBy Name.

Il nodo è collegato al bordo interno sinistro di ogni caso dievento. Esso identifica i dati forniti da LabVIEW quando siverifica un evento. Potete ridimensionare questo nodo ver-ticalmente per aggiungere altri elementi. Il nodo forniscedifferenti elementi in ogni caso della struttura ad eventi, inbase all’evento o agli eventi che il caso è configurato pergestire. Se configurate un singolo caso per gestire piùeventi, l’Event Data Node fornisce solo gli elementi chesono comuni a tutti gli eventi configurati per quel caso.L’Event Filter Node, illustrato in figura, è simile all’EventData Node.

Il nodo è collegato al bordo interno destro dei casi dieventi di filtraggio. Esso identifica il subset di dati dispo-nibili nell’Event Data Node che il caso di evento può modi-ficare. Il nodo visualizza dati differenti in base all’evento oagli eventi che il caso è configurato per gestire. Perdefault, questi elementi sono al posto dei corrispondentielementi nell’Event Data Node. Se non cablate un valore aun elemento dell’Event Filter Node, quell’elemento rimaneinvariato.I terminali di eventi dinamici, illustrati in figura, sono dis-ponibili cliccando il tasto destrosulla struttura ad eventi e selezio-nando Show Dynamic EventTerminals dal menu abbreviato.

Nota Analogamente ad una struttura Case, la struttura adeventi supporta i tunnel. Tuttavia, di default, non dovetecablare i tunnel d’uscita della struttura ad eventi in ognicaso. Tutti i tunnel scablati usano il valore di default per iltipo di dato del tunnel. Cliccate con il tasto destro su untunnel e deselezionate Use Default If Unwired dalmenu abbreviato per tornare al comportamento di defaultdella struttura Case quando i tunnel devono essere cabla-ti in tutti i casi. Consultate il LabVIEW Help per informa-zioni sui valori di default per i tipi di dato.

Eventi di notifica e filtraggioVi sono due tipi di eventi di interfaccia utente: notifica efiltraggio.Gli eventi di notifica sono un’indicazione che l’azione del-l’utente si è già verificata, ad esempio quando l’utente ha

28

11

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

modificato il valore di un controllo. Usate gli eventi di noti-fica per rispondere ad un evento dopo che si è verificato eLabVIEW lo ha elaborato. Potete configurare la rispostaallo stesso evento di notifica su uno specifico oggetto perun qualsiasi numero di strutture ad eventi. Quando l’e-vento si verifica, LabVIEW invia una copia dell’evento adogni struttura ad eventi configurata per gestire l’evento inparallelo.Gli eventi di filtraggio vi informano che l’utente ha ese-guito un’azione prima che LabVIEW la elabori, permetten-dovi di customizzare il modo con il quale il programmarisponde alle interazioni con l’interfaccia utente. Usate glieventi di filtraggio per partecipare alla gestione dell’even-to, eventualmente escludendo il comportamento di defaultper l’evento stesso. In un caso di evento di filtraggio dellastruttura ad eventi, potete validare o modificare i dati del-l’evento prima che LabVIEW ne completi l’elaborazione, opotete scartare interamente l’evento per evitare che ilcambiamento abbia effetti sul VI. Per esempio, potete con-figurare una struttura ad eventi in modo da scartare l’e-vento Panel Close?, impedendo all’utente di chiudere inte-rattivamente il pannello frontale del VI. Gli eventi di fil-traggio hanno nomi che terminano con un punto interro-gativo, come Panel Close?, per aiutarvi a distinguerli daglieventi di notifica. La maggior parte degli eventi di filtrag-gio ha un evento di notifica associato con stesso nome,ma senza il punto interrogativo, che LabVIEW generadopo l’evento di filtraggio se nessun caso di evento hascartato l’evento stesso.Come nel caso degli eventi di notifica, potete configurarela risposta di qualsiasi numero di strutture ad eventi allostesso evento di filtraggio su uno specifico oggetto.Tuttavia, LabVIEW invia sequenzialmente gli eventi di fil-traggio ad ogni struttura ad eventi configurata per l’even-to. L’ordine nel quale LabVIEW invia gli eventi a ciascunastruttura ad eventi dipende dall’ordine con il quale glieventi sono stati registrati. Ogni struttura ad eventi devecompletare il suo caso per l’evento prima che LabVIEWpossa notificare la successiva struttura ad eventi. Se uncaso della struttura ad eventi cambia un qualsiasi datodell’evento, LabVIEW passa il dato modificato alle succes-sive strutture nella catena. Se una struttura ad eventi nellacatena scarta l’evento, LabVIEW non passa l’evento adalcuna struttura ad eventi rimanente nella catena.LabVIEW completa l’elaborazione dell’azione utente cheha triggerato l’evento solo quando tutte le strutture adeventi configurate hanno gestito l’evento senza scartarlo.

Nota National Instruments raccomanda di utilizzare glieventi di filtraggio solo quando si vuole prendere partealla gestione dell’azione dell’utente, scartando l’evento omodificando i dati dell’evento. Se volete semplicementesapere che l’utente ha effettuato una particolare azione,

usate gli eventi di notifica.I casi della struttura ad eventi che gestiscono eventi di fil-traggio hanno un Event Filter Node. Potete cambiare i datidell’evento cablando nuovi valori a questi terminali. Senon cablate un elemento dati, l’elemento rimane invaria-to. Potete completamente scartare un evento cablando unvalore TRUE al terminale Discard?

Nota Un singolo caso nella struttura ad eventi non puògestire eventi sia di notifica che di filtraggio. Un caso puògestire più eventi di notifica ma può gestire più eventi difiltraggio solo se gli elementi dell’evento sono identici pertutti gli eventi.

Consiglio Nell’area di dialogo Edit Events, gli eventi dinotifica sono indicati da una freccia verde, mentre glieventi di filtraggio sono indicati da una freccia rossa.

Uso di eventi in LabVIEWLabVIEW può generare molti eventi differenti. Per evitaredi generare eventi indesiderati, usate la registrazione deglieventi per specificare gli eventi che volete vi siano notifi-cati da LabVIEW. LabVIEW supporta due modelli per laregistrazione degli eventi: statica e dinamica.La registrazione statica vi permette di specificare qualieventi sul pannello frontale di un VI volete gestire in ognicaso di una struttura ad eventi sullo schema a blocchi delVI stesso. LabVIEW registra automaticamente questi even-ti durante l’esecuzione del VI, quindi la struttura ad even-ti inizia ad attendere eventi non appena inizia l’esecuzio-ne del VI. Ogni evento è associato a un controllo sul pan-nello frontale del VI, alla finestra del pannello frontale delVI nel suo complesso o all’applicazione LabVIEW.Non potete configurare staticamente una struttura adeventi in modo che gestisca gli eventi per il pannello fron-tale di un VI differente. La configurazione è statica perchénon potete cambiare in fase di run time gli eventi gestitidalla struttura ad eventi.La registrazione dinamica degli eventi evita i limiti dellaregistrazione statica integrando la registrazione deglieventi con il VI Server, cosa che vi permette di utilizzareApplication, VI e control reference per specificare in fase dirun time gli oggetti per i quali desiderate generare eventi.La registrazione dinamica offre una maggiore flessibilità nelcontrollare quali eventi sono generati da LabVIEW e quan-do deve avvenire la loro generazione. Tuttavia, la registra-zione dinamica è più complessa della registrazione statica,perché richiede di registrare e deregistrare esplicitamentegli eventi tramite le funzioni del VI Server, anziché gestireautomaticamente la registrazione usando le informazioniche avete configurato nella struttura ad eventi.

Nota In generale, LabVIEW genera eventi dell’interfaccia

29

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

utente solo a seguito di un’interazione diretta dell’utentecon il pannello frontale attivo. LabVIEW non genera eventi,tipo Value Change, quando utilizzate variabili condivise,variabili globali, variabili locali, e così via.Tuttavia, potete utilizzare la proprietà Value (Signaling) pergenerare un evento Value Change programmaticamente. Inmolti casi, potete utilizzare eventi generati da programmainvece di code e notificatori.I dati di evento forniti da un evento LabVIEW includono sem-pre un time stamp, un tipo Enum che indica quale evento si èverificato e una VI Server reference all’oggetto che ha trigge-rato l’evento. Il time stamp è un contatore di millisecondi chepotete utilizzare per calcolare il tempo trascorso fra due even-ti o per determinare l’ordine di occorrenza. La reference all’og-getto che ha generato l’evento è strettamente tipizzata inbase alla classe del VI Server di quell’oggetto.Gli eventi sono raggruppati in classi in base al tipo di ogget-to che genera l’evento, come Application, VI o Control. Seun singolo caso gestisce più eventi per oggetti di classi dif-ferenti del VI Server, il tipo di reference è la classe genitricecomune di tutti gli oggetti. Per esempio, se configurate unsingolo caso nella struttura ad eventi per gestire eventi perun controllo numerico e un controllo di rampa colore, il tipodi reference della sorgente di eventi sarà Numeric, perché icontrolli numerico e rampa colore sono nella classeNumeric. Se registrate lo stesso evento su entrambe le clas-si VI e Control, LabVIEW genera prima l’evento VI.

Nota I cluster sono gli unici oggetti contenitori per i qualipotete generare eventi.LabVIEW genera eventi Control per i cluster, prima di gene-rare eventi per gli oggetti che contengono, ad eccezione delcaso dell’evento Value Change. L’evento Value Changegenera l’evento su un elemento nel cluster, quindi sul clusterstesso. Se il caso della struttura ad eventi per un evento VIo un evento Control su un oggetto contenitore scarta l’e-vento, LabVIEW non genera ulteriori eventi.Ogni struttura ad eventi e funzione Register For Events sulloschema a blocchi possiede una coda che LabVIEW utilizzaper memorizzare gli eventi. Quando un evento si verifica,LabVIEW mette una copia dell’evento in ogni coda registra-ta per quell’evento. Una struttura ad eventi gestisce tutti glieventi nella sua coda e gli eventi nelle code di tutte le fun-zioni Register For Events che avete cablato ai terminali dievento dinamici della struttura ad eventi. LabVIEW usa que-ste code per assicurare che gli eventi siano consegnati inmodo affidabile ad ogni struttura ad eventi registrata nel-l’ordine in cui gli eventi si verificano.Per default, quando un evento entra in una coda, LabVIEWblocca il pannello frontale contenente l’oggetto che hagenerato l’evento. LabVIEW tiene bloccato il pannello fron-tale finché tutte le strutture Event finiscono di gestire l’e-vento. Mentre il pannello frontale è bloccato, LabVIEW non

elabora l’attività del pannello frontale, ma mette quelleinterazioni in un buffer e le gestisce quando il pannello fron-tale viene sbloccato.Per esempio, un utente potrebbe prevedere che un caso dievento lanci un’applicazione richiedente inserimento ditesto. Poiché l’utente sa già che è richiesto un inserimentodi testo, egli potrebbe iniziare a digitarlo prima che l’appli-cazione appaia sul pannello frontale. Se l’opzione Lockfront panel until the event case for this event com-pletes è abilitata, quando l’applicazione viene lanciata edappare sul pannello frontale, essa elabora le pressioni deitasti nell’ordine in cui si sono verificate. Se l’opzione Lockfront panel until the event case for this event com-pletes è disabilitata, le pressioni dei tasti potrebbero esse-re elaborate altrove sul pannello frontale, perché LabVIEWnon accoda la loro esecuzione in modo che dipenda dalcompletamento del caso di evento.Il blocco del pannello frontale non influisce su certe azioni,come lo spostamento della finestra, l’interazione con lebarre di scorrimento e il click del pulsante Abort.LabVIEW può generare eventi anche quando nessuna strut-tura ad eventi è in attesa di gestirli. Poiché la struttura adeventi gestisce solo un evento ogni volta che viene esegui-ta, mettete la struttura ad eventi in un While Loop per assi-curare che la struttura ad eventi possa gestire tutti gli even-ti che si verificano.

Attenzione Se non viene eseguita alcuna struttura adeventi per gestire un evento e il blocco del pannello fronta-le è abilitato, l’interfaccia utente del VI diventa irresponsiva.In questo caso, cliccate il pulsante Abort per interrompereil VI. Potete disabilitare il blocco del pannello frontale clic-cando con il tasto destro sulla struttura ad eventi e rimuo-vendo il segno di spunta dalla casella Lock front paneluntil the event case for this event completes nell’a-rea di dialogo Edit Events. Non potete disattivare il bloc-co del pannello frontale per gli eventi di filtraggio.Registrazione statica degli eventiLa registrazione statica degli eventi è disponibile solo per glieventi dell’interfaccia utente. Usate l’area di dialogo EditEvents per configurare una struttura ad eventi in modo chegestisca un evento registrato staticamente. Selezionate lasorgente degli eventi, che può essere l’applicazione, il VI oun singolo controllo. Selezionate uno specifico evento che lasorgente di eventi può generare, come Panel Resize, ValueChange e così via. Editate il caso per gestire i dati dell’e-vento in base alle esigenze dell’applicazione.LabVIEW registra staticamente gli eventi in modo automa-tico e trasparente quando eseguite un VI che contiene unastruttura ad eventi. LabVIEW genera eventi per un VI soloquando quel VI è in esecuzione o quando un altro VI in ese-cuzione richiama il VI come subVI.Quando eseguite un VI, LabVIEW imposta il VI di livello

superiore e la gerarchia di subVI che il VI richiama nel suoschema a blocchi in uno stato di esecuzione denominato riser-vato. Non potete editare un VI o cliccare il pulsante Run men-tre il VI è nello stato riservato perché il VI può essere richia-mato come subVI in qualsiasi istante mentre il suo VI genito-re è in esecuzione. Quando LabVIEW imposta un VI nello statoriservato, esso registra automaticamente gli eventi che aveteconfigurato staticamente in tutte le strutture ad eventi pre-senti sullo schema a blocchi di quel VI. Quando l’esecuzionedel VI di livello superiore termina, LabVIEW imposta tale VI ela sua gerarchia di subVI nello stato di esecuzione idle e dere-gistra automaticamente gli eventi.

Configurazione degli eventiCompletate i passi seguenti per configurare un case dellastruttura ad eventi in modo che gestisca un evento.1. (Opzionale) Se volete configurare la struttura ad eventi inmodo che gestisca un evento di utente, un controllo boo-leano o un evento dell’interfaccia utente generato in base auna reference a un’applicazione, un VI o un controllo, dove-te in primo luogo registrare dinamicamente quell’evento.2. Cliccate con il tasto destro sul bordo della struttura adeventi e selezionate Edit Events Handled by This Casedal menù abbreviato per visualizzare l’area di dialogo EditEvents per editare il caso corrente. Potete selezionareanche Add Event Case dal menù abbreviato per creare unnuovo caso.3. Specificate una sorgente di eventi nella sezione EventSources.4. Selezionate l’evento che volete configurare per la sor-gente di eventi, come Key Down, Timeout o ValueChange dall’elenco Events. Quando selezionate una sor-gente di eventi dinamici dall’elenco Event Sources, l’elen-co Events visualizza quell’evento. Questo è lo stesso even-to che avete selezionato quando avete registrato l’evento.Se avete registrato dinamicamente gli eventi e avete cabla-to event reg refnum out al terminale di eventi dinamici,le sorgenti appaiono nella sezione Dynamic.5. Se volete aggiungere eventi addizionali da gestire nelcaso corrente, cliccate il pulsante + e ripetete i passi 3 e 4per specificare ogni evento addizionale.La sezione Event Specifiers in cima all’area di dialogoelenca tutti gli eventi che il caso deve gestire. Quando clic-cate su un elemento in questo elenco, la sezione EventSources si aggiorna per evidenziare la sorgente di eventiche avete selezionato. Potete ripetere i passi 3 e 4 per ride-finire ciascun evento o cliccare il pulsante X per rimuoverel’evento selezionato.6. Cliccate sul pulsante OK per salvare la configurazione echiudere l’area di dialogo. I casi di evento che avete configurato appaiono come opzio-ni di selezione nell’etichetta del selettore di eventi in cimaalla struttura ad eventi e il nodo Event Data visualizza i dati

comuni a tutti gli eventi gestiti in quel caso.7. (Opzionale) Potete usare un evento Timeout per configu-rare una struttura ad eventi in modo che attenda per unaquantità di tempo specificata il verificarsi di un evento.Cablate un valore al terminale Timeout in alto a sinistradella struttura ad eventi per specificare il numero di millise-condi per il quale la struttura ad eventi deve attendere ilverificarsi di un evento prima di generare un eventoTimeout. Il valore di default del terminale Timeout è –1, chespecifica di attendere indefinitamente il verificarsi di unevento.8. Ripetete i passi da 1 a 6 per ciascun caso di evento chevolete configurare.

Esempio di eventoLa figura 1 illustra una struttura ad eventi configurata conl’evento Menu Selection (User). Questo VI usa la strutturaad eventi per catturare le selezioni di menu impiegando ilmenu definito dall’utente di nome sample.rtm. ItemTagrestituisce l’elemento di menu che è stato selezionato, men-tre MenuRef restituisce il refnum alla barra menù. Questainformazione è passata alla funzione Get Menu Item Info.

Nota Se usate la funzione Get Menu Selection con una strut-tura ad eventi configurata per gestire lo stesso elemento dimenu, la struttura ad eventi ha la precedenza e LabVIEW igno-ra la funzione Get Menu Selection. In qualsiasi VI, per gestire glieventi di menù usate la struttura ad eventi o la funzione GetMenu Selection, non entrambe.

B. Modelli di progettazione basati su eventiI modelli di progettazione basati su eventi offrono guadagni diefficienza perché essi rispondono solo al verificarsi di un even-to. Quando LabVIEW esegue la struttura ad eventi, il VI checontiene la struttura ad eventi rimane dormiente finché si veri-fica o viene generato un evento registrato. Quando un eventoregistrato viene generato, la struttura ad eventi si risvegliaautomaticamente ed esegue il sottodiagramma appropriatoper gestire l’evento.

30

11

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

Figura 1 . Evento Menu S elec t ion (User)

31

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

Modello di progettazione gestore di eventi dell’interfaccia utenteIl modello di progettazione gestore di eventi dell’interfacciautente mette a disposizione un’architettura potente ed effi-ciente per gestire le interazioni dell’utente con LabVIEW. Usateil gestore di eventi dell’interfaccia utente per rilevare quandoun utente cambia il valore di un controllo, sposta o clicca ilmouse o preme un tasto.Il template standard del gestore di eventi dell’interfaccia uten-te consiste di una struttura ad eventi contenuta in un WhileLoop, come illustrato nella figura 2. Configurate la struttura adeventi in modo da avere un caso per ogni categoria di eventoche volete rilevare. Ogni caso di evento contiene il codice digestione che viene eseguito immediatamente dopo il verificar-si di un evento.Poiché il loop del gestore di eventi si risveglia esattamente alverificarsi di un evento e rimane dormiente fra gli eventi, nondovete fare polling o leggere ripetutamente i valori di un con-trollo per rilevare quando un utente clicca un pulsante. Ilgestore di eventi dell’interfaccia utente vi permette di mini-mizzare l’uso del processore senza sacrificare l’interattività.

Un problema comune quando si usa il gestore di eventi del-l’interfaccia utente è che esso calcola il termine del While Loopprima che la struttura ad eventi sia eseguita. Ciò fa sì che ilWhile Loop iteri una volta in più del previsto. Per evitare que-sta situazione, calcolate il termine del While Loop all’interno ditutto il vostro codice di gestione degli eventi.Il codice del gestore di eventi deve essere eseguito rapida-mente, generalmente entro 200 ms. Se è più lento, si ha lasensazione che l’interfaccia utente sia bloccata. Inoltre, se ilcodice del gestore di eventi richiede molto tempo per essereeseguito, la struttura ad eventi potrebbe bloccarsi. Di default,il pannello frontale si blocca mentre un evento viene gestito.Potete disabilitare il blocco del pannello frontale per ogni casodi evento in modo da rendere più responsiva l’interfaccia uten-te. Tuttavia, ogni nuovo evento generato mentre si sta gesten-do un altro evento non viene gestito immediatamente.Pertanto, l’interfaccia utente sembra ancora poco responsiva.

Qualsiasi parte di codice presente all’interno di un caso dievento non può essere condivisa con un’altra struttura adeventi. Quando impiegate la struttura ad eventi dovete utiliz-zare un codice ben progettato. Modularizzate il codice cheverrà condiviso fra più casi della struttura ad eventi.La struttura ad eventi include un evento Timeout, che vi per-mette di controllare quando l’evento Timeout viene eseguito.Per esempio, se impostate un Timeout di 200 ms, il caso dievento Timeout viene eseguito ogni 200 ms in assenza di altrieventi. Potete usare l’evento Timeout per eseguire una tempo-rizzazione critica nel vostro codice.

Modello di progettazione produttore/consumatore (di eventi)Uno dei modelli di progettazione più versatili e flessibili com-bina i modelli di progettazione produttore/consumatore e delgestore di eventi dell’interfaccia utente.Un VI costruito utilizzando il modello produttore/consumatore(di eventi) risponde all’interfaccia utente in modo asincrono,permettendo all’interfaccia utente di rispondere continuamen-te all’utente. Il loop consumatore di questo modello rispondeal verificarsi di eventi, analogamente al loop consumatore delmodello di progettazione produttore/consumatore (di dati).Il modello di progettazione produttore/consumatore (di even-ti) usa la stessa implementazione del modello di progettazio-ne produttore/consumatore (di dati), ad eccezione del fattoche il loop produttore usa una struttura ad eventi per rispon-dere agli eventi dell’interfaccia utente, come illustrato nellafigura 3. La struttura ad eventi permette una risposta continuaall’interazione dell’utente.

La figura illustra come potete usare VI e funzioni di sincroniz-zazione per aggiungere funzionalità al modello di progetta-zione. Le code hanno la capacità di trasferire qualsiasi tipo didato. Il tipo di dato trasferito nella figura 3 è una stringa. Unastringa non è il tipo di dato più efficiente per elaborare i datinei modelli di progettazione. Un tipo di dato più efficiente perpassare dati nei modelli di progettazione è un cluster conte-nente un controllo di tipo Enum e un Variant. R

eade

rser

vice

.it

n. 1

126

F igura 2 . Model lo d i progettaz ione del gestore d i event idel l ’ inter facc ia utente

Figura 3 . Model lo d i progettaz ione produttore/consumatore(di event i )

32

11

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

HTTP://WWW

Importare modelli 3D da Google SketchUp in LabVIEW

Il 3D Picture Control di LabVIEW è un potente tool utilizzabile per visualizzare e sovrapporre facilmente dati su oggetti reali

mediante il Sensor Mapping Express VI introdotto in LabVIEW 8.6.

Tuttavia, può essere difficile trovare modelli esistenti di ponti, veicoli, edifici o altri oggetti che si desidera importare e che

cosa modellare.

Per esempio, cosa fareste se voleste sovrapporre i vostri dati da sensori sul Tumbler, la moderna Batmobile del film The Dark

Knight?

Vediamo come importare questo modello in LabVIEW.

Link alla pagina:

ni .com/ita l ian infocode: i t6ktd

Creazione di variabili condivise e binding a variabili di I/O programmaticamente

Questo VI rileva tutte le variabili di I/O pubblicate dall’NI Scan Engine a un dato indirizzo IP, crea variabili condivise e fa il

binding a ciascuna delle variabili di I/O programmaticamente. Le variabili risiedono su un PC Windows da voi specificato.

Creando e legando variabili condivise a variabili di I/O, potete sfruttare il logging e la gestione di allarmi con il modulo

LabVIEW DSC, le comunicazioni bufferizzate, la comunicazione con client OPC, ecc.

Link alla pagina:

ni .com/ita l ian infocode: i t6ktd

Binding di variabili condivise utilizzando un Enum

Questo esempio mostra come potete creare un enum per limitare la selezione delle variabili che un utente può utilizzare. A

tale scopo, esso prende il testo stringa dall’enum e lo inserisce in un VI String to Shared Variable (Functions » DSC Module »

Shared Variables » String to Shared Variable).

Link alla pagina:

ni .com/ita l ian infocode: i t6ktd

Q u a n d o l e n o s t r e p a g i n e n o n b a s t a n o, l ' e n o r m e s e r b ato i o d e l we b p u ò d a r e

u n a m a n o. S u u n a r i v i s t a c a r t a c e a , a n c h e l a p i ù vo l u m i n o s a , s a r e b b e i m p o s s i b i l e

t r at t a r e p e r e s te s o t u t t i g l i a r g o m e n t i r e l at i v i a L a b V I E W. I n m o l t i c a s i , t u t t av i a ,

s u l we b s o n o d i s p o n i b i l i a r t i c o l i e s a u s t i v i o a l t r i d o c u m e n t i , a c u i r i m a n d i a m o i

l e t to r i i n te r e s s at i .

a c

ura

di

Ma

tte

o F

oin

i

33

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

Incollate immagini fra loro in LabVIEW con il Vision Development Module

Potete usare LabVIEW e il Vision Development Module per incollare fra loro due due immagini in una sola immagine. Non

esiste alcun VI predefinito a tale scopo, ma non è troppo complicato. Questo VI mostra come farlo, in modo che possiate

incollare fra loro tutte le immagini che volete. Fondamentalmente, guardate la risoluzione di ogni immagine nella direzione

in cui volete incollarla e le sommate. Per esempio, se volete incollare due immagini fra loro in orizzontale, dovete sommare

le loro risoluzioni lungo X. Potete ottenere questa informazione usando il VI IMAQGetImagesize. Poi dovete creare

un’immagine di destinazione e impostarne le dimensioni sulla base di quelle che avete calcolato. Idealmente, se incollate

orizzontalmente dovreste avere due immagini della stessa dimensione lungo Y (della stessa dimensione lungo X se incollate

verticalmente). Potete usare il VI IMAQ SetImagesize per preimpostare l’immagine in modo che abbia le dimensioni

dell’immagine incollata. A questo punto, potete usare IMAQ ImagetoImage per mettere i dati provenienti da ciascuna delle

immagini originali nell’immagine di destinazione. Questo VI vi permette di specificare un offset, quindi potete usare le

dimensioni delle immagini originali per impostare l’offset.

Link alla pagina:

ni .com/ita l ian infocode: i t6ktd

Creare file di configurazione (.INI) per i vostri VI LabVIEW

Potete creare file di testo contenenti informazioni sulle impostazioni dei controlli presenti nei vostri VI. Esiste una palette

con VI che scrivono e leggono questi file di configurazione e applicano le impostazioni ai vostri controlli e indicatori. Questi

file sono utili perché consentono agli utenti di memorizzare valori di default per ogni controllo nel VI esternamente al VI

stesso. Spesso i VI possono essere molto complicati, con numerosi controlli. Non è pratico richiedere all’utente di impostare

ogni valore ogni volta prima dell’esecuzione. I file di configurazione vi permettono di salvare le impostazioni e di caricarle

facilmente nel vostro VI. Potete anche memorizzare più file di configurazione. Ciò può essere utile se avete molti diversi modi

operativi e dovete salvare le impostazioni dei vostri controlli per ogni modo operativo.

Link alla pagina:

ni .com/ita l ian infocode: i t6ktd

Gioco Snake creato in LabVIEW

Questo VI d’esempio usa il classico gioco Snake per mostrare l’interazione rapida tra l’interfaccia utente e il codice in

LabVIEW. Questo è un modo divertente per scoprire come funziona LabVIEW. Eseguite ‘Snake.vi’ per lanciare il gioco

principale. Controllate lo schema a blocchi in modalità di esecuzione per seguire la progressione del codice durante il gioco.

Buon divertimento!!

Link alla pagina:

ni .com/ita l ian infocode: i t6ktd

Utilizzare Variant per passare più tipi di dato in una singola coda

ni .com/ita l ian infocode: i t6ktd

Spesso, quando si usano code con un’architettura di tipo produttore/consumatore (o con un altro utilizzo), è necessario

essere in grado di passare più tipi di dato attraverso la coda. Tuttavia, a causa dei limiti delle code in LabVIEW, lungo una

particolare coda è possibile passare un solo tipo di dato. Pertanto, ogni coda deve essere definita esplicitamente. Se vi

occorre passare tipi di dato differenti in base alla situazione, ciò può rappresentare un problema. Un modo per risolverlo può

essere l’uso di un cluster, facendo passare tutte le possibili informazioni rilevanti ad ogni iterazione. Ciò funzionerebbe, ma

non sarebbe molto efficiente. Un modo preferibile per risolvere il problema è quello di usare i variant.

Link alla pagina:

34

11

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

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

Inviato: Lunedì 13 Luglio 2009

Ed eccoci tornati on-line anche col sito, rinnovato dopo un periodo di

transizione.

Le differenze col passato sono molte ma posso riassumere le più

importanti in:

• Nuovo servizio di hosting, nuovo server più potente ed affidabile,

l’utilizzo di ILVG.it dovrebbe essere più semplice e veloce ora;

• Nuova piattaforma per il sito, siamo passati a Wordpress;

• Rifacimento totale del sito, nuova grafica, sezioni, contenuti.

L’ultimo punto è ancora aperto, ci stiamo lavorando ancora, ma

abbiamo deciso di mettere on-line lo stesso il sito capendo che la

natura di ILVG.it è ‘viva’ ed è quindi impossibile fissare un formato,

uno stile, un modo di comunicare e condividere le cose che possa

sopravvivere in eterno (o anche solo una settimana).

Come noterete infatti alcune sezioni del ‘vecchio’ sito non ci sono più,

alcune le stiamo ‘migrando’, altre le trasformeremo, altre invece

spariranno.

Questo significa che vedrete modifiche continue al sito che però

speriamo siano sempre migliorative per tutti Voi.

Anche la scelta della nuova piattaforma (Wordpress) è stata dettata

dalla necessità di avere un mezzo che ci permettesse in maniera

semplice, efficace e veloce di comunicare con chi ILVG.it lo usa,

volevamo svincolarci il più possibile dalla gestione tecnica del sito per

poterci concentrare maggiormente sui contenuti.

La piattaforma permette anche una comunicazione ‘alla pari’ dando

la possibilità a tutti di inserire commenti a ogni sezione, documento o

link che sia.

Anche questo post di ‘bentornati’ è commentabile, anzi mi piacerebbe

molto raccogliere i commenti di tutti Voi.

Ciao e grazie per la pazienza

Alessandro Ricco

And we’re back! – rinnovato il sito ILVG.it

Inviato: Lun Mag 07, 2007 4:42 pm

Buongiorno a tutti,

a breve dovrò affrontare il problema di prelevare un segnale TTL dal

mio PC, per inviare un trigger a degli strumenti esterni al PC.

Sono quasi sicuro che questo si possa fare attraverso un pin della

porta parallela (che ha già la tensione 0 - 5 V, mentre la seriale no),

trasformando il cavo parallelo in BNC.

E’ possibile gestire singolarmente i pin della parallela da LabVIEW?

Qualcuno di voi ha già affrontato il problema?

Consigli?

Grazie

Ecco qui: download.php?id=956

In ogni caso questo argomento è stato trattato più volte nel forum...

prova a fare una ricerca con la parola ‘parallela’ oppure ‘lpt’

Ciao... Ciao...

linux 120

Salve,

io ho esattamente lo stesso problema riportato qui qualche anno fa

da Luigi15: devo inviare un segnale di trigger 0-5V ad una scheda

tramite la porta parallela (precisamente adattatore USB/parallela).

Ho LabVIEW 8.5 e WindowsXP.

Purtroppo il link nella risposta non è più attivo.

Qualcuno sa qual è il nuovo link o ha qualche nuovo suggerimento?

Sto cercando nel forum tutti gli argomenti relativi a parallela e LPT

ma ancora non ne sono venuta a capo.

Grazie

phys45

Se cerchi tra gli esempi di LabVIEW scrivendo Parallel, trovi un

esempio che ti dice come pilotare la porta parallela, il significato di

ogni canale e la descrizione di ogni pin... ma ciao!

gepponline

Grazie mille, il programma sembra semplice, adesso il problema è

che non riesco a determinare l'indirizzo della mia porta parallela

utilizzando un adattatore USB.

Ho letto che altri utenti hanno avuto questo problema, ma non ho

letto di soluzioni.

Per caso c'è stato qualche aggiornamento negli ultimi tempi?

E’ possibile da LV 8.5 sapere l'indirizzo decimale della porta LPT

(utilizzando un VISA magari)?

Grazie ancora

Grazie mille, il programma sembra semplice, adesso il problema è

che non riesco a determinare l'indirizzo della mia porta parallela

utilizzando un adattatore USB.

Ho letto che altri utenti hanno avuto questo problema, ma non ho

letto di soluzioni.

Per caso c'è stato qualche aggiornamento negli ultimi tempi?

E’ possibile da LV 8.5 sapere l'indirizzo decimale della porta LPT

(utilizzando un VISA magari)?

Grazie ancora

phys75 Luigi15

Segnale TTL da porta parallela

35

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

Assegnare path assoluti

Inviato: Ciao,

ho due VI che comunicano attraverso delle car telle

condivise.

Vorrei assegnare i path a tali car telle in modo da non

doverle inserire ogni volta che apro i VI.

Come posso fare? Ho letto qualcosa su Absolute path

ma non ho capito come fare...

Avete dei suggerimenti?

Grazie

fede

Cosa intendi per path relative? Le due applicazioni

girano sullo stesso PC e la directory condivisa è in

locale o le applicazioni girano su PC differenti e la

car tella condivisa è una car tella di rete?

Ricky

Scusa, ti ho risposto parlando di path relativi, mentre

tu chiedevi di path assoluti. Comunque esistono delle

costanti che ti permettono di risalire alle path in modo

dinamico, attento però che alcune di queste cambiano

in base allo stato dell 'applicazione. Se gira in debug

avranno un valore, mentre se gira come eseguibile

cambiano valore. Quindi attenzione a quale costante

usi!

Tutte le costanti le trovi nella Functions palete --->

Programming ---> File I/O ---> File Constants

Ricky

Re: Assegnare path assoluti

1) metodo un po' grezzo: memorizza i path come

default nel controllo.

Scrivi il path nel controllo poi tasto dx del mouse e

scegli "data operation" -> "make current value

default". Salva il VI.

2) scrivi il path in un file di testo e caricalo da quel file

quando avvii il Tuo VI.

Bye

paracarro

Ciao,

mi spiego meglio...

Ho un VI eseguibile su un PC mentre l 'altro VI è

richiamato da TestStand e comunicano attraverso 4

car telle di rete condivise...

fede

Penso che il secondo metodo indicato da Paracarro sia

quello più efficiente e flessibile...

Ciao.

Riccardo Ghiani

Analista Programmatore

Software Projects

www.softwareprojects.it

Ricky

fede

michel le83

Acquisizione dati

Inviato: Gio Giu 25, 2009 3:40 pm

Ciao a tutti,

scusate se uso la sezione programmazione per chiedervi

questa info:

vorrei sapere dove posso trovare informazioni dettagliate

sulle tecniche di acquisizioni dati e interfacciamento e

magari i dispositivi più all'avanguardia e più utilizzati

attualmente. Ah un'altra cosa: avreste qualche libro in

particolare da consigliarmi? Per favore aiutatemi.

Grazie mille

michelle83

Ciao,

la domanda che poni non è né facile né tantomeno di

veloce risposta.

Le tecniche di acquisizione dati dipendono dal sistema di

acquisizione che devi implementare (se devi fare un

monitoring di una temp. ambientale per un anno o se

vuoi acquisire una forma d'onda a 1 GHz....).

Interfacciamento...cosa intendi?!?

Di dispositivi ce ne sono una marea, sicuramente National

ne produce una vasta gamma, ma di produttori ce ne sono

tanti (anche di diversi tipi di periferiche).

Qualche libro... dato un'occhiata in rete? Di libri non ne

conosco, ma credo che nn ve ne siano molti che ti possano

rispondere.

aris

Innanzitutto grazie per avermi considerato........dato che

temevo un mutismo generale.

Cmq, dovrei raccogliere quanto più materiale possibile sui

dispositivi di acquisizione dati individuarne magari i più

usati attualmente e studiarne un tipo in particolare

(quello che trova maggiori applicazioni per esempio)... Mi

serve per la mia tesi.. Al momento il mio docente non mi

ha assegnato nessuna implementazione... e nessun libro

da cui prendere spunto... Ho fatto diverse ricerche su NI ce

ne sono tanti di dispositivi ma le nozioni ad essi

concernenti mi sembrano poche... avrei bisogno di più

informazioni su di essi.. uffa... sono nel pallone...

Grazie ancora

michelle83

Ciao

36

11

R E P O R T

SEMPRE PIÙ IN ALTO!

Na

dia

Alb

are

llo

Forum Aerospazio e Di fesa 09, dedicato a l le tecnologie innovat ive a suppor to del l ’ inge-

gner ia d i s i s temi nei settor i aerospazio e d i fesa, s i è confermato l ’evento d i r i fer imento

nel settore con 220 par tec ipant i

Uno dei temi affrontati durante il Forum

Aerospazio e Difesa 09, e già discusso nella keynote

di NIDays 09, non poteva che essere la crisi

finanziaria che ha messo il mondo così come lo

conoscevamo in crisi. Attualmente, l’andamento

del JP Morgan’s Global Purchasing Manager’s Index

avvalora questo contesto: nello scorso anno ha

indicato l’inizio della fase di sfiducia e contrazione

negli acquisti, ora segnala un rallentamento

globale e diffuso nelle dinamiche di crescita

industriale. Volgendo per un attimo lo sguardo alle

passate crisi economiche della nostra storia,

emergono, però, nomi di aziende innovative che

hanno fatto fortuna proprio in tempi

insospettabili. Aziende come FedEx, HP e CNN

celebrano il proprio anno di fondazione proprio in

anni di grande recessione; e invenzioni come il

nylon e l’i-pod sono state messe a punto in un

momento in cui il superamento della crisi era stato

affidato all’ideazione e lancio sul mercato di

prodotti che generassero profitto in tempi brevi.

Possibile che i tempi avversi che ci troviamo ad

affrontare oggi possano dare i natali alle

innovazioni di domani? Possibile. Basta volgere lo

sguardo ad alcune applicazioni che promettono di

rivoluzionare il mondo, per esempio nei settori

della ricerca e della medicina per accorgersene.

OCT, l’innovativa tecnica di elaborazione delle

immagini sviluppata dall’università di Kitasato, in

Giappone, e in grado di visualizzare le masse

tumorali con la stessa risoluzione dei microscopi più

avanzati, permette di ottenere risultati clinici molto più

precisi rispetto alle tradizionali, e più invasive, tecniche

di risonanza magnetica o di tomografia a emissione di

positroni. Similmente, anche l’applicazione tutta

italiana di sviluppo di un sistema di regolazione e

controllo per magneti di scansione utilizzati per

muovere il fascio terapeutico nell’acceleratore

medicale del Centro Nazionale di Adroterapia

Oncologica (Cnao) promette di rivoluzionare le

tecniche di terapia oncologica per elevata precisione e

basso livello di invasività. Entrambe le applicazioni

hanno in comune l’utilizzo della piattaforma National

Instruments (LabVIEW e PXI). Ma non solo. In entrambi

i casi possiamo assistere ad un esempio di creatività in

un momento storicamente poco adatto per dare vita

ad idee innovative. Eppure, le applicazioni realizzate

con prodotti NI, in tutti i settori, sfidano l’ovvio,

puntano al nuovo e a migliorare il mondo in cui

viviamo. NI da sempre cerca di offrire piattaforme in

grado di ottenere maggiori risultati con meno risorse e

in tempi sempre più rapidi. Se questi sono fattori

importanti per lo sviluppo di innovazioni, non

possiamo che aspettarci grandi evoluzioni e novità

dalle prossime applicazioni, soprattutto in tempi dove

‘ottimizzazione’ e ‘time-to-market’ sono sempre più

parole chiavi.

Per maggiori informazioni sulle applicazioni realizzate

con prodotti National Instruments, visitate la pagina

web ni.com/solutions/i

Per leggere e scaricare le presentazioni di NIDays 09 e

Forum Aerospazio e Difesa visitate le pagina web

ni.com/italy/nidays e ni.com/italy/aerospace

Quando l’innovazione nasce proprio dalla crisi

umerose le novità della quarta edizione delForum Aerospazio e Difesa dello scorso 28 mag-gio a Roma, patrocinato da Incose Italia

(Capitolo italiano dell'International Council on SystemsEngineering) e dal Capitolo di Roma di Afcea (Associazionedelle Comunicazioni e dell'Elettronica per le Forze Armate).Dopo l’introduzione dell’Ammiraglio Ispettore Capo (aus.)Lucio Accardo e presente in rappresentanza dellaPresidenza del Capitolo di Roma di Afcea, seguita dalla key-note di Pete Zogas, Vice Presidente Sales&Marketing diNational Instruments Corporation, che ha illustrato le sfidedel mercato aerospazio, difesa e telecomunicazioni satelli-tari spaziando sulle possibili soluzioni tecnologiche offertedalla Progettazione Grafica di Sistemi, la tavola rotonda inlingua inglese ha tenuto banco coinvolgendo pubblico erelatori. Nell’ora a disposizione, i partecipanti alla tavolarotonda (Ing. Esposito, Consigliere Onorario di Aiad -

Federazione Aziende Italiane per l’Aerospazio, la Difesa e laSicurezza; Ing. Lisi, Presidente Onorario di Incose Italia, Ing.Hause di Artisan Software; Pete Zogas, SVP NationalInstruments) e il moderatore, il Professor Gaudenzidell’Università di Roma ‘La Sapienza’, si sono concentratisulla molteplicità di nuove tendenze e di cambiamenti com-plessi che il settore si trova ad affrontare, come per esem-pio, la necessità di tecnologie innovative in tempi semprepiù brevi, mercati sempre più competitivi ed una crescentenecessità di flessibilità e capacità di reazione a fronte delleminacce alla sicurezza globale. Per questi e numerosi altrimotivi, le aziende e la ricerca hanno bisogno di giovanitalenti che si lascino attrarre e che apprendano le giustemetodologie per affrontare le sfide utili sia al mondo mili-tare che a quello civile. Tutti i moderatori si sono infatti sof-fermati particolarmente sulle problematiche del mondoaccademico e sulle sfide degli ingegneri di domani.

N

37

11

R E P O R T

o scorso 20 maggio, 40 tra costruttori di mac-chine, progettisti, integratori, ricercatori e pro-duttori di robot che desiderassero esplorare e

approfondire i vantaggi offerti dalla programmazione grafi-ca nell’integrazione di robotica, visione e misura, hannopartecipato all’open day ‘Programmare i robot Kuka trami-te LabVIEW’, con l’obiettivo di imparare a sviluppareun’applicazione robotica completa, comprese le traiettorie,su robot Kuka. Grazie alla Robotics Library per Kuka sviluppata daImagingLab, LabVIEW permette di integrare strettamentevisione e robotica nella progettazione e realizzazione di

macchine automatiche in settori industriali come l’assem-blaggio, il packaging e il collaudo, dimostrando come lascelta di una piattaforma software unica e integrata possanon solo ridurre i tempi di sviluppo ed esemplificare laprogrammazione dei robot in applicazioni avanzate, mapermettere anche di ottenere prestazioni complessivemigliori con un’ottimizzazione sia dei tempi ciclo che dellaflessibilità intrinseca delle macchine automatiche. Roberto Isernia, Technical Maketing Engineer di NationalInstruments Italy ha sottolineato l’importanza dell’integra-zione della piattaforma LabVIEW a vari livelli: “LabVIEW èin grado di supportare il costruttore di macchine nello svi-luppo di sistemi di acquisizione dati o analisi dei segnali,sistemi di visione interfacciabili con robot industriali conun’unica piattaforma. In un unico strumento la possibilitàdi fare fronte alle sfide correnti dei costruttori di macchinee degli ingegneri di test.”

LABVIEW MUOVE KUKA

Na

dia

Alb

are

llo Una giornata d i workshop organizzata da Kuka, ImagingLab e Nat ional Instruments per imparare i rudimenti

del la programmazione graf ica d i robot industr ia l iR

eade

rser

vice

.it

n. 1

159

Rea

ders

ervi

ce.i

t n

. 115

8

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.

L

L’area espositiva ha ospitato ben 26 stazioni presidiate daaltrettante aziende leader del settore ed una poster session,con 17 poster, che ha illustrato applicazioni tecniche realiz-zate con prodotti National Instruments. L’area espositiva hadato modo al visitatore di integrare l’aspetto convegnistico,e più teorico, del Forum, con un’occasione concreta di inte-razione e comunicazione con gli altri utenti finali e integra-tori di sistemi.Al termine della giornata ha avuto luogo la Premiazione perla Miglior Applicazione Aerospazio e Difesa 09. Nella cate-goria Industria si è aggiudicato il premio l’articolo ‘Gestionein LabVIEW Real-Time di un protocollo di scambio dati perbus parallelo proprietario implementato su PXI-7833R’degli autori Adolfo Russo e Gianluigi Ferrara di Mbda. Il pre-mio per la categoria Accademia è stato consegnato aFrancesco Bartolozzi, Alberto De Sanctis, PasqualeDigregorio, Gabriele Mariani, Efer Miotti di Masterspazio(Università di Roma ‘Tor Vergata’), per l’articolo ‘RicevitoreGPS Software Based Implementazione LabVIEW del ModuloAcquisition’.

APPUNTAMENTO AL

VISION FOR MANUFACTURING

LA SFIDA DELL’INNOVAZIONE

Va

leri

o A

less

an

dro

ni

38

11

R E P O R T

Lo scorso 11 g iugno s i è svolta a Mi lano la quar ta ediz ione del la mostra convegno

dedicata a l la tecnologia del la v is ione ar t i f i c ia le, organizzata da Fiera Mi lano Editore

A NIWeek 2009, Nat ional Instruments ha presentato nuovi prodott i sof ist icat i per appl icaz ioni a 360°

Rea

ders

ervi

ce.i

t n

. 117

8

l tema della visione artificiale è sempre molto caldo.Nonostante il periodo di crisi economica che vede coin-volto anche il nostro Paese, il recente convegno Vision for

Manufacturing ha visto la partecipazione di ben 172 utenti spe-cializzati provenienti da vari settori del mondo industriale (ali-mentare, assemblaggio, packaging, macchine utensili, tessile,ecc.), che hanno affollato l’area dimostrativa e le sale convegnodove nell’arco della giornata si sono susseguite le presentazioni– ben dieci – su vari temi tecnici e di mercato.Un’attenzione particolare è stata riservata alla sessione plena-ria. In un’aula, gremita di spettatori, Patrick Schwarzkopf -Segretario Generale di Emva, European Machine VisionAssociation, l’associazione europea della visione – ha illustratoe commentato i risultati relativi al mercato della visione sullabase dei dati raccolti da Emva nella sua ultima indagine di mer-cato 2009.Particolarmente interessante è stata la presentazione dei datirelativi al mercato italiano, frutto della recente indagine cheEmva ha concluso lo scorso mese di Maggio: una prima assolu-ta che ha fornito una fotografia della situazione nazionale non

senza qualche sorpresa. Questa presentazione, così come gli attidelle sessioni tecniche, sono stati pubblicati on line sul sito dedi-cato all’evento (www.ilb2b.it/vm/milano/atti.asp), dando la pos-sibilità, a chi è mancato all’appuntamento, di conoscere gliargomenti trattati durante la giornata.L’evento è stato organizzato da Fiera Milano Editore con il con-tributo delle riviste SdA-Soluzioni di Assemblaggio,Automazione Oggi e Automazione e Strumentazione.Vision for Manufacturing nasce in collaborazione con Imvg -Italian Machine Vision Group, il gruppo di interesse sulla visionein seno ad AIdA, l’Associazione italiana di assemblaggio, e vedeil supporto di Assoautomazione - Associazione ItalianaAutomazione e Misura, appartenente alla Federazione Anie(Confindustria), Siri-Associazione Italiana di Robotica eAutomazione, Polo della Robotica di Genova, nonché il patroci-nio di Emva - European Machine Vision Association.Tra le aziende che hanno contribuito con la loro presenza al suc-cesso dell’edizione di quest’anno, ImagingLab e NationalInstruments Italy. Il prossimo appuntamento ufficiale è per il 2010.

urante la 15a edizione di NIWeek, svoltasi ad Austin(Texas) dal 3 al 7 agosto, National Instruments ha pre-sentato ad oltre 3.000 tecnici e ricercatori nuovi pro-

dotti e tecnologie. James Truchard, presidente, CEO e cofondatore di NI, ha inaugu-rato l’evento spiegando come l’azienda è costantemente impe-gnata a fornire soluzioni reali a problemi reali. In particolare, egliha sottolineato che “LabVIEW, PXI, CompactRIO e altri prodottiNI si sono dimostrati ottimi tool per la programmazione multico-re e Fpga e continueranno ad aiutare i nostri clienti a creare futu-re innovazioni in molteplici aree”.John Graff, vice presidente marketing presso NI ha quindi gestitouna serie di dimostrazioni dal vivo su nuovi prodotti comeLabVIEW 2009, i dispositivi di acquisizione dati multifunzioneSerie X, il software di test real-time VeriStand e la rete di sensoriwireless NI. Graff ha anche citato alcuni clienti che utilizzano pro-dotti NI per ridurre i costi e i tempi di sviluppo. Analog Devices,per esempio, ha ridotto i costi di test di un fattore 10 costruendoil suo sistema di test per microfoni Mems con LabVIEW e stru-mentazione PXI. Animage, un produttore di sistemi di imagingmedicali per uso veterinario ha invece sviluppato un’innovativamacchina di scansione in soli nove mesi, utilizzando LabVIEW e

CompactRIO.Nella seconda giornata, Mike Santori, NI business and techno-logy fellow, ha illustrato diverse nuove tecnologie innovative, conl’aiuto di tecnici NI. Le presentazioni hanno incluso prodotti comeil software NI Real-Time Hypervisor per l’elaborazione parallela emulticore, l’IP Node per LabVIEW FPGA ed un prototipo delnuovo modulo adattatore NI FlexRIO per l’elaborazione di imma-gini Camera Link. Santori ha anche citato una collaborazione conTektronix che riguarda un digitalizzatore ad alta velocità (oltre 10GS/s). Jeff Kodosky, NI business and technology fellow, cofonda-tore di National Instruments e ‘padre di LabVIEW’ è intervenutoosservando che l’innovazione tecnologica è necessaria sia perrisolvere i problemi odierni, sia per assicurare il benessere futurodell’umanità.La terza giornata ha visto l’intervento di un ospite d’eccezione.David Barrett, direttore di Scope (Senior Capstone Program inEngineering) presso l’Olin College, ha illustrato come la roboticapotrebbe essere la prossima tecnologia rivoluzionaria che cam-bierà il mondo. “La proliferazione dei robot è in atto”, egli ha sot-tolineato, “e i robot, per esempio, stanno contribuendo a salvarevite, assistendoci nelle operazioni chirurgiche o sostituendoci inattività pericolose”.

I

Va

leri

o A

less

an

dro

ni

DR

eade

rser

vice

.it

n. 1

179

Prospetti contabili Sede Legale: Via Salvator Rosa, 14 - 20156 MilanoCapitale sociale: 2.803.300,00 I.V.Pubblicazione in adempimento e secondo lemodalità della legge n. 416 del 5 agosto 1981e della legge n. 650 del 23 dicembre 1996

Prospetto di dettaglio dei ricavi relativo al bilancio chiuso al 31/12/2008 ai sensi dell’art. 1, comma 33, del DL 23 ottobre 1996 n. 545, convertito con legge 23 dicembre 1996 n. 650 e successive modificazioni

Voci ricavo Ricavi01 Vendita di copie 131.416,0002 Pubblicità 7.164.779,0003 --- Diretta 6.338.867,0004 --- Tramite concessionaria 825.912,0005 Ricavi da editoria online 0,0009 Ricavi da altra attività editoriale – Vendita Libri 777,0010 Totale voci 01+02+05+09 7.296.972,00

40

11

I N T E R V I S T A

INTERVISTAIl Prof. Enrico Ambrosini è autore del corso'L’Elettronica', edito da Tramontana – RCS Libri S.p.A.Education

D: Ci spieghi da dove nasce l’esigenza di un corsocome 'L’Elettronica' e a quali pubblici si rivolge…

R: L’elettronica è una disciplina in continua evolu-zione e anche il mondo scolastico, nonostante le inevi-tabili spinte alla conservazione, sente questa esigenza.Un corso che da una parte sviluppi i contenuti disci-plinari, per così dire, tradizionali e dall’altra apra ampispazi a software molto diffusi nella realtà industrialeoffre la possibilità di un concreto raccordo tra duemondi, spesso, tra loro poco comunicativi.Il corso è articolato in più volumi ed è concepito pri-mariamente per i trienni ITI ad indirizzo Elettronico,Informatico ed Elettrotecnico. Il primo volume“L’Elettronica Digitale” è comune a tutti gli indirizzi econtiene un DVD che, oltre a molto materiale apposi-tamente concepito per il corso, contiene anche il soft-ware NI Design Suite Circuit 10.1 con NI Multisim e NIUltiboard e NI LabVIEW, il tutto con licenza per usodomestico a fini didattici.

D: Ci illustri i vantaggi di scegliere NI LabVIEW e NIMultisim come piattaforme per la ProgettazioneGrafica di Sistemi e lo sviluppo di circuiti in ambitoaccademico…

R: Multisim offre un approccio alla simulazione cir-cuitale, sia analogica che digitale, molto semplice edintuitivo, sfruttando la documentazione in italiano di-sponibile nel DVD, si può essere operativi in pochiminuti e la disponibilità, al suo interno, di moltissimistrumenti di laboratorio virtuali permette di lavorarecome se si fosse effettivamente in un laboratorio elet-tronico, offrendo agli studenti la possibilità di cono-scere strumentazione che in un laboratorio scolasticonon potranno mai vedere. La presenza poi in Multisimdi MCU, per la cosimulazione dei microcontrollori,offre ulteriori potenzialità di simulazioni di sistemicomplessi anche con questi dispositivi ormai molto dif-fusi. Spiegare poi l’utilità di LabVIEW a chi ci leggecredo sia inutile, importate invece è ribadire la possibi-lità di interazione tra i due programmi, aumentandocosì le potenzialità di entrambi.

D: Come si sposa in termini di valore aggiunto l’u-tilizzo di LabVIEW e Multisim rispetto ad altri ambien-ti tradizionali consolidati in ambito accademico?

R: Credo che LabVIEW nell’ambito dell’insegnamen-to di discipline di tipo sistemico non abbia concorren-ti. La sua possibilità di colloquiare con Multisim e ladisponibilità nello stesso pacchetto di Ultiboard per laprogettazione di PCB offre sicuramente una potenzia-lità globale difficilmente superabile.

D: Quali sono le prospettive di carriera concrete chesi profilano dopo aver terminato i percorsi di studidegli indirizzi ITI considerati? Quali le prospettive nelmercato italiano per gli esperti di LabVIEW?

R: Acquisire in ambito scolastico competenze con-crete di software fortemente radicati nel mondo indu-striale offre sicuramente un valore aggiunto alla sem-plice conoscenza dei contenuti disciplinari delle diver-se discipline scolastiche. La recente introduzione dellapossibilità di acquisire, previo esame, la certificazionedi NI, denominata CLAD, che riconosca ufficialmente leproprie competenze d’uso di LabVIEW, è poi un’ulte-riore occasione per l’inserimento nel mondo dellavoro.

D: In che modo Multisim facilita o velocizza l’acqui-sizione dei concetti chiave dell’elettronica?

R: Multisim permette simulazioni circuitali facili edintuitive, rendendo possibile valutare circuiti complessiche, altrimenti, difficilmente potrebbero esserlo.L’approccio simulato offre anche la possibilità di acce-lerare i tempi di sviluppo di lezioni che nella pratica tra-dizionale potrebbero essere troppo lunghe e farragino-se per i tempi delle realizzazioni pratiche rendendo, nelcontempo, le lezioni stesse più gradevoli ed interessan-ti.

I N T E R V I S T A

read

erse

rvic

e.it

n. 1

182

Chi è Enrico AmbrosiniNato a Bergamo nel 1948. Laureato in ingegneria elettronicapresso il Politecnico di Milano. Docente di Elettronica negliITI. Autore di diversi testi di Elettronica e Sistemi editi dallaCasa Editrice Tramontana. Collabora con l’Università diBergamo nei corsi SSIS, e con l’Università di Brescianell’ambito della Facoltà di Ingegneria.

Il primo volume del corso dedicato all’elettronica digitale eche contiene anche il DVD. I riferimenti sono:

TS 465/W Digitale + DVD

pp. 432 - Euro 27,00

ISBN 978-88-233-1064-3

42

11

E V E N T I

Il portale Service Resource Center è fondamental-mente suddiviso in due parti: l’aggiornamento soft-ware ed i corsi di autoapprendimento.

A partire dal giorno stesso in cui National Instruments iniziala produzione di un nuovo aggiornamento di una delle prin-cipali categorie software, è possibile accedervi tramite duesottogruppi e scaricare l’aggiornamento tramite nome otipologia di prodotto: LabVIEW, LabWindows/CVI,

Measurement Studio, TestStand, DIAdem, ecc.Dall’altra parte del portale, è possibile accedere ad una seriedi corsi di autoapprendimento.Ad oggi sono disponibili più di trenta corsi specifici divisi pertitolo, prodotto o argomento. Ad esempio:• Best Practices for Upgrading

LabVIEW Applications• IVI Fundamentals• Motion SignalsI corsi sono nati con l’obiettivo di essere frequentati in qual-

siasi momento e affrontano argomenti diversi da quelli deicorsi standard frequentabili in aula o presso la vostra azien-da. In futuro, saranno aggiunti nuovi corsi per prodotto edargomento.Tutti i clienti software, preregistrati con un servizio di manu-tenzione attivo (singola licenza, multilicenza VLA o contrat-to software), hanno la possibilità di accedere al ServiceResource Center.

Per registrasi gratuitamente al servizio, occorre selezionareNI ‘My Profile’ dal sito ni.com e creare il proprio profiloinserendo i dati dell’azienda e della licenza software che sipossiede.

SRC - SERVICE RESOURCE CENTER

Ezi

o A

vall

i

Rea

ders

ervi

ce.i

t n

. 116

3

I l S er v ice Resource Center è un por ta le web che permette l ’accesso ad una ser ie d i ser v iz i e benef ic i

per i c l ient i del le l i cenze soft ware d i Nat ional Instruments

Note sull'autoreEzio Avalli è Service Manager Sales Operations di NationalInstruments Italy

I

44

11

A 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

LA FORMAZIONE DI NATIONAL INSTRUMENTS

LABVIEW BASE IMilano: 21-23 settembre

19-21 ottobre16-18 novembre14-17 dicembre

Roma: 28-30 settembre30 novembre-2 dicembre

Padova: 13-15 ottobre

LABVIEW BASE IIMilano: 24-25 settembre

22-23 ottobre11-12 novembre

Roma: 1-2 ottobre3-4 dicembre

Padova: 27-28 ottobre

LABVIEW INTERMEDIATE ITecniche di Design ProfessionaliMilano: 23-25 novembreRoma: 2-4 novembrePadova: 10-12 novembre

LABVIEW INTERMEDIATE IIPrestazione e ConnettivitàMilano: 30 novembre-1 dicembrePadova: 24-25 novembre

LABVIEW ADVANCEDSviluppo di Applicazioni AvanzateMilano: 30 novembre-2 dicembre

LABVIEW E COMPACTRIOFondamenti di SviluppoMilano: 5-7 ottobre

LABVIEW:Acquisizione dati e Condizionamento dei segnaliMilano: Milano: 28-30 settembreRoma: 19-21 ottobre

LABVIEW: Sviluppo di Applicazioni RealTimeMilano: 26-28 ottobrePadova: 1-3 dicembre

TESTSTAND I: IntroduzioneMilano: 11-13 novembre

MISURE ELETTRICHE CON IL SUPPORTO DEL PERSONAL COMPUTERPadova: 7 ottobre

Verificate il calendario aggiornato alla pagina webni.com/training/i

SEDI DEI CORSI

MILANOMilano: 28-30 settembre gli uffici National Instruments Italy srl,Via Anna Kuliscioff 22, 20152 - Tel.: 02-41309217, Fax: 02-41309215Email: [email protected]

PADOVApresso il Centro di Formazione Certificato NI di I.R.S. Srl, Via Vigonovese 81/A, 35127 - Tel.: 049-8705156Fax: 049-7625206 - Email: [email protected]

ROMApresso Pick Center Piazza Marconi 15, 00192Tel.: 02-41309217, Fax: 02-41309215 - Email: [email protected]

NOVITÀ SULLA FORMAZIONE!

CORSI DI FORMAZIONE TEMATICI SULLEMISURE CON L’UTILIZZO DEL PERSONALCOMPUTERNational Instruments ha ampliato l’offerta formativa disponibilecon una serie di corsi orientati alle tematiche dedicate ai metodidi misura tramite l’utilizzo di strumentazione basata su PersonalComputer. Tali corsi hanno l’obiettivo di spiegare le basi teorichedelle diverse misure tramite l’uso di semplici esempi pratici giàsviluppati. I corsi non essendo focalizzati alla programmazione di softwareNI ma esclusivamente alle tematiche possono essere utili comeutile base e/o approfondimento a tutti coloro che sono coinvoltinei processi di misura. Di seguito i dettagli e le date aggiornatedei prossimi corsi in programma.

LA MISURA CON IL SUPPORTO DEL PERSONALCOMPUTERCorso per non esperti di informatica, della durata complessiva didue giorni, dedicato a chi intende sviluppare competenze utili aconfrontarsi con sviluppatori, progettisti di sistemi e fornitori dicomponenti per misura e acquisizione dati. Obiettivo del corso èdi fornire ai partecipanti, responsabili o tecnici di laboratorio edi produzione, le basi per poter affrontare le misure di qualsiasigenere tramite l’utilizzo del PC.

CORSO SPECIALISTICO: MISURE ELETTRICHECON IL SUPPORTO DEL PERSONAL COMPUTER Corso specialistico dedicato a tecnici che necessitano diinformatizzare la misura di grandezze elettriche, siano questespecifiche o generali tramite l’utilizzo del Personal Computer. Ilcorso, della durata di un giorno, è dedicato a tecnici di laboratorioo di produzione, che abbiano già una formazione di base dimisure elettriche e che intendano sfruttare le potenzialità deisistemi di acquisizione dati. Prerequisiti: frequentazione del corsola misura con il supporto del Personal Computer o competenzeequivalenti.

CORSO SPECIALISTICO: MISURETERMOTECNICHE CON IL SUPPORTO DELPERSONAL COMPUTER Dedicato a tecnici che necessitano di informatizzare le misure ditemperatura e termotecniche più in generale, per applicazioninei settori più svariati. Obiettivo del corso è fornire aipartecipanti le conoscenze utili a definire le migliori soluzioniper effettuare misure di temperatura, di umidità, pressione eportata. Il corso, della durata di un giorno, è dedicato a tecnici dilaboratorio o di produzione che intendano sfruttare le

potenzialità dei sistemi di acquisizione dati. Prerequisiti:frequentazione del corso la misura con il supporto del PersonalComputer o competenze equivalenti.

CORSO BASE DI ACUSTICA E VIBRAZIONIQuesto corso ha l’obiettivo di fornire una panoramica delle piùcomuni misure di acustica e vibrazione in modo da fornire lecompetenze di base utili a collaborare o interagire con repartiverticalmente impegnati in questo ambito

CORSO AVANZATO DI ACUSTICA E VIBRAZIONIQuesto corso è la naturale estensione del corso di base ed hal’obiettivo di fornire indicazioni sui più comuni metodi e lecomuni procedure di misura in acustica e vibrazione. Il corso èdedicato a coloro che saranno direttamente coinvolti nelprocesso di misura.

CORSO SPECIALISTICOLa misura con il supporto del Personal ComputerMilano: 17-18 novembrePadova: 5-6 ottobre

CORSO SPECIALISTICOMisure Elettriche con il PCMilano: 19 novembre

CORSO SPECIALISTICOMisure Termotecniche con il PCMilano: 21 novembrePadova: 8 ottobre

LA FORMAZIONE NATIONAL INSTRUMENTS DA OGGI ANCHE ON-LINE!Da oggi i programmi di formazione National Instruments offronoil metodo più efficiente e veloce per incrementare competenze eproduttività nello sviluppo di applicazioni basate sullapiattaforma software/hardware NI anche da remoto. Ipartecipanti potranno accedere alla classe virtuale tramite webed interagire direttamente con l’istruttore e gli altri partecipantial corso. Per partecipare bastano un personal computer e unaconnessione di rete veloce. Ogni giornata ha una durata diquattro ore. Il numero delle giornate di corso dipende dallatipologia prescelta. Di seguito la lista dei nuovi corsi on-lineattualmente disponibili.

LabVIEW Base II online (mattino): 15, 16, 17, 18 settembre

LabVIEW Intermediate I online(pomeriggio): 15, 16, 17 settembre

LabVIEW Base online(pomeriggio): 29, 30 settembre, 1, 2 ottobre

LabWindows/CVI Base I online (pomeriggio): 10, 11, 12, 13 novembre

LabVIEw Real-Time online (mattino): 10, 11, 12, 14 novembre

LabVIEW Base I online (mattino): 24, 25, 25, 27 novembre

TestStand II online (pomeriggio): 24, 25, 26, 17 novembre

LabVIEW Base II online (mattino): 15, 16, 17 dicembre

LabVIEW Intermediate II online (pomeriggio): 14, 15, 16 dicembre

ALTRI APPUNTAMENTI

MOSTRE CONVEGNOIwssc 2009 - International Workshop on Satellite and Space Communications

Siena: 9-11 settembre

C2 – Control and Communication

Mostra-Convegno focalizzata sulle sulle tecnologie piùattuali per l’automazione distribuita, sullacomunicazione a bordo campo e a bordo macchina

Rimini: 23 settembre

LHC Conference

Firenze: 21-25 settembre

European Microwave Week 09

Roma: 28 settembre-2 ottobre

Telecontrollo

Roma: 14-15 ottobre

Focus Embedded

Mostra-Convegno espressamente dedicata al mercatoembedded

Milano: 17 novembre

FIERE DI SETTORE

Microelettronica

Vicenza: 1-3 ottobre

Emo: il mondo della lavorazione dei metalli

Rho (Milano): 5-10 ottobre

SAVE

Verona: 20-22 ottobre

Wireless Congress: Systems & Applications

Monaco (Germania): 21-22 ottobre

Vision

Stoccarda (Germania): 3-5 novembre

Productronica

Monaco (Germania): 10-13 novembre

SPS/IPC/Drives

Norimberga (Germania): 24-26 novembre

Embedded Software Engineering Kongress

Sindelfingen (Germania): 8-10 dicembre

Robotica e Visione Bologna: 8 ottobre, 13 ottobre

Verificate il calendario aggiornato degli eventi NationalInstruments alla pagina web ni.com/italy/eventi

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

45

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

46

11

L 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, oppure inviate il vostro curriculum...

RICERCHIAMO

PERITO ELETTRONICO O INFORMATICO

Affermata Società ricerca giovane perito

elettronico o informatico.

Si occuperà della progettazione e dello

sviluppo di progetti software per sistemi di

controllo nel mondo HVACR. Sono richiesti una

conoscenza minima dei principali linguaggi di

programmazione oppure di LabVIEW.

Possibilità di assunzione a tempo

indeterminato al termine del progetto.

Rif. IT-BWAY-0909

Titolo di studio: diploma.

Tipo contratto: Full Time Temporaneo/A

contratto/A progetto

Sede di lavoro: Padova periferia sud

Data di pubblicazione: 14/07/2009

www.monster.it

PROGRAMMATORE JUNIOR LABVIEW SU FPGA

BluCons S.r.l. è una società di ICT che opera sul

territorio nazionale nella consulenza

specialistica di sistemi sulle più evolute e

diffuse piattaforme tecnologiche.

Collaboriamo con operatori dell’ambito

telecomunicazioni, grandi System Integrator,

utenti finali in differenti settori industriali.

In particolare stiamo ricercando figure

professionali con il profilo di Programmatore

junior LabVIEW su FPGA.

Il candidato ideale ha conoscenze specifiche

del settore, grande capacità organizzativa,

propensione al lavoro di gruppo ed ai rapporti

interpersonali.

Si richiede:

1) Buona conoscenza di Labview su FPGA.

2) Esperienza nella scrittura di Driver.

3) Conoscenza dell’interfacciamento tra

software e hardware. Es: conoscenza Fifo,

registri, DMA

4) Capacità di apprendimento in tempi

rapidi.

Gradita la conoscenza della lingua inglese.

Siamo in grado di garantire interessanti

prospettive di crescita e sviluppo

professionale in funzione del merito

individuale e del raggiungimento degli

obiettivi prefissati.

Il candidato sarà inserito in gruppi di lavoro

ed avrà modo di confrontarsi con un

ambiente stimolante ricco di opportunità di

crescita tecnica e professionale.

Inviare il proprio curriculum citando il

riferimento del presente annuncio e

l’autorizzazione al trattamento dei dati

personali. I candidati selezionati verranno

contattati telefonicamente per un colloquio

presso le nostre sedi.

L'azienda garantisce la parità uomo-donna

per quanto riguarda l'accesso al lavoro sulla

base del D.Lgs. n° 73/2002.

Rif. T0707.

Titolo di studio: diploma.

Tipo contratto: Full Time Temporaneo/A

contratto/A progetto

Sede di lavoro: Milano.

Data di pubblicazione: 08/07/2009

www.monster.it

TEST ENGINEERS Ref. DKIT25948

Our client is looking for a Test Engineer to be

responsible for developing and

implementing various methods of testing

systems and equipment.

Skill Required :

A degree in Engineering or Computer Science

(preferably M.Sc.). Experience with serial-

mass production and mechanical structures.

Good analytical and problem solving skills.

Knowledge of test methodology, planning

and execution; production tests; making

testing equipment for production tests;

automatic reading/tests with i.e. LabVIEW;

programming in LabVIEW and preferably

also C++ and C#.

Contact: [email protected]

Discipline: IT and Telecommunications

Country: based in Denmark

Data di pubblicazione: 12/07/2009

www.chronosconsulting.com

APPLICATION ENGINEER - STAGE

La figura dell’AE all’interno di National

Instruments è finalizzata a fornire supporto

tecnico alla forza vendite (pre-vendita) ed al

cliente (post-vendita).

Lo stage proposto è finalizzato ad acquisire

una completa confidenza con soluzioni

software (es. LabVIEW) e hardware (es.

Schede DAQ, Sistemi di condizionamento

segnali, PXI Bus, strumenti di misura on-

board) in continua evoluzione, e conoscere

pertanto un’ampia gamma di soluzioni

proposte nel mondo del test, collaudo e

misura. Lo stage è anche mirato a dare al

NOVITA’!!

Dal mese di luglio ILVG ha rinnovato la propria home page, e tra le novità è stata riorganizzata anche la sezione “Lavorare con LabVIEW”, rag-

gruppando innanzitutto le inserzioni in ‘Offerte’ (Offri la tua esperienza? Cerchi lavoro? Metti qui la tua inserzione!) e ‘Ricerche’ (ricerche di

lavoro dalle aziende). Ora è quindi possibile proporsi come candidati, sia per neolaureati che conoscano LabVIEW, sia per chi abbia già matu-

rato esperienze lavorative basate su LabVIEW, oppure cercare inserzioni di lavoro inserite da aziende interessate a programmatori LabVIEW.

Visita anche tu la nuova sezione sul sito www.ilvg.it, candidati o pubblica l’inserzione della tua azienda: più la comunità sarà attiva, mag-

giore l’interesse generato!

47

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

tirocinante un’esperienza importante nella

collaborazione e interazione con i propri

colleghi.

Il candidato verrà inserito completamente

nell’ambiente lavorativo sotto tutti i suoi

aspetti, sarà quindi, informato di tutte le

procedure interne alle quali ognuno di noi è

quotidianamente sottoposto: gestione

interna, amministrativa e comportamentale.

Durante il suo inserimento nella divisione

del supporto tecnico verranno anche

valutate le sue performance e riferiti tutti i

suggerimenti tecnici di approfondimento e

gestionali del cliente.

Il tirocinio sarà articolato in fasi ben

specifiche, che permetteranno al candidato

di raggiungere alla fine del periodo una

piena autonomia.

Qualora sia interessato a questo tirocinio, la

invitiamo a presentare il curriculum vitae

autorizzando il trattamento dei propri dati

personali in conformità alla normativa

prevista dal Dlgs. 196/2003 ai fini delle

esigenze di cui alla presente selezione

condotta da National Instruments Italy S.r.l.

Autorizzare altresì la Nostra società a

comunicare, per finalità di selezione, i

propri dati personali anche a società che

effettuano selezione per Nostro conto,

nonché a clienti o fornitori di National

Instruments Italy S.r.l., direttamente a:

National Instruments Italy S.r.l.

Risorse Umane - via A. Kuliscioff 22 - 20152

Milano

Fax 02/41309215 - E-mail: [email protected]

Tipo contratto: stage

Sede di lavoro: Milano Ovest

Data di pubblicazione: 19/06/2009

www.ni.com/italy

VERIFICA & VALIDAZIONE COMPONENTI

ELETTRONICI

Intecs S.p.A., nata nel 1974, opera nel

mercato dei sistemi tecnologicamente

all'avanguardia. Progetta e realizza sistemi

elettronici complessi per le maggiori

organizzazioni europee nei mercati Difesa,

Spazio e Civile. INTECS è all'avanguardia nel

mercato del software, dove innovazione e

qualità sono essenziali per determinare il

successo dell'azienda. INTECS è una PMI

privata italiana con circa 400 dipendenti. La

sede centrale è situata a Roma ed altre sedi

operative sono presenti a Pisa, Napoli,

Milano, Torino e Tolosa (Francia).

Più dell'80% dei dipendenti possiede una

laurea in Ingegneria, Informatica o altre

discipline scientifiche. Intecs ricerca per Torino

1 risorsa per attività di Verifica & Validazione

Componenti Elettronici Automotive

Requisiti fondamentali:

- Laurea in Ingegneria Elettronica/Ingegneria

Informatica/Informatica o cultura equivalente

- Pregressa esperienza di Verifica &

Validazione di componenti Elettronici in

ambito Automotive

- Conoscenza del linguaggio C Embedded

- Conoscenza LIN bus e CAN Bus

- Conoscenza K-line

- Conoscenza Protocolli di diagnosi

automotive KWP2000 -UDS

- Utilizzo CANoe

- Utilizzo LabVIEW

- Capacità ed esperienza nella produzione di

documentazione quale Test plan e Test

report.

Si invitano i/le candidati/e interessati/e ad

inviare un curriculum vitae dettagliato e

aggiornato in formato Word o PDF dal quale si

evincano: esperienze professionali ben

descritte, ruolo ricoperto, ambienti tecnologici

conosciuti, strumenti utilizzati (linguaggi di

programmazione, sistemi operativi, tool, etc.),

attuale inquadramento contrattuale (tipo di

contratto, livello di inquadramento,

retribuzione). Verranno prese in considerazione

solo le candidature in possesso dei requisiti

fondamentali richiesti. La tipologia di contratto

e la retribuzione saranno commisurate alle

efffettive esperienze e competenze maturate

dai candidati. Invitiamo inoltre I/Le candidati/e

interessati/e ad inserire il proprio curriculum

vitae e a compilare il form che si trova sul ns.

sito http://www.intecs.it / alla sezione Job.

Tipo contratto: Contratto a tempo determi-

nato/indeterminato

Sede di lavoro: Torino

Data di pubblicazione: 17/07/2009

www.monster.it

NEOLAUREATI ING

INFORMATICA/ELETTRONICA/TELECOMUNICAZ

IONI/ CON CONOSCENZA/ANSI C E/O C++

Intecs S.p.A., nata nel 1974, ricerca

per Napoli Neolaureati

Ingegneria/Informatica/Elettronica/Telecomu

nicazioni/Informatica con buona conoscenza di

Ansi C e/o C++ per attività di sviluppo di tool per

l'automazione dei processi di Verifica e

Validazione oppure per attività di definizione,

progettazione, esecuzione e report dei test di

integrazione Sw-Sw e Hw-Sw.

Requisiti fondamentali:

- Laurea (Specialistica o Dottorato) in

Informatica, Ingegneria Elettronica,

Telecomunicazioni, Informatica o in Fisica

- Buona conoscenza del linguaggio

Ansi C e/o C++

- Buona conoscenza di UML

- Buona conoscenza di Windows fino a Vista

e/o delle principali distribuzioni di Linux

- Buona conoscenza dei Data Base relazionali

E' inoltre gradita (ma non indispensabile) la

conoscenza di:

- Protocolli TCP/IP

- LabVIEW

- Elettronica Digitale

-Strumentazione da laboratorio (oscilloscopi,

analizzatori stati logici,

tester, etc.)

E' richiesta la disponibilità a fare straordinari.

Richiesta disponibilità immediata. Invitiamo

inoltre I/Le candidati/e interessati/e ad

inserire il proprio curriculum vitae e a

compilare il form che si trova sul ns. sito

http://www.intecs.it / alla sezione Job.

Sede di lavoro: Napoli.

Tipo contratto: temporaneo/a contratto/a

progetto

Data di pubblicazione: 17/07/2009

www.monster.it

11

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

Corrado Minnella 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 Direzione Tecnica • [email protected]

Redazione - tel: 02 366092.527-514

[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

produzione Tina Liati Impaginazione

Franco Tedeschi Coordinamento grafici - [email protected]

Alberto Decari Coordinamento DTP - [email protected]

Grafiche Sima Ciserano - BG - Stampa

Rosy Passarelli Ufficio Traffico - [email protected]

tel. 02366092 232 - fax: 02 366092 255

Pubblicità Giuseppe De Gasperis Sales Manager

[email protected] - tel. 02366092 523 - fax: 02 366092 524

Agenti Italia:

PIEMONTE, LIGURIA, VALLE D'AOSTA • R. Romeo/Publikappa •

tel: 011-723406 • fax: 011-723.406 • cell 335-5304196

VENETO, TRENTINO ALTO ADIGE,

FRIULI VENEZIA GIULIA • Idelfonso Elburgo •

tel: 049-8642.988 • fax: 049-8642989 • cell 328-8855203

International Sales

U.K.-SCANDINAVIA - OLANDA - BELGIO

The Huson European Media • Gerry Rhoades-Brown •

tel: +44-1932-564999 • fax: +44-1932-564998

SWITZERLAND:

Iff media ag • Carla Widmer •

tel: +41-52-6330888 • fax: +41-52-6330899

GERMANIA e AUSTRIA: Mediaagentur • Adela Ploner •

tel: +49-8131-3669920 • fax: +49-8131-3669929

USA: Huson European Media Usa • Ralph S. Lockwood •

tel: +1-408-8796666 • fax: +1-408-8796669

TAIWAN: Worldwide Services • Stuart Phillips-Laurie •

tel: +886-4-2325-1784 • fax: +886-4-2325-2967

Abbonamenti N. di conto corrente postale per sottoscrizione abbonamenti:

48199749 intestato a: Fiera Milano Editore 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

Fiera Milano Editore è 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

Informativa art. 13, d. lgs 196/2003I dati degli abbonati sono trattati, manualmente ed elettro-nicamente, da Fiera Milano Editore SpA – titolare del tratta-mento – Via Salvatore Rosa 14, Milano - per l’invio della rivi-sta richiesta in abbonamento, attività amministrative edaltre operazioni a ciò strumentali, e per ottemperare anorme di legge o regolamento. Inoltre, solo se è stato espres-so il proprio consenso all’atto della sottoscrizione dell’abbo-namento, Fiera Milano Editore SpA potrà utilizzare i dati perfinalità di marketing, attività promozionali, offerte commer-ciali, analisi statistiche e ricerche di mercato. Alle medesimecondizioni, i dati potranno, altresì, essere comunicati adaziende terze (elenco disponibile a richiesta a Fiera MilanoEditore SpA) per loro autonomi utilizzi aventi le medesimefinalità. Responsabile del trattamento è: Paola Chiesa.Le categorie di soggetti incaricati del trattamento dei datiper le finalità suddette sono gli addetti alla gestione ammi-nistrativa degli abbonamenti ed alle transazioni e pagamen-ti connessi, alla confezione e spedizione del materiale edito-riale, al servizio di call center, ai servizi informativi.Ai sensi dell’art. 7, d. lgs 196/2003 si possono esercitare irelativi diritti, fra cui consultare, modificare, cancellare i datiod opporsi al loro utilizzo per fini di comunicazione com-merciale interattiva rivolgendosi a Fiera Milano Editore SpA– Servizio Abbonamenti – all’indirizzo sopra indicato. Pressoil titolare è disponibile elenco completo ed aggiornato deiresponsabili.

Informativa resa ai sensi dell’art. 2, CodiceDeontologico Giornalisti Ai sensi dell’art. 13, d. lgs 196/2003 e dell’art. 2 del CodiceDeontologico dei Giornalisti, Fiera Milano Editore SpA –titolare del trattamento - rende noto che presso i propri loca-li siti in Milano, Via Salvatore Rosa 14, vengono conservatigli archivi di dati personali e di immagini fotografiche cui igiornalisti, praticanti e pubblicisti che collaborano con letestate edite dal predetto titolare attingono nello svolgi-mento della propria attività giornalistica per le finalità diinformazione connesse allo svolgimento della stessa. I sog-getti che possono conoscere i predetti dati sono esclusiva-mente i predetti professionisti, nonché gli addetti prepostialla stampa ed alla realizzazione editoriale delle testate. Idati personali presenti negli articoli editoriali e tratti dai pre-detti archivi sono diffusi al pubblico. Ai sensi dell’art. 7, d. lgs196/2003 si possono esercitare i relativi diritti, fra cui con-sultare, modificare, cancellare i dati od opporsi al loro utiliz-zo, rivolgendosi al titolare al predetto indirizzo. Si ricordache, ai sensi dell’art. 138, d. lgs 196/2003, non è esercitabi-le il diritto di conoscere l’origine dei dati personali ai sensidell’art. 7, comma 2, lettera a), d. lgs 196/2003, in virtù dellenorme sul segreto professionale, limitatamente alla fontedella notizia. Presso il titolare è disponibile l'elenco comple-to ed aggiornato dei responsabili.

www.labviewworld.it

0236519123

READER SERVICE

Dati sul lettore

Nome

Cognome

Azienda

Indirizzo Azienda

Cap Città

Prov. Nazione

Tel.

Fax

e-mail

Consenso ai sensi dell’art.23 del D.Lgs. n.196 del 30 giugno 2003 (riportati anche sul Vs. sito

www.ilb2b.it), esprimo il consenso a che i dati qui contenuti vengano trattati, comunicati e diffusi da voi

e/o da Vs. aventi causa per l'attività di promozione e diffusione dei Vs. prodotti ed anche messi a dispo-

sizione di operatori qualificati e/o aziende del settore.

Sempre più al passo con i tempi, LabVIEW WORLD è la prima rivista

in Italia a fornirvi il servizio di reader service on line. Ora è possibile rice-

vere maggiori informazioni su prodotti e servizi presentati negli articoli

e/o inserzioni pubblicitarie LabVIEW WORLD semplicemente regi-

strandosi al sito:

WWW.READERSERVICE.IT Compilate la cartolina virtuale e noi provvederemo a inoltrare

tempestivamente la richiesta all'azienda interessata, che invierà

al vostro indirizzo tutta la documentazione disponibile.

In alternativa compilate questa scheda e inviatela al numero di fax:

NUMERO DELLA RIVISTA:

NUMERI DI READER SERVICE

11

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

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

©2008 National Instruments. Tutti i diritti riservati. CompactRIO, LabVIEW, National Instruments, NI e ni.com sono marchi commerciali di National Instruments. Altri prodotti e nomi aziendali citati sono marchi commerciali delle rispettive aziende. 2008-10121-821-122

02 41.309.1>> Scopri come semplificare la tua progettazione embedded

alla pagina web ni.com/embedded/i

Progettazione Embedded.

Più semplice di così...

Preparati ad affrontare il mercato più velocemente con la progettazione grafica di sistemi, un approccio che integra

software grafico aperto e hardware commerciale e che ti permette di progettare in modo iterativo e di implementare

semplicemente e velocemente il tuo progetto sulla piattaforma embedded di National Instruments. Il sistema

NI CompactRIO ti offre una piattaforma ideale per la prototipazione e la produzione in serie grazie a microcontrollore

integrato, RTOS, FPGA programmabile, condizionamento di segnale integrato, I/O modulari e un’integrazione

completa con l’intuitivo software NI LabVIEW.

Strumenti tradizionali di

progettazione di sistemi

Piattaforma di progettazione

grafica di sistemi

readerservice.it n.22313