Führt einen oder mehrere Rahmen aus, wobei die Dauer des Schleifendurchlaufs festgelegt werden kann. Zeitgesteuerte Schleifen sind für die Entwicklung von VIs geeignet, bei denen unterschiedliche Taktraten, genaue Einhaltung der Zeitvorgaben, Rückmeldungen über die Schleifenausführung, dynamisch änderbare Zeitvorgaben und unterschiedliche Ausführungsprioritäten erforderlich sind. Durch Klick mit der rechten Maustaste auf den Rand der Struktur öffnet sich ein Kontextmenü zum Hinzufügen, Entfernen, Einfügen oder Zusammenfassen von Rahmen.


icon

Bestandteile einer zeitgesteuerten Schleife

Hinweis Wenn Sie in FPGA-VIs mit zeitgesteuerten Schleifen arbeiten, muss eine Single-Cycle Timed Loop verwendet werden. Eine Single-Cycle Timed Loop führt ein Unterdiagramm pro FPGA-Takt aus. Eine Single-Cycle Timed Loop unterstützt keine Rahmen.

Der Anschluss i gibt den aktuellen Wert des Schleifenzählers aus. Beim ersten Durchlauf ist dieser 0. Wenn die Schleife 2.147.483.647 (oder 231-1) Mal ausgeführt wurde, zählt der Zähleranschluss nicht mehr weiter. Wenn mehr Iterationen gezählt werden sollen, arbeiten Sie mit Schieberegistern.

Die zeitgesteuerte Schleife enthält einen Eingangsknoten (1), Ausgangsknoten (4), einen linken Datenknoten (2) und einen rechten Datenknoten (3) für jeden Rahmen, wie in der folgenden Abbildung dargestellt. Knoten einer zeitgesteuerten Schleife zeigen per Voreinstellung nicht alle verfügbaren Ein- und Ausgangsanschlüsse an. Sie können die Größe des Knotens ändern oder einen Knoten mit der rechten Maustaste anklicken und das Kontextmenü verwenden, um die Anschlüsse des Knotens anzuzeigen. Zum Anzeigen der Knoten klicken Sie mit der rechten Maustaste auf den Rand der zeitgesteuerten Schleife und wählen Sie Linken Datenknoten anzeigen oder Rechten Datenknoten anzeigen aus dem Kontextmenü.

Zur Konfiguration einer zeitgesteuerten Schleife klicken Sie entweder den Eingangsknoten doppelt an oder klicken Sie mit der rechten Maustaste auf die Struktur und wählen den Menüpunkt Zeitgesteuerte Schleife konfigurieren aus, um zum Dialogfeld Schleifenkonfiguration zu gelangen. Die im Dialogfeld Schleifenkonfiguration eingegebenen Werte erscheinen neben den Anschlüssen des Eingangsknotens.

Die folgende Tabelle enthält die Knotenanschlüsse einer zeitgesteuerten Schleife. Die zeitgesteuerte Schleife enthält viele Knoten, deren Werte relativ zum Start der Timing-Quelle sind. Wenn keine Synchronisierung angefordert wird, ist der Startzeitpunkt der Timing-Quelle der Startzeitpunkt der ersten Schleife, welche die Timing-Quelle verwendet. Wenn mehrere Schleifen zu einer Synchronisationsgruppe gehören, ist der Startzeitpunkt der Timing-Quelle der Zeitpunkt, an dem die letzte Schleife zur Ausführung bereit ist.

(1) Eingangsknoten

