Welcome to our new forum
All users of the legacy CODESYS Forums, please create a new account at account.codesys.com. But make sure to use the same E-Mail address as in the old Forum. Then your posts will be matched. Close

Glättung von analogen Signalen

scorpion
2007-01-17
2007-01-19
  • scorpion - 2007-01-17

    Hallo zusammen

    Ich habe eine Anwendung bei der mir ein analoges Eingangssignal für die Anwendung zu unruhig ist.

    Kann mir jemand eine Baustein nennen, der ein Analogsignal "glätten" oder "filtern" kann. Weiss nicht genau wie man dem sagt

    Das Signal soll einfach gedämpft in der Steuerung zur Verfügung stehen.

    (Zur Info: System Wago 750-841)

    Für rasche Hilfe wäre ich dankbar, da wir in der Inbetriebsetzungsphase sind.

     
  • mwatermann - 2007-01-18

    servus,

    habe auf anhieb auch nichts passendes (zB in der oscat.lib finden können, anmerkung: sowas fehlt noch hugo )

    prinzipiell sollte das aber kein problem sein:

    einzelne messwerte addieren und dann mitteln. lässt sich doch recht einfach in einer funktion erledigen.

    interessant wäre natürlich die anwendung verschiedener filter...

     
  • Erik Böhm - 2007-01-18

    Hallo

    Du kannst ja den Wert des Analogeingangs z.B. alle 500ms in eine andere Variable kopieren, und dann mit dieser arbeiten.

    Dabei könntest du dann gleich 'Ausreisser' nach oben oder unten ausfiltern, oder das Signal nur übernehmen, wenn die Änderung einen gewissen Wert übersteigt.

    Gruss

    Erik

     
  • franklin - 2007-01-18

    moin scorpion,

    ich arbeite mit moeller system und da gibt es eine regelungstechnik toolbox.

    in dieser ist ein baustein (B_PT1_16Bit_Filter) enthalten mit dem du eine glättung des analogwertes machen kannst.

    die toolbox kannst du unter w www.moeller.net w unter support downloaden.

    nennt sich: XSOFT-APPLIB-REG

    XSoft-Applikationssoftware

    Regelungstechnik-Toolbox

    hoffe konnte dir damit weiterhelfen

    gruß

    franklin

     
  • Oberchefe - 2007-01-18

    Evtl. reicht ja so etwas:

    Gefiltert:=((x*Gefiltert)+Roh)/(x+1);
    

    Je nach Größe von x wird mehr oder weniger schnell gefiltert/reagiert. "Gefiltert" muß REAL sein, falls "Roh" ganzzahlig ist vorher umwandeln!

     
  • hugo - 2007-01-18

    hallo,

    in der oscat lib finden sich verschiedene dinge um eingangsignale zu filtern.

    1. das klassische tiefpassfilter FT_PT1

    2. sample & hold mit average bildung sh_2

    3. einmathematisches average filter ft_avg über eine programmierbare anzahl von samples

    weitere wuensche? lasst es mich wissen

    mittlerweile guibts dazu auch eine deutsche doku unter w www.oscat.de w

     
  • scorpion - 2007-01-18

    Hallo zusammen

    Besten Dank für die vielen Vorschläge.

    Mache nun einige Versuche.

    PS: Einfach genial wenn man so rasch kompetente Hilfe per Internet erhält!!

     
  • Denkes - 2007-01-18

    Hallo scorpion

    hier noch ein Nachtrag zu deinem Problem (für alle Fälle)

    In der WAGO-Bibliothek "Gebäude_allgemein.lib" gibt es 2 Funktionen (SendOnDelta für Integer und Word). Hier die WAGO-Original-Beschreibung:

    Funktionsbeschreibung:

    Der Funktionsbaustein SenOnDelta überträgt das Einganssignal “iEingang“ auf das Ausgangssignal “iAusgang“. Kleine Wertänderungen am Eingangssignal wirken sich jedoch nicht auf den Ausgang aus. Über den Parameter “wHyst“ wird vorgegeben, bei welcher Wertänderung am Eingangssignal das Ausgangssignal neu gesetzt wird.

    Beispiel:

    Das Eingangssignal und das Ausgangssignal haben den Wert 3000 und die Hysterese ist auf 100 eingestellt. Ändert sich der Eingangswert im Bereich von 2951 – 3049 hat dies keinen Einfluß auf das Ausgangssignal. Der Ausgangswert bleibt auf 3000 stehen. Erst bei Wertänderungen ≥ 50 (Hysterese / 2) wird das Eingangssignal auf den Ausgang übertragen.

    (Zitat Ende)

    Klingt für dein Problem recht plausibel oder ?

    Viel Erfolg bei der Inbetriebnahme

    Gruß Norbert

     
  • mwatermann - 2007-01-19

    ...gute idee... vllt. lassen sich so ja auch die hysterese bausteine aus der oscat.lib irgendwie dynamisch für dein vorhaben einsetzen...

    wäre dann ja auch eine art filter...

     
  • hugo - 2007-01-19

    in der version 1.4 der oscat.lib (kommt anfang februar) werden wir eine step filter, reagiert nur wenn der eingang sich um mehr als x bewegt in der lib haben.

    die verwendung solcher filter ist allerdings mit vorsicht zu geniessen. diese art von filter kann ganz schnell zu unerklärlichen phenomenen führen wenn damit z.b. klappen gesteuert werden sollen, wenn der wert um einen schwellenwert toggelt.

    wir werdem im gegensatz zu wago und anderen auch eine hysterese einbauen damit dieses vermieden bzw minimiert wird.

    generell sollte man zum filter pt1 glieder einsetzen soweit möglich.

     

Log in to post a comment.