Skip to content

arcbjorn/labview-daq-interface

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 

Repository files navigation

LabVIEW DAQ Interface

Universelle Datenerfassungs-Schnittstelle für NI-DAQ Hardware.

Version

  • LabVIEW 2017 (17.0)
  • NI-DAQmx 17.0

Funktionen

  • Analog-Eingang (AI)
  • Analog-Ausgang (AO)
  • Digital-Eingang (DI)
  • Digital-Ausgang (DO)
  • Zähler/Timer
  • Hardware-Trigger
  • Kontinuierliche Erfassung
  • Multi-Channel Unterstützung

VIs

DAQ_AI_Single.vi

Einzelne analoge Messung

Eingänge:

  • Geräte-Name (z.B. "Dev1")
  • Kanal (z.B. "ai0")
  • Messbereich (±10V, ±5V, ±1V)
  • Terminal-Konfiguration (RSE, NRSE, Diff)

Ausgänge:

  • Messwert (V)
  • Timestamp
  • Error

DAQ_AI_Continuous.vi

Kontinuierliche analoge Erfassung

Eingänge:

  • Geräte-Name
  • Kanäle (z.B. "ai0:3")
  • Abtastrate (Hz)
  • Samples pro Kanal
  • Messbereich
  • Trigger-Quelle (optional)

Ausgänge:

  • Waveform Array
  • Überlauf-Flag
  • Error

DAQ_AO_Single.vi

Einzelner Analogausgang

Eingänge:

  • Geräte-Name
  • Kanal (z.B. "ao0")
  • Spannung (V)
  • Timeout (s)

Ausgänge:

  • Erfolg (Boolean)
  • Error

DAQ_AO_Waveform.vi

Waveform-Ausgabe

Eingänge:

  • Geräte-Name
  • Kanal
  • Waveform
  • Regeneration (Boolean)
  • Trigger-Quelle (optional)

Ausgänge:

  • Samples geschrieben
  • Error

DAQ_DI_Port.vi

Digitaler Port einlesen

Eingänge:

  • Geräte-Name
  • Port (z.B. "port0")
  • Anzahl Samples
  • Rate (Hz) - optional

Ausgänge:

  • Daten (U8/U16/U32 Array)
  • Error

DAQ_DO_Port.vi

Digitaler Port schreiben

Eingänge:

  • Geräte-Name
  • Port
  • Daten (U8/U16/U32 Array)
  • Auto-Start

Ausgänge:

  • Geschriebene Samples
  • Error

DAQ_Counter.vi

Zähler/Frequenzmessung

Eingänge:

  • Geräte-Name
  • Counter (z.B. "ctr0")
  • Messtyp (Frequenz/Periode/Pulse)
  • Messzeit (s)

Ausgänge:

  • Messwert
  • Error

DAQ_Encoder.vi

Encoder-Schnittstelle

Eingänge:

  • Geräte-Name
  • Counter
  • Encoder-Typ (X1/X2/X4)
  • Pulses pro Revolution
  • Initial-Position

Ausgänge:

  • Position
  • Geschwindigkeit
  • Error

Unterstützte Hardware

NI USB-DAQ

  • USB-6001, 6002, 6003
  • USB-6008, 6009
  • USB-6211, 6212, 6215, 6216
  • USB-6341, 6343, 6356, 6361

NI PCIe-DAQ

  • PCIe-6320, 6321, 6323
  • PCIe-6341, 6343, 6351, 6353, 6361, 6363

NI CompactDAQ

  • cDAQ-9171, 9172, 9174, 9178, 9179, 9188, 9189
  • C-Series Module (Hunderte verfügbar)

NI CompactRIO

  • cRIO-9030, 9035, 9036, 9037, 9038, 9039

Terminal-Konfigurationen

RSE (Referenced Single-Ended)

AI+ ──────────┐
              │ Messgerät
AI- (GND) ────┘
  • Gemeinsame Masse
  • Max. Kanäle
  • Empfindlich für Rauschen

NRSE (Non-Referenced Single-Ended)

