# Temperaturregler mit Heizpatrone



## 00schneider (6 Januar 2010)

Folgendes: Ich möchte eine Temperaturregelung realisieren mit einer Heizpatrone und nem Pt100, die Heizpatrone kennt nur den Zustand Ein und Aus. PID wird ja dadurch schwer gehen, ich dachte da an einen Zweipunktregler?! Gibt es da im Step7 bestimmte Vorlagen?


----------



## Sockenralf (6 Januar 2010)

Hallo,
JEDE E-Heizung kennt nur Ein-Aus

Wie wäre es denn mit einem passenden Stellglied (Thyristorsteller oder sowas)?

Für einen einfachen 2-Punkt-Regler braucht´s doch keine Vorlagen --> das sind irgendwas um 20 Zeilen Code (je nach "Ausbaustufe" und Können des Programmierers)


Was soll denn das Ganze werden?
Vielleicht hat ja jemand hier sowas schonmal gebastelt und Erfahrung gesammelt


MfG


----------



## 00schneider (6 Januar 2010)

Sockenralf schrieb:


> Hallo,
> JEDE E-Heizung kennt nur Ein-Aus


Wo du recht hast Na am Ende soll man in der Visu ne Temperatur einstellen können, welche dann eingeregelt wird. Falls jemand schonmal so etwas gemacht hat, wäre ich sehr dankbar!


----------



## Paule (6 Januar 2010)

Vor 2 Wochen gab's fast die gleiche Frage,

ich habe es nicht intensive verfolgt und weiß auch nicht wie es ausging.
Aber hier mal der Link:
http://sps-forum.de/showthread.php?t=22180


----------



## 00schneider (6 Januar 2010)

Ich komme damit noch nicht so richtig klar. Ich weiß mittlerweile bloß, dass ein 2Punktregler eher suboptimal ist (zu großes Überschwingen verbunden mit langen Abkühlzeiten des Mediums). Der FB43 ist ein Baustein für eine PWM, richtig? Kann ich das für meinen Fall anwenden? (Hat da jemand schonmal ähnliches gemacht? )


----------



## rostiger Nagel (6 Januar 2010)

das ist schwer zu beurteilen, das kommt immer auf die Masse an die
du aufheitzt. Hat die Heizung eine große Leistung und die Masse ist 
gering kann es sehr schnell überschwingen, dann wirst du vlt. für deine
PWM auch Halbleiterschalter brauche, schütze könnten da schlecht sein.


----------



## 00schneider (6 Januar 2010)

Es geht um eine kleine Heizpatrone von 315W, die in einem Metallblock der Außmaße 80x40x20 steckt. die Patrone soll mitnem Relais geschalten werden.


----------



## Paule (6 Januar 2010)

Also ich würde es mal so sagen:
Der FB43 pullst Dir den Ausgang, das wird auf die Dauer kein Schütz aushalten.
Wenn Dir eine normale 2 Punktregelung zu ungenau ist, würde ich die Temperaturdifferenz in eine Einschaltzeit umwandeln.
Sprich, hohe Temperaturabweichung > lange Einschaltzeit des Schützes.
Niedere Temperaturabweichung > kurze Einschaltzeit.


----------



## rostiger Nagel (6 Januar 2010)

hatte kürzlich etwas ähnliches, also relais ist da ganz schlecht.
Da bekommst du nichts hin, da solltest du schon so ein thyristor-Relais
nehmen.


----------



## 00schneider (6 Januar 2010)

Paule schrieb:


> Wenn Dir eine normale 2 Punktregelung zu ungenau ist, würde ich die Temperaturdifferenz in eine Einschaltzeit umwandeln.
> Sprich, hohe Temperaturabweichung > lange Einschaltzeit des Schützes.
> Niedere Temperaturabweichung > kurze Einschaltzeit.



Oh das klingt sehr gut, gibt es dafür nen Standardbaustein o.ä. oder schon nen StandardProgramm?


----------



## Paule (6 Januar 2010)

Vielleicht gibt’s da bei der Oscat.lib was.
Ich mach so was eigentlich dann immer selber. 
Wenn Du den Zeitbaustein dann auch noch selber machst ist das gar kein Problem.
Mal auf die schnelle und ungetestet: (quick and dirty)

