WinCC flexible: Ereignisse einer Schaltfläche mit Skript ändern?

MHA

Level-1
Beiträge
2
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo zusammen,

ich habe in diesem Forum schon ein Weilchen gesucht. Leider überschneiden sich meine Suchbegriffe auch mit anderen Fragestellungen, darum frage ich hier mal direkt:

In WinCC flexible 2008 möchte ich in einem Skript, welches an beliebiger Stelle aufgerufen wird, die Einstellungen für das Ereignis "Klicken" einer Schaltfläche "S" ändern. Zum Beispiel soll statt wie bisher "BildA" ab dem nächsten Klick auf dieselbe Schaltfläche "BildB" aktiviert werden.

Ist obiges überhaupt möglich mit VBS und WinCC flexible? Mir ist klar, wie ich die Änderung der Eigenschaften durch z.B. HmiRuntime.Screens("Screen1").ScreenItems("Textfeld1") vornehme. Nur die Änderung der Ereignisse ist mir unklar.

Hat jemand von euch einen Rat für mich?

Grüße,
MHA

SW: WinCC flexible 2008
HMI: Mobile Panel 277 10"
 
An die Ereignisse kommst du so nicht dran. Du könntest aber mit der Taste nicht das Bild direkt sondern an Stelle dessen ein Script aufrufen in dem du dann an Hand einer Hilfsvariablen das Ziel änderst - also IF Hilfs_Variable = 1 then "Bild_1 aufrufen" ... etc.
 
Eine weitere Möglichkeit ist die Option AktiviereBildMitNummer, die Nummer kann eine Variable sein, nun kannst dieser Variable in deinem Script die gewünschte Bildnummer zuweisen und kommst mit Klick auf die Schaltfläche auf das gewünschte Bild.
MfG Gordrin
 
Vielen Dank für all eure Antworten. Das Ereignis "Aktiviere Bild" war nur als Beispiel gewählt, da es mir um x-beliebige Ereignisse geht. Die Aussage von Lupo, dass es einfach über VBS nicht funktioniert, hilft mir schon. Dann werde ich für meine konkrete Aufgabe eine andere Möglichkeit suchen, vermutlich mit einem weiteren Skript. Es wäre aber "schöner" gewesen, die Ereignisse direkt zu ändern.

Grüße,
MHA
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Ich würde dises Auswahl wie schon vorher erwähnt über ein skript laufen lassen. Allerdings würd ich mit der Funktion "Select Case" Arbeiten. ist etwas sauberer und übersichtlicher als die "IF then Else" Funktion bei größeren Anforderungen.
Vielleicht hilft dir das ja weiter. Programmieraufwand bei mir waren ca. 5min


Kleines BSp.: Mit jedem Klick auf den Button wird das Skript durchlaufen, und eine andere funktion ausgeführt.

' // Aktionsnummer=Int (Hilfsvariable)
' // Kreis1-3 =Bool (Nur zur Anzeige Von einer Farbänderung, kann aber auch ein Bildaufruf o.ä. sein.
)

SmartTags("Aktionsnummer")= SmartTags("Aktionsnummer")+ 1


Select Case SmartTags("Aktionsnummer")

Case 1
SmartTags("Kreis1")=True
SmartTags("Kreis3")=False

Case 2
SmartTags("Kreis2")=True
SmartTags("Kreis1")=False

Case 3
SmartTags("Kreis3")=True
SmartTags("Kreis2")=False

Case Else
SmartTags("Kreis1")=False
SmartTags("Kreis2")=False
SmartTags("Kreis3")=False
SmartTags("Aktionsnummer")= 0

End Select
 
Zurück
Oben