Zuviel Werbung? - > Hier kostenlos beim SPS-Forum registrieren

Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 10 von 14

Thema: Mittelwertbildung S5-95U

  1. #1
    Registriert seit
    11.01.2007
    Beiträge
    15
    Danke
    3
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo!
    Ich messe mit einer S5 einen Wasserstand. Mein Problem ist, dass teilweise ziemliche Turbulenzen im Wasser vorhanden sind und der Messwert dadurch springt.
    Ich möchte daher meinen Messwert tiefpassfiltern. Dazu habe ich mir überlegt, die letzten 8 Messwerte aufsummieren und dann das Ergebnis 3 Bit nach links zu schieben um durch 8 zu dividieren.
    Weiss vielleicht irgendwer, wie ich mit der S5 die letzten Werte möglichst einfach abspeichere und den ältersten Wert duch den aktuellen ersetze? Gibt es vielleicht so was ähnliches wie ein Array, auf das ich mit einem Zähler direkt zugreifen kann?

    Vielen Dank für eure Hilfe!
    Zitieren Zitieren Mittelwertbildung S5-95U  

  2. #2
    Registriert seit
    27.05.2004
    Ort
    Thüringen/Berlin
    Beiträge
    12.222
    Danke
    533
    Erhielt 2.698 Danke für 1.950 Beiträge

    Standard

    Bei 8 Meßwerten kannst du das zu Fuß machen oder aber mit indirekter Adressierung. Bei der S5 war das der sogeannte "Bearbeite-Befehl" B.
    Ich würde bei jedem neuen Messwert (Flanke) wie folgt vorgehen:

    Nimm z.Bsp. einen DB, DW 1-8 für deine Messwerte.

    1. Variante
    -Schieben der Messwerte
    DW7 nach DW8
    DW6 nach DW7
    ...
    DW1 nach DW2
    -neuen Messwert eintragen
    Neuer Meßwert in DW1

    -Alles addieren und dann durch 8 teilen.

    2.Variante um etwas Rechenzeit zu sparen
    -Schieben der Messwerte
    DW8 nach DW9
    DW7 nach DW8
    DW6 nach DW7
    ...
    DW1 nach DW2
    -Neuen Messwert eintragen
    Neuer Meßwert in DW1

    -letzen Messwert raus aus der Summe, neuen Messwert rein (spart ein paar Rechenoperationen)
    Neue Summe = Alte Summe - DW9 + DW1;
    Alte Summe = Neue Summe

    PS: Achtung, reicht dir ein DW für das Aufsummieren von 8 Messwerten aus?
    Gruß
    Ralle

    ... there\'re 10 kinds of people ... those who understand binaries and those who don\'t …
    and the third kinds of people … those who love TIA-Portal

  3. Folgender Benutzer sagt Danke zu Ralle für den nützlichen Beitrag:

    demo (28.08.2007)

  4. #3
    Registriert seit
    23.11.2004
    Beiträge
    347
    Danke
    2
    Erhielt 28 Danke für 28 Beiträge

    Standard

    Hallo,

    zum Dividieren auf alle Fälle nach rechts verschieben!

    Ansonsten Flankengesteuert die Messwerte verschieben.

    z.B.
    L MW 20 alter 7.Wert
    T MW 22 neuer 8. Wert
    L MW 24 alter 6. Wert
    T MW 22 neuer 7. Wert
    ....

    L neusten Wert
    T alter 1. Wert

    Gruß
    raika

    Edit: War ich wohl zu langsam.
    Rainer Kandziora
    Grollmus GmbH
    Qualität in SIMATIC Schulungen
    E-Mail: mailto:Rainer.Kandziora@grollmus.de
    Internet: http://www.grollmus.de

  5. Folgender Benutzer sagt Danke zu RaiKa für den nützlichen Beitrag:

    demo (28.08.2007)

  6. #4
    Registriert seit
    27.05.2004
    Ort
    Thüringen/Berlin
    Beiträge
    12.222
    Danke
    533
    Erhielt 2.698 Danke für 1.950 Beiträge

    Standard

    Schau auch mal hier rein (Gleitender Mittelwert): http://www.sps-forum.de/showthread.p...ght=mittelwert

    und suche im Forum unter "Mittelwert".
    Gruß
    Ralle

    ... there\'re 10 kinds of people ... those who understand binaries and those who don\'t …
    and the third kinds of people … those who love TIA-Portal

  7. #5
    Registriert seit
    22.11.2005
    Ort
    kl.Odenwald
    Beiträge
    716
    Danke
    111
    Erhielt 85 Danke für 71 Beiträge

    Standard

    Ich hab das letzten's mal so realisiert. Die Anzahl der Mittelwert kannst du an über n einstellen.
    Die statischen Var's musst du halt per IN-OUT in den Baustein bringen.
    Den Code kannst du ja übersetzen lassen und als awl nach S5 verschieben, oder?


    hth

    Code:
     
    FUNCTION_BLOCK FB215
    TITLE = 'Mittelwert'
    //
    // Beschreibung:
    // Mittelt einen Analogwert über die letzten n Werte.
    VERSION : '1.0'
    AUTHOR  : 'FA/ST'
    NAME    : 'MITTEL'
    FAMILY  : 'CONTR'
     
    // Bausteinparameter
    VAR_INPUT
      // Eingangsparameter
        IN : REAL; // Analogwert (in REAL - Format)
        n : INT; // Anzahl der Werte        
        Reset : BOOL ;// Reset des internen Zählers
    END_VAR
    VAR_OUTPUT
     // Ausgangsparameter
        MittelWert : REAL; // Gemittelter Wert
    END_VAR
    VAR
      // statische Variablen
        z : INT; // Aktueller Zähler
        Sum_in : REAL; // Zwischenwert
    END_VAR
     
    BEGIN
     
      // Anweisungsteil
      IF Reset OR z > n THEN
          z := 0;
          sum_in := 0;
      END_IF;
      IF z < n THEN
           sum_in := sum_in + IN;
           z := z+1;
      ELSE
          sum_in := sum_in + IN - Mittelwert;
      END_IF;
      Mittelwert := sum_in / z;
    END_FUNCTION_BLOCK
    "Das Leben ist viel zu kurz, um schlecht zu essen !"
    (Johann Lafer zur SWR3 Grillparty)
    Zitieren Zitieren noch ne Variante  

  8. Folgender Benutzer sagt Danke zu kiestumpe für den nützlichen Beitrag:

    demo (28.08.2007)

  9. #6
    Registriert seit
    22.03.2007
    Ort
    Detmold (im Lipperland)
    Beiträge
    11.726
    Danke
    398
    Erhielt 2.401 Danke für 2.001 Beiträge

    Standard

    @Kiestumpe:
    Hattest du mal einen Blick darauf geworfen, welche Steuerung hier zum Einsatz kommen soll ...?

  10. #7
    Registriert seit
    30.06.2007
    Ort
    In der Pfalz
    Beiträge
    503
    Danke
    72
    Erhielt 77 Danke für 65 Beiträge

    Standard

    Zitat Zitat von Larry Laffer Beitrag anzeigen
    @Kiestumpe:
    Hattest du mal einen Blick darauf geworfen, welche Steuerung hier zum Einsatz kommen soll ...?
    ja, hat er!

    Zitat Zitat von kiestumpe Beitrag anzeigen
    Den Code kannst du ja übersetzen lassen und als awl nach S5 verschieben, oder?

  11. #8
    Registriert seit
    22.03.2007
    Ort
    Detmold (im Lipperland)
    Beiträge
    11.726
    Danke
    398
    Erhielt 2.401 Danke für 2.001 Beiträge

    Standard

    ...
    ich glaube, da hilft dann doch der Vorschlag von Raika oder Ralle weiter ...

  12. #9
    demo ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    11.01.2007
    Beiträge
    15
    Danke
    3
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Vielen Dank für die zahlreichen Lösungen!

    Ich werde einen Datenbaustein benutzen und den Lösungsvorschlag von Ralle nehmen.

    Ich habe mir auch schon Gedanken darüber gemancht, ob ein Wort, also 16 Bit ausreichen.
    Welche einfachen Möglichkeiten gibt es mit einem größeren Wert als 16 Bit zu arbeiten ohne Genauigkeit zu verlieren?

  13. #10
    Registriert seit
    16.05.2007
    Ort
    im Stahlwerk...
    Beiträge
    1.178
    Danke
    120
    Erhielt 429 Danke für 236 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Na es gibt bei S5 doch die gute, alte Gleitpunktzahl (32Bit). Dann müsstest Du natürlich nicht MW und DW sondern MD und DD benutzen...
    Umwandeln Festpunktzahlen (DW) nach Gleitpunktzahlen (DD) geht bei S5 mit dem Befehl FDG bzw GFD umgekehrt. Die Befehle gehören zum sog. "erweiterten Befehlssatz", man kann sie also nur in einem FB und nciht innerhalb eines PB benutzen..

    Ui, ich sehe gerade, dass Du ne 95U hast... Dann wird das wohl nix mit Gleitpunktzahlen...

    Gruß Aprox
    Nihil est in cpu, quod non fuerit in intellectu" - Nichts ist in der CPU, was nicht (zuvor) im Verstand war.

Ähnliche Themen

  1. Erweiterte Mittelwertbildung
    Von Full Flavor im Forum Simatic
    Antworten: 7
    Letzter Beitrag: 18.10.2011, 22:30
  2. Mittelwertbildung aus integer
    Von daudel im Forum Simatic
    Antworten: 10
    Letzter Beitrag: 14.11.2010, 14:56
  3. Mittelwertbildung SIWAREX U
    Von petzi im Forum Simatic
    Antworten: 35
    Letzter Beitrag: 20.06.2010, 10:42
  4. Mittelwertbildung
    Von pinolino im Forum Simatic
    Antworten: 45
    Letzter Beitrag: 26.01.2010, 20:06
  5. Mittelwertbildung
    Von Servomaster im Forum Simatic
    Antworten: 3
    Letzter Beitrag: 18.10.2005, 06:42

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •