Verwenden Sie die NI Scan Engine, um auf erfasste oder ausgegebene Einzelwerte zuzugreifen.

Verwenden der NI Scan Engine

Die NI Scan Engine ermöglicht den effizienten Einzelwertzugriff auf Gruppen aus Datenkanälen wie I/O-Kanäle. Dabei werden während eines Scan-Vorgangs Daten in einem globalen Speicherabbild gespeichert und alle Werte mit der gleichen Rate, der sogenannten Scan-Periode, aktualisiert. Die NI Scan Engine wird mit LabVIEW per Voreinstellung für Windows installiert. Sie können die NI Scan Engine auch auf von LabVIEW unterstützten Systemen, z. B. Real-Time-PXI- und CompactRIO-Geräten installieren. Informationen zur Unterstützung der NI Scan Engine finden Sie in der Beschreibung zum Gerät.

(Real-Time Module) Per Voreinstellung wird die NI Scan Engine auf Real-Time-Systemen in einem Thread mit höherer Priorität als der zeitkritischen ausgeführt. Im Protokoll mit Angaben zur CPU-Auslastung wird der Scan-Thread allerdings in der Kategorie mit zeitkritischen Prozessen aufgeführt. Wenn die NI Scan Engine mit einer höheren Priorität als der zeitkritischen ausgeführt wird, müssen Sie die deterministischen Bereiche Ihrer Anwendung mit der Scan-Periode synchronisieren, um sicherzustellen, dass der Scan-Thread den Determinismus der Anwendung nicht beeinflusst. Bei Anwendungen, in denen I/O-Prozesse nicht mit höchster Priorität ausgeführt werden, können Sie für die Scan Engine auch eine Priorität zwischen zeitkritisch und der Priorität zeitgesteuerter Strukturen festlegen. Die NI Scan Engine sollte nur installiert werden, wenn Sie den Einsatz von I/O-Variablen auf einem Zielsystem planen. Wenn sich die NI Scan Engine bereits auf dem System befindet, können Sie sie im NI Measurement & Automation Explorer (MAX) deinstallieren.

Hinweis (Windows) Unter Windows kann die NI Scan Engine nur mit normaler Priorität ausgeführt werden. Da das Windows-Betriebssystem nicht deterministisch arbeitet, kann kein fehlerfreies Timing der NI Scan Engine garantiert werden.

Konfiguration der NI Scan Engine

Auf der Seite Scan Engine können Sie Einstellungen wie Scan-Periode, Rate für den Datenaustausch im Netzwerk und Priorität vornehmen.

Mit dem NI-DSM können Sie Fehler und Modi der Scan Engine überwachen und verwalten. Wählen Sie Werkzeuge»DSM, um den NI-DSM zu öffnen. Mit den VIs für die NI Scan Engine können Sie Einstellungen der Scan Engine programmatisch anzeigen und ändern.

Verteilen und Ausführen der NI Scan Engine

Nachdem Sie die NI Scan Engine im Projekt-Explorer konfiguriert haben, müssen Sie ein mit der Scan Engine arbeitendes System (z. B. Mein Computer oder ein Real-Time-System) verteilen, um die Einstellungen zu aktivieren.

(Windows) Die Ausführung der NI Scan Engine beginnt, wenn Sie das System das erste Mal verteilen, und endet, wenn Sie das Projekt schließen. Um die NI Scan Engine und I/O-Variablen bei Ausführung einer Anwendung automatisch zu verteilen, aktivieren Sie die Option Ziel-Hardwarekonfiguration einschließen auf der Seite Fortgeschritten des Dialogs Eigenschaften für Anwendung, bevor Sie die Anwendung erstellen.

(Real-Time Module) Bei Real-Time-Systemen wird die NI Scan Engine zusammen mit dem System gestartet und beendet.

Es kann nur jeweils eine Instanz der NI Scan Engine auf einem Computer ausgeführt werden. Wenn Sie beispielsweise eine Windows-Anwendung erstellen, die mit der NI Scan Engine arbeitet, müssen Sie das Projekt mit dieser Anwendung erst schließen, bevor Sie die eigentliche Anwendung auf demselben Computer ausführen können. Sie können zwar mehrere Instanzen der NI Scan Engine für verschiedene LabVIEW-Projekte konfigurieren, die Verteilung von Projekten schlägt aber fehl, wenn bereits eine Instanz der Engine läuft. Um eine neue Instanz der NI Scan Engine auszuführen, muss zunächst die bereits laufende angehalten werden.

Timing der Scan Engine