FristLegt die Zeit fest, zu der die Schleifendurchführung beendet sein muss. Der Wert der Frist ist relativ zum Startzeitpunkt der Timing-Quelle und wird in der Einheit der Timing-Quelle angegeben. Die Angabe des Werts -1 zeigt an, dass es keine Frist gibt. Wenn Sie keinen Wert für diesen Eingang angeben, verwendet die Struktur den Wert von Periode als Frist.
FehlerVerbreitet Fehler durch die Struktur. Die zeitgesteuerte Schleife wird nicht ausgeführt, wenn Fehler einen Fehler empfängt.
ModusLegt fest, wie die zeitgesteuerte Schleife verspätete Ausführungen handhabt. Fünf verschiedene Modi stehen zur Auswahl—No change, Process missed periods maintaining original phase, Process missed periods ignoring original phase, Discard missed periods maintaining original phase, and Discard missed periods ignoring original phase.
StrukturnameLegt einen Namen für die zeitgesteuerte Schleife fest.
OffsetLegt die Dauer fest, die eine zeitgesteuerte Schleife auf den Beginn ihrer Ausführung wartet. Der Offset-Wert ist relativ zum Startzeitpunkt der Timing-Quelle und wird in der Einheit der Timing-Quelle angegeben.
PeriodendauerLegt eine Periode für die zeitgesteuerte Schleife in den gleichen Einheiten fest, die auch die Timing-Quelle verwendet, die durch Quellenname festgelegt ist.
Hinweis Setzen Sie die Periodendauer einer zeitgesteuerten Schleife nicht auf 0. Diese Einstellung wird generell nicht unterstützt, weil dadurch die Anwendung einen undefinierten Zustand annehmen kann. Wenn Sie eine schnellstmöglich laufende Schleife benötigen, die wie eine zeitgesteuerte Schleife mit Ausführungsprioritäten arbeitet, verwenden Sie stattdessen eine While-Schleife in einer zeitgesteuerten Sequenzstruktur.
PrioritätLegt die Priorität für die Ausführung der zeitgesteuerten Schleife fest. Die Priorität einer zeitgesteuerten Struktur legt fest, wann die Struktur relativ zu anderen Objekten im Blockdiagramm ausgeführt wird. Je höher die Priorität einer zeitgesteuerten Struktur ist, desto eher wird die Struktur gegenüber anderen zeitgesteuerten Strukturen ausgeführt. Der Wert, der im Eingang Priorität eingegeben wird, muss ein positiver Integer-Wert zwischen 1 und 65.535 sein.
ProzessorGibt den Prozessor zur Verarbeitung der Ausführung an. Die Standardeinstellung lautet -2. Das bedeutet, es wird automatisch ein Prozessor ausgewählt. Zum manuellen Zuweisen eines Prozessors geben Sie eine Zahl zwischen 0 und 255 ein, wobei 0 für den ersten Prozessor steht. Wenn Sie eine größere Zahl eingeben, als Prozessoren vorhanden sind, kommt es zu einem Laufzeitfehler und die zeitgesteuerte Struktur wird nicht ausgeführt.
QuellennameLegt den Namen der Timing-Quelle fest, die zum Steuern der Struktur verwendet werden soll. Die Timing-Quelle muss im Blockdiagramm mit Hilfe des VIs Timing-Quelle erstellen erzeugt oder aus dem Dialogfeld Schleifenkonfiguration ausgewählt werden.
TimeoutLegt die Höchstzeitdauer fest, die eine zeitgesteuerte Schleife auf den Beginn ihrer Ausführung warten kann. Standardwert ist -1 und bedeutet, dass kein Timeout für den nächsten Rahmen festgelegt ist. Der Wert des Timeouts ist relativ zum Startzeitpunkt der Timing-Quelle oder dem Ende der vorherigen Schleifenausführung und wird in Einheiten der Rahmen-Timing-Quelle angegeben.

(2) Linker Datenknoten

