Hallo zusammen,
Ich habe ein kleines Problem mit Timer TON.
Ich möchte gerne einen Timer starten und zwischendurch anhalten.
Wenn ich den Timer erneut starte soll er mit der Restzeit weiterlaufen.
Befehl Start: Timer fängt an zu laufen.
Befehl Pause: Timer hält an.
Befehl Start: Timer läuft weiter mit der Restzeit.
Befehl Stopp: Timer wird zurückgesetzt.
Gibt es vielleicht einen Baustein mit dem man so etwas realisieren kann?
Danke im Voraus.
Hi
Frage bei TON den Wert "ET" ab.
Durch Differenzbildung startest du dann.
Irgendwie PTneu = PT - ET
Dann TON mit PTneu.
Oder so ähnlich.
Du kannst auch einen neuen Baustein schreiben der das kann.
Siehe auch w www.oscat.de w
Hi Karl,
Habe ich schon ausprobiert.
Würde auch funktionieren, aber
das Problem ist in meiner Visualisierung wo die Zeit angezeigt werden soll.
Wenn ich einen neuen Timer starte, fängt die Restzeit wieder bei Null an zu laufen.
Ich möchte aber meine abgelaufene Zeit „einfrieren“.
Zum Beispiel:
Vorgabezeit: 60 Minuten
Befehl Start: Zeit fängt an zu laufen.
Befehl Pause nach 20 Minuten: Zeit hält an (in der Visualisierung soll dann Restzeit 40 Minuten angezeigt werden)
Befehl Start: Zeit läuft weiter
(in der Visualisierung soll dann
von 40 Minuten weiter gezählt werden)
Dann zeige in deiner Visu nicht den Werte PT sondern
PTneu + PT an.
Oder habe ich hier einen Denkfehler.
Du kannst dur aus dem TON selber einen Baispein schreiben.
Du benötigst lediglich noch einen Bausteineingang der z.b. "halt" heist.
Ich bin ein absoluter Anfänger im programmieren.
Wenn ich einen Baustein selber schrieben könnte
hätte ich das Problem warscheinlich gar nicht.
Ich weiß nicht genau ob es einen Baustein gibt mit einer
Pausenfunktion, aber ich habe schon alles versucht und weiß einfach
nicht weiter.
Für einen guten Tipp wäre ich dankbar.
Originally created by: jl
Hallo
Dieses Problem habe ich auch schon einmal gehabt, habe ich so gelöst, indem ich mit der Zykluszeit des Tasks eine Variable hochgezählt habe:
zykZeit := t#10ms;
sollzeit := t#60m;
IF start THEN ( Startbefehl --> Zeit hochzählen )
zeitabgelaufen := FALSE; t1 := t1 + zykZeit; restzeit := sollzeit - t1; (* Restzeit berechnen *)
END_IF
IF t1 >= sollzeit THEN ( Abfrage ob Sollzeit abgelaufen )
start := FALSE; restzeit := t#0ms; t1 := t#0ms; zeitabgelaufen := TRUE;
IF zeitabgelaufen THEN
(* entsprechende Befehle hier einfügen dass Timer abgelaufen *)
Ich war einige Tage auf Montage deshalb die späte Antwort.
Danke an alle.
Werde ich morgen alles mal probieren.
warum benutzt du für dein problem nicht einfach einen simplen integrator den du jederzeit resetten oder stoppen kannst
Hallo Hugo,
Ich bin Neuling und wies nicht genau was du damit meinst.
Kannst du mir das mal etwas genauer erklären?
Log in to post a comment.
Hallo zusammen,
Ich habe ein kleines Problem mit Timer TON.
Ich möchte gerne einen Timer starten und zwischendurch anhalten.
Wenn ich den Timer erneut starte soll er mit der Restzeit weiterlaufen.
Befehl Start: Timer fängt an zu laufen.
Befehl Pause: Timer hält an.
Befehl Start: Timer läuft weiter mit der Restzeit.
Befehl Stopp: Timer wird zurückgesetzt.
Gibt es vielleicht einen Baustein mit dem man so etwas realisieren kann?
Danke im Voraus.
Hi
Frage bei TON den Wert "ET" ab.
Durch Differenzbildung startest du dann.
Irgendwie PTneu = PT - ET
Dann TON mit PTneu.
Oder so ähnlich.
Du kannst auch einen neuen Baustein schreiben der das kann.
Siehe auch w www.oscat.de w
Hi Karl,
Habe ich schon ausprobiert.
Würde auch funktionieren, aber
das Problem ist in meiner Visualisierung wo die Zeit angezeigt werden soll.
Wenn ich einen neuen Timer starte, fängt die Restzeit wieder bei Null an zu laufen.
Ich möchte aber meine abgelaufene Zeit „einfrieren“.
Zum Beispiel:
Vorgabezeit: 60 Minuten
Befehl Start: Zeit fängt an zu laufen.
Befehl Pause nach 20 Minuten: Zeit hält an (in der Visualisierung soll dann Restzeit 40 Minuten angezeigt werden)
Befehl Start: Zeit läuft weiter
von 40 Minuten weiter gezählt werden)
Hi
Dann zeige in deiner Visu nicht den Werte PT sondern
PTneu + PT an.
Oder habe ich hier einen Denkfehler.
Du kannst dur aus dem TON selber einen Baispein schreiben.
Du benötigst lediglich noch einen Bausteineingang der z.b. "halt" heist.
Hi Karl,
Ich bin ein absoluter Anfänger im programmieren.
Wenn ich einen Baustein selber schrieben könnte
hätte ich das Problem warscheinlich gar nicht.
Ich weiß nicht genau ob es einen Baustein gibt mit einer
Pausenfunktion, aber ich habe schon alles versucht und weiß einfach
nicht weiter.
Für einen guten Tipp wäre ich dankbar.
Originally created by: jl
Hallo
Dieses Problem habe ich auch schon einmal gehabt, habe ich so gelöst, indem ich mit der Zykluszeit des Tasks eine Variable hochgezählt habe:
zykZeit := t#10ms;
sollzeit := t#60m;
IF start THEN ( Startbefehl --> Zeit hochzählen )
END_IF
IF t1 >= sollzeit THEN ( Abfrage ob Sollzeit abgelaufen )
END_IF
IF zeitabgelaufen THEN
END_IF
Hallo zusammen,
Ich war einige Tage auf Montage deshalb die späte Antwort.
Danke an alle.
Werde ich morgen alles mal probieren.
warum benutzt du für dein problem nicht einfach einen simplen integrator den du jederzeit resetten oder stoppen kannst
Hallo Hugo,
Ich bin Neuling und wies nicht genau was du damit meinst.
Kannst du mir das mal etwas genauer erklären?
Danke im Voraus.