Hallo,
Momentan versuche ich über eine batch-Datei Relais anzusprechen, die am PC seriell angeschlossen sind. Dazu nutze ich das Programm Relaiser von
Frank Steinberg.
Das klappt auch soweit ganz gut.
Das ganze soll quasi endlos durchlaufen, ausser wenn es später als eine bestimmte Uhrzeit ist.
Wenn die Uhrzeit beim Start der batch-Datei schon überschritten ist, dann startet die Datei wie geplant nicht.
Wird die Uhrzeit aber zwischendrin erreicht, läuft die Datei immer weiter durch, auch wenn sie am Start die Uhrzeit wieder checken soll.
Da ich mich dunkel daran erinnere, dass der Check der Uhrzeit in der Batch-Datei nicht aktualisiert wird, habe ich mal testweise versucht, die Zeitüberprüfung und das Ansprechen der Relais in zwei verschiedene batchs aufzuteilen, die sich gegenseitig aufrufen.
Das hat leider auch nicht geklappt.
Hier die Datei:
cls
cd\
cd relaiser
setlocal
:start
for /f "delims=:" %%i in ("%time%") do set /a Std=%%i
if %Std% geq 7 (
if %Std% lss 18 set "OK=1"
)
if defined OK (
goto anfang
) else (
goto ende
)
:anfang
echo.
echo.
echo starten der Bewaesserung
timeout /T 3 >NUL
rem Masterventil oeffnen
relaiser 3 3 128 com2
rem Platine 1
relaiser 3 1 1 com2
timeout /T 3
relaiser 3 1 2 com2
timeout /T 3
relaiser 3 1 4 com2
timeout /T 3
relaiser 3 1 8 com2
timeout /T 3
relaiser 3 1 16 com2
timeout /T 3
relaiser 3 1 32 com2
timeout /T 3
relaiser 3 1 64 com2
timeout /T 3
relaiser 3 1 128 com2
timeout /T 3
relaiser 7 1 128 com2
rem Platine 2
relaiser 3 2 1 com2
timeout /T 3
relaiser 3 2 2 com2
timeout /T 3
relaiser 3 2 4 com2
timeout /T 3
relaiser 3 2 8 com2
timeout /T 3
relaiser 3 2 16 com2
timeout /T 3
relaiser 3 2 32 com2
timeout /T 3
relaiser 3 2 64 com2
timeout /T 3
relaiser 3 2 128 com2
timeout /T 3
relaiser 7 2 128 com2
rem platine 3
relaiser 6 3 1 com2
timeout /T 3
relaiser 3 3 130 com2
timeout /T 3
relaiser 3 3 132 com2
timeout /T 3
relaiser 3 3 136 com2
timeout /T 3
relaiser 3 3 144 com2
timeout /T 3
relaiser 3 3 160 com2
timeout /T 3
relaiser 3 3 192 com2
timeout /T 3
relaiser 7 3 192 com2
rem platine 4 ohne Mastervalve
relaiser 3 4 1 com2
timeout /T 3
relaiser 3 4 2 com2
timeout /T 3
relaiser 3 4 4 com2
timeout /T 3
relaiser 3 4 8 com2
timeout /T 3
relaiser 7 4 8 com2
cls
echo Pause vor Wiederholung
timeout /T 1800
goto start
:ende
echo off
cls
echo.
echo.
echo Uhrzeit ausserhalb der vorgesehenen Bewaesserungszeit
echo Abbruch des Programms
echo.
timeout /T 60
exit
Das Alles läuft auf einem PC mit
Win 7 Prof. als BS.
Wo kann da der Fehler liegen?
Mache ich einen Denkfehler?
Gibt es eine andere / bessere Lösung?
Danke und Gruss, Mikoop