TIA Time_TCK (SFC64) zurücksetzen

Thomate

Level-2
Beiträge
5
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo,

ich benutze das TIA-Portal V13 und würde gerne in der SFC 64 die ausgegebene Zeit nach Ablauf einer bestimmten Zeit zurücksetzen. Was muss ich in meinem Quelltext im SCL-Format schreiben, um dies zu bewerkstelligen?

#Timer:=TIME_TCK();
#Timer_dint:=TIME_TO_DINT(#Timer);
#Time_real:=DINT_TO_Real(#Timer_dint);
#"Soll Druck":=#Mittelwert+#Amplitude*SIN(3.14*Time_real/1000.0);

Das eigentliche Problem besteht darin, dass die Formel in Zeile 4 nicht mehr berechnet wird, wenn der Timerwert zu groß wird.

Vielen Dank für eure Hilfe!
 
Du könntest dir mal die Hilfe zu TIME_TCK() anschauen, da steht nämlich:

TIME_TCK schrieb:
Beschreibung

Mit der SFC 64 "TIME_TCK" (time tick) lesen Sie die Systemzeit der CPU. Die Systemzeit ist ein "Zeitzähler", der von 0 bis max. 2147483647 ms zählt. Bei einem Überlauf der Systemzeit wird wieder ab 0 gezählt. Das Zeitraster und die Genauigkeit der Systemzeit betragen 1 ms. Die Systemzeit wird nur von den Betriebszuständen der CPU beeinflußt.
Des weiteren hast du wahrscheinlich in deiner Formel auch nicht berücksichtigt das es in TIME_TCK alle 28 Tage ( 2147483647 ms) zum Überlauf kommt.

Da musst du dir wohl was anderes einfallen lassen.
z.B.: den ET-Ausgang eines IEC-Timers.
 
Zuletzt bearbeitet:
Zuviel Werbung?
-> Hier kostenlos registrieren
Danke für deine Antwort,

habe das Problem jetzt mit einem IEC-Timer gelöst. Ist nur ein wenig aufwendig um nur eine Zeit auszulesen. Mit TIME_TCK stieg die Sinusberechnung schon vor Ablauf der 28 Tage aus!
 
Zurück
Oben