Tatsächliches Ende [f-1] (in zeitgesteuerten Schleifen mit einem Rahmen nicht verfügbar)Gibt das tatsächliche Ende des letzten Rahmens aus (f-1). Der Wert für "Tatsächliches Ende" ist relativ zum Startzeitzeitpunkt der Timing-Quelle und wird in der Einheit der Timing-Quelle angegeben.
Tatsächliches Ende [i-1] (nur erster Rahmen)Gibt das tatsächliche Ende der letzten Iteration aus (i-1). Der Wert für "Tatsächliches Ende" ist relativ zum Startzeitzeitpunkt der Timing-Quelle und wird in der Einheit der Timing-Quelle angegeben.
Tatsächlicher Start [f-1] (in zeitgesteuerten Schleifen mit einem Rahmen nicht verfügbar)Gibt die aktuelle Startzeit des aktuellen Rahmens (f) aus. Der Wert für "Tatsächlicher Startwert" ist relativ zur Startzeit der Timing-Quelle und wird in Einheiten der Rahmen-Timing-Quelle angegeben.
Tatsächlicher Start [i] (nur erster Rahmen)Gibt die tatsächliche Startzeit der aktuellen Iteration aus (i). Der Wert für "Tatsächlicher Startwert" ist relativ zum Startzeitzeitpunkt der Timing-Quelle und wird in der Einheit der Timing-Quelle angegeben.
FristGibt den Wert der Frist des aktuellen Rahmens aus.
FehlerVerbreitet Fehler durch die Struktur.
Erwartetes Ende [f-1] (in zeitgesteuerten Schleifen mit einem Rahmen nicht verfügbar)Gibt das erwartete Ende des letzten Rahmens aus (f-1). Der Wert für "Tatsächliches Ende" ist relativ zum Startzeitzeitpunkt der Timing-Quelle und wird in der Einheit der Timing-Quelle angegeben. Das erwartete Ende (f-1) ist gleich dem Start der nächsten Periode.
Erwartetes Ende [i-1] (nur erster Rahmen)Gibt das erwartete Ende der letzten Iteration aus (i-1). Der Wert für "Tatsächliches Ende" ist relativ zum Startzeitzeitpunkt der Timing-Quelle und wird in der Einheit der Timing-Quelle angegeben.
Erwarteter Start [f]Gibt die erwartete Startzeit des aktuellen Rahmens (f) aus. Der Wert für "Erwarteter Start" ist relativ zur Startzeit der Timing-Quelle und wird in Einheiten der Rahmen-Timing-Quelle angegeben.
Erwarteter Start [i] (nur erster Rahmen)Gibt die erwartete Startzeit der aktuellen Iteration aus (i). Der Wert für "Erwarteter Start" ist relativ zum Startzeitzeitpunkt der Timing-Quelle und wird in der Einheit der Timing-Quelle angegeben.
Verspätete Beendigung? [i-1]Gibt TRUE aus, wenn die zeitgesteuerte Schleife den letzten Rahmen nicht vor Ende der festgelegten Frist beendet.
Verspätete Beendigung? [i-1] (nur erster Rahmen)Gibt TRUE aus, wenn die zeitgesteuerte Schleife die letzte Iteration nicht vor Ende der festgelegten Frist beendet.
Rahmenlaufzeit (in zeitgesteuerten Schleifen mit einem Rahmen nicht verfügbar)Gibt die Laufzeit des letzten Rahmens aus. Die Rahmenlaufzeit ist relativ zum Start des Rahmens und wird in Einheiten der Timing-Quelle festgelegt.
Globale EndzeitGibt den Zeitpunkt des Endes der vorherigen Iteration bzw. des vorherigen Rahmens als Nanosekundenangabe aus. Wenn Timing-Quelle der zeitgesteuerten Schleife mit absoluter Zeit arbeitet, wird Globaler Endzeitpunkt als Zeitstempel ausgegeben. Anderenfalls ist Globaler Endzeitpunkt ein 64-Bit-Integer. Wenn die zeitgesteuerte Schleife auf einem RT-Zielsystem ausgeführt wird, beruht Globaler Endzeitpunkt auf der Systemzeit des Zielsystems und kann mit einer externen Uhr synchronisiert werden. Wenn die zeitgesteuerte Schleife unter Windows ausgeführt wird, richtet sich Globaler Endzeitpunkt nach der Windows-Systemzeit.
Globaler StartzeitpunktGibt den Zeitpunkt des Anfangs der aktuellen Iteration bzw. des aktuellen Rahmens als Nanosekundenangabe aus. Wenn Timing-Quelle der zeitgesteuerten Schleife mit absoluter Zeit arbeitet, wird Globaler Startzeitpunkt als Zeitstempel ausgegeben. Anderenfalls ist Globaler Startzeitpunkt ein 64-Bit-Integer. Wenn die zeitgesteuerte Schleife auf einem RT-Zielsystem ausgeführt wird, beruht Globaler Startzeitpunkt auf der Systemzeit des Zielsystems und kann mit einer externen Uhr synchronisiert werden. Wenn die zeitgesteuerte Schleife unter Windows ausgeführt wird, richtet sich Globaler Startzeitpunkt nach der Windows-Systemzeit.
Iterationsdauer (nur erster Rahmen)Gibt einen Zeitstempel für die Dauer der letzten Iteration aus. Der Wert der "Iterationsdauer" ist relativ zum Start der Iteration und wird in der Einheit der Timing-Quelle angegeben.
Mode (nur erster Rahmen)Gibt den Wert des Modus des aktuellen Durchlaufs aus.
Offset (nur erster Rahmen)Gibt den Wert des Offsets für den Beginn des aktuellen Durchlaufs aus.
Periode (nur erster Rahmen)Gibt den Wert der Periode des aktuellen Rahmens aus.
PrioritätGibt den Wert der Priorität des aktuellen Rahmens aus.
ProzessorGibt den Prozessor aus, der für die Ausführung festgelegt wurde, falls eine Auswahl getroffen wurde. Anderenfalls wird -2 ausgegeben. Das bedeutet, es wird automatisch ein Prozessor ausgewählt.
Start (im ersten Rahmen nicht verfügbar)Gibt den Startwert des aktuellen Rahmens aus.
TimeoutGibt den Wert des Timeouts des aktuellen Rahmens aus.
AktivierungsgrundGibt ein Enum-Element mit der Ursache für den Ausführungsstart der aktuellen Iteration aus. Die möglichen Werte sind 0 für eine normale Aktivierung, 1 für eine abgebrochene Sequenz, 2 für asynchrone Aktivierung, 3 für einen Fehler der Timing-Quelle, 4 für einen Fehler in der zeitgesteuerten Schleife und 5 für ein Timeout.

