Come Riutilizzare Codice Esistente in LabVIEW

Claudio Cupini, Application Engineer

Un ambiente di sviluppo grafico altamente produttivo per tecnici e ingegneri

Hardware APIs

Librerie di Analisi

User Interfaces Custom

Target di deployment

Astrazioni di tecnologia

Approccio programmatico

Agenda

Richiamare codice compilato in LabVIEW C DLLs .NET Assemblies

Textual Nodes in LabVIEW MathScript nodes and window Formula nodes

NET Assembly C DLL .NET Assembly . .C DLL vs.

Il Segreto per Richiamare Codice Esterno in LabVIEW Devi avere conoscenza del codice esterno che stai richiamando! Che linguaggio è stato utilizzato per sviluppare il codice? C’è una run-time presente sul sistema da cui stai richiamando il codice compilato? Quale funzionalità è disponibile nel codice esterno? Quali tipi di dato vengono utilizzati nel codice esterno? .

Call Library Function Node 2.Metodi per richiamare DLLs C da LabVIEW 1. Import Shared Library Wizard .

Come utilizzarlo? 1.dll) 2. . Specificare la convenzione di chiamata. Specificare i tipi di parametri che la funzione richiede 4.Call Library Function Node (CLFN) Cos’è? • Funzione per chiamare direttamente una DLL o una shared library function. Specificare il nome della funzione 3. Puntare al library file sul disco (.

Configuare i VI e i Controlli .Import Shared Library Wizard Che cos’è? • Utility per creare un “wrapper” DLL richiamato in un VI di LabVIEW Come si utilizza? (Tools»Import»Shared Library) 1. Puntare al file di libreria e all’header su disco (.dll. Selezionare la funzione da convertire 3. .h) 2.

Import Shared Library Wizard Vantaggi? E’ automatico! • • • • • Analizza il file di Header Fornisce la lista delle funzioni contenute nella libreria Converte i “tipi di dato” della libreria condivisa in “tipi di dato” LabVIEW Genera i VI che incapsulano le singole funzioni Salva i VI in una libreria di progetto .

ATTENZIONE! Raccomandazioni per richiamare DLLs in LabVIEW • Conoscenza dei prototipi C e del contenuto della DLL. • • • • . strutture come valore di ritorno Shared Libraries vengono eseguite in sincrono Shared Libraries sono dipendenti dalla piattaforma. La familiarità ottimizza la creazione del codice LabVIEW Difficile da debuggare se la DLL genera errore Documentazione dell’header file richiesta Alcuni tipi di parametri complessi non sono supportati Esempi: array di strutture.

.Metodi di chiamata per Assemblies .NET Connectivity Nodes (Programmatic) 2.NET in LabVIEW 1.NET Container (UI) . .

versione. 3.3. sicurezza di distribuzione File che costituiscono l’assembly.5. 4.Engine d’esecuzione • Classe di Librerie di base – Funzionalità standard • Differenti versioni . assembly dipendenti Risorse.NET • Include un manifesto con le informazioni sull’assembly Nome.0 Cos’è un . data type esportati .0.Terminologia .NET Cos’è il .NET Assembly? • Unità di deployment costruita usando il compiler .NET Framework? • Common Language Runtime (CLR) .

Caratteristiche del codice .può essere utilizzato sia internamente alla classe che dalle classi ereditate da questa classe .NET • • • Orientato agli oggetti Ereditarietà (da altri oggetti) Protezione dei dati – (vari livelli di accesso ai dati) Publico – accessibili ovunque (internamente o esternamente alla classe) Private – accesso limitato alla classe Protected .

NET Connectivity Nodes • Constructor Node – Crea un’instanza dell’oggetto .NET • Property Node – Preleva (legge) e/o setta (scrive) proprietà di una reference • Invoke Node – Invoca un metodo o azione su una reference ..

NET in LabVIEW • • • Deve essere compatibile con il Common Language Runtime (CLR) Deve avere Librerie di Classi compatibili LabVIEW non rileva in automatico modifiche ad Assembly precaricati in memoria .ATTENZIONE! Raccomandazioni per richiamare Assembly .

NET per controllare Vantaggi? • Aggiungere una funzionalità che non esiste nativamente in LabVIEW • Sviluppare un’interfaccia grafica che ricordi l’ambiente Windows • Creare interfaccie dinamiche .NET Cos’è? • È un controllo di LabVIEW per ospitare un componente di interfaccia UI .NET Assembly. • Usare il componente UI .NET Come si utilizza? • Caricare il componente UI .Utilizzo del Contenitore .

Modelli di Design ad Alto-Livello Data Flow C Code Textual Math Simulation Statechart Desktop Real-Time FPGA Microprocessors .

Astrai la Complessità con LabVIEW La programmazione grafica di LabVIEW consente l’esecuzione in parallelo Gestione intuitiva del parallelissmo Offre la possibilità di alte prestazioni di esecuzione .

signal processing. ottimizzazione. Inc.LabVIEW MathScript RT Background MathScript include algebra lineare. . simulazione Include nodi testuali e più finestre interattive MathScript plug-ins forniti con: LabVIEW Control Design & Simulation Module LabVIEW Digital Filter Design Toolkit Compatibile con The MathWorks. Inc.: MATLAB® Signal Processing Toolbox™ Control System Toolbox™ DSP System Toolbox™ Utile per applicazioni desktop o real-time con hardware MATLAB® and Simulink® are registered trademarks of The MathWorks..

Non confondetevi con i nodi • Codice LabVIEW nativo • Disponibile per: LabVIEW su Windows. Mac o  Linux LabVIEW Real‐Time • Richiede MATLAB • Disponibile solo per  LabVIEW su Windows • NON lavora con LabVIEW Real‐Time .

Demo: MathScript Interactive Environment .

LabVIEW MathScript – Heat Equation C:\Program Files (x86)\National Instruments\LabVIEW 2012\examples\MathScript\MathScript ‐ Heat Equation .

LabVIEW MathScript Demo Programmazione Grafica e Testuale Interafaccia utente interattiva. .

Raccomandazioni per l’analisi dati con MathScript DAQ Assistant più MathScript node Instrument Drivers più MathScript node I/O Asst più MathScript node .

Working with LabVIEW MathScript • • • Sviluppo di script in modo interattivo con MathScript Window Trasferisci al MathScript Node per “Instruire il tuo Algoritomo” Torna al MathScript Window per completare il tuo lavoro MathScript Node MathScript Window .

Debuggare un MathScript Node • Esecuzione highlighting and single-stepping • Strumento probe per: Variabili in ogni nodo Output definito internamente al nodo • Indicazione per gli errori di sintassi in ogni linea • Indicatore di Errore per i nodi .

” Declare variable as a global: “global a” Access the global variable from the MathScript Node: .Variabili Globali in MathScript Create a global in MathScript Window: Set value of a variable: “a = 10.

” BPP‐TECH (UK) Riser Management: LabVIEW MathScript and formula  nodes enabled our pre‐existing  code  developed in text‐based languages to  be included within the software. develop familiar  Windows‐style GUIs. .  allowing for more effective code  reuse. use LabVIEW MathScript functions to embed our .MathScript Industrial Case Study Quotes ALSTOM (UK) Condition Monitoring: “The original Novus tool developed  using MATLAB software has been  successfully implemented within the  LabVIEW platform. and adapt  system functionality for future releases. We chose LabVIEW over other programming languages  because it helped us decrease  development time.m  file scripts in the solution.

.m and .mdl LabVIEW è un ambiente di sviluppo di sistemi grafico e completo.LabVIEW MathScript RT Module Benefits • • • • • • • Invio rapido del codice verso target hardware Multicore facile da usare “Strumentalizza” il tuo algoritmo Combinazione grafico/testuale LabVIEW include piene capacità di programmazione Integrazione con IP 3rd party – inclusi . con tutto ciò di cui hai bisogno.

NET Container (. presenza di motori di runtime Funzionalità e tipi di dato implementati Differenti modalità per integrare il codice esterno Call Library Function Node (C DLL) Import Shared Library Wizard (C DLL) .Sommario • LabVIEW è una piattafomra sofware aperta Non c’è nescessità di riscrivere il codice Riduce il tempo di sviluppo e lo sforzo di integrazione di codice esterno È necessario sapere cosa serve per eseguri il codice esterno Linguaggio e sistema operativo di compilazione.NET Assembly) MathScript Window MathScript Node • • .NET Assembly) .NET Connectivity Nodes (.

Grazie per l’attenzione. Domande? .

Sign up to vote on this title
UsefulNot useful

Master Your Semester with Scribd & The New York Times

Special offer for students: Only $4.99/month.

Master Your Semester with a Special Offer from Scribd & The New York Times

Cancel anytime.