Wago 0750-0460 und PT100 falsche Werte

Begonnen von volkmarrigo, 17. September 2008, 08:46:16

Vorheriges Thema - Nächstes Thema

0 Mitglieder und 1 Gast betrachten dieses Thema.

volkmarrigo

Hallo,

ich hab jetzt meine Analogen Eingangsklemmen bekommen und einen PT100 drangehängt. Leider stimmt mir die gemessene Temperatur nicht. Wärend es laut Termometer 18° hat, meldet die Klemme 22,5° . Kann es sein das ich bei der Klemme noch was einstellen? Die Länge der Leitung ist ca 8 m. Kann es dadurch zur falschen Temperatur kommen?

Grüße

Volkmar

gravieren

Mach doch mal den "gegentest".

Klemme den "selben" Fühler mit einen 10cm Kabel an dieselbige Baugruppe.

Was wird dann angezeigt.


volkmarrigo

hallo,

hat etwas gedauert aber jetzt konnte ich den test endlich machen. wenn ich den fühler direkt an die klemme hänge, dann passt der gemessene wert. also muss es am kabel liegen. diese sind die selben, die ich auch für den anschluss der taster verwendet habe (ungeschirmt).

jetzt ist die frage was tun?

grüße

volkmar

hugo

schau dir mal den abschnitt sensorik in unserer lib an.

1. dort findest du bausteine um kabel zu kompensieren. (das löst widerstandsprobleme durch kabel) siehe sensor_int

2. setzte nach dem sensor eingang einen FT_pt1 (tiefpassfilter) der sollte dir störungen ausfiltern.
    Die Zeit vom PT1 kannst du für Temperaturen auf viele sekunden setzen, es gibt ja keine schnellen änderungen

volkmarrigo

Hallo hugo.

das mit dem FT_PT1 macht sich, damit ich nicht dieses ständige flackern um 0,1 grad habe. was ich aber nicht ganz verstehe ist, wie ich das sensor_int verwenden soll (bin eben informatiker und kein regelungstechniker). ich bekomme ja vom 0750-0460 keine wiederstandswerte sondern schon temperaturen als int werte ( / 10 ergibt die termperatur in grad). kannst du mir einen codebeispiel geben, wie man den sensor_int einsetzt.

danke und grüße

volkmar

hugo

ja klar aber deine klemme ermittelt die temperatur indem sie den widerstand misst.

sie misst den widerstand indem sie einen konstanten strom durch den pt100 sendet und den spannungsabfall misst.
lege den ausgang der klemme (das ist im endeffekt der sensorwiderstand) die skalierung ist jedoch zu ermitteln.
sensor_int kann dann dazu benutzt werden die parasitären widerstände zu kompensieren.
in deinem fall ist das wohl der serienwiderstand.

einfacher gehts auch indem du deinen sensor kalibrierst lege ihn in eiswasser miss den wert TEiswasser
dann hast du einen offsetwert teiswasser muss immer von der messung abgezogen werden.

dann heisses wasser und ein referenzthermometer und ermittle den multiplikator

dann kannst du simpel mathematisch das ganze eichen (calibrate ist der richtige baustein dazu)

trojan

Hallo einmal an alle,

auch ich habe meine Probleme mit dem Kabelwiderstand beim PT100.
Frage: Wie komme ich bei der Oscat-Funktion "Sensor_Int" auf die Eingänge RP und RS ?
Wie soll ich diese Werte messen? Den Kabelwiederstand zu eruieren ist ja kein Problem, aber RP???

Zur Zeit habe ich die Anlage einfach mit Hilfe eines 100-Ohm Widerstand anstatt eines Messfühlers
Bzw. den 100-Ohm Widerstand direkt an der Wago angeschlossen und die Differenz ermittelt und diesen Wert fix abgezogen.
Das ganze Ist zwar nur für Temperaturmessungen einer Heizungen, hätte aber gerne die beste Genauigkeit was mit einem PT100 im Zweileiter Betrieb
zu erreichen ist.

lg und Danke für euer Hilfe

volkmarrigo

hi...

also ich hab's so gelöst und bin mit dem ergebnis recht zufrieden. der vorteil meiner lösung ist, dass sie recht einfach zu handhaben ist. dazu braucht du einen "referenzwiderstand". dazu habe ich mit einen 100 ohm und einen 10 ohm widerstand in serie geschaltet und 2 krokodilklemmen dran gelötet. das entspricht ca. einer temperatur von 25°. diese schliese ich dann direkt an die wago an und notiere mir die gemessene temperatur als referenztemperatur. dann verwende ich den folgenden baustein, um die einzelnen leitungswiderstände zu ermitteln:


