-> Hier kostenlos registrieren
Hallo,
Ich möchte gerne Objekteigenschaften dynamisch über ein VBScript verändern. Konkret geht es um die Bedienbarkeit von Schaltflächen, die sich aber auf unterschiedlichen Bildern befinden. Diesen soll, wenn ein emergency Switch aktiviert ist, die Bedienbarkeit entzogen werden. Und wenn er nicht aktiviert ist, sollen sie Bedienbar sein.
Gespeichert wird der Zustand des Emergency Switches in einer PLC-Variablen. Der Button befindet sich in der Vorlage für alle Bilder (ist also auf allen Seiten sichtbar).
Wenn sich der Zustand des Switches (Eigenschaften -> Ereignisse -> Wertänderungen) ändert oder wenn ich eine neue Seite lade (Eigenschaften -> Ereignisse -> aufgebaut) soll also das Skript aufgerufen werden und der Zustand des Switches ausgelesen und die Bedienbarkeit gesteuert werden.
Das Script sieht aus dem Kopf (habe es gerade nicht vor mir liegen)
Die Probleme:
1. Die Aktualisierung beim Seitenwechsel funktioniert nicht. Wenn die Knöpfe einen vom Ausgangszustand veränderten Wert haben, verlieren sie ihn nach dem Seitenwechsel. Das obige Vorgehen entspricht allerdings dem im Siemens Support beschriebenen:
support.industry.siemens.com
2. Was noch ein Hinweis darauf sein könnte, worin der Fehler liegen könnte: das Verhalten der Knöpfe ist genau invertiert. D.h. Wenn
, also der Notschalter aktiviert ist, ist ebenfalls
. Wobei es ja genau andersherum sein sollte (deswegen das
im Script. Nehme ich das allerdings weg, ist das Verhalten genau andersherum.
Irgendwie stehe ich auf dem Schlauch und weiß nicht, wo ich suchen soll.
Projektiert ist das Ganze in TIA Portal v15.1. Laufen tut es auf einem Open Controller der ersten Generation WinCC RT Advanced v15.1
Danke für eure Hilfe.
Ich möchte gerne Objekteigenschaften dynamisch über ein VBScript verändern. Konkret geht es um die Bedienbarkeit von Schaltflächen, die sich aber auf unterschiedlichen Bildern befinden. Diesen soll, wenn ein emergency Switch aktiviert ist, die Bedienbarkeit entzogen werden. Und wenn er nicht aktiviert ist, sollen sie Bedienbar sein.
Gespeichert wird der Zustand des Emergency Switches in einer PLC-Variablen. Der Button befindet sich in der Vorlage für alle Bilder (ist also auf allen Seiten sichtbar).
Wenn sich der Zustand des Switches (Eigenschaften -> Ereignisse -> Wertänderungen) ändert oder wenn ich eine neue Seite lade (Eigenschaften -> Ereignisse -> aufgebaut) soll also das Skript aufgerufen werden und der Zustand des Switches ausgelesen und die Bedienbarkeit gesteuert werden.
Das Script sieht aus dem Kopf (habe es gerade nicht vor mir liegen)
Code:
Sub Bedienbarkeit()
Dim operable
operable = Not Smarttags(“emergencySwitch”)
‘Buttons on screen1
Set objButton1 = HmiRuntime.Screens(“Screen1”).screenItems(“Button1”)
objButton1.Enable = operable
Set objButton2 = HmiRuntime.Screens(“Screen1”).screenItems(“Button2”)
objButton2.enable = operable
‘Buttons on screen2
Set objButton3 = HmiRuntime.Screens(“Screen2”).screenItems(“Button3”)
objButton3.enable = operable
Set objButton4 = HmiRuntime.Screens(“Screen2”).screenItems(“Button4”)
objButton4.enable = operable
End Sub
Die Probleme:
1. Die Aktualisierung beim Seitenwechsel funktioniert nicht. Wenn die Knöpfe einen vom Ausgangszustand veränderten Wert haben, verlieren sie ihn nach dem Seitenwechsel. Das obige Vorgehen entspricht allerdings dem im Siemens Support beschriebenen:
SIOS
2. Was noch ein Hinweis darauf sein könnte, worin der Fehler liegen könnte: das Verhalten der Knöpfe ist genau invertiert. D.h. Wenn
Code:
Smarttags(“emergencySwitch”) = True
Code:
enable = True
Code:
Not
Irgendwie stehe ich auf dem Schlauch und weiß nicht, wo ich suchen soll.
Projektiert ist das Ganze in TIA Portal v15.1. Laufen tut es auf einem Open Controller der ersten Generation WinCC RT Advanced v15.1
Danke für eure Hilfe.