Nutzungskriterien für Sequenzstrukturen
- Aktualisiert2025-08-27
- 2 Minute(n) Lesezeit
Sequenzstrukturen stellen zwar die Ausführungsreihenfolge sicher, verhindern aber parallele Operationen. So könnten dann beispielsweise asynchrone Operationen, bei denen I/O-Geräte wie PXI-, GPIB- oder DAQ-Karten oder serielle Ports verwendet werden, nicht gleichlaufend mit anderen Operationen ausgeführt werden.
In diesen Fällen kann sich die sonst übliche parallele Verarbeitung von Programmteilen in LabVIEW als nützlich erweisen. Die übermäßige Verwendung von Sequenzstrukturen lässt sich folgendermaßen vermeiden:
- Um die Ausführungsreihenfolge zu steuern, empfiehlt es sich, zwischen Knoten eine Datenabhängigkeit herzustellen. Zum Festlegen der Ausführungsreihenfolge können Sie z. B. Durchflussparameter wie die Fehler-I/O verwenden.
- Verwenden Sie eine Case-Struktur und eine While-Schleife. Sie können kein Anzeigeelement für die Werte von mehreren Rahmen der Sequenzstruktur verwenden, wie in der folgenden Abbildung dargestellt.
Im vorherigen Blockdiagramm ist das VI Teil einer Testanwendung und enthält ein Status-Anzeigeelement, in dem der Name des laufenden Tests angezeigt wird. Wenn für jeden Test ein SubVI vorhanden ist, das von einem anderen Rahmen aus aufgerufen wird, kann das Anzeigeelement nicht den Wert jedes Rahmens anzeigen und es entsteht eine ungültige Verbindung in der gestapelten Sequenzstruktur. Da alle Rahmen einer Sequenz-Struktur ausgeführt werden, bevor die Daten die Struktur verlassen, kann das Status-Anzeigeelement nur den Wert jeweils eines Rahmens ausgeben. Daher sollten für eine solche Aufgabe stattdessen eine Case-Struktur und eine While-Schleife eingesetzt werden, wie im folgenden Blockdiagramm dargestellt.
Jeder Case in einer Case-Struktur entspricht einem Rahmen der Sequenzstruktur. Mit jedem Durchlauf der While-Schleife wird der nächste Case ausgeführt. Das Status-Anzeigeelement zeigt bei jedem Case den Status des VIs an. Da die Daten die Struktur verlassen, nachdem jeder Case ausgeführt wurde, gibt das Status-Anzeigeelement den Wert des Cases vor demjenigen Case aus, der das entsprechende SubVI aufruft. Anders als bei Sequenzstrukturen können bei Case-Strukturen von jedem Case aus Daten ausgegeben werden, mit denen die While-Schleife beendet werden kann. Wenn beispielsweise beim Ausführen des ersten Tests ein Fehler auftritt, kann die Case-Struktur an den Bedingungsanschluss den Wert FALSE übergeben, um die Schleife zu beenden. Bei einer Sequenzstruktur müssten auch im Fehlerfall alle Rahmen ausgeführt werden.