Regelung mit FB41 und FB43

Nordischerjung

Level-2
Beiträge
841
Reaktionspunkte
115
Zuviel Werbung?
-> Hier kostenlos registrieren
Moin,

ich habe eine Heizungsregelung mit FB41 und FB43. Geheizt werden u.a. Stemepl aus Alu 650mm x 100mm x 40mm.
Heizstab hat 1200W und ist 500mm lang, daneben ist ein NiCrNi Thermoelement. Heizung wird mit ein Solid-State-Relais geschaltet. Thermoelement hängt an einer SM331.
Im OB 35 (100ms) rufe ich die Regelung auf, den FB41 mit Cycle 1s (jeden 10. Aufruf), den FB43 mit Cycle 100ms.
Per_Tm bei FB43 = 10s
Zur Zeit habe ich einen PI-Regler. Gain = 0.08, TI = 35s.

Ich habe schon vieles Versucht. Zeit hoch, Gain Hoch, Gain runter usw. Warum schaltet der Ausgang des FB41 nicht auf 0, wenn der SOLLWERT schon lange überschritten wurde. Meistens heizt er 15-25° drüber und schaltet dann erst auf 0. Wenn ich den I-Anteil ausschalte, macht er es nicht so heftig, aber dann schwingt er zu sehr. Wie kann ich das nun am besten einstellen? Habe mit dieser Regelung leider noch nicht so viel Erfahrung, da ich sonst immer die FM355 von Vipa eingesetzt habe oder es wurde ausserhalb der SPS geregelt.

Bei einer weiteren Heizung ist es ähnlich, diese ist sehr schnell und heizt dementsprechend sehr weit über. Das ist eine Art Infrarotheizung, wenn diese eingeschaltet wird steigt die Temperatur sofort schnell an.

Könnt ihr mir da irgend welche Tipps und Ratschläge geben?
 
Der FB41 regelt bei deinen Reglerparametern ja nur seeehr langsam. Mal angenommen der Reglerausgang geht in der Aufheizphase bis auf 100% hinauf, so würde er wenn die Solltemperatur um 1°C überschritten ist, in 100 / 0,08 mal 35s, also 1250 * 35s = in fast 12 Stunden auf 0% herunterregeln.

Hast du schonmal die Daten der Regelstrecke aufgenommen, oder wie kommst du zu diesen Reglerparametern?
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hast du schonmal die Daten der Regelstrecke aufgenommen, oder wie kommst du zu diesen Reglerparametern?

Ne hab ich nicht, wie und was muss ich da machen?
Hab aus dem INET und von hier irgendwo gelesen, dass man eine hohe TI Zeit nehmen soll. Irgendwo war so ein ähnlicher Anwendungsfall.
Ich habe auch schon mit sehr kleinen TI Zeiten experimentiert, aber irgendwie haut das nicht hin.
Aus dem Handbuch FM355 "Parameter durch probieren einstellen"
 
Am einfachsten ist das Sprungantwortverfahren, siehe z.B. hier:

http://www.rn-wissen.de/index.php/Regelungstechnik#Dimensionierung_nach_Einstellregeln

Was willst du denn aufheizen? Mit 1,2 kW kann das Objekt ja nicht gerade groß sein (oder muss gut isoliert sein).
Wenn deine Heizung nicht gerade bis auf 1000 Grad aufheizen kann, ist dein P-Anteil vermutlich viel zu klein.
Pi-Mal-Daumen würde ich mit einem P-Anteil von 5 beginnen.
 
Was willst du denn aufheizen? Mit 1,2 kW kann das Objekt ja nicht gerade groß sein (oder muss gut isoliert sein).
Wenn deine Heizung nicht gerade bis auf 1000 Grad aufheizen kann, ist dein P-Anteil vermutlich viel zu klein.
Pi-Mal-Daumen würde ich mit einem P-Anteil von 5 beginnen.
Steht ob wie groß. Temperatur bis max. 250.
Der P-Anteil von 5 an höher werden?
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Steht ob wie groß. Temperatur bis max. 250.
Der P-Anteil von 5 an höher werden?

Das hängt aber davon ab wie groß bei deiner Strecke die Totzeit bzw. Verzugszeit im Verhältnis zur Zeitkonstante ist. Die Totzeit ist z.B. die Zeit welche die Wärme braucht bis sie von deinem Heizelement bis zum Temperaturfühler und letztendlich als Messwert in deiner SPS ankommt.
Wenn du mit dem P-Anteil zu hoch gehst bekommst du irgendwann ein Überschwingen, um so etwas per Hand einzustellen braucht es aber etwas Erfahrung.

Wenn du das noch nie gemacht hast würde ich zumindest einmal an einer Regelstrecke die Daten aufnehmen und danach die Parameter einstellen, nur um es einmal gemacht zu haben. Du kannst auch an einer Simulation ein bißchen rumspielen, damit du ein Gefühl dafür bekommst wie sich verschiedene Parameter auswirken.
Auf die Schnelle habe ich hier eine Webseite gefunden auf der das möglich ist (Java erforderlich):
http://techni.tachemie.uni-leipzig.de/reg/index.html

