DIAdem

cancel
Showing results for 
Search instead for 
Did you mean: 

Script-DAC-Driver: What's with "sleep()" ?



Diadem Help:

Sleep, Programmunterbrechungen (Script DAC-Treiber)

Mit diesem Befehl wird Ausführung des Skriptes für eine angegebene Anzahl von Millisekunden unterbrochen.

Syntax

Sleep(MilliSeconds)

Parameter

MilliSeconds Anzahl Millisekunden

Beispiel

Sleep(100) Unterbricht die Ausführung des Skriptes für eine 1/10 Sekunde


But every time I use this command in a DAC-script, I get a typemismach-error. Whats wrong?
Is there any other way for a delay in script execution? (I need a small delay when writing a set of channels.)

Martin Bohm
bohm@a3m.com

0 Kudos
Message 1 of 3
(4,847 Views)

Copy and paste:

 

Zum Windows XP Professional Resource Kit gehört das Programm „sleep.exe“, das wie der entsprechende Unix-Befehl funktioniert. Microsoft verkauft das Resource Kit zusammen mit der gedruckten Dokumentation für etwa 60 US-Dollar.

Falls Ihnen das zu teuer ist, können Sie in der Batch-Datei ein VBScript für den Windows Script Host erzeugen und es dann aufrufen. Da die sleep-Methode von VBScript ein Argument in Millisekunden erwartet, müssen Sie die gewünschte Wartezeit in Sekunden mit 1000 multiplizieren. Folgender Batch-Schnipsel legt im Temp-Verzeichnis eine VBScript-Datei an, die nur den sleep-Befehl enthält, führt dieses Skript aus und löscht anschließend die Datei.

echo wscript.sleep 1000*10 >%temp%\sleep.vbs
cscript /nologo %temp%\sleep.vbs
erase %temp%\sleep.vbs

Wenn Sie den Script Host nicht benutzen wollen, bleibt schließlich noch die Empfehlung von Microsoft, den ping-Befehl zu verwenden. Er pausiert zwischen zwei gesendeten Paketen ziemlich genau eine Sekunde. Daher muss man ein Ping-Paket mehr an sich selbst schicken, als die Pause Sekunden haben soll. Der Aufruf

ping -n 11 127.0.0.1 >nul

unterbricht die Batch-Verarbeitung für ungefähr zehn Sekunden.

 

Hope this helps...

0 Kudos
Message 2 of 3
(4,840 Views)
Der Thread ist schon recht abgelagert, aber ich schreibs trotzdem mal hin: ------------------- Stoptime = (seconds(now)+ 10) mod 60 ' mod 60 wegen des Minutenüberlaufs 'Warteschleife do loop until (seconds(now) >= Stoptime) 'Weiter geht's Hat natürlich den Nachteil, dass das System ziemlich ausgelastet wird.... Ob es auch ohne 'Seconds' geht, weiß ich nicht. Das Rückgabeformat von 'Now' ist nicht so gut definiert.
0 Kudos
Message 3 of 3
(4,254 Views)