CPU Time und Taktmerker

Gerri

Level-1
Beiträge
822
Reaktionspunkte
37
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo, gibt es einen Unterschied zwischen der Genauigkeit des Taktmerkers und der Zeit aus der CPU und den Weckalarmen?

Es geht darum, mich mit einem Gerät zu synchronisieren das die Betriebszeit in ms an mich sendet (bei jedem Datenaustausch) und ich eine Differenzzeit in ms berechnen muss.

also brauche ich einen ms Zähler in meiner CPU (ob 38 schafft 10 ms).
also würde ich immer um 10 erhöhen wenn dieser aufgerufen wird.
 
Hallo Gerri,
der Takt der CPU ist so genau wie seine Systemuhr.
Für den Taktmerker gilt das Gleiche - du mußt hier nur die SPS-Zykluszeit mit einbeziehen, denn diese bestimmt ja die Reaktion.
Beim Weck-OB bist du von dessen Reaktion her genauer, ansonsten gilt aber das Gleiche, wie für den Taktmerker ... dein Haupt-Programm reagiert ja schluß-endlich.

Wie erfolgt denn der Datenaustausch mit dem zu synchronisierenden Gerät ?
Wie genau willst / musst du werden ?

Gruß
LL
 
... die Zykluszeit könntest du z.B. im OB1 mit der dortigen TEMP-Var OB1_Prev_Cycle . Die gibt dir die Zykluszeit des letzten Zyklusses.

Eine andere Variante wäre, die SPS-Systemzeit jeweils zum benötigten Zeitpunkt auszulesen und auszuwerten. Dadurch würdest du dann noch etwas genauer. Es wird trotzdem am Ende aber immer noch "einen gewissen Schlupf" geben. Der wäre bei meinem letzten Vorschlag dann allerdings im Bereich von 1 ms ...

Gruß
LL
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Zeit-Funktionen

* Uhrzeit lesen mit der SFC1 "READ_CLK" aus Standard Library -> System Function Blocks
* Zwei Zeitpunkte subtrahieren mit FC34 "SB_DT_DT" aus Standard Library -> IEC Function Blocks

Beschreibung/Hilfe zu den Bausteinen:
* einen FC/FB/OB öffnen
* Einfügen - Programmelemente
* SFC1 (FC34) doppelklicken
* eingefügten Baustein markieren
* F1 drücken

oder im in Step7 enthaltenen Handbuch
"STEP 7 - System- und Standardfuntionen für S7-300 und S7-400"
(Start -> SIMATIC -> Dokumentation -> Deutsch)

Gruß Harald
 
SFC 64 ist für mich passender denke ich. hier bekomme ich die systemzeit in ms (so wie ich sie eigentlich brauche) sobald die cpu in run geht.
 
Zurück
Oben