ToolBlockReferenceTool

Mit dem ToolBlockReferenceTool ist es möglich, den gleichen Programmablauf an verschiedenen Stellen wiederzuverwenden. Dazu wird innerhalb des Projektordners (Beispiel für Projekt P0XXXX: C:\GEFASOFT\Viper.NET_P0XXXX\Data\ReferenceToolBlocks) eine Vpp-Datei angelegt, die den Ablauf als CogToolBlock enthält. Mithilfe des ToolBlockReferenceTool kann diese Vpp in jedem BV-Job geladen und beliebig oft verwendet werden. Werden Änderungen innerhalb einer Vpp vorgenommen, kann der Benutzer über eine Abfrage über eine MessageBox entscheiden, ob alle ToolBlockReferenceTools, die dieselbe Vpp nutzen, neu geladen werden sollen.

../../../_images/ReferenceToolBlock.png
  1. CogToolBlock Editor: Fenster, in dem der Programmablauf implementiert wird und in dem Bilder visualisiert werden

  2. Status des Toolblocks: Anzeige, welche Vpp erfolgreich geladen wurde, und ob sie an anderer Stelle bereits verwendet wird:

    • rot: keine Datei geladen / Datei nicht vorhanden

    • grün: Datei erfolgreich geladen und nur an dieser Stelle verwendet

    • gelb: Datei erfolgreich geladen und mehrfach verwendet

  3. Synchronize in/out params: Um neu erstellte Inputs und Outputs beim Tool als Terminals anzeigen zu lassen, kann diese Schaltfläche verwendet werden.

  4. Save Reference ToolBlock: Dient zum Speichern der Vpp. Änderungen werden in allen erstellten Referenzen übernommen.

  5. Reload: Wurde eine Vpp an anderer Stelle verändert, kann das Tool hier aktualisiert werden

  6. Reference mode: Siehe ReferenceMode

Innerhalb des CogToolBlock Editors wird der Programmablauf, auf welchen man durch das ReferenceTool referenzieren können soll, implementiert. Es können Input- und Output-Terminals hinzugefügt werden, welche automatisch auch in den entsprechenden Toolblocks aktualisiert werden. Das Synchronisieren kann auch mit Synchronize in/out params erzwungen werden. Andere ToolblocksReferenceTools, die auf die gleiche Vpp verweisen, werden erst nach dem Speichern der Vpp aktualisiert. Werden in einem ReferenceToolblock Inputs oder Outputs gelöscht, die aber als Terminals verknüpft wurden, wird dies im Terminal-Namen angezeigt (Hinzufügen von MISSING_INNER_TERMINAL vor dem Terminal-Namen).

Hinweis

Der ToolBlock InputBlock kann in einem ReferenceToolBlock nicht verwendet werden.

Laden einer Vpp-Datei

../../../_images/ReferenceToolBlock-vpps.png
  1. Directory: Auswahl des Pfades, in dem sich die gewünschte Vpp befindet.

  2. Apply: Anwenden einer Änderung des Pfades

  3. Aktualisierungs-Symbol: Aktualisierung der Explorer-Struktur (notwendig, wenn eine Vpp manuell im Windows-Explorer hinzugefügt oder gelöscht wurde)

  4. Aktueller Pfad: Anzeige des aktuellen Pfades

  5. Vpp-Übersicht: Anzeige aller Vpp’s, die sich im aktuellen Pfad befinden. Mit dem Haken kann eine gewünschte Vpp zur Referenzierung ausgewählt werden.

  6. Plus-Symbol (links): An der ausgewählten Position wird ein Ordner hinzugefügt (Siehe Grafik unten)

  7. Minus-Symbol (links): Der ausgewählte Ordner wird gelöscht.

  8. Plus-Symbol (rechts): Hinzufügen einer neuen Vpp (Siehe Grafik unten)

  9. Minus-Symbol (rechts): Löschen der ausgewählten Vpp

Hinzufügen einer Vpp

../../../_images/ReferenceToolBlock-addVpp.png
  1. Name: Hier muss der neue Name der Vpp ausgewählt werden

  2. Directory: Anzeige des aktuellen Pfades, in dem die Vpp gespeichert wird

  3. Copy From: Hier kann ausgewählt werden, ob eine vorhandene Vpp kopiert werden soll

ReferenceMode

Ab Viper.NET 6.5.3 kann der referenzierte CogToolBlock entweder Exclusive (wie bisher) oder als sogenannte SharedInstance geladen werden.

Exclusive

Jedes ToolBlockReferenceTool lädt den CogToolBlock neu aus der VPP-Datei. Die einzelnen Tools sind also voneinander unabhängig und können auch parallel ausgeführt werden.

SharedInstance

Alle ToolBlockReferenceTools im SharedInstance-Modus teilen dieselbe Instanz (für ein VPP).

Der SharedInstance-Mode wurde eingeführt, um in bestimmten Konstellationen die Ladezeiten für Jobs mit vielen ähnlichen ToolGroupItems zu verringern.

Warnung

Der SharedInstance-Modus birgt einige Gefahren und Fallstricke. Bitte nur nach eingehender Lektüre des folgenden Absatzes verwenden!

Für ToolBlockReferenceTools im SharedInstance-Mode, die dieselbe VPP-Datei referenzieren, gelten folgende Hinweise:

  • Eine SharedInstance darf nicht in mehreren Jobs verwendet werden.

  • Eine SharedInstance darf nicht mehrfach in einem ToolGroupItem verwendet werden.

  • Die einzige zulässige Anwendung ist die Verwendung jeweils genau einer SharedInstance in mehreren ToolGroupItems desselben Jobs.

  • Fehlkonfiguration wird deshalb soweit möglich bei der Ausführung erkannt und unterbunden, d.h. es wird ein RunError erzeugt wenn einer der vorigen Fehlerfälle erkannt wird.

  • Die Ergebnisse des referenzierten CogToolBlock, stimmen nicht mit der letzten Ausführung des ToolGroupItems überein, wenn der CogToolBlock inzwischen anderweitig verwendet wurde.

  • Um weitere Zeit zu sparen, werden die im SharedInstance-Mode geladenen CogToolBlock-Instanzen während der Typumschaltung nicht entladen, sondern wenn möglich wiederverwendet. Das bedeutet wiederum, dass temporäre Änderungen an einer SharedInstance nicht durch ein Neuladen desselben Typen rückgängig gemacht werden. Die SharedInstance muss in diesem Fall explizit über den Button Reload im Tool-Editor neu geladen werden.

Warnung

Die Prüfungen können über Shared interference handling deaktiviert werden. Es muss dann übergeordnet, z.B. in der SPS, sichergestellt werden, dass eine parallele Ausführung nicht möglich ist.

Verwendung auf eigene Gefahr!