Temperaturmessung mit einer S7-1200 und PT1000

Mit 6 Analogeingängen an der S7-1200 können mit meinem Multiplexerkonzept 24 Temperaturen gemessen werden.

PT1000 Schaltung mit Mulitplexer

Mit einem einfachen PT1000 für wenige Euro kann ein 0-10V Signal generiert werden.

Mit dem PT1000 (1000 Ohm bei 0°C) wird eine Brückenschaltung vor einem Operationsverstärker (LM324N) aufgebaut. Der 1uFarrad Kondensator dient als Dämpfungsglied um Schwankungen zu vermeiden. V1 ist +5V für Brücke, V2 ist +12V für die IC-Spannungsversorgungen. Die Masse wird verbunden.
Die Brücke R1 (18kOhm)+PT1000 wird mit R2(200k)+R3(Poti 0-25k) zu R4(10k) oder bei der zweiten Messung R8 (200k)+R9(Poti 0-25k) zu R10(10k) im NULLPUNKT abgeglichen. Am Rückführzweig vom OP-Ausgang wird der MESSBEREICH eingestellt mit R5(680k)+R6(Poti 0-150k) und für die zweite Temperaturmessung R11(953k)+R12(Poti 0-100k).

Die Widerstände + Potis wurden jeweils nach den gewünschten Temperaturmessbereichen gewählt. Bei einem Messbereich von -40...100°C ergeben sich am Nullpunkt 213kOhm und am Messbereich 743kOhm => 200k Festwiderstand + 25k Poti und 680k Festwiderstand + 100k Poti.

Die Berechnung für den Nullpunkt:
      Offsetspannung MIN TEMP.: Uoffset= 5/(18+(1000+TemperaturMIN*3,85)/1000)*(1000+TemperaturMIN*3,85)/1000
      R3=5/Uoffset-1*10
Die Berechnung für den Messbereich
      Bereichsspannung MAX Temp: UBereich=5/(18+(1000+TemperaturMAX*3,85)/1000)*(1000+TemperaturMAX*3,85)/1000
      R6=(10/(UBereich-Uoffset)-1)*10

Erklärung:
5V Versorgunsspannung der Brücke, 18kOhm Brückenwiderstand, 1000Ohm bei 0°C PT1000 + Temperatur (z.B.-40°C)*3,85Ohm/1°C) = 846Ohm bei -40°C oder 1385 Ohm bei 100°C des Pt1000. 

Um die Messungen sauber einstellen zu können, wurden Referenzwiderstände miteingebaut. Somit kann man einen Temperaturmesskanal am S1 oder S2 vom PT1000 auf die Widerstände umschalten und diese der Reihe nach einschalten, damit der Nullpunkt und der Messbereich mit den Potis genau eingestellt werden können.

Das 0-10 V Signal jedes Kanals wird schließlich auf den Multiplexer CD4060 aufgeschaltet. Indem die Eingänge AB 00, 01, 10 und 11 Signal führen, wird jeweils ein Kanal von X0...X3 auf X und von Y0...Y3 auf Y durchgeschaltet und am Analogeingang der S7-1200 gemessen. Ich habe für die Alternierung ein Schieberegister mit NE555 aufgebaut. Ich plane aber die Alternierung von der S7 selbst über zwei elektronische Ausgänge vorgeben zu lassen.

Platinenlayout

Es wurden zwei Platinen erstellt, eine mit 8 Kanälen auf einer Europlatine zum Testen der Schaltung.
Anschließend wurde eine Platine beim Layoutservice für gerade mal 60€ mit 16 Kanälen beauftragt. Die Schaltung wurde selbst geroutet und dann von mir bestückt. Ich musste aber feststellen, dass meine Lötfertigkeiten seit der Lehrzeit vor 20 Jahren doch schon etwas eingerostet sind.

Es sind die Wahlschalter für den Eingang vom PT1000 oder der Referenzwiderstände die Dämpfungskondensatoren, die Brückenwiderstände mit Potis (Nullpunkt- und Messbereichsabgleich) sowie die vier Operationsverstärker + zwei Multiplexer mit Steckverbinder dargestellt. 8 Eingänge gehen von links zur Mitte und 8 Eingänge von rechts zur Mitte. In der Mitte sind die vier Multiplexerausgänge 0-10V, die zu den vier Analogeingängen an der S7 gehen zu sehen. Unten Mitte erkennt man die Ansteuerung der Multiplexer mit den Signalen 00,01,10,11. Oben in der Mitte ist die 5V und die 12V Spannungsversogung zu erkennen.

Spannungsversorgung 5V,12V Oszillator mit Schieberegister

Auf separten Platinen sind noch Spannungsquellen für 12 und 5V (Bausatz Conrad 5€) für die Spgversorgung der Brücke (5V) und die Versorgung der IC (12V) vorhanden.

Die Ansteuerung der Multiplexer mit 00,01,10 und 11 habe ich über einen NE555 und ein Schieberegister realisiert. Die Ausgänge der Ansteuerung gehen sowohl auf die Multiplexereingänge als auch auf den S7 Eingang, so dass immer klar ist, welcher Multiplexerausgang gerade durchgesteuert wird.

Software auf S7-1200 für Temperaturenauswertung

Da ein Temperaturmesswert nicht die ganze Zeit am Analogeingang anliegt, musste dies natürlich auch an der Software berücksichtigt werden. Da der externe Osziallator ein Schieberegister alle 500ms ansteuert, erfahren die Eingänge 0.0 und 0.1 folgende Werte: 00,10,01,11,00,… Somit wechselt das Signal am Eingang 0.0 doppelt so schnell wie an 0.1. Aus diesem Bit wird bei jedem Flankenwechsel nach 0 und nach 1 ein Signal „Pos- oder negative Flanke“ generiert. Mit diesem Merker wird dann ein Timer gestartet, der zunächst 300ms abwartet, bis das Analogsignal vom Multiplexer sauber am Analogeingang anliegt. Dann kann dieses für 150ms eingelesen werden.
Somit wird jede Temperatur alle 2 Sekunden aktualisiert, was vollkommen ausreichend ist, aber eine Menge Analogeingänge spart.



Im OB Main wird dazu der Analogauswertungsbaustein nur aufgerufen, wenn die 150ms Auswertezeit aktiv ist, so dass keine falschen Werte während der Umschaltphase des Multiplexer abgerufen werden.
Dann erfolgt für jeden der 6 Analogeingänge der Aufruf mit diesem Baustein. Dabei wird der Messbereich, der Name mit Speicherort des Messwertes im Datenbaustein und ob er aktiv oder von einem Simulationswert überschrieben (Freigabe) wird, für jede der 4 Temperaturmessungen auf diesem Multiplexer übergeben.
.

Im Auswertebaustein pro Analogeingang wird dann zunächst der Wert normiert 0…27648 und dann auf den gewünschten Messbereich skaliert z. B. -40,0….100,0 °C und je nach E 0.0, 0.1 an der richtigen Adresse im Datenbaustein abgespeichert

Wenn ihr mehr über Automatisierung eines Hauses wissen wollt, dann könnt Ihr hier weiterlesen.

Heizungssteuerung
Hausautomatisierung

Hardware S7-1200
Software S7-1200
Touchpanel KTP 600 Color mit Trenddarstellung