Die NI Scan Engine wird gemäß der Scan-Periode, die Sie auf der Seite Scan Engine festlegen, in regelmäßigen Abständen ausgeführt. Wählen Sie eine Dauer, die ausreichend Zeit für den eigentlichen Scan und die Logik der Anwendung bereitstellt, siehe Abbildung:

Hinweis Die Dauer des Scan-Prozesses hängt von der Anzahl und dem Typ der Objekte des Systems ab. Um die Leistung der Scan Engine zu optimieren, sollten Sie alle nicht benötigten I/O-Objekte aus dem System entfernen.

Mit dem VI Scan-Engine-Periode ermitteln können Sie die Scan-Periode programmatisch abfragen. Mit dem VI Scan-Engine-Periode festlegen wird die Scan-Periode programmatisch bestimmt.

Hinweis (Real-Time Module) Echtzeitschleifen benötigen in der Regel eine oder zwei Warmlaufiteration(en), bevor die deterministische Ausführung begonnen wird. Bevor Sie prüfen, ob eine Anwendung die Timing-Anforderungen erfüllt, sollten Sie daher jeder zeitkritischen Schleife einige Warmlaufiterationen erlauben.

Synchronisieren mit der Scan Engine

(Real-Time Module) Wenn die NI Scan Engine mit zeitkritischer Priorität ausgeführt wird, müssen Sie den zeitkritischen Programmcode mit der Scan-Periode synchronisieren, um den Determinismus der Anwendung nicht zu beeinflussen.

Verwenden Sie die Timing-Quelle Mit Scan-Engine synchronisieren, um die Ausführung der zeitgesteuerten Struktur mit der Scan Engine zu synchronisieren. Wenn Sie keine zeitgesteuerte Struktur einsetzen möchten, können Sie das VI Mit Scan-Engine synchronisieren verwenden. Beide Arten der Synchronisation starten die Ausführung zum in der zuvor gezeigten Abbildung dargestellten Zeitpunkt Ende des Scans. Um I/O-Variablen als kohärenten Datensatz zu verwenden, muss sichergestellt werden, dass der synchronisierte Programmcode abgeschlossen wird, bevor der nächste Scan-Prozess startet. Sie können aber Scan-Iterationen überspringen, wenn der Programmcode nicht von kohärenten Datensätzen abhängt.

Hinweis Wenn synchronisierter Programmcode nicht rechtzeitig beendet wird, sind die Daten, die vom Fehler-Cluster einer I/O-Variablen ausgegeben werden, ggf. nicht mehr synchron mit dem I/O-Wert.
Hinweis Wenn Sie in einem VI, das mit der NI Scan Engine synchronisiert ist, auf die Schaltfläche Abbrechen klicken, erfolgt der Abbruch des VIs erst nach abgeschlossener Scan-Iteration. Wenn es sich um eine relativ lange Scan-Periode handelt, kann es daher scheinen, als würde das VI kurzfristig hängen.

Modi der NI Scan Engine

Hinweis Nur bestimmte Systeme und Geräte arbeiten mit Modi der NI Scan Engine. CompactRIO-Systeme mit lokalen I/O-Modulen arbeiten nicht mit Modi der NI Scan Engine. Weitere Informationen dazu, welche Modi je nach installierter Hardware verfügbar sind, wird in der Dokumentation der Hardware beschrieben.

LabVIEW definiert vier verschiedene Modi der NI Scan Engine:

0 Initialisierungsmodus Tritt nur kurz während des Neustarts auf.
1 Konfigurationsmodus Der Modus für die Konfiguration der Scan Engine auf Hardware, die mit den Modi der NI Scan Engine arbeitet.
2 Aktiver Modus Der Modus, in dem die Scan Engine ausgeführt wird und Werte aktualisiert werden.
3 Fehlermodus Der Modus, der beim Auftreten eines schwerwiegenden oder nicht behebbaren Fehlers ausgelöst wird.
Hinweis Das Verhalten des Fehlermodus hängt vom System ab. Weitere Informationen zum Verhalten im Fehlermodus finden Sie in der Dokumentation der Hardware.

Im NI-DSM können Sie einen Modus der Scan Engine anzeigen und konfigurieren. Im NI-DSM wird über das Statusobjekt EngineState der Wert angezeigt, der im Scan-Engine-Modus vorliegt. Mit dem VI Scan-Engine-Modus ermitteln wird der Modus programmatisch abgefragt. Mit dem VI Scan-Engine-Modus festlegen können Sie den Modus programmatisch bestimmen.

Methoden des Datenaustauschs – Startseite