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

Seite 2 von 3 ErsteErste 123 LetzteLetzte
Ergebnis 11 bis 20 von 25

Thema: Problem Analogwertberechnung

  1. #11
    Registriert seit
    18.09.2004
    Ort
    Münsterland/NRW
    Beiträge
    4.728
    Danke
    729
    Erhielt 1.161 Danke für 972 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Zitat Zitat von KingHelmer Beitrag anzeigen
    ...
    Sonst könnte man den Baustein selbst eventuell auf deine Bedürfnisse zuschneiden.
    Wenn man die Hilfe zu FC105 aufruft, dann findet man die benutzte Formel zum skalieren. Die lässt sich dann ziemlich einfach nach programmieren


    ==================
    marlob

    Gesendet mit Tapatalk

  2. #12
    Registriert seit
    21.02.2011
    Ort
    Deutschland, Baden-Würtemberg
    Beiträge
    995
    Danke
    115
    Erhielt 129 Danke für 102 Beiträge

    Standard

    Die könnte der Bastler mal reinstellen. Dann lässt sich da bestimmt was machen!
    Grüße,
    Flo

  3. #13
    bastler ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    03.10.2008
    Beiträge
    232
    Danke
    8
    Erhielt 1 Danke für 1 Beitrag

    Standard

    Du bist auf keinen Schlips getreten, ich bin dankbar für jede Hilfe. Wie schon gesagt, ich bin kein Programmierer, deshalb hoffe ich hier eine Lösung zu finden, die ich mit meinen Kenntnissen realisieren kann.

  4. #14
    bastler ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    03.10.2008
    Beiträge
    232
    Danke
    8
    Erhielt 1 Danke für 1 Beitrag

    Standard

    Gibt es vielleicht eine Lösung mit einen Baustein aus der Oscat-Bibliothek?

  5. #15
    bastler ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    03.10.2008
    Beiträge
    232
    Danke
    8
    Erhielt 1 Danke für 1 Beitrag

    Standard

    Formel des FC105 steht in der Hilfe!
    Geändert von bastler (30.07.2013 um 20:58 Uhr)

  6. #16
    Registriert seit
    21.02.2011
    Ort
    Deutschland, Baden-Würtemberg
    Beiträge
    995
    Danke
    115
    Erhielt 129 Danke für 102 Beiträge

    Standard

    Also im grunde willst du doch lediglich einen Anaogwert 4-20 mA Eingangskarte 0-32768 INTEGER WAGO, auf einen Analogwert 0-20 mA Ausgangskarte 0-32768 INTEGER bringen.
    Hier wäre mal mein kleiner Codeschnipsel dazu den ich früher mal für Analogwerte (Temperatur, aber unwichtig) geschrieben habe:

    zuerst der Input:

    Code:
    FUNCTION_BLOCK Temp_Input
    VAR_INPUT
        iAnalVal: INT;
        rTempUpperLimit: REAL;
        rTempLowerLimit: REAL;
        iAnalValUpperLimit: INT;
        iAnalValLowerLimit: INT;
        rAnzeigefaktor: REAL;
    END_VAR
    VAR_OUTPUT
        iActualVal: INT;
    END_VAR
    VAR
        AnalValRange: INT;
        TempRange: REAL;
        MulFactor: REAL;
        AddVal: REAL;
        ActualTemp: REAL;
    END_VAR
    Code:
    (*Range des Analogeinganges berechnen *)
    
    AnalValRange := iAnalValUpperLimit - iAnalValLowerLimit ;                     (*z.B. Range = 32761 - 0 = 32761*)
    
    (* Range der möglichen Temperatur berechnen *)
    
    TempRange := rTempUpperLimit - rTempLowerLimit;                             (* z.B. Range= 35,4 - 25,0 = 10,4 *)
    
    (* Multiplikationsfaktor aus Analogeingangswert berechnen *)
    
    MulFactor := INT_TO_REAL(iActualVal) / INT_TO_REAL(AnalValRange);          (* Ergebnis z.B. 0,6845 *)
    
    (* Additionswert für Temperaturbestimmung ausrechnen *)
    
    AddVal := TempRange * MulFactor;                                                  (* Ergenis z.B. 6,845*)
    
    (* Addieren des Additionswertes zum unteren Temperaturlimit *)
    
    ActualTemp := rTempLowerLimit +AddVal;                                          (* Ergebnis z.B. 31,845 *)
    
    (* Multiplizieren mit AnzeigeFaktor und Runden der Zahl durch Umwandlung in Integer *)
    
    iActualVal := REAL_TO_INT(ActualTemp * rAnzeigefaktor);                        (* Ergebnis z.B. 31,845 * 100,0 = 3185 *)
    
    (* ENDE *)
    Und der Output:

    Code:
    FUNCTION_BLOCK Temp_Output
    VAR_INPUT
        iAnalValUpperLimit: INT;
        iAnalValLowerLimit: INT;
        rTempUpperLimit: REAL;
        rTempLowerLimit: REAL;
        iSetVal: INT;
    END_VAR
    VAR_OUTPUT
        iAnalVal: INT;
    END_VAR
    VAR
        AnalValRange: INT;
        TempRange: REAL;
        DiffVal: REAL;
        MulFactor: REAL;
        rSetValReal: REAL;
    END_VAR
    Code:
    (* Range des Analogausganges brechnen *)
    
    AnalValRange := iAnalValUpperLimit - iAnalValLowerLimit;
    
    (* Range der möglichen Temperatureinstellung ausrechnen *)
    
    TempRange := rTempUpperLimit - rTempLowerLimit;
    
    (* Umrechnung des Sollwertes unter Berücksichtigung des Anzeigefaktors *)
    
    rSetValReal := INT_TO_REAL(iSetVal) / 100.0;
    
    (* Differenz von Sollwert zum unteren Grenzwert berechnen *)
    
    DiffVal := LIMIT(rTempLowerLimit, rSetValReal, rTempUpperLimit) - rTempLowerLimit;
    
    (* Multiplikationsfaktor aus Differenzwert und Analogwertrange berechnen *)
    
    MulFactor := DiffVal / TempRange;
    
    (* Berechnung des einzustellenden Analogwertes *)
    
    iAnalVal := REAL_TO_INT(INT_TO_REAL(AnalValRange) * MulFactor);
    
    (* ENDE *)
    Das habe ich aber im Codesys geschrieben.
    Aber in der Art müsste dein einzelner Baustein dann auch geschrieben werden.
    Bei meinem hier kannst du eben die Auflösung wählen und den Bereich der (in diesem Fall) Temperatur, sowie einen Anzeigefaktor (ich wollte die Temp mit zwei Nullen, z.B. 25,4 = 2540 als INT übertragen.
    Kann man natürlich ändern und anpassen auf deine Bedürfnisse.

    Vieleicht hilfts ja ....

    Grüße,
    Flo
    Geändert von KingHelmer (30.07.2013 um 20:42 Uhr) Grund: Und der Output....

  7. #17
    bastler ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    03.10.2008
    Beiträge
    232
    Danke
    8
    Erhielt 1 Danke für 1 Beitrag

    Standard

    Danke für die Hilfe.
    Also im grunde willst du doch lediglich einen Anaogwert 4-20 mA Eingangskarte 0-32768 INTEGER WAGO, auf einen Analogwert 0-20 mA Ausgangskarte 0-32768 INTEGER bringen.
    Genau das hab ich vor.
    Mit Codesys hab ich aber leider noch nie zu tun gehabt. Deshalb wird es für mich schwer, den Code in Step7 umzuwandeln.

  8. #18
    Registriert seit
    27.04.2006
    Ort
    Sauerland
    Beiträge
    626
    Danke
    183
    Erhielt 88 Danke für 81 Beiträge

    Standard

    Also am einfachsten wäre dann doch: PAW:= PEW

    Oder habe ich irgendwas falsch verstanden???

    Sepp7 AWL:
    L PEW xxx
    T PAW xx

    zum kästchen malen bin ich jetzt zu faul. aber move sollte da hefen.
    Geändert von repök (30.07.2013 um 21:02 Uhr) Grund: für sepp S7
    Die Kunst in der Personalführung ist es
    die Mitarbeiter so über den Tisch zu ziehen,
    dass sie die Reibungshitze als Nestwärme empfinden.

  9. Folgender Benutzer sagt Danke zu repök für den nützlichen Beitrag:

    ducati (31.07.2013)

  10. #19
    Registriert seit
    28.02.2006
    Ort
    Ostsee 5 min zum Strand
    Beiträge
    780
    Danke
    92
    Erhielt 110 Danke für 98 Beiträge

    Standard

    Moin,
    Da hat der 4L doch mal etwas zu geschrieben.


    http://www.sps-forum.de/showthread.php?t=19311

    Damit kannst du dir den Baustein selber schreiben und den Skalierungsfaktor auch noch variabel gestalten
    Geändert von Nordischerjung (30.07.2013 um 21:47 Uhr)
    Gruß von der Ostsee

    Nordischerjung
    _____________________

    Wenn man seinem Paßbild ähnlich zu sehen beginnt, sollte man schleunigst Urlaub machen. (Vico Torriani, schw. Entertainer)

    Ich habe eine Diät gemacht und fettem Essen und Alkohol abgeschworen - in zwei Wochen verlor ich 14 Tage. (Joe E. Lewis)

  11. #20
    Registriert seit
    09.08.2006
    Beiträge
    3.640
    Danke
    912
    Erhielt 661 Danke für 543 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Ich denke das Problem sind hier die Wago EA-Baugruppen. Keiner weiss was die genau machen, sprich welche Werte die rausgeben. Dann wird's auch mit dem Skalieren nix. Da hilft nur ins Wago-Handbuch schauen...

Ähnliche Themen

  1. OPC Problem routen problem
    Von kpeter im Forum Hochsprachen - OPC
    Antworten: 1
    Letzter Beitrag: 25.08.2010, 19:54

Lesezeichen

Berechtigungen

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