Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
08
E 5,00 L A P R I M A R I V I S TA I TA L I A N A P E R L A CO M U N I T L A BV I E W
NOVEMBRE
2008
ROBOTICA
L'INTERFACCIA UTENTE
In caso di mancata consegna restituire alleditore che si impegna a pagare la relativa tassa presso il CMP di Roserio - Milano
Da 10 anni aiutiamo con successo produttori ed integratori di sistemi con un unico scopo: supportarli a sviluppare efcacemente il loro business proponendo le migliori tecnologie presenti sul mercato, coadiuvate da servizi altamente specializzati. Da 10 anni siamo il partner ideale per chi opera nel mondo della visione industriale e dellimaging scientico in generale.
ADVANCED TECHNOLOGIES S.p.A. Via Carducci, 35 | 20090 Trezzano S/N | Milano | Italy T +39 02 4455154 | F +39 02 4453103 www.adv-tech.it
readerservice.it n.21841
SCENARIO
08
WORLD IS PARALLEL
ome riferiamo all'interno della rivista, a NIWeek 2008 ha fatto il suo esordio la nuova versione 8.6 di LabVIEW, che sottolinea ancor pi che in passato la natura intrinsecamente parallela della programmazione grafica a flusso di dati. Lo stesso Jeff Kodosky, cofondatore di National Instruments e considerato il 'padre' di LabVIEW, si chiesto nella sua keynote: "Il mondo parallelo, le persone sono parallele, i computer sono paralleli: perch dovremmo limitarci ai linguaggi sequenziali?". E un riferimento a questa riessione era stampato sulle magliette di migliaia di visitatori. "Facciamo sempre le stesse cose tutti insieme, come camminare, guardare la televisione e masticare il chewing gum. Perch allora dovremmo costringerci a pensare in modo sequenziale quando scriviamo programmi per i computer? Perch imporci un modo innaturale di affrontare questo compito? ha proseguito Kodosky. Il problema fondamentale che, in questo mondo parallelo, per la programmazione utilizziamo ancora un modello di calcolo inadatto. Sto alludendo al modello a programma memorizzato di Von Neumann, nel quale un programma una semplice sequenza di istruzioni che risiede in memoria e viene richiamata all'occorrenza. Questo modello, oggi, troppo banale. Secondo Kodosky, i modelli di programmazione devono essere pi umano-centrici, permettendo ai programmi di descrivere in modo naturale la concorrenza. "Non dobbiamo pi pensare ai programmi come a sequenze di istruzioni, ma come a ussi di dati paralleli. E questo modello a ussi di dati intrinsecamente paralleli alla base della piattaforma LabVIEW", ha ribadito Kodosky. "D'altra parte", egli ha spiegato, "quando abbiamo concepito LabVIEW sapevamo bene che le applicazioni di misura sono intrinsecamente parallele, perch i segnali sici esistono come fenomeni paralleli. E la cose non sono cambiate mano a mano che LabVIEW si esteso a nuovi settori applicativi, no ad arrivare al settore industriale. Al contrario, la natura parallela della programmazione graca si sta rivelando un importante vantaggio competitivo anche in queste nuove aree. In campo industriale, per esempio, Kodosky ha rimarcato il fatto che le architetture delle macchine stanno cambiando velocemente, utilizzando sempre pi processori multicore e Fpga, mentre le applicazioni diventano sempre pi complesse e richiedono l'acquisizione, gestione e analisi di grandi quantit di dati, ormai nella gamma dei petabyte. "Con il progresso dei trend industriali verso macchine altamente parallele e set di dati distribuiti sempre pi grandi, la programmazione graca a usso di dati rende LabVIEW un software ideale per affrontare questa nuova realt", egli ha aggiunto. "Chi utilizza LabVIEW per i propri progetti ha la certezza di produrre dei risultati a prova di futuro. Indipendentemente da come evolver l'architettura dei computer, verso multicore o super-Fpga, la programmazione graca a usso di dati potr sempre coprire le nuove esigenze ed essere all'altezza delle nuove piattaforme di calcolo". In questo numero verranno quindi esaminate pi da vicino le caratteristiche di LabVIEW 8.6, con una particolare attenzione proprio alla natura parallela del nuovo software di programmazione graca.
08
01 WORLD IS PARALLEL
Ignazio Piacentini dirige ImagingLab, societ specializzata nella visione per la robotica
44 APPUNTAMENTI
Oltre ad organizzare propri corsi e seminari, National Instruments sar presente a numerosi eventi
45 LABVIEW E LAVORO
AAA
A TU PER TU
08
Quella della visione artificiale stata una delle D : prime applicazioni industriali in cui si espressa pienamente la potenza di LabVIEW. Quando nato questo connubio e qual stato il suo personale contributo?
R:
Nel 1995 dirigevo una piccola societ italiana Graftek Italy nata sulla base di un accordo con unaltra piccola societ francese Graftek France. Graftek France aveva sviluppato a partire dai primi anni novanta un pacchetto software di analisi di immagine su piattaforma Macintosh che si chiamava Optilab e che ottenne una discreta diffusione in tutto il mondo. Buona parte degli algoritmi e delle funzioni di imaging di questo prodotto vennero sviluppati anche sotto forma di una libreria di VI (Virtual Instruments) per LabVIEW (che aveva compiuto allora la transizione a LabVIEW 2!) sotto il nome di Concept Vi. Mentre lazienda francese si concentrava soprattutto sulla creazione ed edizione di pacchetti software, lomonima azienda italiana si dedicava principalmente alla progettazione e realizzazione di progetti sia in ambito industriale che scientifico, con risultati pi che discreti. Lattivit delle due aziende era nota a National Instruments Corporale
R:
Uno dei grandi meriti di LabVIEW, fin dalle prime versioni, quello di essere una piattaforma estremamente aperta. Lintegrazione di una libreria di visione nata in LabVIEW fu quindi piuttosto semplice. Semmai le preoccupazioni di una piccola struttura come la Graftek di allora erano quelle di mantenere allineate le nuove versioni di Concept VI con i rapidi progressi e crescita delle nuove versioni di LabVIEW. Occorre ricordare che LabVIEW nasce su piattaforma Macintosh OS e che la transizione al vasto mondo
A TU PER TU
08
Windows avviene con larrivo di Windows 3.1 (i lettori che sviluppano sofware si ricorderanno leterna questione big-endian/ little-endian). Ovviamente, larrivo della libreria di imaging direttamente ad Austin signific anche lo sfruttamento sinergico di risorse che gi si trovavano in NI (dagli specialisti della matematica degli algoritmi agli specialisti di ottimizzazione del codice o dellinterfaccia utente) e la possibilit di programmare il futuro sviluppo della libreria di pari passo con la crescita di LabVIEW. Un altro punto che non va dimenticato, anche se non sollevato esplicitamente dalla domanda, riguarda invece lo sviluppo di schede hardware dedicate alla visione. Nei primi anni novanta le videocamere sono ancora per lo pi analogiche e si stanno muovendo i primi passi verso il digitale. National Instruments ha gi in casa tutto la tecnologia e le competenze per 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 della cessione di Concept tali per lacquisizione di Vi che diventer la libreria IMAQ Vision immagini.
geometrico, OCR, riconoscimento di bar-code e 2D matrix, funzioni di tresholding e di edge detection avanzate e molte altre funzioni. Per quanto riguarda invece lacquisizione di immagini, sia da dispositivi analogici che da sensori digitali, la videocamera diventata semplicemente una altro device, del tutto compatibile con MAX (Measurement and Automation Explorer).
Dalla visione alla robotica il passo breve. In che D : modo il successo delle applicazioni di visione sta contribuendo a rendere LabVIEW sempre pi 'Industrial'?
R:
stato necessario sviluppare delle librerie o delle D : funzioni LabVIEW particolari per utilizzare il sistema di programmazione grafica nel campo della visione?
R:
LabVIEW nasce essenzialmente per lacquisizione dati in laboratorio, anche se oggi migrato in molti altri settori. Le differenze pi sostanziali rispetto allacquisizione mono-dimensionale da un sensore rispetto allacquisizione di un'immagine che intrinsecamente bi-dimensionale sono legate principalmente a tre requisiti: Manipolazione di un volume di dati importante (un sensore da 1000 x 1000 pixel a 25 frame per secondo a 8-bit genera 25 Megabyte /secondo) sia a livello di trasferimento dati che di allocazione di memoria Visualizzazione nellinterfaccia utente del dato immagine Interazione utente con limmagine e intercettazione degli eventi mouse e generazione di overlay sullimmagine stessa Queste peculiarit del dato immagine erano gi state affrontate e risolte nella libreria di imaging di origine, ma sono state ulteriormente migliorate nelle versioni di LabVIEW successive alla cessione. Dal punto di vista strettamente algoritmico, la libreria si arricchita nel corso degli anni (e ne sono passati gi molti) con tutto quello che il mercato della visione ha richiesto: pattern matching convenzionale (cross-correlazione normalizzata) e
indubbio che LabVIEW stia migrando sempre pi verso il mondo dellautomazione, ma la sfida che National Instruments deve affrontare verso colossi come Beckhoff, Siemens, Rockwell, ecc, ha qualcosa di eroico! forse pi facile entrare nel mondo dellautomazione attraverso qualche ingresso laterale e sfruttando al meglio le tecnologie avanzate che sono gi patrimonio di National Instruments. La visione associata alla robotica si presta particolarmente bene a facilitare questa transizione. Il mondo della robotica in forte crescita, cos come in forte aumento lutilizzo della visione per la robotica. Mentre la robotica pesante e in particolare quella dellautomotive essenzialmente a crescita zero, la crescita invece stimolata da molti nuovi settori che vanno dallassemblaggio flessibile, al packaging, al biomedicale e farmaceutico, al food processing, al testing (settore che vede una presenza fortissima di NI). Purtroppo, laspetto meno avanzato del mondo robotico quello della programmazione. A scanso di fraintesi, va invece precisato che dal punto di vista meccanico, motori e azionamenti e hardware di controllo della cinematica inversa e delle funzionalit robotiche, i robot industriali rappresentano un settore tecnologico particolarmente avanzato. ImagingLab ha ovviato a questa idiosincrasia sviluppando una libreria robotica per LabVIEW. Un effetto estremamente positivo legato a questo sviluppo quello di eliminare completamente la separazione tra ambiente di programmazione della robotica, programmazione del sistema di visione e programmazione del software applicativo e interfaccia utente.
Quali sono i miglioramenti che le caratteristiche D : della nuova release 8.6 di LabVIEW hanno permesso di portare nelle applicazioni di visione e di robotica?
R:
Direi che tra le migliorie introdotte, quella inerente al supporto di CPU multi-core quella di maggior interesse per la visione, permettendo una scalabilit dellaumento prestazionale. Va per detto che non tutti gli algoritmi di visione sono in grado di distribuire il processo computazionale di unimmagine su CPU multiple. Una serie di altre migliorie
A TU PER TU
Fig. 3 - Una macchine per il testing automatico di memorie Dimm con sistema robotizzato di auto-guida per la manipolazione dei moduli di memoria. Lintero software applicativo realizzato in LabVIEW
in linea, ecc. La comunicazione tra ImagingLab sia con National Instruments che con le case produttrici di robotica molto importante e ci permette di seguire con sufficiente anticipo i progressi sia della tecnologia di visione che dei sistemi robotica, mantenendo aggiornati gli aspetti applicativi del software da noi prodotto. Ladozione della nostra piattaforma integrata di visione e di robotica dai costruttori di macchine e il suo utilizzo ripetitivo non solo forniscono un feedback utilissimo per migliorare di continuo la piattaforma, ma generano anche le condizioni economiche per ulteriori sviluppi. La visione delle macchine inizia ad affrontare il passaggio da una visione essenzialmente 2D a una visione tri-dimensionale con i vantaggi e le complicazioni che ne conseguono. ImagingLab, cosciente dellapporto che la visione 3D offre alla robotica, sta gi lavorando su sistemi di imaging tri-dimensionali. In particolare ha portato a termine un primo progetto per un importante produttore di videocamere 3D (SICK-IVP) sviluppando un tool-kit per lutilizzo di questi dispositivi direttamente da LabVIEW.
riguardano invece alcuni dettagli della libreria di visione. La release 8.6 si porta appresso un generale miglioramento della gestione di progetti complessi, di cui beneficiano naturalmente anche i progetti di visione e robotica. Per quanto riguarda la robotica, una novit importante rappresentata da un toolkit specifico per SolidWorks, che permette di gestire modellazione e simulazione in 3D direttamente da LabVIEW.
Oltre che nella robotica le applicazioni di D : visione realizzate con LabVIEW trovano spazio anche in altri settori industriali (per es. identificazione automatica, controllo qualit, ecc.)?
R:
Quali sono le iniziative previste da ImagingLab per D : mantenere sempre viva la competenza acquisita in questi anni sulle applicazioni di LabVIEW nella visione e nella robotica?
R:
ImagingLab ha sviluppato nel corso degli ultimi anni una piattaforma in LabVIEW per la gestione di applicazioni avanzate di robotica e visione, soprattutto per il pick & place di componenti in sistemi di assemblaggio automatico. proprio lintegrazione stretta offerta dallambiente di programmazione grafica che ha determinato il successo del software applicativo che stato utilizzato su decine di stazioni robotiche utilizzanti robot sia Scara che antropomorfi di diversi produttori. Un componente importante di questa piattaforma proprio la libreria di robotica in LabVIEW, che permette di controllare robot di diversi produttori (attualmente la libreria permette di controllare robot di Denso Wave e di Mitsubishi Electrics ed in corso limplementazione di una libreria per i robot Kuka), coadiuvata da un tool-kit che risponde a una serie di bisogni ripetitivi quali la calibrazione tra robotica e visione, la generazione di modelli di riferimento, la gestione di criteri di pass-fail
S, certamente. LabVIEW e la libreria specifica di visione si prestano a una moltitudine di applicazioni nei settori pi diversi e non solo nei settori industriali. Nel mondo specifico dellindustria si sono diffuse applicazioni di controllo di qualit sia in linea che a fine linea, che effettuano le misure pi disparate, da quelle dimensionali alle verifiche di colore. Lidentificazione automatica invece un termine generico che ingloba sia il riconoscimento di forma (pattern matching), sia la lettura di codici (bar code, 2D) e quella di caratteri (OCR). La libreria di visione si molto evoluta, sia in termini di contenuto algoritmico, di ottimizzazione degli stessi e di facilit duso. Si pu affermare che i limiti applicativi sono legati essenzialmente alle capacit ed esperienza di che ne fa uso.
Note sullautore
Ignazio Piacentini (ImagingLab) ha conseguito nel 1987 un M.Sc. (Master of Science) in Digital Systems and Instrumentation al Polytechnic of Central London. Dal 1976 al 1991 si occupato di sistemi di misura e di controllo nellambito di vari progetti europei di ricerca nel settore della fusione termonucleare. stato Business Development Manager Europeo per National Instruments Corporale. Oggi dirige ImagingLab Srl, una societ di progettazione e di integrazione fortemente specializzata nel settore della visione per la robotica.
W H AT S N E W
08
- Usare il tasto abbreviato Cleanup Diagram tenendo premuti <CTRL+U>. Il Block Diagram Cleanup tool ha
Figura 2 - Usate il pulsante Cleanup Diagram sulla toolbar dello schema a blocchi o <CTRL+U>
Bench il Block Digram Cleanup tool possa rendere il vostro codice LabVIEW molto pi facile da capire, la funzionalit di quest'ultimo rimane esattamente la stessa dopo l'uso del tool, cos come avviene quando si usano Clean Up Wire o Align Objects. Vi sono tre modi per eseguire la pulizia di uno schema: - Cliccare il pulsante Cleanup Diagram sulla toolbar dello schema a blocchi - Selezionare Edit>>Cleanup Diagram dai menu dello schema a blocchi
diverse opzioni configurabili, accessibili selezionando Tools>>Options e scegliendo Block Diagram: Cleanup dall'elenco di categorie. Tra le pi importanti opzioni di configurazione ricordiamo le seguenti: - Spaziatura orizzontale e verticale dei blocchi Specifica la spaziatura minima in pixel fra due oggetti qualsiasi dello schema a blocchi. - Spaziatura orizzontale e verticale dei fili Specifica la spaziatura minima in pixel fra due fili qualsiasi o qualsiasi filo e qualsiasi oggetto dello schema a blocchi.
Figura 1 - Ridisposizione e pulizia di un intero schema a blocchi con un singolo click del mouse
W H AT S N E W
Figura 3 - Personalizzate le impostazioni di pulizia, incluse spaziatura dei fili, spaziatura dei blocchi e qualit del layout
- Allineamento a sinistra dei controlli del diagramma Sposta tutti i controlli sul lato sinistro dello schema a blocchi. Se un controllo all'interno di una struttura, LabVIEW sposta il controllo vicino al bordo sinistro della struttura. - Allineamento a destra degli indicatori del diagramma Sposta tutti gli indicatori sul lato destro dello schema a blocchi. Se un indicatore all'interno di una struttura, LabVIEW sposta l'indicatore vicino al bordo destro della struttura. - Qualit del layout Determina quanto tempo LabVIEW deve dedicare alla pulizia dello schema a blocchi. Una qualit del layout pi elevata si traduce in uno schema a blocchi pi compatto.
TIPS AND TRICKS PER L'USO DEL BLOCK DIAGRAM CLEANUP TOOL
zionare il layout del vostro schema a blocchi. Ogni utente ha preferenze uniche per quanto riguarda spaziatura, allineamento e densit. Il Block Diagram Cleanup tool migliora significativamente l'aspetto del vostro codice, ma pi potente quando lo utilizzate con altri tool, come Align Objects. Per esempio, potete iniziare selezionando Cleanup Diagram e quindi usare il tool Distribute Objects per eseguire ulteriori regolazioni della spaziatura. I cinque suggerimenti principali per usare il Block Diagram Cleanup tool sono i seguenti: - Salvate sempre una copia di backup dei VI ai quali applicherete il Block Diagram Cleanup tool per la prima volta. Potete anche annullare ('Undo') una pulizia (Edit>>Undo Cleanup o <CTRL+Z>) purch non abbiate ancora salvato il VI dopo avere eseguito il Cleanup Diagram. Scegliendo 'Allineamento a sinistra dei
controlli dello schema contenente' nel menu opzioni, si intendono tutti i controlli. Prendete tempo per valutare il vostro schema a blocchi prima di selezionare questa opzione per assicurarvi che questo sia il risultato che desiderate. Lo stesso vale per l'opzione 'Allineamento a destra degli indicatori dello schema contenente'. Con il Block Diagram Cleanup tool potete fare un uso migliore della funzionalit Quick Drop introdotta in LabVIEW 8.6. Combinando il testo predittivo di Quick Drop con il Clean Diagram, potete programmare codice in modo rapido e pulito. - LabVIEW considera le etichette degli oggetti come parte di un oggetto dello schema a blocchi. Ci significa che le etichette di oggetti come controlli e indicatori vengono spostate con i loro oggetti associati. - Il Block Diagram Cleanup tool non sposta etichette libere, come testo e commenti aggiunti al vostro schema a blocchi. Tenete le posizioni delle etichette libere relativamente intatte annidandole all'interno di una struttura come un while loop.
CONCLUSIONE
Potete usare il Block Diagram Cleanup tool per riorganizzare un intero schema a blocchi in pochi secondi con un singolo click del mouse. Bench il tool non sia inteso per perfezionare il layout del vostro schema a blocchi, le opzioni di configurazione vi offrono la possibilit di specificare spaziatura dei fili, spaziatura dei blocchi e compattezza dello schema a livello di pixel. Usato con funzionalit come Align Objects e Quick Drop, il Block Diagram Cleanup tool diventa un potente strumento per sviluppare rapidamente codice pulito.
Note sullautore
Figura 4 - Il Diagram Cleanup pi potente quando lo utilizzate con altri tool come Align Objects
Laureato in ingegneria nucleare al Politecnico di Milano, Matteo Foini lavora in qualit di Technic al Marketing Engineer presso National Instruments Italy
W H AT S N E W
08
Il modulo LabVIEW Real-Time 8.6 introduce function block standard industriali per la programmazione di controlli. Tali function block sono progettati per l'esecuzione real-time e hanno la possibilit di pubblicare i valori dei parametri in rete per l'accesso remoto e la programmazione HMI
abVIEW un linguaggio di programmazione grafica intuitivo, con centinaia di funzioni integrate di controllo, analisi, comunicazione, file I/O, e cos via. Il modulo LabVIEW Real-Time 8.6 introduce 18 function block basati sullo standard internazionale IEC 61131-3 per la programmazione di sistemi di controllo industriale. Tali function block sono scritti in LabVIEW, progettati per l'uso in applicazioni real-time, e hanno la possibilit di pubblicare i loro parametri come shared variable per la programmazione di interfacce uomo-macchina (HMI) e il monitoraggio di stato. Potete sfruttare ora questi function block industriali con tutti i VI e le funzioni esistenti in LabVIEW per sviluppare applicazioni industriali di misura e controllo semplici e complesse.
Figura 1
blocks indipendentemente nella vostra applicazione. Per esempio, potete usare ogni istanza del function block PID per controllare un sistema separato.
I function block vengono installati con il modulo LabVIEW Real-Time 8.6 sotto Real-TimeFunction Blocks sulla palette delle funzioni e possono essere utilizzati in LabVIEW Real-Time e LabVIEW per Windows. Ogni function block scritto in LabVIEW e progettato per l'uso in applicazioni real-time con esecuzione deterministica non bloccante, cosa che li rende sicuri per l'uso nel vostro codice time-critical. I subVI sorgenti sono situati in \LabVIEW 8.6\vi.lib\functionblocks. Ogni istanza di un function block ha un nome e uno spazio di memoria unici con esecuzione rientrante. Grazie a ci, potete usare questi function
I function block che usate nella vostra applicazione sono visibili nel LabVIEW Project con accesso remoto alle shared variable legate a ciascun terminale. Potete configurare i terminali e le variabili dalla pagina Properties dei function block. Di default, le variabili terminali vengono configurate come shared variable single-process con FIFO real-time, che potete utilizzare all'interno della vostra applicazione real-time per accedere ai valori dei parametri senza introdurre jitter. Potete configurare ogni terminale in modo che riceva il suo valore dal terminale sullo schema a blocchi, remota-
Figura 2
W H AT S N E W
Figura 3
Figura 4
li come shared variable pubblicate in rete per dare accesso remoto ai valori dei parametri per la programmazione HMI e il monitoraggio remoto. Per la programmazione HMI potete usare le shared variable nelle applicazioni LabVIEW sul vostro desktop o su computer touch panel industriali.
Il Distributed System Manager, introdotto a sua volta con LabVIEW 8.6, consente il monitoraggio centralizzato dei sistemi presenti in rete e la gestione dei dati pubblicati. Dal system manager potete visualizzare i valori dei parametri dei function block senza la necessit di avere l'ambiente di sviluppo
LabVIEW. Configurando il terminale di un function block in modo che riceva il suo valore dalla variabile, potete anche scrivere i valori dei parametri dal system manager. In questo modo, per esempio, potete regolare remotamente i function block PID.
COMSOFT
Specialisti nel PROFIBUS
Soluzioni National Instruments disponibili con tecnologia PROFIBUS cRIO PB
Modulo Master/Slave PROFIBUS DP per sistemi cRIO della National Instruments
readerservice.it n.21777 Produttore: COMSOFT GmbH | Wachhausstr. 5a | 76227 Karlsruhe | Germania Tel.: +49- (0) 721 - 9497 - 291 | Fax: +49- (0) 721 - 9497 - 129 E-mail: infoicp@comsoft.de | Internet: www.comsoft.de Contatto commerciale: SOLINTEC AUTOMAZIONE SNC | Via 8 Marzo 1/B | 2040 Cavenago B.za (MI) | Italia | Tel.: 02 - 95336189 | Fax: 02 - 95335432 E-mail: info@solintecautomazione.it | www.solintecautomazione.it
08
Jan Klasson
uando si pianificano ed elaborano progetti di sistema, le descrizioni visive sono molto utili. L'UML Unified Modeling Language offre una notazione standardizzata per la modellazione grafica dei sistemi. Lo standard ha un'accettazione industriale e sono disponibili tool commerciali. I diagrammi UML possono descrivere sistemi nel loro intero ciclo di vita. Bench molti di questi tipi di diagrammi siano molto utili, il diagramma a classi UML al primo posto per il progettista. L'articolo spiega che cosa si pu descrivere con il diagramma a classi UML, come utilizzarlo e come il supporto dei tool permetta la generazione e la manutenzione automatica dei diagrammi. L'articolo si conclude con una panoramica del diagramma a stati, che a sua volta un diagramma utile per il programmatore LabVIEW.
sce tale meccanismo di raggruppamento. Per un'introduzione alla programmazione orientata agli oggetti si pu vedere l'articolo pubblicato nel n. 4 di LabVIEW World, pubblicato nel 2007. Il diagramma a classi UML indica le classi con caratteristiche e relazioni. Poich l'UML indipendente dal linguaggio di programmazione, lo stesso diagramma pu essere implementato in qualsiasi linguaggio di programmazione orientata agli oggetti. La figura 1 illustra un esempio di diagramma a classi UML. Ogni rettangolo rappresenta una classe. Per chiarezza, quando esploreremo il diagramma a classi UML useremo codice LabVIEW.
L'UML fornisce i mezzi per comunicare progetti. Questi sono alcuni esempi in cui l'UML pu essere utile: Descrivere aspetti importanti di una soluzione per discuterla con altri sviluppatori. Rivelare il progetto per rendere pi semplice la manutenzione. Introdurre nuovi programmatori in un progetto. Visualizzare le idee e le decisioni di progetto per s stessi. Il supporto dei tool permette di risparmiare tempo quando si crea documentazione. L'UML ha una vasta accettazione industriale e sono disponibili molti tool per creare diagrammi UML. L'Endevo GOOP Development Suite UML Architect Edition l'unico tool UML che permette la generazione ed il reverse engineering di codice LabVIEW.
La gerarchia dei VI LabVIEW offre una vista ad alto livello di un'applicazione, che indica i singoli VI e le loro dipendenze da altri VI senza alcun dettaglio sul codice. Per presentare il progetto ad un livello pi elevato dei singoli VI necessario un meccanismo di raggruppamento logico. Quando si applica la programmazione orientata agli oggetti, la classe forni-
La figura 2 illustra la classe UML e la lvclass nell'ambiente del progetto. I metodi sono elencati nella parte inferiore della classe UML. In LabVIEW, ogni metodo realizzato come un VI di metodo. I metodi Init e CleanUp della classe LabVIEW sono responsabili dell'inizializzazione e pulizia dell'oggetto. La sezione intermedia della classe UML elenca gli attributi. Gli
10
attributi rappresentano l'informazione, o i dati, che possibile memorizzare in istanze della classe. In LabVIEW, gli attributi sono definiti come campi dati in un typedef (file CTL), ed ogni classe ha la propri type def con lo stesso nome della classe. La figura 3 descrive i campi dati della classe LabVIEW.
La figura 6 indica come un oggetto inizializzato della classe RealModelTempSensor creato e memorizzato all'interno dl metodo Init della classe InstrumentManager.
Figura 3 - Attributi UML e dati della classe LabVIEW Figura 6 - Oggetto RealTempSensor creato e memorizzato da InstrumentManager
L'UML usa varie relazioni per descrivere le dipendenze fra classi. Al contrario, la gerarchia dei VI definisce solo un tipo di relazione, 'usa', per descrivere il fatto che un VI richiama un subVI dal suo diagramma. Per illustrare le relazioni in UML, prenderemo in esame le tre relazioni pi utili: eredit, aggregazione composta ed associazione. Altre relazioni sono: dipendenza, aggregazione e realizzazione. Le tre classi di sensori di temperatura della figura 1 sono incluse in una gerarchia di eredit. Questa relazione ha una corrispondenza diretta in LabVIEW. Le classi LabVIEW ereditano fra loro esattamente nello stesso modo.
Figura 4 - Aggregazione composta
L'aggregazione composta un utile modello di progettazione, perch definisce un contenitore per gli oggetti. Per ottenere un oggetto sensore di temperatura inizializzato, il codice client, per esempio ApplicationGUI, deve semplicemente
Nell'UML, l'aggregazione composta indicata da una linea con un rombo nero, come si vede nella figura 4. Questa relazione significa che la classe InstrumentManager una repository per gli oggetti TempSensor. Logicamente, gli oggetti TempSensor sono memorizzati all'interno di oggetti InstrumentManager. In LabVIEW, il controllo della classe TempSensor incluso nei dati oggetto di InstrumentManager, come si vede nella figura 5.
chiamare il VI del metodo GetTempSensor (figura 7) della classe InstrumentManager. Un'altra relazione utile l'associazione. Essa pi vaga dell'aggregazione composta ed spesso utilizzata per indicare una relazione 'usa', come illustrato nella figura 8.
11
08
Le classi sono fornitori di servizi, non un modo per implementare dati globali. Tuttavia, sono un meccanismo eccellente per evitare dati globali.
La figura 9 descrive il codice all'interno del metodo GUI di ApplicationGUI che causa la dipendenza visualizzata come relazione di associazione.
Molti tool UML forniscono moduli di connessione del codice. L'Endevo GOOP Development Suite, usato per creare tutti i diagrammi in questo articolo, offre una connessione di codice per le classi LabVIEW. I tool di connessione del codice possono fornire queste caratteristiche per i diagrammi a classi UML (l'Endevo GOOP Development Suite supporta tutti e tre): Generazione codice Supporta la generazione di codice da un diagramma a classi. Reverse Engineering Supporta la generazione di diagrammi a classi da codice esistente. Sincronizzazione Supporta la manutenzione dei diagrammi quando il codice o il diagramma cambiano. Probabilmente, la caratteristica pi importante il reverse engineering, perch permette di creare la corretta documentazione del progetto il diagramma a classi in qualsiasi punto dello sviluppo. Nella generazione del codice si risparmia tempo, perch non necessario creare manualmente tutti gli elementi di codice descritti nel diagramma a classi, tuttavia rimane un'operazione eseguita una sola volta durante lo sviluppo. La sincronizzazione, insieme al reverse engineering, offre un modo di lavoro nel quale il progetto 'sempre' aggiornato. Ogni volta che necessario un progetto corretto, si pu eseguire la sincronizzazione. Se supportato solo il reverse engineering, il diagramma non sar aggiornato altrettanto spesso. La ragione che dopo ogni operazione di reverse engineering necessario aggiornare manualmente il layout grafico ( difficile che i tool possano fornire un layout perfetto). Non si tratta di molto lavoro, ma occorre qualche minuto.
Il diagramma a classi utile al progettista quando deve creare la bozza di una soluzione o descrivere il progetto completo. Poich lo scopo principale del diagramma quello di creare una comprensione del progetto, inutile aggiungere informazioni dettagliate se queste non migliorano la comprensione stessa. Aggiungere classi e relazioni un punto d'inizio naturale per il progetto. Anche i metodi pubblici sono importanti, perch forniscono informazioni sui servizi messi a disposizione da una classe. Il termine 'pubblico' denota la visibilit dei metodi. Pubblici significa che possono essere utilizzati da metodi di altre classi. Privati significa che possono essere utilizzati solo dall'interno della classe. Protetti significa che sono condivisi fra classi in una gerarchia di eredit. Normalmente, i metodi protetto e privato sono caratteristiche che meglio aggiungere durante la codifica. I metodi possono avere parametri in UML controlli e indicatori in LabVIEW ma normalmente i parametri non aggiungono nulla alla comprensione del progetto, quindi preferibile aggiungerli nel codice. Gli attributi sono meno importanti dei metodi e non vengono normalmente aggiunti durante la progettazione, a meno che il diagramma sia generato da tool. Infatti, una classe prevalentemente definita dai servizi che fornisce (mediante metodi pubblici); le capacit di memorizzazione dei dati sono aggiunte quando vengono implementati i metodi.
Gli aggiornamenti dell'UML supportati da tool non sono solo pi efficaci in termini di tempo rispetto alla manutenzione manuale dei diagrammi. Il tool fornisce effettivamente l'analisi automatizzata del codice, promettendo perci una maggiore correttezza rispetto ai diagrammi aggiornati manualmente. L'analisi mediante tool pu trovare elementi facilmente trascurati dallo sviluppatore. I diagrammi generati da tool sono anche pi coerenti per quanto riguarda le relazioni fra le classi, perch vengono
12
applicate ogni volta le stesse regole. Quando crea manualmente i diagrammi, il progettista ha flessibilit nella scelta delle relazioni. Le definizioni di relazioni dell'UML non sono cos rigorose da rendere possibile un solo modo per fare 'correttamente'. Per rendere i diagrammi UML facilmente comprensibili all'interno di un gruppo di sviluppatori, necessario applicare qualche convenzione sull'uso delle relazioni. I tool di reverse engineering forniscono tale convenzione.
La figura 10 descrive il dialogo di reverse engineering che viene lanciato dall'interno del progetto. Tutte le classi sono aggiunte automaticamente al dialogo. In alternativa, possibile selezionare singole classi. La figura 11 mostra il diagramma a classi risultante; le classi sono state spostate per migliorare il layout, ma tutte le informazioni sono state generate da tool. Quando una classe UML stata collegata al codice (automaticamente durante il reverse engineering), sulla classe sono disponibili le operazioni di sincronizzazione. Nell'UML si possono aggiungere metodi ed attributi (campi dati) e i cambiamenti possono essere sincronizzati al codice e viceversa.
USO DEL DIAGRAMMA A CLASSI PER CODICE NON ORIENTATO AGLI OGGETTI
L'ApplicationGUI nel nostro esempio un lvclass con un VI metodo GUI. Se fosse stato semplicemente un VI -
ApplicationGUI.vi avrebbe potuto ancora essere visualizzato in UML. In questo caso, la classe UML avrebbe utilizzato un'annotazione, <<GUI>>, prima del nome della classe (figura 11). Tale annotazione viene chiamata tipo stereo in UML ed usata per aggiungere semantica alla classe UML. In questo caso, <<GUI>> denota che si utilizza il simbolo della classe per il VI GUI dell'applicazione, che non una classe. Sembra naturale avere l'effettivo VI GUI nel diagramma a classi, nonostante non sia una classe. Esso contribuisce, infatti, alla comprensione del progetto. Un altro modo di Figura 11 - Illustrazione di un VI usare il simbolo della GUI come classe UML con il tipo stereo 'GUI' classe UML per codice non orientato agli oggetti il raggruppamento di VI. La figura 12 mostra i VI di un lvlib visualizzati come classe UML usando il tipo stereo 'LVLIB'. Il nome del lvlib usato come nome della classe in UML. Se non si usano i lvlib, come nome della classe si usa il concetto comune rappresentato dai VI, come i VI Binary File. In questo caso, il tipo stereo sarebbe 'VI'. I VI del raggruppamento logico sono descritti come metodi in UML. L'applicazione di questa tecnica rende possibile usare l'UML anche se non viene utilizzata la programmazione orientata agli oggetti. Rispetto alla gerarchia dei VI, questa tecnica mette in luce una responsabilit comune fra i gruppi di
13
08
VI, mentre la gerarchia dei VI si focalizza solo su relazioni 'usa' fra i singoli VI. Questa tecnica rende inoltre possibile elaborare le dipendenze fra i gruppi di VI usando le relazioni UML.
Vi sono molti aspetti differenti della progettazione di sistemi e non possibile catturarli tutti in un solo tipo di immagine. L'UML definisce quindi una serie di tipi di diagrammi, dove ogni tipo cattura determinati aspetti del progetto. Oltre al diagramma a classi, un altro diagramma utile al programmatore LabVIEW il diagramma a stati. Descriveremo quindi anche questo tipo di diagramma.
tate macchine a stati o handler di messaggi in coda. , per esempio, molto comune implementare VI UI come VI di macchine a stati. Le macchine a stati sono un potente meccanismo di implementazione, ma pu essere difficile ottenere una visione d'insieme di tutte le possibili transizioni di stato dal codice. L'Endevo GOOP Development Suite pu generare diagrammi a stati da un VI di macchina a stati. Le figure 13 e 14 lo illustrano usando un VI creato come esempio il template della macchina a stati standard LabVIEW. NI fornisce anche il toolkit del diagramma a stati, che permette al programmatore di creare diagrammi a stati ed ottenere per essi il codice LabVIEW.
IL DIAGRAMMA A STATI
Il diagramma a stati di grande interesse per il programmatore LabVIEW perch spesso nei VI vengono implemen-
L'articolo ha esplorato come si possono usare i diagrammi a classi e a stati UML per visualizzare il progetto di programmi LabVIEW. Per essere produttivi durante la progettazione, vitale un buon supporto di tool. Abbiamo illustrato come si pu usare l'Endevo GOOP Development Suite non solo per la modellazione, ma anche per la generazione automatizzata della documentazione del progetto. Usando la funzionalit di collegamento del codice, l'Endevo GOOP Development Suite diventa un tool per esplorare visivaFigura 13 - Par te dello schema a blocchi da una macchina a stati LabVIEW mente il codice da un punto di vista del progetto. Per ulteriori informazioni sull'UML, visitate www.uml.org. Visitate anche www.endevo.se per altri documenti e demo video. Un eccellente libro sull'UML UML Distilled (3a edizione) di Martin Fowler (ISBN 0-321-19368-7).
CONCLUSIONE
Note sullautore
Readerser vice.it n. 816
Jan Klasson Vice President of Products & Training presso Endevo un Alliance Partner di NI svedese e docente di un corso su LabVIEW Object Oriented System Design in Svezia ed Europa. Lavora da 15 anni su sviluppo e metodologie orientati agli oggetti usando C++, Java e LabVIEW. Jan ha inoltre operato come consulente utilizzando LabVIEW in diversi progetti di misura da LabVIEW 4. Pu essere contattato all'indirizzo: jan.klasson@endevo.se.
14
La nuova famiglia Sony XCD- interfaccia IEEE 1394b ed una gamma di prodotti completa per risoluzione e velocit di acquisizione - selezionare la giusta telecamera per i vostri Sistemi di Visione non mai stato cosi facile. Caratteristiche superiori di qualit dellimmagine, alta velocit di acquisizione e interfaccia digitale 1394b, questi nuovi modelli XCD sono perfetti per applicazioni industriali di alta qualit. Per maggiori informazioni, contattate il nostro distributore italiano
vision
readerservice.it n.22396
Visionlink srl Via Marco Polo 22 20038 Seregno (Mi) Italia t +39 0362 6002.02 f +39 0362 600129 info@visionlink.it www.visionlink.it
08
PROFIBUS DP e PROFINET IO possono essere integrati in sistemi di misura e automazione per applicazioni real-time
uando si rende necessaria lintegrazione di misure di di applicazioni real-time relative allacquisizione dati e al conprocesso e di sistemi di test in ambienti di automazio- trollo di automazione, permettendo a entrambi gli ambiti ne per applicazioni real-time, gli utilizzatori si trovano applicativi, mediante laccesso alla comunicazione PROFIBUS nella posizione di dover affrontare complesse strutture con DP, di lavorare sia in modalit stand alone che in combinaprotocolli seriali di diversa natura la cui integrazione richiede zione con le attuali tecnologie a logica PLC. un elevato tempo di ingegnerizzazione con relativo incremento dei costi. Lo scopo della piattaforma multi-dominio PROFIBUS DP MASTER E DP SLAVE quindi quello di offrire una semplice integrazione degli stessi Il Modulo cRIO PROFIBUS DP corredato di uninterfaccia di minimizzando i costi di sviluppo. comunicazione seriale isolata di tipo RS485 PROFIBUS DP e Luso integrato delle tecnologie per le misure e per i sistemi supporta tutti i Baud rate di default fino a 12 Mbit/s. Le di test insieme alla classica tecnologia di controllo tipica del dimensioni massime dellimmagine di processo dei dati di I/O mondo PLC, consente di raggiunge di 8 kbyte ed prevista re il concetto di soluzione PAC, oriunalimentazione esterna del ginariamente nata come una pura modulo di 24Vc.c.. piattaforma dautomazione [1,2]. Il Vengono supportate entrambe le termine PAC, implementato dagli modalit operative PROFIBUS DP analisti di ARC Advisor Group, deriMaster e DP Slave e per lutilizzo va da PLC (Programmable Logic come DP Master possibile concontrol), dove la 'A' dellacronimo nettere tutti i prodotti PROFIBUS PAC, sta per Automazione e si intenDP di mercato, mentre il funziode un ambiente liberamente pronamento come DP Slave permetgrammabile per applicazioni di te la connettivit tra il mondo automazione basate su tecnologia PAC di National Instruments e i computer. Le piattaforme PAC inclusistemi PLC pi utilizzati. dono diverse funzionalit di autoL'applicazione viene direttamenmazione, dalla logica di comando e te sviluppata nel sistema cRIO di al controllo motori e drive, alle National Instruments a livello di misure tecnologiche di processo Fpga o sul sistema integrato anche complesse. ll risultato di tutto LabVIEW RT. I driver del modulo questo consente di ottenere una cRIO PROFIBUS provvedono alla reale piattaforma multi-dominio. modalit di funzionamento sia Figura 1 - Modulo cRIO PROFIBUS DP Grazie allambiente integrato dei Master che Slave per mezzo di sistemi PAC possibile infatti miniappropriate API e, a livello di mizzare i costi di sviluppo della propria applicazione e allo Fpga, sono necessari solamente pochi semplici comandi per stesso tempo implementare funzionalit di test e misure in avere accesso all'elaborazione del PROFIBUS e ai dati diauna sola piattaforma hardware. gnostici. A livello LabVIEW RT, grazie allutilizzo del driver Visa di National Instruments, possibile una rapida e semplice inteINTEGRAZIONE DEL PROFIBUS DP Con lo sviluppo del nuovo Modulo cRIO PROFIBUS DP della grazione del modulo cRIO PROFIBUS DP per ottenere appliCOMSOFT nato per essere integrato nel sistema cRIO di Na- cazioni basate su sistema LabVIEW real-time. tional Instruments, viene finalmente colmata una importante La corretta installazione del modulo pu essere inoltre verifimancanza presente fino ad oggi nel mondo dei sistemi PAC. cata direttamente dagli strumenti software messi a disposiIl sistema cRIO offre la possibilit di coprire unampia gamma zione da National Instruments.
16
Per la modalit Master disponibile un intuitivo tool completamente grafico (COMSOFT-Configurator II) che permette di creare facilmente un progetto basato sui file GSD dei dispositivi DP Slave da collegare. Il Configurator II permette anche la funzione di download della configurazione PROFIBUS sulla Flash del modulo cRIO PROFIBUS DP dove viene memorizzata in modalit fail-proof Memory. La configurazione pu essere inoltre direttamente sviluppata e testata mediante la modalit on-line del Configurator II.
nologica della comunicazione industriale che gioca oggi un ruolo sempre pi importante in tutti i settori dellautomazione. PROFINET IO in grado di integrare sistemi PROFIBUS DP senza la necessit di effettuare alcun cambiamento, mantenendo i dispositivi esistenti. Questo significa che gli investimenti fatti dai costruttori di macchine ed impianti e dagli utilizzatori finali vengono preservati. COMSOFT, come specialista dichiarato della tecnologia PROFIBUS e PROFINET sta tenendosi al passo con questi cambiamenti, sviluppando il modulo cRIO PROFINET IRT.
AVVIAMENTO IMMEDIATO
CAMPI DI APPLICAZIONE
La confezione comprende dei VI standard per linizializzazione del PROFIBUS e laccesso ai dati di I/O e di diagnostica per luso sia in modalit DP Master che DP Slave e possono essere integrate nelle applicazioni realizzate dai clienti. Il pacchetto software installa un proprio set di istruzioni PROFIBUS allinterno del men operativo di LabVIEW nella sezione 'user libraries' e include tutti i componenti necessari ed esempi Vls per un semplice e rapido utilizzo. Ogni VI (Virtual Instrument) dispone di una propria sezione di Help che contiene dettagli PROFIBUS e codici errore. Le modalit DP Master e DP Slave possono essere selezionate utilizzando lo stesso modulo senza alcun tipo di modifica sia hardware che software del dispositivo.
MODALIT DP MASTER
La VI del DP Master provvede a inizializzare ed avviare il modulo in modalit DP Master sulla base della configurazione PROFIBUS memorizzata e fornisce un accesso diretto ai dati di input ed output e di diagnostica dei dispositivi Slave configurati.
Il campo di applicazione del cRIO basato sui sistemi PAC con PROFIBUS DP/PROFINET IO spazia dalle funzionalit di test, misure, controllo e visualizzazione al sistema di controllo realtime vero e proprio. Una tipica applicazione potrebbe essere, ad esempio, il test di assemblaggio automatico in una linea di produzione di apparecchiature PROFIBUS destinate allindustria di processo/automazione. In un ambiente classico di automazione un cRIO basato sullarchitettura PAC System con PROFIBUS DP/PROFINET IO in grado di replicare gli attuali controlli real-time basati su architetture PLC. Ad ogni modo, in combinazione con un PLC anche possibile integrare un sistema PAC attraverso differenti modalit operative (DP Master o DP Slave). In questo caso, il sistema PAC opera come isola di automazione intelligente, che pu integrare molteplici funzionalit, tra le quali ad esempio, test, monitoring, data-logger per un controllo di qualit in combinazione con un sistema di controllo di tipo PLC, per Simatic S7
CONCLUSIONI
MODALIT DP SLAVE
Per il funzionamento come DP Slave il modulo deve essere configurato attraverso il proprio file GSD nello specifico configuratore del DP Master utilizzato per esempio un Simatic S7 attraverso il programma di configurazione 'HWKonfig'. La VI Slave DP permette quindi di inizializzare e avviare il modulo in modalit DP Slave dopo avere impostato i tre parametri PROFIBUS necessari alla comunicazione: indirizzo, velocit, e cfg-data. La VI del DP Slave fornisce inoltre un accesso diretto ai dati di input ed output del modulo e al loro stato di comunicazione.
Grazie allintegrazione del modulo cRIO PROFIBUS DP della COMSOFT nella piattaforma di automazione cRIO della National Instruments, possiamo finalmente affermare di avere raggiunto il concetto dello standard aperto e multivendor tipico dei sistemi PAC, cos da avere a disposizione, per la prima volta, una reale piattaforma multi-dominio aperta che pu integrare differenti tecnologie di automazione, come misure e controllo allo stesso tempo al fine di ottenere una minimizzazione dei costi di sviluppo.
BIBLIOGRAFIA:
Le reti basate su Ethernet real-time rappresentano la tecnologia futura nel campo della comunicazione industriale e si diffonderanno sempre pi anche nei sistemi PAC rispetto ai classici sistemi fieldbus. PROFINET IO stato designato come successore del PROFIBUS DP e rappresenta levoluzione tec-
[1] S. Ahrends: PAC-Hybrid-Rechner vereinen Vorteile von PC und SPS-Architektur, A&D Kompendium 2005 [2] R. Jamal: PAC-System mit FPGA: Speed ist keine Hexerei, IEE 1&2, 2005
17
08
Kur t Williams
Il LabVIEW 8.6 Real-Time Module dotato di nuove funzionalit per la programmazione dellhardware CompactRIO in grado di ridurre il tempo di sviluppo e la complessit, nonch di fornire uno strumento per il monitoraggio e la manutenzione delle applicazioni CompactRIO
LabVIEW Real-Time e nel PC host in modo da leggere e scrivere istantaneamente i dati scalati e calibrati degli I/O, senza alcuna programmazione e compilazione Fpga (figura 2).
Figura 2 - Accesso agli I/O direttamente tramite LabVIEW Real-Time trascinando le variabili degli I/O sul proprio diagramma a blocchi
Tradizionalmente laccesso agli I/O del CompactRIO avveniva tramite la programmazione Fpga e, solo successivamente, utilizzando i VI di interfaccia di LabVIEW FPGA, tramite LabVIEW Real-Time. CompactRIO Scan Mode rileva automaticamente i moduli di I/O e li aggiunge al LabVIEW Project. possibile trascinare le variabili degli I/O sul Figura 1 - CompactRIO Scan Mode fornisce l'accesso agli I/O direttamente da LabVIEW Real-Time e dai VI sviluppate sul PC proprio diagramma a host senza bisogno di programmazione o compilazione Fpga blocchi del VI in
Un nuovo componenti di LabVIEW Real-Time chiamato NI Scan Engine, aggiorna i valori delle variabili di I/O alla frequenza specificata dallutente (fino a 1 kHz). Tutte le scansioni dei canali sono temporizzati via hardware con sincronizzazione modulo-modulo. possibile configurare lo scan engine dal LabVIEW Project oppure, in maniera programmatica, con un libreria di VI inclusa. Lo scan engine fornisce inoltre una sorgente di temporizzazione timed-loop, in modo da sincronizzare il codice con gli aggiornamenti degli I/O per applicazioni di controllo a jitter ridotto. possibile creare alias delle variabili di I/O per fornire un ulteriore livello di astrazione dal canale fisico di I/O. Inoltre, la scala lineare disponibile sulle variabili e alias di I/O. CompactRIO Scan Mode aggiunge, senza bisogno di programmazione, la funzionalit di contatore, encoder in quadratura e la funzionalit di modulazione di ampiezza di impulso (PWM) a qualsiasi modulo esistente della Serie C a 8 canali. L'utente pu configurare queste funzionalit digitali esclusive dal LabVIEW Project, di fatto queste ultime eseguono sul chip Fpga per permettere una maggiore accuratezza e velocit. Senza la necessit di compilazione, ora possibile effettuare misurare di edge counting, ampiezza degli impulsi e frequenza, fino a 1MHZ; nonch effettuare decoding in quadratura e controllo di PWM.
18
Caratteristiche specifiche del contatore 1 MHz continuo su otto canali Count register a 32 bit, con terminal count programmabile Terminal count configurabile e monitoraggio del comportamento Fronte di segnale configurabile (salita, discesa o entrambi), sorgente e gate Misura di periodo, PWM e frequenza con timebase configurabile Caratteristiche specifiche dellencoder in quadratura Frequenza massima di 1 MHz Count register a 32 bit Registro della velocit di misura a 32-bit Timebase della velocit di misura configurabile (256 s, 512 s, ... 16384 s o 32768 s) Codifica X4 Due canali a quadratura con input A+B+Index per modulo Polarit dellencoder selezionabile Caratteristiche specifiche del PWM Otto canali di output Configurazione per canale del duty-cycle e del periodo Periodo di frequenza configurabile (1 Hz, 50 Hz, 250 Hz, 500 Hz, 1 kHz, 5 kHz, 10 kHz, o 20 kHz)
connessione e lintegrit del segnale. Oltre ai pannelli di test, NI Distributed System Manager consente di monitorare lutilizzo della memoria e il carico di lavoro per i controller CompactRIO. CompactRIO Scan Mode dispone della funzione di 'I/O forcing'; si tratta di uno strumento di debug in grado di sovrascrivere il valore di una variabile di I/O senza arrestare o modificare lapplicazione real-time. possibile forzare gli input per testare la risposta della propria applicazione senza uno stimolo fisico, nonch forzare il valore di uscita delloutput. possibile forzare i valori dei canali mediante NI Distributed System Manager o con i nuovi VI I/O forcing.
Con LabVIEW 8.6 Real-Time Module possibile accedere a ciascun modulo sia con CompactRIO Scan Mode che con LabVIEW FPGA. LabVIEW FPGA consente di implementare triggering personalizzato, analisi ed elaborazione dei segnali hardware-based, oppure streaming analogico ad elevata velocit. Per utilizzare i moduli di I/O in LabVIEW FPGA Mode, basta semplicemente trascinare il modulo sul target Fpga all'interno del LabVIEW Project disabilitando la funzione di scan mode. cos possibile utilizzare LabVIEW FPGA per programmare i moduli e utilizzare le variabili degli I/O per leggere e scrivere gli I/O sui restanti moduli (figura 4).
NI Distributed System Manager, ulteriore nuova utility di LabVIEW 8.6, fornisce una postazione centralizzata per il monitoraggio di sistemi presenti sulla rete e la gestione dei dati pubblicati. Il nuovo sistema di gestione fornisce pannelli di test per i moduli del CompactRIO utilizzando il CompactRIO Scan Mode. Non appena il sistema disponibile sulla rete, possibile accedere ai valori real-time e allo storico dei trend degli I/O, in modo da verificare rapidamente la
Figura 4 - Questo VI accede agli I/O con il CompactRIO Scan Mode mentre calcola la trasformata veloce di Fourier di un ingresso di accelerazione con LabVIEW FPGA
Utilizzando LabVIEW FPGA Mode su uno o pi moduli, la logica CompactRIO Scan Mode su Fpga, chiamata RIO Scan Interface (RSI), viene compilata con il VI di LabVIEW FPGA in una singola applicazione Fpga. Se nessun modulo configurato per l'utilizzo dello scan mode, la RIO Scan Interface non viene inclusa nella compilazione.
Figura 3 - Il nuovo NI Distributed System Manager consente di avviare ed eseguire rapidamente il controllo, aggiungendo pannelli di test al CompactRIO
CompactRIO Scan Mode potenziato da due tecnologie, la NI Scan Engine e la RIO Scan Interface. RIO Scan Interface un insieme di Fpga Intellectual property (IP) sviluppato da National Instruments che viene scaricato sul CompactRIO FPGA ed responsabile delle funzioni di riconoscimento, temporizzazione, sincronizzazione e comunicazione dei
19
08
moduli di I/O. RIO Scan Interface esegue uno scan loop temporizzato via hardware che aggiorna i valori fisici degli I/O. Due canali DMA vengono utilizzati per trasmettere i dati degli I/O tra Fpga e il sistema operativo real-time. Questa speciale funzionalit digitale predefinita fa parte della RIO Scan Interface. Per maggiori informazioni sulla RIO Scan Interface, ai rimanda alla sezione Risorse Correlate, in basso. NI Scan Engine un nuovo componente di LabVIEW Real-Time che esegue ad una priorit configurabile che va oltre il time critical o tra il time critical e le strutture temporizzate. Ogni qualvolta la RIO Scan Interface termina lultima scansione degli I/O, LabVIEW aggiunge le variabili degli I/O ad una mappa di memoria globale dello scan engine e contemporaneamente aggiorna i valori di tutti gli I/O. Tuttavia, possibile configurare ciascun nodo delle variabile di I/O per utilizzare sia laccesso tramite scanner che diretto. Di default, LabVIEW configura i nodi delle variabili di I/O per lutilizzo di I/O scanned che impiegano la mappa di memoria dello scan engine per eseguire operazioni di lettura e scrittura di I/O in modalit non-blocking (vedi figura 5).
Laccesso diretto agli I/O bypassa la mappa di memoria dello scan engine e comunica direttamente con il driver del dispositivo di I/O per eseguire operazioni di lettura e scrittura degli I/O in modalit blocking (figura 5). NI Scan Engine pubblica inoltre le variabili di I/O sulla rete, rendendole disponibili per operazioni di lettura e scrittura in applicazioni host, pannelli di test e I/O forcing. lo scan engine, non il LabVIEW shared variable engine, a gestire la pubblicazione in rete delle variabili di I/O ed possibile disabilitarlo dalla pagina delle propriet delle variabili di I/O. Utilizzando LabVIEW FPGA con CompactRIO Scan Mode (alcuni moduli utilizzando CompactRIO Scan Mode, altri LabVIEW FPGA Mode), la RIO Scan Interface e il VI Fpga vengono compilati in un singolo bitstream e fatto il deploy sul chip Fpga. possibile accedere ai moduli di I/O tramite LabVIEW FPGA Mode con i VI di interfaccia di Fpga in LabVIEW Real-Time e accedere ai moduli di /IO in scan mode utilizzando le variabili di I/O. Rimuovendo tutti i moduli dallo scan mode, la RIO Scan Interface non viene compilata nel bitstream. Utilizzando lo scan mode lo spazio occupato dalla RIO Scan Interface sullFpga diminuisce con il numero di moduli.
CompactRIO Scan Mode progettato per applicazioni che richiedono aggiornamenti di I/O sincroni a frequenze di 1kHz. possibile utilizzare la speciale funzione digitale offerta dallo scan mode per convertire qualsiasi modulo esistente di I/O digitale a otto canali in un PWM avanzato, contatore, o modulo di encoder di quadratura. Grazie alla funzionalit di I/O forcing e al pannello di test del system manager, possibile utilizzare lo scan mode per il setup iniziale, il monitoraggio delle prestazioni di sistema e la risoluzione avanzata dei problemi. Per applicazioni che richiedono elevate prestazioni, tipo trasmissione analogica a 1 MHz, loop di controllo PID a elevata velocit superiori a 1 kHz, analisi ed elaborazione di segnali custom via hardware, oppure moduli di I/O non supportati dallo scan mode, possibile utilizzare LabVIEW FPGA Module con lo scan mode. possibile inoltre snellire lelaborazione dal controller real-time con il modulo LabVIEW FPGA Module. Lo scan mode viene supportato dai controller con sistema operativo real time (Rtos) VxWorks dotati di chip Fpga da almeno 2M gate, a causa dei requisiti di spazio del RSI Fpga. I controller supportati sono NI 9012, NI 9014, NI 9073 e NI 9074. I backplane supportati includono NI 9103, NI 9104, NI 9073 e NI 9074. Lutilizzo di CompactRIO Scan Mode porta a delle scelte di compromesso in termini di prestazioni. La speciale funzione digitale, ad esempio, in grado di supportare contatori fino a 1MHz a differenza dei contatori a 20 MHz di LabVIEW FPGA. Lo scan engine utilizza risorse di sistema che includono lo spazio Fpga, due canali DMA, memoria e una quantit di tempo della CPU che scala in proporzione alla frequenza di scan. Utilizzando lo scan mode, lo spazio occupato dalla RIO Scan Interface sullFpga diminuisce con il numero di moduli.
CONCLUSIONE
LabVIEW 8.6 Real-Time Module aggiunge un insieme di potenti funzioni progettate per ridurre il tempo di sviluppo e la complessit di CompactRIO. Grazie a CompactRIO Scan Mode possibile accedere agli I/O da LabVIEW Real-Time e da applicazioni host senza bisogno di programmazione Fpga pur mantenendo la possibilit di programmare direttamente il chip Fpga per requisiti pi specifici. Con NI Distributed System Manager e l I/O forcing possibile disporre di maggiori pannelli di test e funzioni avanzate di debugging sul CompactRIO, semplificando il monitoraggio e la manutenzione di applicazioni CompactRIO.
Note sullautore
Kurt Williams Product Manager di LabVIEW Real-Time in National Instruments. Si laureato in Ingegneria Elettronica all'Universit del Texas di Austin.
20
498/LUGLIO-AGOSTO 2008
Progettazione di chip
Marvell, azienda che sviluppa soluzioni consumer in silicio e prodotti per la memorizzazione e la comunicazione, ha annunciato lapertura ufficiale del suo nuovo centro di progettazione a Pavia. I motivi che hanno condotto Marvell a scegliere Pavia sono stati innanzitutto la presenza dellUniversit e di una forte tradizione nel campo dei dispositivi analogici a semiconduttore ha dichiarato Sehat Sutardja, CEO di Marvell U.S., osservando che lUniversit di Pavia una delle migliori al mondo nella progettazione di questo tipo di dispositivi. Anche SEHAT SUTARDJA, Arturo Krueger, membro Marvell U.S. del consiglio damministrazione, ha affermato: La nostra azienda persegue leccellenza nellinnovazione tecnologica e nel design e ha sempre attinto al mondo accademico per il forte brain power di cui dotato. In particolare Francesco Rezzi, direttore di Marvell Italia, ha evidenziato come la presenza degli uffici Marvell a Pavia a due passi dalla facolt di ingegneria vuole dare una misura delle potenzialit di sviluppo economico da essa derivante allinterno del territorio pavese. La soddisfazione per lapertura del neonato Centro di Progettazione era evidente anche tra le personalit accademiche presenti, a partire dal professor Rinaldo Castello, docente di microelettronica presso il Dipartimento di Ingegneria nonch amico di Sehat Sutardja fin dagli anni universitari: Gi ai tempi di Berkley speravamo di poter lavorare insieme e tutto questo si concretizza con lapertura proprio a Pavia del Centro di Progettazione Marvell, una realt in crescita e nota per lo spirito innovativo. Il Magnifico Rettore Angiolino Stella ha augurato il successo alliniziativa voluta da Marvell auspicando di poter continuare insieme quella ricerca continua delleccellenza che ha sempre caratterizzato lUniversit di Pavia e lazienda.
allinterno
IC DIGITALI:
a pagina 8
Dai nanodispositivi alla neuroelettronica passando per le memorie ad alta densit. Sono questi gli obiettivi dei tre nuovi progetti europei che vedranno in primo piano anche il lavoro dei ricercatori italiani. Frutto della collaborazione internazionale con enti di ricerca e partner industriali, i progetti, battezzati Afsid (Atomic Functionalities on Silicon Devices), CyberRat (A Brain-Chip Interface for High-resolution Bi-directional Communication) e Gossamer (Gigascale Oriented Solid State flAsh Memory for EuRope), saranno finanziati dallUnione Europea nellambito del VII programma quadro. A prendere parte agli ambiziosi obiettivi europei sono gli scienziati dellMdm, il laboratorio italiano dei Materiali e dispositivi per la microelettronica dellInfm-Cnr, di Agrate Brianza. Per i tre progetti in fase di avvio, il laboratorio Mdm otterr un contributo di circa 800.000 euro. Per il progetto Gossamer i ricercatori del Laboratorio Mdm svilupperanno memorie in grado di immagazzinare migliaia di miliardi di dati da impiegare in telefoni cellulari, videocamere digitali, localizzatori Gps, lettori musicali Mp3, computer. Dispositivi logici e di memoria innovativi saranno invece il nucleo del progetto Afsid. In collaborazione con azien-
de e centri di ricerca europei e australiani, i ri- MARCO FANCIULLI, cercatori del Laboratorio laboratorio Mdm Mdm contribuiranno al- dellInfm-Cnr la realizzazione e allo studio delle propriet di nanodispositivi elettronici e spintronici il cui funzionamento dipende da una singola impurezza, un atomo inserito in una matrice di silicio ma appartenente a un diverso elemento chimico. Lo studio dei meccanismi di comunicazione dal chip al neurone e viceversa sar invece lobiettivo del progetto CyberRat. In questo progetto sono coinvolti prestigiosi centri di ricerca italiani ed esteri e il laboratorio Mdm vi contribuir sviluppando il dispositivo a semiconduttore da utilizzare per linterazione con il neurone. Tanto la ricerca di base quanto le potenziali applicazioni a livello industriale saranno prese in esame dai tre progetti europei. Non dobbiamo dimenticare che tra i partner ci sono sia enti di ricerca sia aziende e potremo cos far crescere in ambito internazionale un prezioso patrimonio di conoscenze afferma Marco Fanciulli, direttore del laboratorio Mdm dellInfm-Cnr.
www.ilb2b.it
readerservice.it - Marvell n. 03
Cari lettori, inviate le vostre opinioni, commenti e proposte di collaborazione. Antonella Cattaneo antonella.cattaneo@fieramilanoeditore.it eonews@fieramilanoeditore.it E' attivo il servizio di readerservice all'indirizzo:
EONews
www.readerservice.it
Evoluzione Digitale
Unico quindicinale italiano di informazione e analisi dei mercati dellelettronica ad essere spedito anche in formato digitale ad una lista di diffusione elettronica oltre la soglia di 15.000 nominativi. Ad essi, si affianca la tradizionale spedizione postale a oltre 11.000 lettori, rendendo EONews, di fatto lunica rivista italiana del settore a vantare una doppia e cos capillare diffusione.
Tastiere standard | Tastiere custom | Accessori
readerservice.it n.21625
Via Quattro Passi, 96 - Formigine (MO) Italy Tel. +39 059 571360 - www.grafos.it readerservice.it n.21632 readerservice.it n.19188 In caso di mancata consegna restituire alleditore che si impegna a pagare la relativa tassa presso il CMP di Roserio - Milano
D A L L A T E O R I A A L L A P R AT I C A
08
stato sviluppato un Sistema Test-bench con LabVIEW Simulation Inter face Toolkit per il conver titore ausiliario del 'Nuovo Pendolino'
o scopo del progetto descritto nell'articolo era la creazione del modello matematico del convertitore ausiliario (chopper pi inverter) del 'Nuovo Pendolino' attraverso hardware e software National Instruments, chiudendo lanello hardware con il regolatore ausiliario (hardware e software prodotti da Alstom) per garantire il funzionamento reale del sistema. Un primo obiettivo era quello della validazione del software del convertitore ausiliario e della realizzazione di test automatici di non regressione. Per la descrizione del software di test e del modello fisico del convertitore si voluto
utilizzare lo stesso tool di sviluppo del codice applicativo del regolatore ausiliario, Matlab-Simulink. Il nuovo Simulation Interface Toolkit (SIT) di National Instruments veniva incontro alle esigenze di Alstom Ferroviaria di creare automaticamente un codice real-time dedicato a una scheda PXI di National Instruments su processore embedded partendo da un applicativo Simulink. Infatti, dal modello Simulink viene generata automaticamente la DLL incapsulata nel codice LabVIEW Real-Time creato per lembedded controller. In questo modo possibile associare direttamente alle variabili del modello Simulink
22
D A L L A T E O R I A A L L A P R AT I C A
tori di carico, che collegano luscita del convertitore ausiliario a diversi carichi e a deviatori che configurano lausiliario secondo differenti tipi di linea. Infatti, il sistema ausiliario compatibile sia per le reti tradizionali a 3 kV che per le linee ad alta velocit a 25 kV. La difficolt di testare il software di regolazione andando direttamente sulla macchina in potenza, ha spinto Alstom Ferroviaria a creare un sistema che simulasse in tempo reale il comportaFigura 1 - Il sistema ad anello chiuso (hardware in the loop, HIL) realizzato per il simulatore mento della macchina in di un conver titore ausiliario di treno modo da riuscire a realizzare 'a banco' il sistema in anello le variabili di controllo di un VI LabVIEW, controllando cos, chiuso senza il bisogno di avere a disposizione lalta tensioattraverso il sistema real-time NI, sia segnali analogici che ne e tutte le componenti del blocco ausiliario. Il sistema ad anello chiuso costituito dalla scheda del segnali digitali. regolatore ausiliario (Alstom Transport), dove risiede il software che deve essere testato e da un sistema a cestello UN SISTEMA AD ANELLO CHIUSO In particolare, stato realizzato un sistema ad anello chiuso National Instruments PXI-1042 costituito da un controller (hardware in the loop, HIL) per il simulatore di un convertitore embedded PXI-8195, una scheda Fpga PXI-7833R, un ausiliario di treno. Il convertitore ausiliario limpianto del tre- embedded controller PXI-8195 e due schede DAQ di geneno che fornisce la tensione trifase per alimentare carichi quali razione di segnali analogici (PXI-6713). Inoltre, un PC comil condizionamento, le luci interne ed esterne, le pompe e i compressori per il raffreddamento di aria e di acqua e i compressori per assetto cassa. Lalta tensione arriva al sistema ausiliario dal convertitore di trazione con un valore prossimo a 3000Vc.c.; lo stadio chopper abbassa questo valore ad una tensione 'DC-LINK' di 650 V che linverter (composto da ponti a Igbt) trasforma in una tensione alternata trifase. I comandi digitali sono principalmente legati a sezionatori di linea, che escludono il gruppo ausiliario dalla tensione di Figura 2 - Schema del sistema di acquisizione e simulazione alimentazione, a seziona-
23
D A L L A T E O R I A A L L A P R AT I C A
08
merciale, basato su processore Pentium 4 con sistema operativo Windows XP, utilizzato sia come interfaccia per il sistema PXI National Instruments (via TCP/IP), sia per il controllore del modulo ausiliario (via RS-232). Il regolatore del convertitore ausiliario prevede 18 ingressi analogici; alcuni di questi segnali sono segnali in corrente e per questo stato necessario adattare tramite interfaccia hardware i segnali di uscita della scheda PXI-6713 con la scheda del regolatore ausiliario. Le uscite delle schede analogiche PXI-6713 e della scheda Fpga hanno unuscita in corrente insufficiente a pilotare gli ingressi del regolatore ausiliario, per questo motivo sono stati inseriti tra le uscite analogiche del sistema PXI e gli ingressi analogici del regolatore ausiliario alcuni buffer di corrente. Dei 18 segnali analogici, sedici sono generati dalle due schede DAQ e due vengono generati dalla scheda Fpga PXI-7833R. Gli ingressi e le uscite digitali vengono gestiti interamente dalla scheda Fpga.
dente linterfacciamento dellembedded controller sia con la scheda DAQ che con la scheda Fpga. Il vantaggio che deriva dallutilizzo di questo tool quello di generare i segnali per le schede DAQ e Fpga direttamente dal modello Simulink senza il bisogno di creare unapplicazione LabVIEW che istanzi componenti per linizializzazione, la scrittura e la lettura di canali per le schede di acquisizione; lo stesso tool SIT che genera in automatico questi blocchi driver per le schede di acquisizione analogico/digitale. A livello di codice LabVIEW attraverso il Simulation Interface Toolkit, associa agli ingressi e alle uscite fisiche delle schede le variabili del codice Simulink per mezzo di una tabella
Alcuni segnali analogici che vengono simulati sono elencati di seguito: Tensione di linea Correnti in uscita allinverter trifase Tensioni in uscita allinverter Temperature del convertitore e della scheda Tensione di uscita del chopper Corrente di uscita del chopper I segnali digitali simulati sono principalmente comandi di sezionatori o deviatori, e letFigura 3 - Il pannello di inter faccia del sistema di simulazione tura dei relativi stati. La scelta di una scheda di acquisizione per segnali 'veloci' come lFpga stata fatta a causa della lettura dei segnali PWM; di mappatura; quindi possibile, ad esempio, associare ad infatti nel convertitore ausiliario la generazione della ten- unampiezza di sinusoide di un blocco Simulink una manosione 380V trifase avviene tramite un inverter a Igbt con- pola ('knob') di un VI LabVIEW e variarne cos lampiezza in trollato tramite la modulazione del 'duty cycle' di un'onda tempo reale; baster poi associare nel men SIT la DLL creaPWM. La scheda Fpga, oltre alla gestione dei segnali sopra ta automaticamente con la generazione di codice Simulink descritti, acquisisce le onde PWM e ne calcola lesatto duty inserendo il blocco 'Signal Probe', creato da National cycle. Il codice per il calcolo del duty cycle scritto con il tool Instruments, nel codice Simulink, che serve per creare la DLL LabVIEW FPGA, mentre la gestione degli altri ingressi e in fase di generazione di codice. uscite digitali generata automaticamente con il Grazie a questo sistema si potuto validare il codice appli'Simulation Interface Toolkit'. E possibile con questo tool cativo del convertitore ausiliario senza la necessit della mappare le variabili di controllo del modello Simulink con le macchina reale, risparmiando cos i tempi e i costi, come il costo in tempo e materiale per il solo allestimento di una uscite della scheda DAQ o della scheda Fpga. Inizialmente, con la prima release del 'SIT', non era possibi- sala prove per lalta tensione. le associare simultaneamente le variabili del modello alle uscite DAQ e ai segnali della scheda Fpga, cos sono state create due applicazioni SIT, una dedicata al comando delle Note sullautore schede PXI-6713 e una dedicata ai segnali gestiti dalla M. Giudici, Alstom Ferroviaria Fpga. Queste due applicazioni create separatamente con SIT sono state integrate in ununica applicazione compren-
24
D A L L A T E O R I A A L L A P R AT I C A
08
Solo nel 2004, hanno viaggiato attraverso il tunnel pi di 16 milioni di passeggeri ferroviari. In particolare, era necessario un metodo per monitorare lusura dei contatti elettrici nei 100 km di cavi e nello stesso tempo determinarne la posizione, laltezza e la larghezza all'interno del tunnel senza interferire con il traffico ferroviario. La sfida stata affrontata e risolta grazie all'utilizzo di LabVIEW, Vision Development Module, e NI CVS-1454 Compact Vision System assieme a una telecamera ad alta velocit Ieee 1394 (FireWire). Grazie alla combinazione di LabVIEW, Vision Development Module e Compact Vision System stato possibile realizzare un sistema embedded di elaborazione immagini in grado di effettuare operazioni di misura ottica in modo rapido e accurato senza interferire con il servizio.
Figura 1 - LabVIEW e Vision sono stati utilizzati per misurare il livello di usura e leventuale danneggiamento di oltre 100 km di cavi elettrici allinterno dell'Eurotunnel
Il cavo di contatto viene illuminato da un lampada ad alogenuro metallico ad alta luminosit per far s che le parti usurate brillino su uno sfondo scuro. Le immagini vengono acquisite da una telecamera a scansione bidimensionale dotata di sensore Cmos monocromatico con un uscita Ieee 1394 in grado di acquisire fino a 500 fotogrammi al secondo ad una risoluzione di 640x100 pixel. I fotogrammi vengono in seguito acquisiti dal Compact Vision System CVS-1454 che li elabora tramite le funzioni di Vision Development Module. In questo modo possibile stabilire l'ampiezza dell'area usurata effettuando una sogliatura del cavo di contatto nel fotogramma. I 640 mm di ampiezza dellangolo visuale (field of view FOV) ricoprono il livello massimo di offset del cavo e mentre i 100 mm di altezza del FOV sono in grado di rilevare lusura complessiva del cavo. possibile misurare lampiezza e la posizione del cavo 100 volte al secondo; i dati vengono memorizzati
su un PC di monitoraggio ogni 50 millimetri. Al fine di evitare leggeri gradi di variazione, il livello di sogliatura viene adeguato alla funzione della posizione del cavo presente nell'immagine. Una delle sfide pi problematiche riguardava lo sviluppo di un sistema di visione da installare e configurare in breve tempo tra i binari all'interno del tunnel. Grazie a LabVIEW e a NI Vision Development Module, gli ingegneri hanno sviluppato e testato il software di elaborazione su una piattaforma PC basata su Windows utilizzando una libreria di immagini precedentemente acquisite nel tunnel. Lo stesso codice stato trasferito facilmente al Compact Vision System. LabVIEW e Vision Development Module hanno inoltre consentito di aggiornare facilmente il software di elaborazione immagini su Compact Vision System. Ad esempio, aggiungere la registrazione di immagini per rilevare particolari difetti o anomalie sui cavi stato immediato. Inoltre lapproccio modulare di hardware e software apre uno futuro spiraglio nell'applicazione di ulteriori Compact Vision System al fine di effettuare misure o ispezioni su altri elementi dellinfrastruttura, come piccole falle o la geometria dei binari. La societ Eurotunnel esegue regolarmente operazioni di manutenzione per garantire la sicurezza del flusso ferroviario. Grazie a questo sistema gli ingegneri sono in grado di misurare in modo semplice ed efficace la posizione e lusura dei cavi, di rilevare e riparare qualsiasi spostamento anomalo o danno che potrebbe comprometterli.
Readerser vice.it n. 819
25
SCUOLA DI LABVIEW
08
I pannelli frontali devono essere bene organizzati e facili da utilizzare, perch il pannello frontale la prima cosa che gli utenti vendono quando lavorano con un VI
uando progettate un pannello frontale, tenete presenti due tipi di utenti: l'utente finale e lo sviluppatore. Gli utenti finali lavorano con VI il cui pannello frontale sar visibile a loro, trattandosi dellintefraccia utente. Gli sviluppatori lavorano invece con subVI, che hanno pannelli frontali visibili solo agli stessi sviluppatori.
stra del testo. Se centrate un'etichetta sopra o sotto un oggetto, centrate anche il testo dell'etichetta. I font sono l'aspetto meno portabile del pannello frontale, quindi testateli sempre su tutte le piattaforme target. Colori I colori possono distrarre l'utente da informazioni importanti. Per esempio, uno sfondo giallo, verde o arancione chiaro rende difficile vedere una luce di pericolo rossa. Un altro problema che alcune piattaforme non hanno a disposizione cos tanti colori. Usate un numero minimo di colori, enfatizzando nero, bianco e grigio. Ecco alcune semplici linee guida per l'uso dei colori: Non usate mai il colore come unico indicatore dello stato di un dispositivo. Le persone con qualche grado di daltonicit possono avere problemi a rilevare il cambiamento. Inoltre, grafici e schemi multitraccia possono perdere significato quando sono visualizzati in bianco e nero. Oltre al colore, usate linee diverse per distinguere i vari stili di plottatura. Considerate la possibilit di colorare lo sfondo e gli oggetti del pannello frontale dei VI dell'interfaccia utente con i colori di sistema presenti nella tavolozza. I colori di sistema adattano l'aspetto del pannello frontale ai colori di sistema di qualsiasi computer che esegue il VI. Per gli sfondi usate il grigio chiaro, il bianco o colori pastello. La prima riga di colori nella tavolozza di colori contiene colori meno violenti, adatti per gli sfondi e i normali controlli del pannello frontale. La seconda riga di colori nella tavolozza di colori contiene colori pi luminosi, che potete usare per evidenziare controlli importanti. Selezionate colori luminosi di evidenziazione solo quando l'elemento importante, come la notifica di un errore. Controllate sempre la coerenza del VI su altre piattaforme. La parte superiore della tavolozza di colori contiene uno spettro della scala di grigi e un box che potete usare per creare oggetti trasparenti. Il secondo spettro contiene colori tenui che sono molto adatti per sfondi e oggetti del pannello frontale. Il terzo spettro contiene colori adatti a evidenziazioni. La figura 1 mostra la tavolozza dei colori in LabVIEW.
ARGOMENTI
A. Elementi di progettazione dell'interfaccia utente B. Elementi di layout dell'interfaccia utente C. Prototipazione del pannello frontale D. Esempio di interfaccia utente E. Localizzazione delle interfacce utente
Quando dovete progettare il pannello frontale per un'interfaccia utente, scegliete attentamente font, colori e grafica in modo da rendere l'interfaccia utente pi intuitiva e facile da usare. Caratteristiche di font e testo Limitate il VI a tre font standard (applicazione, sistema e dialogo), a meno che abbiate una ragione specifica per usare un font differente. Per esempio, i font monospazio, ossia i font spaziati in modo proporzionale, sono utili per controlli stringa ed indicatori dove il numero di caratteri critico. Per maggiori informazioni sull'impostazione del font di default, l'uso di font custom e la modifica dello stile dei font, consultate il LabVIEW Help. Il font effettivo utilizzato per i tre font standard (applicazione, sistema e dialogo) varia in base alla piattaforma. Per esempio, quando si lavora su Windows, le preferenze e le impostazioni del driver video influiscono sulle dimensioni dei font. Il testo pu apparire pi grande o pi piccolo su sistemi differenti, in base a questi fattori. Per compensare questo effetto, lasciate spazio in pi per font pi grandi e abilitate l'opzione Size to Text nel menu abbreviato. Lasciate spazio addizionale fra i controlli per evitare che le etichette si sovrappongano agli oggetti a causa dei cambiamenti di font su piattaforme multiple. Per esempio, se un'etichetta sta a sinistra di un oggetto, giustificate l'etichetta a destra e lasciate un po' di spazio a sini-
26
SCUOLA DI LABVIEW
Objects e Reorder Objects per creare un layout uniforme. Considerate l'uso dei seguenti tool e tecniche per migliorare il layout dei pannelli frontali dell'interfaccia utente. Menu run-time Usate i menu per ridurre accumuli e confusione. Potete creare menu custom per ogni VI che costruite e potete configurare i VI in modo da visualizzare o nascondere le barre dei menu. Nota I menu custom appaiono solo quando il VI viene eseguito. Potete costruire menu custom o modificare i menu di default di LabVIEW staticamente, quando editate il VI, o da programma, quando eseguite il VI.
Figura 1 - Tavolozza dei colori
Tenete presente queste cose quando dovete progettare un pannello frontale. Per la maggior parte degli oggetti, usate colori neutri che variano principalmente in luminosit. Usate con parsimonia i colori evidenti per oggetti come grafici, aghi di strumenti, loghi aziendali e cos via. Grafica Usate grafica importata per migliorare il pannello frontale. Potete importare bitmap, PICT Macintosh, Windows Enhanced Metafiles e oggetti testuali da usare come sfondi del pannello frontale, elementi da inserire nei picture ring e parti di controlli e indicatori custom. Controllate l'aspetto delle immagini importate quando caricate il VI su unaltra piattaforma. Per esempio, un file PICT Macintosh con una forma irregolare potrebbe essere convertito in un bitmap rettangolare con sfondo bianco su Windows o Linux. Uno svantaggio dell'uso di grafica importata che rallenta gli aggiornamenti dello schermo. Accertatevi di non porre indicatori e controlli sopra un oggetto grafico, per evitare che LabVIEW debba ridisegnare l'oggetto ogni volta che l'indicatore si aggiorna. Se dovete utilizzare una grossa immagine di sfondo su cui vi sono dei controlli, dividete l'immagine in diversi oggetti pi piccoli e importateli separatamente, perch la grafica di grandi dimensioni normalmente richiede pi tempo per essere disegnata.
Considerate la disposizione dei controlli sui pannelli frontali. Mantenete semplici i pannelli frontali per evitare di confondere l'utente. Per esempio, potete usare dei menu per ridurre concentrazioni eccessive. Per i VI di livello superiore visibili agli utenti, disponete i controlli pi importanti in posizione prominente. Per i pannelli frontali dei subVI, disponete i controlli e gli indicatori in modo che corrispondano alla disposizione sul pannello dei connettori. Tenete gli ingressi a sinistra e le uscite a destra ogni volta che possibile per minimizzare la confusione da parte dell'utente. Usate i menu a tendina Align Objects, Distribute
Menu statici Per aggiungere una barra menu custom ad un VI al posto della barra menu di default, selezionate EditRun-Time Menu e create un menu nell'area di dialogo Menu Editor. LabVIEW crea un file menu di run-time (.rtm). Dopo avere creato e salvato il file .rtm, dovete mantenere lo stesso percorso relativo fra il VI e il file .rtm. Potete anche creare un menu abbreviato custom di run-time cliccando con il tasto destro su un controllo e selezionando AdvancedRunTime Shortcut MenuEdit. Questa opzione apre Shortcut Menu Editor. Quando il VI viene eseguito, esso carica il menu dal file .rtm. Gli elementi dei menu possono essere dei tre tipi seguenti: Elemento utente Vi permette di inserire nuovi elementi che devono essere gestiti da programma sullo schema a blocchi. Un elemento utente ha un nome, che la stringa che appare sul menu, e un tag, che un identificatore stringa unico, non sensibile alle maiuscole/minuscole. Il tag identifica l'elemento utente sullo schema a blocchi. Quando digitate un nome, LabVIEW lo copia sul tag. Potete editare il tag in modo che sia diverso dal nome. Affinch un elemento di menu sia valido, il suo tag deve avere un valore. Il box di testo Item Tag visualizza punti interrogativi per gli elementi di menu non validi. LabVIEW assicura che il tag sia unico in una gerarchia di menu e appende numeri quando necessario. Separatore Inserisce una linea di separazione sul menu. Non potete impostare alcun attributo per questo elemento. Elemento applicazione Vi permette di selezionare elementi del menu di default. Per inserire un elemento del menu, selezionate Application Item e seguite la gerarchia fino all'elemento che volete aggiungere. Potete aggiungere singoli elementi o interi sottomenu. LabVIEW gestisce automaticamente gli elementi applicazione. I tag di questi elementi non appaiono negli schemi a blocchi. Non potete alterare il nome, il tag o altre propriet di un elemento applicazione. LabVIEW riserva il prefisso APP_ ai tag degli elementi applicazione. Per aggiungere altri elementi al menu custom, cliccate il
27
SCUOLA DI LABVIEW
08
pulsante + blu sulla toolbar. Per cancellare elementi, cliccate il pulsante X rosso. Potete riorganizzare la gerarchia del menu cliccando i pulsanti freccia nella toolbar, usando le opzioni di manipolazione nel menu Edit o con operazioni di drag and drop.
Decorazioni Usate le decorazioni, come Raised Box o Horizontal Smooth Box, per raggruppare visivamente oggetti con funzioni correlate.
Tab Control Usate i Tab Control per sovrapporre i controlli e gli indicatori del pannello frontale in un'area pi piccola. Un Tab Control consiste di pagine e tab di selezione. Gestione della selezione menu Disponete gli oggetti del pannello frontaPer gestire le selezioni del menu, le su ogni pagina del controllo e usate i usate le funzioni situate nella riga diversi tab come selettori per visualizzare superiore della palette Menu. pagine differenti. Quando create un menu custom, I Tab Control sono utili quando avete pi dovete assegnare a ciascun elemenoggetti del pannello frontale che vengoto del menu un identificatore stringa Figura 2 - Uso delle decorazioni no usati insieme o durante una fase opeunico, non sensibile a minuscoper raggruppare visivamente oggetti rativa specifica. Per esempio, potreste le/maiuscole, chiamato tag. Quando l'utente seleziona un elemento del menu, potete recuperar- avere un VI che richiede all'utente di configurare inizialmenne il tag da programma usando la funzione Get Menu te diverse impostazioni prima che possa iniziare un test, perSelection. LabVIEW mette a disposizione un handler sullo mettendo quindi all'utente di modificare aspetti del test schema a blocchi per ogni elemento del menu basato sul mano a mano che esso procede e, infine, permetta all'utenvalore del tag di ogni elemento del menu. Tale handler te di visualizzare e memorizzare solo i dati pertinenti. una combinazione di While Loop e struttura Case che vi per- Sullo schema a blocchi, il Tab Control un controllo enumette di determinare quale menu eventualmente selezio- merated type per default. I terminali di controlli e indicatori nato e di eseguire il codice appropriato. posti sul Tab Control hanno l'aspetto di qualsiasi altro terDopo avere costruito un menu custom, costruite una strut- minale dello schema a blocchi. tura Case sullo schema a blocchi che esegue, o gestisce, cia- L'NI Example Finder, mostrato nella figura 3, un VI che utiscun elemento nel menu custom. Questo processo si chia- lizza Tab Control per organizzare l'interfaccia utente. ma gestione della selezione del menu. LabVIEW gestisce implicitamente tutti gli elementi applicazione. Controlli Subpanel Usate le funzioni Get Menu Selection ed Enable Menu Utilizzate il controllo Subpanel per visualizzare il pannello Tracking per definire le azioni da eseguire quando gli uten- frontale di un altro VI sul pannello frontale del VI corrente. ti selezionano ciascun elemento del menu. Per esempio, potete usare un Subpanel per progettare un'interfaccia utente che si comporta come un wizard. Menu abbreviati di run-time Mettete i pulsanti Back e Next sul pannello frontale del VI Potete customizzare il menu abbreviato di run-time per ogni di livello superiore e usate un Subpanel per caricare pannelli controllo che includete in un VI. Per customizzare un menu, frontali differenti per ogni passo del wizard. cliccate con il tasto destro su un controllo e selezionate AdvancedRun-Time Shortcut MenuEdit dal menu abbreviato per visualizzare l'area di dialogo Shortcut Menu Editor. Usate l'area di dialogo Shortcut Menu Editor per associare il menu abbreviato di default o il file di un menu abbreviato customizzato (.rtm) al controllo. Potete customizzare i menu abbreviati da programma. Potete anche aggiungere menu abbreviati ai pannelli frontali. Per aggiungere un menu abbreviato al pannello frontale, usate gli eventi dei pannelli Shortcut Menu Activation e Shortcut Menu Selection. Potete anche disabilitare il menu abbreviato di run-time su un controllo. Nota I menu abbreviati custom di run-time appaioFigura 3 - NI Example Finder no solo mentre il VI viene eseguito.
28
SCUOLA DI LABVIEW
Nota Potete creare ed editare un Subpanel solo nelle versioni Full e Professional di LabVIEW. Se un VI contiene un Subpanel, potete eseguire il VI in tutte le versioni di LabVIEW, ma non potete configurare il controllo nel Base Package. La figura 4 mostra un esempio di un VI che utilizza un Subpanel.
Contenitore Split Pane Usate le splitter bar per dividere il pannello frontale in due finestre scorrevoli indipendenti. Potete ulteriormente dividere queste finestre per progettare un'interfaccia utente con pi regioni. Potete customizzare ogni finestra per decidere se l'utente pu ridimensionare la finestra e come la finestra reagisce quando l'utente ridimensiona la finestra stessa. Potete usare una splitter bar per designare una finestra come toolbar o per creare una barra di stato. Pannelli frontali trasparenti Potete usare la propriet Window:Transparency del pannello frontale per impostare la trasparenza della finestra durante l'esecuzione del VI. Il livello di trasparenza un valore percentuale, dove 0 opaco e 100 invisibile. Questa propriet restituisce un errore se specificate un valore all'esterno del campo da 0 a 100. Drag and Drop Potete usare il drag and drop per fornire un modo alternativo per spostare i dati fra controlli in LabVIEW. Il drag and drop un modo comune per gli utenti di interagire con l'interfaccia utente in un'applicazione moderna. essenzialmente un'operazione fra due controlli: la sorgente del drag e il target del drop. Lo sorgente del drag il controllo che fornisce i dati all'operazione di drag and drop. Alcuni controlli LabVIEW, come i controlli stringa e ad albero, operano automaticamente come sorgenti di drag quando si esegue un drag da loro. Per questi controlli, utilizzate l'evento Drag Starting? per fornire un maggiore controllo su ci che l'utente trascina. Per i controlli che non operano come sorgenti di drag, potete costruire sorgenti di drag custom usando il metodo di controllo Start Drag. Con questo metodo, potete iniziare un'operazione drag and drop ogni volta che necessario e fornire tipi di dati specifici per la vostra applicazione. La sorgente di drag controlla anche l'aspetto del cursore durante un'operazione di drag and drop. LabVIEW usa cursori di drag and drop definiti dal sistema (Mac e Windows) o cursori definiti da LabVIEW (Linux). Usate l'evento Drag Source Update per fornire un feedback custom dal cursore per la vostra applicazione. Infine, la sorgente di drag ha la responsabilit di spostare i dati dopo un'operazione di drag and drop riuscita. Usate l'evento Drag Ended per portare a termine le operazioni di spostamento di drag per i tipi di dati di drag definiti dall'utente.
Controlli ad albero Usate il controllo ad albero per dare agli utenti una lista gerarchica di elementi tra cui scegliere. Organizzate gli elementi che inserite nel controllo ad albero in gruppi di elementi, o nodi. Cliccate il simbolo di espansione vicino a un nodo per espanderlo e visualizzare tutti gli elementi presenti nel nodo stesso. Potete anche cliccare il simbolo vicino al nodo per far collassare il nodo. Nota Valgono le stesse indicazioni date per i Subpanel in merito allutilizzo del controllo ad albero nelle diverse versioni di LabVIEW. La figura 5 mostra un esempio di un VI che utilizza un controllo ad albero. Controlli barra a scorrimento Usate i controlli barra a scorrimento orizzontale e verticale per aggiungere barre a scorrimento custom a un controllo. Cambiate il valore di una barra a scorrimento usando il tool Operating per cliccare o trascinare l'area di scorrimento in una nuova posizione, cliccando le frecce di incremento e decremento o cliccando gli spazi fra l'area di scorrimento e le frecce.
29
SCUOLA DI LABVIEW
08
rima di sviluppare il progetto dettagliato di un sistema, dovete definire chiaramente gli obiettivi del sistema stesso. Questi sono gli argomenti che saranno affrontati: A. Requisiti B. Stima dei tempi e dei costi C. Stile e standard di codifica per un team di sviluppatori In questa prima parte viene descritto il punto A.
determinazione dei requisiti da parte del cliente o del sistema. Per identificare i requisiti software usate i passi seguenti. 1. Esigenze software 2. Acquisizione dei requisiti dai clienti 3. Requisiti di sistema 4. Requisiti dell'interfaccia utente 1. Esigenze software Determinare le esigenze del software necessario per capire il contesto del progetto. Capire le esigenze vi aiuta a capire lo scopo del progetto e lo scopo del software. Per determinare le esigenze del software necessario rispondere alle seguenti domande. Perch il software viene creato? Qual lo scopo del software che volete creare? Quali condizioni deve soddisfare il software? 2. Acquisizione dei requisiti dai clienti Per condurre il processo di raccolta dei requisiti usare strumenti come: Interviste Riunioni Sessioni di brainstorm Questionari Osservazione dell'ambiente nel quale il software verr usato L'acquisizione dei requisiti sembra un compito molto semplice, ma spesso pu essere molto impegnativo. I clienti spesso non capiscono a fondo il problema che verr risolto dal software. E necessario, in una fase preliminare del processo, determinare con i clienti quale deve essere la funzionalit del sistema. L'acquisizione dei requisiti dai clienti integrata nell'identificazione dei requisiti. Strumenti come interviste, riunioni, sessioni di brainstorm e questionari sono preziosi per aiutare l'acquisizione dei requisiti. Anche osservare l'ambiente nel quale il software verr utilizzato pu aiutare l'acquisizione dei requisiti. 3. Requisiti di sistema I clienti hanno familiarit con i requisiti di sistema I requisiti di sistema descrivono chiaramente l'ambiente tecnico I clienti hanno una buona comprensione dei requisiti di sistema e hanno la massima familiarit con essi. L'incorporazione di software in un sistema richiede una comprensione dettagliata dell'ambiente tecnico. I requisiti di sistema descrivono l'ambiente tecnico nel quale il soft-
A. REQUISITI
. Definire gli obiettivi dell'applicazione . Fornire un meccanismo per capire che cosa dovrebbe fare l'applicazione . Coprire gli elementi funzionali, gli elementi non funzionali e i vincoli dell'implementazione Iniziate compilando un elenco dei requisiti. Alcuni requisiti sono specifici, come i tipi di I/O, le frequenze di campionamento o la necessit di analisi real-time. In questa fase preliminare eseguite qualche ricerca per essere sicuri che vi sia possibile soddisfare le specifiche. Altri requisiti dipendono dalle preferenze dell'utente, come i formati dei file o gli stili grafici. Cercate di distinguere fra requisiti assoluti e desideri. Anche se potete cercare di soddisfare tutte le richieste, meglio avere un'idea di quali caratteristiche potete sacrificare se il vostro tempo si esaurisce.
Il processo di definizione dei requisiti include i seguenti elementi, non necessariamente in questo ordine: Identificazione Vincoli Analisi Rappresentazione Comunicazione Validazione Gestione
Identificazione dei requisiti software I requisiti software sono forniti dal cliente o determinati dal sistema
L'identificazione dei requisiti software il primo passo nella determinazione dei requisiti. L'identificazione implica la
30
SCUOLA DI LABVIEW
ware risieder. Durante l'identificazione dei requisiti, elencate i requisiti di sistema. 4. Requisiti dell'interfaccia utente Definite come gli utenti si interfacciano con il software Analizzate i task che l'utente deve eseguire In questa fase del processo, volete definire come gli utenti si interfacceranno con il software. Analizzate i task che l'utente deve eseguire per identificare i requisiti dell'interfaccia utente. L'obiettivo raggiungere una conoscenza approfondita di come l'utente utilizza il software.
zione implica la creazione di un modulo scritto, di un prototipo o di entrambi, in base alle esigenze dei clienti. Un modulo scritto utile per rappresentare i requisiti in forma scritta. Tuttavia, un documento pu potare ad ambiguit, perch scritto in una lingua naturale. Le specifiche di documentazione dei requisiti, come la IEEE-830, offrono un buon modello per creare una relazione scritta dei requisiti. Creare un prototipo che dimostri l'implementazione dei requisiti il modo pi semplice per consentire agli utenti di visualizzare i requisiti e ci che il software deve eseguire. LabVIEW efficace per la creazione del prototipo di uninterfaccia utente.
Dovete identificare i vincoli di sistema per poter progettare e fornire software che funziona all'interno dei vincoli. Tipici vincoli che potete identificare sono i seguenti: costi, caratteristiche dell'interfaccia hardware, affidabilit, sicurezza
L'analisi necessaria per compilare requisiti in linea con le esigenze dei clienti A causa della variet di sorgenti che creano i requisiti, dovete analizzare e compilare i requisiti in modo tale che i clienti consentano allo sviluppo software di procedere. L'analisi implica la determinazione dell'adeguatezza dei requisiti. Potete seguire tre passi per determinare se i requisiti sono adeguati: 1. Identificate i problemi relativi ai requisiti. Molti requisiti sono incompleti o ambigui. Accertatevi che tutti i requisiti siano scritti e sviluppati in modo che possiate verificarli mediante prove. 2. Classificate i requisiti. Dividete i requisiti in categorie che indichino se il requisito debba essere necessariamente soddisfatto per la consegna del software. Per esempio, in National Instruments, i requisiti sono classificati in tre categorie: verde, gialla e rossa. I requisiti verdi devono essere implementati e provati prima di potere consegnare il prodotto. I requisiti gialli vengono implementati se sono disponibili risorse. I requisiti rossi sono spesso lasciati per future versioni del software. Altre classifiche possono definire la stabilit del requisito. Se il requisito stabile e tutti i clienti concordano con il requisito, esso non cambier. Identificate i requisiti pi stabili. 3. Determinate i rischi. Identificate i rischi nell'implementazione dei requisiti, come rischi legati a tecnologia o personale.
Le parole chiave nei requisiti definiscono il grado di necessit dei requisiti stessi. Shall indica un requisito essenziale. Se il requisito non viene soddisfatto, il software non pu essere consegnato. Should indica un requisito condizionato che potrebbe migliorare il prodotto software se implementato. Se il requisito non soddisfatto, il software ancora accettabile per la consegna. Can indica un requisito opzionale che non necessario per il successo complessivo del software. Sarebbe bello avere questo requisito, ma lo sviluppatore pu proporre un'alternativa.
Definire uno schema dei nomi e di numerazione dei requisiti. Considerate lo schema seguente: <Tipo requisito><requisito #> Tipo di Requisito U I C D F Requisito d'uscita Requisito d'interfaccia Requisito comportamentale Requisito dati Requisito funzionale
Create un modulo scritto dei requisiti Usate una specifica, come la IEEE-830 Create un prototipo che dimostri l'implementazione dei requisiti La rappresentazione dei requisiti il processo di preparazione dei requisiti da comunicare ai clienti. La rappresenta-
Usate uno schema dei nomi e di numerazione dei requisiti quando rappresentate i requisiti per favorire la gestione dei requisiti. Quando scegliete uno schema dei nomi e di numerazione, attenetevi sempre ad un metodo coerente. La coerenza riduce il rischio di creare requisiti ambigui. La tabella suggerisce un esempio di schema dei nomi e di numerazione per categorizzare i requisiti. Durante l'acquisizione dei requisiti dai clienti, dovete definire i tipi di requisiti. Considerate le seguenti categorie: Requisito funzionale. Descrive le funzioni eseguite dal software.
31
SCUOLA DI LABVIEW
08
Requisito dati. Descrive i dati che il sistema utilizzer. Requisito comportamentale. Descrive il comportamento del sistema. utile per illustrare come un'applicazione funziona ed usa risorse. Requisito d'interfaccia. Descrive i requisiti dell'interfaccia utente. Requisito d'uscita. Descrive i requisiti di formato dei file.
assicura che i requisiti siano privi di ambiguit e senza conflitti e verifica che i requisiti siano compresi da tutti, inclusi gli sviluppatori che stanno implementando il software. La validazione verifica inoltre che i requisiti non illustrino come implementare i requisiti stessi. Soprattutto, ogni requisito deve essere testabile e tracciabile.
Permettere a tutti i clienti di riesaminare i requisiti Questo porta spesso ad una modifica dei requisiti Il risultato della comunicazione deve essere l'accordo Tutti i clienti devono riesaminare i requisiti per giungere ad un accordo sul software che volete creare. Questo riesame porta spesso ad una modifica dei requisiti. La modifica implica ricreare i passi per raggiungere i requisiti relativi al progetto. Il problema della comunicazione riunire tutti i clienti per un accordo sui requisiti. Questo l'obiettivo del processo di comunicazione e deve essere raggiunto per il successo del progetto.
La validazione verifica che i requisiti siano solidi Deve essere compresa da tutti, inclusi gli sviluppatori Non illustra l'implementazione Testabile Tracciabile Durante la validazione necessario verificare che tutti i requisiti siano requisiti robusti. La validazione dei requisiti
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/it - www.ni.com/labview/i LabVIEW Jobs http://www.labviewjobs.com/ The VI Road Show http://viroadshow.blogspot.com/ Altre risorse LabVIEW Tutorials for LabVIEW Developers http://labview-tutorial-for-developers.blogspot.com/ VI Roadshow, un blog interamente fatto di video, su LabVIEW e non solo http://www.viroadshow.com/ Engineering TV, un portale dedicato alle tecnologie emergenti, nuovi prodotti, best practices interamente dedicati al mondo dellingegneria http://engineeringtv.com/
32
Attivit che gestiscono e seguono i requisiti La gestione dei requisiti richiede la valutazione delle richieste di cambiamenti nel corso del ciclo di sviluppo Verifica e tracciatura dei requisiti Considerate un pacchetto software di gestione dei requisiti Durante lo sviluppo di un progetto, la probabilit di cambiamenti richiesti dai clienti aumenta esponenzialmente, soprattutto per i progetti di sviluppo che hanno una lunga durata. La gestione dei requisiti aiuta a ridurre la probabilit di cambiamenti al progetto, anche se i clienti cambiano. Una semplice analisi dei requisiti illustra il costo di cambiamento del progetto. La gestione efficace dei requisiti pu diminuire le probabilit di un cambiamento. La gestione dei requisiti verifica inoltre che il progetto soddisfi i requisiti dichiarati. A causa della complessit di molti documenti dei requisiti, la tracciatura dei requisiti una parte costosa della gestione del progetto. L'uso di un pacchetto software che collega lo sviluppo ai requisiti pu migliorare notevolmente la gestione dei requisiti.
Per aderire
on line allindirizzo www.ilb2b.it/mc4.asp via fax compilando il coupon allegato e inviandolo allo 02.366092.515
5 Mostra Convegno
MC4 - Motion Control for giunge alla sua quinta edizione. Visto il successo riscosso negli anni precedenti, Edizioni Fiera Milano lieta di rinnovare l'appuntamento per la mostra convegno interamente dedicata alle tecnologie e ai prodotti per il controllo del movimento. Questo settore, che negli ultimi anni ha fatto registrare uno sviluppo impressionante, al momento uno dei pi interessanti non solo dal punto di vista tecnico ma anche applicativo. Linterdisciplinariet della tecnologia motion abbraccia un orizzonte tecnologico estremamente ampio, che va dallelettronica alla meccanica, dallacquisizione dati alla comunicazione. MC4 - Motion Control for si rivolge a tecnici e progettisti operanti in ambito industriale (impiantistica produttiva, macchine automatiche, macchine utensili, manutenzione ecc.) che utilizzano: - Motori e motoriduttori - servomotori - azionamenti e regolatori di velocit - controllo assi - sistemi di posizionamento - comandi e attuatori - sensori e comunicazione
Per informazioni
Tel. 02.366092.510-511 Fax 02.366092.515 mc4@fieramilanoeditore.it www.ilb2b.it/mc4.asp
La mostra
In uno spazio specifico sar allestita unesposizione a cura delle aziende partecipanti, in cui sar possibile toccare con mano lattuale offerta commerciale.
Il convegno
Nel corso della giornata si susseguiranno seminari tecnici tenuti dalle aziende espositrici della durata di 30 minuti ciascuno.
I contenuti
Il programma, lagenda e i titoli dei seminari saranno aggiornati, man mano che verranno confermati, sul sito www.ilb2b.it/mc4.asp
OFFERTO DA:
prov tel
cap fax
Consenso ai sensi dellart. 23 del D.Lgs n. 196 del 30 giugno 2003. Letta la nota informativa riportata su questa rivista, esprimi il tuo consenso al trattamento, alla comunicazione dei tuoi dati personali ed ai correlati trattamenti ai soggetti che svolgono le attivit indicate nella informativa stessa. In mancanza del tuo consenso la registrazione non potr essere eseguita. ACCETTO NON ACCETTO Esprimi/nega il tuo consenso alla comunicazione dei dati personali ed ai correlati trattamenti ad aziende terze che ne facciano richiesta ai fini pubblicitari e di marketing. ACCETTO NON ACCETTO
Compila il coupon e invialo tramite fax al n02.36.6092.515 oppure registrati sul sito www.ilb2b.it/mc4.asp
08
HTTP://WWW
Quando le nostre pagine non bastano, lenorme serbatoio del web pu dare una mano. Su una rivista c ar tacea, anche la pi voluminosa, sarebbe impossibile trattare per esteso tutti gli argomenti relativi a LabVIEW. In molti casi, tuttavia, sul web sono disponibili ar ticoli esaustivi o altri documenti, a cui rimandiamo i lettori interessati. I file XML creati in LabVIEW non sono sempre facilmente leggibili dagli editor di testo. Vi sono due modi per creare file XML in LabVIEW: - Usare i VI XML nativi in LabVIEW situati sulla palette AdvancedData Manipulation - Usare i VI XML DOM Parser inclusi come parte dell'Internet Toolkit. I file XML creati con i VI nativi sono scritti come file di testo multilinea, mentre quelli creati con l'Internet Tookit sono scritti come file a linea singola. In entrambi i casi, i campi XML non sono disposti in un modo che evidenzi le loro relazioni genitore/figlio. Ovviamente, questi formati possono rendere i file XML di LabVIEW molto difficili da analizzare e leggere all'interno di un normale editor testuale. Questo VI desempio cerca di eliminare il problema appena descritto. Esso analizza i file XML di LabVIEW e inserisce carriage return e tabulazioni dove necessario per dare loro, in un editor testuale, lo stesso aspetto che avrebbero in un editor XML. Dopo avere eseguito questo VI, i campi genitore/figlio all'interno del file XML sono indentati e spaziati in modo logico. Nota: In LabVIEW 8.6, i VI XML Parser inclusi con il toolkit sono ora inclusi nelle versioni Base, Full e Professional di LabVIEW Link alla pagina: ni.com/italian infocode: itbc3g
D A L L A C A RTA A L W E B
34
D A L L A C A RTA A L W E B
35
08
Vi presentiamo una selezione di argomenti di discussione sul Forum di ILVG.it
Shift cifre
Inviato: Mar Ott 14, 2008 4:15 pm Ciao ragazzi... siamo nuovi... Abbiamo un aiuto al pi presto... Noi abbiamo due u32 messi in due registri separati... il risultato deve essere lo shiftamento di alcune cifre del secondo registro nel primo... ad es. se abbiamo 352 nel primo e 245 nel secondo... il risultato deve essere 35224 e nel secondo solo 5. Lo shiftamento non prefissato ma definito dall'utente. Come possibile? Con quale struttura??? ale160784
In due registri? Cosa intendi per due registri? Beh, se quelli che tu chiami registri sono due semplici controlli U32, basta convertirli in stringhe e poi operare sulle stringhe, oppure tenendo tutto come numeri, suddividere la cifa in centinaia, decine e unit e poi far shiftare le quantit di ogni tipo. Se per registri intendi che le cifre fanno parte di array, basta operare sugli array ed eventualmente poi usare quello che ti ho scritto sopra. C' qualcosa che mi sfugge? ..ma ciao! gepponline Ok... il problema che non possiamo usare array n stringhe... pensatele in 2 semplice u32.. devo spostare delle cifre da un 32 all'altro .. in che modo posso farlo?? grazie ale160784 Ok shiftamento riuscito per mi sorge un problemino... non so se da poco... devo fare una semplice sottrazione con 2 u32... per il risultato lo voglio in i8... il guaio che mi fa la sottrazione anche con il segno se gli aggiungo un semplice indicator. Ma se metto il collegamento in un altro operatore mi tiene il tipo u32 come faccio a risolvere questo problema? Se vedete la cosa che ho fatto quando entra nello shift entra un u32.. e non va bene... grazie. ale160784 [continua su http://ilvg.it/ht/3750]
ale160784
36
Creare controlli
Inviato: Mar Set 30, 2008 3:37 pm Innanzitutto, ci sono novit sul fronte della creazione di nuovi controlli programmaticamente? E ora spiego perch. Ho sviluppato un software per creare un sinottico trascinando delle forme da un menu all'interno di un picture control. il fatto che il sinottico in questione sarebbe alla fin della fiera, un immagine con all'interno dei rettangoli (anche inclinati e da poco ho tolto i cerchi per vedere se aiutava) e io devo andare a capire, in un secondo momento, se l'utente ci clikka sopra col mouse. Se si trattasse di rettangoli normali, potrei optare per un for che mi confronta le coordinate del mouse con tutte quelle dei vari rettangoli. I rettangoli inclinati pero' mi rovinano la vita perch non mi permettono di fare dei controlli di posizione "semplici". Faccio un esempio: Io ho il rettangolo A che messo in orizzontale ed delineato dalle coordinate di 4 punti. Verifico se la posizione del mouse compresa tra la x massima e la x minima e la y massima e la y minima. Il rettangolo B invece inclinato di 45 gradi e quindi non posso pi fare l'operazione di prima per verificare se il mouse all'interno del rettangolo. Avete qualche consiglio? Ovviamente la domanda iniziale del topic l'ho fatta
perch la possibilit di creare un controllo anzich disegnare in un picture control, mi permetterebbe poi di gestire il controllo con le varie propriet ed eventi. HELLPPPP!! ..ma ciao! gepponline In http://alienryderflex.com/polygon/ c' un pezzo di codice C, sorprendentemente corto, per calcolare se un punto si trova all'interno di un poligono, noti i vertici. Non l'ho provato, ma convertirlo in Labvi semplice. Hai tolto i cerchi ma erano la cosa pi semplice, bastava vedere se la distanza dal centro <= del raggio! Snamprogetti No infatti la roba del cerchio era solo legata al fatto degli array per archiviare le sagome perch mentre se creo un quadrato ho un array di 4 cluster (uno per estremo), per il cerchio ho un cluster di 4 elementi e quindi volevo vedere cosa succedeva prendendo in considerazione solo i rettangoli Intanto dar un occhio a quel codice! Grazie mille! ..ma ciao! gepponline [continua su http://www.ilvg.it/ht/3724] gepponline
37
REPORT
08
Si svolta lo scorso agosto la 14a edizione di NIWeek, la mostra-convegno sul graphical system design organizzata da National Instruments
ltre 3000 partecipanti qualificati, un centinaio di espositori e numerosi ospiti di primo piano hanno caratterizzato l'edizione 2008 di NIWeek che, come ogni anno, ha occupato l'intero centro congressi di Austin, Texas. Aprendo i lavori, James Truchard, presidente, CEO e cofondatore di National Instruments, ha annunciato un programma composto da oltre 200 sessioni tecniche, workshop pratici, presentazioni di casi concreti e panel, a cui hanno partecipato esperti provenienti dal mondo industriale ed accademico. Moltissime le novit, che cercheremo di riassumere nelle righe seguenti.
Figura 1 - Durante NIWeek 2008, un panel di esperti ha discusso i progressi del 'Green Engineering'
LABVIEW 8.6
A NIWeek ha fatto il suo esordio l'attesa nuova versione 8.6 di LabVIEW che, basandosi sulla natura intrinsecamente parallela della programmazione grafica, offre nuovi tool per sfruttare meglio i benefici dei processori multicore, degli Fpga e della comunicazione wireless. "Il mondo parallelo, le persone sono parallele, i computer sono paralleli: perch dovremmo limitarci ai linguaggi sequenziali?", si chiesto nella sua keynote Jeff Kodosky, cofondatore e business and technology fellow di National Instruments, considerato il 'padre' di LabVIEW. "L'ultima versione di LabVIEW mette a disposizione una piattaforma comune per aumentare il throughput dei sistemi di test e controllo con processori multicore, ridurre il tempo di sviluppo delle applicazioni prototipali avanzate di controllo ed embedded basate su Fpga e creare pi facilmente sistemi di misura distribuiti per l'acquisizione remota dei dati", ci ha spiegato John Pasquarette, software marketing director presso National Instruments. Ed da sottolineare la decisa volont di National Instruments di utilizzare LabVIEW anche in campo industriale. "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 PLC ed i PAC (Programmable Automation Controller)", ha affermato John Hanks, Vice President Product Marketing per l'acquisizione dati ed il controllo industriale. "Questi blocchi funzione sono stati progettati per applicazioni industriali real-time". LabVIEW 8.6 permette quindi di programmare direttamente i PAC CompactRIO, mentre nuove caratteristiche di sviluppo ed integrazione, come il core IP FFT, consentono di incrementare le prestazioni di analisi spettrale in applicazioni come il monitoraggio delle condizioni di macchine ed il test RF. Infine, possibile importare IP esistenti o di terze parti in LabVIEW FPGA usando il nuovo nodo Clip (Componentlevel IP). Avvicinandosi sempre pi alle architetture basate su PLC, LabVIEW 8.6 dispone inoltre di strumenti aggiuntivi di controllo logico, in grado di offrire funzioni basate sui linguaggi IEC 61131-3. "Queste funzioni real-time forniscono funzioni note a programmatori che hanno utilizzato altri controller industriali, permettendo loro di pubblicare i propri parametri sulle HMI attraverso la rete", ci ha riferito Hanks.
38
LE ALTRE NOVIT
Un altro annuncio molto atteso stato quello della nuova piattaforma Single-Board RIO. "I nuovi dispositivi Single-Board RIO offrono unopzione hardware integrata e a basso costo per la produzione in serie di applicazioni embedded di controllo e acquisizione dati", ci ha riferito Pasquarette. Gli otto nuovi sbRIO-96xx combinano un processore embedded real-time, un chip Fpga e canali di I/O analogico e digitale su un'unica scheda. Essi espandono lofferta della piattaforma di distribuzione basata su chip Fpga che include sistemi PXI, PC e dispositivi embedded di controllo e acquisizione dati NI CompactRIO che condividono unarchitettura di I/O riconfigurabile (RIO) costituita da un processore real-time, un chip Fpga e moduli di I/O. Per mezzo di questarchitettura standard e di LabVIEW, possibile progettare e prototipare rapidamente controlli avanzati e dispositivi embedded su piattaforme hardware quali CompactRIO e distribuirli sui sistemi integrati CompactRIO a basso costo o sui nuovi Single-Board RIO. Tra le altre novit, dieci nuovi dispositivi per lacquisizione dati wireless ed Ethernet. Tramite lo standard Ieee 802.11, i nuovi dispositivi DAQ Wi-Fi trasmettono dati su
ciascun canale ad oltre 50 kS/s con una risoluzione di 24 bit. "Naturalmente, possibile combinare lhardware DAQ Wi-Fi con la piattaforma LabVIEW", ha affermato Richard McDonell, senior group manager product marketing presso National Instruments. stata anche annunciata l'estensione della linea di prodotto Smart Camera, con l'introduzione di tre nuovi dispositivi - le Smart Camera NI 1744, NI 1762 e NI 1764 - che offrono una maggiore velocit di elaborazione e una risoluzione delle immagini pi elevata, offrendo nuove possibilit applicative nella visione artificiale. Infine, National Instruments ha annunciato lanalizzatore di segnale vettoriale RF PXIe5663, il generatore di segnale vettoriale RF PXIe-5673 e lo chassis a 18 slot ad elevata ampiezza di banda PXIe-1075. In particolare, l'NI PXIe-5663 in grado di effettuare lanalisi dei segnali da 10 MHz a 6,6 GHz con un'ampiezza di banda istantanea di 50 MHz. Il PXIe-5673 consente di generare segnali da 85 MHz a 6,6 GHz garantendo unampiezza di banda istantanea fino a 100 MHz. Infine, il PXIe-1075 il primo chassis PXI Express con linee PCI Express connesse ad ogni slot, in grado di fornire unampiezza di banda fino a 1 GB/s per slot e fino a 4 GB/s totali.
migliorati in grado di compensare i sensori rumorosi o difettosi. Inoltre, il modulo include una gamma di strumenti avanzati di controllo, quali progettazione di PID analitici, LQR, feedback sullo spazio di stato, in esecuzione su LabVIEW sui PAC tipo CompactRIO. "Per ottimizzare produttivit ed efficienza, si cerca spesso di far dialogare i sistemi di controllo tramite interfacce utente basate su web, accessibili da ogni parte del mondo", ha affermato Brian MacCleery, senior product manager Industrial Embedded Design presso National Instruments. LabVIEW 8.6 consente di convertire le applicazioni LabVIEW in servizi Web su desktop e hardware real-time, accessibili da qualsiasi dispositivo predisposto per il web quali smart phone e PC. Grazie a questa caratteristica possibile sviluppare interfacce utente remote per le proprie applicazioni LabVIEW meditante tecnologie web standard quali Html, JavaScript e Flash.
CONCLUSIONE
Oltre alle importanti novit che abbiamo descritto, durante NIWeek sono state presentati molti altri prodotti e, soprattutto, molte applicazioni concrete. Citiamo soltanto il veicolo autonomo sviluppato da Torc e dal Virginia Polytechnic Institute e un nuovo software per la piattaforma robotica Lego, denominato Lego Education WeDo, che prosegue la collaborazione fra National Instruments e Lego Education nel campo della robotica educativa. In un clima di generale entusiasmo, si sono quindi spenti i riflettori. L'appuntamento con il prossimo NIWeek stato fissato per il 4 agosto 2009.
Figura 2 - Il Solar Vehicles Team dell'University of Texas ha usato prodotti National Instruments per creare questo veicolo alimentato ad energia solare
39
EVENTI
08
LAUTOMOTIVE IN PILLOLE
Nadia Albarello
opo il grande successo di Automotive Forum di Torino, il consueto appuntamento biennale organizzato da National Instruments sulle sfide del moderno mercato automobilistico, lo scorso 22 ottobre si sono dati appuntamento gli operatori dei settori della progettazione, dellautomazione e del collaudo in campo automotive presso il Demo Center di Modena per assistere ad Automotive Day - la versione in pillole di Automotive Forum. Scopo della manifestazione: riuscire a raggiungere gli operatori del settore di unaltra area geografica di fondamentale importanza per il mercato automobilistico italiano. Durante levento, gli esperti di settore si sono confrontati sulle sfide del moderno mercato automotive in merito ai nuovi standard di sicurezza e affidabilit richiesti a costruttori e fornitori, alle esigenze sempre crescenti nellambito del comfort della vettura, alle pi recenti innovazioni dellintrattenimento multimediale a bordo e alle tematiche sempre pi attuali dellabbattimento delle emissioni e dellefficienza dei consumi. Durante la keynote di apertu-
ra, sono state affrontate le ultime tendenze e sviluppi tecnologici nellelettronica del mercato automotive, dalla prototipazione al collaudo di motori e componenti automotive nellottica dellefficienza energetica. Nel corso del proprio intervento, Alma Automotive ha analizzato lo sviluppo di algoritmi di controllo e diagnosi con metodologia Rapid Control Prototyping su piattaforma cRIO. A seguire, la presentazione di Eurins sulla gestione delle prove di omologazione a banco per motori diesel secondo le normative europee vigenti. Gruppo Loccioni ha concluso la giornata illustrando il progetto Mexus, la progettazione embedded di un innovativo sensore di misura per sistemi di test in ambiente automotive.
Dopo due anni, torna il seminario gratuito dedicato a metodi, tecnologie e strumenti per la misura e lanalisi di fenomeni vibroacustici in due date
el mese di ottobre, National Instruments, Luchsinger e Wintek, Alliance Partner di NI, si sono unite in partnership per dare vita alla seconda edizione di 'Vibroacustica per tutti!', il seminario tecnico gratuito dedicato ai metodi, alle tecnologie e agli strumenti per la misura e lanalisi di fenomeni vibro acustici. Le citt di Roma e Bologna hanno fatto da sfondo, ospitando 120 partecipanti. Ancora una volta Wintek (www.wintek-it.com), societ di ingegneria con esperienza pluriennale nella progettazione, nello sviluppo e nella fornitura di sistemi di test e misura basati su Personal Computer, specialmente orientati alle esigenze dell'elaborazione numerica del segnale, ha messo a disposizione le competenze sviluppate in oltre quindici anni nel settore dellanalisi vibroacustica per unopportunit formativa e di approfondimento tecnico. La collaborazione come Partner certificato di National Instruments per quanto riguarda le tecnologie di misura e analisi e con
Luchsinger (www.luchsinger.it) per le competenze sensoristiche, ha consentito di fornire una panoramica completa delle problematiche affrontate. Durante le due date si avuta occasione di analizzare le tecniche di acquisizione, registrazione del segnale ed analisi, sia nel dominio del tempo che in quello della frequenza, utili per la realizzazione di sistemi di misura dedicati sia allanalisi di laboratorio che al monitoraggio e test di sistemi e macchine industriali. Si dedicata particolare attenzione alla divulgazione dei principi, dei metodi e delle tecniche di misura di base cos da permettere una facile comprensione degli argomenti trattati non solamente agli 'addetti ai lavori'. A tal fine, dopo aver brevemente illustrato alcuni concetti teorici di base, i relatori del seminario hanno affrontato e discusso casi applicativi concreti a partire dallanalisi del problema fino alla relativa soluzione strumentale, utilizzando prodotti - ad oggi gi in uso - basati su tecnologia National Instruments.
40
READER SERVICE
IL READER SERVICE E ON LINE!
www. READERSERVICE.IT
Sempre pi al passo con i tempi, LabVIEW WORLD la prima rivista in Italia a fornirvi il servizio di reader service on line. Ora possibile ricevere maggiori informazioni su prodotti e servizi presentati negli articoli e/o inserzioni pubblicitarie LabVIEW WORLD semplicemente registrandosi al sito: WWW.READERSERVICE.IT Compilate la cartolina virtuale e noi provvederemo a inoltrare tempestivamente la richiesta all'azienda interessata, che invier al vostro indirizzo tutta la documentazione disponibile.
In alternativa compilate questa scheda e inviatela al numero di fax:
0236519123
8
VICE
READE FIERA MILANO EDIZION SERVICE READER SE MILANO EDIZIONI F DER SERVICE FIERA MILANO READER SERVICE CE READER SERVICE EDIZIONI F FIERA READER SERVICE READ
IL SERVIZIO GRATUITO
Citt Nazione
EVENTI
08
COSTRUTTORI DI MACCHINE
Si sta per concludere il seminario tecnico organizzato da National Instruments, patrocinato da AIdA, Associazione Italiana di Assemblaggio, e con la par tecipazione dellUniversit di Udine, che illustra come ridurre i costi di progettazione per i costruttori di macchine industriali
i concluder alla fine di novembre il seminario tecnico gratuito sulle tecniche di progettazione meccatronica che ha toccato le nove citt italiane di Torino, Milano, Roma, Firenze, Padova, Bologna, Bari, Ancona e Napoli. Un rappresentante dellAssociazione Italiana di Assemblaggio ha aperto i lavori con una panoramica sulle sfide e le necessit che i costruttori di macchine si trovano oggi ad affrontare. Il seminario tecnico ha di fatto affrontato il tema della riduzione dei costi di progettazione per i costruttori di macchine industriali con un taglio tecnico-formativo, e si rivolto principalmente a progettisti e costruttori di macchine industriali, che desiderano prepararsi a seguire un processo di progettazione meccatronica, simulare differenti configurazioni meccaniche e ridurre i rischi associati alla progettazione. I quattro temi principali affrontati nel dettaglio corrispondono alle fasi del processo coinvolte durante la progettazione di macchine. Progettazione meccanica: in questa sessione, i relatori coinvolti hanno illustrato come superare le sfide della progettazione di macchine. Grazie ad esempi significativi di progettazione meccatronica di macchine industriali, i partecipanti hanno potuto scoprire come tenere concretamente conto delle esigenze del cliente finale e incorporarle nelle fasi di progettazione e realizzo, tenendo conto del giusto compromesso tra costi e prestazioni. Gli interventi di Vanni Zanotto, docente di Robotica e Meccatronica presso lUniversit di Udine, hanno permesso di approfondire come utilizzare al meglio tecniche di progettazione meccatronica nel mondo dei macchinari industriali. Progettazione elettrica: in questa sessione sono stati passati in rassegna i criteri per la scelta della piattaforma hardware e software adatta per affrontare la crescente complessit delle macchine. I relatori si sono poi soffermati
Note sullautore
Nadia Albarello, laureata in Lingue Moderne e Comunicazione alla Karl Franzens Universitt di Graz, Austria, lavora in qualit di Marketing Communications Manager presso National Instruments Italy.
42
ad analizzare la scalabilit software per il riutilizzo del codice su piattaforme hardware di controllo macchina come fattore critico per la prototipazione e produzione in serie. Progettazione software embedded: sono state affrontate tematiche quali la progettazione di un'architettura software flessibile e la valutazione delle opzioni a livello degli strumenti a disposizione. Lutilizzo del software adatto permette di implementare funzioni avanzate, quali monitoraggio delle condizioni macchina o ispezione visiva, ovvero funzioni fondamentali da considerare nella progettazione di un macchinario. Progettazione di sistemi di controllo: in questa sessione stato trattato il tema della valutazione del sistema di controllo ottimale per aumentare la produttivit di una macchina e quello dellidentificazione degli algoritmi di controllo pi adatti a differenti esigenze.
EVENTI
LABVIEW COMMUNITY
CAPITOLO SECONDO
A cura di Nadia Albarello
Dopo lar ticolo pubblicato sul numero 7 di LabVIEW World, segue una seconda panoramica su nuove risorse che gravitano attorno al mondo LabVIEW e dalle quali possibile attingere preziose informazioni
lzi la mano chi non sa cosa sia una wiki. Ecco un indizio: la pi nota ed utilizzata dagli utenti del web certamente wikipedia, lenciclopedia a contenuto aperto, modificabile, attendibile e compilata direttamente dai visitatori della rete (www.wikipedia.com). Ma nel mondo dellinformazione interattiva e condivisa possiamo assistere quotidianamente ad un proliferare di wiki e alla loro diffusione a macchia dolio, sia nel vastissimo universo del web, che nellambiente pi circoscritto ed ovattato delle imprese. Oltre a vantare numerosi post ed aggiornamenti dedicati sulla capostipite delle wiki, Wikipedia per lappunto, LabVIEW ora diventato il marchio di fabbrica di unenciclopedia online tutta dedicata alla programmazione grafica di sistemi: LabVIEW Wiki (http://wiki.lavag.org/Home). Lobiettivo dichiarato mettere in contatto sviluppatori LabVIEW da tutto il mondo e creare una piattaforma comune per la condivisione di commenti, esperienze e consigli su una tematica comune: la programmazione in LabVIEW. I contenuti possono essere organizzati e ricercati dagli utenti per category list, glossari, portali e indici. Category list: liste di contenuti suddivise per categoria e organizzate in ordine alfabetico a seconda dellargomento specifico Glossario: Raccolta di tutti i termini e relative definizioni correlati alla programmazione in LabVIEw e organizzati per categorie tematiche Portale: Un portale una pagina introduttiva per un argomento specifico a completamento di un articolo, documento e immagini. Serve per individuare a colpo docchio la pagina che si stava cercando. Indice: lista completa di ogni risorsa presente nella wiki Che dire di pi, enjoy! http://wiki.lavag.org/LabVIEW_Wiki:Contents
grammato grazie a LabVIEW dai pi piccoli di casa? A qualunque categoria apparteniate, se conoscete o volete conoscere LEGO Mindstorms pi da vicino, questi sono i forum di discussione che fanno per voi. http://www.ni.com/academic/mindstorms/community.htm
IO, ROBOT
Anche voi fate parte della fitta schiera di fan di Lego Mindstorms (definizione), oppure, siete semplicemente spettatori delle evoluzioni del robottino configurato e pro-
Se i robot sono proprio la vostra passione, ecco un altro link che non potete non conoscere. National Instruments ha creato FIRST Robotics Community (http://decibel.ni.com/content/community/first), il blog interamente dedicato a FIRST Robotics Competition, la competizione che ogni anno vede coinvolte squadre di studenti delle scuole superiori di tutto il mondo nella realizzazione di un robot funzionante, che dovr sfidarsi con altri suoi simili in una serie di gare di diversi gradi di difficolt (http://www.usfirst.org/community/frc/). Da qui, oltre 40.000 studenti hanno libero accesso ad un programma di sostegno unico nel suo genere: i LabVIEW virtual mentor, volontari professionisti di varia natura, ma soprattutto programmatori LabVIEW, possono mettere a disposizione dei ragazzi le proprie conoscenze e supportarli nel loro percorso di apprendimento delle nozioni di base necessarie per la realizzazione di un robot perfettamente funzionante ed accedere alla competizione pi dinamiche ed emozionanti del mondo.
43
A P P U N TA M E N T I
08
Come sempre, vi segnaliamo i prossimi corsi di formazione di LabVIEW e i principali eventi internazionali che vedranno la partecipazione di National Instruments
CORSI DI LABVIEW
LABVIEW BASE 1: INTRODUZIONE
Milano: Roma: Padova: 19-21 gennaio 2-4 febbraio 10-12 febbraio
SPS/IPC/DRIVES
Norimberga: 24-27 novembre
LABVIEW INTERMEDIATE I
Milano Padova: 9-11 febbraio 10-12 marzo
ELECTRONICA
Monaco: 11-14 novembre
LABVIEW INTERMEDIATE II
Milano: 12-13 febbraio
VISION
Stoccarda: 4-6 novembre
LABVIEW DAQ
Milano: Roma: Padova: 28-30 gennaio 2-4 marzo 10-13 marzo
NIDAYS 09 FRANCE
Parigi: 3-4 febbraio 2009
LABVIEW E COMPACTRIO
Milano: 25-27 marzo
NIDAYS 09 (NI.COM/ITALY/NYDAYS)
Milano: 25 febbraio 2009
LABVIEW REAL-TIME
Milano: 18-20 febbraio
NIDAYS 09 SPAIN
Barcellona: 12 marzo 2009 Bilbao: 17 marzo 2009
LABWINDOWS/CVI
Milano: 2-4 febbraio
Verificate il calendario aggiornato degli eventi National Instruments alla pagina web ni.com/italy/eventi
TESTSTAND I
Milano: 2-4 marzo
NOVIT!
CORSO BASE: LA MISURA CON IL SUPPORTO DEL PERSONAL COMPUTER
Milano: Padova: 16, 17 novembre 18 febbraio
TESTSTAND II
Milano: 30-31 marzo
44
AAA
RICERCHIAMO
TESTING ENGINEER
L A B V I E W E L AVO R O
08
Conoscete bene LabVIEW? Date unocchiata alle offerte di lavoro che abbiamo selezionato da ILVG.it
Intecs Informatica e Tecnologia del Software SpA, nata nel 1974, opera nel mercato dei sistemi tecnologicamente all'avanguardia. Progetta e realizza sistemi elettronici complessi per le maggiori organizzazioni europee nei mercati Difesa, Spazio e Civile. Intecs all'avanguardia nel mercato del software, dove innovazione e qualit sono essenziali per determinare il successo dell'azienda. Intecs una PMI privata italiana con circa 350 dipendenti. La sede centrale a Roma ed altre sedi operative sono presenti a Pisa, Napoli, Milano, Torino e Tolosa (Francia). Pi dell'80% dei dipendenti possiede una laurea in Ingegneria, Informatica o altre discipline scientifiche. Intecs stata una delle prime aziende di software in Italia ad ottenere nel 1994 la certificazione UNI EN ISO-9001 . La certificazione UNI EN ISO-9001 stata rinnovata nel Giugno 2005 sotto la denominazione UNI EN ISO9001:2000. Nel Giugno 2005 ha ottenuto la certificazione al Livello 3 del Capability Maturity Model (CMM ) del Carnegie Mellon Software Engineering Institute (SEI). Intecs ricerca per la Divisione Automotive un/una Testing Engineer Settore Automotive con buona conoscenza dell'ambiente LabVIEW, PXI National Instruments e segnali Bus CAN per attivit di SW/System Test mediante l'uso di banchi di test National Instruments. Requisiti: Laurea in Ingegneria Elettronica/Infor matica/Telecomunicazioni o cultura equivalente Buona conoscenza dellambiente LabVIEW; Buona conoscenza ed utilizzo del Bus CAN in ambiente LabVIEW; Almeno 2 anni di esperienza di acquisizione e pilotaggio di segnali su Bus CAN
veicolo, di pilotaggio e acquisizioni di sensori di forza, posizione, temperatura, etc. con PXI National Instruments Windows e Real Time nel settore automotive; Preferibile certificazione NI Sviluppatore (CLD); Conoscenza di altri tools di NI come TestStand /Switch Executive; Conoscenza dell'ambiente Matlab/ ControlDesk e del Tool NI LabVIEW Simulation Interface Toolkit; Preferibile residenza/domicilio a Bergamo o disponibilit al trasferimento. La ricerca riveste carattere di urgenza. Invitiamo inoltre I/Le candidati/e interessati/e ad inserire il proprio curriculum vitae e a compilare il form che si trova sul ns. sito www.intecs.it alla sezione Job. Nota: Contratto e retribuzione saranno commisurati all'effettiva esperienza maturata Sede di lavoro: Stezzano (BG). Rif. TestBG_Stepstone www.stepstone.it
Costituiranno titolo di preferenza: la conoscenza delle logiche di programmazione software LabVIEW/CVI/sistemi real time/Visual C/ C++; la conoscenza delle logiche di programmazione firmware e dei relativi linguaggi; brevi esperienze pregresse con ruoli tecnico-trasversali. Lazienda offre un contratto a tempo indeterminato, nonch un ambiente stimolante e confrontativi, con ottime opportunit di crescita professionale. Sede di lavoro: Cernusco sul Naviglio (MI) Gli interessati possono inviare CV al seguente indirizzo mail: segreteria@consulemme.com o via fax allo 02/20402953 specificando il RIF. EDJ. I dati saranno trattati secondo la legge 196/03 www.consulemme.com
45
L A B V I E W E L AVO R O
08
INGEGNERE ELETTRONICO
Gi Group S.p.A., Agenzia per il Lavoro (Aut. Min. 26/11/04 Prot. N1101-SG), ricerca per note aziende settore metalmeccanico di Ala/Rovereto INGEGNERE ELETTRONICO/ INFORMATICO PER PROGRAMMAZIONE MACCHINE INDUSTRIALI Requisiti: Laurea in ingegneria elettronica/ informatica, precedente e referenziata esperienza nella programmazione di PLC per macchine ed impianti industriali, buona conoscenza ambienti CAD: LabVIEW, ORCAD, INVENTOR; conoscenza linguaggi di programmazione C++, ANSI C, VISUAL STUDIO. Richiesta disponibilit ad eventuali trasferte estere e buona conoscenza lingua inglese. La ricerca rivolta ad entrambi i sessi (L.125/91) Gli interessati possono inviare la propria candidatura a: Gi Group S.p.A. (Aut. Min. 26/11/04 Prot. N1101-SG) Via Paoli 20/a, Rovereto 38068. Tel. 0464.437767 E-mail: rovereto@gigroup.it autorizzando al trattamento dei dati personali ai sensi del D.Lgs. 196/2003. I dati forniti dai candidati saranno utilizzati per questa o altre selezioni. Si pregano gli interessati - prima di inviare le candidature- di consultare l'informativa sulla privacy (art. 13 e 7 D.lgs 196/2003) presente sul sito www.gigroup.it Zona: Rovereto/ Ala. www.lavoroeformazione.it
Gruppo Openjob flessibilit, organizzazione, affidabilit e continuit di soluzioni. Il fatturato complessivo del Gruppo Openjob ha raggiunto, nel 2007, i 203 milioni di euro. Dal 2008, tutte le agenzie per il lavoro facenti parte del Gruppo (In Time, Pianeta Lavoro e QuandoccoRre) rispondono al solo nome di Openjob. Importante azienda specializzata nella realizzazione e nella progettazione di sistemi elettronici avanzati per i pi diversi settori dellingegneria elettronica, sta ricercando un programmatore software. Il candidato ideale un giovane laureato in elettronica con conoscenza approfondita del linguaggio grafico LabVIEW. Dovr avere una buona conoscenza della lingua inglese o dellinglese tecnico e unottima preparazione matematica. Sar inserito allinterno dellufficio tecnico ricerca e sviluppo occupandosi dei vari progetti in corso e dello sviluppo degli stessi. Lazienda si trova nei pressi di Rubano Padova Ovest. Data di pubblicazione: 16/10/2008 Citt: PADOVA OVEST Studi minimi: Laurea breve (3 anni) Esperienza minima: 1 anno www.infojobs.it
ne quali LabVIEW, Visual basic, Cad 2D e 3D, buona conoscenza della lingua inglese. Le persone interessate possono inoltrare il proprio curriculum vitae, comprensivo di autorizzazione al trattamento dei dati, all'indirizzo antonio.nocerino@it.randstad.com specificando nell'oggetto il numero di riferimento: NA/T.E. Zona di lavoro: Nola www.stepstone.it
PROGRAMMATORE LABVIEW
Openjob SpA unAgenzia per il Lavoro, attiva sul mercato italiano dal 2001, che pu contare su quasi 400 dipendenti diretti ed presente sul territorio nazionale con 80 filiali che forniscono lavoro, ogni mese, a pi di 8.000 persone. Le aziende e i lavoratori si rivolgono a noi perch trovano nel
46
L A B V I E W E L AVO R O
TEST ENGINEERS
Our client is looking for a Test Engineer to be responsible for developing and implementing various methods of testing systems and equipment. Skill Required: a degree in Engineering or Computer Science (preferably M.Sc.); experience with serial-mass production and mechanical structures. good analytical and problem solving skills; knowledge of test methodology, planning and execution; production tests; making testing equipment for production tests; automatic reading/tests with i.e. LabVIEW; programming in LabVIEW and preferably also C++ and C#. Contact hdelt@chronosconsulting.com Country: Denmark Sector IT and Telecommunications Ref. DKIT25948 Data di pubblicazione: 21/10/2008 www.chronosconsulting.com
Gradita conoscenza di NI LabVIEW. La conoscenza della lingua inglese completa il profilo. Qualora il profilo sopra indicato corrisponda alla sua figura e sia di suo interesse, la invitiamo a presentare il suo CV autorizzando il trattamento dei propri dati personali (Dlgs. 196/2003) e indicando il riferimento di cui sopra, direttamente a: italy.jobs@ni.com (Rif. ISE LW)
Problem-solve effectively; enjoy solving problems Leadership qualities gaining respect of others, having an entrepreneurial spirit, seen as a leader by others T.O.E.F.L. Certified - Communicate clearly and concisely in English, so that persons and customers you work with can understand you clearly, particularly when in technical conversations. italy.jobs@ni.com (Rif. AE LW)
APPLICATIONS ENGINEER
The National Instruments Applications Engineering (AE) Department is looking for new engineering college graduates with strong leadership qualities who are interested in developing their careers in the areas of Technical Sales, System Engineering product support and project management, and Technical Marketing. Core Job Responsibilities Will interface between National Instruments and our customers to find creative and timely solutions to customers' technical issues as well as work on a variety of technical projects. Will work cooperatively with many departments at NI, including R&D, Sales, Marketing, and Manufacturing. Will participate in formal training programs designed in preparation for a career at National Instruments Requisiti: Bachelor of Technical Engineering (5Y) Domiciled in Milan Strong customer service attitude, work ethic and drive to succeed Solid understanding of electronics, computers, and high-level programming languages (C, C++, LabVIEW) Interest and skilled in writing on technical subject matter Ability to take initiative and own tasks and projects
47
INFORMATIVA AI SENSI DEL CODICE IN MATERIA DI PROTEZIONE DEI DATI PERSONALI 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 linvio 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 allatto della sottoscrizione dellabbonamento, 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 dellart. 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 allindirizzo sopra indicato. Presso il titolare disponibile elenco completo ed aggiornato dei responsabili. Informativa resa ai sensi dellart. 2, Codice Deontologico Giornalisti Ai sensi dellart. 13, d. lgs 196/2003 e dellart. 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 dellart. 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 dellart. 138, d. lgs 196/2003, non esercitabile il diritto di conoscere lorigine dei dati personali ai sensi dellart. 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.
LabVIEW World - La prima rivista italiana per la comunit di LabVIEW Sede legale - Via Salvatore Rosa 14, 20156 Milano, tel +39 02 366092.1 fax +39 02 366092.280 www.edizionifieramilano.it Sede Operativa - Viale Espinasse 141, 20156 Milano tel. +39 02 366092.1 fax +39 02 366092.525 Direzione Sergio Maggioni Presidente Costante Casali Amministratore Delegato Alberto Taddei Publisher Nadia Albarello, Matteo Bambini, Matteo Foini, Alessandro Ricco Alberto Taddei Direttore Responsabile - alberto.taddei@fieramilanoeditore.it Valerio Alessandroni Direttore Tecnico valerio.alessandroni@tiscali.it Alessandra Pelliconi Segreteria - tel: 02 366092.527 alessandra.pelliconi@fieramilanoeditore.it Collaboratori: Nicola Bavarone, Michele Corr, Massimo Lorenzi, Marco Luciani, Enzo Nava, Alessandro Ricco, Emanuele Stucchi, Franco Trespidi, Halvor Snellingen Grafica e produzione Bimage.it Progetto grafico e Impaginazione Franco Tedeschi Coordinamento grafici - franco.tedeschi@fieramilanoeditore.it Alberto Decari Coordinamento DTP - alberto.decari@fieramilanoeditore.it Grafiche Sima Ciserano - BG - Stampa Giuseppe De Gasperis Sales Manager giuseppe.degasperis@fieramilanoeditore.it - 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 labbonamento alla rivista Abbonamento annuale (4 numeri): E 20,00 Abbonamento per l'estero (4 numeri) E 40,00 Prezzo della rivista: E 5,00 - Arretrati: E 10,00 Testata associata Associazione Nazionale Editoria Periodica Specializzata Edizioni Fiera Milano iscritta al Registro Operatori della Comunicazione n 11125 del 25/07/2003. Autorizzazione alla pubblicazione del tribunale di Milano n 754 del 11/12/2006. Tutti i diritti di riproduzione degli articoli pubblicati sono riservati. Manoscritti, disegni e fotografie non si restituiscono. LabVIEW World ha frequenza trimestrale, per un totale di 4 numeri all'anno. Tiratura del presente numero: 3.000 copie.
Pubblicit
readerservice.it n.21169
Preparati ad affrontare il mercato pi velocemente con la progettazione grafica di sistemi, un approccio che integra software grafico aperto e hardware commerciale e che ti permette di progettare in modo iterativo e di implementare semplicemente e velocemente il tuo progetto sulla piattaforma embedded di National Instruments. Il sistema NI CompactRIO ti offre una piattaforma ideale per la prototipazione e la produzione in serie grazie a microcontrollore integrato, RTOS, FPGA programmabile, condizionamento di segnale integrato, I/O modulari e unintegrazione completa con lintuitivo software NI LabVIEW. readerservice.it n.22313
>>
Scopri come semplificare la tua progettazione embedded alla pagina web ni.com/embedded/i
02 41.309.1
NATIONAL INSTRUMENTS ITALY S.r.l. I Via Anna Kuliscioff, 22 I 20152 Milano I Tel.: 02-413091 I Fax: 02-41309215 I P.IVA/C.F.: 09777310153 CCIAA Milano 1317488 I Iscr. Trib. Milano 296073/7502/23 I S.r.l. 2008 National Instruments. Tutti i diritti riservati. CompactRIO, LabVIEW, National Instruments, NI e ni.com sono marchi commerciali di National Instruments. Altri prodotti e nomi aziendali citati sono marchi commerciali delle rispettive aziende. 2008-10121-821-122