(3) Rechter Datenknoten

FristLegt die Zeit fest, zu der die nächste Ausführung des Rahmens beendet sein muss. Der Wert der Frist ist relativ zum Start des nächsten Rahmens und wird in der Einheit der Timing-Quelle angegeben. Die Standardeinstellung lautet -1 (unverändert).
FehlerVerbreitet Fehler oder Warnungen außerhalb des Unterdiagramms der zeitgesteuerten Schleife. Wenn Fehler einen Fehler erhält, beendet die zeitgesteuerte Schleife den nächsten Rahmen ungetaktet. Wenn Fehler einen Fehler im letzten Rahmen erfasst, beendet die Struktur die aktuelle Schleifenausführung ungetaktet, verlässt die Schleife und gibt den Fehler am Ausgangsknoten aus.
Modus (nur letzter Rahmen)Legt den Modus für die nächste Iteration der zeitgesteuerten Schleife fest. Fünf verschiedene Modi stehen zur Auswahl—No change, Process missed periods maintaining original phase, Process missed periods ignoring original phase, Discard missed periods maintaining original phase, and Discard missed periods ignoring original phase.
Offset (nur letzter Rahmen)Legt die Dauer fest, die die nächste Iteration auf den Beginn ihrer Ausführung wartet. Der Offset-Wert ist relativ zum Start der nächsten Iteration und wird in der Einheit der Timing-Quelle angegeben. Die Standardeinstellung lautet -1 (unverändert). Wenn ein Offset für die nächste Iteration festgelegt wurde, muss auch ein neuer Modus-Wert festgelegt werden.
Periode (nur letzter Rahmen)Legt eine Periode für die nächste Iteration einer zeitgesteuerten Schleife in Einheiten als Timing-Quelle fest. Die Standardeinstellung lautet -1 (unverändert).
Hinweis Die möglichen Werte sind 0. Setzen Sie die Periodendauer einer zeitgesteuerten Schleife nicht auf 0. Diese Einstellung wird generell nicht unterstützt, weil dadurch die Anwendung einen undefinierten Zustand annehmen kann. Wenn Sie eine schnellstmöglich laufende Schleife benötigen, die wie eine zeitgesteuerte Schleife mit Ausführungsprioritäten arbeitet, verwenden Sie stattdessen eine While-Schleife in einer zeitgesteuerten Sequenzstruktur.
PrioritätLegt die Priorität für die nächste Iteration der zeitgesteuerten Schleife fest. Die Priorität legt fest, wann die nächste Iteration relativ zu anderen Objekten im Blockdiagramm ausgeführt wird. Je höher die Priorität einer zeitgesteuerten Struktur ist, desto eher wird die Struktur gegenüber anderen zeitgesteuerten Strukturen ausgeführt. Der Wert, der im Eingang Priorität eingegeben wird, muss ein positiver Integer-Wert zwischen 1 und 65.535 sein.
ProzessorGibt den Prozessor zur Verarbeitung der Ausführung an. Die Standardeinstellung lautet -1, d. h., LabVIEW wählt den im Eingangsknoten festgelegten Prozessor. Die Eingabe von -2 erlaubt LabVIEW die Wahl eines Prozessors. Zum manuellen Zuweisen eines Prozessors geben Sie eine Zahl zwischen 0 und 255 ein, wobei 0 für den ersten verfügbaren Prozessor steht. Wenn Sie eine größere Zahl eingeben, als Prozessoren vorhanden sind, kommt es zu einem Laufzeitfehler und die zeitgesteuerte Struktur wird nicht ausgeführt.
Start (im letzten Rahmen nicht verfügbar)Legt die Dauer fest, die der nächste Rahmen auf den Beginn seiner Ausführung wartet. Der Startwert ist relativ zum Beginn des aktuellen Rahmens und wird in der Einheit der Timing-Quelle angegeben.
TimeoutLegt die Höchstzeitdauer fest, die die nächste Iteration auf den Beginn ihrer Ausführung warten kann. Standardwert ist -1 und bedeutet, dass kein Timeout für die nächste Iteration festgelegt ist. Der Wert des Timeouts ist relativ zum Ende der letzten Iteration und wird in Einheiten der Rahmen-Timing-Quelle angegeben.