AI+ ──────────┐
              │ Messgerät
AISENSE ──────┘
  • Floating Ground Reference
  • Besser als RSE
  • Gleiche Kanalzahl

Differential

AI+ ──────────┐
              │ Messgerät
AI- ──────────┘
  • Beste Rauschunterdrückung
  • Halbe Kanalzahl
  • Für niedrige Signale

Messbereiche

Analog-Eingang

  • ±10 V (Standard)
  • ±5 V
  • ±2 V
  • ±1 V
  • ±0.5 V
  • ±0.2 V

Auflösung vs. Bereich:

16-bit DAQ @ ±10V: 305 µV/Bit
16-bit DAQ @ ±1V:  30.5 µV/Bit

Analog-Ausgang

  • ±10 V (typisch)
  • ±5 V
  • 0-10 V
  • 0-5 V
  • 4-20 mA (mit Shunt)

Abtastraten

Hardware-Limits

Gerät Max. Rate (Single) Max. Rate (Multi) Aggregate
USB-6001 20 kS/s 20 kS/s 20 kS/s
USB-6211 250 kS/s 250 kS/s 250 kS/s
USB-6341 500 kS/s 500 kS/s 500 kS/s
PCIe-6321 250 kS/s 250 kS/s 250 kS/s
PCIe-6361 2 MS/s 1 MS/s 2 MS/s

Multiplexing

Reale Rate pro Kanal = Aggregate Rate / Anzahl Kanäle

Beispiel:
USB-6211, 4 Kanäle
250 kS/s / 4 = 62.5 kS/s pro Kanal

Trigger-Modi

Analog Edge

Trigger bei Schwellwert-Überschreitung

Eigenschaften:
- Level (V)
- Steigung (steigend/fallend)
- Hysterese
- Quelle (AI Kanal)

Digital Edge

Trigger bei digitaler Flanke

Eigenschaften:
- Quelle (PFI, Terminal)
- Flanke (steigend/fallend)

Start Trigger

  • Beginnt Erfassung
  • Pre-Trigger möglich
  • Reference-Trigger

Reference Trigger

    Pre-Trigger    |    Post-Trigger
────────────────────▲──────────────────
                 Trigger

Buffer-Management

Continuous Mode

┌─────────────────────────┐
│   Hardware Buffer       │
│  ┌──────┬──────┬──────┐ │
│  │ Done │ Read │ Wait │ │
│  └──────┴──────┴──────┘ │
└─────────────────────────┘
         ▲           │
         └───────────┘
        Zirkulärer Buffer

Buffer Size

Empfohlene Größe = Rate × Leseintervall × 2

Beispiel:
10 kS/s × 0.1s × 2 = 2000 Samples

Kalibrierung

Selbstkalibrierung

1. DAQmx Control Task
2. Action: Perform Self-Calibration
3. Automatische Offset/Gain-Korrektur

Externe Kalibrierung

  • Mit Referenzquelle
  • 1× pro Jahr empfohlen
  • Dokumentation erforderlich
  • Zertifikat

Fehlerbehandlung

Häufige Fehler

-200279: Attempted to read samples that are no longer available

  • Buffer-Überlauf
  • Lösung: Buffer vergrößern oder schneller lesen

-200288: Sample rate exceeds maximum

  • Rate zu hoch
  • Lösung: Kanalzahl reduzieren oder Rate senken

-200077: Requested value is not supported

  • Ungültige Konfiguration
  • Lösung: Hardware-Datenblatt prüfen

-200220: Physical channel not specified

  • Kanal-Name fehlt
  • Lösung: Gültigen Kanal angeben

Performance-Optimierung

Schnellere Erfassung

  • Hardware-Timing verwenden (nicht Software)
  • Buffer-Größe optimieren
  • DMA Transfer aktivieren
  • Kanäle reduzieren

Niedrige Latenz

  • Kleine Buffer verwenden
  • Hohe Priorität setzen
  • On-Demand Timing vermeiden

CPU-Last reduzieren

  • Größere Buffer
  • Weniger häufig lesen
  • Hardware-Trigger verwenden

