Zeit aus Timer in Variable schreiben

JüKo

Level-2
Beiträge
91
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo Forum,
ich habe 7 verschiedene Geschwindigkeitstufen und möchte nun für jede der Stufen die jeweilige gelaufene Zeit messen. Zu Anfang hab ich eine If-Abfrage die mir angibt ob die Geschwindigkeitstufe sich geändert hat oder nicht. Bei einer Änderung startet ein Timer neu und zählt wieder vom Anfang an. Das passiert bei jedem Wechsel der Geschwindigkeit. Nun wollte ich in Codesys die Variable .ET des TON-Timers der gerade abgelaufen ist (da Wechsel der Geschwindigkeit) in eine andere Variable schreiben. Aber genau da ist dann die Zeit der Variable .ET auch schon wieder bei Null und startet neu. Wie kann ich es umsetzen, dass wenn der Timer stoppt, ich dann den Wert .et in eine Variable zum Weiterverarbeiten schreiben kann?
Bin schon gespannt auf die Antworten.
Danke und freundliche Grüße, Jürgen
 
Du mußt da mit Flanken arbeiten (oder einer Art von Schrittkette) :
Wenn dein Ereignis da ist und nicht Flankenmerker davon aktiv dann .ET wegschreiben und dann Flankenmerker setzen.
Nun den Timer retriggern.
Alles in demselben Zyklus ...

Ist das Ereignis nicht mehr da dann den Flankenmerker löschen ...

Gruß
Larry
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Moin Jürgen,

Nun wollte ich in Codesys die Variable .ET des TON-Timers der gerade abgelaufen ist in eine andere Variable schreiben.

Vielleicht stehe ich auf dem Schlauch, aber Du schreibst, daß der TON abgelaufen ist. Das bedeutet doch, daß ET den Wert von PT hatte.... Warum also ET weg schreiben und nicht PT speichern?

Gruß
Jens
 
Im Prinzip wie Larry schon geschrieben hat, aber vielleicht ist es ja gar nicht so aufwändig. Wenn Du in Deiner IF-Abfrage für die Geschwindigkeit ET wegschreibst, bevor Du den Timer neu startest, könnte das schon funktionieren. Kommt natürlich auf den konkreten Code an. ET wird übrigens nicht erst 0, wenn der Timer neu gestartet wird, sondern schon, wenn der IN-Eingang False wird.
 
Hallo, hab es jetzt so gemacht. Bei jedem Durchlauf wird abgefragt ob der Timer noch hochzählt, also der akt. Wert größer als der Wert zuvor ist. Wenn dem nicht so ist dann wird die Variable verarbeitet. Danke an alle,
Jürgen
 
Zurück
Oben