(4) Ausgangsknoten

Tatsächliches Ende [f-1] (in zeitgesteuerten Schleifen mit einem Rahmen nicht verfügbar)Gibt das tatsächliche Ende des letzten Rahmens aus (f-1). Der Wert für "Tatsächliches Ende" ist relativ zum Startzeitzeitpunkt der Timing-Quelle und wird in der Einheit der Timing-Quelle angegeben.
Tatsächliches Ende [i-1]Gibt das tatsächliche Ende der letzten Iteration aus (i-1). Der Wert für "Tatsächliches Ende" ist relativ zum Startzeitzeitpunkt der Timing-Quelle und wird in der Einheit der Timing-Quelle angegeben.
FehlerVerbreitet Fehler, die von der zeitgesteuerten Schleife empfangen wurden und gibt Fehler vom Unterdiagramm aus.
Erwartetes Ende [f-1] (in zeitgesteuerten Schleifen mit einem Rahmen nicht verfügbar)Gibt das erwartete Ende des letzten Rahmens aus (f-1). Der Wert für "Erwartetes Ende" ist relativ zur Timing-Quelle, wenn die Rahmen-Timing-Quelle nicht am Anfang jeder Iteration zurückgesetzt wird. Der Wert wird in der Einheit der Timing-Quelle angegeben. Das erwartete Ende (f-1) ist gleich dem Start der nächsten Periode.
Erwartetes Ende [i-1]Gibt das erwartete Ende der letzten Iteration aus (i-1). Der Wert für "Erwartetes Ende" ist relativ zur Timing-Quelle, wenn die Rahmen-Timing-Quelle nicht am Anfang jeder Iteration zurückgesetzt wird. Der Wert wird in der Einheit der Timing-Quelle angegeben.
Verspätete Beendigung? [f-1] (in zeitgesteuerten Schleifen mit einem Rahmen nicht verfügbar)Gibt TRUE aus, wenn die zeitgesteuerte Schleife den letzten Rahmen nicht vor Ende der festgelegten Frist beendet.
Verspätete Beendigung? [i-1]Gibt TRUE aus, wenn die zeitgesteuerte Schleife die letzte Iteration nicht vor Ende der festgelegten Frist beendet.
Rahmenlaufzeit (in zeitgesteuerten Schleifen mit einem Rahmen nicht verfügbar)Gibt die Laufzeit des letzten Rahmens aus. Die Rahmenlaufzeit ist relativ zum Start des Rahmens und wird in Einheiten der Timing-Quelle festgelegt.
Globale EndzeitGibt den Zeitpunkt des Endes der vorherigen Iteration bzw. des vorherigen Rahmens als Nanosekundenangabe aus. Wenn Timing-Quelle der zeitgesteuerten Schleife mit absoluter Zeit arbeitet, wird Globaler Endzeitpunkt als Zeitstempel ausgegeben. Anderenfalls ist Globaler Endzeitpunkt ein 64-Bit-Integer. Wenn die zeitgesteuerte Schleife auf einem RT-Zielsystem ausgeführt wird, beruht Globaler Endzeitpunkt auf der Systemzeit des Zielsystems und kann mit einer externen Uhr synchronisiert werden. Wenn die zeitgesteuerte Schleife unter Windows ausgeführt wird, richtet sich Globaler Endzeitpunkt nach der Windows-Systemzeit.
IterationsdauerGibt einen Zeitstempel für die Ausführungsdauer der letzten Iteration aus. Die Iterationsdauer ist relativ zum Start der Iteration und wird in der Einheit der Timing-Quelle angegeben.
ProzessorGibt den Prozessor aus, der für die Ausführung festgelegt wurde, falls eine Auswahl getroffen wurde. Anderenfalls wird -2 ausgegeben. Das bedeutet, es wird automatisch ein Prozessor ausgewählt.

