Hallo!


Ich habe mir dein Listing mal angesehen und eine Auffälligkeit entdeckt:

#Programm1
Pumpe2 = off
Pumpe1 = on
for Minuten = 1 to Anzeit
next Minuten
Pause 45000 ' 15 min Auszeit
return

Hier läuft eine Schleife (for Minuten...) genau 30 mal (Anzeit = 30),
aber sie führt nichts aus (Die schleife benötigt sicher weniger als eine Sekunde um vollständig durchzulaufen) dann kommt erst eine richtige Verzögerung von 15Minuten

Um das zu erreichen was zu vorhast, würde ich die Schleife gegen folgendes ersetzen:

-------------------------------------
#Programm1
Pumpe2 = off
Pumpe1 = on

Pause 90000 ' 30 min An Zeit

Pumpe1 = off

Pause 45000 ' 15 min Auszeit

goto Programm1
-------------------------------------

Also im gesamten Listing:



Code:
' ---------- Definitionen ---------- 
' 
'Ausgänge 
define Pumpe1 port[1] 'ohne Pullup-Widerstand 
define Pumpe2 port[2] 'ohne Pullup-Widerstand 
' 
'Eingänge 
define Taster1 port[3] 'mit Pullup-Widerstand 
define Taster2 port[4] 'mit Pullup-Widerstand 
define Taster3 port[5] 'mit Pullup-Widerstand 
define Taster4 port[6] 'mit Pullup-Widerstand 
' 
' 
define Minuten Word 
define Anzeit 30 ' 30 min 
' 
' ---------- Programmoperationen ---------- 
Pumpe1 = off 
Pumpe2 = off 
Taster1 = on 
Taster2 = on 
Taster3 = on 
Taster4 = on  

'Manfs Code:
#Loop
- 
if Taster1 = off then goto Programm1 'Achtung: jetzt goto Befehle!
if Taster2 = off then goto Programm2 
if Taster3 = off then goto Programm3 
if Taster4 = off then goto Programm4 
- 
goto Loop

'Code von oben
#Programm1 
Pumpe2 = off 
Pumpe1 = on 
Pause 90000 ' 30 min An Zeit
Pumpe1 = off
Pause 45000 ' 15 min Auszeit 
goto Programm1

Die anderen Programmblöcke würde dann ähnlich dem ersten sein.

Wie Manf allerdings schon geschrieben hat, gibt es keine Möglichkeit, das Program nach einem Start zu ändern, ohne nicht vorher die Unit zu resetten.

Um einen Programmwechsel zu ermöglichen, muss der Code erweitert werden, und da musst du dann auch von langen Pause-Befehlen absehen

Man kann führ Zeit-Aufgaben die Uhr verwenden, die im Hintergrund der Unit läuft

Wenn du möchtest, kann ich dir noch ein paar Ideen über diese Methode geben

Gruß
Jörn Arne