SCL Timer

Manuel1

Level-2
Beiträge
99
Reaktionspunkte
3
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo miteinander,
bin gerade dabei ein Programm mit Timern zu machen. Jedenfalls bin ich mir sicher, dass ich die Timer falsch benutze und gerade dabei bin wieder in das ganze hinein zukommen.
Im Grunde gehts um das, nach dem Start Soll quasi die Pumpe aktiviert werden und daraufhin sollen 2 Timer aktiviert werden. Einer der nach 5min ein Ventil startet, und der andere welcher nach 10min die Pumpe dann ausschaltet (Timer ET zählt nicht). Code ist im Anhang. Wie bereits gesagt ich mache noch Fehler, da längere Zeit nichts getan habe, aber hoffe einer kann mir einen Tipp bzw erklären was falsch ist, damit ich für die Zukunft solche dummen Fehler nicht mehr mache!
Danke im Vorraus!
 

Anhänge

  • Bild_2023-09-01_091543423.png
    Bild_2023-09-01_091543423.png
    187,9 KB · Aufrufe: 88
Zuviel Werbung?
-> Hier kostenlos registrieren
Auf den ersten Blick sehe ich nicht, wo Du die Bits Timer_Druckventil und Timer_Pumpe zurücksetzt. Ich hätte das jetzt in der letzen IF erwartet, wo Du die Geräte abschaltest.

Also fängt momentan der Timer nur ein Mal an und wird nie wieder abgeschaltet. Damit kannst Du ihn auch nicht wieder einschalten.
 
Auf den ersten Blick sehe ich nicht, wo Du die Bits Timer_Druckventil und Timer_Pumpe zurücksetzt. Ich hätte das jetzt in der letzen IF erwartet, wo Du die Geräte abschaltest.

Also fängt momentan der Timer nur ein Mal an und wird nie wieder abgeschaltet. Damit kannst Du ihn auch nicht wieder einschalten.
Timer wird am Ende oder bei jeder Tätigkeit geresetet, Code hab ich jz nicht gezeigt aber hab da einfach die Resetfunktion eingefügt und den Timer in der () reingeschrieben bzw beide Timer. Wenn der Nothalt gedrückt wird wird quasi alles auf False sowie TimerDruckventil und TimerPumpe
 
Der Timer muß in jedem Zyklus aufgerufen werden, damit er auch die Flanken des IN mitbekommt.
Bei Nothalt passiert das schon einmal nicht. Schau das bitte einmal durch.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Habe es nun wie folgt gemacht. Aber irgendwie zählt der Timer immer noch nicht.
Bzw muss den Timer noch bei dem der einen Funktion noch hineinschreiben.
 

Anhänge

  • Bild_2023-09-01_095525071.png
    Bild_2023-09-01_095525071.png
    252,2 KB · Aufrufe: 47
Zuviel Werbung?
-> Hier kostenlos registrieren
Du scheinst ja den Reset immer auszuführen, der kommt im IF und im ELSE zweig vor.
Was macht diese Reset-Funktion?
Ja es der Timer soll jedes mal bei einer Aktion von neu beginnen, daher steht der Reset überall drinnen. Reset sollte normal den Timer wieder von vorne zählen lassen.
 
Aber so wird der ja in jedem Zyklus zurückgesetzt!? Wenn IF nicht TRUE, dann ELSE... also immer...
Eh, mein Problem ist. Wenn ich das Programm starte, sollte er laufen, wenn keine Aktion folgt rennt er normal bis die Zeiten abgelaufen sind und dann sollten die jeweiligen Aktionen kommen. Wenn wie gezeigt ein Taster gedrückt wird, sollen beide Timer von vorne beginnen.
 
Wir sehen hier immer nur Schnipsel von Deinem Code.
Der Eingang ist True, damit sollte ET anfangen zu laufen.
Vermutlich wird irgendwo im Code der Timer zurückgesetzt.
Entweder wird er ein zweites Mal mit IN=False aufgerufen oder mit Deinem RESET überschrieben.

Ohne den ganzen Code zu sehen, kann man das jetzt nicht weiter beurteilen, das mußt Du schon selber suchen.
 
Wir sehen hier immer nur Schnipsel von Deinem Code.
Der Eingang ist True, damit sollte ET anfangen zu laufen.
Vermutlich wird irgendwo im Code der Timer zurückgesetzt.
Entweder wird er ein zweites Mal mit IN=False aufgerufen oder mit Deinem RESET überschrieben.

Ohne den ganzen Code zu sehen, kann man das jetzt nicht weiter beurteilen, das mußt Du schon selber suchen.
Ich weiß hier im Anhang sieht man, das wenn keine Aktion kommt nichts überschrieben werden sollte, sowie geresetet wird. Nur wenn der Nothalt gedrückt wird wird halt alles auf FALSE.
 

Anhänge

  • Bild_2023-09-01_100931344.png
    Bild_2023-09-01_100931344.png
    249,7 KB · Aufrufe: 21
Zurück
Oben