WinCC Variable aus Dynamic Dialog in Skript

Garog

Level-1
Beiträge
197
Reaktionspunkte
32
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo,

ich möchte einen Button erstellen, welcher mit einer SPS Variable verbunden ist.
Der Button soll die Variable beim Mausklicken invertieren und je nach Status der Variable den Text vom Button auf true = "Ein" oder false ="Aus" setzen.
Zusätzlich soll noch die Hintergrundfarbe auf true = grün bzw. false = weiß angepasst werden.

Nun möchte ich es vermeiden eine Variable drei mal zu verknüpfen. Dazu kommt noch das die Invertierfunktion (meines bescheidenen Wissens nach) über ein C- (oder VBS) Skript gelöst werden muss.
Nun möchte ich aber nicht für 180 Buttons drei mal die Variable verbinden und auch noch jedesmal in einem Skript eine Anpassung machen.

Mein Gedanke war nun das ich den Dynamic Dialog bei der Schrift.Text einmal ausführe und dort die Variable auswähle.
Bei der Hintergrundfarbe und dem Mausklick möchte ich nun einfach die Variable welche ich vorher verwendet habe "auslesen" und entsprechend nutzen.

Es müsste also irgendwas in der Art wie
"thisObject.Text.Dynamic.getVariable"
geben. Leider finde ich aber nichts im www dazu, wie ich an die im Dynamic Dialog genutzte Variable komme innerhalb eines Skripts
Mein Wissen dazu ist recht frisch und noch sehr beschränkt.
Ist der Lösungsweg vielleicht auch falsch gewählt ?
Ich würde mich über ein paar Skriptideen freuen.

Vielen Dank
 
Das ist aber nunmal so. Aber wenn du einen funktionierenden Button hast, kannst du diesen duplizieren und die Variablenanbindung einfach umverdrahten (suchen&ersetzen). Wenn du die Variablenverknüpfungen in einem C-Skript in dem dafür vorgesehenen Bereich für die Tag-Sektion (#define ...) vorgenommen hast, werden diese auch korrekt ersetzt.

Alternativ kannst du dir aus dem Button mit deiner Spezial-Funktion auch ein eigenes Faceplate erstellen. Wenn du doch mal was an deinem Button ändern willst, änderst du das Faceplate und alle Instanzen werden entsprechend angepasst.
 
Danke für die Antworten.

Beides aber leider nicht das was ich mir erhofft hatte...
Komme ich in einem C-Skript den irgendwie an die Expression aus dem Dynamic Dialog ?
 
Du kannst die verschaltete Variable eines Objekts / Eigenschaft mit der C-Funktion GetLink() herausfinden.

Für das was du vorhast würde das aber wohl keiner machen, aber du musst es wissen.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Wieso sollte das so keiner machen ?
So würde ich eine Reihe Projektfunktionen einfach an den Buttons angeben, bei der Farbe, beim Mausklick und wo noch so benötigt.
In den Funktionen lasse ich dann einfach die verbundene Variable von z.B. der Hintergrundfarbe holen.
So brauche ich nur einmal, ganz schnell, jeweils eine Variable zuweisen und der Rest der Arbeiten ist erledigt anstelle da jedem Element alles einzeln hinzuzufügen und dann mit suchen und ersetzen alles wieder anzupacken.. das ist ja.. .... ???
Ich werde mir das GetLink mal anschauen, vielen Dank soweit :)
 
Meinst du mit der Zeit den Aufwand um die Funktion zu erstellen oder das abarbeiten vom WinCC selbst ?
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Meinst du mit der Zeit den Aufwand um die Funktion zu erstellen oder das abarbeiten vom WinCC selbst ?
WinCC würde zur Laufzeit jedesmal die vielleicht zwanzigfache (oder mehr?) Zeit brauchen, um zu ermitteln, welche Variable ausgewertet werden soll und welchen Zustand die Variable hat, statt einfach die direkt angegebene Variable abzufragen.

"Umverdrahten" ist nur einmalig nötig während der Projektierung, und da ist es unerheblich, ob der Vorgang 0,00001 Sekunden oder 1 Sekunde dauert.

Harald
 
Zurück
Oben