LabVIEW per ESPERTI

Alessandro PLANTAMURA Technical Marketing Engineer - NI Italy

Agenda
• Realizzare interfacce utente avanzate

• Gestione della memoria e delle prestazioni
• Differenti approcci alla programmazione • Come strutturare l'architettura di sistemi

embedded
• Risorse

Obiettivo - Apprendere come personalizzare il pannello frontale e creare componenti riutilizzabili dell'interfaccia utente che siano conformi ai temi standard del SO. Vedere esempi di rappresentazione dei dati altamente interattivi, finestre di configurazione e modi per aggiungere sfondi all’interfaccia utente.

REALIZZARE INTERFACCE UTENTE AVANZATE IN LABVIEW

Realizzare interfacce utente avanzate

Agenda

Pratici consigli

Interfaccia Desktop

Interfaccia di monitoraggio

• Non fare l’originale • Più con meno • Tieni a mente l’utente finale

1. Non fare l’originale

Usa elementi che sono familiari

Non cambiare il comportamento di oggetti che si assomigliano Fai pulizia, ordine e restile, non reinventare

1. Non fare l’originale

Seppur con qualche spunto di creatività
     Pulsanti Icone Menu Dialoghi Terminologia

2. Più con meno
• Troppi elementi tutti assieme distraggono • Permetti all’utente di focalizzarsi sull’essenziale

3. Tieni a mente l’utente
• Probabilmente non ha una conoscenza approfondita come la tua
– Spiega che cosa fanno i pulsanti – Tienilio informato su cosa sta facendo il programma

• Considera come il tuo utente userà la tua applicazione
– Mouse e tastiera? – Touch Screen  pulsanti grandi – All’aperto  contrasto elevato

Realizzare interfacce utente avanzate

Agenda

Pratici consigli

Interfaccia Desktop

Interfaccia di monitoraggio

• • • •

Aggiungere didascalie ai pulsanti Suggerimenti dinamici Personalizzazione del menu di esecuzione Utilizzo dei pannelli

Applicare le regole
Applicazione Desktop
Non fare l’originale

• Usa controlli di sistema • Aggiungi icone familiari ai pulsanti che effettuano azioni • Usa la X per chiudere l’applicazione • • • • Permetti all’utente di nascondere i display meno importanti Nascondi la barra degli strumenti di LabVIEW Usa dialoghi temporanei Personalizza il menù di esecuzione

Più con meno

Tieni a mente l’utente

• Crea una barra di stato e usa il cursore di occupato per aggiornare l’utente • Usa suggerimenti per spiegare le funzionalità • Permetti all’utente di cancellare operazioni lunghe • Usa i pannelli per permettere di nascondere parti

Aggiungere didascalie ai pulsanti

Nuova paletta Silver

Suggerimenti dinamici

Personalizzazione del menu di esecuzione

Utilizzo dei pannelli

Area del titolo

Menu / Commandi Area dei contenuti espandibile

Barra di stato

Scomparsa di pannelli

Realizzare interfacce utente avanzate in Labview
Agenda

Pratici consigli

Interfaccia Desktop

Interfaccia di Monitoraggio

• Panel Background

Applicare le regole
Console Display informativa
Non fare l’originale

• Ispirati prendendo esempi dalla TV, dai siti web o applicazioni simili

• Mostra unicamente le informazioni importanti in Più con modo che siano riconoscibili all’istante
meno

Tieneni a mente l’utente

• Audience passiva  l’appeal visivo è più importante

Background del pannello

Background con trasparenza

Risorse
UI Interest Group

http://decibel.ni.com/content/groups/ui

Objective - uno dei grandi vantaggi nell’usare LabVIEW è che le complessità del proprio sistema pc sono astratte, permettendo all’utente di concentrarsi sui dati. Tuttavia a volte vogliamo avere un controllo più diretto sulle performance del nostro codice ed è qui che entrano in gioco alcune delle tecniche di ottimizzazione che vedremo oggi.

GESTIONE DELLA MEMORIA E DELLE PRESTAZIONI IN LABVIEW

Gestione della memoria e delle prestazioni
Agenda
Dove ottimizzare Strumenti per il profiling Ottimizzazione della memoria Ottimizzazione di esecuzione

• Ridurre l’uso della memoria, aumentare la velocità • La regola del 80/20

Aumentare le prestazioni in LabVIEW

Dove ottimizzare

Strumenti per il profiling

Ottimizzazione della memoria

Ottimizzazione di esecuzione

