08.06.2016 19:29 | |
Beigetreten: 04.03.2006 Letzter Bes: 01.01.2019 Beiträge: 213 Bewertung:
|
Hallo zusammen, Ich möchte gerne die Zeit zwischen den Impulsen eines Signale erfassen. Mein erster Gedanke war die Runtime Anweisung. Diese wird über eine Flanke am EN Eingang aufgerufen. Der RV ist aber immer Null.... Hat jemand einen Vorschlag? CPU 1513F-1 Gruß PAC_Man
|
09.06.2016 08:49 | |
Beigetreten: 06.05.2010 Letzter Bes: 13.03.2025 Beiträge: 2012 Bewertung:
|
Hallo PAC_Man, ich weiß jetzt nicht, wie groß die Abstände zwischen den einzelnen Signalen sind. Zur Messung zwischen den Signalen würde ich folgendermaßen vorgehen: Vielleicht ist das eine Variante zur Messung. Grüße CaOd |
Für diesen Beitrag bedanken sich
1 Benutzer |
09.06.2016 11:14 | |
Beigetreten: 09.07.2015 Letzter Bes: 14.03.2025 Beiträge: 4198 Bewertung:
|
Hallo PAC_Man, ich bin mir nicht sicher ob das mit dem Flankenaufruf geht. Evtl. muss die Messung im gleichen OB1 Zyklus stattfinden aber das steht nirgendwo richtig. Guck mal in die Online-Hilfe bei TIA bzw. gibts dazu auch einen FAQ: Wie können Sie bei der S7-1200/S7-1500 die Gesamtzykluszeit eines Programms messen? Die Idee mit T_Diff, etc. zu arbeiten wird sicher hinhauen wenn die Impulse nicht zu schnell / kurz hintereinander kommen und die CPU das auflösen kann. Gruß, Towome |
|
|
09.06.2016 13:47 | |
Beigetreten: 18.02.2013 Letzter Bes: 12.03.2024 Beiträge: 102 Bewertung:
|
Die Messung mit dem Runtime-Befehl muss nicht in einem OB-Zyklus stattfinden, sie kann ebenso über viele Zyklen hinweg laufen. Pro Messung, die parallel laufen kann muss man eine separate Variable MemMeineMessung spendieren und pro Messung muss man den RUNTIME Befehl mit der entsprechenden Variable MemMeineMessung einmal zum Startzeitpunkt aufrufen und einmal zum Endzeitpunkt, denn das Ergebnis entspricht immer der Differenz der beiden Zeitpunkte. Außerdem setzt jeder Aufruf des Befehls einen neuen Referenzpunkt, d.h. die Variable MemMeineMessung erfasst die Zeit des Aufrufs. Insofern kann man einen Endpunkt auch gleich sofort als neuen Startpunkt verwenden und auf diese Weise eine fortlaufende Erfassung von etwas zyklischem machen. Die Variable MemMeineMessung muss natürlich statisch sein, also nicht in VAR_TEMP. VAR_TEMP reicht nur aus, wenn die Messung in einem Bausteindurchlauf stattfindet, so wie im Beispiel. Ich programmiere Messungen normalerweise mit einem MessFB. Damit kann ich so viele Instanzen anlagen wie ich gleichzeitig laufende Messungen oder gleichzeitig verfügbare Messergebnisse brauche. |
05.03.2019 10:52 | |
Beigetreten: 26.08.2008 Letzter Bes: 13.03.2025 Beiträge: 316 Bewertung:
|
Hallo, ich wärme das Thema etwas auf. Das man den "Runtime" am Anfang und Ende aufrufen muss um die Zeitdauer zwischen den Aufrufen zu messen ist klar. Geht es irgendwie, dass man die Funktionen an einer Stelle in einem FB aufruft aber damit die Gesamtzeit von OB1 misst? Gruß |
Folgen Sie uns auf