LabVIEW bietet viele Methoden des Datenaustauschs, von denen jede einem bestimmten Anwendungszweck dient. Diese Übersicht soll Ihnen helfen, eine geeignete Methode des Datenaustauschs für Ihre Anwendung zu finden. Beim Klicken auf den jeweiligen Titel erhalten Sie ausführliche Informationen zur gewünschten Methode.

Art des Datenaustauschs Datenflusselemente Pufferschnittstellen Variablenschnittstellen
Anwendungsfall Datenaustausch zwischen den meisten Blockdiagrammobjekten Datenaustausch zwischen Speicherorten ohne Überschreiben oder Verlust von Werten Speichern eines Werts, wobei leichter Zugriff auf den zuletzt gespeicherten Wert wichtig ist Mit Vorsicht zu verwenden, um Laufzeitprobleme zu vermeiden..
Beispiele: Datenübertragung von einem VI-Ausgang an einen VI-Eingang Erfassung eines Signalverlaufs, Senden einer Nachricht oder eines Befehls, Streaming eins Bilds Überwachung der aktuellen Temperatur; Überwachung des Systemstatus
Kategorien: — Verbindung — Schieberegister — Rückkopplungsknoten — Kanalverbindung

Intra-System oder PC

— Warteschleife — RT-FIFO — Benutzerereignisse — Asynchronous Message Communication (AMC) Reference Library

Netzwerk

— Netwerk-Streams — TCP — Simple TCP Messaging (STM) Reference Library

Intra-FPGA

— Zielsystembezogener FIFO — VI-definierter FIFO — DRAM

FPGA an/von Host

— DMA-FIFO

FPGA an FPGA

— Peer-to-Peer-FIFO (P2P)

Intra-System oder PC

— Lokale Variable — Globale Variable — Funktionale globale Variable (FGV) — Einzelprozess-Umgebungsvariable — Datenwertreferenz — Aktuelle Wertetabelle (CVT)

Netzwerk

— Netzwerk-Umgebungsvariable — Programmatische Umgebungsvariable API — Webdienste — UDP

Intra-FPGA

— Globale Variable — Speicherobjekt — Registerobjekt

FPGA an/von Host

— Lesen/Schreiben-Element — NI Scan Engine und Variablen — Benutzerdefinierte I/O-Variable

Datenflusselemente

Es empfiehlt sich, Verbindungen, Schieberegister, Rückkopplungsknoten und Kanalverbindungen als primäre Methoden des Datenaustauschs zu verwenden, um die Vorteile der Datenflussumgebung in LabVIEW zu nutzen.

Methode Attribute
Verbindung
  • Primäre Art der Übertragung von Daten zwischen Blockdiagrammobjekten
Schieberegister
  • Primäre Art der Übertragung von Daten zwischen Schleifeniterationen
Rückkopplungsknoten
  • Primäre Art der Übertragung von Daten zwischen Code-Iterationen (keine Schleife erforderlich)
Kanalverbindung
  • Primäre Art der Übertragung von Daten für die asynchrone Kommunikation zwischen parallelen Programmabschnitten

Pufferschnittstellen

Verwenden Sie Pufferschnittstellen zum Senden von Daten von einem Speicherort an anderen Pufferschnittstellen, um ein Überschreiben von Daten oder Datenverlust zu vermeiden. Als Pufferschnittstelle wird oft ein Einzelelement- oder Multielement-FIFO (First In, First Out) verwendet, der ein gleichzeitiges Schreiben und Auslesen von Daten ermöglicht.

Intra-System oder PC

Methode Attribute
Queue
  • Flexible Größen- und Zugriffsoptionen
  • Nicht deterministisch
RT-FIFO (Real-Time Module)
  • Deterministisch
  • Im Standardmodus "Polling" verlaufen das Lesen und das Schreiben deterministisch, jedoch auf Kosten einer hohen CPU-Last.
  • Im Modus "Blocking" ist die CPU-Last während der Lesen-/Schreiben-Wartezeiten optimiert, aber die Ausführung ist nicht deterministisch.
  • Ist weniger flexibel als Queues aufgrund seiner festen Größe und begrenzten Zugriffsoptionen.
