Timer<->Zykluszeit

t3kaese

Level-1
Beiträge
27
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo,
wie extrem wirkt sich die Zykluszeit der CPU auf die Genauigkeit der verwendeten Timer aus, bzw. können Schwankungen der Timer-Genauigkeit im Betrieb auftreten?
 
der sps timer hat eine auflösung von 1 ms und eine relativ gute genauigkeit abhängig von der sps aber meist mit deutlich weniger als 1% fehler da der timer quarzgesteuert ist.

die zykluszeit hängt aber sehr stark von der software und der anzahl io ab.
auch muss du beachten das zwischen abfrage des timers und verwendung des wertes bereits zeit vergehen kann auch deutlich wenn du von einer hoeherpriorisierten task unerbrochen wird. aber das hängt ganz extrem von deiner verwendung und software ab
 
Es tritt zwar keine Ungenauigkeit der Timer ansich auf,
aber da die Auswertung des Timers ja irgendwo im Zyklus stattfindet,
hat die Zykluszeit dann trotzdem wieder einen Einfluss auf die
tatsächlich vergangene Zeit.


Beispiel:

Zyklus n

PAE Einlesen

... Zykluszeit des Programms bis hierhin

U E0.0
L S5T#10s
SE T1

U T1
= A0.0

... Zykluszeit des Programms zum Ende

PAA Ausgeben

Der Timer ist im Rahmen seiner Basis ungenau, bei der S7-300 also ~ 10ms, und im Rahmen der gesamten Zykluszeit potentiell ungenau,
da die Auswertung des abgelaufenen Timers auch erst im nächsten Zyklus erfolgen kann.

Mfg
Manuel
 
Es tritt zwar keine Ungenauigkeit der Timer ansich auf,
aber da die Auswertung des Timers ja irgendwo im Zyklus stattfindet,
hat die Zykluszeit dann trotzdem wieder einen Einfluss auf die
tatsächlich vergangene Zeit.


Beispiel:

Zyklus n

PAE Einlesen

... Zykluszeit des Programms bis hierhin

U E0.0
L S5T#10s
SE T1

U T1
= A0.0

... Zykluszeit des Programms zum Ende

PAA Ausgeben

Der Timer ist im Rahmen seiner Basis ungenau, bei der S7-300 also ~ 10ms, und im Rahmen der gesamten Zykluszeit potentiell ungenau,
da die Auswertung des abgelaufenen Timers auch erst im nächsten Zyklus erfolgen kann.

Mfg
Manuel

Das ist meines Wissens falsch!!!

Timer laufen asynchron zum Zyklus. D.h. sie können auch mitten im Zyklus 1 werden.
Dies führt allerdings nur bei kurzen Zeiten zu Problemen:

Beispiel

u e0.0
l s5t#5ms
se t1 // wenn e0.0 zeit als einschaltver. starten

u t1 // Zeit abgelaufen dann s m1.0
s m1.0


z.B. anderer FC:

u t1
r m0.7

oben ist nach dem start und der Abfrage die zeit mit großer wahrscheinlichkeit noch nicht abgelaufen, im unteren Teil jedoch könnte es sein, das der timer schon abgelaufen ist und so würde der merker dann rückgesetzt!!

Ergibt in ganz bestimmten situationen (schrittablauf) Probleme deswegen immer:
u t1
= m xy
und dann der merker weiter abfragen!!!!
 
Wenn du deinen Text genau lest, merkst du das du mir indirekt sogar wieder recht gibst.

Der Timer kann zwar irgendwann im Zyklus 1 werden, was passiert aber wenn er das dummerweise
genau eine Programmzeile nach der Auswertung mit Und/Oder tut?

Dann tut er das was er tun soll erst einen vollen Zyklus später.

Mfg
Manuel
 
Zurück
Oben