TIA Analogeingang 4.20mA zu 2-10V Normierung

Speedevil

Level-2
Beiträge
14
Reaktionspunkte
1
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo Zusammen,

wir haben einen 4-20ma Drucksensor per 500Ohm Widerstand an einer S7-1200 angeschloßen.

Der AI hat 0-10V durch den Widerstand löst mir der Sensor ja nun von 2-10V auf. So nun komm ich einfach nicht auf den Trichter wie ich korrekt skaliere.

4mA sind 0 Bar und 20mA sind 25Bar. Er soll also bei 2V 0 Bar haben.

Ich habe viel probiert aber es hat nichts hingehauen, habe es eigentlich mehr durch probieren so eingestellt wie im Screenshot. Es funktioniert auch relativ gut, aber ich möchte es natürlich auch verstehen.

Ein bisschen peinlich ist mir das schon, aber wie gesagt ich komme alleine nicht drauf. Als Stiller Mitleser weiss ich was hier für Geräte unterwegs sind die mir bestimmt helfen können, damit ich es korrekt einstellen kann und beim nächsten mal auch selbst drauf komme.

Viele Grüße und morgen einen schönen Feiertag :)
 

Anhänge

  • Screenshot 2023-05-17 145404.jpg
    Screenshot 2023-05-17 145404.jpg
    34,3 KB · Aufrufe: 70
Wieviel Prozent sind denn 2V von 10V?
Und was sind 20% von 27648?
Den Ansatz hatte ich auch schon quasi bei (27648/100)*20 = 5529,6

NormX Min dann 5529,6
NormX Max dann 27648

Leider stimmt der Wert dann trotzdem nicht, verglichen mit meinem Sensor.



Habe mich eingelesen und bei meiner 10 Bit Karte dann auch die Werte in die Formel übertragen 0-25Bar komme ich auf

X = ((Aktueller Wert ? -204,8) *25Bar) / 819,2

Wie ich das aber auf das PEW übertrage dass mit 0-27468 rechnet ist mir nicht klar, da spielt die 10Bit auflösung (1024) ja keine Rolle mehr...
 
Mit welchem Sensor vergleichst du deinen gemessenen Wert denn? Ist der Wert plausibel?
Ich habe eine Analoges Druckmanometer, die Abweichungen sind aber bei 1-2Bar was nicht stimmen kann, also ich vertraue dem Druckmanometer mal...

Was Oliver in seinem Beitrag (Link oben) anwendet ist die Zeipunkteform der Geradengleichung.

Vielleicht wird es Dir damit etwas klarer.
Puh da fehlt mir der Zusammenhang...(Bin da eventuell zu viel Praktiker ;-)


Ihr meint dieser Weg sollte eigentlich passen:?

Den Ansatz hatte ich auch schon quasi bei (27648/100)*20 = 5529,6

NormX Min dann 5529,6
NormX Max dann 27648
 
Ich schlage mal meine Funktion vor:
Deklaration:
FUNCTION Ch2phVal : REAL
VAR_INPUT
// Eingabewert des Analogkanals
rValIn: REAL;
// Untergrenze des In-Wertebereiches
rUGrIn: REAL;
// Obergrenze des In-Wertebereiches
rOGrIn: REAL;
// Untergrenze des Ausgabebereiches
rUGrOut: REAL;
// Obergrenze des Ausgabebereiches
rOGrOut: REAL;
END_VAR

IF rValIn < rUGrIn THEN
rValIn := rUGrIn;
END_IF
IF rValIn > rOGrIn THEN
rValIn := rOGrIn;
END_IF

//Skalierung des Normsignals (0-10V, 0-20mA, 4-20mA) auf den physikalischen Wertebereich (0 - 1600 mbar o.Ä.)
Ch2phVal := ruGrOut + (roGrOut-ruGrOut) * (rValIn-ruGrIn) / (roGrIn-ruGrIn); //Out=(In-uGrIn)/(oGrIn-uGrIn)*(oGrOut-uGrOut)+uGrOut

Grüsse!
Flar
 
Nur mal zur Erläuterung: Die oben aufgeführte Funktion (Codesys-Schreibweise) würde mit der Fragestellung folgendermaßen funktionieren:

Druck_inbar:=Ch2phVal(2, 10, 0, 20) //2 Volt, 10 V, 0 bar, 20 bar

Hat bisher immer funktioniert.
 
Entschuldigung, es fehlt der aktuelle Messwert, z.B. 3.3 V:

Druck_inbar:=Ch2phVal(3.3, 2, 10, 0, 20) //2 Volt, 10 V, 0 bar, 20 bar
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Vielen Dank euch allen für die Hilfe, meine 1200er kann kein SCL daher sind die Funktionen relativ umständlich. Ich komme nächste Woche nochmal an die Anlage und werde es nochmal probieren (Auch prüfen ob das Manometer so auch stimmt) weil eigentlich sollte der Grundgedanke mit

"
Den Ansatz hatte ich auch schon quasi bei (27648/100)*20 = 5529,6

NormX Min dann 5529,6 (Integer 5530 ;-))
NormX Max dann 27648

"

ja funktionieren +-... Ich werde berichten. Danke nochmal an alle
 
Hm ich finde die klassischen Scale/Unscale-Bausteine irgendwie neben Spaghetticode überlegen.
Wenn man selber noch nix besseres gebaut hat, Tipp: bau was!
 
Zurück
Oben