Zykluszeit einer Anlage messen

Häring

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

Habe bei meinem neusten Projekt leider ein Paar schwierigkeiten...
Ich sollte zur Veranschaulichung die Zykluszeit meiner Anlage in einem TP177B anzeigen
Meine Idee war, die Zeit zwischen dem Startimpuls meiner Schrittkette und dem Endschritt der Schrittkette zu messen.
Leider habe ich hierzu keinerlei Ideen wie ich das nun am dümmsten lösen könnte
Zykluszeiten liegen bei etwa 5 sekunden und sollten im 10 ms Raster angezeigt werden
Ich hoffe ihr könnt mir irgendwie helfen :)

Habe übrigens eine CPU 315-2DP

Danke schonmal im Vorraus :)
 
... beim Startimpuls die aktuelle OB1-Zeit in einen DB schreiben, beim Beenden der Schrittkette die OB1-Zeit nehmen und von ihr die gespeicherte subtrahieren.

Thomas
 
Hallo Paule,
Inwiefern überarbeiten?
Bremsen gibt es leider nicht, da es sehr strikte Vorgaben seitens der Stückzahlen der Maschine gibt ;)
 
Nicht die Zykluszeit des Bausteines sollte gemessen werden ;)
sondern die zeit vom Einlegen eines Rohteiles durch einen Roboter bis zum Entnehmen des Fertigteils
Diese zeit sollte ich anzeigen ;)
 
5 Sekunden ist schon derbe lang.
Da musst Du ja schon bald aufpassen das Du nicht die max. mögliche Zykluszeit erreichst und Dir die Anlage in Stop geht ;)
Kenne die 300er Steuerungen nicht bei den 400er liegt die bei 6 Sekunden. -> Aufpassen!

Edit:
Ach Du meinst gar nicht die CPU-Zykluszeit ? :)
Na dann einfach wie beschrieben oder aber gibt auch fertige Bausteine glaube TIME_Begin und TIME_END
 
Zuletzt bearbeitet:
Zuviel Werbung?
-> Hier kostenlos registrieren
Nicht die Zykluszeit des Bausteines sollte gemessen werden ;)
sondern die zeit vom Einlegen eines Rohteiles durch einen Roboter bis zum Entnehmen des Fertigteils
Diese zeit sollte ich anzeigen ;)
Oh je, klar, hier steht es ja:
Meine Idee war, die Zeit zwischen dem Startimpuls meiner Schrittkette und dem Endschritt der Schrittkette zu messen
Sorry, mein Fehler. :icon_redface:
 
Kein Problem ;)
Naja dann werd ich mal morgen den Simatic Manager durchstöbern :)
Zum Glück ist Urlaubszeit und es ist genug zeit um es auszuprobieren ;)
Dankeschön für eure Tipps ;)
 
Ich würde jetzt mal behaupten dass es nicht 5 Sekunden sondern 5 Millisekunden heißen soll.
Die Maximale Zykluszeit der CPU ist zwar einstellbar, aber 5 Sekunden? ;)
Da kommt dann schon langsam mal der Fehler-OB ins Spiel.

5 Sekunden ist schon derbe lang.
Da musst Du ja schon bald aufpassen das Du nicht die max. mögliche Zykluszeit erreichst und Dir die Anlage in Stop geht ;)
Kenne die 300er Steuerungen nicht bei den 400er liegt die bei 6 Sekunden. -> Aufpassen!

Edit:
Ach Du meinst gar nicht die CPU-Zykluszeit ? :)
Na dann einfach wie beschrieben oder aber gibt auch fertige Bausteine glaube TIME_Begin und TIME_END

Ja ja ....... woran unsere knallharten Hardwarenahen AWL Programmierer immer sofort denken........... :ROFLMAO:
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hi,

man kann auch den SFC64 (Systemzeit der CPU) zur Zeitmessung nehmen.

Code:
      CALL  "TIME_TCK"
       RET_VAL:=#ZeitAnfang

