Step 7 Dauerlaufprogramm Laufzeit erfassen

Sancho90

Level-1
Beiträge
7
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo Zusammen,

ich bin neu hier und ich hätte eine Frage zur Programmierung in Step7 und hoffe das mir hier jemand helfen kann.

Nur kurz noch ein Paar Infos zur verwendeten HW und Software:
CPU: S7 315 PN/DP V3.2
SW: Step7 V5.5 SP4

Nun zu meinem Anliegen:

Ich habe ein Dauerlaufprogramm, das ich gerne ca. 1-7 Tage lang laufen lassen würde. Nun möchte ich aber nebenher eine Zeit laufen lassen, die mir anzeigt, wie viel Zeit seit Start des Dauerlaufs schon vergangen ist. Und falls Fehler aufgetreten sind, möchte ich gerne wissen, nach welcher Zeit der Fehler aufgetreten ist.
Meine Idee dazu war nun, mit einem Taktmerker (Einstellung 1Hz) einen Zähler (SFB0) zu triggern, der die abgelaufenen Sekunden zählt.
Würde es funktionieren, diesen Zählwert (DINT) mit einer Zeit zu multiplizieren damit ich am Ende eine Angabe in Tage, Stunden, Minuten erhalte?

Wenn ja, wie genau funktioniert das? Ich Programmiere hauptsächlich in FUP, in AWL kenne ich mich leider noch sehr wenig aus.


Vielen Dank!

Grüße

Sancho90
 
Zuviel Werbung?
-> Hier kostenlos registrieren
@RogerSchw85:
Du hast recht... allerdings zählt der Betriebsstundenzähler in der 315 nur die BetriebsSTUNDEN.
Wenn ich das recht verstehe, möchte er auf wenigstens Minuten runterbrechen für die Anzeige...

@Sancho90:
Du kannst Dir für fertige Funktionen die OSCAT-Bibliothek ansehen (www.oscat.de).
Ansonsten klappt das natürlich auch mit einem Zähler, der die Sekunden zählt. SFB0 wird aber nicht gehen, der zählt nur INT bis 32767. Bei 7 Tagen mußt Du aber bis 604800 zählen.
Da wirst Du selber einen DINT hochzählen müssen. Dafür gibt es die Bitverknüpfungen (Positive Flanke auf den Taktmerker), Festpunktfunktionen (ADD_DI).
Um daraus die anderen Zeiteinheiten zu machen, nutzt du die Funktion DIV_DI, um die Sekunden zu teilen.

Gruß
JS
 
Ich würde mir den Startzeitpunkt (Zeitstempel DATE_AND_TIME) merken, daraus kann man sich jederzeit die vergangene Laufzeit berechnen.
Bei besonderen Ereignissen wie Laufunterbrechungen und Fehlerereignissen würde ich mir einen Zeitstempel und einen Fehlercode in einen Ringpuffer schreiben. Daraus läßt sich später so ziemlich jede Statistik ableiten.

Harald
 
Oder eine Datenvariable vom Typ "TIME" hernehmen und jede Sekunde 3E8 hex dazuaddieren.
Bzw. 1000 dez, je nach Geschmack...;)
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Oder klassisch selber einen Betriebsstundenzähler bauen der bei Start rückgesetzt wird und in jeweils INT/DINT die Betriebssekunden, Minuten, Stunden, Tage, Wochen, . . . was auch immer hochzählt?
 
Hallo Zusammen,

leicht verspätet, aber trotzdem Vielen Dank für eine ganze Reihe möglicher Lösungen.
Ich werde mir mal die lösung von PN/DP mal etwas genauer anschauen, das hört sich recht interessant an.

Grüße

Sancho90
 
Zurück
Oben