Durchschnitt von 10 Takten

dimo_77

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

ich soll von verschiedenen Bewegungen eine Zeit messen.
Nun will ich von x Durchläufen den Durchschnitt nehmen!

Hat jemand eine elegante Lösung dafür?


mfg

Dimo:cool:
 
Hi, so mal ganz auf die Schnelle:

Wenn Stückzähler 10 + Reset dann Reset Stückzähler und Impulszähler.

Impuls 100ms

Wenn Start des Stückes, zähle Impule in Impulszähler

Wenn Stop des Stückes, Zähle Stückzähler +1


Impulszähler / Stückzähler = durchschnittswert


Hoffe es ist dir hilfreich
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Wenn es für eine S7-300 ist, nimmst Du am besten den SFC64 (TIME_TCK) um die Zeit zu messen. Das ist die Systemzeit die ständig hochläuft. Du speicherst die Startzeit und die Endzeit deines zu messenden Zeitraumes und rechnest die dann die Differenz der beiden aus. dann hast Du die verstrichene Zeit im Format TIME in ms auf 10ms genau (Bei 400er 1ms).

Hilft das?
 
Also ich würde das ganze mit dem Time TCK (glaube so heißt der) machen (SFC64) Startzeit des Ereigniss auslesen - Endzeit auslesen - eine Subtraktion machen - und schon hast du die Zeit in ms. Danach alle 10 Takte zusammenzählen, durch 10 dividieren und schon hast du deine Durchschnittszeit!
 
Den Durchschnitt der letzten 10 messungen bekommst Du in etwa so:
Code:
      UN    "FL_Takt"
      SPB   tak1
      L     "Takt_10".Zaehler
      INC   1
      T     "Takt_10".Zaehler
      L     10
      <=I   
      SPB   weit
      T     "Takt_10".Zaehler
weit: L     0
      T     #summe
      L     "Takt_10".Taktzeit_9
      T     "Takt_10".Taktzeit_10
      T     #summe
      L     "Takt_10".Taktzeit_8
      T     "Takt_10".Taktzeit_9
      L     #summe
      +D    
      T     #summe
      L     "Takt_10".Taktzeit_7
      T     "Takt_10".Taktzeit_8
      L     #summe
      +D    
      T     #summe
      L     "Takt_10".Taktzeit_6
      T     "Takt_10".Taktzeit_7
      L     #summe
      +D    
      T     #summe
      L     "Takt_10".Taktzeit_5
      T     "Takt_10".Taktzeit_6
      L     #summe
      +D    
      T     #summe
      L     "Takt_10".Taktzeit_4
      T     "Takt_10".Taktzeit_5
      L     #summe
      +D    
      T     #summe
      L     "Takt_10".Taktzeit_3
      T     "Takt_10".Taktzeit_4
      L     #summe
      +D    
      T     #summe
      L     "Takt_10".Taktzeit_2
      T     "Takt_10".Taktzeit_3
      L     #summe
      +D    
      T     #summe
      L     "Takt_10".Taktzeit_1
      T     "Takt_10".Taktzeit_2
      L     #summe
      +D    
      T     #summe
      L     "Takt_10".Tickerzeit//Hier ist die Differenzzeit vom SFC64
      T     "Takt_10".Taktzeit_1
      L     #summe
      +D    
      T     #summe
      L     "Takt_10".Zaehler
      /D    
      T     "Takt_10".mitt_Taktzeit
      T     "Takt_10".OP_Zeit_10Stk
tak1: NOP   0
 
Zuletzt bearbeitet:
Zurück
Oben