Der Umgang mit zeitgesteuerten Schleifen und die möglichen Einstellungen sind im Abschnitt Konfiguration zeitgesteuerter Schleifen ausführlich beschrieben.

Konvertieren Sie eine zeitgesteuerte in eine While-Schleife, indem Sie mit der rechten Maustaste auf die zeitgesteuerte Schleife klicken und Durch While-Schleife ersetzen aus dem Kontextmenü wählen. Konvertieren Sie eine zeitgesteuerte Schleife in eine zeitgesteuerte Sequenz, indem Sie mit der rechten Maustaste auf die zeitgesteuerte Schleife klicken und Durch zeitgesteuerte Sequenz ersetzen aus dem Kontextmenü wählen.

Anders als bei einer While-Schleife muss bei einer zeitgesteuerten Schleife der Anschluss für die Abbruchbedingung nicht verbunden werden. Die Schleife wird dann endlos oft wiederholt.

Hinweise zur Verwendung und Konfiguration zeitgesteuerter Schleifen in FPGA-VIs finden Sie im Abschnitt Zeitgesteuerte Schleife (FPGA-Modul).

Beispiele

Die folgenden Beispieldateien sind in LabVIEW enthalten.

  • labview\examples\Structures\Timed Loop\Timed Loop Offset.vi
  • labview\examples\Structures\Timed Loop\Timed Loop Resettable Source Type.vi