3. Cos'è ILVG.it?
ILVG.it è:
l'unica comunità italiana indipendente di
sviluppatori, curiosi ed appassionati del
linguaggio di programmazione LabVIEW™.
4. Che scopi ha ILVG.it?
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
5. Cosa facciamo noi di ILVG.it?
• 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
6. ILVG Day 2007, cos'è? (stato)
Una manifestazione gratuita e libera dedicata alle tecnologie
LabVIEW e soprattutto, alle persone che le usano.
ILVG Day è stato una Festa!
7. ILVG Day 2007, perchè?
Riunire appassionati di LabVIEW
Condividere le esperienze, imparare e divertirsi
Creare una comunità di “wire workers”
Mangiarsi una pizza e bersi una birra insieme
9. Come posso partecipare?
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
11. Cos'è LUA?
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
12. Scripting, cos'è?
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 languages [...] are computer
programming languages that are typically
interpreted and can be typed [interpreted]
directly from a keyboard.
Wikipedia.org
13. Scripting, cos'è?
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.
14. Linguaggio di scripting, perchè?
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
15. Perchè usare LUA?
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”
16. Perchè usare LUA?
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
17. E se volessimo unire...
La potenza di LabVIEW La flessibilità di Lua
acquisizione estendibile
analisi avanzata semplice
presentazione dati leggero
18. E se volessimo unire...
La potenza di LabVIEW La flessibilità di Lua
LuaVIEW!
19. LuaVIEW
- 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.
20. LuaVIEW, cosa può fare?
Lua può chiamare funzioni implementate in LabVIEW.
21. LuaVIEW, cosa può fare?
LabVIEW può chiamare funzioni implementate in Lua.
22. LuaVIEW, cosa può fare?
Un numero “illimitato” di script LUA possono eseguire in parallelo
23. LuaVIEW, cosa può fare?
Lua e Labview possono scambiarsi dati anche in formati complessi.
24. LuaVIEW, la struttura.
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
25. LuaVIEW, la libreria
Le funzioni della libreria di LuaVIEW sono il
punto di contatto tra Lua e LabVIEW e sono:
LuaVIEW CIN
Aprichiudi riferimento a Lua LUA VM
Compila per la VM uno script
Esegui uno script
Push e Pull dallo stack Lua
26. LuaVIEW in action, primo esempio
-- Lua saluta
print("Hello world")
Vediamo l'effetto:
luaviewexamplesdo a script.vi
27. LuaVIEW in action, primo esempio
-- Lua saluta
print("Hello world")
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
28. LuaVIEW in action, ma come...
-- Lua saluta
print("Hello world")
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
29. 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.1luaviewtui_LuaVIEW Function Manager.vi
30. LuaVIEW, la prima funzione
Com'è fatta una funzione LuaVIEW?
Prendiamo ad esempio la print vista in precedenza
Semplice SubVI LabVIEW
100% che implementa la
finestra di console vera e
Reference al Core LuaVIEW propria
Funzione per accesso allo Stack Lua (pull)
31. LuaVIEW, ma in pratica a che serve?
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à
32. LuaVIEW, ma in pratica a che serve?
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 ;) execute script.vi
_Lua Init Main.vi
33. 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
34. 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