Objektinstanz für relative Verweise per Skript festlegen
- Last UpdatedSep 25, 2024
- 2 minute read
Beim Aufruf der Skriptfunktion ShowGraphic kann festgelegt werden, auf welche Objektinstanz sich relative Verweise im geöffneten Symbol beziehen sollen (dies ist das sog. „owning object“). Absolute Verweise werden von dieser Einstellung nicht berührt. Wird das zu öffnende Symbol selbst durch einen relativen Verweis angegeben, so geschieht dies ebenfalls unabhängig von dieser Einstellung. Der relative Verweis wird in diesem Fall ausgehend von dem Objekt aufgelöst, das als Host für das Skript dient. Wird ShowGraphic beispielsweise mit den Parametern „GraphicName = me.S1“ oder „Obj1.S1“ und „OwningObject = Obj2“ aufgerufen, so bezieht sich die OwningObject-Einstellung nur auf relative Verweise in Grafik S1.
Hierzu ein Beispiel: Ein Projekt enthält die beiden Objektinstanzen „Reaktor_001“ und „Reaktor_002“. Jede der beiden Instanzen enthält die vier benutzerdefinierten Attribute int1, int2, real1 und real2 sowie die Grafik S1.
In der Grafik „Reaktor_001.S1“ werden die folgenden Verweise verwendet:
-
Me.int1 (relativer Verweis)
-
Me.real1 (relativer Verweis)
-
Reaktor_001.int2 (absoluter Verweis)
-
Reaktor_001.real2 (absoluter Verweis)
Wenn Sie nun in Reaktor_001.S1 ein ShowGraphic-Skript für das Symbol „me.S1“ oder „Reaktor_001.S1“ konfigurieren und als Wert des OwningObject-Parameters „Reaktor_002“ angeben, wird bei der Ausführung dieses Skripts zur Laufzeit das Symbol Reaktor_001.S1 geöffnet, wobei die relativen Verweise in dieser Grafik nun jedoch auf „Reaktor_002“ verweisen.
In diesem Fall gilt:
-
Der Verweis auf die zu öffnende Grafik wird immer anhand des Hostobjekts aufgelöst, in diesem Fall „Reaktor_001“.
-
Der Grafikname (Eigenschaft „GraphicName“) kann ein relativer Verweis, ein absoluter Verweis oder der Name einer Grafik im Visualisierungs-Ordner sein. Wenn eine relative Referenz in der GraphicName-Eigenschaft verwendet wird, wird die Grafik immer nur von der Instanz des Host-Automatisierungsobjekts, hier „Reaktor_001“, aus geöffnet. Bei einem absoluten Verweis oder dem Namen einer Grafik aus dem Visualisierungs-Ordner (z. B. „Reaktor_001.S1“ oder „S1“) wird die Grafik unter diesem Namen gesucht.
-
Die relativen Verweise „Me.int1“ und „Me.real1“ werden auf „Reaktor_002“ umgeleitet.
-
Die absoluten Verweise „Reaktor_001.int2“ und „Reaktor_001.real2“ beziehen sich weiter auf „Reaktor_001“ und werden nicht auf „Reaktor_002“ umgeleitet.
Relative Verweise (wie me.int1), die bei der Überschreibung von benutzerdefinierten Eigenschaften bei eingebetteten Grafiken verwendet werden, würden sich auf das Inhaber-Objekt der eingebetteten Grafik auflösen. Wohingegen die relativen Verweise, die in Container-Skripten verwendet werden, sich auf das besitzende Objekt der Grafik, in der das Skript konfiguriert ist, auflösen würden.