CVI

Grundlagen in LabWindowsTM/CVI Einführung in die ereignisorientierte ANSI-C-Programmierumgebung LabWindowsTM/CVI Jan Wagner Applications Engineer – N...
Author: Adrian Geisler
24 downloads 3 Views 3MB Size
Grundlagen in LabWindowsTM/CVI Einführung in die ereignisorientierte ANSI-C-Programmierumgebung LabWindowsTM/CVI

Jan Wagner Applications Engineer – National Instruments Germany GmbH

Agenda • Einführung in LabWindows/CVI • Funktionen in LabWindows/CVI • Demos • Einsatz von externen Bibliotheken • Übung • LabWindows/CVI Real-Time Module • Multicore- und Multithreading-Programmierung in LabWindows/CVI • Ressourcen

Der Ansatz von NI – integrierte Softwareplattformen

LabWindows/CVI

1

 Entwicklungsumgebung  Editor  Debugger  Compiler  Linker  Workspace

2

 Spezifische Funktionen für die Entwicklung  Bedienelemente für Benutzeroberflächen  Assistenten für Datenerfassung und Messgerätesteuerung  Bibliotheken, Treiber für Gerätesteuerung Analysebibliotheken, Datenerfassungsbibliotheken  Funktionspanel

Funktionen in LabWindows/CVI • Langlebigkeit  Grundlage: offene ANSI-C-Standards  Stabilität und Abwärtskompatibilität

• Optimiert für Mess- und Testanwendungen  Erweiterte Analysebibliotheken  Kommandozeile für mehr Effizienz

• Produktivität  Integrierte Arbeitsbereichsumgebung  Benutzeroberfläche per Drag and drop

User Interface Editor • Drag-and-drop-Editor • Bedienelemente • Benutzerdefinierte Menüs • Einfach zu erstellen — einfach zu verändern

… Demo … Demo … Demo … Demo … Demo … Demo … Demo … Demo … Demo … Demo … Demo … Demo … Demo … Demo … Demo … Demo … Demo … Demo …

Einfache Benutzeroberfläche erstellen

Funktionspanel in LabWindows/CVI

Datenanalyse in LabWindows/CVI • Signalverarbeitung     

Filter Fenster Signalerzeugung Frequenzbereich Zeitbereich

• Mathematik  1D- und 2D-Array-Operationen  Komplexe Arithmetik  Statistik  Vektor- und Matrixalgebra

• Fortgeschritten    

Kurvenanpassung Interpolation Wahrscheinlichkeit Komplexe Operationen

… Demo … Demo … Demo … Demo … Demo … Demo … Demo … Demo … Demo … Demo … Demo … Demo … Demo … Demo … Demo … Demo … Demo … Demo …

Ereignisgesteuertes Programm schreiben

Messgerätetreiber in LabWindows/CVI • Kommunikation mit mehr als 5000 Messgeräten von über 225 Anbietern

• Einsatz einer gemeinsamen Architektur  Erhöhte Leistungsfähigkeit  Verbesserte Portierbarkeit  Offener Standard, offener Quellcode

• Intuitive Bedien-/Anzeigeelemente  String-Formatierung überflüssig  String-Syntaxanalyse (Parsing) überflüssig

• Instrument Driver Network  ni.com/idnet/d

Interaktive Messassistenten • Instrumenten-I/O-Assistent  Interaktiver Ansatz bei der Messgeräteanbindung  Automatische Syntaxanalyse (Parsing)  Vollständige Code-Generierung

• DAQ-Assistent  Interaktive Schnittstelle für die NIDAQmx-Architektur  Beispielcodeerzeugung, einschließlich grafischer Benutzeroberfläche

… Demo … Demo … Demo … Demo … Demo … Demo … Demo … Demo … Demo … Demo … Demo … Demo … Demo … Demo … Demo … Demo … Demo … Demo …

Datenerfassungsübung

LabWindows/CVI-Entwicklungssysteme 2010 • Verbesserte Produktivität für ANSI-C-Entwickler  Benutzerdefinierte Build-Konfigurationen  UI-Browser und Arrays bestehend aus Bedienelementen für die Benutzeroberfläche  Anbindung an laufende Prozesse  Erstellen von Patches

• Vereinfachte FPGA-Kommunikation  Benutzerdefinierte Funktionspanels für FPGA-C-API

• Erweiterte Plattformunterstützung  LabWindows/CVI Real-Time Module  LabWindows/CVI Run-Time Module für Linux

Benutzerdefinierte Build-Konfigurationen • Build-Konfigurationen benutzerdefiniert erstellen • Mehrere Build-Konfigurationen pro Projekt erstellen

Anbindung an laufende Prozesse • LabWindows/CVI bindet laufenden Prozesse ein • Just-in-Time-Debuggen bei Fehlern

Erstellen von Patches für bestehende Programme • Patches für Anwenderdistributionen • Kleinere Distributionen für Fehlerbehebungen • Bedingungen für Patches festlegen

Benutzeroberflächen-Browser • Bedienelemente für die Benutzeroberfläche in Browser-Fenster ansehen • Bedienelemente auf der Benutzeroberfläche platzieren

Arrays bestehend aus Bedienelementen für Benutzeroberflächen • Arrays aus Bedienelementen während der Entwicklung oder Ausführung erstellen • Bequemer programmatischer Zugriff auf Bedienelemente der Benutzeroberfläche • Iterative oder Batch-Modifikationen

LabWindows/CVI 2010 Real-Time Module • Zuverlässige, deterministische Anwendungen erstellen, die sich auf dedizierter Echtzeithardware einsetzen lassen • Systeme über USB-Flash-Laufwerk sichern, wiederherstellen und replizieren • Unterstützt neue Real-Time-Controller • Webbasierte Überwachung und Konfiguration

LabWindows/CVI 2010 Run-Time Module für Linux • Anwendungen auf Linux®-Zielsystemen kompilieren und ausführen  Red Hat Enterprise Linux WS 4 & 5  SUSE Linux 10.3, 11.0, 11.1  Scientific Linux 4 & 5

• Aktuelle Bibliotheken • Kommunikation mit FPGA-Geräten

Ressourcen • ni.com/lwcvi/d    

Kostenlose Testversion von LabWindows/CVI herunterladen Whitepaper Application Notes Interaktive Tutorien

• NI Developer Zone  Weitere Beispiele  Tipps und Tricks für C-Entwickler  Teil der LabWindows/CVI-Gemeinschaft werden

• NI-Suchmaschine für Beispiele  Beispiele für viele Anwendungsbereiche abrufen  Beispiele zur Datenerfassung und Kommunikation

Nützliche Links  Einführung in LabWindows/CVI  Multithreading in LabWindows/CVI  Leistungssteigerungen von LabWindows/CVI-Anwendungen  Unterstützt LabWindows/CVI C++?  Aufrufkonventionen in LabWindows/CVI  Aufruf einer LabVIEW-DLL aus einem LabWindows/CVI- oder anderen C/C++-Projekt  Erstellen von Importbibliotheken für eine DLL in LabWindows/CVI  Aufruf einer Windows-SDK-Funktion mit dem Namen einer LabWindows/CVI-Funktion