PT1000 Umschalter mit gen_SQ und TONOF

Begonnen von martin.k, 02. November 2008, 20:03:31

Vorheriges Thema - Nächstes Thema

0 Mitglieder und 1 Gast betrachten dieses Thema.

martin.k

Hallo !

Analogeingänge für Temperaturfühler sind sehr teuer. Wahrscheinlich niemand im Bereich der Gebäudeautomatisierung braucht Temperaturen im Sekundentakt.
Ich habe mit einem hochwertigen Relais eine Umschaltung realisiert.

Thema: Hausautomatisierung - Temperaturfühler
Verwendete Bausteine: gen_SQ und TONOF

Manche SPS bleiben stehen wenn PT-Fühler abgeklemmt werden. Meine zum Glück nicht. :-)
Anbei ein Screenshot.
Das Relais schaltet im 5min-Takt an und aus.
30 Sekunden später steht der Messwert zur Verfügung, da der Analogeingang etwas Zeit bis die rote "Fehlermeldungs"-LED wieder ausgeht.
Mit weiteren Relais könnte man so mehrere Fühler mit einem Eingang nutzen.

Was mir noch fehlt:
Wie kann ich den Messwert mit einem Impuls in eine Variable schreiben?
DANKE
Habe keine Ahnung von SPS, ich kann nur Bausteine miteinander verknüpfen :-)

Grüße, Tschüß, Martin



[gelöscht durch Administrator]

Andy

Hallo Martin,

habe ähnliches bei mir laufen. Einen Analogeingang für NI1000 und mehrere DO mit vergoldeten Kontaktausgängen. Also keine externen Relais. NI1000 um die Einflüsse der Übergangswiderstände der Kontakte so gering wie möglich zu halten. PT1000 sollte aber ähnlich gut funktionieren. Für das ganze habe ich einen 'Multiplexer' geschrieben, welcher zyklisch die Relais ansteuert und dann die Messwerte auf den entsprechenden Ausgang schreibt. Zusätzlich läßt sich für jeden Messwert ein Offset festlegen, um eventuelle Leitungswiderstände auszugleichen.
Wenn's Dich interessiert, einfach nur den angehänten Code als exp Datei abspeichern und in Dein Projekt importieren.
Sens_In ist der Analogeingang, Sens_Count die Anzahl der angeschlossenen Sensoren. Mit SampleTime legst Du fest, wie schnell von Eingang zu Eingang geschaltet wird. Die Sens-Ausgänge steuern den DO/Relais und an den Temp-Ausgängen stehen permanent die Ausgelesenen Temperaturen an.

Gruß
Andreas

(* @NESTEDCOMMENTS := 'Yes' *)
(* @PATH := '' *)
(* @SYMFILEFLAGS := '2048' *)
FUNCTION_BLOCK SENS_MUX

VAR_INPUT
Sens_In:WORD;
Sens_Count:INT;
Sample_Time:TIME := t#10s;
Offset_Temp0:REAL;
Offset_Temp1:REAL;
Offset_Temp2:REAL;
Offset_Temp3:REAL;
Offset_Temp4:REAL;
Offset_Temp5:REAL;
Offset_Temp6:REAL;
Offset_Temp7:REAL;
Offset_Temp8:REAL;
Offset_Temp9:REAL;
END_VAR

VAR_OUTPUT
Sens0:BOOL;
Sens1:BOOL;
Sens2:BOOL;
Sens3:BOOL;
Sens4:BOOL;
Sens5:BOOL;
Sens6:BOOL;
Sens7:BOOL;
Sens8:BOOL;
Sens9:BOOL;
END_VAR

VAR_OUTPUT PERSISTENT
Temp_0:REAL;
Temp_1:REAL;
Temp_2:REAL;
Temp_3:REAL;
Temp_4:REAL;
Temp_5:REAL;
Temp_6:REAL;
Temp_7:REAL;
Temp_8:REAL;
Temp_9:REAL;
END_VAR

VAR
Curr_Sens:INT := 0;
StartTime:TIME := t#0s;
WaitTime:TIME;
END_VAR
(* @END_DECLARATION := '0' *)
IF TIME() - StartTime >= Sample_Time THEN;
StartTime:=TIME();
WaitTime := StartTime;
IF Curr_Sens < Sens_Count - 1 THEN
Curr_Sens := Curr_Sens + 1;
ELSE;
Curr_Sens := 0;
END_IF;
Sens0:=FALSE;
Sens1:=FALSE;
Sens2:=FALSE;
Sens3:=FALSE;
Sens4:=FALSE;
Sens5:=FALSE;
Sens6:=FALSE;
Sens7:=FALSE;
Sens8:=FALSE;
Sens9:=FALSE;
CASE Curr_Sens OF
0:Sens0:=TRUE;
1:Sens1:=TRUE;
2:Sens2:=TRUE;
3:Sens3:=TRUE;
4:Sens4:=TRUE;
5:Sens5:=TRUE;
6:Sens6:=TRUE;
7:Sens7:=TRUE;
8:Sens8:=TRUE;
9:Sens9:=TRUE;
END_CASE;
ELSIF TIME() -WaitTime >= t#3s THEN;
CASE Curr_Sens OF
0:Temp_0 := WORD_TO_REAL(Sens_In)/10+Offset_Temp0;
1:Temp_1 := WORD_TO_REAL(Sens_In)/10+Offset_Temp1;
2:Temp_2 := WORD_TO_REAL(Sens_In)/10+Offset_Temp2;
3:Temp_3 := WORD_TO_REAL(Sens_In)/10+Offset_Temp3;
4:Temp_4 := WORD_TO_REAL(Sens_In)/10+Offset_Temp4;
5:Temp_5 := WORD_TO_REAL(Sens_In)/10+Offset_Temp5;
6:Temp_6 := WORD_TO_REAL(Sens_In)/10+Offset_Temp6;
7:Temp_7 := WORD_TO_REAL(Sens_In)/10+Offset_Temp7;
8:Temp_8 := WORD_TO_REAL(Sens_In)/10+Offset_Temp8;
9:Temp_9 := WORD_TO_REAL(Sens_In)/10+Offset_Temp9;
END_CASE;
END_IF;
END_FUNCTION_BLOCK