Für den FB41 gibt es bei Step7 einen (wenn auch kleinen) Grafikschreiber mit dem man sich einen Kurvenverlauf aufzeichnen kann. Das Teil nennt sich "PID Control parametrieren", einfach mal anschauen.
 
Für den FB41 gibt es bei Step7 einen (wenn auch kleinen) Grafikschreiber mit dem man sich einen Kurvenverlauf aufzeichnen kann. Das Teil nennt sich "PID Control parametrieren", einfach mal anschauen.

Damit spiele ich bereits rum :cool:.

Ich werde es mal mit deinem 1. Vorschlag versuchen aus Post #4
Wie genau geht so etwas in der Praxis mit der Sprungantwort? Ich hätte es jetzt nach der Schwingungsmethode gemacht, klingt einfacher.

Der FB41 ist falsch parametriert. Hier muss am Cycle ebenfalls 100ms angegeben werden, sonst kann das gerade mit dem I-Anteil nicht richtig funktionieren.
Ändere das mal und probiere dann noch einmal.

Wieso das? Ich rufe den FB43 bei jedem OB35 aufruf auf und den FB41 bei jedem 10.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Ok, das heißt du hast die einen Zähler gebaut der den FB41 nur jeden 10ten Zyklus aufruft? Dann sollte es passen.
Ich habe es so verstanden das du sagst der FB41 wird durch den Parameter Cycle = T#1S nur jeden 10ten Zyklus aufgerufen. Weil das wäre falsch.
 
Nimm kp=5, TN=200
FB41 alle 10s aufrufen (und im Cycle auch eintragen), den FB43 kannst Du bei 100ms lassen.

Eventuell Synchronisierung einschalten.

Wird der Stempel SPONTAN durch irgendwas gekühlt, also ihm Energie abverlangt?
Dann kannst Du eventuell mit einer Störgrößenaufschaltung Ruhe hineinbekommen.

Gruß
Karl
 
Na den SYN_ON beim FB43.
Das hat den Sinn, dass der immer wenn sich Dein INV ändert (also alle 10s) hier Dein "Puls" getriggert wird:

"Automatische Synchronisation
Es besteht die Möglichkeit die Impulsausgabe mit dem Baustein, der die Eingangsgröße INV (z.B. CONT_C) aktualisiert, automatisch zu synchronisieren. Damit ist gewährleistet, daß eine ändernde Eingangsgröße auch schnellstmöglich als Impuls ausgegeben wird.
Der Impulsformer wertet immer im Zeitabstand der Periodendauer PER_TM die Eingangsgröße INV aus und wandelt den Wert in ein Impulssignal der entsprechenden Länge.
Da aber INV meistens in einer langsameren Weckalarmebene berechnet wird, sollte der Impulsformer möglichst schnell nach der Aktualisierung von INV mit der Umwandlung des diskreten Wertes in ein Impulssignal beginnen.
Dazu kann der Baustein den Start der Periode nach folgendem Verfahren selbst synchronisieren:
Hat sich INV geändert und befindet sich der Bausteinaufruf nicht im ersten oder in den letzten zwei Aufrufzyklen einer Periode, so wird eine Synchronisation durchgeführt. Die Impulsdauer wird neu berechnet und beim nächsten Zyklus mit einer neuen Periode wird mit der Ausgabe begonnen."
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo Borromeus,

Kannst du mir die automatische Synchronisation vom FB43 genauer beschreiben, weil
ich dein unteren Text nicht ganz begriffen habe, wie du das gemeint hast (siehe unten den Text). Kannst du es mir mit einer FUP-Darstellung aufzeichnen?

(Hat sich INV geändert und befindet sich der Bausteinaufruf nicht im ersten oder in den letzten zwei Aufrufzyklen einer Periode, so wird eine Synchronisation durchgeführt.)

Danke für deine Hilfe

Gruss
TMaroni
 
Das unter den Gänsefüsschen ist ein Teil des Hilfetextes zum FB43.
Heisst einfach, wenn sich INV ändert beginnt der Puls am FB43.
Wenn Du SYN_ON auf 0 hast, beginnt der Puls genau nach der eingestellten Zeit im FB43, auch wenn sich der INV schon zB 2s früher geändert hat.
Hat den Sinn, dass Änderungen des Reglers FB41 (oder was auch immer) sofort aufs Stellorgan (=Ax.y der am FB43 hängt) wirksam wird.

"Hat sich INV geändert und befindet sich der Bausteinaufruf nicht im ersten oder in den letzten zwei Aufrufzyklen einer Periode, so wird eine Synchronisation durchgeführt"
Weils da eh etwa der gleiche Zeitpunkt ist und die Pulslänge schon berechnet ist.
 
Zurück
Oben