Timer Wert .ET speichern und an anderen Timer als .PT Wert übergeben in ST

Zuviel Werbung?
-> Hier kostenlos registrieren
Aber in diesem fall ist doch der Wert von TP1.ET nach Ablauf der Zeit von TP1:pT nicht mehr vorhanden.
Wenn ich TP2.PT zu einem beliebigen anderen Zeitpunkt starten möchte. Desweiteren sollte es möglich sein den Wert von TP2.ET in TP1.PT speichernd zu schreiben.
Die Zeiten sollen Variabel sein.
 
Ähhh ...
wenn du den Wert einer Variablen (ganz gleich welcher - ob nun Timer oder sonst etwas) zu einem gewissen Zeitpunkt haben willst um den dann irgendwo anders weiter zu verwenden dann geht das nur so, dass man den Wert zum gewünschten Zeitpunkt in eine Hilfs-Variable zwischenspeichert und die dann weiter verwendet.
Code:
if myTriger and not myTrigger_FM then
   mySpeicher := TP1.ET ;
end_if ;
 myTrigger_FM :=  myTrigger ;

Gruß
Larry
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Ich habe schon geahnt, dass das Schreiben von ET nach PT nicht das eigentliche Problem ist, mit meinem Code wollte ich halt nur eine etwas genauere Beschreibung des Vorhabens provozieren.
Larry hat natürlich recht, Du brauchst einen Trigger. Die noch offene Frage ist, wie denn der "gewisse Zeitpunkt" bestimmt werden soll, zu dem TP1.ET gespeichert werden muss.
 
Einfach gesagt, so lange TP1.Q = True ist. Denn mindestens so lange, bleibt die Zeit in TP1.ET erhalten. Außer, der TP1.IN bleibt True, dann bleibt die Zeit auch nach Ablauf des Timers erhalten...
 
@Stefan:
Das Problem ist nur, dass sich die ElapsedTime ja beständig ändert. Will man die Zeit zu einem bestimmten Zeitpunkt "einfrieren" (um sie irgendwo anders weiter zu verwenden) - dann z.B. so wie in meinem Beispiel ...
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Solange der TE sich nicht zu diesem Punkt äussert, muss eben die Glaskugel herhalten. Und die sagt mir anhand von Post #4, dass der TP1 wohl die Dauer seines IN.Signals messen soll und diese Dauer als TP2.PT dienen soll. Das Ganze würde ja nur Sinn machen, wenn TP2 erst gestartet wird, nachdem TP.IN wieder FALSE geworden ist. Dann könnte man TP1.ET in TP2.PT schreiben, solange TP1.IN = TRUE ist. Sicherer ist aber auf jeden Fall das Schreiben mit der High-Low-Flanke von TP1.IN, für den Fall, dass TP1.IN bereits während des Ablaufs von TP2 wieder TRUE wird.
 
Stimmt, Rückmeldung wäre gut, Trigger macht auch Sinn. Allerdings deutet meine Glaskugel auch auf Zeitmessung hin, was ich allerdings nie mit einem Timer machen würde. Laufzeit=Stoppzeit-Startzeit...
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo,
Ich habe in der OSCAT einen Baustein (M_T) gefunden der laut Beschreibung das macht was ich suche.
Jetzt muss ich nur noch mein Programm dahin gehend schreiben.
Geplant ist, das ich über das TRUE Signal von meinem Rolladen Taster die Zeit Zähle, einmal für AUF und einmal für ZU, damit die Automatik (LUX Sensor)
mitbekommt ob eventuell schon manuell eine Beschattung oder komplett AUF bzw ZU erfolgt ist. Dann braucht die SPS nur noch anhand der vorhandenen Laufzeit
überprüfen ob ein Fahrbefehl erfolgen soll oder nicht, und die Rest Fahrzeit berechnen und ausführen.
 
Hallo StefanK,
kannst du das problem mit dem Timer mal erklären. ?

Ich habe kein Problem mit einem Timer. Wie kommst du darauf? Ich habe lediglich geschrieben, das ich es nicht mit einem Timer lösen würde. Ich würde mir einen Trigger bauen, mit dem ich die Startzeit meiner Messung speichern würde und einen Trigger für die Stoppzeit. Damit würde ich die Laufzeit ermitteln. Das hat aus meiner Sicht den Vorteil, das ich damit Laufzeiten von einigen Millisekunden bis zu mehreren Tagen und weit mehr erfassen kann. Eine Funktion für alle Fälle.
 
Ich beziehe mich auf den Satz:
was ich allerdings nie mit einem Timer machen würde. Laufzeit=Stoppzeit-Startzeit...
Speziell:
Laufzeit=Stoppzeit-Startzeit...

Was meinst du damit?
Ich verstehe den Satz wahrscheinlich nur falsch und du meinst gar kein spezielles Problem des Timers
ps: ich will nicht zanken. bin nur neugierig...
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Timer sind in meiner Philosophie nicht dafür gedacht (um nicht geeignet zu sagen), natürlich kann man aber auch Timer verwenden um Zeiten zu messen. Mir ist kein technisches Problem bekannt. Aber wer sich gerne eine Libary mit eigenen Funktionen anlegt (wie ich), versucht diese halt so einfach und flexibel wie möglich zu halten. Und mit der Systemzeit kannst du theoretisch von Millisekunden bis mehrere Jahre abdecken, da ist es egal, ob du die Laufzeit eines elektrischen oder pneumatischen Antriebs mit Laufzeiten von mehr oder weniger einer Sekunde überwachst oder einen chemischen Prozess, der mehrere Stunden dauert.
Vielleicht liegt das auch daran, das genauso viel SPS wie Hochsprachen programmiere und da mache ich das auch so.
Zanken will ich auch nicht. Wie machst du so etwas?
 
Zurück
Oben