GOES INDUSTRIAL CREAZIONE E DISTRIBUZIONE

Transcript

GOES INDUSTRIAL CREAZIONE E DISTRIBUZIONE
07
SETTEMBRE
2008
E 5,00
In caso di mancata consegna restituire all’editore che si impegna a pagare la relativa tassa presso il CMP di Roserio - Milano
L A P R I M A R I V I S TA I TA L I A N A P E R L A CO M U N I T À L A BV I E W
LABVIEW
GOES INDUSTRIAL
LE CHANNEL API NI-CAN
CREAZIONE E DISTRIBUZIONE
DELLE APPLICAZIONI
SCENARIO
07
UN INVITO A ESPRIMERSI RIVOLTO
ALLA COMUNITÀ LABVIEW WORLD
IWeek 2008: con un incremento del 23% rispetto all'edizione precedente, quest'anno è
stato toccato un nuovo record di visitatori registrati. Il primo giorno risultavano oltre
2600 iscrizioni, un numero che probabilmente è aumentato nel corso delle giornate
seguenti. Che cosa significa? Le chiavi di lettura possono essere diverse, ma ora vogliamo focalizzarci su una di essere in particolare: voi, utenti di LabVIEW, avete ormai raggiunto le dimensioni di una città, di una folla compatta; o, come direbbero negli Stati Uniti, di una lobby. Una
lobby in grado di influenzare, con il proprio lavoro e la propria ricerca di soluzioni innovative,
ogni aspetto delle vita industriale, scientifica ed anche quotidiana del pianeta. Non pensiamo
di esagerare, perché se ai 2600 iscritti di NIWeek aggiungiamo le centinaia di registrati all'edizione italiana di NIDays, le migliaia di utenti LabVIEW che hanno partecipato ad altri eventi
National Instruments nel mondo e tutti coloro che per qualche motivo non hanno partecipato,
otteniamo un numero davvero impressionante. E' la comunità di LabVIEW, che si organizza, si
esprime e si informa dinamicamente lungo mille canali diversi, ben sintetizzati da Nadia
Albarello nell'articolo che troverete in questo numero.
E, fra questi mille canali, vi è ormai da due anni quello della comunità di LabVIEW World, la
rivista che state sfogliando. Normalmente si dice "Abbiamo fatto una scommessa, abbiamo
vinto" per spiegare il successo di un'iniziativa come questa. Noi preferiamo dire "Sapevamo
che in Italia esisteva una comunità numerosa e motivata, le abbiamo dato voce". Perché non
abbiamo scommesso su una previsione aleatoria, ma su un dato certo: mancava un magazine
dedicato a tutti coloro che ruotano attorno a LabVIEW, il nostro editore ha deciso di colmare
la lacuna.
Che cosa manca ancora per chiudere il cerchio (o il loop, visto che parliamo a tecnici)? Manca
il feedback della comunità, non solo su quello che scriviamo, ma su tutto ciò che succede nel
mondo LabVIEW: eventi e seminari proposti da National Instruments e i suoi partner, ricerche
e altre attività in ambito accademico, progetti realizzati da scuole o singoli ricercatori, e così
via. Il nostro è quindi un invito ad esprimersi rivolto alla comunità LabVIEW World, che ha
sicuramente molte cose da dire e da condividere. Come fare? Le modalità sono numerose. Per
esempio, esistono forum di discussione (a partire da quello di ILVG.it), blog e altri cyberspazi
specializzati dove fare sentire la propria voce. Ed esiste il vecchio sistema che consiste
nel mettere nero su bianco la descrizione della propria applicazione e nello spedire il tutto alla redazione. Nulla verrà scartato: valuteremo tutte le vostre
idee e, le più interessanti, saranno pubblicate. Vi chiediamo solo chiarezza
espositiva e belle immagini. Perché tenere per voi una bella idea quando
potreste condividerla con altre persone che hanno i vostri stessi interessi?
In futuro non mancheranno altre 'piazze' dove presentarvi e raccontare che
cosa state facendo, che cosa vi piacerebbe trovare nella prossima release di
LabVIEW, e così via. Non mancheranno nemmeno sondaggi su aspetti
riguardanti il vostro rapporto con LabVIEW e le vostre proposte per
diffonderne ulteriormente la conoscenza.
N
1
SOMMARIO
07
OGGETTI IN LABVIEW
32 RICHIAMARE
(II PARTE)
LabVIEW permette di accedere ad altre
applicazioni Windows utilizzando le
tecnologie .NET o ActiveX
A ESPRIMERSI RIVOLTO
01 UNALLAINVITO
COMUNITÀ LABVIEW WORLD
Raccontateci le vostre applicazioni…
03 LABVIEW GOES INDUSTRIAL
Parla John Hanks, Vice President
Product Marketing per l'acquisizione
dati ed il controllo industriale
AI VI BLAS
06 INTRODUZIONE
IN LABVIEW
Vediamo come utilizzare la propria
libreria BLAS personale al posto dei VI
installati da LabVIEW
EMBEDDED PER
08 LABVIEW
MICROCONTROLLORI ARM
Un'estensione della piattaforma
grafica consente di programmare
le famiglia ARM7, ARM9 e Cor tex-M3
TUTTO GAS CON L'AUTOMOTIVE
35 AFORUM
2008
Si è svolto a Torino l'evento biennale
dedicato al mercato automotive
COMMUNITY?
36 LABVIEW
SI' GRAZIE
I benefici della membership ai gruppi
di discussione e social network che
ruotano attorno a LabVIEW
TEST
37 AUTOMATED
SUMMIT 2008
Il convegno sul test automatizzato
si è riproposto nella sua 5a
38 DALLA CARTA AL WEB
Link ad ar ticoli di approfondimento
e altri documenti disponibili sul web
10 LA CHANNEL API NI-CAN
40 LA VOCE DEGLI UTENTI
PER L'ELABORAZIONE DI
18 LABVIEW
SEGNALI ECG
SUCCESSO PER BIAS
42 GRANDE
E VISION FOR MANUFACTURING
Spieghiamo i fondamenti della
Channel API per il driver NI-CAN
LabVIEW offre un ambiente solido
ed efficiente per l'elaborazione
dei segnali ECG
DI TELERIABILITAZIONE
24 SISTEMA
NU!REHA
La riabilitazione a distanza alla
por tata di personale non esper to
IMPIANTO DI
27 IMOSE:
MOVIMENTAZIONE DI SEMILAVORATI
Un modello hardware di una cella
manifatturiera economicamente
vantaggioso
E DISTRIBUZIONE
30 CREAZIONE
DELLE APPLICAZIONI
Creazione di un'applicazione
stand-alone e di un installer
Ecco alcuni spunti di discussione
apparsi di recente sul Forum di ILVG.it
L'impor tanza di un contatto diretto
con i fornitori non mostra segni di
cedimento
43 APPUNTAMENTI
Oltre ad organizzare propri corsi e
seminari, National Instruments sarà
presente a numerosi eventi
44 INTERVISTA
Il professor Alessandro Ferrero
insegna Misure Elettriche presso
il Politecnico di Milano
46 LABVIEW E LAVORO
Proposte concrete per coloro
che sanno utilizzare LabVIEW
AAA
SEI UN FAN DI LABVIEW?
2
Per il contributo apportato al progetto LabView World, si ringraziano:
Valerio Alessandroni, Lino Fiore, Matteo Bambini, Nadia Albarello,
Matteo Foini, Alessandro Ricco.
Progetto grafico e impaginazione: Bimage.it
ENTRA NELLA NOSTRA COMUNITÀ!
Caro lettore, se ritieni che questa nuova iniziativa LabVIEW World sia un utile strumento per la
tua attività e desideri continuare a rimanere aggiornato sul mondo LabVIEW, collegati alla
pagina http://www.ilb2b.it/labview/lb_world.asp
A TU PER TU
07
LABVIEW
Valerio Alessandroni
“GOES INDUSTRIAL”
L'azienda dispone oggi di due diverse piattaforme: una dedicata al test and measurement,
l'altra per il prototipaggio e la produzione
In quanto Vice President Product Marketing per
l'acquisizione dati ed il controllo industriale, John Hanks ha
la responsabilità di guidare la strategia di prodotto ed il
marketing. Una selle sue principali responsabilità è la collaborazione con il reparto R&D sullo sviluppo di prodotti futuri di acquisizione dati, I/O distribuito e controllo. Nel corso
di NIWeek 2008 abbiamo rivolto alcune domande a John
Hanks.
Perché National Instruments ha deciso di
Dle mosse
: entrare nel mondo industriale e quali sono
dell'azienda verso questo obiettivo?
La risposta alla prima parte della domanda è semplice:
le richieste dei nostri clienti ci hanno portato ad aggiungere prodotti per il controllo industriale. I nostri attuali prodotti
di controllo industriale sono emersi dalla nostra lunga presenza nel campo del test automatizzato. Abbiamo visto la richie-
R:
sta dei clienti di una tecnologia di misura più precisa, di velocità di controllo più elevate e di capacità di analisi più avanzate per le applicazioni industriali. Oggi vediamo la domanda
di capacità di progettazione più custom. I clienti vogliono
poter trarre vantaggio da nuove tecnologie come i Field
Programmable Gate Arrays (FPGA). Con LabVIEW, gli sviluppatori possono ottenere i benefici dei tool di progettazione
grafica di sistema per progettare più velocemente loop di controllo ed eseguire timing ed analisi avanzati che, fino a pochi
anni fa, avrebbero richiesto la progettazione di hardware
customizzato.
Quali sono le caratteristiche principali di
DNational
: LabVIEW 8.6 e degli altri nuovi prodotti
Instruments che li rendono più industriali?
Per esempio, in LabVIEW 8.6 abbiamo introdotto una
serie di blocchi funzione normalmente utilizzati nelle
applicazioni di controllo industriale basate sullo standard IEC
61131-3, come i controllori programmabili (PLC) ed i Programmable Automation Controller (PAC). Questi blocchi funzione
sono stati progettati per applicazioni industriali real-time.
Inoltre, sulla piattaforma CompactRIO FPGA vi sono nuove
caratteristiche come lo Scan Engine, che permette di eseguire un loop di I/O in real-time all'interno dell'FPGA, senza la
necessità di scrivere codice FPGA. Quindi, gli utenti industriali possono facilmente sfruttare la tecnologia degli FPGA nella
piattaforma CompactRIO. Tuttavia, se si vuole programmare
l'FPGA a basso livello, è ancora possibile farlo. Pertanto, si
possono sfruttare le caratteristiche di facilità d'uso ad alto
livello dello Scan Engine, ma rimane la possibilità di lavorare
a basso livello per fare qualche customizzazione.
R:
sarà il prossimo passo di National
D: Quale
Instruments nella direzione industriale?
Fig. 1 - Afferma John Hanks: "Abbiamo oggi una nuova
gamma di soluzioni per il test ed un’offer ta customizzata per le applicazioni industriali, sviluppate intorno alle
capacità offer te dagli FPGA"
Recentemente abbiamo compiuto molti passi interessanti. Per esempio, abbiamo appena introdotto la famiglia di prodotti Single-Board RIO. Ciò significa che si possono
migrare i propri progetti da una piattaforma modulare basata
R:
3
A TU PER TU
07
abbiamo introdotto la nostra versione di un motore con azionamento, attraverso un nostro partner. Il motivo è che i nostri
clienti desiderano acquistare tutti i componenti da National
Instruments ed avere il nostro supporto. Un altro esempio è un
nuovo prodotto HMI che abbiamo rilasciato lo scorso anno e
che è testato e verificato per funzionare con LabVIEW. Quindi,
vediamo continue opportunità per nuove relazioni anche in
futuro.
A questo punto, National Instruments ha
Dle, inclusi
: un'offerta completa per lo spazio industriaLabVIEW 8.6, il Single-Board RIO, prodotti DAQ Ethernet e wireless, telecamere, e così
via. Può citare qualche applicazione concreta che
avete già affrontato e risolto con questi nuovi
prodotti?
Fig. 2 – In parallelo al lancio di LabVIEW 8.6, abbiamo
introdotto otto nuovi prodotti per otto possibili applicazioni
del Single-Board RIO
sulla piattaforma CompactRIO esistente ad na piattaforma
embedded a livello di scheda. Vediamo molti costruttori di macchine e di dispositivi embedded che vogliono utilizzare il
CompactRIO, ma in un altro formato, o che desiderano realizzare il proprio packaging. Per esempio, essi possono avere la
necessità di un packaging IP67, ossia impermeabile, oppure di
inserire il CompactRIO in un packaging militare o aerospaziale
o anche in un packaging a basso costo. Quindi, in parallelo al
lancio di LabVIEW 8.6, abbiamo introdotto otto nuovi prodotti
Single-Board RIO. Inoltre, i prodotti Single-Board RIO hanno tre
connettori per moduli embedded della serie C per l'espansione
degli I/O. Gli stessi moduli di I/O utilizzati per il CompactRIO
possono essere usati anche con il Single-Board RIO.
Un'altra introduzione importante sono dieci nuovi prodotti per
l'acquisizione dati tramite Ethernet e wireless. Vediamo molti
clienti interessati nell'ottimizzazione delle macchine e nel
monitoraggio di macchine e vibrazioni che vogliono la comunicazione Ethernet o wireless. Con Ethernet è possibile eseguire misure ad alta velocità fino a 90 metri dal controllore,
mentre con i prodotti di acquisizione dati Wi-Fi 802.11 la
distanza è di circa 30 metri. In futuro, lavoreremo ad una sincronizzazione molto precisa su Ethernet. E prenderemo in
esame nuove aree e nuovi prodotti che ruoteranno attorno ad
un I/O real-time, deterministico e distribuito su Ethernet".
National Instruments stringerà qualche
Dsettore
: partnership per entrare più facilmente nel
industriale?
Abbiamo già molte partnership che ci aiutano. Per esempio, da molti anni abbiamo relazioni con fornitori di telecamere, motori e azionamenti. Nel corso dell'ultimo anno
R:
4
Un esempio significativo è stato sviluppato da Ventura
Aerospace per Federal Express. Ventura Aerospace ha
sviluppato un nuovo sistema di misura e controllo per la soppressione degli incendi per proteggere i piloti, gli aeromobili, i pacchi ed il cargo. Se l'incendio scoppia mentre un aeromobile è in volo sull'oceano, non vi sono possibilità di atterraggio sicuro. Inoltre, mentre il velivolo cerca di atterrare,
l'incendio peggiora ulteriormente, a causa della maggiore
quantità di ossigeno che è contenuta negli strati più bassi
dell'atmosfera. Il nuovo sistema sviluppato per Federal
Express, che è basato sul Single-Board RIO, migliora nettamente la sicurezza a bordo.
Un'altra applicazione aiuta a sopravvivere i neonati prematuri. I neonati che vengono al mondo troppo presto, infatti, possono non avere appreso il riflesso che li spinge a succhiare,
quindi non riescono a nutrirsi. Una nuova apparecchiatura
fondamentalmente insegna al neonato ad acquisire il riflesso
di succhiare, misurando la pressione fra le sue labbra.
Possiamo trovare altri esempi significativi, per esempio, nelle
acciaierie, negli impianti eolici, nel campo della meccatronica, ecc. Nell'acciaieria Nucor, in particolare, viene utilizzato
CompactRIO per creare un nuovo processo di misura della
temperatura e pesatura delle scorie metalliche che sostituisce alcune operazioni ad alto contenuto di manodopera ed è
molto più sicuro per gli operai. E' stato riportato un miglioramento di dieci volte nell'efficienza d'uso della potenza.
L'azienda utilizza quelli che chiama 'cicli'. Se in un ciclo viene
commesso un errore, è necessario resettare l'impianto, sprecando una grande quantità di energia perché occorre riscaldare nuovamente le scorie.
Un altro comparto particolare dove abbiamo una lunga
esperienza è quello della visione artificiale applicata ai robot.
In questo campo, collaboriamo con ImagingLab, un'azienda
italiana fondata da Ignazio Piacentini, che sta cercando di
interfacciare LabVIEW con robot Mitsubishi e Denso in modo
intercambiabile.
R:
A TU PER TU
National Instruments ha qualche programDcrescita
: ma educativo particolare per promuovere la
dei futuri ingegneri di automazione?
Ne abbiamo molti. A parte la nostra partnership con
Lego, che ha portato ad annunci come Lego Mindstorms
e WeDo, stiamo sponsorizzando l'iniziativa FIRST (For
Inspiration and Recognition of Science and Technology) e la
sua Robotics Competition itinerante negli Stati Uniti. Circa
4000 studenti hanno partecipato al 'Superbowl' dell'ultima
edizione ad Atlanta, ed il numero sta crescendo. Fondata da
Dean Kamen, la FIRST Robotics Competition sfida squadre di
giovani con i loro mentori a risolvere un problema comune in
un arco temporale di sei settimane utilizzando un 'kit di parti'
standard ed un insieme di regole comuni. Le squadre costruiscono robot utilizzando i componenti forniti e li inseriscono in
competizioni progettate da un comitato di ingegneri ed altri
professionisti. FIRST ridefinisce la vincita per questi studenti,
perché essi vengono premiati per l'eccellenza nella progettazione, lo spirito di squadra che hanno dimostrato, la professionalità sportiva e la maturità, e la capacità di superare ostacoli. Ottenere il punteggio più alto è un obiettivo secondario.
Vincere significa costruire partnership durevoli.
Infine, un'altra area di grande interesse per noi è quella dei
veicoli autonomi. In particolare, abbiamo lavorato con Torc ed
R:
il Virginia Polythecnic Institute alla costruzione di un veicolo
capace di viaggiare senza conducente per 60 miglia in un
ambiente urbano. Il veicolo, battezzato Odin, ha vinto il terzo
premio nella gara urbana del Darpa dello scorso anno.
Instruments sta ponendo una granDossia: National
de enfasi sul concetto di Green Engineering,
sull'applicazione di tecniche di misura e controllo per progettare, sviluppare e migliorare prodotti, tecnologie e processi al fine di ottenere
benefici ambientali ed economici. Questo concetto
verrà applicato anche all'automazione industriale?
In qualche modo, le due aree sono simili. In particolare,
stiamo vedendo che le applicazioni industriali stanno
reinvestendo nell'infrastruttura per renderle più efficienti sul
piano energetico e 'verdi'. Per questo motivo, stanno anche
cercando di migliorare la resa e ridurre gli sprechi, per esempio abbassando i costi con l'uso di misure wireless. National
Instruments ha dei tool meravigliosi per prototipare
un'applicazione e renderla più efficiente sul piano energetico.
In molti casi, il nuovo Sinlge-Board RIO ci permette di implementare l'applicazione in modo più conveniente, a bassa
potenza ed efficiente.
R:
Readerser vice.it n. 701
5
W H AT ’ S N E W
07
a cura di Matteo Foini
INTRODUZIONE AI VI BLAS
IN LABVIEW
Questo ar ticolo discute i benefici che si ottengono utilizzando i VI BLAS in LabVIEW
VI BLAS sono una nuova funzionalità di LabVIEW. L’articolo spiega
come utilizzare la vostra libreria
BLAS personale al posto dei VI installati da LabVIEW.
I
CHE COSA SI INTENDE CON BLAS?
Le Basic Linear Algebra Subroutine
(BLAS) sono routine che forniscono
funzioni standard per operazioni vettoriali e matriciali di base. Tali routine
sono classificate nei seguenti gruppi:
• BLAS di livello 1: operazioni vettoriali
• BLAS di livello 2: operazioni matricevettore
• BLAS di livello 3: operazioni matricematrice
Figura 1
Per esempio, dgemm è una funzione
BLAS di livello 3 che calcola il prodotto reale matrice-matrice utilizzando la
seguente espressione:
❋
op (A)
❋
op (B) + ❋
C
dove e ‚ sono scalari,
A, B e C sono matrici,
e op (A) è A o AT.
Rispetto alle funzioni BLAS standard, i
VI BLAS in LabVIEW offrono i seguenti
vantaggi:
Le routine BLAS sono comunemente
utilizzate nello sviluppo di software di
algebra lineare, come avviene per le
librerie LAPACK
(http://it.wikipedia.org/wiki/Lapack).
• API semplificata e concisa per esigenze ingegneristiche
• Controllo della memoria prima dell’esecuzione dei calcoli per evitare
violazioni dello spazio di memoria
CHE COSA SONO I VI BLAS DI NI?
SCEGLIERE FRA I VI BLAS
E I VI DI ALGEBRA LINEARE
I VI BLAS sono una nuova funzionalità
delle versioni Full e Professional di
LabVIEW.
Tali VI offrono un’alternativa agli algoritmi di algebra lineare esistenti in
6
LabVIEW, mettendo a disposizione
un’interfaccia che espone funzionalità
di più basso livello e algoritmi ottimizzati.
Poiché i VI BLAS offrono opzioni flessibili ed elevate prestazioni, potete utilizzarli come blocchi primari in algoritmi di algebra lineare complessi e avan-
zati. LabVIEW mette a disposizione
alcuni VI di algebra lineare di base,
come A x B VI, Dot Product VI e Outer
Product VI. Il vantaggio di utilizzare i VI
BLAS è evidente quando si combinano
più operazioni di algebra lineare.
Ciò riduce la copia dei dati in LabVIEW
e garantisce esecuzioni ottimizzate.
La seguente espressione illustra come
potete combinare tipiche funzioni di
algebra lineare nei VI BLAS:
❋
AT ❋ X + b ❋ Y
dove è scalare, A è una matrice e X
e Y sono vettori.
Con i VI di algebra lineare, vi occorrono cinque diversi VI e funzioni per eseguire questo calcolo, come si vede nello schema a blocchi della fig. 1.
W H AT ’ S N E W
BREVI
Nuovo toolkit LabVIEW
per il test dei ricevitori GPS
Figura 2
Potete sostituire questi cinque VI e funzioni con il VI gemv - Generate MatrixVector Product, come illustrato nello
schema a blocchi della fig. 2.
Quindi, i VI BLAS vi permettono di
semplificare il codice sullo schema a
blocchi. Tuttavia, l’uso dei VI BLAS può
comportare anche degli svantaggi.
Per esempio, l’uso dei VI BLAS richiede
che LabVIEW carichi una nuova libreria, lvblas.dll, in memoria.
Su un target real-time, questa DLL
richiede circa 270 kB. Pertanto, su
sistemi che hanno una memoria limitata, come un controllore NI FP-20xx, è
vantaggioso usare solo i VI di algebra
lineare esistenti.
UTILIZZO DELLE VOSTRE
LIBRERIE BLAS
I VI BLAS richiamano librerie BLAS ben
ottimizzate per offrirvi prestazioni elevate su una varietà di piattaforme.
Potete anche usare i VI BLAS per
richiamare la vostra libreria BLAS
seguendo i passi riportati di seguito.
Consideriamo, per esempio, la funzione dtrmm.
1. Scaricate e unzippate il file blastemplate.zip allegato.
2. Rinominate la vostra libreria statica
BLAS come glapack.lib e sostituite il
file glapack.lib presente nella directory BLAS\blaslapack\gblaslapack
con il nuovo file che avete rinominato.
3. Rinominate il file d’intestazione della vostra libreria BLAS come cblas.h
e sostituite il file cblas.h nella directory BLAS\blaslapack\include con il
nuovo file.
4. Aprite BLAS\LVBLAS\build\win32\
LVBLAS.sln in Visual Studio 2005.
5. Eseguite il build del progetto
LVBLAS in modo da ottenere
lvblas.dll.
6. Sostituite lvblas.dll nella directory
labview\resource con la nuova DLL.
È possibile scaricare l’esempio da:
ni.com/italian - infocode: it59xt
National Instruments ha rilasciato il nuovo NI
GPS Toolkit for LabVIEW, in grado di simulare il
segnale GPS proveniente da più satelliti.
Utilizzando LabVIEW, per creare forme d’onda
in grado di simulare fino a 12 satelliti (codici
C/A nella banda L1), unitamente al generatore
vettoriale di segnali RF NI PXIe-5672, è
possibile testare alcune caratteristiche del
ricevitore quali sensibilità, TTFF (time to first
fix) e accuratezza.
Grazie al nuovo toolkit, è possibile utilizzare un
insieme di forme d’onda GPS simulate e
registrate come soluzione completa e a basso
costo per validare e verificare la progettazione
di un ricevitore. La registrazione via etere dei
segnali GPS, tramite un analizzatore vettoriale
di segnali RF NI PXI-5661 e un preamplificatore NI PXI-5690 (amplificatore a
basso rumore), mostra le stesse interferenze
che un ricevitore presenterebbe realmente
durante la cattura dei segnali GPS. Questi
dispositivi sono in grado di generare segnali
simulati e registrati con l'analizzatore
vettoriale di segnali RF NI PXIe-5672, con
trasmissione continua di forme d’onda GPS da
disco rigido. Utilizzando dischi RAID da 2 TB, è
possibile generare fino a 12,5 minuti di forme
d’onda simulate non ripetitive oppure 25 ore di
segnale continuo GPS registrato, per testare le
modalità di risposta del ricevitore entro una
vasta gamma di possibili condizioni operative.
È possibile combinare il GPS Toolkit con il
Modulation Toolkit per LabVIEW, il software per
la gestione dei test NI TestStand e la
strumentazione modulare RF PXI per una
soluzione completa e a basso costo per i test in
produzione. Poiché la strumentazione modulare
PXI viene definita via software, lo stesso
sistema PXI è in grado di testare dispositivi
wireless che utilizzano altri standard quali RDS,
WiFi, GSM, WCDMA, Bluetooth e DVB.
Readerser vice.it n. 704
SEI UN FAN DI LABVIEW?
ENTRA NELLA NOSTRA COMUNITÀ!
Caro lettore, se ritieni che questa nuova iniziativa
LabVIEW World sia un utile strumento per la tua
attività e desideri continuare a rimanere aggiornato sul mondo LabVIEW, collegati alla pagina
http://www.ilb2b.it/labview/lb_world.asp
Readerser vice.it n. 703
7
W H AT ’ S N E W
07
LABVIEW EMBEDDED
PER MICROCONTROLLORI ARM
Un nuovo LabVIEW Embedded Module consente di programmare le famiglie di microcontrollori
ARM7, ARM9 e Cor tex-M3
ational Instruments ha recentemente introdotto LabVIEW
Embedded Module per Microcontrollori ARM, un’estensione della
piattaforma grafica che consente di
programmare direttamente le famiglie
di microcontrollori ARM7, ARM9 e
Cortex-M3.
ARM è il principale fornitore industriale di processori RISC embedded a 32
bit, con una quota di mercato superiore al 75 per cento e oltre 10
miliardi di dispositivi basati su core
ARM consegnati
fino ad oggi. ARM
concede su licenza
la proprietà intellettuale (IP) a molte delle maggiori società di
semiconduttori
del
mondo, tra cui Analog
Devices, Atmel, Luminary
Micro, NXP, Freescale
Semiconductor, Intel e Texas
Instruments.
N
UN APPROCCIO PIÙ LINEARE
ALLA PROGRAMMAZIONE
LabVIEW Embedded Module per
Microcontrollori ARM consente di programmare oltre 260 microcontrollori di
10 fornitori.
Questo modulo include driver
LabVIEW che permettono di program-
BENEFICI DEI
MICROCONTROLLORI
I microcontrollori sono microprocessori integrati che includono memoria,
periferiche ed interfacce – oltre alla
CPU – su un chip singolo. Ciò li rende
una soluzione conveniente per sistemi
embedded e ideale per applicazioni di
controllo e applicazioni comandate da
interrupt.
I microcontrollori ARM sono utilizzati
in un'ampia gamma di applicazioni, da
beni di consumo diffusi come la Sony
PlayStation 3 a dispositivi industriali e
medicali come lo stimolatore muscolare portatile BIAC.
8
mare graficamente tutti i componenti
del microcontrollore ARM, inclusi gli
I/O analogici e digitali. Il modulo offre
anche capacità di simulazione desktop
per eseguire su un PC desktop, senza
alcun hardware addizionale, i programmi sviluppati per un microcontrollore ARM. Potete anche usare la simulazione desktop con NI Multisim, software interattivo di simulazione e analisi circuitale SPICE, per simulare
l'intera catena di progettazione per un
ambiente completo di simulazione di
sistemi embedded.
Altre caratteristiche del nuovo modulo
includono un wizard di progetto, che
automatizza la configurazione e
l'impostazione generale, per aiutarvi a
creare rapidamente i vostri progetti, e
un interrupt manager, che semplifica la
programmazione gestita via interrupt
impostando il codice LabVIEW in
modo che venga eseguito al verificarsi
di specifici interrupt hardware.
Oltre al software, NI offre due opzioni
di sviluppo: una scheda di valutazione
Keil MCB2370 con un microcontrollore NXP ARM7 o un kit di valutazione
Stellaris LM3S8962 con un microcontrollore Luminary Micro Cortex-M3.
LabVIEW diviene pertanto una piattaforma ideale per gli sviluppatori con
esperienza limitata di programmazione C/C++ che devono sviluppare
applicazioni per microcontrollori basati su ARM; mentre per gli sviluppatori
più esperti, esso offre comunque un
approccio più veloce e lineare alla programmazione.
Readerser vice.it n. 706
TIPS & TECHNIQUES
07
a cura di Matteo Foini
LA CHANNEL API NI-CAN
Spieghiamo i fondamenti della Channel API per il driver NI-CAN, utili per coloro che hanno
appena iniziato a lavorare con NI-CAN 2.0 e successivi
egli ultimi decenni, l’industria automobilistica ha
beneficiato di significativi progressi tecnici, che si
sono tradotti in emissioni ridotte, migliore rendimento dei carburanti, controllo antibloccaggio per i sistemi di
frenatura e molti altri miglioramenti.
Le innovazioni a livello ambientale, di sicurezza e di como-
Il CAN è un bus seriale multidrop a due fili, sul quale i dispositivi connessi alla rete comunicano fra loro.
Il driver NI-CAN mette a disposizione 2 API (Application
Programming Interface) complete, oltre a tool di configurazione e analisi in Measurement & Automation Explorer (MAX). Le
API NI-CAN vi permettono di sviluppare applicazioni personalizzate in base ai vostri requisiti di test e simulazione.
Con la Channel API, potete utilizzare funzioni
di alto livello, ma di semplice impiego, per
accedere ai canali CAN definiti in file di database vettoriali (.dbc) o di database CAN (.ncd)
National Instruments. La Channel API è raccomandata per i principianti del CAN. La Frame
API offre un accesso a basso livello ai bit trasmessi sul bus CAN ed è raccomandata per
utenti più esperti. Questo articolo tratta esclusivamente la Channel API.
La Channel API NI-CAN sfrutta canali CAN
Figura 1 - Modello base di programmazione NI-CAN Channel API in LabVIEW
predefiniti per rendere la programmazione
CAN simile alla programmazione NI-DAQ. Il
dità di guida si sono concretizzate nell’aggiunta di molti modello fondamentale di programmazione per la Channel
nuovi dispositivi elettronici nelle automobili.
API è illustrato nella figura 1.
A metà degli anni ’80, Bosch ha sviluppato il bus Controller
Area Network (CAN) per rispondere alle crescenti esigenze CONFIGURAZIONE DEL CANALE
di comunicazione fra i moduli elettronici delle automobili. Innanzitutto, è necessario definire o importare il canale
Oggi, il CAN è utilizzato anche nei sistemi embedded di CAN. Ciò può essere fatto utilizzando il Measurement and
comunicazione dati in avionica, in applicazioni nautiche e Automation Explorer (MAX), un’utility di configurazione che
permette di installare, testare e configurare la maggior parnumerose altre.
te dei dispositivi NI, incluse le interfacce CAN.
Il MAX può essere usato anche per importare o creare file
di database CAN e include tool addizionali come il CAN bus
monitor e pannelli di test dei canali CAN.
N
IMPORTARE CANALI DA UN FILE DI DATABASE
Figura 2 - Canali CAN in Measurement & Automation Explorer
10
Spesso è conveniente importare canali CAN da file di database. Per importare canali CAN da un file di database vettoriale (.dbc), espandete l’albero Data Neighborhood per
vedere i CAN Channels. Cliccate con il tasto destro su
CAN Channels e selezionate Import from CANdb file.
Questi file di database vengono creati spesso da ingegneri
che progettano i dispositivi CAN. Ora navigate fino a trovare il file di database desiderato. Dopo avere trovato e selezionato il file, potete scegliere se importare tutti i messaggi
TIPS & TECHNIQUES
presenti nel file o selezionare gli specifici canali da importare. Cliccate il pulsante Import e quindi cliccate Done.
I Messaggi e i Canali appaiono ora in MAX sotto CAN
Channels come illustrato nella figura 2. Tali messaggi e
canali possono essere visualizzati ed editati espandendo
l’albero dei messaggi, cliccando con il tasto destro sul canale desiderato e andando alle proprietà. Visualizzando le proprietà di un canale, potete vedere la posizione del canale
all’interno del messaggio nella griglia dei messaggi.
lizzazione, una lettura o scrittura e una funzione di pulizia
finale che libera le risorse (figura 1). Il link fra le funzioni è
il Task. Un Task CAN è una raccolta di Canali CAN che condividono la temporizzazione e la direzione di comunicazione (lettura/scrittura). Un task può comprendere diversi
Messaggi ma devono essere tutti sulla stessa interfaccia
(porta). Questo modello di programmazione è lo stesso indipendentemente dal fatto che stiate lavorando in LabVIEW,
LabWindows/CVI, C/C++ o Visual Basic 6.0.
CREAZIONE DI CANALI IN MEASUREMENT &
AUTOMATION EXPLORER
CAN INIT START
Qualche volta potreste non avere un file di database vettoriale a disposizione. Dovrete quindi creare i canali in MAX.
Iniziate cliccando con il tasto destro su CAN Channels e
selezionando Create Message. Specificate nome, arbitration ID, numero di byte dati e interfaccia di default, quindi
selezionate OK. Ora i singoli canali vengono creati cliccando con il tasto destro sul messaggio e scegliendo Create
Channel. Dovete specificare il nome del canale, il bit di
start, il numero di bit, le informazioni di scalatura e le unità. Notate che una volta specificati i bit di start e il numero
di bit, la griglia in basso a destra indica la posizione del
canale all’interno del messaggio.
Quando cliccate OK, il canale viene mostrato in MAX sotto
il Message. Per creare un altro canale, cliccate nuovamente
con il tasto destro sul messaggio e scegliete Create
Channel. Questa volta, notate che la griglia ha evidenziato
i bit che avete riservato per il canale precedente. Se cercate
di configurare un altro canale per gli stessi bit, vedrete un
indicatore di errore rosso. I passi rimanenti per completare
il messaggio sono uguali a quelli utilizzati per la creazione
dei canali. Potete configurare il messaggio con una combinazione di canali analogici e digitali; potete utilizzare fino a
64 canali digitali di 1 bit ciascuno.
Quando avete la configurazione desiderata del canale, potete salvarla per utilizzarla su altri computer. Cliccate con il
tasto destro su CAN Channels e selezionate Save Channel
Configuration. Questo salva la configurazione come un
file di database CAN (.ncd) National Instruments che può
essere importato in MAX o richiamato direttamente dalla
vostra applicazione usando il driver NI-CAN 2.0 o successivo. Come precedentemente dimostrato per i file di database vettoriali (.dbc), potete importare anche file di database
National Instruments (.ncd) in MAX a partire da una configurazione salvata. A tale scopo, cliccate con il tasto destro
su CAN Channels e selezionate Load Channel
Configuration, navigate fino al file .ncd e selezionate i
messaggi desiderati. Scegliete Load e quindi cliccate
Done; ora i canali appaiono nuovamente in MAX.
FUNZIONI DELLA CHANNEL API
Un programma base NI-CAN comprende una fase di inizia-
CAN Init Start VI: La funzione CAN Init Start inizializza un
elenco di canali come singolo task e inizia la comunicazione
per quel task. La funzione CAN Init Start usa i seguenti parametri d’ingresso (figura 3):
Figura 3 - CAN Init Star t.vi
channel list - Specifica l’elenco dei canali per il task
interface - Specifica l’interfaccia CAN (CAN0, CAN1, ecc.)
da usare per il task.
mode - Specifica la modalità di I/O (direzione del trasferimento dati) da usare per il task.
sample rate - Specifica la frequenza di campionamento
(campioni al secondo) per il trasferimento dati.
CAN READ
Modalità di lettura multiple rendono più semplice la personalizzazione della vostra applicazione. NI-CAN rende disponibili tre modalità di lettura, ciascuna delle quali verrà
descritta nelle sezioni seguenti:
1. Single point
2. Continua
3. Time-stamped
Se la modalità di Init Start è Input, la vostra applicazione deve
chiamare la funzione Read per ottenere campioni. La vostra
applicazione tipicamente chiama la Read in un loop fino a
risultato ottenuto. La funzione di lettura è CAN Read in LabVIEW e nctRead negli altri linguaggi. Il comportamento della
Read dipende dalla frequenza di campionamento (figura 4):
Figura 4 - CAN Read.vi
11
TIPS & TECHNIQUES
07
LETTURA SINGLE POINT
(MODE = INPUT, SAMPLE RATE = 0)
Questa lettura restituisce un singolo campione dal messaggio più recente ricevuto dalla rete. Viene restituito un campione per ogni canale nell’elenco Init Start. Questo modo di
lettura è utile soprattutto quando desiderate accedere velocemente al Messaggio CAN più recente.
Figura 5 - Esempio di Read con frequenza di campionamento = 0
La figura 5 mostra un esempio di Read con frequenza di
campionamento = 0. A, B e C rappresentano i messaggi dei
canali inizializzati. Se non è stato ricevuto alcun messaggio
dall’inizio dell’applicazione, viene restituito il Default Value
in MAX (def), insieme a un messaggio di avvertimento.
specificato dalla frequenza di campionamento. def rappresenta il Default Value in MAX.
TIMESTAMPED READ
(MODE = TIMESTAMPED INPUT)
Il modo timestamped è utile per le applicazioni di test dove
è richiesta la sincronizzazione CAN/DAQ, ma non occorre
un’ulteriore elaborazione dei dati CAN. Se il modo Init Start
è Timestamped Input, la vostra applicazione deve chiamare
la funzione Read Timestamped per ottenere i valori.
La vostra applicazione tipicamente chiama Read
Timestamped in un loop fino a risultato ottenuto. La funzione Read Timestamped restituisce campioni che corrispondono a messaggi ricevuti dalla rete. Per ogni messaggio, viene
restituito un campione associato, insieme a un timestamp
che specifica quando il messaggio è arrivato. Viene restituito un array di campioni timestamped per ogni canale nell’elenco InitStart. La funzione Read Timestamped è CAN
Read in LabVIEW e nctReadTimestamped in altri linguaggi.
La figura 7 illustra un esempio di Read Timestamped. A, B e
LETTURA CONTINUA
(MODE = INPUT, SAMPLE RATE > 0)
Il modo continuo è utile quando desiderate registrare dati
insieme ai dati analogici o digitali provenienti da un dispositivo DAQ. Questa lettura restituisce un array di campioni per
ogni canale nell’elenco Init Start. Ogni volta che trascorre il
tempo specificato, negli array viene inserito un campione dal
messaggio più recente. In altri termini, i campioni sono ripetuti nell’array alla frequenza specificata finché non viene
ricevuto un nuovo messaggio. Il modo continuo è utile quando desiderate registrare dati insieme ai dati analogici o digitali da un dispositivo DAQ. Usando la stessa frequenza di
campionamento dei canali d’ingresso analogico NI-DAQ,
potete confrontare i campioni CAN e DAQ nel tempo.
Figura 7 - Esempio di Read Timestamped
C rappresentano messaggi per i canali inizializzati. At, Bt e
Ct rappresentano gli istanti in cui è stato ricevuto ciascun
messaggio.
CAN WRITE
Modalità multiple di scrittura facilitano la personalizzazione
della vostra applicazione. Sono disponibili 3 modalità di
scrittura per NI-CAN, ciascuna delle quali verrà discussa nel
paragrafo seguente:
1. Single point
2. Continua
3. Time-stamped
Figura 6 - Esempio di Read con frequenza di campionamento > 0
La figura 6 mostra un esempio di Read con frequenza di
campionamento > 0. A, B e C rappresentano i messaggi dei
canali initializzati. ¢t rappresenta il tempo fra i campioni
12
Se la modalità Init Start è Output (o Output Recent), la
vostra applicazione deve chiamare la funzione Write per
mandare i valori in uscita. La vostra applicazione tipicamente chiama la Write in un loop fino a risultato ottenuto. La
funzione Write è CAN Write in LabVIEW e nctWrite in altri
linguaggi. Il comportamento della Write dipende dalla frequenza di campionamento inzializzata (figura 4):
TIPS & TECHNIQUES
dei messaggi come specificato dalla frequenza di campionamento.
Figura 8 - CAN Write.vi
NON-PERIODIC SINGLE POINT WRITE
(MODE = OUTPUT, SAMPLE RATE = 0)
La funzione Write trasmette un messaggio immediatamente
sulla rete. I campioni forniti in scrittura vengono utilizzati
per formare i byte di dati del messaggio. È necessario specificare un campione per ogni canale nella lista Init Start.
SCRITTURA SINGLE POINT
(MODE = OUTPUT RECENT, SAMPLE RATE > 0).
Dovete fornire un singolo campione per ogni canale nella
lista Init Start. A ogni fronte di clock viene trasmesso il messaggio successivo usando il campione più recente che avete fornito. Il modo Output Recent è utile quando avete più
task in esecuzione a velocità differenti, perché potete scrivere campioni per tutti i task in un singolo loop. La figura
11 illustra un esempio di Write con frequenza di campionamento > 0 e modalità Output Recent.
Figura 9 - Esempio di Write con frequenza di campionamento = 0
Per questo comportamento la modalità Init Start deve essere Output (non Output Recent). La figura 9 illustra un esempio di Write con frequenza di campionamento = 0. A, B, C e
D rappresentano i messaggi per i canali inizializzati. Per
ogni Write, i messaggi associati vengono trasmessi il più
velocemente possibile.
SCRITTURA CONTINUA
(MODE = OUTPUT, SAMPLE RATE > 0)
Dovete fornire un array di campioni per ogni canale nella
lista Init Start. Ogni volta che il tempo specificato è trascorso, viene trasmesso il messaggio successivo. Ogni messaggio usa il campione successivo dell’array per formare i byte
di dati del messaggio. In altri termini, i campioni vengono
trasmessi periodicamente dall’array alla rete. Usando la
stessa frequenza di campionamento con i canali NI-DAQ
Analog Output, potete mettere in uscita campioni simultanei CAN e DAQ nel tempo.
La figura 10 illustra un esempio di Write con frequenza di
campionamento > 0 e
modalità
Output. A, B, C
e D rappresentano i messaggi per i canali
inizializzati. ¢t
rappresenta il
Figura 10 - Esempio di Write con frequenza
tempo fra la
di campionamento > 0 e Output Mode
trasmissione
Figura 11 - Esempio di Write con frequenza di
campionamento > 0 e Output Recent Mode
CAN CLEAR
CAN Clear VI: la funzione Clear interrompe la comunicazione e cancella la configurazione. Per ogni task che inizializzate, dovete chiamare una Clear prima di uscire dalla
vostra applicazione. La funzione Clear è CAN Clear in
LabVIEW e nctClear in altri linguaggi.
Figura 12 - CAN Clear.vi
FUNZIONI ADDIZIONALI DELLA CHANNEL API
I paragrafi seguenti forniscono informazioni che potete utilizzare per estendere il modello di programmazione di base.
GET NAMES
Se state sviluppando un’applicazione che verrà utilizzata da
un’altra persona, potreste non volere specificare una lista di
canali fissa nella vostra applicazione. Idealmente, vorrete
che il vostro utente finale selezioni i canali d’interesse da
controlli dell’interfaccia utente. La funzione Get Names
interroga il MAX o un database CAN e restituisce una lista
di tutti i canali o messaggi presenti nel database. Potete
usare questa lista per popolare i controlli dell’interfaccia
utente. Potete quindi selezionare i canali da tali controlli,
13
TIPS & TECHNIQUES
07
evitando di digitare ciascun nome utilizzando la tastiera.
Dopo avere effettuato le selezioni, la vostra applicazione
può passare la lista risultante a Init Start. La funzione Get
Names è CAN Get Names in LabVIEW e nctGetNames in
altri linguaggi.
SYNCHRONIZATION
La Channel API NI-CAN usa RTSI per sincronizzare specifiche unità funzionali su ciascuna scheda. Per le schede CAN,
l’unità funzionale è l’interfaccia (porta). Per le schede DAQ,
l’unità funzionale è una misura specifica, come Analog Input
o Analog Output. Ogni funzione instrada due segnali sulla
connessione RTSI:
· timebase - Specifica un clock comune condiviso da più
schede per evitare la deriva del clock.
· start trigger - Specifica il segnale di start inviato da una
scheda a un’altra per evitare latenze legate alla fase di start
stessa.
SET PROPERTY
Questa funzione vi permette di impostare proprietà della
rete come baud rate, tipo di transceiver e modalità di filtraggio. La funzione Init Start usa l’interfaccia e la configurazione di canale specificate in MAX o nel file di database
CAN. Se dovete cambiare tale configurazione nella vostra
applicazione, non potete usare Init Start, perché la maggior
parte delle proprietà non può essere modificata durante
l’esecuzione del task. Dovete invece usare innanzitutto Init,
quindi impostare la proprietà e iniziare il task.
GET PROPERTY
Questa funzione vi permette di ottenere le proprietà dei
vostri canali, messaggi o rete, inclusi baud rate, ID dei messaggi e fattore di scala dei canali.
SINCRONIZZAZIONE DI SEGNALI CAN E ANALOGICI
PER LA VALIDAZIONE DI DISPOSITIVI
Con l’evoluzione delle applicazioni di test dei dispositivi
CAN, è diventata sempre più evidente la necessità di integrare gli elementi dei sistemi di test come misure di tensione e sensori, controllo di attuatori e I/O discreti. La capacità di sincronizzare le trasmissioni CAN con questi altri elementi è una caratteristica importante di un sistema che
deve assicurare risultati di misura ripetibili.
Vediamo quindi come configurare un sistema che sincronizza i messaggi CAN con misure di acquisizione dati (DAQ)
per ottenere misure simultanee usando la Channel API NICAN. I segnali DAQ e CAN sono confrontati per verificare
che l’unità di controllo elettronica (ECU) stia generando i
corretti messaggi CAN, in base alle misure DAQ.
Per gli ingegneri che realizzano sistemi di test di validazione,
produzione o assistenza per dispositivi basati sul CAN, le piattaforme PXI e PCI di National Instruments sono soluzioni di
14
test e misura in grado di offrire capacità uniche di sincronizzazione dei messaggi CAN di più interfacce di bus con
l’acquisizione dati, come misure di timing analogiche e digitali. A differenza di altre soluzioni di test, le piattaforme PXI e
PCI di National Instruments offrono soluzioni completamente
integrate per la comunicazione CAN e l’acquisizione dati.
Potete progettare un programma che utilizza un loop per
“sincronizzare via software” una varietà di prodotti hardware, perché il CAN e l’hardware DAQ contengono entrambi un timestamp di quando si è verificato un particolare
evento. Tuttavia, senza sincronizzazione dell’hardware, non
vi è alcuna garanzia circa la precisione dei timestamp stessi, a causa della deriva del clock e della latenza di start/stop.
DERIVA DEL CLOCK
Gli oscillatori di clock presentano un’instabilità di frequenza intrinseca, o jitter, normalmente specificata in parti per
milione (ppm). Nel tempo, due clock qualsiasi, se non sono
sincronizzati, si discostano fra loro. Nel caso peggiore, due
oscillatori specificati a 20 MHz ±100 ppm possono scostarsi di 1 ms fra loro in meno di 2 minuti.
Per molte applicazioni di validazione, questi valori di deriva
del clock sono inaccettabili, soprattutto se il collaudo del
dispositivo avviene su lunghi periodi di tempo. Se i due
clock di una scheda DAQ e di una scheda CAN si sono discostati, non potete essere certi che i campioni ottenuti da
ciascuno di essi siano correlati. Per questo motivo, la sincronizzazione del bus RTSI fornisce un impulso di risincronizzazione dal dispositivo DAQ che risincronizza i due clock
ogni 100 millisecondi. Usando questo metodo, le basi tempi delle due schede non differiscono mai più di qualche
microsecondo (10 microsecondi al massimo con i valori citati sopra), minimizzando il problema di deriva del clock in un
sistema di misura.
LATENZA DI START/STOP
Usando la sincronizzazione software, il controllo di avvio e/o
arresto delle funzioni dipende dalla latenza del software.
Poiché in un programma le chiamate delle funzioni devono
essere serializzate, vi sarà una certa latenza fra lo start dell’acquisizione DAQ e lo start dell’acquisizione CAN. Questa
latenza si traduce in una quantità imprevedibile di errore fra
quello che il DAQ considera il campione 0 e quello che il
CAN considera il campione 0. La conseguenza è che i dati
DAQ e CAN non sono correlati nel tempo e quindi non possono essere visualizzati insieme con precisione senza una
manipolazione addizionale dei dati.
REAL-TIME SYSTEM INTEGRATION (RTSI)
Lo chassis PXI incorpora il PXI Trigger bus, con sette linee di
trigger per realizzare sincronizzazioni flessibili fra dispositivi
NI di misura, acquisizione immagini e motion control, nonché moduli d’interfaccia CAN. Uno o più moduli nel sistema
TIPS & TECHNIQUES
possono generare segnali di timing sul backplane, dove
sono disponibili per ciascun modulo presente nel sistema
per la sincronizzazione degli I/O. Poiché il timing è implementato a livello hardware, non occorre che il software
applicativo intervenga nella sincronizzazione degli I/O
quando il sistema è stato inizializzato. Nei sistemi basati su
PCI, le stesse caratteristiche di sincronizzazione sono rese
disponibili dal bus RTSI, che usa un cavo piatto per connettere schede PCI tramite connettori montati superiormente.
forme d’onda degli ingressi sincronizzati da due canali CAN e
due canali d’ingresso analogici (AI). I canali CAN ed AI vengono campionati alla velocità di campionamento specificata.
In questo sistema di test EPAS, l’ECU acquisisce segnali tipo
coppia, tensioni PWM e velocità del veicolo, li inserisce in un
algoritmo di controllo e regola l’uscita dei messaggi CAN
che controllano il motore (figura 14). Per validare
ESEMPIO APPLICATIVO
Per illustrare la sincronizzazione fra CAN e DAQ, consideriamo un test per un controllore di sterzata servoassistito. I sistemi di sterzatura idraulici convenzionali usano una cinghia
accessoria del motore per trascinare una pompa rotante. La
pompa fornisce fluido pressurizzato che aziona un pistone nel
cambio di sterzata o un attuatore per assistere il guidatore
nel girare le ruote. Questo sistema pone costantemente un
piccolo carico sul motore, anche quando il sistema di sterzatura non è in uso. Miglioramenti di questa tecnologia hanno
portato ai sistemi EPAS (electric power-assist steering).
L’EPAS (figura 13) usa un motore elettrico collegato alla colonna o al rack di sterzatura tramite un meccanismo riduttore.
Figura 14 - In questo schema del sistema di acquisizione dati, la
scheda NI PXI-6070E campiona la coppia, la tensione e la velocità che alimentano la ECU sotto test. Il modulo CAN NI PXI-846x
campiona l’uscita in tensione del motore proveniente dalla ECU.
l’algoritmo di controllo EPAS, si possono registrare simultaneamente i messaggi CAN e DAQ, analizzarli e determinare
se viene prodotta l’uscita desiderata del motore.
ESEMPIO DI CODICE LABVIEW
Il seguente esempio mostra la sincronizzazione di CAN e
DAQ utilizzando la API NI-CAN Channel e NI-DAQmx.
Modello base di programmazione
Figura 13 - Schema di un sistema EPAS
(electric power-assist steering)
Questo processo elimina la pompa, i manicotti, il fluidi, la cinghia di trasmissione e le pulegge del sistema servosterzo
idraulico tradizionale. L’azionamento del motore applica una
forza di sterzatura che si aggiunge all’input del guidatore.
L’ECU raccoglie dati come la coppia di sterzatura delle ruote,
la velocità del motore e la posizione del motore e applica un
algoritmo di controllo per gestire il livello di servosterzatura
applicato dal motore. Il sistema servosterzo elettrico è più leggero delle unità idrauliche tradizionali, indipendentemente
dalla velocità del motore, e il sistema assorbe potenza solo
quando fornisce assistenza alla sterzatura, diminuendo i consumi di carburante.
Il modello base di programmazione della sincronizzazione
CAN/DAQ dell’NI-CAN 2.x è molto simile all’API NI-DAQ,
con cui forse avete già familiarità, e si traduce in: configurazione -> lettura/scrittura -> chiusura. Usando questo
modello di programmazione, i dati CAN e DAQ possono
essere facilmente correlati utilizzando sei base di LabVIEW.
Prima di poterli utilizzare in LabVIEW, i canali CAN devono
essere creati in Measurement & Automation Explorer (MAX)
o importati da un file di database vettoriale.
Importazione di canali CAN
Canali CAN esistenti possono essere importati da file di
database vettoriale (.dbc). Per importare i canali, aprite il
MAX e cliccate con il tasto destro su CAN Channels sotto
Data Neighborhood e selezionate Import from CANdb
File. L’area di dialogo elencherà tutti i messaggi disponibili. Cliccando su un messaggio, avrete l’opzione di scegliere
specifici canali all’interno del messaggio. Potete selezionare
i canali che desiderate importare.
CONFIGURAZIONE DEL TIMING DI SISTEMA
L’esempio descritto in questo articolo mostra i grafici delle
Configurazione esplicita dei canali
15
TIPS & TECHNIQUES
07
Figura 15 - Configurazione dei
parametri del Messaggio CAN
Per configurare esplicitamente canali
CAN, aprite il MAX e cliccate con il
tasto destro su CAN Channels sotto
Data Neighborhood. Selezionate
Create Message. Specificate i parametri per il messaggio come illustrato
nella figura 15.
Dopo la creazione, il messaggio viene
indicato sotto CAN Chanznels. Per
creare un canale, cliccate con il tasto
destro sul messaggio che avete creato e
selezionate Create Channel.
Si apre un’area di configurazione simile a quella illustrata in figura 16. Mano
a mano che inserite le informazioni
relative al bit di Start e al numero di
bit, la matrice si riempie con caselle
grigie che indicano i bit già utilizzati
nelle definizioni dei canali.
Le caselle blu indicano i bit in fase di
definizione.
È anche possibile testare i canali CAN
usando il Channel Test Panel. Lo
potete aprire dall’Example Finder
(Help>>Examples>>Hardware Input
and Output>> CAN>>Channel
API>>Synchronization>> Basic>>
DAQmx>>CAN Waveform Input and
DAQmx Waveform Input.vi).
Figura 16 - Configurazione di un
canale CAN
Dopo avere configurato o importato i
canali CAN, il modello di programmazione può essere facilmente implementato in LabVIEW. Il
codice di configurazione CAN, illustrato in figura 17, fornisce i passi essenziali per inizializzare i canali CAN e DAQ in
LabVIEW, usando la Channel API.
Le tre sezioni del
modello verranno
descritte in maggiore
dettaglio. Il primo
elemento del programma, illustrato in
figura 17, comprende i seguenti elementi:
Figura 17 - Le interfacce CAN e DAQ vengono inizializzate e la linea
PXI Trigger viene configurata per i segnali di timing e triggering.
16
• NI-DAQmx Create
(AI Voltage Basic) –
Inizializza e configura i canali DAQmx
• NI-DAQmx Timing
(Sample Clock) –
Configura il clock di campionamento per i canali
• NI-CAN Init – Inizializza un task per la lista di canali specificata.
• NI-CAN Sync Start with NI-DAQ – Definisce l’instradamento
sul bus PXI Trigger del segnale di trigger resync e di altri
segnali di trigger e inizia in modo sincrono le acquisizioni.
Sample Rate specifica il numero di campioni da acquisire
al secondo. Se il sample rate è impostato a 0, avverrà la lettura di un singolo punto. Se il sample rate è maggiore di 0,
avverrà una lettura continua.
Channel List specifica i canali CAN per i quali avverrà la
comunicazione.
Interface specifica la porta CAN utilizzata.
Input Mode specifica i canali letti dalla rete CAN. Altre
opzioni sono output (in scrittura) e timestamped input.
TIPI IN LETTURA E SCRITTURA
• Timestamped (sola lettura)
Gestita a eventi
• Singolo punto
Accesso veloce al Messaggio più recente
Velocità di campionamento = 0
• Continuo
Flusso continuo di dati a intervallo di tempo fisso
Velocità di campionamento > 0
Sono disponibili tre modalità in lettura e due in scrittura,
cosa che facilita la personalizzazione della vostra applicazione. Le misure Single point sono utili quando desiderate un accesso veloce al messaggio CAN più recente. In
modalità singolo punto, un messaggio viene trasmesso/ricevuto solo quando viene chiamata una lettura/scrittura. La modalità Timestamped è utile per applicazioni di test nelle quali è richiesta la sincronizzazione
CAN/DAQ senza ulteriore elaborazione dei dati CAN. In
questa modalità i messaggi CAN vengono registrati con un
timestamp. Se il modulo CAN viene sincronizzato (usando
l’impulso resync) con un modulo DAQ, i dati CAN verranno
correlati direttamente con i dati analogici o digitali timestamped provenienti dal modulo DAQ.
La modalità Continuous è utile quando desiderate registrare dati insieme a dati analogici o digitali da un dispositivo DAQ. I valori CAN vengono ricampionati ad ogni impulso di clock finché non viene ricevuto un nuovo messaggio.
Le reti CAN sono gestite a eventi. Tuttavia, possono esserci
dei casi in cui preferite avere valori CAN continui. In questo
caso, potete usare l’impostazione Continuous su letture e
scritture: i valori CAN sono trasmessi o ricevuti ad ogni colpo di clock. Nel caso in cui la base tempi sia più rapida delle velocità d’ingresso o d’uscita dei messaggi CAN, i messaggi CAN vengono copiati (ricampionati) fino all’arrivo di
un nuovo messaggio.
TIPS & TECHNIQUES
Questa caratteristica è utiDAQ e il valore RPM è rappresentato da
le per registrare dati che
un messaggio CAN. Per validare il comsono correlati a dati DAQ,
portamento del sistema, dovete verificosa comune nelle applicare che venga trasmesso il corretto
cazioni di test CAN/DAQ
messaggio CAN quando la soglia
automotive. In queste
d‘ingresso analogico viene superata.
applicazioni, si utilizza la
Questo processo richiede la capacità di
stessa base tempi per CAN
correlare con precisione i campioni
e DAQ. I dati acquisiti in
ottenuti dall’hardware DAQ e CAN. Il
modalità Continuous posconfronto è rappresentato in figura 19.
Figura 18 - Lettura dei segnali CAN e DAQ
sono essere convertiti in
LV-Waveform-Data-Type.
Come si vede in figura, senza sincronizLa sezione di codice LabVIEW in figura 18 illustra le funzio- zazione c’è un leggero ritardo nell’istante di start dell’ingresni CAN e di lettura analogica sincronizzate attraverso il PXI so analogico NI-DAQmx. Questo leggero offset deriva nel
trigger bus. Poiché la velocità di campionamento è stata fis- tempo e aumenta le differenze fra gli istanti di lettura, perché
sata a 1000, i messaggi CAN sono letti 1000 volte al secon- non vi è alcun controllo per tenerli uniti. Ciò può essere evido (in continua).
tato usando la sincronizzazione, illustrata in figura 20.
• NI-CAN Read - legge campioni da un task CAN.
• NI-DAQmx Read - legge dati da un’acquisizione dati bufferizzata.
• Build Array - concatena più array.
• Align Waveform Timestamps - sostituisce tutti i valori del
timestamp (t0) con il valore dell’indice dell’elemento dell’array.
• Unbundle - controlla lo stato dell’errore.
• NI-CAN Clear with NI-DAQ - cancella i task CAN e DAQ.
RISULTATI
Ciò che si ottiene è un grafico di forma d’onda facilmente
confrontabile con le misure analogiche. Se i campioni DAQ
e CAN sono sincronizzati, è possibile visualizzare le forme
d’onda insieme su un grafico ed osservare la loro relazione
nel tempo. Senza sincronizzazione, questo non è possibile
perché i dati non sono correlati. Nel nostro sistema di test
EPAS, l’ECU invia un nuovo valore RPM sul bus CAN quando viene raggiunta una certa coppia di sterzatura. La coppia
di sterzatura è letta come ingresso analogico dall’hardware
Figura 20 - Acquisizioni DAQ e CAN sincronizzate
Con la corretta sincronizzazione, le vostre letture NI-CAN e
NI-DAQmx possono essere acquisite simultaneamente
durante tutto il test.
CONCLUSIONE
Note sull’autore
Figura 19 - Acquisizioni DAQ e CAN non sincronizzate
Laureato in ingegneria nucleare al Politecnico di Milano, Matteo
Foini lavora in qualità di Technical Marketing Engineer presso
National Instruments Italy
Readerser vice.it n. 711
Potete usare i dati CAN e analogici acquisiti simultaneamente per validare una ECU tramite PXI Trigger bus o RTSI
bus, disponibili rispettivamente per PXI e PCI. Usando la NICAN Channel API in LabVIEW si ottiene un semplice modello di programmazione per completare il programma di sincronizzazione in sei VI. Il confronto può essere eseguito in
grafici di forme d’onda usando la modalità di lettura continua.
17
TIPS & TECHNIQUES
07
S am Shearman
LABVIEW PER L'ELABORAZIONE
DI SEGNALI ECG
Grazie ai toolkit di elaborazione dei segnali, LabVIEW offre un ambiente solido ed efficiente
per risolvere problemi di elaborazione dei segnali ECG
'elettrocardiogramma (ECG) è una tecnica di registrazione delle correnti bioelettriche generate dal cuore.
Esaminando l'ECG, i medici possono valutare le condizioni del cuore di un paziente ed eseguire ulteriori diagnosi.
Le registrazioni ECG sono ottenute campionando le correnti
bioelettriche rilevate da diversi elettrodi o sonde. Nella figura 1 è riportato il tipico tracciato di un ciclo di segnale ECG.
Generalmente, il segnale ECG registrato è spesso contami-
L
rumore, la rilevazione del complesso QRS, l'estrazione della
frequenza cardiaca fetale, ecc. Questo articolo discute
metodi tipici di elaborazione dei segnali ECG basati su
LabVIEW.
PREELABORAZIONE DEI SEGNALI ECG
La preelaborazione dei segnali ECG vi aiuta a rimuovere le
contaminazioni dai segnali ECG stessi. In termini generali,
tali contaminazioni possono essere classificate nelle
seguenti categorie:
• Interferenze sulla linea di alimentazione
• Rumore di contatto
• Fenomeni spuri dovuti al movimento di paziente ed elettrodo
• Rumore elettromiografico (EMG)
• Fluttuazioni della baseline
Fig. 1 - Il tipico tracciato di un ECG monociclo
nato da rumore e fenomeni spuri che possono verificarsi
all'interno della banda di frequenza d'interesse e manifestarsi con caratteristiche simili a quelle del segnale ECG
stesso. Per potere estrarre informazioni utili da segnali ECG
disturbati, è necessario elaborare i segnali ECG grezzi.
L'elaborazione dei segnali ECG può essere suddivisa a grandi linee in due fasi: la preelaborazione, che rimuove o sopprime il rumore dal segnale ECG grezzo, e la successiva
estrazione di informazioni diagnostiche dal segnale ECG
(come illustrato nella figura 2).
Con LabVIEW e i relativi toolkit, come l'Advanced Signal
Processing Toolkit (ASPT) e il Digital Filter Design Toolkit
(DFDT), potete comodamente costruire applicazioni di elaborazione dei segnali per entrambe le fasi, inclusa la rimozione delle fluttuazioni della baseline, la cancellazione del
18
Fra questi rumori, le interferenze sulla linea di alimentazione e le fluttuazioni della baseline sono quelli più significativi, e possono influenzare fortemente l'analisi del segnale
ECG. A parte questi due rumori, altre fonti di rumore possono essere a banda larga e possono seguire normalmente un
complesso processo stocastico, che a sua volta distorce il
segnale ECG. Le interferenze sulla linea di alimentazione
costituiscono un rumore a banda stretta centrata a 60 Hz (o
50 Hz) con una larghezza di banda minore di 1 Hz.
Fig. 2 - Tipico schema di flusso di elaborazione dei segnali ECG
TIPS & TECHNIQUES
Normalmente, l'hardware di acquisizione del segnale ECG
può rimuovere le interferenze sulla linea di alimentazione.
Al contrario, le fluttuazioni della baseline ed altri rumori a
larga banda non possono essere facilmente soppressi dalle
apparecchiature hardware. Invece, un metodo software
risulta essere molto più potente e realizzabile per elaborazioni offline dei segnali ECG. Per rimuovere le fluttuazioni
della baseline ed altri rumori a larga banda potete utilizzare i metodi seguenti.
RIMOZIONE DELLE FLUTTUAZIONI
DELLA BASELINE
Le fluttuazioni della baseline derivano normalmente dalla
respirazione e presentano frequenze comprese fra 0,15 e
0,3 Hz e potete sopprimerle con un filtro digitale passa alto.
Potete anche utilizzare la trasformata wavelet per rimuovere le fluttuazioni della baseline eliminando il trend del
segnale ECG.
1. Filtro digitale
Il LabVIEW DFDT offre un metodo intuitivo e interattivo per
progettare e implementare in modo semplice ed efficace filtri a risposta finita all'impulso (FIR) o a risposta infinita
all'impulso (IIR). Per esempio, potete utilizzare l'Express VI
Classical Filter Design per progettare un filtro FIR passa alto
con finestra di Kaiser per rimuovere le fluttuazioni della
baseline.
La figura 3 illustra un esempio delle specifiche del filtro passa alto e lo schema a blocchi di un VI campione che potete
utilizzare per rimuovere le fluttuazioni della baseline.
2. Trasformata wavelet
Oltre ai filtri digitali, anche la trasformata wavelet è un
metodo efficace per rimuovere segnali all'interno di sottobande specifiche. Il LabVIEW ASPT fornisce il WA Detrend VI
che può rimuovere il trend a bassa frequenza di un segnale. La figura 4 illustra un esempio di rimozione delle fluttuazioni della baseline utilizzando il WA Detrend VI.
Questo esempio utilizza la wavelet
Daubechies6 (db06)
perché tale wavelet è
simile al segnale ECG
reale. Nell'esempio, il
segnale ECG ha una
durata di campionaFig. 4 - Uso del VI WA Detrend per rimuovere le fluttuazioni
della baseline
mento di 60 secondi
e 12000 punti di
campionamento in totale, quindi il livello di trend è 0,5
secondo la seguente equazione:
Dove t è la durata di campionamento e N è il numero di
punti di campionamento.
La figura 5 illustra il segnale ECG originale e i segnali ECG
risultanti elaborati rispettivamente con l'approccio basato
sul filtro digitale e con quello basato sulla trasformata
Fig. 5 - Confronto fra l'approccio basato sul filtro digitale e
l'approccio della trasformata wavelet
Fig. 3 - Progettazione e uso di un filtro passa alto per rimuovere
le fluttuazioni della baseline
wavelet. Potete vedere che i segnali ECG risultanti contengono una scarsa informazione sulle fluttuazioni della baseline però mantengono le caratteristiche principali del segnale ECG originale. Potete anche osservare che l'approccio
basato sulle wavelet è migliore perché non introduce alcuna latenza e provoca una minore distorsione rispetto al filtro digitale.
19
TIPS & TECHNIQUES
07
RIMOZIONE DEL RUMORE A BANDA LARGA
Nonostante gli effetti positivi sulla qualità del segnale risultanti dalla rimozione delle fluttuazioni della baseline, qualche altro tipo di rumore può disturbare l’estrazione di informazioni utili dal segnale ECG. Il rumore potrebbe derivare
da complessi processi stocastici che coinvolgono una banda
ampia, quindi potrebbe non essere rimosso mediante filtri
digitali tradizionali. Per rimuovere i rumori a banda larga,
potete utilizzare l'Express VI Wavelet Denoise.
Questo Express VI scompone in primo luogo il segnale ECG
in più sottobande applicando la trasformata wavelet, quindi modifica ogni coefficiente della wavelet applicando una
funzione di soglia o compressione ed infine ricostruisce il
segnale senza rumore. La figura 6 illustra un esempio di
applicazione della undecimated wavelet transform (UWT) al
segnale ECG.
Fig. 6 - Rimozione dei rumori a banda larga da un segnale ECG
mediante UWT
ESTRAZIONE DELLE COMPONENTI
CARATTERISTICHE DEI SEGNALI ECG
Al fine della diagnosi è spesso necessario estrarre varie
componenti caratteristiche dai dati ECG preelaborati, tra cui
intervalli QRS, ampiezze QRS, intervalli PR, intervalli ST, frequenza cardiaca fetale, ecc. Questo paragrafo discute principalmente il rilevamento del complesso QRS e l'estrazione
dell'ECG fetale.
RILEVAMENTO DEL COMPLESSO QRS
Il rilevamento dei picchi R e, di conseguenza, del complesso
QRS in un segnale ECG offre informazioni sulla frequenza
cardiaca, sulla velocità di conduzione, sulla condizione dei
tessuti all'interno del cuore e su varie anomalie. Esso fornisce un’evidenza per la diagnosi delle malattie cardiache. Per
questo motivo, ha riscosso una notevole attenzione nel
campo dell'elaborazione dei segnali ECG. Tuttavia, la presenza di rumore e la morfologia variabile nel tempo rendono difficoltoso questo rilevamento.
Poiché wavelet opportunamente scelte possono estrarre le
informazioni principali dai segnali rumorosi tramite analisi
multirisoluzione, recentemente sono stati introdotti numerosi metodi di rilevamento basati su wavelet. In questo articolo, per rilevare i punti Q, R e S è stato utilizzato il WA
Multiscale Peak Detection VI presente nel LabVIEW ASPT.
Prima del rilevamento picco/valle, utilizzate l'Express VI
Multiresolution Analysis per scomporre il segnale ECG con
wavelet Daubechies6 (db06) (come illustrato nella figura 8)
e quindi ricostruite il segnale con le sottobande D4 e D5.
Vengono tenute per la ricostruzione le sottobande D4 e D5
perché in queste due sottobande ci sono quasi tutti i dettagli QRS, rendendo più accurato il rilevamento QRS.
La UWT garantisce un migliore compromesso tra smoothness e accuratezza rispetto alla discrete wavelet transform
(DWT). Confrontando il segnale ECG senza rumore con il
segnale ECG originale, come si vede nella figura 7, potete
notare che i rumori a banda larga sono stati fortemente
soppressi, mentre quasi tutti i dettagli del segnale ECG sono
stati lasciati invariati.
Fig. 7 - Segnali ECG prima e dopo la rimozione del rumore tramite UWT
20
Fig. 8 - Analisi ECG multirisoluzione ed implementazione del rilevamento QRS
TIPS & TECHNIQUES
La figura 9 illustra i segnali ECG elaborati mediante l'analisi
wavelet multirisoluzione (MRA) ed il rilevamento picco/valle,
oltre al segnale ECG originale. In questa figura, potete vedere che i picchi e le valli (specialmente i punti Q ed S) diventano più distinti dopo l'analisi wavelet multirisoluzione.
1. Approccio ICA
L'ICA è un metodo per rilevare segnali nascosti indipendenti da un'osservazione multicanale. Supponiamo che
l'osservazione X sia una sovrapposizione del segnale sorgente S e scriviamo:
X = AS
Fig. 9 - ECG originale, ECG dopo la MRA e ECG dopo il rilevamento
picco/valle
Dopo l'estrazione delle componenti caratteristiche con il rilevamento del complesso QRS, potete compiere ulteriori analisi con altri metodi. Per esempio, potete eseguire l'analisi di
variabilità della frequenza cardiaca (HRV) sull’intervallo R-R
per valutare lo stato del cuore e del sistema nervoso.
dove A denota una mixing matrix. L'assunzione dell'indipendenza statistica dei segnali S permette di stimare le due
incognite S e A dall'osservazione X. Qui, l'ECG materno e
l'ECG fetale possono essere trattati come componenti indipendenti, cioè sono parte di S, mentre le registrazioni ECG
a 8 canali misurate costituiscono X. Eseguendo l'ICA, è possibile ottenere la stima di S; ciò significa che si possono
ottenere sia l'ECG materno sia l'ECG fetale.
L'ASPT mette a disposizione il VI TSA Independent
Component Analysis, che vi permette di costruire facilmente un'applicazione di estrazione del FHR come illustrato nella figura 11: i segnali ECG a 8 canali (acquisiti con il sistema a 8 canali menzionato prima) sono gli ingressi della funzione ICA, ed il segnale ECG fetale può essere ottenuto dall'uscita come una delle componenti indipendenti. La figura
12 illustra rispettivamente un ECG addominale materno e
un ECG fetale estratti dall'ICA. Dall'ECG fetale si può vedere che l'ECG materno è stato soppresso efficacemente e che
il FHR può essere ottenuto in modo preciso e comodo.
ESTRAZIONE DELL'ECG FETALE
L'elettrocardiogramma fetale (FECG) può essere derivato
dall'ECG addominale materno (AECG) ed essere utilizzato
per l'estrazione della frequenza cardiaca fetale (FHR), che
indica la condizione cardiaca del feto. Nella figura 10 è illustrata la posizione delle sonde per un sistema di acquisizione ECG materno a 8 canali. I segnali ECG del torace materno sono campionati dalle sonde toraciche, mentre i segnali
ECG dell'addome materno sono ottenuti dalle sonde addominali. Utilizziamo qui i due metodi seguenti per estrarre la
frequenza cardiaca fetale: Independent Component Analysis
(ICA) e filtraggio adattivo.
Fig. 10 - Posizioni delle sonde per un sistema di acquisizione
ECG materno a 8 canali (comprendente 5 sonde addominali
e 3 sonde toraciche)
Fig. 11 - Metodo ICA per l'estrazione della frequenza cardiaca fetale
Fig. 12 - Estrazione del FHR utilizzando l'ICA
21
TIPS & TECHNIQUES
07
2. Approccio del filtraggio adattivo
Un filtro adattivo è un filtro che autoregola i suoi coefficienti
per ottimizzarli secondo un indice di prestazioni specificato.
I filtri adattivi vengono utilizzati in un'ampia gamma di
applicazioni, una delle quali è la cancellazione adattiva del
rumore, descritta nella figura 13.
In questo esempio, i coefficienti del filtro adattivo sono
regolati minimizzando gli errori fra il segnale di riferimento
e il segnale d'ingresso rumoroso, in modo da potere ottenere l'ECG fetale sottraendo il segnale toracico materno dal
segnale addominale materno. L' implementazione LabVIEW
di questo approccio è illustrata nella figura 14.
Come si vede nella figura 15, un filtro adattivo di ordine e
passo appropriati può tracciare e predire l'ECG materno ed
estrarre l'ECG fetale come errore di predizione.
CONCLUSIONE
Fig. 13 - Struttura adattiva di rimozione del rumore
LabVIEW e i relativi toolkit di elaborazione dei segnali offrono un ambiente solido ed efficiente per risolvere problemi di
elaborazione dei segnali ECG. Questo articolo ha mostrato
come utilizzare questi potenti strumenti per abbattere le
componenti di rumore, condurre analisi ed estrarre in modo
semplice segnali ECG, non solo nella diagnosi delle malat-
Fig. 14 - Metodo di filtragguo adattivo per l'estrazione del FHR
Fig. 15 - Estrazione del FHR usando un filtro adattivo
22
Note sull’autore
Sam Shearman, Senior Product Manager, Signal Processing &
Analysis presso National Instruments Corporation
Readerser vice.it n. 713
Readerser vice.it n. XXX
tie cardiache ma anche nella ricerca condotta nel campo
dell'elaborazione dei segnali ECG. Inoltre, questi tool possono essere utilizzati anche in altre applicazioni di elaborazione dei segnali biomedici, come l'Imaging a Risonanza
Magnetica (MRI) e l'Elettroencefalografia (EEG).
D A L L A T E O R I A A L L A P R AT I C A
07
SISTEMA DI
Ricc ardo Magni, Fabio Magnino
TELERIABILITAZIONE NU!REHA
24
La sfida era quella di proporre un sistema per la riabilitazione a distanza che dimostrasse
praticità e capacità di utilizzo da par te di personale non esper to, quali i familiari e assistenti
generici, direttamente al domicilio del paziente
a teleriabilitazione costituisce un recente sviluppo nell'ambito della telemedicina. Pur essendosi sviluppata
più recentemente propone numerosi progetti e applicazioni pratiche, favorite anche dallo sviluppo tecnologico
dell’ultimo decennio.
Si tratta di un tipo di trattamento riabilitativo che sfrutta la
tecnologia elettronica usata come mezzo di comunicazione
ed informazione attraverso cui può essere applicata a
distanza (Lathan, Kinsella et al. 1999). Lo scopo principale
si è evoluto dalla necessità di fornire terapie in contesti rurali o comunque distanti dai centri di riabilitazione verso scenari più complessi in cui i benefici economici e sociali si
L
coniugano con la necessità di prolungare l'attività riabilitativa in fase cronica ove un ‘degrado’ dell’abilità è in parte
legato al ‘non uso’ appreso della funzione (Taub 2000).
AMBITI DI APPLICAZIONE
Da questo punto di vista vi sono differenti ambiti di applicazione della teleriabilitazione: la logopedia, l'audiologia, la
fisioterapia, la riabilitazione cognitiva, la terapia occupazionale, la psicologia, il nursing riabilitativo fino a
l'integrazione sociale e vocazionale.
In questo ambito è stato proposto da un consorzio europeo
in cui erano rappresentate la Spagna (Ospedale Guttmann
D A L L A T E O R I A A L L A P R AT I C A
Figura 2 - Software di configurazione
di Barcellona), l'Italia (Ospedale di Trevi, Pragma Engineering, Signomotus) ed il Belgio (Centro Nazionale per la
Sclerosi Multipla), il progetto H-CAD (Home Care Activity
Desk prj IST n.2001-33235). Il Consorzio ha proposto la
realizzazione di un sistema dedicato alla terapia occupazionale per l'esecuzione di esercizi riabilitativi di tipo ‘contestuale’, ovvero basati sulla proposta di attività legate a
quelle della vita quotidiana. Si tratta di attività complesse
che comprendono tra l'altro la possibilità di pianificazione
dell'azione, un controllo della presa e del movimento, un
coordinamento visuomotorio sufficiente al completamento
dell'esercizio o al raggiungimento del target previsto. Tali
attività sono quindi finalizzate ad azioni utili per lo sviluppo
dell'autonomia nella vita quotidiana, con riferimento alla
scrittura, ad esercizi di pre-grafismo, allo spostamento sul
piano orizzontale di un oggetto (per es. un bicchiere su un
tavolo) e alla collocazione di un oggetto in verticale (per es.
un libro su una libreria).
- permettere una prima analisi dei
dati da parte del terapista.
L'analisi delle tipologie di esercizio
si è basata su quelli utilizzati in
terapia occupazionale per pazienti
con sclerosi multipla, che abbiano
subito un ictus o una lesione cerebrale traumatica. Questi gruppi
hanno rappresentato una prima
applicazione del sistema in ambito
clinico (inpatient) ed in configurazione remota (outpatient).
Attraverso una successiva integrazione ed ingegnerizzazione dei
componenti del sistema (hardware
e software) la proposta del progetto H-CAD è evoluta in un prodotto
per applicazioni pilota nei centri di
riabilitazione (attualmente in uso in Spagna ed in Italia) con
il marchio NU!Reha.
IL SISTEMA
Il sistema risulta composto da una unità remota, da un server di comunicazione e da un'applicazione di configurazione e analisi.
L'unità remota è costituita da un sistema multi-sensorizzato sia nell'area orizzontale che in quella verticale con i sensori opportunamente inseriti in oggetti di uso comune: un
piano da tavolo per esercizi, una sorta di libreria per il posizionamento di oggetti vari. La scelta degli oggetti non è
obbligata: essi possono essere reperiti tra quelli già in uso da
MONITORAGGIO A DISTANZA
La sfida costituita dal progetto era quella di poter monitorare
a distanza queste attività proposte al paziente in maniera pratica ed efficiente, conciliando aspetti tecnici con aspetti medico-clinici prevalenti nel tipo di applicazione. Si tratta quindi di:
- selezionare una serie di esercizi significativi dal punto di
vista clinico e delle autonomie;
- offrire la possibilità di modulare/configurare gli esercizi
sulla base delle condizioni cliniche del paziente e delle
attività proposte;
- inserire questi esercizi in uno schema tecnico utile alla
sensorizzazione;
- sviluppare un’interfaccia utente semplice e localizzabile in
differenti lingue europee;
- automatizzare un sistema di scambio dati per la restituzione in remoto dei parametri fondamentali degli esercizi;
Figura 3 - Software per l’analisi dei dati
25
D A L L A T E O R I A A L L A P R AT I C A
07
CONFIGURAZIONE
Per la configurazione dell’unità remota è stata realizzata,
sempre in LabVIEW, un’applicazione che permette al terapi-
26
sta la gestione dei dati
relativi ai vari pazienti e
la creazione di sequenze
di esercizi personalizzate
in termini di parametri
(tipologia di esercizio,
numero di ripetizioni,
durata massima, percorsi
e target da raggiungere,
ecc.), e descrizione (messaggi di feedback, istruzioni, video tutorial).
La configurazione può
essere svolta sia localmente sulla unità che da
remoto da una normale
postazione PC con trasferimento dei dati di
configurazione all’unità
remota tramite in server
di comunicazione.
L’applicazione
di
configurazione consente
anche la visualizzazione
ed analisi dei dati registrati
durante
l’esecuzione degli esercizi e trasferiti dall’unità
remota. In particolare
viene fornita una rappresentazione sinottica di ogni esercizio eseguito, sincronizzata con la registrazione video, e la possibilità di esportare i
dati per successive analisi.
RIFERIMENTI
Lathan, C. E., A. Kinsella, et al. (1999). "Aspects of human
factors engineering in home telemedicine and telerehabilitation systems." Telemed J 5(2): 169-75
Taub, E. (2000). "Constraint-induced movement therapy
and massed practice." Stroke 31(4): 986-8
www.telerehabilitation.net il sito internazionale di riferimento della Wfrn
www.nureha.com sito del prodotto di teleriabilitazione presentato in questo articolo
Note sugli autori
Riccardo Magni, responsabile sviluppo hardware presso Pragma
Engineering
Fabio Magnino, responsabile degli sviluppi software di controllo
automatico presso Pragma Engineering
Readerser vice.it n. 717
parte del paziente o in
dotazione da parte delle
palestre occupazionali.
Vari oggetti quali tazze,
bicchieri in plastica rigida,
boccali, cubi in plastica o
in gommapiuma, oggetti
in legno, libri, videocassette, custodie di stampe.. possono essere
opportunamente resi visibili sia sul piano di lavoro
che su quello verticale. Lo
scopo è quello di determinare, anche con una relativa accuratezza il posizionamento senza influire
sulle normali attività e
funzioni del paziente: la
sensoristica è quindi
wireless basata su infrarossi e tag a radiofrequenza.
Il sistema portatile è
gestito
da
un’applicazione software
completamente sviluppata in LabVIEW di
National Instruments che
implementa le seguenti
funzioni: interfacciamento sensori e videocamera per acquisizione dati e video, gestione degli esercizi, memorizzazione
dati e video, trasferimento dati via rete al server di comunicazione, interfaccia utente semplificata e personalizzabile.
Così equipaggiato, il sistema consente l'esecuzione di un
set di esercizi configurati dal terapista prevedendo la ripetizione degli stessi e la registrazione del raggiungimento delle
posizioni previste (con un tempo limite prefissato). Tutta
l'attività è comunque registrata attraverso una videocamera
per fornire indicazioni visive circa la postura durante
l'esecuzione dell'esercizio specifico ed altre informazioni
(fattori di distrazione, posizionamento corretto degli oggetti sul piano di lavoro..). L’interfaccia utente consente
l’utilizzo del sistema tramite un tastierino a quattro tasti
colorati e può essere configurata nella lingua dell’utilizzatore ed arricchita con tutorial video sull’esecuzione degli esercizi. Il sistema portatile può essere utilizzato all'interno dell'ospedale (connesso alla LAN ospedaliera) e presso il domicilio del paziente (connessione: ADSL, Umts).
D A L L A T E O R I A A L L A P R AT I C A
07
IMOSE: IMPIANTO DI
G.Conte, D.Sc aradozzi,
M.Rosettani, G.Vitaioli
MOVIMENTAZIONE DI SEMILAVORATI
Il modello di un’isola di spostamento semilavorati completamente automatizzata permette di
esplorare le problematiche inerenti la coordinazione e la comunicazione degli agenti, la sensoristica e l’attuazione, e la sicurezza dell’impianto
ell’ambito dell’automazione industriale esistono molti strumenti teorici utili all’analisi ed alla sintesi per la
progettazione e la modifica di impianti. Per validare il
progetto di un nuovo reparto si seguono usualmente due
strade: l’inserimento diretto del prototipo nell’impianto, con
necessaria interruzione del funzionamento, oppure la
N
costruzione di modelli software di simulazione dell’intero
sistema finale, con risparmio economico ma senza la garanzia di sufficiente affidabilità e complessità. Il Progetto IMOSE (Impianto di MOvimentazione SEmilavorati), sviluppato
all’interno del corso di Laurea Specialistica di 'Laboratorio di
Meccatronica' all’Università Politecnica delle Marche, ha
27
D A L L A T E O R I A A L L A P R AT I C A
07
avuto come obiettivo la progettazione meccatronica di un
modello hardware di una Cella Manifatturiera (CM) economicamente vantaggioso, di veloce prototipazione e sufficientemente complesso come strumento di analisi.
sensoristica diffusa che, monitorando il campo elettrico,
rileva la presenza di corpi estranei (esseri umani) pericolosamente vicini alla zona di lavoro.
OPERAZIONI NELL'ISOLA DI LAVORO
DESCRIZIONE DEL MODELLO
Mediante elementi LEGO Mindstorm NXT è stato realizzato il modello di un’isola di spostamento semilavorati,
modellati con blocchetti lego di colore rosso (fig. 1). Il
semilavorato deve essere trasportato da un’area di lavoro
(Area1) a un’altra (Area2) mediante braccio robotico antropomorfo supervisionato da una postazione computerizzata
remota.
Il software di supervisione dell’impianto, realizzato in
LabVIEW, ha il compito di gestire il flusso delle operazioni
e di coordinare il movimento di tutte le macchine presenti
nell’isola di lavorazione. La supervisione sul campo è
garantita dal flusso video proveniente da una telecamera
montata a bordo di un robot bipede in grado di spostarsi
autonomamente attraverso la zona di lavoro, di impostare
il giusto angolo di visione e di elaborare l’immagine al fine
di riconoscere l’esatta posizione dell’oggetto da movimentare. Il supervisore inoltre riceve informazioni da una rete
In dettaglio i comportamenti esibiti dal sistema sono i
seguenti (fig. 2):
• La telecamera rileva la presenza di un oggetto nell’area
d’ingresso e ne comunica la posizione al supervisore.
• Il supervisore passa tale informazione al manipolatore
che preleva il pezzo dall’Area1 e lo posiziona nell’Area2
avvisando il supervisore dell’avvenuto trasferimento o di
eventuali problemi incontrati.
• Il supervisore ordina al supporto mobile della telecamera (robot bipede) di spostarsi in una posizione in cui
abbia una buona visuale dell’area di arrivo.
• La telecamera verifica la presenza del semilavorato nella
posizione corretta all’interno dell’Area2 e ne informa il
supervisore. Se il pezzo si trova effettivamente nell’area
finale ed è nella posizione giusta, il ciclo termina con esito positivo.
• Se l’esito è negativo, vengono verificate tre possibilità
riguardo al manipolatore: mancata presa del pezzo, perdita del pezzo durante lo spostamento oppure posizionamento in una cella errata. In questi casi il sistema è
resettato.
• Se in un qualunque momento un corpo estraneo si avvicina troppo al manipolatore o vi entra in contatto, il sistema si blocca inviando un allarme a disarmo manuale.
IL SUPERVISORE
Il supervisore ha il compito di realizzare la coordinazione e
lo scambio d’informazioni tra le varie componenti del sistema, di dettare i tempi delle operazioni, di inviare i comandi e di sincronizzare il flusso degli eventi. Il supervisore è
realizzato mediante software LabVIEW e comunica con
l’impianto mediante Bluetooth o USB, utilizzando un particolare protocollo seriale elaborato in fase di progetto. Nella
figura 3 si può osservare il pannello relativo al programma
principale. I dispositivi da controllare sono quattro: la telecamera e il bipede su cui è montata, il robot antropomorfo
e il controllore per i sensori E-Field.
IL MANIPOLATORE
Figura 1
28
Gli oggetti sono movimentati da un sistema robotico costituito da un manipolatore antropomorfo a tre gradi di libertà su cui è montato un organo di presa pinza con relativo
sensore di forza (fig. 1).
I tre giunti del braccio sono attuati da servomotori pilotati
dalle uscite PWM del blocchetto LEGO NXT, mediante controllore PID numerico.
L’End-Effector impiega un micromotore LEGO per trasmettere il moto alla pinza, un sensore di contatto (LEGO
D A L L A T E O R I A A L L A P R AT I C A
Mindstorm) per monitorare la presenza o meno del pezzo
ed un sensore di corrente per attuare un controllo di forza
sulla presa. Il funzionamento dell’End-Effector è regolato
dal blocchetto LEGO RCX.
IL SISTEMA DI VISIONE E IL ROBOT BIPEDE
Il sistema di visione è costituito da una webcam montata,
mediante supporto attuato per Pan&Tilt realizzato con
sistema LEGO, a bordo di un robot bipede.
Le immagini sono acquisite ed elaborate mediante un programma LabVIEW messo a punto con il pacchetto LabVIEW
Vision Assistant.
Il sistema di visione si occupa di dare le direttive al blocchetto NXT del bipede per orientare il sistema Pan&Tilt allo
scopo di centrare l’area di lavoro nelle immagini catturate
dalla telecamera e di rilevare con buona precisione la posizione degli oggetti all’interno della griglia.
Il robot bipede, che riceve i comandi direttamente dal
supervisore, si sposta parallelamente alla zona di lavoro tra
le due aree di posizionamento dei semilavorati.
IL SENSORE E-FIELD
Il sensore E-Field ha il compito di rilevare la prossimità o
l’avvicinamento di corpi estranei (esseri umani) al manipolatore e, in generale, all’area di lavoro. Il principio di funzionamento di tale sensore è basato sulle caratteristiche di
interazione tra campi elettromagnetici e corpi conduttori.
Il segnale è acquisito ed elaborato da un microcontrollore
della famiglia Freescale, che ha il triplice compito di eccitare il sensore, di acquisire il segnale e di comunicare al
supervisore eventuali situazioni di rischio.
Figura 2
(www.labmacs.diiga.univpm.it/IMOSE_download), è stato
ampiamente soddisfacente.
L’utilizzo di componenti LEGO Mindstorm ha permesso un
rapido ed efficace assemblaggio delle parti meccaniche,
mentre la piattaforma LabVIEW ed i toolkit annessi hanno
reso semplice e veloce l’implementazione del software
necessario alla coordinazione ed alla comunicazione
(supervisore), all’elaborazione delle immagini (webcam) ed
al controllo dei robot (manipolatore, supporto webcam).
CONCLUSIONI
Il modello di un’isola di movimentazione di semilavorati è
stato realizzato ed è stato messo in funzione, per
verificarne il funzionamento e i punti deboli.
Il risultato, documentato mediante un video
Note SUGLI autorI
G. Conte, D. Scaradozzi, M. Rosettani, G. Vitaioli - Diiga Università
Politecnica delle Marche
Readerser vice.it n. 715
Figura 3
29
SCUOLA DI LABVIEW
07
Training per principianti
a cura di Matteo Foini
CREAZIONE E DISTRIBUZIONE
DELLE APPLICAZIONI
Questa lezione descrive il processo di creazione di un’applicazione stand-alone
e di un installer per le vostre applicazioni in LabVIEW
aratteristiche dello sviluppo del progetto in LabVIEW.
LabVIEW ha in dotazione una serie di caratteristiche
che potete usare per gestire i vostri progetti in modo
più efficiente.
C
STORIA DEL VI
Uno degli strumenti di LabVIEW più utili per lo sviluppo
team-oriented è la finestra History. Usate la finestra
History in ogni VI per visualizzare la storia dello sviluppo
del VI. Il numero di revisione parte da zero e aumenta di uno
ogni volta che salvate il VI. Registrate e tenete traccia dei
cambiamenti che apportate al VI nella finestra History man
mano che lavorate. Selezionate Edit»VIRevision History
per visualizzare la finestra History. Potete anche stampare
la storia della revisione.
Usate la finestra di dialogo VI Properties Revision
History per impostare le opzioni per il VI corrente.
gerarchia, come le variabili globali o i VI forniti con
LabVIEW, così come se la gerarchia si espande orizzontalmente o verticalmente. Un VI che contiene dei subVI ha un
pulsante freccia sul suo bordo inferiore. Cliccate su questo
pulsante freccia per mostrare o nascondere i subVI. Quando
tutti i subVI sono nascosti compare un pulsante con un freccia rossa. Quando tutti i subVI sono visualizzati compare un
pulsante con un freccia nera.
La finestra Hierarchy mostrata nella figura 1 contiene la
gerarchia di un progetto. I VI della directory di LabVIEW
vi.lib non sono mostrati. Cliccate con il tasto destro su
GERARCHIA DEL VI
Rispamiare memoria è un vantaggio importante della suddivisione delle vostre applicazioni principali in subVI. Inoltre
la risposta dell’editor di LabVIEW migliora perché i VI sono
più facili da maneggiare. L’uso dei subVI rende gli schemi a
blocchi di alto livello facili da leggere, da sottoporre a
debug, da capire e da manutenere. Perciò cercate di contenere lo schema a blocchi dei vostri VI di alto livello entro
dimensioni inferiori a 500 kB. In generale mantenete i vostri
subVI entro piccole dimensioni. Per controllare la dimensione di un VI, selezionate File»VI Properties e selezionate
Memory Usage dal menu a tendina delle categorie.
Tipicamente dovreste spezzare un VI in diversi subVI se lo
schema a blocchi del vostro VI è troppo grande per entrare
interamente nello schermo.
La finestra Hierarchy del VI visualizza una rappresentazione
grafica di tutti i progetti e compiti aperti in LabVIEW, così
come la gerarchia di chiamata di tutti i VI in memoria, incluse
le definizioni di tipo e le variabili globali. Selezionate View»VI
Hierarchy per visualizzare la finestra Hierarchy. Usate questa finestra per vedere i subVI e altri nodi che costituiscono i
VI nella memoria e per cercare nella gerarchia del VI.
Usate la barra strumenti in alto nella finestra Hierarchy per
mostrare o nascondere varie categorie di oggetti usati nella
30
Figura 1 - Finestra VI Hierarchy
un’area vuota della finestra e selezionate Show All Vis dal
menu rapido per mostrare l’intera gerarchia.
Quando spostate il cursore sopra degli oggetti nella finestra
VI Hierarchy, LabVIEW visualizza il nome di ogni VI in una
striscia di suggerimento.
Potete usare lo strumento Positioning per trascinare un VI
dalla finestra VI Hierarchy allo schema a blocchi per usare il
VI come subVI di un altro VI. Potete anche selezionare e
copiare uno o più nodi sulla clipboard e incollarli in altri
schemi a blocchi.
Cliccate due volte su un VI nella finestra VI Hierarchy per
visualizzare il pannello frontale di quel VI.
Potete localizzare un VI nella gerarchia anche inserendo
SCUOLA DI LABVIEW
ovunque nella finestra il nome del nodo che volete trovare.
Appena inserite il testo, appare una stringa di ricerca che
visualizza il testo man mano che lo scrivete. LabVIEW evidenzia il nodo con un nome che concorda con la stringa di
ricerca. Potete trovare un nodo nella gerarchia anche selezionando Edit»Find.
nascondere o riposizionare la finestra Context Help.
• Usate la funzione Control Online Help per visualizzare la
tabella dei contenuti, saltare ad uno specifico punto del
file o chiudere l’aiuto online.
• Usate la funzione OpenURL in Default Browser VI per
visualizzare un Url o un file HTML nel navigatore internet
di default.
PREPARAZIONE DELL’APPLICAZIONE
REALIZZAZIONE DELL’APPLICAZIONE
E DELL’INSTALLER
Per creare applicazioni stand-alone e installer usate le specifiche costruttive di LabVIEW.
Applicazioni stand-alone—Usate le applicazioni stand-alone per fornire ad altri utenti versioni eseguibili dei VI. Le
applicazioni sono utili quando volete che gli utenti avviino i
VI senza installare il sistema di sviluppo di LabVIEW.
(Windows) Le applicazioni hanno estensione .exe.
(Mac OS) Le applicazioni hanno estensione .app.
Installer—(Windows) Usate gli installer per distribuire le
applicazioni stand-alone, librerie condivise e distribuzioni
sorgente che create con l’Application Builder. Gli installer
che includono il LabVIEW Run-Time Engine sono utili se
volete che gli utenti possano avviare le applicazioni o usare
le librerie condivise senza installare LabVIEW.
Specifiche costruttive di LabVIEW
Usate Build Specifications nella finestra Project Explorer per
creare specifiche costruttive per distribuzioni sorgente e altri
tipi di realizzazioni in LabVIEW. Una specifica costruttiva
contiene tutte le impostazioni per la costruzione, come i file
da includere, le directory da creare e le impostazioni delle
directory dei VI.
Suggerimento (Windows e UNIX) In funzione della natura della vostra applicazione, può essere richiesta la presenza di file non-VI per funzionare correttamente. I file comunemente necessari includono i file con le preferenze (.ini)
per l’applicazione e di qualsiasi altro file di aiuto che i vostri
VI chiamano.
REQUISITI DI SISTEMA
Le applicazioni che create con Build Specifications generalmente hanno gli stessi requisiti di sistema del sistema di sviluppo LabVIEW. I requisiti sulla memoria variano in funzione della dimensione dell’applicazione creata.
Potete distribuire questi file senza il sistema di sviluppo
LabVIEW; tuttavia gli utenti di applicazioni stand-alone e di
librerie condivise devono avere installato il LabVIEW RunTime Engine.
Note sull’autore
Laureato in ingegneria nucleare al Politecnico di Milano, Matteo
Foini lavora in qualità di Technical Marketing Engineer presso
National Instruments Italy
Readerser vice.it n. 725
Un’applicazione stand-alone consente all’utente di avviare i
vostri VI senza installare il sistema di sviluppo di LabVIEW.
Gli installer sono utilizzati per distribuire l’applicazione
stand-alone. Gli installer possono includere il LabVIEW RunTime Engine, che è necessario per eseguire applicazioni
stand-alone. Tuttavia potete anche scaricare il LabVIEW
Run-Time Engine su ni.com.
Per creare un’applicazione professionale dovete considerare
diversi fattori.
Codice esterno
Innanzitutto conoscere quale codice esterno la vostra applicazione utilizza. Per esempio chiamate qualche sistema o
DLL personalizzato o librerie condivise? State per trattare
argomenti command line? Questi sono esempi avanzati che
vanno oltre gli scopi di questo corso, ma dovete prenderli in
considerazione per l’applicazione.
Nomi dei percorsi
Un altro problema è quello dei nomi dei percorsi che usate
nel VI. Assumete di leggere i dati da un file durante
l’applicazione e che il percorso al file sia hard-coded nello
schema a blocchi. Una volta che un’applicazione è costruita, il file è inserito come eseguibile, cambiando il percorso
al file. Essere consapevoli di questi problemi vi aiuterà a
costruire in futuro applicazioni più robuste.
Uscire da LabVIEW
Un altro problema che colpisce l’applicazione che avete
appena costruito è che il VI di livello superiore non esce da
LabVIEW o chiude il pannello frontale quando termina
l’esecuzione. Per uscire completamente e chiudere il VI di
livello superiore, dovete chiamare la funzione Quit LabVIEW
nello schema a blocchi del VI di livello superiore.
Fornire aiuto online per le vostre
applicazioni in LabVIEW
Quando apportate i tocchi finali alla vostra applicazione,
dovete fornire aiuto online all’utente. Create delle descrizioni del VI e dei loro oggetti, quali controlli e indicatori, per
descrivere i fini del VI o oggetto per dare agli utenti istruzioni per l’uso del VI o dell’oggetto.
Usate le funzioni seguenti, localizzate sulla palette Help, per
mostrare o nascondere in maniera programmata la finestra
Context Help e mettete un link dai VI ai file HTML o ai file
di aiuto compilati:
• Usate la funzione Get Help Window Status per rilevare lo
stato e la posizione della finestra Context Help.
• Usate la funzione Control Help Window per mostrare,
31
SCUOLA DI LABVIEW
07
Training per esperti
a cura di Matteo Foini
RICHIAMARE OGGETTI
IN LABVIEW (II parte)
LabVIEW permette di accedere ad altre applicazioni Windows utilizzando le tecnologie .NET
o ActiveX: prosegue la discussione dell'argomento iniziata nello scorso numero
C
ome abbiamo visto, LabVIEW permette di accedere ad
altre applicazioni Windows utilizzando le tecnologie
.NET o ActiveX.
RICHIAMO DI OGGETTI IN LABVIEW
UTILIZZANDO .NET
Potete utilizzare LabVIEW come client .NET per accedere ad
oggetti, proprietà, metodi ed eventi associati a server .NET.
LabVIEW non è un server.NET. Le altre applicazioni non possono comunicare direttamente con LabVIEW attraverso .NET,
a meno che utilizziate .NET per collegarvi a LabVIEW come
server ActiveX. Con un VI .NET-enabled, potete collegarvi a
servizi e API Windows. Il framework .NET include servizi di
componenti COM+, remotazione .NET e supporto per protocolli di servizi Web, come SOAP, WSDL e UDDI.
Nota Creare e comunicare con oggetti .NET richiede
il.NET Framework 1.1 Service Pack 1 o successivo.
L'AMBIENTE .NET
L'elenco seguente richiama i vari elementi che compongono
l'ambiente.NET. Lo scopo di queste informazioni è aiutarvi a
capire .NET, ma apprendere tali informazioni non è essenziale
per utilizzare i componenti .NET in LabVIEW.
• Common Language Runtime (CLR)— Un insieme di
librerie responsabile dei servizi run-time, come integrazione
del linguaggio, rafforzamento della sicurezza, memoria, garbage collection, gestione dei processi e gestione dei thread.
Per aiutare .NET a comunicare con i vari programmi, il CLR
offre un sistema di tipi di dati che si estende fino ai confini dei
linguaggi di programmazione e dei sistemi operativi. Gli sviluppatori possono quindi vedere il sistema come una raccolta
di tipi di dati ed oggetti, anziché come un insieme di memoria
e thread. Il CLR richiede che i compilatori ed i linker generino
informazioni nel formato metadati del linguaggio intermedio
(IL) CLR. Tutti i compilatori dei linguaggi di programmazione
.NET generano codice intermedio anziché codice assembly.
• Librerie di classi —Un insieme di classi che fornisce funzionalità standard, come input e output, manipolazione di
stringhe, gestione della sicurezza, comunicazioni in rete,
gestione dei thread, gestione del testo, caratteristiche per la
progettazione di interfacce utente e così via. Queste classi
32
mettono a disposizione la stessa funzionalità del sistema
Win32/COM. Nel framework .NET potete utilizzare classi create in un linguaggio .NET anche all’interno di un altro linguaggio .NET.
• Assemby—Un'unità di rilascio simile a una DLL, un OCX o
un eseguibile per un componente in COM. Gli assembly sono
DLL ed eseguibili che si possono costruire usando un compilatore .NET. Gli assembly possono consistere di uno o più file. Un
assembly include un manifest contenente informazioni sul
nome dell'assembly, informazioni sulla versione, informazioni
locali, informazioni di sicurezza del publisher, l'elenco dei file
che compongono l'assembly, l'elenco di assembly dipendenti, le
risorse e i tipi di dati esportati. Gli assembly a file singolo contengono tutti i dati in un singolo file, inclusi il manifest e le risorse necessarie. Gli assembly a file multipli possono avere risorse
esterne, come bitmap, icone, file di suono e così via o avere un
file per il codice core e un altro per le librerie di supporto.
• Gli assembly possono essere pubblici o privati. .NET richiede
che gli assembly privati siano nella stessa directory in cui si trova la directory dell'applicazione e che gli assembly pubblici siano in una cache globale, che abbraccia l'intero sistema, chiamata Global Assembly Cache (GAC). Lo sviluppatore dell'applicazione tipicamente scrive assembly privati utilizzabili da
quell'applicazione. Lo sviluppatore dell'assembly decide inoltre il controllo della versione. Il nome dell'assembly è il filename (meno eventuali estensioni del file) del file che contiene il
manifest.
• Il CLR .NET utilizza le impostazioni di configurazione per
determinare la versione dell'assembly da caricare. Tali impostazioni di configurazione possono fare l’override sulla vostra
richiesta per una specifica versione dell'assembly. Per esempio,
l'amministratore di sistema può configurare il vostro computer
in modo che carichi la versione 1.0.0.1 invece della 1.0.0.0. Se
cercate di caricare la versione 1.0.0.0, il CLR .NET promuove
la versione dell'assembly a 1.0.0.1. LabVIEW lancia inoltre
un'area di dialogo che vi notifica la promozione.
• Global Assembly Cache (GAC)—Un elenco degli
assembly pubblici disponibili sul sistema. La GAC è analoga
agli usi del registry COM.
FUNZIONI E NODI .NET
Utilizzate le funzioni e i nodi LabVIEW seguenti, situati sulla
SCUOLA DI LABVIEW
palette .NET, per accedere ad oggetti, proprietà e metodi associati ai server .NET:
• Usate il Constructor Node per selezionare un costruttore di
classe .NET da un assembly e creare un'istanza di tale classe. Quando disponete questo nodo sullo schema a blocchi,
LabVIEW visualizza l'area di dialogo Select .NET Constructor.
• Usate il Property Node per ottenere (leggere) ed impostare
(scrivere) la proprietà associata ad una classe.NET.
• Usate l’Invoke Node per invocare i metodi associati ad una
classe .NET.
• Usate la funzione Close Reference per chiudere tutti i riferimenti ad oggetti .NET quando il collegamento non vi serve più.
• Usate la funzione Register Event Callback per registrare e
gestire gli eventi .NET.
• Usate la funzione Unregister For Event per deregistrare un
evento .NET.
• Usate la funzione To More Generic Class per l'upcast di una
reference .NET alla sua classe base.
• Usate la funzione To More Specific Class per il downcast di
una reference .NET alla sua classe derivata.
• Usate la funzione Static VI Reference per creare una strictly
typed VI reference ad un VI di callback che avete creato.
F. IMPLEMENTAZIONE DI .NET
Potete implementare .NET in LabVIEW nei modi seguenti:
• Creando oggetti .NET
• Settando proprietà .NET ed invocando metodi .NET
• Registrando eventi .NET
• Mantenendo assembly .NET
• Configurando un'applicazione client .NET
CREAZIONE DI OGGETTI .NET
Potete creare oggetti .NET sul pannello frontale dello schema a
blocchi. Usate un Constructor Node per creare un oggetto .NET
sullo schema a blocchi. Usate un contenitore .NET per creare un
controllo .NET sul pannello frontale. Potete anche aggiungere
controlli .NET alla palette Controls per l'uso successivo.
Nota Non potete commutare fra le modalità di design e
di run per un contenitore .NET, come invece potete fare per
un contenitore ActiveX. Il comportamento di un contenitore .NET
è simile a quello di un contenitore ActiveX in modalità design.
Se create un VI con controlli .NET, dovete usare il sistema di esecuzione dell'interfaccia utente. In caso contrario, il VI potrebbe fallire
con eccezioni .NET in fase di esecuzione. Selezionate File»VI
Properties e selezionate Execution dal menu a tendina per visualizzare la pagina Execution Properties. Selezionate quindi user
interface dall'elenco Preferred Execution System. Utilizzate lo
stesso sistema di esecuzione del programma che richiama i subVI
con riferimenti a controlli .NET. Selezionate File»VI Properties e
selezionate Execution dal menu a tendina per visualizzare la pagina Execution Properties. Selezionate quindi same as caller dall'elenco Preferred Execution System.
IMPOSTAZIONE DI PROPRIETÀ .NET
E INVOCAZIONE DI METODI .NET
Le applicazioni abilitate a .NET includono oggetti che hanno
proprietà e metodi esposti, accessibili ad altre applicazioni. Gli
oggetti possono essere visibili all'utente, come nel caso di pulsanti, finestre, immagini, documenti e aree di dialogo, o invisibili all'utente, come gli oggetti dell'applicazione. Potete accedere ad un'applicazione accedendo ad un oggetto associato
con quell'applicazione ed impostando una proprietà o invocando un metodo di tale oggetto.
Sul pannello frontale o sullo schema a blocchi, cliccate con il
testo destro su un oggetto .NET e selezionate
Create»Property Node o Create»Invoke Node e selezionate una proprietà o un metodo dal menu abbreviato per
impostare una proprietà o invocare un metodo per l'oggetto.
Potete anche selezionare proprietà specifiche .NET o invocare
metodi specifici .NET per un oggetto .NET. Sullo schema a blocchi, cliccate con il testo destro su un oggetto .NET e selezionate Create»Property o Create»Invoke e selezionate una
proprietà o un metodo specifici .NET dal menu abbreviato.
Nota Non potete visualizzare ed impostare proprietà .NET
in un Property Browser come invece potete fare per ActiveX.
Dovete impostare le proprietà .NET utilizzando i Property Node.
MANUTENZIONE DI ASSEMBLY .NET
LabVIEW può trovare assembly .NET nei luoghi seguenti:
• Global Assembly Cache (GAC)—LabVIEW può accedere
a tutti gli assembly nella GAC.
• Subdirectory Specificate—LabVIEW può cercare nelle
directory gli assembly che utilizzate. Se utilizzate oggetti .NET in
un progetto salvato, LabVIEW cerca nella directory che contiene
il progetto e in tutte le subdirectory di quel progetto. Se utilizzate oggetti .NET in una libreria condivisa o in un'applicazione
stand-alone, LabVIEW cerca nella directory che contiene la libreria o l'applicazione e nelle subdirectory data e bin.
Se utilizzate oggetti .NET in un luogo diverso da un progetto
salvato, una libreria condivisa o un'applicazione stand-alone,
salvate i file assembly nella GAC o usate un percorso relativo.
• Percorso relativo—LabVIEW può accedere ad un percorso relativo per gli assembly che utilizzate. Usate i percorsi relativi solo se utilizzate oggetti .NET all'esterno di un progetto.
Dopo avere creato un VI che include componenti .NET, potete
integrare quel VI in una libreria condivisa o un'applicazione
stand-alone. LabVIEW copia i file assembly .NET privati associati nella subdirectory data nella stessa directory della libreria
o dell'applicazione.
Potete anche distribuire i VI .NET in un'altra posizione. Se distribuite VI, librerie o applicazioni .NET stand-alone, dovete spostare i file assembly .NET privati associati in subdirectory dove
LabVIEW possa eseguire una ricerca, oppure dovete salvare i
file nella GAC. Accertatevi che il computer target abbia il framework .NET installato.
33
SCUOLA DI LABVIEW
07
CONFIGURAZIONE
DI UN'APPLICAZIONE CLIENT .NET
.NET offre capacità amministrative ad un'applicazione utilizzando file di configurazione. Un file di configurazione ha un
contenuto XML e tipicamente presenta un'estensione .config. Per configurare un'applicazione client .NET, potete fornire
un file di configurazione per un progetto salvato, una libreria
condivisa o un'applicazione stand-alone. Assegnate al file di
configurazione lo stesso nome del progetto, della libreria o
dell'applicazione con un'estensione .config, per esempio
MyApp.lvproj.config, MyApp.dll.config o
MyApp.exe.config. Salvate il file di configurazione nella
directory che contiene il progetto, la libreria o l'applicazione.
Se costruite un'applicazione stand-alone da un progetto salvato con un file di configurazione, dovete ridenominare il file
di configurazione e salvarlo nella directory che contiene
l'applicazione.
Per esempio, se costruite un'applicazione stand-alone da
foo.lvproj che ha il file di configurazione
foo.lvproj.config, ridenominate il file come
foo.exe.config e salvatelo nella directory che contiene
foo.exe, l'applicazione stand-alone.
REGISTRAZIONE DI EVENTI .NET
Gli eventi sono le azioni eseguite su un oggetto, come cliccare un mouse, premere un tasto o ricevere notifiche circa cose
come avere esaurito la memoria o avere terminato dei task.
Ogni volta che si verificano queste azioni sull'oggetto,
l'oggetto invia un evento per allertare il contenitore .NET,
insieme a dati specifici all'evento.
L'oggetto .NET definisce gli eventi disponibili per un oggetto.
Per usare eventi .NET in un'applicazione, dovete registrare
l'evento e gestirlo quando esso si verifica. La registrazione
degli eventi .NET è simile alla registrazione di eventi dinamici.
Tuttavia, l'architettura di un VI di evento .NET è diversa dall'architettura di un VI che gestisce eventi. Un tipico VI di evento .NET è costituito dai seguenti componenti:
• L'oggetto .NET per il quale volete generare un evento.
• La funzione Register Event Callback per specificare e registrare il tipo di evento che volete generare. La funzione
Register Event Callback è un nodo ridimensionabile in grado di gestire eventi multipli, simile alla funzione Register For
Events.
• Il VI Callback contenente il codice che scrivete per gestire
l'evento che specificate.
Quando collegate un oggetto .NET alla funzione Register
Event Callback e specificate l'evento che volete generare per
quell'oggetto, state registrando l'oggetto .NET per quell'evento. Dopo la registrazione dell'evento, create un VI di callback
contenente il codice che scrivete per gestire l'evento. Eventi
differenti possono avere formati di dati di evento differenti,
pertanto cambiare l'evento dopo avere creato un VI di callback
potrebbe interrompere dei fili sullo schema a blocchi.
34
Selezionate l'evento prima di creare il VI di callback.
Potete gestire gli eventi su controlli .NET in un contenitore. Per
esempio, potete mettere un controllo di calendario in un contenitore .NET e specificare che volete gestire un evento
DoubleClick per gli elementi visualizzati nel calendario.
GESTIONE DI EVENTI .NET
Dovete creare un VI di callback per gestire gli eventi da oggetti .NET quando gli oggetti generano gli eventi registrati. Il VI di
callback viene eseguito al verificarsi dell'evento. Per creare un
VI di callback, cliccate con il testo destro sull'ingresso VI Ref
della funzione Register Event Callback e selezionate Create
Callback VI dal menu abbreviato. LabVIEW crea un VI rientrante. Aprite il VI ed editate lo schema a blocchi per gestire
l'evento. Il VI di callback contiene i seguenti elementi:
• Event Common Data contiene i seguenti elementi:
– Event Source è un controllo numerico che specifica la
sorgente dell'evento, come LabVIEW o .NET. Un valore
2 indica un evento .NET.
– Event Type specifica quale evento si è verificato. Si
tratta di un tipo enumerato per gli eventi dell'interfaccia utente e di un tipo intero a 32 bit senza segno per
.NET ed altre sorgenti di eventi. Per gli eventi .NET,
event type rappresenta il codice del metodo, o ID, dell'evento registrato.
– Time Stamp è il time stamp in millisecondi che specifica quando l'evento è stato generato.
• Control Ref è un riferimento all'oggetto .NET sul quale si
è verificato l'evento.
• Event Data è un cluster di parametri specifici per l’evento
gestito dal VI di callback. LabVIEW determina l'appropriato
Event Data quando selezionate un evento dalla funzione
Register Event Callback. Se ad un evento non è associato
alcun dato, LabVIEW non crea questo controllo nel VI di callback.
• Event Data Out è un cluster dei parametri modificabili specifici per l'evento gestito dal VI di callback. Questo elemento è disponibile solo se l'evento .NET ha parametri d'uscita.
• (Opzionale) user parameter è il dato che volete passare al
VI di callback quando l'oggetto .NET genera l'evento.
Nota Potete usare un VI esistente come VI di callback purché il pannello di connessione del VI che intendete usare
corrisponda al pannello di connessione dell’event data. Il VI di callback deve essere rientrante ed il riferimento al VI di callback deve
essere strettamente tipizzato.
Non potete eseguire chiamate sincrone ad aree di dialogo non
modali da un VI di callback. Dovete richiamare in modo asincrono
un'area di dialogo non modale da un VI di callback invocando un
metodo Run VI e scrivendo una costante booleana FALSE sull'ingresso Wait Until Done del metodo.
Readerser vice.it n. 726
REPORT
07
A TUTTO GAS CON
L’AUTOMOTIVE FORUM 08
È sceso in pista a Torino l’appuntamento biennale dedicato a tecnici e ingegneri che operano nel mercato automotive
entosettanta visitatori, dieci aziende leader di settore in
veste di speaker del Forum, quattro aree tematiche (tra le
più calde attualmente a gravitare attorno al mondo automotive: Safety & Reliability, Innovation & Infotainment, Powertrain Efficiency & Environmental Care, Comfort) hanno reso la
sesta edizione di Automotive Forum lo scorso 12 giugno un
appuntamento imperdibile per gli esperti di test e controllo nel
settore automotive. A fare da cornice all’evento, una location
d’eccezione, il Centro Ricerche Fiat di Orbassano, a Torino.
Durante la giornata il tema dominante è stato il mutamento del
cosiddetto ciclo dell’innovazione e la necessità di maggior connessione e integrazione tra fornitori, integratori e costruttori per
C
to delle risorse petrolifere la preoccupazione maggiore dell’utente finale. A tale minaccia e al vertiginoso aumento del prezzo del carburante deve guardare il mercato odierno, cercando
di proporre soluzioni ed alternative efficaci.
“Per questo motivo, è necessario sviluppare tecnologie volte alla
riduzione dei consumi e a soluzioni ibride a costi sostenibili in
tempi rapidi”, dichiara l’Ing. Domenico Albero, Responsabile
Ente Controlli e SW Diesel & Ibridi di FPT R&T. Durante la sua
keynote, Albero, ha sottolineato la crescente risonanza delle tecnologie 'verdi' amiche dell’ambiente e dei recenti progressi compiuti nel campo della sicurezza, non dimenticando di illustrare
vantaggi e benefici apportati da tecnologia multicore e paralle-
rispondere più efficacemente ai bisogni dell’utente finale.
Questo il panorama italiano dell’automobile delineato dall’Ing.
Nevio Di Giusto, Amministratore Delegato e Direttore Generale
di Centro Ricerche Fiat ed Elasis, un mercato in cui la vita media
di un’innovazione dura oggi un anno e mezzo. Si pensi che in
un passato non molto lontano, un’idea originale poteva rimanere tale anche dieci anni, prima di essere copiata oppure surclassata dalla successiva.
Alcuni tra i trend di mercato attualmente più diffusi hanno avuto origine direttamente dalle necessità più o meno esplicitate
degli automobilisti e hanno cercato di dare risposte immediate.
Si pensi, ad esempio, alla recente diffusione su ampia scala dei
SUV (Sportive Utility Vehicle): "Il fenomeno rappresenta chiaramente la risposta alla diffusa sensazione di insicurezza e al
desiderio di dominare la strada dell’automobilista”, ammette
Di Giusto.
Tuttavia, è sicuramente l’incombente minaccia dell’esaurimen-
lismo software nel settore della progettazione automotive.
Per raggiungere questo obiettivo, è necessario che le aziende
coinvolte lavorino in sinergia. Automotive Forum si è proposto
come un appuntamento fisso per aprire il dialogo tra le entità
coinvolte, preparare il terreno ad un proficuo scambio di idee,
esperienze e conoscenze per diffondere e testare le tecnologie
del futuro universo automotive. Questo scambio è stato facilitato da un lato dalle testimonianze dei relatori della giornata,
presentando le proprie applicazioni al pubblico in sala, e dall’altro dalla sala espositiva, di dimensioni ridotte ma di elevata
qualità per le soluzioni proposte.
Nel corso della giornata è stata premiata la 'Migliore
Applicazione Automotive' tra le oltre venti raccolte in occasione
dell’evento: il premio è stato assegnato ad Alessandro De
Grassi, Francesco Siano e Carmine Ungaro del Gruppo Loccioni,
con l’articolo 'Mexus: Progettazione embedded di un innovativo
sensore di misura per sistemi di test in ambienti automotive'.
Readerser vice.it n. 740
a cura di Nadia Albarello
DI NATIONAL INSTRUMENTS
35
EVENTI
07
LABVIEW COMMUNITY?
a cura di Nadia Albarello
SÌ, GRAZIE!
Scoprite qui sotto i benefici tangibili della membership ai gruppi di discussione e social network che ruotano attorno a LabVIEW
apita spesso di chiedersi quale possa essere l’utilità di
far parte di una community, un forum di discussione,
un social media. Scoprite quale gruppo di discussione
o social network fa al caso vostro e quale potrebbe essere
il vostro ruolo.
C
Condividete! Il vero senso di una Community. Come spesso si suole dire, due teste sono meglio di una. Per partire alla
grande ed evitare i primi imbarazzi tipici per un new user, cercate di instaurare una conversazione con il vostro 'buddy':
ovvero, se rendere pubbliche le vostre prime domande in un
forum o in una e-mail list vi può creare qualche disagio,
cominciate a condividere trick, esperienze oppure dubbi e
perplessità con una persona in particolare, di vostra fiducia.
Iscrivetevi alle e-mail list di LabVIEW, partecipate ai
newsgroup e forum di discussione. Se siete nuovi, iniziate la
vostra esplorazione da Developer Exchange (forums.ni.com/),
LabVIEW General Discussion Forum (forums.ni.com/ni/) e da
LabVIEW
Newsgroup
(www.news2mail.com/comp/lang/labview.html). Iniziate a
leggere i thread di discussione e a porre domande relative ai
vostri progetti. Vi accorgerete che entro breve sarete in grado
voi stessi di rispondere alle domande altrui. Supportare gli
altri partecipanti a risolvere problemi tecnici è un ottimo
metodo per imparare.
Trovatevi un mentore! Perdere le vecchie abitudini è difficile, se non impossibile. Quindi, non acquisite cattive abitudini ma affiancatevi da subito a sviluppatori esperti, che vi
potranno insegnare a superare i primi ostacoli ed acquisire
tecniche di programmazione che vi faranno risparmiare tempo.
Diventa il mio mentore! Se siete programmatori esperti, condividete le vostre conoscenze pratiche, insegnate a
sviluppare codice grazie alle pratiche 'rule-of-thumb' che
avete imparato voi col tempo. La gestione dei dati e
l’organizzazione di architetture per vaste applicazioni possono risultare operazioni difficoltose per un principiante.
LabVIEW è uno strumento potente ma anche divertente:
vedrete che aiutare gli altri membri della community vi darà
grandi soddisfazioni.
36
Beta-testami! Sviluppare nuove funzionalità sarebbe
immensamente più difficile senza il lavoro di un solido gruppo di beta tester volontari (e volenterosi), in grado di scovare bachi di sistema e fornire preziosi feedback e suggerimenti agli sviluppatori. Contribuite in prima persona al test
di nuove release di LabVIEW: vi permetterà di essere protagonisti e parti integranti dell’evoluzione di LabVIEW. Per
maggiori informazioni, visitate il sito NI Beta Program
Resource Center. (www.ni.com/betaprogram)
Open Source LabVIEW. Si tratta di una comunità di utenti che mette in condivisione un vasto archivio, costantemente
arricchito e aggiornato, di progetti e librerie open source realizzate in LabVIEW. Il modo migliore per contribuire al progetto è di scaricare e usare direttamente il codice, verificarne
le funzionalità e fornire feedback agli sviluppatori su come
migliorare il codice stesso. (wiki.openg.org/Main_Page)
User Group locali. Visitate zone.ni.com per conoscere gli
user group della vostra città oppure scoprite come dare vita ad
un user group nella vostra zona o società. Non perdete gli
incontri trimestrali online e le relative presentazioni tecniche.
NILabs. E’ la vetrina di tutte le tecnologie NI non ancora
pronte per il rilasci sul mercato. Visitate i laboratori di ricerca virtuali di National Instruments: potrete scaricare programmi all’avanguardia, contribuire attivamente alla loro
definizione grazie ai vostri feedback, avere informazioni
preziose. (www.ni.com/labs/)
LabVIEW Champions. Siete fan di LabVIEW? Entrate a far
parte dell’elite su ni.com/champions, e condividete la vostra
passione e la vostra esperienza con altri tecnici e ingegneri
come voi. Potrete accedere ad esclusive preview di prodotto, contattare direttamente gli sviluppatori di LabVIEW,
acquisire maggiore visibilità all’interno della Comunità.
(www.ni.com/champions)
LabVIEW Tools. Scaricate centinaia di tool aggiuntivi per
realizzare applicazioni di test, misura e controllo alla pagina web www.ni.com/labviewtools
LabVIEW Academy. Imparate a conoscere i futuri fan di
LabVIEW e mettete le vostre conoscenze al servizio delle
EVENTI
Blogosfera. Non perdete l’occasione di visitare i blog della community, per essere sempre aggiornati sulle ultime
novità:
http://www.ni.com/blogs
http://www.viroadshow.blogspot.com/
http://www.eyesonvis.blogspot.com/
http://www.emertech.blogspot.com/
http://www.automatedtestblog.com/
http://www.ideasinwiring.blogspot.com/
http://www.themacview.blogspot.com/
http://www.openmeas.blogspot.com/
LabVIEW Social Networks. LabVIEW è presente su
numerosi social network, tra cui:
LabVIEW MySpace
LabVIEW Facebook
LabVIEW YouTube
LabVIEW Squidoo
LabVIEW Wikipedia
LabVIEW NING
LabVIEW Search
LabVIEW Meetup
Rimanete sempre in contatto con i vostri compagni di avventura!
LabVIEW Zone. Non dimenticate, inoltre, di visitare
LabVIEW Zone (www.ni.com/labviewzone), il sito ideale per
condividere codice e scovare interessanti risorse tecniche.
Arricchite i contenuti del sito inviando il vostro 'consiglio
della settimana': condividete con gli altri utenti il vostro
migliore 'trucchetto' di programmazione. Potrebbe essere
eletto come il migliore della settimana.
FIRST Community. La prima community di LabVIEW tutta
dedicata a video e tutorial. Iscrivetevi al servizio RSSFeed, e
riceverete le notifiche su video e tutorial caricati di recente.
http://decibel.ni.com/content/docs/DOC-1640
LA NUOVA DEVELOPERZONE È QUI
Se desiderate ricevere aggiornamenti, scaricare codice e
documentazione tecnica e comunicare e collaborare con
altri tecnici e ingegneri su tutti i prodotti di National
Instruments, allora entrate a far parte di NI Developer Zone:
ni.com/devzone ni.com/
Connettetevi alla Community e potrete entrare in contatto con
lo staff R&D di National Instruments e con i LabVIEW Champions che stanno realizzando applicazioni simili alle vostre.
Note sull’autore
Nadia Albarello, laureata in Lingue Moderne e Comunicazione alla Karl
Franzens Universität di Graz, Austria, lavora in qualità d Marketing
Communications Manager presso National Instruments Italy.
readerser vice.it n. 759
nuove generazioni. National Instruments è costantemente
impegnata nel supportare lo sviluppo e la diffusione di programmi di apprendimento nelle discipline scientifiche. Se
siete interessati a prendere parte al programma, scoprite
come alla pagina web ni.com/academic/k12
AUTOMATED
TEST SUMMIT 2008
a più avanzata occasione di aggiornamento su strategie e tecnologie nel settore del test automatizzato
rivolta a tecnici e management delle principali aziende di elettronica, si è reso disponibile ai frequentatori del
Web per offrire un accesso comodo alle ultime tendenze
tecnologiche sulla progettazione efficace di sistemi di test
automatizzati, flessibili ed efficienti.
National Instruments e i 12 partner tecnici dell’evento
(aziende leader mondiali di sistemi di test e misura del
calibro di Intel, Microsoft, Tektronix, Averna e Cal-Bay )
L
hanno presenziato in ben tre continenti per ben 24 ore
consecutive, condividendo con gli oltre 760 partecipanti
online strategie per la progettazione software a costi
ridotti, le ultime tendenze nella progettazione hardware e
tecniche per ottimizzare i sistemi di test ed incrementarne
la durata.
National Instruments sta già lavorando alla prossima edizione dell’evento, proponendo una piattaforma più ancora più potente e performante e contenuti ancora più innovativi. Vi aspettiamo alla prossima edizione.
readerser vice.it n. 760
Il convegno sul test automatizzato si è riproposto nella sua 5° edizione lo scorso 5 giugno
nella sua versione online
37
D A L L A C A RTA A L W E B
07
HTTP://WWW
Quando le nostre pagine non bastano, l’enorme serbatoio del web può dare una mano.
Su una rivista c ar tacea, anche la più voluminosa, sarebbe impossibile trattare
per esteso tutti gli argomenti relativi a LabVIEW. In molti casi, tuttavia, sul web sono
disponibili ar ticoli esaustivi o altri documenti, a cui rimandiamo i lettori interessati.
Connessione di LabVIEW con INRIA Scilab
LabVIEW è una piattaforma aperta che vi permette di integrare facilmente software di terze parti come INRIA Scilab.
Approfondite la conoscenza del Gateway che vi permette di invocare facilmente script Scilab direttamente da LabVIEW.
Link alla pagina:
ni.com/italian
infocode: itimkb
TestStand: uso efficace del Sequence Context in LabVIEW
LabVIEW gestisce intrinsecamente i parametri in modalità pass by value. Una conseguenza è che, quando si cambia una
variabile durante l'esecuzione di un VI, tale cambiamento non può essere visto all'esterno del VI stesso. In TestStand,
tuttavia, è utile avere la possibilità di leggere e cambiare i valori di un VI durante la sua esecuzione. Passare e manipolare
il sequence context all'interno di un VI è il metodo che permette di ottenere tale risultato. Questo esempio illustra tale
metodo in un ambiente di test multithread.
Link alla pagina:
ni.com/italian
infocode: itimkb
Creare applicativi LabVIEW programmaticamente
Molte applicazioni richiedono di essere frequentemente compilate in un eseguibile (.exe) o in una dynamic link library
(.dll). Un'applicazione potrebbe richiedere la compilazione del codice sorgente ogni notte o anche ogni dieci minuti. Prima
di LabVIEW 8.0 l'application builder rendeva necessaria la creazione di un file *.bld unico per ogni configurazione richiesta
dalla vostra applicazione. Potevate quindi richiamare tale file da un file batch.
Ora LabVIEW offre un VI che costruisce programmaticamente una distribuzione utilizzando una specifica di build
predefinita. Questo esempio illustra come eseguire la procedura dalla command line.
Link alla pagina:
ni.com/italian
infocode: itimkb
Algoritmo di rilevamento ostacoli 3D
Nelle applicazioni di movimentazione, soprattutto nella robotica, è imperativo sapere se un percorso di moto generato sia
libero da ostacoli. Questo algoritmo offre una soluzione per controllare se un movimento rettilineo interseca una regione
3D. Tale regione è definita da un array di 'facce' o piani definiti da 3 punti.
Link alla pagina:
ni.com/italian
38
infocode: itimkb
D A L L A C A RTA A L W E B
Comunicazione SPI in LabVIEW FPGA
Questo esempio genera e legge un pacchetto SPI di 16 bit con un segnale ChipSelect attivo basso. Le due parti, ingresso
e uscita, dell'esempio sono normalmente usate in modo separato, in base al lato della comunicazione che vi occorre.
Per questo esempio le abbiamo implementate entrambe. Il codice d'ingresso e il codice d'uscita usano le stesse linee
fisiche di I/O, eliminando la necessità di cablaggio esterno.
Link alla pagina:
ni.com/italian
infocode: itimkb
Visualizzazione di uno Splash Screen in LabVIEW usando il VI Server
Questo esempio utilizza il VI Server per visualizzare uno splash screen per la vostra applicazione principale, mentre tutti i
suoi subVI vengono caricati in memoria. L'esempio è utile se avete una grossa applicazione che impiega un po' di tempo
per essere caricata, perché lo splash screen può visualizzare informazioni sulla vostra azienda e un indicatore che mostra lo
stato di caricamento. Eseguite splash screen.vi per vedere il comportamento dello splash screen e dell'indicatore dello
stato di caricamento.
Link alla pagina:
ni.com/italian
infocode: itimkb
Monitoraggio e gestione allarmi da remoto con invio di messaggi di testo
SMS – LabVIEW PDA Module for Pocket PC
Questo esempio illustra come utilizzare messaggi di testo SMS ed email SMTP. L'esempio traccia dati casuali su un grafico
di forme d'onda. Se i dati sono sopra o sotto i limiti fissati, l'utente viene sollecitato ad inviare un messaggio di testo SMS
all'amministratore per avvisarlo dei dati imprevisti. L'utente inserisce quindi un numero telefonico nel messaggio. Inoltre,
l'utente può inviare una email a più destinatari utilizzando VI di email SMTP che includono in allegato i dati raccolti. Il
terzo tab, Message Log, registra tutti i messaggi inviati dall'applicazione. Per eseguire l'applicazione, aprite il progetto
LabVIEW ed eseguite “Remote Monitoring and Alarming with SMS.vi” sull'emulatore o sul dispositivo Pocket PC.
Link alla pagina:
ni.com/italian
infocode: itimkb
Determinare il volume del suono corrente con LabVIEW
L’allegato “SO Get Volume.vi” restituisce il volume corrente dell'uscita audio tramite chiamate a una DLL di Windows, la
winmm.dl. La funzione waveOutGetVolume di questa dll restituisce l'informazione di volume in un puntatore double word.
La parola inferiore è il canale sinistro, quella superiore è il canale destro.
Questo VI può essere utilizzato come subVI insieme agli altri Sound Output VIs forniti con LabVIEW.
Il SO Volume VI fornito con LabVIEW può essere usato per impostare il volume corrente dell'uscita di suono.
Link alla pagina:
ni.com/italian
infocode: itimkb
39
LA VOCE DEGLI UTENTI
07
Vi presentiamo una selezione di argomenti
di discussione sul Forum di ILVG.it
Apertura Subvi dal Diagram ...
Inviato: Lun Giu 26, 2006 6:11 pm
Come tutti sapranno, se si ha un SubVi utilizzato nel
proprio Diagram, facendovi sopra DoppioClick con il tasto
sinistro del mouse, questo viene aperto.
Forse non tutti hanno notato, però che se mentre lo si fa
si tiene premuto il tasto "Ctrl", viene anche visualizzato
direttamente il Diagram del Subvi in oggetto.
Dato che la maggior parte delle volte che uno apre un
SubVi è per visualizzarne o modificarne il diagram, io l'ho
trovato comodo. - againstdarkness
mooolto comodo.
grazie
Ciao – ale914
[continua su http://www.ilvg.it/ht/1836]
Againstdarkness
Occupazione memoria da parte di VI chiusi
Inviato: Gio Dic 20, 2007 12:11 pm
Ogni tanto mi capita che dopo aver chiuso un VI perché
ho finito di usarlo, se tento di cancellarlo dal pc Windows
mi avvisa che la risorsa è ancora utilizzata. Se chiudo
anche LabView completamente allora posso cancellare il VI.
Questo non mi capita sempre: qualcuno ha incontrato
questo problema (secondo me è un problema... perché
devo chiudere tutto per cancellare un VI, magari un VI
temporaneo realizzato per fare delle prove)?
Ciao!!- MagicBotolo
Anche a me succede; magari non voglio proprio
cancellare ma solo spostare il vi, caso tipico di quando si
organizza il codice (in realtà spostare un file é la
composizione di copiare nell'altro posto e cancellare
l'originale).
A me credo succeda sempre; l'ho attribuito al modo in cui
LabView (non) rilascia effettivamente al SO i file che ha
aperto.
Mi succede anche qualcosa di simile con le porte seriali;
in quel caso si che non mi succede sempre e credo di aver
capito che succede se fermo il vi con il stop di LV (il
pulsantino rosso).
Entrambe le cose sono noiose, ma finora non ho trovato
soluzione.
A dire la verità non ho neanche mai chiesto al supporto
tecnico. – gyc
[continua su http://www.ilvg.it/ht/3650]
MagicBotolo
Raddrizzare i fili
Inviato: Mar Dic 04, 2007 3:39 pm
Avevo letto qualcosa a riguardo di un comando alla
tastiera per "pulire" i fili in modo da togliere tutti gli
scalini ... qualcuno sa dirmi qualcosa?
Grazie – mir
Ma non è che intendi la possibilità di selezionare un filo e
spostarlo con le frecce cursore, in modo da riallinearlo ad
altri spezzoni? – Nicola
Faccio un esempio ...mettiamo che da ubriaco abbia
tirato una linea a zigo zago ... non esiste un comando che
la raddrizzi e la ottimizzi nel suo percorso? – mir
Se tu vai col mouse sul filo e clikki il tasto destro ti
compare CLEAN UP WIRE che ottimizza il percorso in
modo tale da fargli risultare meno incroci e parti
nascoste possibili.
Credo sia questo che intendi, però non mi risulta che ci
sia l'equivalente da tastiera...ma ciao! – gepponline
[continua su http://www.ilvg.it/ht/3615]
mir
40
LA VOCE DEGLI UTENTI
Conflitti Software
Inviato: Lun Lug 02, 2007 8:52 am
Ciao a tutti, ho un enorme problema con un mega
programma in LabView che funziona benissimo quando
gira su un PC su cui il Sistema operativo è windows 2000
NT4 ma su un altro PC con XP si blocca dopo poche ore di
esecuzione. Inizialmente pensavo fosse colpa della
versione 8.2 e così sono tornato alla 7.1 ma la cosa non
cambia. Poiché cambiando il PC anche la scheda GPIB è
cambiata non ho la certezza che il problema sia di tipo
Hardware o Software.
Qualcuno ha già avuto problemi di questo tipo o sa darmi
qualche dritta senza che io debba fare tutte le prove per
verificare cosa c'è che realmente non va? Avevo sentito
anche qualche episodio di altre applicazioni che venivano
inibite dopo l'installazione degli aggiornamenti di XP.
Grazie- nicky79
Il problema che lamenti sembra tipico di una "fuga di
memoria".
Prova a cercare sul sito NI, sulla Developer Zone e su LAVA con
"memory leak", magari anche associando a "windows xp".
Io ho provato con "labview memory leak xp" su Vivisimo e
ho trovato un discreto numero di trovate - diverse e
secondo me più attinenti rispetto alla stessa ricerca su
google (e oltretutto mi piace molto la classificazione che
Vivissimo fa e google NON fa!). – gyc
Grazie, ho trovato molte cose utili ma purtroppo nulla di
risolutivo. Ho scoperto intanto che la versione di MAX sul
PC che funziona non è quella del LV 7.1 (cioè MAX 3.1)
ma è la versione 2.2 di LV 6.1, quindi ho provato a
installare la stessa versione. Se fosse questo il problema
si tratterebbe solo di un modo diverso di gestire la GPIB
tra i due sistemi. – nicky79
Potresti guardare se per caso la gestione dei file (sempre
che ci sia) o dei dati nel VI comporta l'esaurimento delle
risorse... non sono un espertone ma mi pare che WinXP
gestisca il file di paging della memoria in modo
particolare... puoi controllare con il Task Manager,
guardando le prestazioni e la CPU occupata mentre il VI è
in esecuzione.
Ciao!! – MagicBotolo
avevo già guardato ed era al 50%, niente di esagerato.
Ora ho lanciato il programma e domani vedrò se non si è
ancora bloccato. Se funziona ti faccio sapere.
Grazie ancora e ciao – nicky79
[continua su http://www.ilvg.it/ht/3274]
nicky79
Istanze multiple
Inviato: Mar Mag 08, 2007 8:41 am
Ciao a tutti, vorrei chiedere consiglio su come fare per
creare un programma in Labview (ovviamente) che possa
essere lanciato più volte contemporaneamente cliccando
sull'icona. – aris
Scusate, ma credo che la domanda non sia troppo chiara
e cerco di chiarirmi meglio.....
Un exe creato con Application builder, può essere lanciato
più volte?
Ovvio che si possono creare vi che richiamano altri in
maniera rientrante tutte le volte che si vuole, ma un
eseguibile può essere lanciato più di una volta (come
succede con i programmi creati direttamente con C)?
Grazie ancora – aris
Io avevo capito ma non sapevo cosa rispondere
Anche un exe in realtà usa il runtime engine per eseguire
un vi, che normalmente è unico in memoria. Penso, ma è
solo un'ipotesi, che i vi rientranti siano la soluzione
anche per questo problema. Il tuo exe dovrebbe avere
solo il compito di lanciare dinamicamente (con Invoke
node) un vi rientrante e poi terminare, per cui ogni volta
che lo clicchi te ne apre una copia. Ma la fattibilità di
questa cosa è ancora tutta da verificare – Snamprogetti
Io ho avuto un problema inverso: NON volevo che un
eseguibile creato con l'ApplicationBuilder fosse lanciato
più di una volta.
Ho scoperto, con l'aiuto dei ragazzi del forum, che di fatti
l'eseguibile NON può essere istanziato più volte già di suo
- quindi, io non avevo il problema.
Non so cosa tu abbia bisogno di fare, ma sono d'accordo
che la soluzione può essere solo nell'utilizzo di VI
dinamici. Ci sarà un "modulo base" che funzionerà come
"motore" per lanciare le varie istanze, magari con un
semplice click su un pulsante.
Aggiungo come promemoria, che se usi risorse uniche
(file, port seriale, i/o, ecc) dovrai ovviamente risolvere il
problema della concorrenza nel loro uso, con i
meccanismo che già LV ti mette a disposizione.
Buon divertimento. – gyc
[continua su http://www.ilvg.it/ht/3068]
aris
41
REPORT
07
42
L'impor tanza di un contatto diretto con i fornitori non mostra segni di cedimento
al 27 al 30 maggio 2008 si è svolta a Fieramilano (Rho)
l’edizione 2008 della Technology Exhibitions Week, il
grande appuntamento internazionale con la tecnologia
e l’innovazione per l’industria. Le oltre 60.000 presenze registrate confermano il grande richiamo dell'evento per tutti gli
operatori professionali. Particolarmente significativo è risultato il numero dei visitatori provenienti dall’estero che hanno
superato quota 18.000, dando un segnale di forte caratterizzazione internazionale dell’evento.
La Technology Exhibitions Week è composta dalle mostre professionali BIAS (Biennale internazionale dell’automazione,
strumentazione, microelettronica e ICT per l’industria),
BI.MAN (Biennale della manutenzione industriale), Fluidtrans
Compomac (Biennale internazionale della fluidotecnica, trasmissioni di potenza e movimento, comandi, controlli, progettazione) e Mechanical Power Transmission & Motion Control
(Biennale internazionale dei sistemi di controllo del movimento, tecniche di azionamento e trasmissioni meccaniche).
In un solo contesto sono stati concentrati le soluzioni e i prodotti più innovativi rivolti all’industria manifatturiera e di processo, presentati da 1.800 marchi di espositori diretti e indiretti su una superficie espositiva complessiva di 100.000 metri
quadri. Numerosi gli espositori esteri, pari al 45%, provenienti da 33 Paesi. Una panoramica internazionale di riferimento
per il mondo industriale, come dimostrano anche le numerose
delegazioni estere arrivate da Brasile, Bulgaria, Polonia,
Russia, Marocco, Cina, India, Corea, Malesia, Bielorussia e
Repubblica Ceca.
La manifestazione rappresenta comparti che, in Italia, hanno
un valore molto significativo: i mercati di riferimento di BIAS,
Fluidtrans Compomac e Mechanical Power Transmission &
Motion Control, ad esempio, valgono complessivamente circa
10 miliardi di euro. Per quanto riguarda invece il mercato della manutenzione rappresentato da BI.MAN, non esiste in Italia
un osservatorio che monitorizzi regolarmente questo settore.
Secondo una stima, tuttavia, le spese complessive in manutenzione nel nostro Paese sono molto elevate e, per quanto
riguarda in particolare il settore industriale, ammontano a circa 30 miliardi di euro.
Un’intensa e qualificata attività congressuale, con 35 tra convegni e seminari, ha arricchito la sezione espositiva offrendo
interessanti momenti di aggiornamento professionale agli
operatori grazie anche al contributo delle principali associazioni di riferimento.
D
“Con la Technology Exhibitions Week, Milano è diventata per
qualche giorno la capitale della tecnologia e, insieme a Fiera
Milano, ha iniziato un percorso ideale di manifestazioni che
avrà il suo culmine nel 2015 con l’Expo, un evento che rappresenta una formidabile opportunità per la città e per tutto il
Paese”, ha dichiarato Fabio Dadati, presidente di Fiera Milano
Tech.
Il prossimo appuntamento con la Technology Exhibitions Week
è in programma, sempre a Fieramilano, dal 25 al 28 maggio
2010.
TECNOLOGIA DELLA VISIONE ARTIFICIALE
Un mese dopo la Technology Exhibitions Week, il 24 giugno,
si è svolta ieri la terza edizione di Vision for Manufacturing,
mostra convegno dedicata alla tecnologia della visione artificiale, organizzata da Fiera Milano Editore a Montichiari (BS)
presso il Centro Congressi Fiera del Garda
Che il tema della visione artificiale fosse particolarmente
'caldo' lo si sapeva. Ed è stato ancora più evidente alla luce
dei 36 gradi e passa che lo scorso giugno hanno caratterizzato Brescia, e i suoi dintorni, tra le zone più torride d’Italia. Ma
ciò non ha scoraggiato le 23 aziende partecipanti al Vision for
Manufacturing che hanno accolto con soddisfazione tra i loro
stand circa 200 utenti di settore. Tutti i visitatori, con interesse, hanno seguito le sessioni di presentazione e approfondito
poi le tematiche trattate presso il padiglione espositivo, toccando con mano quella che oggi è l’offerta di mercato dei
sistemi di visione.
Un’attenzione particolare è stata riservata alla sessione di
apertura tenuta dal professor Remo Sala, ricercatore e docente del Politecnico di Milano – Facoltà di Ingegneria Industriale,
dal titolo “Concetti ed applicazioni dei sistemi di visione nell’industria”.
L’evento è stato organizzato da Fiera Milano Editore con il
contributo delle riviste SdA-Soluzioni di Assemblaggio,
Automazione Oggi e Automazione e Strumentazione. Vision
for Manufacturing nasce in collaborazione con IMVG, Italian
Machine Vision Group e vede il supporto di Assoautomazione
- Associazione Italiana Automazione e Misura, appartenente
alla Federazione ANIE (Confindustria), di AIdA-Associazione
Italiana di Assemblaggio, SIRI-Associazione
Italiana di Robotica e Automazione, Polo della Robotica di
Genova e vede il patrocinio di EMVA - European Machine
Vision Association
Readerser vice.it n. 761
Valerio Alesandroni
BIAS E VISION FOR MANUFACTURING:
DUE EVENTI DI GRANDE SUCCESSO
A P P U N TA M E N T I
07
Come sempre, vi segnaliamo i prossimi corsi di formazione
di LabVIEW e i principali eventi internazionali che vedranno
la partecipazione di National Instruments
CORSI DI LABVIEW
CORSO SPECIALISTICO:
MISURE TERMODINAMICHE
LABVIEW BASE 1
Milano:
Padova:
Milano:
Padova:
Roma:
dal 20 al 22 ottobre
dal 17 al 19 novembre
dal 15 al17 dicembre
dal 14 al16 ottobre
dal 1 al 3 dicembre
LABVIEW BASE 2
Milano:
dal 23 al 24 ottobre
dal 18 al 19 dicembre
dal 1 al 3 ottobre
dal 4 al 5 dicembre
Roma:
LABVIEW INTERMEDIATE 1
Milano:
dal 6 al 8 ottobre
dal 1 al 3 dicembre
dal 2 al 4 dicembre
dal 3 al 5 novembre
Padova:
Roma:
LABVIEW INTERMEDIATE 2
Milano:
Roma:
dal 30 al 31 ottobre
dal 6 al 7 novembre
LABVIEW ADVANCED 1
Milano:
dal 10 al 12 novembre
27 novembre
24 ottobre
CORSO BASE: LA MISURA CON IL SUPPORTO
DEL PERSONAL COMPUTER
Milano:
dal 24 al 25 novembre
Verificate il calendario aggiornato alla pagina web
ni.com/italian inserendo il codice it3z
SEDI DEI CORSI
MILANO - presso gli uffici National Instruments Italy srl
Via Anna Kuliscioff 22, 20152 - Tel.: 02-41309217
Fax: 02-41309215 - email: [email protected]
PADOVA - presso il Centro di Formazione Certificato NI di
I.R.S. srl, Via Vigonovese 81/A, 35127 - Tel.: 049-8705156
Fax: 049-7625206 - email: [email protected]
ROMA - presso Pick Center Piazza Marconi 15, 00192
Tel.: 02-41309217, Fax: 02-41309215 - email: [email protected]
APPUNTAMENTI
MOSTRE CONVEGNO
LABWINDOWS CVI
LABVIEW DAQ
C 2 CONTROL & COMMUNICATION
Torino:
Pescara:
11 settembre
16 settembre
Milano:
Padova:
Roma:
FOCUS EMBEDDED
Genova:
Roma:
27 novembre
2 dicembre
Milano:
dal 20 al 22 ottobre
dal 3 al 5 novembre
dal 11 al 12 novembre
dal 17 al 19 novembre
LABVIEW COMPACTRIO
FIERE
Milano:
SPS/IPC/DRIVES
Norimberga:
dal 27 al 29 ottobre
dal 16 al 18 dicembre
TESTSTAND 1
Milano:
da l13 al 15 ottobre
TESTSTAND 2
Milano:
dal 20 al 21 novembre
LABVIEW REAL-TIME
Milano:
dal 26 al 28 novembre
CLD (CERTIFIED LABVIEW DEVELOPER)
Milano:
17 ottobre
Verificate il calendario aggiornato alla pagina web
ni.com/training/ifz
NOVITÀ!
CORSO BASE: LA MISURA CON IL SUPPORTO
DEL PERSONAL COMPUTER
Padova:
dal 21 al 22 ottobre
CORSO SPECIALISTICO: MISURE ELETTRICHE
Milano:
Padova:
26 novembre
23 ottobre
24-27 settembre
ELECTRONICA, COMPONENTS, SYSTEMS, APPLICATIONS
Monaco:
11-14 novembre
VISION, FIERA INTERNAZIONALE SULLE TECNOLOGIE
DI ELABORAZIONE E RICONOSCIMENTO IMMAGINI
Stoccarda:
4-6 novembre
EVENTI NATIONAL INSTRUMENTS
EMBEDDED TECHNOLOGICAL FORUM - MACHINE BUILDER
Torino:
28 ottobre
Milano:
30 ottobre
Roma:
4 novembre
Firenze:
6 novembre
Padova:
11 novembre
Modena:
13 novembre
Bari:
18 novembre
Ancona:
20 novembre
Napoli:
27 novembre
NIDAYS
Milano:
febbraio 2009
Verificate il calendario aggiornato degli eventi
National Instruments alla pagina web
ni.com/italy/eventi
43
I N T E R V I S TA
a cura di Nadia Albarello
07
INTERVISTA
Abbiamo intervistato Alessandro Ferrero, Professore
ordinario di Misure Elettriche presso il Dipartimento di
Elettrotecnica del Politecnico di Milano e attuale presidente della Instrumentation and Measurement Society
di IEEE, primo non americano ad essere stato eletto a
questa carica.
Professor Ferrero, ci descriva l’utilizzo di
D:
NI LabVIEW in ambito accademico, e nello
specifico, nel suo programma didattico…
R:
Gli Strumenti Virtuali sviluppati con LabVIEW
sono estremamente utili nella didattica dei corsi
di misure ai vari livelli di approfondimento nel corso
degli studi. Nel corso di Studi in Ingegneria Elettrica,
per esempio, utilizziamo strumenti sviluppati con
LabVIEW in due modi differenti. Nei corsi di misure di
base, in cui gli studenti devono apprendere le nozioni
fondamentali e devono imparare ad usare correttamente gli strumenti, sia quelli classici, sia quelli più
moderni, usiamo LabVIEW per sviluppare alcuni
Strumenti Virtuali – tipicamente per eseguire misure di
una certa complessità, in cui l’approccio classico richiederebbe l’impiego di diversi strumenti tradizionali ed
una significativa attività di post-elaborazione delle letture – che poi gli studenti impiegano durante le ore
dedicate all’attività sperimentale. In tal modo assimilano una metodologia di misura – quella per la quale è
stato sviluppato il VI – e cominciano a familiarizzare
con i VI. Nei corsi più avanzati, in cui lo studente deve
apprendere anche tecniche di sviluppo della strumentazione e di algoritmi di misura, LabVIEW viene utilizzato direttamente dagli studenti per sviluppare VI dedicati alla soluzione di uno specifico problema di misura
posto dal docente. Come si vede, quindi, LabVIEW può
essere un utile strumento didattico nei vari passi del
processo di apprendimento delle misure.
Quali sono i vantaggi tangibili dell’utiD:
lizzo di NI LabVIEW nel percorso di
apprendimento?
R:
Direi che i vantaggi più evidenti sono la rapidità
e la chiarezza con cui gli studenti possono applicare i concetti teorici acquisiti durante le lezioni, traducendoli in uno schema a blocchi molto intuitivo. La
naturale conseguenza della velocità di implementazione è la possibilità di modificare con poche operazioni i
44
parametri più significativi dello schema, per verificare
l’impatto che questi stessi hanno sulle prestazioni dell’intero sistema di misura e sull’incertezza di misura,
che resta, in un corso di misure, uno dei punti più
importanti – e più difficili! – da far digerire ad uno studente. Altro aspetto di grandissima importanza è che
tutto ciò può essere realizzato sia simulando i segnali
in ingresso – all’inizio del processo di apprendimento
– sia, negli stadi più avanzati, acquisendo segnali reali.
E, per un ingegnere, saper dominare l’attività sperimentale è, da sempre, un requisito fondamentale.
In che modo NI LabVIEW facilita o veloD:
cizza l’acquisizione dei concetti chiave
del percorso di studi offerto?
R:
Come ho detto rispondendo alla domanda precedente, LabVIEW consente una grande flessibilità nella realizzazione di esperimenti e quindi consente
allo studente di acquisire i concetti chiave sperimentandone la valenza pratica. Fin dall’inizio – sono stato,
credo, il secondo utente europeo di LabVIEW – ho trovato LabVIEW uno degli strumenti più efficaci per tradurre in pratica i concetti esposti alla lavagna. Da anni
tengo il corso di Elaborazione numerica di segnali di
misura e considero LabVIEW indispensabile per far toccare con mano ai miei studenti alcuni concetti chiave
del Digital Signal Processing, quali l’aliasing e il leakage che, altrimenti, resterebbero confinati al regno delle
formule matematiche, più o meno oscure.
Quali sono le prospettive di carriera conD:
crete che si profilano dopo aver terminato il percorso? Quali le prospettive nel mercato italiano per gli esperti di LabVIEW?
I N T E R V I S TA
07
R:
Non è facile rispondere a questa domanda, considerando il fatto che i laureati in Ingegneria
sono di gran lunga i laureati più richiesti dal mercato
del lavoro. Io poi insegno in un corso di studi, quello
di Ingegneria Elettrica, i cui laureati sono in assoluto i
più richiesti e introvabili. Quindi la domanda andrebbe forse posta non tanto in termini di mercato, ma in
termini di quale valore aggiunto può dare la conoscenza di LabVIEW nella professione. Penso che un
ingegnere che abbia imparato ad usare LabVIEW
abbia acquisito anche competenze importanti, non
tanto per la conoscenza di LabVIEW in sé – in fondo
uno dei vantaggi di LabVIEW è anche la facilità con
cui si riesce ad impararlo, almeno fino ad un discreto
livello di approfondimento – quanto per le competenze sperimentali che ha acquisito durante il corso degli
studi, proprio grazie alla facilità con cui LabVIEW permette di eseguire diversi esperimenti. La capacità di
pianificare e predisporre un esperimento e la capacità
di interpretarne i risultati, questi sì sono valori aggiunti importanti, che rendono “appetibile” un ingegnere!
In un momento in cui di fondi devoluti
D:
alla didattica e alla ricerca sono in
costante calo, crede che LabVIEW possa, per
lo meno, rappresentare o un vantaggio tan-
gibile nella creazione di contatti utili con il
mondo dell'industria?
R:
Il vero problema del finanziamento della didattica
non è tanto quello di creare contatti, quanto quello di convincere il mondo dell’industria dell’utilità di
investire costantemente nella ricerca e di utilizzare le
competenze dell’università in modo meno sporadico e
assai più sistematico di quanto non faccia finora. Sono
fermamente convinto che ogni singolo Euro investito in
ricerca abbia un ritorno sicuro, purché si abbia la lungimiranza di guardare anche solo qualche centimetro al di
là della punta del proprio naso. E’ deprimente vedere
come l’industria italiana non sfrutti la ricchezza di competenze che può trovare nell’università, soprattutto in un
settore come quello delle misure e della strumentazione
in cui la ricerca italiana è all’avanguardia nel mondo. Un
dato sopra tutti: da diversi anni i ricercatori italiani pubblicano più del 15% di quanto viene annualmente pubblicato nelle più prestigiose riviste scientifiche di settore,
quali ad esempio le Transactions on Instrumentation and
Measurement di IEEE. Dall’estero arriva un costante
apprezzamento. Dall’Italia il nulla, o quasi.
Mi spiace dirlo, ma di fronte ad un panorama così desolante LabVIEW è sempre 'most welcome', come si direbbe negli USA, benché rappresenti una piccola goccia.
SCELTI PER TE
Abbiamo scelto per te alcune risorse utili per approfondire le tua conoscenza di LabVIEW.
Forum
ILVG.it www.ilvg.it
LabVIEW www.ni.com/labviewzone
LAVA - LabVIEW Advanced Virtual Architects http://forums.lavag.org/home.html
Community
DevZone www.zone.ni.com
Community on ni.com http://community.ni.com/
Mindstorm NXT http://www.ni.com/academic/mindstorms/community.htm
Contenuti
LabVIEW on ni.com www.ni.com/labview
LabVIEW on ni.com/italy www.ni.com/labview/i
LabVIEW Jobs http://www.labviewjobs.com/
The VI Road Show http://viroadshow.blogspot.com/
45
L A BV I E W E L AVO R O
07
AAA
RICERCHIAMO
SISTEMISTA SOFTWARE
Si ricerca per attività su Roma n.1
Sistemista Sw con:
- Conoscenza Sistemi a Microonde /Radar;
- Conoscenze MATLAB, SIMULINK e
LabVIEW.
- Strumenti di laboratorio (oscilloscopio,
analizzatore di spettro,..)
Città: Roma
Informazioni aggiuntive
Contratto: Full Time, Temporaneo/A contratto/A progetto
Durata: 6-8 mesi con possibile estensione.
Rif.#: 445
InterConsulting S.r.l
www.monster.it
PROGETTISTA LABVIEW
Importante gruppo internazionale francese, che opera in un ampio contesto di consulenza ingegneristica e di progettazione,
nell’ottica del potenziamento della sede
di Milano, ricerca progettista LabVIEW che
si occuperà delle attività di sviluppo in
Labview per i sistemi di automazione di
banchi di tests e collaudo.
Il candidato ideale è in possesso dei
seguenti requisiti:
• Laurea in Ingegneria Elettronica/Infor matica/Telecomunicazioni/Automazione
o Diploma equivalente;
• Esperienza di almeno un anno maturata
nella medesima mansione;
• Buona conoscenza dei linguaggi di programmazione LabVIEW e CompactRIO;
• Conoscenza del linguaggio di programmazione C;
• Conoscenza della strumentazione da
laboratorio di elettronica;
• Ottima predisposizione all’utilizzo dei
sistemi informatici e buona conoscenza
del pacchetto Office;
• Conoscenza della lingua inglese.
46
Conoscete bene LabVIEW?
Date un’occhiata alle offerte di lavoro che abbiamo selezionato da ILVG.it…
Completano il profilo un’elevata attitudine al lavoro di team, doti di precisione,
flessibilità mentale e capacità proattiva
nella gestione delle problematiche professionali.
L’inquadramento e la retribuzione saranno commisurati all’esperienza professionale del candidato.
Sede di lavoro: Milano
Assystem Italia
www.talentmanager.it
HYDRAULIC COMPONENTS EXPERT
(Ref. HYD/tm)
The Tasks
The candidate will be involved in the following activities:
- Diesel injection system components
development responsibility, from predevelopment to Start of Production and
later during production, according to the
process;
- Definition of technical requirements;
external suppliers' design coordination;
component and system validation planning; drawing release according to
Product Programs and Powertrain
Master Timings;
- Assessment of supplier offers regarding
technical content, timing and project
requirements;
- Assessment and consolidation of development results;
- Continuous product improvement and
cost reduction planning & coordination;
- Evaluate and release design changes,
according to GM tools and procedures.
The Skills
- Degree in Mechanical Engineering or
equivalent;
- Experience on Fuel injection systems
development and testing;
- Knowledge on Unigraphics system or
similar for fuel systems design and packaging;
ASME standards;
- Good knowledge of Change Mana gement Process for product quality
improvement and cost reduction;
- Good knowledge of Microsoft Office,
knowledge of LabVIEW, INCA, Matlab;
- Fluent English, team working, good
communication and leadership skills are
required.
Funzione professionale: Ingegneria/
Project management|Ricerca e Sviluppo
Settore: Automotive
Sede di lavoro: Piemonte
Tipo di contratto: A tempo indeterminato
Adecco Italia SpA
www.talentmanager.it
ADDETTO ALLO SVILUPPO PAGINE WEB
(identificativo annuncio: 90946)
Numero di riferimento aziendale relativo
all'annuncio1055/0801ASPW
Data di scadenza dell'annuncio23/6/2008
Area aziendale:
Sistemi informativi / Hardware e Software
Sede relativa all'annuncio:
Milano
Tipo di contratto offerto:
Assunzione a tempo indeterminato
Retribuzione:
In funzione dell'esperienza
Descrizione:
2A&F Consulting ricerca per conto di
un'azienda che opera nel settore delle
Telecomunicazioni un Addetto allo
Sviluppo pagine Web su sistema embedded per router residenziali, C, C++, HTML,
WEB UI, XML, software embedded, Linux,
Unix, Java, JavaSwing, TCP/IP, HTTP,
Labview, TCL.
Questo annuncio è rivolto anche ai neolaureati.
Numero di posti offerti:1.
Requisiti richiesti: Titolo di Studio: Laurea in
Ingegneria Informatica o delle Telecomunicazioni oppure Laurea in Informatica.
Conoscenze linguistiche: Inglese buono.
2A&F Consulting S.r.l.
www.assioma.org
L A BV I E W E L AVO R O
LABVIEW SOFTWARE ENGINEER
ADOC Group cerca LabVIEW software
engineer (R8-220) in Regione Piemonte Torino provincia
Esperienza:
Almeno 2 anni maturata nel settore
Automotive o affini
Titolo di studio:
Laurea specialistica/magistrale o di vecchio ordinamento in Ingegneria
dell’Auto mazione/Informatica/Elettro nica/Meccatronica
Il lavoro:
Il candidato/a si occuperà della realizzazione in ambiente Labview di sistemi di
acquisizione, gestione di sensori, sistemi
di test.
Il profilo:
Il candidato deve avere le seguenti caratteristiche:
• Conoscenza Labview 8 o superiore
• Conoscenza Labwindows/CVI
• Conoscenza piattaforma CompactRIO
(cRIO)
• Conoscenza problematiche di gestione
sensori
• Conoscenza delle reti di comunicazione
CAN (Controller Area Network) e tools
• Buona conoscenza della lingua inglese
• Predisposizione al lavoro in team
• Buona capacità di comunicazione con
collaboratori e clienti
• Disponibilità a trasferte
• Conoscenza lingua Inglese.
• Possesso patente B
Le persone interessate (uomini e donne L.
903/77) sono pregate di inviare un dettagliato curriculum vitae corredato da fotografia, citando il rif. R8-220 ed evidenziando la dicitura ”Autorizzo ai sensi della
Legge 196/2003 il trattamento dei dati da
me trasmessi” all’indirizzo e.mail:
[email protected].
Sede di lavoro: Regione Piemonte
Torino provincia
Adoc Group
www.annuncidilavoro.info
TEST ENGINEERS
Ref. DKIT25948
Job Description:
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#.
To be based in Denmark
Sector IT and Telecommunications.
Chronos Consulting
www.chronosconsulting.com
TEST EQUIPMENT DEVELOPMENT
ENGINEER
Riferimento Annuncio: A-192 2008
Sede di lavoro: Provincia di Milano
Per importante società operante a livello
internazionale nel settore della progettazione e produzione di sistemi di collaudo
automatico per apparati elettronici, con
sede nell’area di MONZA, ricerchiamo le
seguenti figure professionali:
Test Equipment Development Engineer
Rif. A-192
Ci rivolgiamo a giovani di età intorno ai
30 anni con laurea breve in materie elettroniche/meccatroniche e con esperienza
quinquennale nello sviluppo di sistemi di
collaudo automatico.
Si richiede:
• conoscenza della strumentazione di
misura di laboratorio controllata da
computer
• conoscenza dei protocolli di comunicazione automotive
• programmazione LabVIEW/CVI
• conoscenza della lingua inglese parlata
e scritta.
È richiesta la disponibilità a viaggiare per
brevi periodi all’estero.
Buone capacità di relazione, affidabilità e
determinazione sono tra i requisiti richiesti che completano il profilo del candidato
ideale.
La società offre un inserimento in
ambiente dinamico, tecnologicamente
avanzato con un trattamento economico
di sicuro interesse.
Sintex S.r.l.
www.e-sintex.it
PROGETTISTA LABVIEW
Importante gruppo multinazionale operante nella consulenza ingegneristica e di
progettazione, nell'ottica del potenziamento del proprio organico, ricerca la
figura di PROGETTISTA LABVIEW che si
occuperà delle attività di sviluppo in
Labview per i sistemi di automazione di
banchi di testa e collaudo.
La candidatura ideale:
• ha una Laurea in Ingengeria Elet tronica/Informatica/Telecomunicazioni
/Automazione o Diploma equivalente
• ha una buona conoscenza dei linguaggi
di programmazione Labview, C e della
strumentazione da laboratorio elettronica
• conosce la lingua inglese
Costituirà titolo preferenziale breve esperienza maturata in ruolo analogo
Informazioni aggiuntive
Codice Riferimento: PL
Persona da contattare:
Elisabetta Mereghetti
Adecco Italia SpA
www.monster.it
47
INFORMATIVA AI SENSI DEL
CODICE IN MATERIA DI PROTEZIONE
DEI DATI PERSONALI
LA VOCE DEGLI UTENTI
LabVIEW World - La prima rivista italiana per la comunità di LabVIEW
Informativa art. 13, d. lgs 196/2003
I dati degli abbonati sono trattati, manualmente ed elettronicamente, da Edizioni Fiera Milano SpA – titolare del trattamento – Via Salvatore Rosa 14, Milano - per l’invio della
rivista richiesta in abbonamento, attività amministrative ed
altre operazioni a ciò strumentali, e per ottemperare a
norme di legge o regolamento. Inoltre, solo se è stato espresso il proprio consenso all’atto della sottoscrizione dell’abbonamento, Edizioni Fiera Milano SpA potrà utilizzare i dati per
finalità di marketing, attività promozionali, offerte commerciali, analisi statistiche e ricerche di mercato. Alle medesime
condizioni, i dati potranno, altresì, essere comunicati ad
aziende terze (elenco disponibile a richiesta a Edizioni Fiera
Milano SpA) per loro autonomi utilizzi aventi le medesime
finalità.
Responsabile del trattamento è: Paola Chiesa.
Le categorie di soggetti incaricati del trattamento dei dati
per le finalità suddette sono gli addetti alla gestione amministrativa degli abbonamenti ed alle transazioni e pagamenti connessi, alla confezione e spedizione del materiale editoriale, al servizio di call center, ai servizi informativi.
Ai sensi dell’art. 7, d. lgs 196/2003 si possono esercitare i
relativi diritti, fra cui consultare, modificare, cancellare i dati
od opporsi al loro utilizzo per fini di comunicazione commerciale interattiva rivolgendosi a Edizioni Fiera Milano SpA
– Servizio Abbonamenti – all’indirizzo sopra indicato. Presso
il titolare è disponibile elenco completo ed aggiornato dei
responsabili.
Informativa resa ai sensi dell’art. 2, Codice
Deontologico Giornalisti
Ai sensi dell’art. 13, d. lgs 196/2003 e dell’art. 2 del Codice
Deontologico dei Giornalisti, Edizioni Fiera Milano SpA –
titolare del trattamento - rende noto che presso i propri locali siti in Milano, Via Salvatore Rosa 14, vengono conservati
gli archivi di dati personali e di immagini fotografiche cui i
giornalisti, praticanti e pubblicisti che collaborano con le
testate edite dal predetto titolare attingono nello svolgimento della propria attività giornalistica per le finalità di
informazione connesse allo svolgimento della stessa. I soggetti che possono conoscere i predetti dati sono esclusivamente i predetti professionisti, nonché gli addetti preposti
alla stampa ed alla realizzazione editoriale delle testate. I
dati personali presenti negli articoli editoriali e tratti dai predetti archivi sono diffusi al pubblico. Ai sensi dell’art. 7, d. lgs
196/2003 si possono esercitare i relativi diritti, fra cui consultare, modificare, cancellare i dati od opporsi al loro utilizzo, rivolgendosi al titolare al predetto indirizzo. Si ricorda
che, ai sensi dell’art. 138, d. lgs 196/2003, non è esercitabile il diritto di conoscere l’origine dei dati personali ai sensi
dell’art. 7, comma 2, lettera a), d. lgs 196/2003, in virtù delle
norme sul segreto professionale, limitatamente alla fonte
della notizia. Presso il titolare è disponibile l'elenco completo ed aggiornato dei responsabili.
48
Sede legale - Via Salvatore Rosa 14, 20156 Milano, tel +39 02 366092.1
fax +39 02 366092.280 www.edizionifieramilano.it
Sede Operativa - Viale Espinasse 141, 20156 Milano
tel. +39 02 366092.1 fax +39 02 366092.525
Direzione
Sergio Maggioni Presidente
Costante Casali Amministratore Delegato
Alberto Taddei Publisher
Comitato
di redazione
Nadia Albarello, Matteo Bambini,
Matteo Foini, Alessandro Ricco,
Redazione
Alberto Taddei Direttore Responsabile - [email protected]
Valerio Alessandroni Direttore Tecnico • [email protected]
Alessandra Pelliconi Segreteria- tel: 02 366092.527
[email protected]
Collaboratori: Nicola Bavarone, Michele Corrà, Massimo Lorenzi, Marco Luciani, Enzo Nava,
Alessandro Ricco, Emanuele Stucchi, Franco Trespidi, Halvor Snellingen
Grafica e
produzione
Bimage.it Progetto grafico e Impaginazione
Franco Tedeschi Coordinamento grafici - [email protected]
Alberto Decari Coordinamento DTP - [email protected]
Grafiche Sima Ciserano - BG - Stampa
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:Edizioni Fiera Milano SpA, Via Salvatore Rosa 14, 20156 Milano.
Si accettano pagamenti anche con le principali carte di credito.
Per gli utenti Developer Suite e standard Service Program
di National Instruments è già incluso l’abbonamento alla rivista
Abbonamento annuale (4 numeri): E 20,00
Abbonamento per l'estero (4 numeri) E 40,00
Prezzo della rivista: E 5,00 - Arretrati: E 10,00
Testata associata • Associazione Nazionale Editoria Periodica
Specializzata
Edizioni Fiera Milano è iscritta al Registro Operatori della Comunicazione n° 11125 del 25/07/2003. Autorizzazione
alla pubblicazione del tribunale di Milano n° 754 del 11/12/2006. Tutti i diritti di riproduzione degli articoli pubblicati
sono riservati. Manoscritti, disegni e fotografie non si restituiscono. LabVIEW World ha frequenza trimestrale, per un totale di 4 numeri all'anno. Tiratura del presente numero: 3.000 copie.

Documenti analoghi

Scarica Sommario - Elettronica Plus

Scarica Sommario - Elettronica Plus I dati conclusivi di NIWeek 2007

Dettagli

13 - LabView World

13 - LabView World on Windows 7, l’ultima versione del sistema operativo Windows, gli utenti LabVIEW possono accedere a nuove tecnologie. Invece di aggiungere funzionalità significativamente nuove o differenti, Micro...

Dettagli

robotica l`interfaccia utente

robotica l`interfaccia utente lo sviluppo di ‘frame grabFig. 2 - Austin, NI Week 1996. Philippe Sauvant-Magnet ber’ sia analogici che digi(Graftek France), Jeff Kodosky e Ignazio Piacentini il giorno della cessione ufficiale de...

Dettagli