TIA VBS verzögern bzw anhalten

PHRE86

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

ich führe zurzeit mit einem Button klick ein VBS Script aus. Ich würde es gerne so haben das dieser Script verzögert aufgerufen wird (ca 2s) bzw bei erneuten klick auf den Button der Script abgebrochen wird. Denn wenn ich jetzt schnell weiterklicke wird jedesmal der Script aufgerufen und es lahmt dadurch sehr er soll daher erst aufgerufen werden wenn ich das weiterschalten unterbreche. Ich hoffe ich habe mich verständlich ausgedrückt.

Ich weiß leider nicht so richtig wie ich dort ansetzen soll.

Ich arbeite mit WinCC Professional.

Gruß
 
Unterbrechen ist nicht wirklich möglich. Man könnte sich höchstens beim Tastendruck eine Variable setzen welche vom bereits laufenden Script geprüft wird dann ein Exit Sub macht.
Funktioniert aber eher schlecht.

Besser:
Setz dir am Beginn des Script eine interne Variable, sperre damit deinen Button und setze die Variable am Ende des Scriptes zurück.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Danke.

Ich möchte ja nicht den Button sperren sonder eher das script. Hatte da auch schon was ausprobiert hat aber alles nur suboptimal geklappt. Ich hatte mir das so gedacht: Button klick -> 2s - 3s später wird das script ausgeführt -> wird in dieser Zeit der Button erneut gedrückt beginnt die Zeit von vorne
 
Hallo,

die Button abfrage würde ich nicht im Skript lösen sondern in der SPS und erst wenn du das Skript starten willst eine Variable von der SPS aus schreiben die das Skript startet.

Gruß

Jens
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Naja ... es gäbe schon noch eine weitere Möglichkeit ...
Du erzeugst dir in der SPS einen Blink-Merker (oder Datenbit) das im gewünschten Zeitraster (also im Sekundentakt) toggelt. Diesen liest du mit der Visu kontinuierlich ein und startest mit dessen Wertänderung ein Script.
Dein Button setzt eine interne INT-Variable bei Druck auf den gewünschten Zeitwert in Sekunden (du schreibst also in deine interne Variable z.B. 3 hinein für 3 Sekunden Verzögerungszeit.
In dem erstgenannten Script wertest du nun diese interne Variable aus und decrementierst sie wenn > 0. Ist diese Variable nach dem Decrementieren gleich 0 dann löst du die gewünschte Aktion aus (aber nur dann, wenn die betreffende Variable decrementiert werden konnte - ansonsten ist sie bis zum nächsten Tastendruck ja weiterhin gleich 0).
Wiederholst du den Buttondruck vor Ablauf der Verzögerungszeit so wird diese ohne eine Aktion wieder auf den voreingestellten max.Wert gesetzt.

Das wäre ja im Grunde das, was du beschrieben hast ...

Gruß
Larry
 
Zurück
Oben