FB58 und negative/positive Regelung ?

Waelder

Level-2
Beiträge
974
Reaktionspunkte
121
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo Freunde ich habe folgenden Anwendungsfall:

Ein Behälter, der sowohl beheizt werden kann als auch gekühlt, also eine Temperaturregelung.

:arrow: Das Teil wird Temperiert entweder über 1. Mantel d.h ein Regler schafft nur über den Mantelkreislauf. Die Regelung (ein eigener FB58) arbeitet mit dem Sensor des Mantelkreislaufs. Diese Regelung passt eigentlich.

Es kann nun umgeschaltet werden :

:arrow: Die andere Regelstrecke ist der 2. Kesseltemperaturfühler er regelt (ein eigener FB58) auf die selben Stellglieder wie der Mantel. Mit dem Unterschied, dass die Regelung Quasi kaskadisch mit 1FB58 funktioniert.

:arrow: Verschaltung :

:arrow: Mantel: Soll+IST(Mantelfühler) wirken auf FB58 des 1. Regelkreises
der Ausgang LMN vom FB58 wird auf den FB43 (pulsgen) geklemmt. Er steuert die Pulse für kühlen und heizen.

:arrow: Kessel: Soll+IST(Produktfühler) wirken auf FB58 des 2. Regelkreises
der Ausgang LMN vom FB58 wird auf den FB43 (pulsgen) geklemmt. Er steuert die Pulse für kühlen und heizen.

:arrow: Benutzte Bausteine : 1x FB58 für Mantel ; 1x FB58 für Kessel ; 1xFB43 (pulsgen) für die Stellglieder. alle im OB35 vorhanden.

Einstellungen an den FB58

Hardware (Ex !! :twisted: ) :

:arrow: Die Eingänge werden eingelesen über einen Temperaturwandler. Er legt das Signal des PT100 um in ein 4-20mA Signal. die Temperaturspanne am Trennverstärker ist auf -100°C bis +250°C normiert (dass macht der TV selbst)

:arrow: Ich skaliere nun das Signal in -100% bis +100% und stelle es dem FB58 zur Verfügung.
Der Sollwert wird ebenfalls in -100% bis +100% vorgegeben.

:arrow: Die Begrenzung (QLMs) für den Ausgang LMN am FB58 habe ich auf -100% bis +100% festgelegt.

:arrow: Der Ausgang des FB58 (LMN) wirkt nun auf den FB43 er pulst nun entweder auf ein Heizmodul (Halbleiterschütz) oder auf ein Kühlmodul (Ventil mit Plattenwärmetauscher) beide haben die identische Leistung.

:arrow: So nun kommt mein Problem: Hin und wieder blässt sich der I-Anteil (sichtbar am LMN_I) so auf und bleibt ab und zu hängen, dass der Regler absolut überschwingt oder ca 8°C unter Sollwert festklemmt. Da kann der P-Anteil hochlaufen so viel er will, er kommt nicht gegen den negativen wert vom I an.

:arrow: Kann dieser Tolle FB58 eigentlich +/- Signale verarbeiten ?
Muss ich den I-Anteil beim übergang von + nach - (oder - nach +) neu initialisieren ?

:arrow: Die Umschaltung vom 1. zum 2. Regler macht keine Probleme.

PS: eine kaskade aus den beiden FB58 habe ich auch schon probiert mit dem erfolg, dass der Produktregler den Mantelregler zum schwingen bringt.

Genug erzählt ich hoffe irgendwer hat eine Lösung für meine Schauklerei.

MfG Micha
 
Hallo,
wenn ich das richtig verstanden habe kühlst und heizt Du mit dem FB58, hier mal ein Auszug aus der Hilfe zum FB 58:Die Arbeitsweise basiert auf dem PID-Regelalgorithmus, der mit zusätzlichen Funktionen für Temperaturprozesse ausgestattet ist. Der Regler liefert analoge Stellwerte und pulsbreitenmodulierte Stellsignale. Der Regler versorgt ein Stellglied, d. h. Sie können mit einem Regler entweder nur heizen oder nur kühlen.
Der letzte Satz sagt wohl alles.
Kann ja sein das ich deine Ausführung falsch verstanden habe :oops: .

mfg
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Nochmals..

Ich hab das nicht umsonst so ausführlich aufgeschrieben.
wie gesagt ich fahre von -100% bis +100% mit der Regelung.

Welcher S7 Baustein kann dan Plus und minus im PID?
 
wenn wir eine heizen/kühlen regelung projekieren dann teilen wir die "range vom regler" z.b. 0-50% kühlen und 51-100% heizen. wir verwenden aber auch immer den fb41 zum regeln. diese spilttrange-regelung funktioniert auf jeden fall.

ich bin mir nicht 100%ig sicher ob es einen reglerbaustein gibt der das mit plus 100% bis minus 100% realisieren kann.

gruss
justus
 
Zuviel Werbung?
-> Hier kostenlos registrieren
ja der eingang ist von 0-100%
die heizen und kühlen ventile haben jeweils einen analogenausgang

mal ein beispiel

CALL "CONT_C" , "CONTR_15_DB"
COM_RST :=#COM_RST // complete restart
MAN_ON :="CONT-PAR-DB".c_ma_15 // 1 = manual setpoint on
PVPER_ON:="LOW" // 1 = read periphery word
P_SEL :=#on_off_c[15] // 1 = P-action on
I_SEL :=#on_off_c[15] // 1 = I-action on
INT_HOLD:=
I_ITL_ON:=
D_SEL :=#on_off_c[15] // 1 = D-action on
CYCLE :=#CYCLE // sample time
SP_INT :="CONT-PAR-DB".c_SPC_15 // --> automatic setpoint
PV_IN :="CONT-PAR-DB".c_ACT_15 // actual value input (°C)
PV_PER :=
MAN :="CONT-PAR-DB".c_MAN_15 // --> manual setpoint
GAIN :="CONT-PAR-DB".c_P_15 // P (proportional gain)
TI :="CONT-PAR-DB".c_Itm_15 // I (reset time)
TD :="CONT-PAR-DB".c_Dtm_15 // D (derivative time)
TM_LAG :=T#2S
DEADB_W :=
LMN_HLM :=1.000000e+002 // Y high limit
LMN_LLM :=
PV_FAC :=1.000000e+000 // process variable factor (PT100)
PV_OFF :="CONT-PAR-DB".c_OFFS_15
LMN_FAC :=
LMN_OFF :=
I_ITLVAL:=
DISV :=
LMN :="CONT-PAR-DB".c_Y_15 // Y value = 0-100%
LMN_PER :=
QLMN_HLM:=
QLMN_LLM:=
LMN_P :=
LMN_I :=
LMN_D :=
PV :=
ER :=


U #on_off_c[15] // heating on
SPB OU15

L 5.000000e+001 // --> Y value = 0%
T "CONT-PAR-DB".c_Y_15

OU15: L "CONT-PAR-DB".c_Y_15
L 2.000000e+000
*R
L 1.000000e+002
-R
L -1.000000e+000
*R
T #cool_valve // cooling valve

L "CONT-PAR-DB".c_Y_15
L 2.000000e+000
*R
L 1.000000e+002
-R
T #heat_valve // heating valve
 
Zurück
Oben