Benchmark Valutare le performance Identificare le are di miglioramento

Ottimizzazione Migliorare l’efficacia Migliorare la velocità

Perchè fare profiling sul proprio VI
• L’80 percento del tempo di esecuzione è speso nel 20 percento del codice • Miglioramenti in termini di performance hanno maggiore impatto nel 20 percento del codice • Indovinare qual è il 20 percento è difficile

La regola del 80/20 sulle performance del software

Gestione della memoria e delle prestazioni
Agenda
Dove ottimizzare Strumenti per il profiling Ottimizzazione della memoria Ottimizzazione di esecuzione

• Strumenti di Windows (Task Manager, perfmon) • VI Profiler • Desktop Execution Trace Toolkit

Strumenti per il benchmark
Livello SO
• Task Manager, Perfmon

Livello LabVIEW
• VI Profiler, VI di Benchmark

Livello VI
• LabVIEW Desktop Execution Trace Toolkit

Strumenti di sistema
Windows Task Manager
• Da un’idea di massima se il collo di bottiglia è a livello di memoria o di CPU • Può aiutare nell’identificare memory leaks • View»Select Columns … permette di aggiungere dettagli Permette di monitorare • Processori • Disk I/O • Network Tx/Rx • Memoria/Paging

Perform

Desktop Execution Trace Toolkit
• Traccia sequenze di eventi di VI durante l’esecuzione • Informazioni su thread e VI • Misura del tempo di esecuzione • Identifica memory e reference leak

Sessioni multiple

Thread, CPU e memoria

VI

VI Profiler
• Statistiche su tempo e memoria per i VI
•Tools»Profile»Performance and Memory …

Gestione della memoria e delle prestazioni
Agenda
Dove ottimizzare Strumenti per il profiling Ottimizzazione della memoria Ottimizzazione di esecuzione

• • • •

Utilizzare la in place element structure Nascondere i punti Shift register Creazione di array

Componenti di un VI
• Pannello • Diagramma • Dati
– Valori di controlli/indicatori – Dati di default – Dati costante del diagramma a blocchi
Cosa c’è in un VI Pannello frontale

Noi carichiamo Diagramma a
blocchi

esclusivamente
Dati

• Codice
– Diagramma compilato in codice macchina

le parti di cui
Codice abbiamo

bisogno

Dati del pannello e del diagramma
• I dati del pannello son detti “Operate Data”
– Controlli e indicatori mantengono una loro copia dei dati, in modo che modifiche al pannello frontale non interferiscono con i calcoli nel diagramma

Operate Buffer

• I dati del diagramma si dicono “Execution Data”
– Ogni filo rappresenta un buffer di dati

Transfer Buffer

• “Transfer Data” sono usati per fare copie
– Evita problemi nel multithreading

Execution Buffer

Questo VI usa circa 8 KB di dati se è aperto il pannello frontale, e circa 4 KB in caso contrario

Mostrare le allocazioni di buffer

• Ogni filo è un buffer • Tipicamente nelle ramificazioni si creano copie • Algoritmo “In placement” di ottimizzazione

La struttura In-Place Element
Permette di modificare in maniera esplicita i dati “in place”

Dove è possibile gestire l’allocazione di memoria
• Type Coercion
– Cambia il tipo di dato di un filo per farlo corrispondere al tipo di dato richiesto
Coercion Dot

• Passare valori a SubVI
– non bisogna sempre creare una copia
In Place

• Shift Register
– L’ingresso sulla sinistra è sempre in place con l’uscita sulla destra

Always In Place

Creare dei vettori
Quanti modi ci sono per creare un vettore?..

Bad
• • Rialloca memoria per il vettore ad ogni loop Nessuna ottimizzazione nella compilazione Memoria riservata in fase di load Valori aggiornati “in place”

Better
• •

Best

Memoria preallocata
L’indicizzazione del tunnel elimina il bisogno di copie

Effetti dell’ottimizzazione della memoria

Gestione della memoria e delle prestazioni

Agenda
Dove ottimizzare Strumenti per il profiling Ottimizzazione della memoria Ottimizzazione di esecuzione

• Usare i setting appropriati di esecuzione • Limitare gli aggiornamenti dell’interfaccia

Utilizzo delle memoria nell’interfaccia utente
• Ogni controllo della IU richiede memoria per memorizzare la struttura dei dati • Quando in esecuzione, i dati di controlli ed indicatori sono una copia aggiuntiva dei dati del diagramma a blocchi • I dati di default per i controlli possono contribuire ad un utilizzo non necessario della memoria • Le IU dei SubVI generalmente non comportano un utilizzo della memoria

