TIA Eigener Betriebsstundenzähler

Zuviel Werbung?
-> Hier kostenlos registrieren
RT_INFO Mode 25 statt OB1 nehme ich auf S7-1200, weil es da den OB1 Prevcycle nicht gibt.
Auch dort gibt es Ungenauigkeiten.
Kann man fertigem ungenau dokumentiertem Siemens Code generell nicht (mehr) trauen? Muss man wirklich alles genau testen und dann doch selber programmieren, um sicher zu sein, dass es wirklich 100% funktioniert? :rolleyes:

Betriebsstundenzähler kann man wohl am einfachsten mit Zählen des 1Hz-Systemtakts realisieren, auch wenn da je Schaltspiel durchschnittlich 0.5s zu wenig gezählt wird. Doch bei Betriebsstundenzählern von Aggregaten (mit nicht häufigen Schaltspielen) kommt es auf diese kleine Abweichung meistens nicht drauf an.

Interessehalber: Ab welcher Firmware-Version und TIA-Version gibt es RT_INFO bei S7-1200?

Wie können Sie für S7-1200/S7-1500 die Laufzeiten des gesamten Programms, von Teilprogrammen oder von bestimmten Organisationsbausteinen messen?
 
Habe heute Traces gemacht im Vergleich zu RT_INFO in Mode 1 und 25. Der OB1_PREV_CYCLE passt noch am ehesten zu Mode 1 von RT_INFO. RUNTIME scheint mir noch das realistischste Ergebnis zu liefern, vergleichbar zur selbst gebauten Differenz von RD_SYS_T. OB1_PREV_CYCLE liefert gerundete 2ms bei irgendwelchen 1.8ms von RUNTIME oder RD_SYS_T.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
... Ich sehe das nicht als kompliziert an, wenn man das etwas in seinem Programm kommentiert...
Angesichts dessen, dass man den Code eigentlich gar nicht braucht, ist er kompliziert genug.

... RT_INFO Mode 25 statt OB1 nehme ich auf S7-1200, weil es da den OB1 Prevcycle nicht gibt...
Wäre eine Lösung, die auf beiden Systemen funktioniert, nicht die bessere Wahl?
Es wurden doch schon verschiedene Ansätze genannt. Zu welcher Lösung kommst du denn?

So wie du in #1 dein Problem beschrieben hast, hapert es ja eigentlich nur an der Messung einer möglichst exakten Zykluszeit.
Versuche es doch mal hiermit:
Code:
#PREV_CYCLE := RUNTIME(#CYCLE_MEMORY);
 
Zuletzt bearbeitet:
Angesichts dessen, dass man den Code eigentlich gar nicht braucht, ist er kompliziert genug.


Wäre eine Lösung, die auf beiden Systemen funktioniert, nicht die bessere Wahl?
Es wurden doch schon verschiedene Ansätze genannt. Zu welcher Lösung kommst du denn?

So wie du in #1 dein Problem beschrieben hast, hapert es ja eigentlich nur an der Messung einer möglichst exakten Zykluszeit.
Versuche es doch mal hiermit:
Code:
#PREV_CYCLE := RUNTIME(#CYCLE_MEMORY);

Meine aktuelle Lösung steht im letzten Absatz meines Eröffnungsposts.😉
 
Zurück
Oben