Schwankungen in Analogeingangs Werten

Speedo
2010-02-13
2010-02-15
  • Speedo - 2010-02-13

    Hallo Miteinander

    Hab meine Sensoren

    Ultraschallsensor Temperatur sensor (Kein PT100)

    Nun an die Wago angeklemmt.

    Nun Schwanken aber diese Werte sehr extrem. An was kan das Liegen?

    Hab die Sensoren auch schon direckt angesteckt bei der Karte jedoch Ohne erfolg.

    Auf was muss ich alles achten?

    gruss Simon

     
  • Anonymous - 2010-02-13

    Originally created by: Andy :-)

    Hallo,

    eventl. Schaltnetzteil als Spannungsversorgung ?

    Ich habe meine Probleme mit Ferritringen und X2-Kondensator minimieren können. (Meanwell-Netzteil, Stromsignal an 492er Klemme)

    Etwas mehr zu Deiner Hardware könnte helfen ....

    mfg

    Andy

     
  • hugo - 2010-02-14

    grundsätzlich musst du dich damit abfinden das die werte von sensoren schwanken oder mit rauschen bzw störungen überlagert sind.

    die frage ist nur wieviele dieser störungen du akzeptieren willst / kannst.

    die art der störung ist entscheidend: leitungsinduzierte, rauschen, ....

    grundsätzlich solltest du darauf achten das du bei hochohmigen eingängen einen eingang mit filter nimmst, oder eiunen solchen in form von kapazitäten vor den eingang schaltest.

    bei längeren anschlussleitungen ist es besser niederohmig anzuschliessen, z.b. die berühmte stromschleife.

    in der software kannst du die üblöichen störungen / rauschen auch mittels eines Tiefpasses ausfiltern. auch PT1 glieder genannt.

    schau dir dazu mal den ft_pt1 in der oscat lib an

     
  • raadya - 2010-02-15

    Hallo Simon,

    Der Sensor konvertiert die Temperatur auf die Spannung und die Spannung wird dann mittels A/D-Wandler auf das digitale Signal konvertiert, damit es im Computer bearbeiten werden konnte.

    Bereich von vielen A/D-Wandlers ist -10 bis +10V und diese Spannung wird dann wie Datentyp INTEGER präsentiert. (Wert -32767 bis 32767).

    Also, wenn sich das Signal um 0.1V ändert, in PLC kannst du Änderung 327 "Einheiten" sehen.

    Was damit:

    1. Software-Filter verwenden (LOW-PASS).

    2. kleine Änderungen im Signal werden ignoriert. Folgendes Beispiel wird auf Änderungen >0.03V reagieren:

    VAR
      FilteredTemp : INT;
    END_VAR
    FilteredTemp := RealTemp / 100;
    (* RealTemp = Wert vom Sensor *)
    
    1. Hardware-Filter - einen Kondensator verwenden
    2. Kondensator verursacht, dass sich die Werte stetig ändern.
    3. auch kleine Änderungen werden bearbeitet.
    4. die Werte können nicht so schnell gelesen werden (Kondensator verursacht eine Verzögerung)

    Den Kondensator musst du paralell zum Sensor verbinden. (am Besten zum Stecker auf dem PLC)

     ------+--------+
           |        |
      C   ---       X Sensor
    100n  ---       X
           |        |
     ------+--------+
    

    Die Kapazität des Kondensators musst du prüfen. 100 nano ist nur ein Vorschlag.

    1. Baustein TON
      Statt Kondensator kannst du TON verwenden. Funktionalität ist ähnliche, und du brauchst keinen "extra-Hardware" dazu.
    VAR
      Timer : TON;
    END_VAR
    Timer(IN := TRUE; PT := t#100ms)
    IF Timer.Q THEN
      Timer(IN := FALSE);
      ...
      (* Wert vom Sensor bearbeiten *)
      ...
    END_IF;
    

    Mittels Variable "Timer.PT" kannst du den Zeit-Interval ändern.

    Meine "Lieblingslösung" wäre die 2.

    Raadya

     

Log in to post a comment.