Panel and Diagram data
• I dati del pannello son detti “Operate Data”
– Controlli e indicatori mantengono una loro copia dei dati, in modo che modifiche al pannello frontalenon interferiscono con i calcoli nel diagramma

Operate Buffer

• I dati del diagramma si dicono “Execution Data”
– Ogni filo rappresenta un buffer di dati

Transfer Buffer

• “Transfer Data” sono usati per fare copie
– Evita problemi nel multithreading

Execution Buffer

Questo VI usa circa 8 KB di dati se è aperto il pannello frontale, e circa 4 KB in caso contrario

LabVIEW multithreaded e Thread della IU
• Gli aggiornamenti del pannello frontale avvengono nel tread della IU • La esecuzione avviene in altri thread • I dati condivisi devono essere protetti
– LabVIEW crea una copia ulteriore detta buffer di trasferimento
Thread messaggi Loop IU Thread

Thread

Exec

Exec

Gestione dell IU

Aggiorna gli indicatori solo quando ne hai bisogno

• Di norma più di 10 volte al secondo è eccessivo

• I dati sono copiati …
– … dal buffer di esecuzione al buffer di trasferimento – … dal buffer di trasferimento ai dati operativi degli indicatori

Defer Panel Updates
“Defer Panel Updates” è il metodo da usare quando avvengono cambiamenti multipli alle proprietà di controlli/indicatori, come ad esempio nei grafici

Risorse
In LabVIEW

• LabVIEW Help
Sul Web • ni.com/multicore • ni.com/devzone

Obiettivo - Introduzione agli strumenti più comuni usati per la
progettazione e la simulazione di sistemi avanzati e la loro completa integrazione con LabVIEW

DIFFERENTI APPROCCI ALLA PROGRAMMAZIONE IN LABVIEW

Modelli di progettazione di alto livello
Flusso di dati Codice C
Matematica testuale

Simulazione

Macchina a stati

Graphical System Design Platform

PC/Mac/Linux

PXI

CompactRIO

FlexRIO

Custom

Differenti approcci alla programmazione

Agenda

Strumenti per la simulazione

Nodo MathScript

• Piattaforma per la prototipazione • Esempi applicativi

Strumenti per la modellazione di sistemi

NI LabVIEW

MapleSoft MapleSim

ITI SimulationX

C / C++

The MathWorks, Inc. Simulink® Software

Esterel SCADE

LMS AmeSim

NI MATRIXx SystemBuild

Piattaforma NI per la prototipazione
Control Design & Simulation Module DFD Toolkit
LabVIEW Real-Time

System ID Toolkit Simulation Interface Toolkit
LabVIEW FPGA

Statechart Module

NI Motion Control
LabVIEW Microprocessor

Targets

PXI

cRIO, sbRIO

Desktops & SBC’s

32-bit mp

Università di Michigan
Corso di mecatronica (U)

Segway Human Transporter • Prof. Shorya Awtar, ME • LabVIEW Real-Time & FPGA • LabVIEW Control Design and Simulation Module • CompactRIO hardware

Progetti di lavoro di gruppo multidisciplinari
Rensselaer Polytechnic Institute : HOT-V

Teoria

Progetto

Prototipo

Sviluppo

4 Settimane

8 Settimane

1 Settimana

Test HIL di pala eolica
Sviluppo di un sistema di test HIL per la simulazione degli effetti del vento, posizione di pitch e blade per il test del controller della turbina

Siemens Wind Power Denmark

Software - LabVIEW
• • • Control Design and Simulation Real Time FPGA

Hardware - PXI • Real Time OS
• • • Multicore Analog I/O Serial

Mass-spring model | SimEx Interacting with Mathscript Window

Simulazione e controllo di sistemi dinamici
• Sviluppo con flusso di segnale e file .m • Un unico ambiente per:
– Simulazione di sistemi dinamici – Sviluppo su real-time per rapid control prototiping o simulazione hardware-in-the-loop

[LabVIEW ]\examples\Control and Simulation\Case Studies ..\Mechatronics\DC Motor | ..\Aerospace\F14

Differenti approcci alla programmazione

Agenda

Strumenti per la simulazione

Nodo MathScript

• MathScript Real-Time Module • Nodo MathScript

Un approcio aperto alla matematica
Programmazione grafica LabVIEW

