Mittelwert bilden (von zb 5 SPS-Zyklen)

Matthias O.

Level-1
Beiträge
18
Reaktionspunkte
2
Zuviel Werbung?
-> Hier kostenlos registrieren
:confused: Hallo :confused:

Ich hab einen Motorregler der mir einen Analogwert des Stroms den er aufnimmt gibt!
Das signal schwankt stark!

Ich würde gern folgendes machen:

in FUP wenns geht!

Ersten gelieferten Wert in REAL (Eingangssignsl) in DB (Ausgangswert) schieben
Wert auch in temp variable SUMME schieben
Wert zu SUMME zählen Zähler zurückzählen (zb 5 mal)
dann wenn 5. Zyklus erreicht ist SUMME durch 5 dividieren
diesen Wert in DB (Ausgangswert) schieben
wiederholen

Nur wie zähl ich jeden Zyklus von 5 zurück??

BITTE UM HILFE
 
Das ist mit FUP etwas unbequem. Ich würde mir ein Schieberegister bauen, aber in AWL.

Es gibt irgendwo auch einen fertigen FIFO, such mal hier im Forum, evt. hilft dir das ein wenig.

pt
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Mittelwert

Hi,
ich habe mal sowas gemacht, Mittelwert aus 30 Werte,
eine FC, hier guckst Du(als Denkanstoss):

Code:
  UN    #Start
      BEB   

// Istwert abspeichern
      AUF   #Daten_DB
      L     DBW  124                    // Index
      T     #Index
      L     4
      *D    
      SLD   3
      T     #Ind_pointer                // Pointer-Adresse
      L     #Ist_Wert
      T     DBD [#Ind_pointer]
 

// Mittelwertbildung
      LAR1  P#0.0
      L     0.000000e+000
      T     #summe_real
      L     30
nxt1: T     #counter1
      L     0.000000e+000
      L     DBD [AR1,P#0.0]
      ==R   
      SPB   ok_1
      L     #summe_real
      +R    
      T     #summe_real
      +AR1  P#4.0
      L     #counter1
      LOOP  nxt1
      L     #summe_real
      L     3.000000e+001
      /R    
      T     #summe_real
// Mittelwert speichern,falls über 0
      L     0.000000e+000
      L     #summe_real
      >R    
      SPB   neg
      T     #Mittelwert
      SPA   ok_1
      L     #Ist_Wert
      T     #Mittelwert
      SPA   ok_1
neg:  L     0.000000e+000
      T     #Mittelwert
ok_1: SET   
 
      AUF   #Daten_DB
// Index erhöhen
      L     DBW  124
      L     1
      +D    
      T     DBW  124
      L     DBW  124
      L     30
      >=D   
      SPBN  klei
      L     0
      T     DBW  124
klei: SET

Gruss: Vladi
 
Zurück
Oben