```
[COLOR=black][FONT=Verdana]   L #Solltemperatur [/FONT][/COLOR]
[COLOR=black][FONT=Verdana]   L #Isttemperatur[/FONT][/COLOR]
[COLOR=black][FONT=Verdana]   -I[/FONT][/COLOR]
[COLOR=black][FONT=Verdana]   L #Offset // Korrekturwert[/FONT][/COLOR]
[COLOR=black][FONT=Verdana]   - I[/FONT][/COLOR]
[COLOR=black][FONT=Verdana]   T #Zeitwert[/FONT][/COLOR]
 
[COLOR=black][FONT=Verdana]   U #Sekundentakt[/FONT][/COLOR]
   UN #Pauszeit
[COLOR=black][FONT=Verdana]   SPBN M1[/FONT][/COLOR]
[COLOR=black][FONT=Verdana]   L #Zeit[/FONT][/COLOR]
[COLOR=black][FONT=Verdana]   +1[/FONT][/COLOR]
[COLOR=black][FONT=Verdana]   T #Zeit[/FONT][/COLOR]
[COLOR=black][FONT=Verdana]M1:NOP 0[/FONT][/COLOR]
[COLOR=black][FONT=Verdana]   L #Zeit[/FONT][/COLOR]
[COLOR=black][FONT=Verdana]   L #Zeitwert[/FONT][/COLOR]
[COLOR=black][FONT=Verdana]   <I[/FONT][/COLOR]
   UN #Pausezeit
[COLOR=black][FONT=Verdana]   = #Heizung Ein[/FONT][/COLOR]
[COLOR=black][FONT=Verdana]   SPB M2[/FONT][/COLOR]
[COLOR=black][FONT=Verdana]   L 0[/FONT][/COLOR]
[COLOR=black][FONT=Verdana]   T #Zeitwert[/FONT][/COLOR]
[COLOR=black][FONT=Verdana]M2:NOP 0[/FONT][/COLOR]
```
 
Ist jetzt aber nur der Anfang.
Ich würde jetzt noch den Kehrwert zur Einschaltzeit ermitteln und dadurch die Pausezeit ermitteln.

Hilft Dir das soweit?


----------



## hucki (6 Januar 2010)

Also ich hab' beruflich mit Formtemperiergeräten für den Druckguß zu tun. Die machen den ganzen Tag nichts anderes als ihre Heizung (a 12kW) ein- und auszuschalten. Die meisten der Geräte haben Heizungsschütze, die von einem PID-Regler angesteuert werden. Die meisten dieser Schütze halten trotz täglicher Verwendung der Geräte mehrere Jahre. Dazu tragen sicherlich auch eingestellte Vorhaltezeiten von 20 bis 30 Sekunden bei, damit die Schalthäufigkeit begrenzt wird. Diese Möglichkeit bietet auch der FB43.
Ich muß aber meinen Vorrednern Recht geben, daß sich mit dem jetzigen Einsatz von Solid State Relays die Haltbarkeit noch einmal deutlich erhöht hat. Zumal diese heutzutage zum gleichen Preis erhältlich sind.

Ich kann also nur zum Einsatz des FB41 und FB43 in Kombination mit SSR raten.
In meiner Schulung haben wir die beiden FB's auch nur all 100ms über den OB35 gestartet.


----------



## bike (6 Januar 2010)

Also ich würde zuerst mal nachdenken wie genau muss die Regelung sein.
Wenn der Temperatursprung kein Problem ist, dann würde ich bei Ein/Aus bleiben.
Wenn der Sprung klein sein soll, dann würde ich einen Tyristorregler spendieren.

So wie du fragst: nein, es gibt kein fertiges Programm.(daweil keiner weiss was du brauchst)

bike


----------



## 00schneider (7 Januar 2010)

Puh, der (angehende) Maschinenbauer ist leicht überfordert, ich bin kein S7-Programmierer, leider kann ich dein Programm nicht so richtig "lesen" Paule. Ich bräuchte nur eine Regelung fürne klitzekleine Heizung (Heizpatrone 315W, steckt inem Metallblock 80x50x20, in einer anderen Bohrung darüber der Pt100, Patrone wird mit Koppelrelais geschalten(230V)) für einen Versuchsstand. Bisherig wurde die Regelung mit sperriger Hardware realisiert (2Punktregler). Nun soll das ganze in die SPS integriert werden, um es zu vereinfachen. Ein erneuter 2Punktregler ist nicht optimal, da die Heizpatrone in 0,nichts den Block erhitzt hat und sofort über die obere Temperaturgrenze schießt, was mit enormen Abkühlzeiten verbunden ist. Die Endtemperatur kann gut und gerne 1 bis 2 Grad von der Solltemperatur abweichen. Soweit so gut, würdet ihr immer noch die Taktung empfehlen, welche den Ausgang (Heizpatrone) in immer kleiner werdenden Abständen schaltet, je näher man sich am Sollwert befindet?


----------



## dalbi (7 Januar 2010)