Anwendungen

Messdatenerfassung

  • Temperatur-Logging
  • Vibrations-Analyse
  • Druck-Überwachung
  • Spannungs-Monitoring

Test & Automation

  • Funktionstest
  • Produktionstest
  • Kalibrierung
  • Qualitätskontrolle

Steuerung

  • PID-Regelung
  • Prozess-Steuerung
  • Motor-Ansteuerung
  • Ventil-Kontrolle

Forschung

  • Sensor-Charakterisierung
  • Signal-Analyse
  • Experimentsteuerung
  • Daten-Akquisition

Beispiel: Kontinuierliche Erfassung

1. DAQ_AI_Continuous.vi konfigurieren
   - Device: "Dev1"
   - Kanäle: "ai0:3" (4 Kanäle)
   - Rate: 10000 Hz
   - Samples: 1000

2. In While-Schleife:
   - Daten lesen
   - Verarbeiten
   - Anzeigen/Speichern

3. Bei Stop:
   - Task stoppen
   - Task löschen

Beispiel: Triggered Acquisition

1. Analog Trigger konfigurieren
   - Quelle: "ai0"
   - Level: 2.5 V
   - Steigung: steigend

2. Pre-Trigger Samples: 500
3. Post-Trigger Samples: 1500

Result: 2000 Samples total
        500 vor Trigger
        1500 nach Trigger

Counter/Timer

Frequenzmessung

Messzeit: 1 Sekunde
Eingangsfrequenz: 1000 Hz
Ergebnis: 1000.0 ± 0.1 Hz

Genauigkeit: ± 1 Count / Messzeit

Pulsbreitenmessung

Misst:
- Hohe Zeit (High Time)
- Niedrige Zeit (Low Time)
- Periode
- Duty Cycle

Encoder

X1: 1 Count pro Puls
X2: 2 Counts pro Puls
X4: 4 Counts pro Puls (Quadratur)

Revolution Berechnung:
Position / Pulses_per_Rev

Synchronisation

Mehrere Geräte

  • PXI-Backplane Sync
  • RTSI-Kabel
  • PFI-Verbindung

Software-Timed

  • Ungenaue Synchronisation
  • ± ms Jitter

Hardware-Timed

  • µs Genauigkeit
  • Gemeinsamer Clock

Best Practices

Verkabelung

  • Twisted-Pair für AI
  • Kurze Leitungen
  • Schirmung bei Bedarf
  • Saubere Masse

Konfiguration

  • Kleinster Messbereich wählen
  • Differential für < 1V
  • Passende Abtastrate
  • Buffer ausreichend groß

Software

  • Error Handling
  • Task-Cleanup
  • Ressourcen freigeben
  • Timeouts setzen

Einschränkungen

  • Maximale Abtastrate: Hardware-abhängig
  • Buffer-Größe: Speicher-begrenzt
  • Kanäle: Hardware-abhängig
  • Gleichzeitigkeit: Hardware-Timing erforderlich

Systemanforderungen

  • LabVIEW 2017 oder höher
  • NI-DAQmx 17.0 oder höher
  • Kompatible NI-Hardware
  • Windows 7/8/10
  • USB 2.0 oder besser (für USB-DAQ)

Troubleshooting

Keine Geräte gefunden

  • NI-MAX öffnen, Gerät prüfen
  • Treiber installiert?
  • USB-Kabel/Verbindung OK?

Falsche Werte

  • Kalibrierung prüfen
  • Verkabelung kontrollieren
  • Messbereich anpassen
  • Terminal-Config prüfen

Überlauf

  • Buffer vergrößern
  • Schneller lesen
  • Weniger Kanäle
  • Rate reduzieren

Weiterführend

  • NI-DAQmx Hilfe
  • Hardware-Datenblätter
  • Measurement Fundamentals
  • Signal Conditioning

Erweiterungen

  • TDMS-Logging
  • Triggering erweitert
  • Kalibrierungs-Datenbank
  • Hardware-Abstraktion
  • Konfigurations-Import/Export

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published