-> Hier kostenlos registrieren
Servus an alle, die bei dieser Hitze trotzdem vor der Kiste sitzen (müssen)...
Ich bin leider nicht sonderlich bewandert, was die Programmierung anbelangt, aber eine so simple Routine hätte ich mir schon zugetraut - was scheinbar sehr überheblich war.
Problem:
Auf einer S7-226, programmiert mit Step 7-Micro/WIN, V 4.0.0.81 zähle ich für bestimmte Zustände die Dauer dieser Ereignisse in Sekunden mit.
In einem Unterprogramm sollen diese Sekunden für die Ausgabe in Stunden und Minuten umgewandelt werden. Hier meine Lösung für das Unterprogramm:
wobei LD0 die Eingangsvariable in Sekunden ist, LW4 und LW6 die Ausgabevariablen und LD8 eine temporäre Variable.
Im Prinzip funktioniert das auch alles wunderbar, ABER:
ab ca. 4.460 Stunden (also ca. 16.800.000 Sek) hat mein Tag plötzlich 48 Stunden, d. h. war Ereignis XY für 3 Stunden angestanden, werden 6 Stunden ausgegeben....
Nach Rücksetzen der Stundenzähler läuft wieder alles bestens - bis wieder über 4.460 Stunden zusammenkommen...
Kann mir jemand auf die Sprünge helfen???
Vielen Dank schon jetzt
Gruß
Servus
Ich bin leider nicht sonderlich bewandert, was die Programmierung anbelangt, aber eine so simple Routine hätte ich mir schon zugetraut - was scheinbar sehr überheblich war.
Problem:
Auf einer S7-226, programmiert mit Step 7-Micro/WIN, V 4.0.0.81 zähle ich für bestimmte Zustände die Dauer dieser Ereignisse in Sekunden mit.
In einem Unterprogramm sollen diese Sekunden für die Ausgabe in Stunden und Minuten umgewandelt werden. Hier meine Lösung für das Unterprogramm:
Code:
Network 1
LD SM0.0
MOVR LD0, LD8
/R 3600.0, LD8
TRUNC LD8, AC1
DTI AC1, LW4
Network 2
LD SM0.0
DTR AC1, AC1
MOVR LD8, AC2
-R AC1, AC2 //Std. als Real mit Nachkomma minus Ganzzahl
*R 60.0, AC2 //Umrechnung in Minuten
ROUND AC2, AC2
DTI AC2, LW6
wobei LD0 die Eingangsvariable in Sekunden ist, LW4 und LW6 die Ausgabevariablen und LD8 eine temporäre Variable.
Im Prinzip funktioniert das auch alles wunderbar, ABER:
ab ca. 4.460 Stunden (also ca. 16.800.000 Sek) hat mein Tag plötzlich 48 Stunden, d. h. war Ereignis XY für 3 Stunden angestanden, werden 6 Stunden ausgegeben....
Nach Rücksetzen der Stundenzähler läuft wieder alles bestens - bis wieder über 4.460 Stunden zusammenkommen...
Kann mir jemand auf die Sprünge helfen???
Vielen Dank schon jetzt
Gruß
Servus