// ...
// ...
// restliches Programm
// ...
// ...

      CALL  "TIME_TCK"
       RET_VAL:=#ZeitEnde

      L     #ZeitEnde
      L     #ZeitAnfang
      -D    
      SPP   m001                        // Springe, wenn Ergebnis > 0
      L     DW#16#7FFFFFFF              // Überlauf korrigieren
      +D    
m001: T     #Takt

Gruss Daniel
 
oder

über den SFB4 "Einschaltverzögerung"

Code:
      CALL  #Messtimer                  // TON SFB4
       IN:=#SK_betrieb                  // Schrittkette läuft
       PT:=T#24D20H31M23S247MS
       Q :=#Messtimer.Q
       ET:=#Messtimer.ET

      UN    #SK_betrieb
      SPB   m002
      L     #Messtimer.ET
      T     #Takt
m002: NOP   0

Gruss Daniel
 
Hallo !

... die Zykluszeit meiner Anlage in einem TP177B anzeigen
Meine Idee war, die Zeit zwischen dem Startimpuls meiner Schrittkette und dem Endschritt der Schrittkette zu messen.


Steht doch eindeutig dort, das es um die Taktzeit der Anlage ging ...:rolleyes:


Häring, probiere mal das:

- bei Startzeit deiner SK mittels SFC 1 <ReadSystemClock> die Systemzeit lesen (kommt im Format Date_And_Time)
- umrechnen der Stunden/Minuten und Sekunden in Millisekunden, den ms-Offset vom Rückgabewert "CDT" noch addieren und speichern
- bei Ende der SK erneut Systemzeit lesen und wieder umrechnen in Millisekunden
- Differenz bilden = Taktzeit deiner Anlage pro Stück
- Anzeige auf deinem Panel, dann sogar in 1ms Auflösung oder dort mit Dezimalpunkt auf 10ms anzeigen

Aber aufgepasst:
bei Betrieb deiner Anlage über Tageswechsel (Mitternacht) beginnt die Systemzeit wieder bei Null.
Ein Teil, dass die Anlage um 23:59:58 zu bearbeiten beginnt und um 00:00:03 fertig gestellt hat, hat dann bei der Differenzbildung eine "unmögliche" Taktzeit !
Dieses "Phänomen" kannst du aber durch 5-6 Zeilen abfangen, wenn du prüfst, dass die Endzeit deiner SK stets grösser als die Startzeit sein muss.
Ist das nicht der Fall, musst du nicht die Differenz bilden, sondern die Restzeit vom SK-Start bis Tagwechsel zur gelesenen SK-Endzeit addieren !

Viel Erfolg :)





 
Also ich hatte heute morgen ein wenig zeit das auszuprobieren...
Da ich kein SPS-Profi bin war das etwas komplizierter aber es ging :D
Habe leider festgestellt dass sich die angeizeigte zeit oft verändert, trotz gleicher zeiten...
Gibt es nicht eine lösung mit der man z.B den mittelwert der letzten zyklen messen kann??
 
Hallo,
wie hast du es denn aktuell gelösst ?

Auf jeden Fall - etwas Fertiges gibt es da nicht.
Du kannst aber deiner Messwerte einfach aufsummieren und durch die Anzahl der Messungen dividieren - dann hättest du auch einen Mittelwert.
Alternativ könntest du dir auch ein FiFo über z.B. 10 Werte bilden und aus der Summe des FiFo's / 10 den Anzeigewert bauen. Mit jeder neuen Messung schiebst du das FiFo um 1 auf und setzt den "neuen" Messwert vorne rein.

Gruß
Larry
 
Ich würde mir die aktelle Systemzeit (Date and Time) bei Zyklusanfang sichern und diese bei Zyklusende von der aktuelle Systemzeit (ebenfalle DT) subtrahieren. Dafür gibts in der IEC-Bibliothek eine Baustein: FC 34 "SB_DT_DT". Das Ergebnis bekommst du als TIME.
 
Zurück
Oben