Measurement Studio (Visual Basic, Visual C++) LabWindows/CVI (C) LabVIEW MathScript Signal Processing & Analysis
– Signal Synthesis / Generation – Signal Operations / Conditioning – Windows – Digital Filters – Spectral Analysis – Wavelets – Joint-Time Frequency Analysis – Correlation / Convolution – Scaling, Mapping – Modulation – Transforms – Point-by-Point

Mathematics
– BLAS/LAPAC-based Linear Algebra – Polynomial Operations – Calculus, Numerics – Ordinary Differential Equations – Curve Fitting – Optimization – Interpolation / Extrapolation – Probability and Statistics – 1D & 2D Evaluation – Zeros

LabVIEW MathScript RT
• Programmazione testuale avanzata per la progettazione di controllo, elaborazione di segnali, e matematica
– Centinaia di funzioni native – Riutilizzo di codice .m custom – Creazione di funzioni definite dall’utente

• Una soluzione nativa LabVIEW
– Interfacce interattive e programmatiche – Possibilità di programmazione ibrida – Non richede software di terze parti

LV MathScript - Interactive User
Interfaces
MathScript
Estensione del proprio script file .m con: • IU interattiva

LV MathScript – Access to real-world I/O
MathScript
Estensione del proprio script file .m con: • IU interattiva • Accesso all’I/O del mondo reale

LV MathScript – Graphical Programming
MathScript
Estensione del proprio script file .m con: • IU interattiva • Accesso all’I/O del mondo reale • Programmazione grafica

LabVIEW MathScript RT Module

Distribuire file custom di tipo .m nella piattaforma NI Real-Time

Filtro a media mobile – MathScript Node & Dataflow + cRIO

Obiettivo - La soluzione NI per il mondo embedded è l’architettura RIO, che offre elevata flessibilità e prestazioni ed è programmabile usando lo stesso software di progettazione grafica LabVIEW. Vedremo alcuni aspetti da tenere in considerazione programmando questi particolari sistemi di calcolo, prima di realizzare un sistema di monitoraggio e controllo.

COME STRUTTURARE L'ARCHITETTURA DI SISTEMI EMBEDDED

Come strutturare l'architettura di sistemi embedded
Agenda

Architettura

Benchmarking

FPGA

• La tecnologia RIO • Comunicazione tra e attraverso processi • Funzioni di comunicazione

Processo di progettazione embedded
semplificato
Scelta del SO Scelta dell’hardware

Scelta dell’hardware per il test Scelta del linguaggio di programmazione

Piattaforma tecnologica NI RIO
Application IP Signal Processing IP Control IP Third-Party IP

LabVIEW
LabVIEW Real-Time LabVIEW FPGA
I/O

Middleware Driver APIs Device Drivers I/O Drivers

Processor

FPGA

I/O
Custom I/O

CompactRIO & Single-Board RIO

PXI,PC RIO (R Series,
FlexRIO)

Value
Valore Resistenza Performance Alte Performance

Programmazione LabVIEW su NI RIO

Interfaccia utente

Processore Real-Time

FPGA Riconfigurabi le
LabVIEW FPGA

Moduli di I/O

LabVIEW

LabVIEW RT

Driver I/O

Collegamenti in LabVIEW e piattaforma RIO
BUS di comunicazione BUS industriali

GPRS/GPS

COMUNICAZIONE
Windows Real-Time FPGA

ACQ
LOG
• • • • Communicazione nello stesso PC o Target Communicazione tra processi o cicli paralleli Priorità di elaborazione configurabili per i cicli Salvataggio dati offload o elaborazione demandata a un’altra CPU/Core/Thread all’inteno dello stesso VI/eseguibile • Comunicazione sincrona e asincrona

High

Med

Low

Opzioni di comunicazione tra processi
Variabili condivise (Shared Variable) Aggiornano i loop GUI con l’ultimo valore

Code Eseguono trasferimento continuo di dati tra cicli su target non deterministici
Eventi dinamici Registrano eventi dinamici per eseguire parti di codice Variabili funzionali globali (FGV) Basate su un subVI non rientrante per proteggere dati critici RT FIFO Trasferiscono dati continui tra loop time critical all’interno del singolo target RT

Opzioni di comunicazione tra target
TCP/IP e UDP Velocità di trasmissione e latenza ottimizzate attraverso protocolli di comunicazione a basso livello Variabili condivise (Shared Variable) •Per realizzare rapidamente sistemi distribuiti tramite una configurazione drag-and-drop •Accedono all’ultimo valore nelle varibili di tipo network published Network Streams Trasferimento dati punto a punto in LabVIEW con alta velocità e programmazione minima