Benutzerereignisse
Asynchronous Messaging Communication (AMC) Library

(Verfügbar auf ni.com)

  • Nachrichtenaustausch innerhalb eines Prozesses und zwischen Prozessen
  • Einfacheres Entwerfen von Frameworks zum Nachrichtenaustausch als bei Queues
  • Enthält die Vorlage "Handler für Nachrichten-Queues" Hinweis: Dieser Community-Inhalt unterliegt den Lizenzbestimmungen für Beispielcode, die unter ni.com/samplecodelicense eingesehen werden können.

Netzwerk

Methode Attribute
Netzwerk-Streams
  • 1:1-Kommunikation
  • Einfachere Implementierung als TCP
  • Automatisches Wiederherstellen getrennter Verbindungen oder Trennen von Verbindungen
  • Unidirektional
  • Nur für Windows- und Real-Time-Systeme verfügbar
TCP
  • Breiter Funktionsumfang für Anwendungen, die eine Netzwerkkommunikation mit Geräten ohne Netzwerk-Stream-Unterstützung erfordern
  • Low-Level-Protokoll wirkt sich auf Implementierungsumfang aus
Simple TCP Messaging (STM) Reference Library

(Verfügbar auf ni.com)

  • Nachrichten-Wrapper um Low-Level-TCP-Funktionen
  • Zur Implementierung von 1:N-Kommunikation zwischen einem Server und mehreren Clients Hinweis: Dieser Community-Inhalt unterliegt den Lizenzbestimmungen für Beispielcode, die unter ni.com/samplecodelicense eingesehen werden können.

Intra-FPGA

Methode Attribute
Target-scoped FIFO (FPGA Module)
VI-definierter FIFO (FPGA Module)
  • Die Art des vom FIFO verwendeten Speichers wird über Implementierungsoptionen bestimmt: Flipflops, Blockspeicher oder Zuordnungstabellen
  • Konflikte in ablaufinvarianten SubVIs werden durch Ressourcenreplikation für jede Instanz vermieden
  • Erleichtert das Wiederverwenden von Programmcode für VIs in verschiedenen Projekten
  • Nicht im Projekt-Explorer einsehbar oder veränderbar
DRAM (FPGA Module)
  • DRAM-Schnittstelle (Dynamic Random Access Memory) verwendet Speicherobjekt oder CLIP-Schnittstelle
  • Bietet große Menge an gepuffertem Speicherplatz im Vergleich zu Target-Scoped-FIFOs und VI-definierten FIFOs
  • Nicht deterministische Zugriffslatenz
  • Nicht auf allen Systemen verfügbar

FPGA an/von Host

Methode Attribute
DMA FIFO (FPGA Module)

FPGA an FPGA

Variablenschnittstellen

Variablenschnittstellen eignen sich zum Speichern von Werten, auf die ohne oder nur unter minimaler Ablaufsteuerung zugegriffen werden können soll. Wenn der zuletzt erfasste Wert von vorrangigem Interesse ist und vorherige Werte überschrieben werden können, sollten Variablen verwendet werden. Mit Vorsicht zu verwenden, um Laufzeitprobleme zu vermeiden..

Intra-System oder PC

Methode Attribute
Lokale Variable
  • Zum Speichern von Daten für Zugriff von einem VI
Globale Variable
  • Zum Speichern von Daten für den Zugriff von mehreren VIs in derselben LabVIEW-Anwendungsinstanz
Funktionale globale Variable (FGV)
  • Ein VI, das nicht initialisierte Schieberegister zum Speichern globaler Daten verwendet
  • Kann sowohl einfache globale Variablen als auch komplexere Datenstrukturen wie Stapel oder Queue-Puffer implementieren
  • Hilft beim Vermeiden von Laufzeitproblemen durch Definieren spezifischer Operationen, die aufrufender Code auf der Variable ausführen kann