Ja, anders wirst Du das auch nicht in den griff bekommen. Du schreibst ja schon selber das der 2-Punkt Regler extrem über schwingt. Daher am besten ein elektronisches Schütz (Thyristor) nehmen und über einen Regler mit Pulsweitenmodulation des Reglerausgangs die Heizung ansteuern.

Gruss Daniel


----------



## 00schneider (7 Januar 2010)

Ah ok, wenn ich das richtig sehe brauche ich dann den FB43 für eine PWM?! Wo wird an diesem Baustein der Sollwert ein gelesen? Grob gesagt lese ich bei INV den analogen Eingang des Pt100 ein, und je näher dieser am Sollwert liegt desto feiner taktet der digitale Ausgang (hier meine Heizpatrone) Q_POS_P? Wenn der Wert zwischen 2 Grenzen liegt (+-1 Grad Solltemperatur) dann ist Q_POS_P dauerhaft null? Ist das soweit richtig?


----------



## bike (7 Januar 2010)

Das hast du richtig gelesen.
Doch wenn ich deine Anforderung genauer betrachte würde ich keine Taktung machen, sondern zunächst mit steuern mich der Zieltemperatur nähern.
Durch eine Messreihe die Zeiten und Temeperaturen erfassen. 
da du jetzt schon ein funktionierendes System hast ist das doch relativ einfach zuu realisieren. 
Also z.B für eine Temperaturerhöhung von 10 bis 40 Grad brauche ich 20 sek.
Für 10 bis 60 Grad brauche ich 30 sek.

Daraus eine Tabelle erstellen und dann ggF eine Formel generien.
Die Temperatur verhält sich ja meist linear zur eingebrachten Energie.
Nur wenn du die Temperatur erreicht hast kannst du takten, wobei ich denke es geht auch über eine Berechnung wenn dir 1-2 Grad nicht weh tun.
Dadruch bist du 1. schneller am Ziel und 2. hast weniger Schaltspiele und 3. ist es ökonomischer.


bike


----------



## 00schneider (7 Januar 2010)

Hey Bike, ja das wäre auch ne Möglichkeit, aber eher nicht für meinen Fall. Wenn ich den block meinetwegen auf 60 Grad erhitze, dann sollte er auch bei 60 grad fürne längere Zeit bleiben um dann meine Versuche zu machen, und wenn ich von 60 auf 80 Grad einstelle, dann sollte er das nachregeln können. Ist denn das was ich im letzten Beitrag geschrieben habe vom ansatz her richtig?


----------



## Paule (7 Januar 2010)

00schneider schrieb:


> Ah ok, wenn ich das richtig sehe brauche ich dann den FB43 für eine PWM?! Wo wird an diesem Baustein der Sollwert ein gelesen?


 Den FB43 setzt man gewöhnlich immer in Verbindung mit dem FB41 ein. Dessen Ausgang wird an den FB43 übergeben. Dieser taktet dann das Ausgangssignal. 
Einfach gesagt: Er macht aus einem Analogwert ein digitales Rechtecksignal.




00schneider schrieb:


> Hey Bike, ja das wäre auch ne Möglichkeit, aber eher nicht für meinen Fall. Wenn ich den block meinetwegen auf 60 Grad erhitze, dann sollte er auch bei 60 grad fürne längere Zeit bleiben um dann meine Versuche zu machen, und wenn ich von 60 auf 80 Grad einstelle, dann sollte er das nachregeln können. Ist denn das was ich im letzten Beitrag geschrieben habe vom ansatz her richtig?


Das geht mit Bike's Lösung genauso, wobei ich hier die Taktung zum Schluss drin lassen würde. Mit Deiner Lösung geht es natürlich auch genauso wie mit meiner.
Viele Wege führen nach Rom.


----------



## erzteufele (8 Januar 2010)

Sockenralf schrieb:


> Hallo,
> JEDE E-Heizung kennt nur Ein-Aus



und wenn ich der heizung nur 50% der leitung gebe zum heizen ? ist es dann ein oder aus oder nur halb ein ? 

man kann hier genauso die spannung regeln!

oder man könnte mit mosfets pwm ein/aus schalten hier bekommt man auch eine schöne regelung hin.

;-)


----------



## bike (8 Januar 2010)

Wie dir auch Paule schon schrieb gibt es verschiedene Möglichkeiten.
Es ist denke ich sinnlos den gesamten Hochheizprozess zu takten, das muss nicht sein.
Um die Schaltspiel zu verringern würde ich zumindest gesteuert bis an meine Solltemperatur fahren.
Du hast mich schienbar nicht ganz verstanden, wie ich es machen würde.
Wenn die Temperatur um 1 Grad sinkt, dann für die errechnete Zeit die Heizung einschalten. Dann Schauen ob Wert ok, nenn ja, nix machen wenn nein, die Differenz nachheizen.
Du kannst aber auch 


