Step 7 Unterschied Sekundenimpuls aus Taktmerker oder Systemzeit

Januar

Level-2
Beiträge
470
Reaktionspunkte
145
Zuviel Werbung?
-> Hier kostenlos registrieren
Grüße an die Gemeinde,

ich habe eine neue Anlage übernommen, es handelt sich um eine S7 315-2 PN/DP (laut HW-Konfig V3.2). Ich arbeite in STEP 7 V5.7, das ursprüngliche Programm ist von 2017.

Bei einem rudimentären Online-/Offline-Vergleich kam bei mir eine Frage auf. Es gibt einen Unterschied, wie der Sekundenimpuls gebildet wird. Also ein Bit, das einmal pro Sekunde für genau einen Zyklus True ist, sonst false.

Offline: positive Flanke von M100.5 (CPU-internes Taktmerkerbyte auf MB100)
Online: Auslesen der Systemzeit, Vergleich zwischen Sekunden aus Systemzeit und Wert des vorherigen Zyklus

Prinzipiell ist beides funktional richtig. Ich würde in diesem Fall auch einfach die Programmierung des Online-Systems beibehalten.

Gibt es aber relevante Gründe, warum eine der beiden Varianten besser ist als die andere?
Natürlich gibts hier den Punkt der Wiederverwendbarkeit (Hardware-unabhängiges Programmieren ohne Merker), aber das wird dadurch zunichte gemacht, dass der Sekundenwert des vorherigen Zyklus in einem MW liegt. Man könnte noch die Synchronität mit anderen Systemen anführen, indem die interne Systemzeit von außen gestellt wird (hier fehlt mir jetzt das Wissen darüber, wie das interne Taktmerkerbyte funktioniert, hängt das auch an der Systemzeit?).
 
Gibt es aber relevante Gründe, warum eine der beiden Varianten besser ist als die andere?
Natürlich gibts hier den Punkt der Wiederverwendbarkeit (Hardware-unabhängiges Programmieren ohne Merker), aber das wird dadurch zunichte gemacht, dass der Sekundenwert des vorherigen Zyklus in einem MW liegt. Man könnte noch die Synchronität mit anderen Systemen anführen, indem die interne Systemzeit von außen gestellt wird (hier fehlt mir jetzt das Wissen darüber, wie das interne Taktmerkerbyte funktioniert, hängt das auch an der Systemzeit?).
Ein Taktmerker aus der Systemzeit lässt sich synchron mit anderen CPUs bilden die Zeitsynchron laufen (über NTP und dergleichen).
So synchronisiere ich z.B. Blinktakte über weite Distanzen auf verschiedenen CPUs.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Das Taktmerkerbyte ist unabhängig von der Uhrzeit, Uhr verstellen beeinflusst den Takt nicht. Das Taktmerkerbyte ändert sich allerdings asynchron zum OB1 (mitten im Zyklus). Wenn ein Bit mehrmals abgefragt wird, dann sollte für den OB1 eine Kopie ("Prozessabbild") des Taktmerkerbyte/bit verwendet werden.
Lesen der Systemzeit liest die Uhr und kann daher unterschiedlich lange Abstände der Sekundenpulse haben, wenn die Uhr verstellt oder synchronisiert wird.
 
Zurück
Oben