Ilvg.it @ Ni Day2008

35
National Instruments Confidential

Transcript of Ilvg.it @ Ni Day2008

Page 1: Ilvg.it @ Ni Day2008

National Instruments Confidential

Page 2: Ilvg.it @ Ni Day2008

Alessandro RiccoILVG.it – [email protected]

ILVG.itItalian LabVIEW user Group

Page 3: Ilvg.it @ Ni Day2008

ILVG.it è:

l'unica comunità italiana indipendente di

sviluppatori, curiosi ed appassionati del

linguaggio di programmazione LabVIEW™.

Cos'è ILVG.it?

Page 4: Ilvg.it @ Ni Day2008

Diffondere la conoscenza e la cultura di LabVIEW

Permettere la condivisione di esperienze

Favorire lo scambio di idee

Creare una comunità di utenti LabVIEW in Italia

Che scopi ha ILVG.it?

Page 5: Ilvg.it @ Ni Day2008

• Gestiamo il forum di ILVG.it www.ilvg.it/forum cuore di ILVG.it, attivo dal 2003 oggi conta 1500 iscritti e 16000 messaggi

Scriviamo articoli su LabVIEW che pubblichiamo liberamente sul sito ILVG.it

Organizziamo (ILVGDay) e partecipiamo a meeting portando le nostre esperienze

Cosa facciamo noi di ILVG.it?

Page 6: Ilvg.it @ Ni Day2008

Una manifestazione gratuita e libera dedicata alle tecnologie LabVIEW e soprattutto, alle persone che le usano.

ILVG Day è stato una Festa!

ILVG Day 2007, cos'è? (stato)

Page 7: Ilvg.it @ Ni Day2008

Riunire appassionati di LabVIEW

Condividere le esperienze, imparare e divertirsi

Creare una comunità di “wire workers”

Mangiarsi una pizza e bersi una birra insieme

ILVG Day 2007, perchè?

Page 8: Ilvg.it @ Ni Day2008

ILVG Day 2007!

Page 9: Ilvg.it @ Ni Day2008

Iscriviti al forum www.ilvg.it/forum e discuti su LabVIEW, facendo domande o aiuta dando risposte

Partecipa ai meeting, in futuro sempre più frequenti!(ILVG Day 2)

Scrivi e inviaci articoli, guide, tutorial ecc

Proponi le tue idee

Come posso partecipare?

Page 10: Ilvg.it @ Ni Day2008

LabVIEW & Lua, flessibilità e dinamismo

Page 11: Ilvg.it @ Ni Day2008

Linguaggio di scripting realizzato in ANSI C nato nel 1993 al PUC-Rio (Pontifical

Catholic University) di Rio de Janeiro in Brasile.

Embedded, semplice, veloce ed elegante

Open Source (MIT License), supportato da una grande comunità on-line.

Molti progetti sono sviluppati con LUA ed esistono moltissimi add-ons.

'Lua' vuol dire 'Luna' in Portoghese e si pronuncia LOO-ah.

Il sito ufficiale è www.lua.org

Cos'è LUA?

Page 12: Ilvg.it @ Ni Day2008

Che caratteristiche ha un linguaggio di scripting:

Gira all'interno di un altro programma (virtual machine o simili)

Viene interpretato run-time, non è compilato in binario

Semplice da utilizzare

Viene utilizzato per compiti in domini specifici

Può servire come “supporto” per altri linguaggi

Scripting, cos'è?

Scripting languages [...] are computer programming languages that are typically interpreted and can be typed [interpreted] directly from a keyboard.

Wikipedia.org

Page 13: Ilvg.it @ Ni Day2008

Ma che differenza c'è tra linguaggio di scripting e uno “tradizionale”?

Software molto noti (Java, LabVIEW ad es) girano all'interno di altri software (vm)

Linguaggi di scripting vengono usati anche per realizzare applicazioni complesse

I computer oggi sono veloci e i linguaggi di scripting efficienti, non c'è nessun vantaggio nella maggior parte dei casi, ad usare un programma compilato.