Opzioni di comunicazione tra RT e FPGA
NI CompactRIO

LabVIEW Real-Time
LabVIEW Real-Time

FPGA I\O modules – SCAN Interface I\O modules – FPGA Interface

NI Scan Engine
I/O memory table

I/O Variables

RIO Scan Interface

User FPGA data FPGA Host Interface

Timing
LabVIEW FPGA VI

Opzioni di comunicazione tra RT e FPGA
Variabili di I/O Configurazione Drag-and-drop Semplice modo per trasferire dati tra VI Windows, RT e FPGA Reference Design Paletta di VI Host/RT che permette di configurare ed eseguire acquisizione dati Configure Acquisition Start Read Data Block

FPGA API Interface / DMA Accesso diretto alla memoria attraverso differenti componenti di un sistema

Come strutturare l'architettura di sistemi embedded
Agenda

Architettura

Benchmarking

FPGA

• Strumenti per un corretto benchmarking

Ridurre l’uso della CPU
Creare un Time Budget
a)

– Dare priorità a thread in base ai requisiti temporali

Evitare parallelismo eccessivo
b)

– Riutilizzare pattern di programmazione comuni – Fare benchmark per determinare l’architettura ottimale

c)

Limitare l’uso delle varriabili condivise Ridurre il carico di task (quando possibile)
– Usare l’FPGA per l’acquisizione dati e algoritmi di controlllo – Usare il PC Host per il salvataggio dati, il monitoraggio, e l’hosting delle variabili condivise

d)

Creare un Time Budget
Uso CPU (%) = 100 * Somma(Loop 1, Loop 2,.., Loop n],
dove Loop n = (Durata / Periodo)
Task/Loop Controllo Durata (µs) 400 Periodo (µs) 1000 10,000 Task/Loop Controllo Durata (µs) 400 Periodo (µs) 1000 25,000

Monitoraggio 3,000

Monitoraggio 3,000

Salvataggio

16,000

30,000

Salvataggio

16,000

80,000

100 * (400/1,000 + 3,000/10,000 + 16,000/30,000) = 123%

100 * (400/1,000 + 3,000/25,000 + 16,000/80,000) = 72%

Nota: rate-monotonic scheduling - si da priorità più alta ai task con alto rate

Strumenti per un corretto benchmarking
• Benchmark con impostazioni di deployment • Temporizza i tasks con l’esempio RT Benchmarking

Strumenti per un corretto benchmarking
• Cattura ed analizza utilizzando il Real-Time Execution Trace Toolkit • Monitora le risorse attraverso NI Distributed System Manager
– – – – – CPU Memoria Avvisi Stato dei VI Valori delle variabili condivise

Ulteriori considerazioni
• Installa il set minimo di software
– Per aumentare la RAM disponibile – Minimizzare interrupt relative ai driver

• Crea ed esegui il codice come un’applicazione standalone
– Compilazione ottimizzata del codice – Rimozione dell’overhead dovuta alla IU del pannello frontale

Come strutturare l'architettura di sistemi embedded
Agenda

Architettura

Benchmarking

FPGA

• Simulazione con accuratezza a livello ciclo

Flusso semplificato di sviluppo del FPGA
Progettazione

Cycle-Accurate Simulation

Simulazione

Compilazione

Tipi di simulazione

Funzionale o di comportamento – Simulazione nel computer di sviluppo
Cycle-Accurate – Simulazione con l’utilizzo di un simulatore per FPGA commerciale

Simulazione con accuratezza a livello ciclo basata su codice VHDL
Registri DMA

