Deine letzten beiden Beiträge.. irgendwie schaffe ich es nicht, zu verstehen, was Du denn da gemacht hast..
If SmartTags("m20.0") = False Then
SmartTags("M20.2") = True
Else SmartTags("M20.2") = False
End If
Das ist bei mir ein Netzwerk im SPS-Programm.
Deine SPS wird mit VBS programmiert???
Ich glaube eher das ist Dein Skript was Du in WinCCflex geschrieben hast?
Weißt Du, daß die Skripte in der WinCCflex Runtime auf dem PC ausgeführt werden und NICHT in der SPS?
Und eigentlich schreibt man das so, dann ist es gleich viel verständlicher:
Code:
SmartTags("M20.2") = Not SmartTags("m20.0")
Wenn der M20.0 False ist, soll M20.2 true werden. Im WinCC flex habe ich eine Schaltfläche, wo das zugehörende Skript gestartet wird. Leider wird M20.2 nicht true.
Vielleicht weil die Variable SmartTags("m20.0") nie False sondern dauernd True ist?
Habe in WinCC ein Rechteck eingefügt und eine Sichtbarkeit angelegt. Dort sieht man, dass sich das Bit M20.2 ändert, also das Rechteck sichtbar wird, wenn Bit Null ist, jedoch sieht man das im SPS-programm nicht. Ich habe gesagt, das Rechteck soll sichtbar sein, wenn M20.2 false ist. Er wird sichtbar und dann wieder unsichtbar. Na auf jeden Fall tut sich was. Nach einer kurzen Änderung geht er wieder in seinen Anfangszustand zurück. Hat das etwas mit dem Zyklus zu tun?
Kurz gesagt: er macht 1 sekunde was im Script steht, dann geht er auf seine Anfangslage zurück. Warum macht er das, warum bleibt er nicht in diesem Zustand?
WANN wird das Rechteck sichtbar? Periodisch wechselnd oder einmalig nach einem Klick in der Runtime? Nach Aufruf des Skriptes? Mir scheint, Dein Klick ruft das Skript auf, dieses weist der Variable "M20.2" den Wert False zu - das Rechteck wird sichtbar - die RT schreibt den Wert in die SPS, wo die SPS-Variable aber dauernd auf True geschrieben wird - die RT liest die Variable und das Rechteck wird wieder unsichtbar... oder das Skript wird noch einmal aufgerufen und weist der Variable "M20.2" wieder True zu???
Das ist aber pure Spekulation, ich kann aus Deinen Angaben leider nicht entnehmen, was Du tatsächlich programmiert hast..
Schreib mal etwas ausführlicher.
Was soll Dein Skript eigentlich tun? Den M20.2 invertieren (togglen)?
Wann wird das Skript ausgeführt? Bei Klick auf eine Schaltfläche oder auch bei Wertänderung einer Variable?
Was hat es mit dem M20.0 auf sich - ist das ein Tippfehler? Oder warum machst Du diese Zuweisung in einem Skript und nicht in dem SPS-Programm?
Dein SmartTags("m20.0") ist eine Variable in WinCCflex, die mit der SPS-Adresse M20.0 verbunden ist?
Dein SmartTags("M20.2") ist eine Variable in WinCCflex, die mit der SPS-Adresse M20.2 verbunden ist?
Was passiert mit M20.0 und M20.2 in der SPS? Werden die da irgendwie beschrieben?
Wird die Variable "m20.0" irgendwo auf dem Bild verwendet wo Du die Schaltfläche zum Aufruf des Skriptes hast? Der Wert von Variablen wird von WinCCflex nur aktualisiert, wenn die Variable verwendet wird oder wenn sie auf "fortlaufend lesen" eingestellt ist.
Besteht überhaupt eine Verbindung der WinCCflex Runtime zur SPS?
Was hast Du für eine SPS?
Warum willst Du Skripte benutzen - gibt es eine reale Notwendigkeit dafür? Welche?
Harald