bike schrieb:


> Nur wenn du die Temperatur erreicht hast kannst du takten, wobei ich denke es geht auch über eine Berechnung wenn dir 1-2 Grad nicht weh tun.


Paule hat dir ja schon einen Ansatz geliefert.
Mit den FB ist das so eine Sache bei Sondersachen, nach meiner Erfahrung.
Die verwenden wir nur wenn wir Erfahrung mit den Heizungen/Kühllungen haben, sonst schreiben wir es selber. (Dann wissen wir was wir tun, bei BigS weiss das keiner  )

bike

bike


----------



## 00schneider (8 Januar 2010)

Ok, mittlerweile gehen mehrere Autobahnen nach Rom

Ich habe mir folgendes gedacht:
M0.5 festlegen als Taktmerker (1s "0", 1s "1" usw.)

dann

Solltemperatur laden
Isttemperatur laden

Wenn (Solltemperatur-Isttemperatur)>5Grad Dann
Setze "Heizung"="1"

Ansonsten M0.5="Heizung"
bis Isttemperatur>Solltemperatur
dann Heizung="0"

Denke ich zu einfach oder kann man das so machen?


----------



## bike (8 Januar 2010)

Wenn du es so machen willst, muss dein System echt Klasse schnell sein.

Ich würde es so machen

Sollwert - Istwert >2 Grad Heizung = ein
messen 10 Werte und dann Mittelwert bilden.
Sollwert -Istwert <= 0 nichts machen, weitermessen 10 Werte ...
Sollwert -Istwert >1 Grad Heizung ein für Zeit x, denke 2 -5 Sekunden(muss ermittelt werden), es darf nach deiner Beschreibung ja die Temperatur etwas drüber gehen. Daher z.B Soll + 2 Grad als Ziel definieren.
messen ....
usw.

Wenn du nur 1 Sec einschaltest, wieviel Wäremenergie bringts du dann rein? Wohl nicht so echt viel, denke ich.



bike


----------



## Paule (8 Januar 2010)

bike schrieb:


> Wenn du nur 1 Sec einschaltest, wieviel Wäremenergie bringts du dann rein? Wohl nicht so echt viel, denke ich.


Reicht vielleicht schon aus nach der Aussage:


00schneider schrieb:


> Ein erneuter 2Punktregler ist nicht optimal, da die Heizpatrone in *0 , nichts* den Block erhitzt hat und sofort über die obere Temperaturgrenze schießt,


 
Aber ich würde in diesem Fall, bei der von Dir Bike, erwähnten Tabelle bleiben.
Und zwar gebildet durch das Taktmerkerbyte der CPU. Beispiel Taktmerkerbyte = MB 0

Soll-Ist > 10°C = Heizung dauer Ein
Soll-Ist < 8°C und Merker 0.7 = Heizung Ein im 2 Sekundentakt
Soll-Ist < 5°C und Merker 0.5 = Heizung Ein im 1 Sekundentakt
u.s.w.


----------



## 00schneider (9 Januar 2010)

Habe jetzt was geschrieben für die Regelung, offensichtlich funktionierts nur nicht, weil meine Taktmerker nicht zischen 1 und 0 springen sondern immer 0 sind. Ich habe in der Hardwarekonfig Taktmerkerbyte 1 eingetragen und im Programm dann entsprechend M1.2 und M1.5 verarbeitet, es rührt sich jedoch nichts... woran kann das liegen?


----------



## dalbi (9 Januar 2010)

Hallo,

wurde die Hardwarekonfig auch auf die Steuerung übertragen?
Werden die Merker mehrfach im Programm beschrieben?

Gruss Daniel


----------



## 00schneider (9 Januar 2010)

Vergessen hochzuladen...fast hätte ich gesagt es wird Zeit fürs Wochenende...


----------



## dalbi (9 Januar 2010)

Gruss Daniel


----------



## Paule (10 Januar 2010)

00schneider schrieb:


> Ich habe in der Hardwarekonfig Taktmerkerbyte 1 eingetragen und im Programm dann entsprechend M1.2 und M1.5 verarbeitet,


Oh ich sehe Du hast Dich für meine Variante mit dem Taktmerkerbyte entschieden.
Freut mich! 
Fühler und Panel gehen ja nun auch wieder. 
Wäre nett wenn Du eine Rückmeldung gibst wie gut es funktioniert.
Interessant wäre dabei auch wie weit die Temperatur überschwingt und wie oft Dein Relais so im durchschnitt taktet.


----------