La differenza è quindi solo “formale”, usate il linguaggio a seconda di quello che vi serve fare.

Scripting, cos'è?

Page 14: Ilvg.it @ Ni Day2008

Se devo scrivere un software che deve:

essere altamente “customizzato”

essere altamente estensibile

avere delle funzionalità che non riuscirei con altri linguaggi ad implementare

poter cambiare, anche radicalmente, anche dopo il suo rilascio

poter cambiare spesso, velocemente e facilmente

Se voglio essere produttivo e agile

Linguaggio di scripting, perchè?

Page 15: Ilvg.it @ Ni Day2008

E' un linguaggio robusto

Lua è usato in diversi campi da diverse industrie. E' molto diffuso nei video game. Esiste un

manuale molto ben fatto, gratis e on-line e diversi libri.

Lua è veloce

Test indipendenti dimostrano come Lua sia tra i

linguaggi di scripting più veloci, sia durante i

test ma soprattutto nella “vita reale”

Perchè usare LUA?

Page 16: Ilvg.it @ Ni Day2008

Lua è portabile

Lua viene distribuito come sorgenti C. Occorre solo un

compilatore per portarlo sulla propria piattaforma.

LUA gira su Windows, Unix, dispositivi mobili con piccoli

processori ARM e addirittura sul Lego Mindstorm NXT!

Lua è “embeddable”

è molto facile estendere un linguaggio con le funzioni

di Lua ed è facile permettere a Lua di usare

funzioni di un altro linguaggio

Perchè usare LUA?

Page 17: Ilvg.it @ Ni Day2008

E se volessimo unire...

La potenza di LabVIEW

acquisizione analisi avanzata presentazione dati

La flessibilità di Lua

estendibile semplice leggero

Page 18: Ilvg.it @ Ni Day2008

E se volessimo unire...

La potenza di LabVIEW La flessibilità di Lua

LuaVIEW!

Page 19: Ilvg.it @ Ni Day2008

- LuaVIEW è un toolkit sviluppato da Citengineering, che permette a LabVIEW di sfruttare

tutte le caratteristiche di Lua.

Potremmo definirlo un ponte tra il mondo LabVIEW e quello Lua.

- LuaVIEW è liberamente utilizzabile per applicazioni non commerciali altrimenti c'è da

pagare una licenza

- LuaVIEW è scaricabile da www.citengineering.com/LuaVIEW/download.html

L'installazione consiste semplicemente nello scompattare una cartella e lanciare un VI

- La distribuzione di LuaVIEW comprende molti esempi, funzioni utili ed è documentata

benissimo

- LuaVIEW ha supporto per Windows, Linux e Mac.

LuaVIEW

Page 20: Ilvg.it @ Ni Day2008

Lua può chiamare funzioni implementate in LabVIEW.

LuaVIEW, cosa può fare?

Page 21: Ilvg.it @ Ni Day2008

LabVIEW può chiamare funzioni implementate in Lua.

LuaVIEW, cosa può fare?

Page 22: Ilvg.it @ Ni Day2008

Un numero “illimitato” di script LUA possono eseguire in parallelo

LuaVIEW, cosa può fare?

Page 23: Ilvg.it @ Ni Day2008

Lua e Labview possono scambiarsi dati anche in formati complessi.

LuaVIEW, cosa può fare?

Page 24: Ilvg.it @ Ni Day2008

LuaVIEW è composto da

un CIN (Code Interface Node) che è la VM di LUA + il codice con cui LUA può

interfacciarsi a LabVIEW

una libreria di VI utili allo scambio tra LabVIEW e LuaVIEW

push, pull

una serie di tool di setup, analisi e supporto

function manager, task manager

LuaVIEW, la struttura.

Page 25: Ilvg.it @ Ni Day2008

Le funzioni della libreria di LuaVIEW sono il punto di contatto tra Lua e LabVIEW e sono:

Apri\chiudi riferimento a Lua Compila per la VM uno script Esegui uno script Push e Pull dallo stack Lua

LuaVIEW, la libreria

LuaVIEW CINLUA VM

Page 26: Ilvg.it @ Ni Day2008

LuaVIEW in action, primo esempio

Vediamo l'effetto:luaview\examples\do a script.vi

-- Lua salutaprint("Hello world")

Page 27: Ilvg.it @ Ni Day2008

Molto interessante notare che:

Lua chiama una funzione scritta in LabVIEW (print) passandole dei parametri Questo avviene in maniera automatica e trasparente La sintassi di Lua è molto molto semplice ed elegante

LuaVIEW in action, primo esempio

-- Lua salutaprint("Hello world")

Page 28: Ilvg.it @ Ni Day2008

Come avviene questo automatismo, come fa Lua a sapere dell'esistenza di LabVIEW e delle sue funzioni?

Le funzioni LabVIEW devono essere “registrate” per essere utilizzabili da LuaVIEW

LuaVIEW in action, ma come...

-- Lua salutaprint("Hello world")

Page 29: Ilvg.it @ Ni Day2008

LuaVIEW, function manager

Come detto si deve “dire” a LuaVIEW com'è fatta una nostra funzione, come la print, che

vogliamo rendere utilizzabile in LuaVIEW.

In poche parole dobbiamo specificare a LuaVIEW

il prototipo della nostra funzione

Per fare questo usiamo il Function Manager

Function manager:LuaVIEW1.2.1\luaview\tui_LuaVIEW Function Manager.vi

Page 30: Ilvg.it @ Ni Day2008

Com'è fatta una funzione LuaVIEW?Prendiamo ad esempio la print vista in precedenza

LuaVIEW, la prima funzione

Reference al Core LuaVIEW

Funzione per accesso allo Stack Lua (pull)

Semplice SubVI LabVIEW 100% che implementa la finestra di console vera e propria

Page 31: Ilvg.it @ Ni Day2008

Lua è fantastico ecc ecc... ma LabVIEW non è già abbastanza “fantastico”?

Si e no, dipende da quello che vuoi fare. Ogni cosa ha pro e contro.

LuaVIEW serve a portare tutte le caratteristiche positive di Lua e dei linguaggi di scripting in generale all'interno di LabVIEW

Flessibilità, Espandibilità, Semplicità, Agilità

LuaVIEW, ma in pratica a che serve?

Page 32: Ilvg.it @ Ni Day2008

Supponiamo:

Creo un'applicazione in LabVIEW 100%, la compilo e la vendo al cliente che ne installa 1000

copie Il cliente richiede una nuova funzionalità o logiche per il software Sono costretto a modificare il software, compilarlo e reidistribuirlo ma:

Devo distribuine un EXE pesante anche per piccole modifiche Creo differenti versioni e quindi problemi di manutenibilità

Difficile customizzare il software

Ho altre strade? Si usare Lua e LuaVIEW ;)

LuaVIEW, ma in pratica a che serve?

_Lua Init Main.viexecute script.vi

Page 33: Ilvg.it @ Ni Day2008

LuaVIEW, esempio avanzato (non troppo)

Supponiamo

Dobbiamo realizzare un Test Executive Il TE deve essere programmabile per eseguire test di varia natura e su una vasta gamma

di prodotti differenti Le sequenze e le logiche di test sono differenti sia per cliente sia per prodotto sia per

hardware di test (ATE) Il TE poter supportare in futuro nuovi strumenti di test e nuovi tipi di misure

_Lua TE main.vi

Page 34: Ilvg.it @ Ni Day2008

LuaVIEW, casi d'uso

Software di test Automatico, LUA per la definizione dei cicli di procedura Software con Logiche espandibili o non note a priori Supporto a software che manca delle funzionalità di LUA Software che devono essere ampiamente customizzati

Page 35: Ilvg.it @ Ni Day2008

Grazie per l'attenzione.

Alessandro RiccoILVG.it – [email protected]