FUNCTION_BLOCK FB_H_Kalibrierung
VAR_INPUT
inSensorwert: INT;
inReferenzTemp: INT;
END_VAR
VAR_OUTPUT
outLeitungswiderstand: REAL := -100;
END_VAR
VAR
rBuff1: REAL;
rBuff2: REAL;
END_VAR
IF (inSensorwert > -2000 AND inSensorwert < 2000) THEN
rBuff1 := inSensorwert;
rBuff1 := rBuff1 / 10;
rBuff2 := inReferenzTemp;
rBuff2 := rBuff2 / 10;

rBuff1 := RES_PT(T := rBuff1, R0 := 100);
rBuff2 := RES_PT(T := rBuff2, R0 := 100);

outLeitungswiderstand := rBuff1 - rBuff2;
END_IF


die inReferenztemp ist die direkt an der wago gemessene temperatur, inSensorwert ist der gemessene wert inklusive leitungswiderstand. outLeitungswiderstand ist dann der ermittelte leitungswiderstand.

dann verwende ich den folgenden baustein zum ausgleichen des ermittelten leitungswiderstands:


FUNCTION_BLOCK FB_H_Sensor
VAR_INPUT
inSensorwert: INT;
inKorrekturOhm: REAL := 0;
END_VAR
VAR_OUTPUT
outSensorwert: INT;
END_VAR
VAR
rBuff: REAL;
END_VAR

rBuff := INT_TO_REAL(inSensorwert);

(* widerstand ausrechnen und korrektur durchführen*)
rBuff := RES_PT(T := rBuff / 10, R0 := 100) - inKorrekturOhm;

(* temperatur ausrechnen *)
outSensorwert := REAL_TO_INT(ROUND(TEMP_PT(Res := rBuff, R0 := 100), 1) * 10);


versuch das mal und gib kurz bescheid, ob du so bessere ergebnisse erhältst.

grüße

volkmar

trojan

Danke für deine Info,

Iststand war wie beschrieben:
1) einen Ref.Widerstand direkt in die Wago stecken, Wert notieren
2) gleichen Widerstand anstatt des PT100 anschliessen, Wert an der Wago notieren, DIfferenz = Kabelfehler in °C

Jetzt habe ich mit der Funktion [FT_PT] den Widerstand des Fühler samt Kabelwiderstand ermittelt, dann den Kabelwiderstand abgezogen und mit der Funktion [TEMP_PT] wieder in °C zurückgewandelt.
Das schöne dabei ist, das es ich keinen Unterschied zwischen den beiden Lösungsansätzen finde (siehe Anhang Offset-Tabelle)
Der Eingangswert - dem Offsetwert = Tatsächlicher Wert. Berechnet wurde aber über den Weg der Widerstände.
Die gemessenen Werte waren zwichen -5°C und 70°C
Nur bei dem Wert ohne Fühler (850 °C) konnte ich einen Unterschied von einem halben °C feststellen

Meine Meinung:
Bei Lösungsansätze sind gleichwertig, wobei bei der ersteren Wahl die CPU weniger Arbeit hat
(Einfach vom gemessen Wert den Fehlwert abziehen)


[gelöscht durch Administrator]

trojan

hier noch meine Funlktion über Kabelwiderstand

::)

[gelöscht durch Administrator]

volkmarrigo

hallo,

pt100 widerstände sind nicht linear. laut mir solltest du unterscheide merken, wenn du die korrektur z.b. mit einem 100 oder 120 ohm widerstand überprüfst.

grüße

volkmar

shooter

Ein Pt100 ist 100 ohm bei 0 grad!!!!!!!
also mach dir ein cocktail aus eis und giesse wasser rauf bis das eis sich hebt.
warte 10 minuten und rure um.
Tu das in ein isolierte becher. Nehm den sensor und den becher und setzt die im kuhlschrank.
Dan mache den messungen.
in zweileiter bekomst du zum beispiel 102 ohm. dan ist die leitungswiderstand in eine leitung also 1 ohm.
aber den offset ist dan ungefahr 5 grad. das einstellen als offset ist gut genug.
Es ist bis 850 grad genau innerhalb 0.5 grad.
nur wenn die leitung gleiche temperatur bleibt.

in dreileiter wird das automatisch compensiert.
weil den dritte leiter auch gemessen wird und subtrahiert von die andere zwei
also in dreileiter system mit dreileiter wago klemmen geht das voll automatisch.
mit ein multimeter geht das auch.

am besten ist vierleiter dan spielen die leitungswiderstande uberhaupt keine rolle.
aber die gibts nicht bei wago
von pt100 weiss ich alles.