hugo

Bitte bechtet beim Einsatz von Releais das standard Relais garantierte Schaltzyklen haben die normalerweise bei 10^6 schaltzyklen liegen.

dies beudeutet das bei einem schaltzyklus / sekunde bereits nach 11 Tagen der garantierte Bertiebsbereich vom Relais überschritten wird.
bei einem Schaltzyklus / minute wäre das in bereits 2 Jahren der Fall.

füpr eine Anwendung die viele Jahre stabil laufen soll würde ich an dieser Stelle keine Relais einsetzen.
elektronische Relais mit MOS-FET kommen aber wegen des RDSon auch nicht in Frage.

Andy

Hallo,

mein 750-514 ist mit 2x105 Schaltspielen bei 1A DC angegeben. Ich gehe davon aus, daß sich bei dem geringen Meßstrom die Lebenserwartung den garantierten mechanischen  Schaltspielen von 108 nähert. Bei meiner Anwendung erfolgt die schnellste Abfrage aller 30 Sekunden. Wenn ich mich jetzt nicht verrechnet habe, bekomme ich dann in 95 Jahren die ersten Probleme. Damit kann ich sterben  ;)
Ich denke, für den Hausgebrauch ist das eine kostengünstige Lösung. In der Firma würde ich es eher nicht machen.

Gruß
Andreas

hugo

manche relais haben eine definition der mechanischen schaltspiele, ohne kontaktbelastung die werte die ich hier kenne sind bei 10^7

das wären 9,5 jahre.

aber das ist nicht die zahl die ein relais mindestens kann.
das ist eine statistische zahl (die kuppe der gaussverteilung)
genauergesgt sind bei diesemn wert bereits die hälfte der relais ausgefallen.

man muss genauer sagen:
10^7 mechanische schaltspiele / 1 mio = 10 jahre (die 1 mio ist ein schaltvorgang alle 30 sekunden).
wenn du das relais alle 30 Sekunden ein und aus schaltest musst du diesen wert noch durch 2 teilen denn das sind jeweils 2 schaltspiele.

somit sind wir wahrscheinlich schon bei 5 Jahren. und in 5 Jahrten sind statistisch bereits die Hälfte deiner releais ausgefallen.


Sparsam ja aber bitte bedenkt was ein defekt kostet

Andy

igitt - Statistik  ???

die http://www.wago.com/wagoweb/documentation/750/ger_dat/d051400d.pdf sagen 108
Bedeutet für mich nach Deiner Rechnung, daß mir nach 50 Jahren die Hälfte ausgefallen ist. Ich kenne nicht die MTBF von Analogbaugruppen. Außerdem habe ich in dieser Zeit bestimmt schon den 2. oder 3. Controller, weil ich dem Flash rübergeholfen habe.

Ich will hier keinen Streit vom Zaun brechen. Für meine Anwendung bedeutet das, daß ich mal irgendwann einen zu warmen oder zu kalten Raum habe. Also verschwendete (oder eingesparte  ;D) Energie. Wenns ganz dumm kommt, und der Raum Frost bekommt, ziehen wir mal wieder die Statistik zu Rate und berechnen, wieviel ausgefallene Relais, welche über mehrere Tage in einem Dauerfrostklima in einem bewohnten Haus unbemerkt zu Frostschäden führen können.
Fehlmessungen auf Grund Verschleiß bedeuten in dieser Anordnung eine vorgetäuschte höhere Temperatur, welche idR Frau umgehend bemängeln wird  ;)

Nochmal - wir reden hier über eine kostengünstige Lösung für den Privatgebrauch. Wenn man Deine und meine Argumente beachtet und diese Lösung mit Bedacht einsetzt, spricht meiner Meinung nichts dagegen.


hugo

ja ich habe ja kein problem mit der lösung, wollte nur klarstellen was die lebensdauer angaben bedeuten

shooter

bitte drei drahte schalten lassen und nicht zwei
dan gibt es correcte wiederstande in alle standen.
und wenn du mux das int setzt geht das gans gut.
ich habe mal ein telefonrelais benutzt ging gans gut.
fur den hobby sehr gut.
um beim umschalten kein fehler zu bekommen erst mahl den nachste anschalten und dan die alte abschalten.
dan bekommst du aber kurz temps von -100 aber kein rot licht.
und naturlich auch kein stoppen von programme und alarme. usw.