Wiederverwendung und dynamische Auswahl
Der Sinn eines Subflows ist, dass er einmal geschrieben und vielfach verwendet wird. Diese Seite behandelt die drei Formen, in denen diese Wiederverwendung in der Praxis auftritt.
Wiederverwendung über Flows hinweg
Derselbe Subflow kann in jedem Flow verwendet werden, und innerhalb desselben Flows auch mehrfach. Es gibt genau eine Definition: Eine Änderung am Subflow verändert das Verhalten jeder Subflow-Node, die ihn verwendet.
Das ist Vorteil und Risiko in einem Satz. Prüfen Sie vor der Änderung eines gemeinsam genutzten Subflows, welche Flows ihn aufrufen — eine Korrektur für eine Station erreicht jede Station, die denselben Subflow verwendet.
Einen Subflow zur Laufzeit auswählen
Anstatt einen Subflow an der Node festzulegen, kann eine Subflow-Node eine String-Variable mit der UUID eines Subflows verwenden. Welcher Subflow läuft, wird dann während der Ausführung entschieden.
Die UUID eines Subflows steht in der URL, während Sie ihn im Subflow-Editor geöffnet haben:
http://192.168.3.1/subflow/0994c0e2-f43b-438f-87de-c3fcf1fd68cc/
Setzen Sie die Variable mit einer Variable-Node oder aus einem Dashboard mit einem Set Variable- oder Generic Button-Widget.
So bedient ein einzelner Flow mehrere Produktvarianten: ein Subflow pro Variante, und die Bedienperson wählt die Variante auf einem Dashboard.
Wird der Subflow über eine Variable gewählt, kann RobFlow nicht im Voraus wissen, wie viele Ausgänge er haben wird — Sie müssen die Anzahl der Ausgänge an der Subflow-Node daher selbst festlegen. Wählen Sie genügend Ausgänge, um jeden Subflow abzudecken, den die Variable benennen kann: Ein Subflow, der Ausgang 3 auslöst, hat an einer Node mit nur zwei Ausgängen keine Fortsetzung.
Eine Variable mit einer UUID ist opak — nichts prüft, ob die Zeichenkette noch einen existierenden Subflow benennt. Wenn Sie einen Subflow löschen, suchen Sie vorher nach seiner UUID, bevor Sie annehmen, dass ihn nichts verwendet hat.
Verschachtelung
Eine Subflow-Node ist nur im Haupt-Flow verfügbar, ein Subflow kann daher keinen weiteren Subflow aufrufen. Die Komposition findet im Haupt-Flow statt: Reihen Sie dort mehrere Subflow-Nodes aneinander, statt zu verschachteln.
Im Gegenzug bleibt die Ausführung leicht nachvollziehbar — der Haupt-Flow zeigt jeden Subflow, den er ausführen wird, in der richtigen Reihenfolge auf einer Fläche.
Einen Subflow exportieren
Beim Export eines Subflows werden nicht nur der Node-Graph, sondern auch die abhängigen Entitäten mitgeführt:
- die Variablen, auf die er verweist,
- seine Modbus/TCP-Verbindungen,
- seine RobVision-Geräteverbindungen,
- die verwendeten Werkzeugkonfigurationen.
Beim Import lösen Sie Kollisionen mit dem auf, was auf dem Zielroboter bereits existiert, sodass der Import eines gemeinsam genutzten Subflows die eigene Konfiguration dieses Roboters nicht stillschweigend überschreibt.
Das Paket führt Verbindungsdefinitionen mit, keine Erreichbarkeit. Prüfen Sie nach dem Import auf einer anderen Control Unit die Modbus- und RobVision-Verbindungen unter Roboter-Konfiguration, bevor Sie einen Flow starten, der sie verwendet.
Wann ein Subflow sinnvoll ist
Greifen Sie zu einem Subflow, wenn:
- dieselbe Abfolge an mehr als einer Stelle vorkommt — ein Greifer-Handshake zum Öffnen und Schließen, eine Routine zum Anfahren und Prüfen der Home-Position;
- ein Abschnitt eines Flows so groß geworden ist, dass er die Gesamtstruktur verdeckt;
- ein Verhalten je Produkt oder Station variieren soll, ausgewählt über eine Variable.
Greifen Sie nicht zu einem Subflow, wenn die Abfolge parallel zu etwas anderem laufen muss — das muss im Haupt-Flow bleiben. Für eine rein visuelle Gruppierung ist möglicherweise eine Documentation Group oder eine Reference Group das, was Sie eigentlich wollen.