Konfigurieren von zeitgesteuerten Schleifen und zeitgesteuerten Schleifen mit Rahmen (Real-Time, Windows)
- Aktualisiert2025-08-27
- 6 Minute(n) Lesezeit
Die Funktionsweise eine zeitgesteuerten Struktur wird im Dialogfeld Zeitgesteuerte Schleife konfigurieren bzw. Zeitgesteuerte Schleife mit Rahmen konfigurieren festgelegt. Zum Öffnen dieser Dialogfeld klicken Sie doppelt auf den Eingangsknoten oder klicken Sie den Knoten mit der rechten Maustaste an und wählen Sie Eingangsknoten konfigurieren aus dem Kontextmenü. Hier können Sie eine Timing-Quelle angeben, das Ausführungsintervall festlegen und erweiterte Einstellungen vornehmen.
Die Optionen zur zeitgesteuerten Schleife werden auch beim Verbinden der Daten mit dem Eingangsknoten angezeigt. Per Voreinstellung sind am Eingangsknoten einer zeitgesteuerten Schleife nicht alle verfügbaren Eingangsanschlüsse zu sehen. Zur Anzeige der ausgeblendeten Anschlüsse ziehen Sie den Eingangsknoten auf oder klicken Sie den Knoten mit der rechten Maustaste an und wählen Sie die entsprechende Option aus dem Kontextmenü aus.
Tipps und Tricks für die Verwendung von zeitgesteuerten Schleifen
Im Folgenden finden Sie weitere Informationen zur Verwendung von zeitgesteuerten Schleifen.
- Im Gegensatz zur While-Schleife muss der Bedingungsanschluss in einer zeitgesteuerten Schleife nicht verbunden werden.
- Sie können auch Daten mit dem rechten Datenknoten verbinden, um die Einstellungen zur folgenden Schleifeniteration dynamisch zu konfigurieren.
- Damit Daten aus der aktuellen Iteration an die nächste Iteration übergeben werden, können Sie einer zeitgesteuerten Struktur Schieberegister hinzufügen.
- Ein VI, das mit zeitkritischer Priorität ausgeführt wird, sollte nicht zusammen mit einer zeitgesteuerten Schleife im selben Blockdiagramm verwendet werden, weil es sonst zu Timing-Problemen kommen kann.
Tipps und Tricks für die Verwendung von zeitgesteuerten Schleifen mit Rahmen
Im Folgenden finden Sie weitere Informationen zur Verwendung von zeitgesteuerten Schleifen mit Rahmen.
- Zum Konfigurieren einer zeitgesteuerten Schleife mit Rahmen im Dialogfeld Zeitgesteuerte Schleife mit Rahmen konfigurieren können Sie entweder Werte mit dem Eingangsknoten verbinden oder den Eingangsknoten mit der rechten Maustaste anklicken und aus dem Kontextmenü die Option Eingangsknoten konfigurieren auswählen.
- Durch einen rechten Mausklick auf die Struktur öffnet sich ein Kontextmenü zum Hinzufügen, Entfernen oder Zusammenfassen von Rahmen.
- Wenn jeder Rahmen nur einmal ausgeführt werden soll, klicken Sie den Rand der zeitgesteuerten Schleife mit der rechten Maustaste an und wählen Sie Durch zeitgesteuerte Sequenz ersetzen.
Beispiele zur Verwendung von zeitgesteuerten Schleifen finden Sie in unter labview\examples\Structures\Timed Loop\Timed Loop.lvproj.
Konfigurieren des nächsten Rahmens
Zur Anzeige des Dialogfelds Timing für nächsten Rahmen klicken Sie doppelt oder mit der rechten Maustaste auf den rechten Datenknoten des aktuellen Rahmens und wählen Sie Eingangsknoten konfigurieren aus dem Kontextmenü aus. Hier können Sie die Startzeit, eine Priorität, Frist und den Timeout für den nächsten Rahmen angeben.
Die Startzeit ist der Zeitpunkt, an dem der nächste Rahmen ausgeführt wird. Die Startzeit ist relativ zum Start des vorherigen Rahmens anzugeben, aber als absolute Zeitangabe der Timing-Quelle des Rahmens. Geben Sie die Startzeit durch Eingabe eines Werts in das Textfeld Start an.
Mit den Eingangsanschlüssen am rechten Datenknoten eines Rahmens können Sie die Einstellungen für die nächste Iteration einer zeitgesteuerten Schleife oder den nächsten Rahmen dynamisch konfigurieren. Der rechte Datenknoten des Rahmens einer zeitgesteuerten Schleife zeigt per Voreinstellung nicht alle verfügbaren Eingangsanschlüsse an. Zur Anzeige der ausgeblendeten Anschlüsse ziehen Sie den rechten Datenknoten auf oder klicken Sie den Knoten mit der rechten Maustaste an und wählen Sie aus dem Kontextmenü die entsprechende Option aus.
Festlegen der Periode einer zeitgesteuerten Schleife
Die Periode ist die Zeit zwischen Iterationen einer zeitgesteuerten Schleife als absolute Zeitangabe der Timing-Quelle.
Die zeitgesteuerten Schleifen im folgenden Blockdiagramm verwenden die Standard-1-kHz-Timing-Quelle. Die Periode (dt) beträgt für Schleife A 1000 ms und für Schleife B 2000 ms, das heißt, Schleife A wird jede Sekunde und Schleife B alle zwei Sekunden ausgeführt. Beide Schleifen beenden die Ausführung nach sechs Durchläufen. Die Ausführung der Schleife A wird nach sechs Sekunden und der Schleife B nach 12 Sekunden angehalten.
Die Ausführung des Unterdiagramms einer zeitgesteuerten Schleife oder einer zeitgesteuerten Schleife mit Rahmen muss vor Ablauf der pro Iteration angegebenen Periodendauer beendet sein. Wenn ein Unterdiagramm oder mehrere Unterdiagramme nicht in der vorgegebenen Zeit abgearbeitet werden, gibt die zeitgesteuerte Schleife im ersten Rahmen der nächsten Iteration eine entsprechende Meldung aus. Dazu wird entweder der Ausgang Verspätete Beendigung? [i-1] des Ausgangsknotens oder der Ausgang Verspätete Beendigung? [i-1] des linken Datenknotens auf TRUE gesetzt.
Wenn Unterdiagramme zeitgesteuerter Schleifen oder zeitgesteuerter Schleifen mit Rahmen frühzeitig beendet werden, ruht die zeitgesteuerte Schleife und ermöglicht so die Ausführung anderer Blockdiagrammteile.
Festlegen des Modus einer zeitgesteuerten Schleife
Gelegentlich kann es vorkommen, dass ein Durchlauf einer zeitgesteuerten Schleife später ausgeführt wird, als festgelegt wurde. Der Modus einer zeitgesteuerten Schleife bestimmt, wie die Schleife auf solche Verspätungen reagieren soll. Legen Sie im Abschnitt Aktion für verspätete Iterationen des Dialogfelds Zeitgesteuerte Schleife konfigurieren oder Zeitgesteuerte Schleife mit Rahmen konfigurieren fest, wie eine zeitgesteuerte Schleife auf die verspätete Ausführung einer Iteration reagiert. Der Modus kann auch über den Eingang Modus des Eingangsknotens bestimmt werden.
Folgende Möglichkeiten der Reaktion auf eine verspätete Ausführung einer zeitgesteuerten Schleife stehen zur Verfügung:
- LabVIEW kann die Schleifenausführung an den ursprünglich festgelegten Zeitplan anpassen.
- LabVIEW kann einen neuen Zeitplan festlegen, der sofort wirksam wird.
- Die zeitgesteuerte Schleife kann die verpassten Durchläufe nachholen.
- Die zeitgesteuerte Schleife kann die verpassten Durchläufe auslassen.
Wenn Sie z. B. eine zeitgesteuerte Schleife mit einer Periodendauer von 100 ms und einem Offset von 30 ms erstellen, dann sollte der erste Schleifendurchlauf 30 ms nach dem Start der ersten Timing-Quelle beginnen und jeweils nach 100 ms wiederholt werden, also nach 130 ms, 230 ms, 330 ms und so weiter. Es kann jedoch vorkommen, dass die erste Ausführung der zeitgesteuerten Schleife erst nach 240 ms ausgeführt wird. Da andere Schleifen oder andere Hardware bereits planmäßig ausgeführt werden, können Sie die Schleife an den Ausführungszeitplan der anderen Komponenten anpassen, indem die Schleife den Rückstand schnellstmöglich aufholt. Die nächste Iteration der zeitgesteuerten Schleife wird dann nach 330 ms ausgeführt und anschließend immer nach weiteren 100 ms, also nach 430 ms, 530 ms und so weiter. Wenn die zeitliche Anpassung der zeitgesteuerten Schleife an andere Schleifen oder Hardware nicht wichtig ist, kann die zeitgesteuerte Schleife auch sofort ausgeführt werden, und die aktuelle Zeit wird als Offset verwendet. In diesem Fall werden die nachfolgenden Durchläufe nach 240 ms, 340 ms, 440 ms und so weiter ausgeführt.
Bei der verspäteten Ausführung von Iterationen können Daten verpasst werden, die von Geräten oder anderen Schleifen generiert wurden. Wenn z. B. eine zeitgesteuerte Schleife zwei Iterationen und einige Daten der aktuellen Periode verpasst hat, könnten die Daten für die verpassten Durchläufe in einem Puffer gespeichert werden. Die zeitgesteuerte Schleife kann aber auch so eingestellt werden, dass sie die Verarbeitung der verpassten Daten nachholt, bevor sie sich wieder in den Zeitplan einfügt. Eine zeitgesteuerte Schleife, die verpasste Daten aufarbeitet, kann jedoch einen Jitter-Effekt hervorrufen. Darunter versteht man die Abweichung eines Schleifenzyklus vom vorgesehenen Zeitplan. Wenn die verpassten Daten jedoch nicht mehr verarbeitet werden sollen, kann die Schleife die älteren Daten im Puffer ignorieren und nur die neuesten Daten verarbeiten, wie z. B. die Daten, die bei der nächsten Periode und nachfolgenden Iterationen verfügbar gemacht werden.
Verändern der Modi mit Hilfe des Konfigurationsdialogfelds
Eine zeitgesteuerte Schleife verwirft standardmäßig alle Daten, die während verpasster Iterationen generiert wurden, und passt sich wieder an den ursprünglichen Zeitplan an. Zum Einstellen der Modi zeigt das Symbol für den Eingang Modus des Anschlussknotens ein D für "Verwerfen" ("discard") und ein M für "Beibehalten" ("maintain") an. Um alle Daten zu verarbeiten, die während verpasster oder verspäteter Iterationen generiert wurden, deaktivieren Sie die Option Verpasste Perioden verwerfen im Dialogfeld Zeitgesteuerte Schleife konfigurieren oder Zeitgesteuerte Schleife mit Rahmen konfigurieren. Bei dieser Einstellung zeigt das Symbol für den Eingang Modus des Ausführungsknotens ein P für "Verarbeiten" ("process") an. Soll die Schleife, basierend auf der ersten Iteration, einem neuen Zeitplan folgen, deaktivieren Sie die Option Ursprüngliche Phase erhalten im Dialogfeld Zeitgesteuerte Schleife konfigurieren oder Zeitgesteuerte Schleife mit Rahmen konfigurieren.
Verändern der Modi mit Hilfe des Eingangsknotens
Der Modus einer zeitgesteuerten Schleife wird über den Eingang Modus des Eingangsknotens festgelegt. Klicken Sie zum Erstellen eines Enum-Konstante oder eines Enum-Elements mit der rechten Maustaste auf den Eingang Modus und wählen Sie aus dem Kontextmenü die Option Erstellen»Konstante oder Erstellen»Bedienelement aus. An dieser Konstante oder diesem Bedienelement kann dann ein Modus eingestellt werden.
Programmatisch können Sie den Modus einer zeitgesteuerten Schleife mit dem Eingang Modus des Eingangsknotens ändern oder die Konfiguration aus dem Dialogfeld Schleifenkonfiguration übernehmen. Wenn Sie den aktuellen Modus beibehalten möchten, wählen Sie aus der Enum-Konstante oder dem Enum-Element die Option Keine Änderung aus oder wählen Sie die Option, die für verspätete oder verpasste Iterationen gelten soll.
Im Beispiel-VI "Timed Loop Mode" unter labview\examples\Structures\Timed Loop wird gezeigt, wie der Modus einer zeitgesteuerten Schleife festgelegt wird.