Einzelprozess-Umgebungsvariable
Datenwertreferenz
  • Speichern großer Datensätze
  • Hilft beim Verwalten von Speicher und Vermeiden von Datenkopien
Aktuelle Wertetabelle (CVT)

(Verfügbar auf ni.com)

  • Gemeinsame Datenablage für Variablen in Anwendungen mit separaten Komponenten
  • Nimmt aufgrund zentralisierter I/O-Operationen weniger Rechnerressourcen in Anspruch als Umgebungsvariablen Hinweis: Dieser Community-Inhalt unterliegt den Lizenzbestimmungen für Beispielcode, die unter ni.com/samplecodelicense eingesehen werden können.

Netzwerk

Methode Attribute
Netzwerk-Umgebungsvariable
  • Deterministische Option verfügbar
  • Ideal zur Überwachung von Werten
  • Speichert Werte in einem Netzwerk-Server (Engine für Umgebungsvariablen)
  • Integrierter Verbindungsmanager für 1:N- und N:1-Netzwerkkonfiguration
Programmatische Umgebungsvariablen-API
  • Verbesserte Skalierbarkeit von Entwürfen durch dynamischen Zugriff auf Variablen statt statischer knotenbasierter Bindung
  • Zugriff auf mehrere Variablen mit einer einzelnen API-Variablenfunktion
  • Zugriff auf Netzwerk-I/O-Variablen
Webdienste
  • Datenaustausch über das Netzwerk unter Verwendung von Standard-HTTP-Protokollen
  • Streaming von Standard-MIMI-Datentypen, wie Texten, Bildern und Videos
  • Erstellen und Verteilen von Webdiensten mit Hilfe von LabVIEW-VIs
UDP
  • Unterstützt Single-Cast- (1:1) und Multicast-Verbindungen (1:N) für die Low-Level-Kommunikation zwischen Prozessen auf Rechnern
  • Höhere Leistung als TCP in Anwendungen, die keine verlustfreie Datenübertragung erfordern
  • Low-Level-Protokoll wirkt sich auf Implementierungsumfang aus
  • Datenübertragung an Clients ist nicht garantiert

Intra-FPGA

Methode Attribute
Globale Variable
  • Zum Speichern von Daten für den Zugriff von mehreren VIs in derselben LabVIEW-Anwendungsinstanz
Speicherobjekt (FPGA Module)
  • Kann Werte in Form mehrerer Daten speichern
  • Die Art des vom Speicherobjekt verwendeten Speichers wird über Implementierungsoptionen bestimmt: Blockspeicher, Zuordnungstabellen oder DRAM
  • Optionen: Target-Scoped (im Projekt konfiguriert) und VI-definiert (im VI zur ablaufinvarianten Verwendung konfiguriert)
Registerobjekt (FPGA Module)
  • Kann für jede Taktperiode einen Status angeben
  • Optionen: Target-Scoped (im Projekt konfiguriert) und VI-definiert (im VI zur ablaufinvarianten Verwendung konfiguriert)
  • Verbraucht weniger FPGA-Ressourcen als FIFOs

FPGA an/von Host

Methode Attribute
Read/Write Control (FPGA Module)
  • Ermittelt oder bestimmt Werte in einem Bedien- oder Anzeigeelement im FPGA-VI höchster Ebene auf dem Ziel-FPGA
NI Scan Engine und Variablen

(Unterstützung für FPGA Module + NI Scan Engine auf Ihrem Zielsystem)

  • Einfacher periodischer Austausch von FPGA-I/O-Daten mit einem RT-Host
  • Reduziert den für den Austausch von I/O-Daten zwischen einem Ziel-FPGA und Real-Time-Host benötigten Programmcode
Benutzerdefinierte I/O-Variable (FPGA Module)
  • Senden von benutzerdefinierten Daten im Hybridmodus der Scan Engine
  • Datenübertragung zwischen einem FPGA-VI und LabVIEW-RT-Host-VI
  • Übertragen von benutzerdefinierten, mit FPGA Module verarbeiteten I/O-Daten