Ambiente
(I/O reali

Host Interface

Codice FPGA

Simulazione con accuratezza a livello ciclo basata su codice VHDL
Simulatore di 3e parti
Registri DMA

Verifica gli ingressi e analizza le uscite

Codice FPGA

Ambiente del modello (I/O)

Simulatore supportato:
Mentor Graphics ModelSim – LabVIEW 2010

Xilinx ISim – NEW in LabVIEW 2011

Co-simulazione con accuratezza a livello ciclo basata su VI
Registri DMA

Environment
(I/O reali)

Interfaccia Host

Codice FPGA

Co-simulazione con accuratezza a livello ciclo basata su VI
Simulatore di 3e parti
Registri DMA

Verifica gli ingressi e analizza le uscite

Codice FPGA

Ambiente del modello (I/O)

Simulatori supportati: Mentor Graphics ModelSim SE – NEW in LabVIEW 2011

Xilinx ISim – NEW in LabVIEW 2011

RISORSE

Codice ed esempi
Risorse

Un solo indirizzo per trovare tutto il codice ni.com
• EPD Example Programs • Aggiornamenti dei driver • Esempi della community

• Esempi per IP FPGA
• Esempi di codice testuale

ni.com/code

Percorsi formativi su LabVIEW
Formazione

Obiettivi:
– –

Accelerare l’apprendimento Ridurre i tempi di sviluppo e mantenimento delle applicazioni Applicazioni performanti, scalabili e mantenibili Validare le competenze e standardizzare i metodi di sviluppo
90

Formati di fruizione
Formazione

Good
Autoapprendiment o

Better
Corsi On-line Corsi in Aula

Best
Corsi On-Site

• Manuali e CD kit • Formazione secondo i propri ritmi • Scadenze non imminenti

• Formazione con istruttore live • 4 ore al giorno • Azzeramento delle spese di trasferta • Utilizzo di postazioni remote attrezzate • Possibilità di rivedere la registrazione del corso

• Formazione con istruttore in aula • 8 ore al giorno • Tempi brevi d’apprendimento • Utilizzo di postazioni attrezzate • Lontano dalle distrazioni quotidiane

• Istruttore presso la vostra sede • Formazione rivolta a team in azienda • Piani formativi personalizzati • Date e durata concordate • Azzeramento delle spese di trasferta • Attrezzature didattiche fornite da NI • Test di valutazione

91

NI Training Credits
Ogni servizio Customer Education è usufruibile/convertibile tramite NI Training Credits:
– – – – 1 NI Training Credit = ½ giornata di formazione x persona Corsi in tutti i formati (presso NI, on-line, onsite) Esami di certificazione NI Training & Certification Membership .. Validi 1 anno dalla data di nostra fatturazione Flessibilità di utilizzo dopo l’acquisto Soluzione per formare singoli o team di tecnici Metodo per allocare budget in modo produttivo

I benefici:

Dove trovare le informazioni
Formazione

ni.com/training/i
• • •

Calendario corsi e sedi di formazione Agende dettagliate dei corsi Soluzioni formative convenienti


Quiz per valutare le proprie competenze
Informazioni sul programma di certificazione

Contattati:

Telefono: E-mail:

+39 02 41309217 italy.service@ni.com

93

Per i partecipanti al LabVIEW Tour 2011
OFFERTA
Gratis 2 Training Credits (equivalenti ad 1 giorno di formazione
offerta del valore di 418€ +Iva)

Utilizzabili entro il 30 Marzo 2012 per uno dei seguenti corsi
– LabVIEW Core 3 (3 giorni)
– Advanced Architectures for LabVIEW (3 giorni) – Managing Software Engineering in LabVIEW (2 giorni)

Per ricevere offerta formale selezionare sul questionario “Offerta Training Credits” o scrivere a italy.service@ni.com E’ necessaria conferma d’ordine con 10 giorni d’anticipo

Cogli l’opportunità con la Manutenzione Software
1. Massimizza l’investimento software
• La tecnologia è dinamica ed i tempi di sviluppo sono ridotti per essere competitivi, innovativi e produttivi

2.

Incrementa la produttività e le performance, riducendo il fermo macchina
• Contatta il Supporto Tecnico per una soluzione più rapida dei tuoi problemi • 10% di sconto sulla Formazione c/o le ns. sedi

3.

Scopri i vantaggi economici
• Risparmia il 67% rispetto al costo di aggiornamento della licenza • Semplifica la tua pianificazione del budget
Licenza Costo Costo della dell’aggiornamento Manutenzione SSP Costo del Software Contract

LabVIEW Full Developer Suite

€ 1.388 € 2.474

€ 555 € 990

€ 500 € 891

NIDays 2012 - Forum Tecnologico sulla Progettazione Grafica di Sistemi

• Roma – 29 Febbraio 2012 Ergife Palace Hotel • 900 mq di area espositiva con oltre 25 espositori • Robotics Summit 2012 • 4 Sessioni tecniche parallele • Best Application 2011 • Special VP Guest dalla corporate di NI

96

alessandro.plantamura@ni.com

GRAZIE PER L’ATTENZIONE

Sign up to vote on this title
UsefulNot useful