Hardwaregetaktete simultane I/O mit Datenaustausch zwischen Schleifen unterschiedlicher Priorität
- Aktualisiert2025-12-03
- 3 Minute(n) Lesezeit
Vorteile
- Die Samples des Ausgangssignals der aktuellen Iteration werden garantiert mit den Samples des Eingangssignals der nächsten Iteration abgeglichen.
- Wenn die Funktion/das VI "DAQmx - Auf nächsten Sample-Takt warten" nicht vor der nächsten Sample-Takt-Flanke startet, wird ein Fehler ausgegeben.
- Der Jitter beschränkt sich auf den Jitter des Hardware-Takts, der einigen Nanosekunden entspricht.
- Bei der hardwaregetakteten zählergestützten Erfassung gibt es keine Umwandlung wie beispielsweise bei der Erfassung von Analogsignalen im Multiplexmodus. Daher können Sie den Echtzeit-FIFO oder das threadsichere Signal an jeder beliebigen Stelle in der Schleife einfügen.
Nachteile
Das Lesen, Verarbeiten und Schreiben von Daten ist auf den Zeitraum zwischen dem Start der Datenerfassung und der nächsten Sample-Flanke beschränkt.Beispiel-Anwendung für hardwaregetaktete simultane I/O mit Datenaustausch zwischen Schleifen unterschiedlicher Priorität
Ein Anwendungsbeispiel hierfür ist ein analoger Regelkreis, bei dem Samples von einer bestimmten Anzahl analoger Eingangskanäle abgefragt, mit Hilfe eines Regelalgorithmus (z. B. PID) ausgewertet und die neuen Werte an die analogen Ausgangskanäle übergeben werden. Zum Stoppen des Regelkreises wird eine Echtzeit-FIFO-Funktion verwendet. Das dazu benötigte Stopp-Signal wird von einem Prozess niedrigerer Priorität ausgegeben. Genauso könnten mit einem Echtzeit-FIFO die PID-Parameter sofort geändert oder die Ist- und Sollwerte an Prozesse niedrigerer Priorität übertragen werden, wo sie z. B. gespeichert oder fernüberwacht werden.
Diagramm zur Zeitsteuerung
LabVIEW-Beispiel für hardwaregetaktete simultane I/O mit Datenaustausch zwischen zeitkritischen und nicht zeitkritischen Schleifen
Hinweis Dieses Beispiel ist zwar LabVIEW-spezifisch, ist aber auf andere Entwicklungsumgebungen wie LabWindows/CVI übertragbar.
- Verbinden Sie das VI "DAQmx - Auf nächsten Sample-Takt warten" mit einem der hardwaregetakteten Tasks. Stellen Sie die Verbindungen so her, dass das VI "DAQmx - Auf nächsten Sample-Takt warten" nach dem Aufruf des VIs "AO - Schreiben" ausgeführt wird.
- Stellen Sie dann die Verbindungen so her, dass die Echtzeit-FIFO-Operationen nach dem VI "Auf nächsten Sample-Takt warten" ausgeführt werden.
- Wird das VI "DAQmx - Auf nächsten Sample-Takt warten" nicht vor der nächsten Flanke des Sample-Takts ausgeführt, wird ein Fehler ausgegeben.
Beispiel-Blockdiagramm

Hinweis
- Verwenden Sie nur ein Exemplar des VIs "DAQmx - Auf nächsten Sample-Takt warten" in einer LabVIEW-Schleife. Befinden sich mehrere hardwaregetaktete I/O-Tasks in derselben LabVIEW-Schleife, können Sie das VI "DAQmx - Auf nächsten Sample-Takt warten" mit einem beliebigen hardwaregetakteten Einzelpunkt-Task in der Schleife verbinden.
- Wenn im Falle eines Überlaufs eine Warnung statt einer Fehlermeldung ausgegeben werden soll, setzen Sie die Eigenschaft DAQmx - Real-Time»Verspätungsfehler in Warnung umwandeln auf TRUE.
- Dem VI "Auf nächsten Sample-Takt warten" muss zwar kein Programmcode für einen Echtzeit-FIFO folgen, aber es wird empfohlen, dies zu tun, wenn Sie mit anlogen Eingangsoperationen mit mehreren Kanälen an Multiplex-Geräten (z. B. Geräten der E- oder M-Serie) arbeiten. Da das Gerät manchmal bis zu 50% der Sample-Periodendauer mit dem Umwandeln von Samples an den analogen Eingangskanälen verbringt, kann währenddessen der FIFO-Programmcode ausgeführt werden, so dass die Zeit nicht ungenutzt bleibt.
- Die Umwandlungsrate für die Erfassung analoger Signale kann mit Hilfe des Eigenschaftsknotens "DAQmx - Timing" erhöht werden. Dadurch wird die zum Umwandeln der Samples benötigte Zeit verringert. Zur Vermeidung von Störungen und Qualitätsverlust bei den Signalen muss jedoch die Einschwingzeit für das gesamte Datenerfassungssystem berücksichtigt werden.