Deaktivierungsstrukturen: Unterbinden der Programmcode-Ausführung
- Aktualisiert2025-08-27
- 4 Minute(n) Lesezeit
Eine Deaktivierungsstruktur enthält mehrere Unterdiagramme, von denen eines kompiliert und ausgeführt wird. Das auszuführende Unterdiagramm wird zum Kompilierungszeitpunkt bestimmt. Der Blockdiagrammabschnitt der inaktiven Unterdiagramme arbeitet während der Ausführung nicht und wird nicht kompiliert. Mit Deaktivierungsstrukturen können bestimmte Blockdiagrammabschnitte deaktiviert werden.
Bedingte Deaktivierungsstruktur
Eine bedingte Deaktivierungsstruktur (siehe die nachfolgende Abbildung) enthält Unterdiagramme bzw. Cases, von denen je nach Konfiguration der Ausführungsbedingungen immer einer ausgeführt wird. Bei der Kompilierung ignoriert LabVIEW den Inhalt der inaktiven Unterdiagramme der bedingten Deaktivierungsstruktur.
Mit Hilfe von bedingten Deaktivierungsstrukturen lassen sich Bedingungen festlegen, unter denen bestimmte Blockdiagrammabschnitte kompiliert und ausgeführt werden. Wenn z. B. ein VI-Abschnitt nur für ein bestimmtes Zielsystem gilt, können Sie den Abschnitt in eine bedingte Deaktivierungsstruktur einfügen und diese für die Ausführung auf dem gewünschten Zielsystem konfigurieren. Mögliche Zielsysteme sind Systeme mit Windows, Mac OS, UNIX und FPGA.
Bei der Umwandlung einer bedingten Deaktivierungsstruktur in eine Diagrammdeaktivierungsstruktur oder Typspezialisierungsstruktur werden die Bedingungen der bedingten Deaktivierungsstruktur nicht in die Diagrammdeaktivierungsstruktur übernommen.
Ein Beispiel für die Verwendung einer bedingten Deaktivierungsstruktur finden Sie im VI "Conditional Disable Structure.vi" im Verzeichnis labview\examples\Structures\Disable Structures.
Diagrammdeaktivierungsstruktur
Bei Diagrammdeaktivierungsstrukturen (siehe Abbildung) werden alle deaktivierten Unterdiagramme beim Kompilieren ignoriert.
Wenn ein bestimmter Blockdiagrammabschnitt deaktiviert werden soll, so dass er während der Laufzeit nicht kompiliert wird, ist eine Diagrammdeaktivierungsstruktur zu verwenden. Eine Diagrammdeaktivierungsstruktur eignet sich als gutes Hilfsmittel zur Fehlersuche, da Sie dadurch Blockdiagrammteile deaktivieren und ersetzen und dann das VI kompilieren können, ohne den betreffenden Blockdiagrammabschnitt löschen zu müssen.
Ein Beispiel für die Verwendung von Diagrammdeaktivierungsstrukturen finden Sie im VI "Diagram Disable Structure" im Verzeichnis labview\examples\Structures\Disable Structures.
Typspezialisierungsstruktur
Die Typspezialisierungsstruktur (vgl. folgende Abbildung) besteht aus einem oder mehreren Unterdiagrammen, von denen je nach Reihenfolge und Ergebnissen der Kompilierung eines kompiliert und ausgeführt wird. Bei der Kompilierung und Ausführung ignoriert LabVIEW den Inhalt der inaktiven Unterdiagramme der Typspezialisierungsstruktur.
Verwenden Sie die Typspezialisierungsstruktur, um Blockdiagrammabschnitte in einem datentypflexiblen VI (*.vim) für bestimmte Datentypen anzupassen oder ein datentypflexibles VI zu zwingen, nur einen Teil der akzeptablen Datentypen anzunehmen. Sie können beispielsweise die Typspezialisierungsstruktur verwenden, um ein datentypflexibles VI so zu konfigurieren, dass es unterschiedlich arbeitet, wenn die Eingangsdaten eine Ganzzahl oder ein Array von Ganzzahlen ist, damit das datentypflexible VI für beide Fälle erwartungsgemäß funktioniert.
Ein Beispiel für die Verwendung von Typspezialisierungsstrukturen finden Sie unter labview\examples\Malleable VIs\Type Specialization Structure\Malleable VIs - Type Specialization Structure.lvproj.
Benutzerdefinierte Objekte in Deaktivierungsstrukturen
Wenn ein VI mit benutzerdefinierten Komponenten wie SubVIs oder Typdefinitionen in das deaktivierte oder inaktive Unterdiagramm einer Deaktivierungsstruktur oder Typspezialisierungsstruktur geladen wird, werden diese Komponenten nicht in den Speicher übernommen. Wenn Sie jedoch zum Blockdiagramm des VIs wechseln, werden alle nicht gefundenen Objekte mit einem Fragezeichen angezeigt. Das VI ist nicht fehlerhaft, da LabVIEW die betreffenden Objekte beim Kompilieren und Ausführen des VIs ausschließt. Beim Aktivieren des Unterdiagramms, in dem sich das SubVI befindet, sucht LabVIEW auch nicht automatisch nach den fehlenden Objekten.
Wenn LabVIEW nach fehlenden SubVIs in einer Diagrammdeaktivierungsstruktur suchen soll, aktivieren das Unterdiagramm, in dem das SubVI fehlt, und speichern Sie das Aufrufer-VI des SubVIs. Wenn Sie das Aufrufer-VI des SubVIs beim nächsten Mal öffnen, sucht LabVIEW automatisch nach dem SubVI. Anschließend können Sie das Unterdiagramm, in dem sich das SubVI befindet, wieder deaktivieren.
|
Hinweis Auch inaktive Unterdiagramme werden auf Fehler geprüft. Fehler innerhalb inaktiver Unterdiagramme haben jedoch keinen Einfluss auf die Kompilierung und Ausführung des VIs. |
|
Hinweis Genau wie bei Case-Strukturen können auch bei Deaktivierungsstrukturen Tunnel verwendet werden. Per Voreinstellung müssen die Ausgangstunnel von Deaktivierungsstrukturen jedoch nicht in jedem Case verbunden werden. Alle unverbundenen Tunnel verwenden den Standardwert als Tunneldatentyp. Sie können die Tunnel so konfigurieren, dass die Eingangs- und Ausgangstunnel in einem solchen Fall automatisch verbunden werden. |
Verhalten von Deaktivierungsstrukturen in erzeugten Anwendungen
Durch Deaktivierungsstrukturen wird bestimmt, welche Codeabschnitte in einer erzeugten Anwendung enthalten sein sollen. Wenn ein VI lediglich in einem deaktivierten Diagrammabschnitt aufgerufen wird, wird es nicht in die Anwendung aufgenommen. Die Bedingung der bedingten Deaktivierungsstruktur und das Kompilierergebnis der Typspezialisierungsstruktur werden nach dem Erzeugen einer Anwendung nicht noch einmal von LabVIEW überprüft.