Advanced DAQ System Development Using NI-DAQmx and Intelligent DAQ (FPGA) Rudolf Gierlinger National Instruments, Österreich
AGENDA Teil 1: Advanced NI-DAQmx Datenerfassungsmöglichkeiten Konfiguration des Systems Streaming von Daten Lesestrategien/Synchronisation Kalibrierung Applikationsverwaltung Teil 2: Intelligent DAQ Was ist Intelligent DAQ FPGA-Programmierung
Datenerfassungist nicht gleich Datenerfassung! Express-Technologie einfach und schnell NI-DAQmx-Funktionen Flexibilität Intelligent DAQ kundenspezifische Anforderungen an die HW
Teil 1: Advanced DAQ System Development Using NI-DAQmx
Die DAQmx-Treiberarchitektur Measurement & Automation Explorer DAQ-Assistent Express-VIs Programmierschnittstelle API NI-DAQmx-VIs Treiber-Engine und -Algorithmen Hardware
Konfigurationdes Systems
Simulierte Geräte Vorteile: NI-DAQmx-Programme und Assistent ohne Hardware laufen lassen Testen von NI-Software mit simulierten Geräten und Daten Features von NI-Hardware testen ohne sie zu kaufen
Demo: MAX und simulierte Geräte
Streaming DMA Controller ` FIFO
Streaming DMA Controller Buffer ` FIFO FIFO
NI-DAQmx 7.4 und später NI-DAQmx 7.3 und früher NI-DAQmx 7.4 und später
Pufferüberlauf DMA Controller Buffer ` FIFO
Lösungen gegen Pufferüberlauf Überläufe im Task ignorieren Vergrößern der Puffergröße, Anpassen der Anzahl zu lesender Werte, Verkleinern der Abtastrate Offline -Analysen verwenden Unskalierte Rohdaten lesen Reduzieren der Anzahl parallel laufender Applikationen
FIFO-Überlauf DMA Controller PCI Bus 32 Buffer ` FIFO
Szenarios mit FIFO-Überläufen Große Systeme, in denen viele Geräte versuchen, gleichzeitig auf den Bus zuzugreifen Bus zeitweise nicht verfügbar Overhead bei der PCI-Bus-Arbitrierung
Szenarios mit FIFO-Überläufen Geräte erfassen kontinuierlich mit sehr hohen Abtastraten auf vielen Kanälen Beispiel: PCI-Bus Theoretisches Maximum = 132 MB/s PXI-6115 12 Bit, 4 Kanäle, 10 MS/s 2 Bytes/Wert x 4 Kanäle x 10 MS/s = 80 MB/s Lösungen: Verwenden von Bussen mit höheren Bandbreiten, wie PCIe, PXIe Verteilen der Geräte auf verschiedene Bussegmente Nutzen von Technologien wie Direct-to-Disc Lesestrategien
Verwenden von Bussen mit höheren Bandbreiten
Verteilen auf verschiedene Bussegmente CPU Front-Side Bus North Bridge Memory Controller Hub Memory Bus RAID South Bridge I/O Controller Hub PCI Bus SATA PXIe Switch x1 Link x4 Link
Direct-to-Disk Streaming Direct-to-Disk Streaming benötigt zusätzlichen Festplatten-Controller. Daten werden direkt zur/von der Festplatte vom/zum Gerät verschoben. Die Busleistung kann komplett ausgenutzt werden. CPU Controller RAID Front-Side Bus North Bridge Memory Controller Hub Memory Bus PCI Bus South Bridge I/O Controller Hub PXIe Switch PCIe Bus
Lesestrategien Rohdaten Signalverlaufsdaten Timing und Eigenschaften Skalierte Daten Skalierung Unskalierte Daten Kanal 1 Kanal 2 Kanal 2 Kanal 1 Neu ordnen Puffer
Lesestrategien Rohdaten Signalverlaufsdaten Skalierte Daten Unskalierte Daten Performance / Durchsatz Benutzerfreundlichkeit
Kalibrierung Kalibrierung eines kompletten Kanals Kabelverbindungen sind häufig übersehene Fehlerquellen 0,4 % 0,04 % 0,02 % Spezifikationen des Messgeräts
Warum die Kalibrierung eines virtuellen Kanals verwenden? Kalibrieren Sie den kompletten Messpfad Ergänzen Sie die interne Kalibrierung durch Betrachten von Fehlern von Sensoren, Signalkonditionierung und Verkabelung Optionen für die Reportgenerierung Kanalkalibrierung zusammen mit dem Report drucken Eingebetteter Check nach abgelaufener Kalibrierung (Benutzerdefinierte Kalibrierintervalle)
Verwenden der Kalibrierung eines virtuellen Kanals Kanalkalibrierungsassistent im DAQ-Assistent
Applikationsverteilung Geräteeigenschaften effektiv nutzen Programmatische Geräteeigenschaftenauflistung: Anwendungen können programmiert werden, ohne sich auf eine Hardware direkt zu beziehen
Demo: Maximum Sample Rate Beispiel: Klassenwahl
Project Explorer effektiv einsetzen Zur Verwaltung von Tasks, Kanälen und Skalierungen Zur Erstellung von Installern
Applikationsverteilung NI-DAQmx Deployment Versionen Version Entfernte Komponente Grösse Runtime ADE Support 372 MB Runtime 2 DAQ Assistant 272 MB Runtime 3 NI-DAQmx Documentation 228 MB Runtime 4 Real-Time Support 208 MB Runtime 5 MAX Interface 89 MB
Teil2: Advanced DAQ System Development Using Intelligent DAQ
Was ist Intelligent DAQ? FPGA-basiertes I/O Benutzerdefinierte Onboardverarbeitung Hardware-gesteuerte Geschwindigkeit und Zuverlässigkeit
Wozu FPGAs? Vorteile Hohe Leistung Echte Parallelität Zuverlässigkeit Flexibilität Rekonfigurierbarkeit
Kompiliervorgang für einen FPGA VI VHDL Xilinx Synthese LabVIEW FPGA Kompiliervorgang 1001100011100110001110011 0001110011000111001100011 BitStream 1001100011100110001110011 0001110011000111001100011 10011000111001100011
LabVIEW FPGA Module Grafische Programmierung von FPGAs auf Zielgeräten von NI Erstellung individueller I/O-Hardware Implementierung benutzerspezifischer Timing-Funktionen und Trigger-Logik mit einer Auflösung von 25 ns Definition benutzerspezifischer Steuer- und Regelalgorithmen mit Schleifenfrequenzen bis zu 40 MHz Echte Parallelität
Typische MIO DAQ vs. Intelligent DAQ I/O Control Fixer ASIC für Timing und Triggering Offener FPGA für Timing und Triggering Analog I/O Multiplexed, geteilte Sample Clock Simultane oder unabhängige Operationen Digital I/O Onboard Counters Bis zu 32 Leitungen, korrelierte DIO 2 Allzweck-Counter Bis zu 160 Leitungen, hardwaregetaktet Benutzerdefinierte Counters an jeder beliebigen Leitung
Intelligent-DAQ-Programmierung NI-DAQmx.vi Host.vi Target.vi
Triggered Analog Input mit NI-DAQmx
Triggered Analog Input mit Intelligent DAQ
Triggered Analog Input Host Program (Windows)
Custom Triggered Analog Input mit Intelligent DAQ customized Logic
Triggered Multirate Analog Input mit Intelligent DAQ
Triggered Multirate Analog Input Host Program (Windows)
Demo
Retriggerable Buffered Analog Input with NI-DAQmx
Retriggerable Buffered Analog Input with Intelligent DAQ
DMA Configuration Example Erstellen eines DMA-Kanals mit dem Projekt-Explorer
Streaming Analog Output with DMA with Intelligent DAQ
Simple Event Counter with Intelligent DAQ
Demo Counter resettable
Reglerimplementierung auf FPGA 1 Slide
Demo
Filter Toolkits Hardware 8.5 Neuerungen
Wann sollte Intelligent DAQ eingesetzt werden? Benutzerdefinierte Onboard-Verarbeitung Hardwaregesteuerte Entscheidungen Flexible Zeit- und Triggersteuerung Simultane oder verschiedene Abtastraten Benutzerdefinierte Counter-Implementierung Onboard-Digitalfilterung High-Speed Control PID Schleifen >100 khz
Weitere Informationen www.ni.com/devzone Search for intelligent DAQ DMA programming techniques Implementing a Custom Digital Interface
Fragen?