-> Hier kostenlos registrieren
Hallo zusammen!
Wollte mal was über die CONT_C Regler in Erfahrung bringen:
Hab ne CPU 314 und soll 2 Flussmengen regeln, 0-20 m3/h.
Wenn ich jeden einzelnen Regler simuliere, also nach Regler 1 [BEA], funzt es ganz gut, aber wenn ich beide zusammen laufen lasse, passiert folgendes:
Ich simulier am PEW 256, also die Flussmenge 1 weniger also SOLL, demnach steigt der Stellwert von Regler 1, soweit richtig.
Aber das Problem ist, der Stellwert von Regler 2 steigt ebenfalls mit, nur langsamer...
Das gleiche ist andersrum auch. Ich erhöhe zB Flusswert 2, PEW 258 -->Regler 2 Stellwert erhöht sich gut, aber Stellwert vom Regler 1 geht ebenfalls langsam mit!
Muss ich da noch was beachten, zwecks DB-Aufruf oder kann mir da jemand nen Tipp geben?
Danke!
Wollte mal was über die CONT_C Regler in Erfahrung bringen:
Hab ne CPU 314 und soll 2 Flussmengen regeln, 0-20 m3/h.
Wenn ich jeden einzelnen Regler simuliere, also nach Regler 1 [BEA], funzt es ganz gut, aber wenn ich beide zusammen laufen lasse, passiert folgendes:
Ich simulier am PEW 256, also die Flussmenge 1 weniger also SOLL, demnach steigt der Stellwert von Regler 1, soweit richtig.
Aber das Problem ist, der Stellwert von Regler 2 steigt ebenfalls mit, nur langsamer...
Das gleiche ist andersrum auch. Ich erhöhe zB Flusswert 2, PEW 258 -->Regler 2 Stellwert erhöht sich gut, aber Stellwert vom Regler 1 geht ebenfalls langsam mit!
Muss ich da noch was beachten, zwecks DB-Aufruf oder kann mir da jemand nen Tipp geben?
Code:
UN "AS: DosPu1"
L 0.000000e+000
SPB M101
L "DB_GET_AE".R32.DosPu1_Meng //<== Istwert [REAL]
L 1.000000e+001
/R
T "PID-DATA".Reg_C_001_GET.X
L "Sollwert_DB".DosPu_1.Menge_Foerder // <== Sollwert [REAL]
UN "PID-DATA".Reg_C_001_PUT.w_ext_int // w intern/extern (Regler)
SPB M101
L "PID-DATA".Reg_C_001_PUT.W_intern
M101: T "PID-DATA".Reg_C_001_GET.W
CALL "CONT_C" , DB41
COM_RST :="PID-DATA".Reg_C_001_PUT.Restart
MAN_ON :="PID-DATA".Reg_C_001_PUT.Y_Hand_Ein
PVPER_ON:=FALSE
P_SEL :="PID-DATA".Reg_C_001_PUT.P_Ein // P-Anteil einschalten
I_SEL :="PID-DATA".Reg_C_001_PUT.I_Ein // I-Anteil einschalten
INT_HOLD:="PID-DATA".Reg_C_001_PUT.I_Hold // I-Anteil einfrieren
I_ITL_ON:="PID-DATA".Reg_C_001_PUT.I_Set // I-Anteil setzen
D_SEL :="PID-DATA".Reg_C_001_PUT.I_Set // D-Anteil einschalten
CYCLE :=T#100MS
SP_INT :="PID-DATA".Reg_C_001_GET.W // Sollwert
PV_IN :="PID-DATA".Reg_C_001_GET.X // Istwert Eingang
PV_PER :=
MAN :="PID-DATA".Reg_C_001_PUT.Y_Hand // Handwert
GAIN :="PID-DATA".Reg_C_001_PUT.P // Proportionalbeiwert
TI :="PID-DATA".Reg_C_001_PUT.TI // Integrationszeit
TD :="PID-DATA".Reg_C_001_PUT.TD // Differenzierzeit
TM_LAG :=T#1M // Verzögerung D-Anteil
DEADB_W :="PID-DATA".Reg_C_001_PUT.Totzone // Totzonenbreite
LMN_HLM :="PID-DATA".Reg_C_001_PUT.Y_HLIM // Stellbegrenzung oben
LMN_LLM :="PID-DATA".Reg_C_001_PUT.Y_LLIM // Stellbegrenzung unten
PV_FAC :=1.000000e+000 // Istwert Faktor
PV_OFF :=0.000000e+000 // Istwert Offset
LMN_FAC :=1.000000e+000 // Stellwert Faktor
LMN_OFF :=0.000000e+000 // Stellwert Offset
I_ITLVAL:="PID-DATA".Reg_C_001_PUT.I_Start // Initialwert I-Anteil
DISV :=0.000000e+000 // Störgröße
LMN :="PID-DATA".Reg_C_001_GET.Y // Stellwert
LMN_PER :=
QLMN_HLM:="PID-DATA".Reg_C_001_GET.Y_HLIM // Stellbegrenzung oben erreicht
QLMN_LLM:="PID-DATA".Reg_C_001_GET.Y_LLIM // Stellbegrenzung unten erreicht
LMN_P :=#dummy_p
LMN_I :=#dummy_i
LMN_D :=#dummy_d
PV :=#dummy_pv
ER :=#dummy_er
L "PID-DATA".Reg_C_001_GET.Y
T "SW: DosPu 1"
Code:
UN "AS: DosPu2"
L 0.000000e+000
SPB M102
L "DB_GET_AE".R32.DosPu2_Meng //<== Istwert [REAL]
L 1.000000e+001
/R
T "PID-DATA".Reg_C_002_GET.X
L "Sollwert_DB".DosPu_2.Menge_Foerder // <== Sollwert [REAL]
UN "PID-DATA".Reg_C_002_PUT.w_ext_int // w intern/extern (Regler)
SPB M102
L "PID-DATA".Reg_C_002_PUT.W_intern
M102: T "PID-DATA".Reg_C_002_GET.W
CALL "CONT_C" , DB41
COM_RST :="PID-DATA".Reg_C_002_PUT.Restart
MAN_ON :="PID-DATA".Reg_C_002_PUT.Y_Hand_Ein
PVPER_ON:=FALSE
P_SEL :="PID-DATA".Reg_C_002_PUT.P_Ein // P-Anteil einschalten
I_SEL :="PID-DATA".Reg_C_002_PUT.I_Ein // I-Anteil einschalten
INT_HOLD:="PID-DATA".Reg_C_002_PUT.I_Hold // I-Anteil einfrieren
I_ITL_ON:="PID-DATA".Reg_C_002_PUT.I_Set // I-Anteil setzen
D_SEL :="PID-DATA".Reg_C_002_PUT.I_Set // D-Anteil einschalten
CYCLE :=T#100MS
SP_INT :="PID-DATA".Reg_C_002_GET.W // Sollwert
PV_IN :="PID-DATA".Reg_C_002_GET.X // Istwert Eingang
PV_PER :=
MAN :="PID-DATA".Reg_C_002_PUT.Y_Hand // Handwert
GAIN :="PID-DATA".Reg_C_002_PUT.P // Proportionalbeiwert
TI :="PID-DATA".Reg_C_002_PUT.TI // Integrationszeit
TD :="PID-DATA".Reg_C_002_PUT.TD // Differenzierzeit
TM_LAG :=T#1M // Verzögerung D-Anteil
DEADB_W :="PID-DATA".Reg_C_002_PUT.Totzone // Totzonenbreite
LMN_HLM :="PID-DATA".Reg_C_002_PUT.Y_HLIM // Stellbegrenzung oben
LMN_LLM :="PID-DATA".Reg_C_002_PUT.Y_LLIM // Stellbegrenzung unten
PV_FAC :=1.000000e+000 // Istwert Faktor
PV_OFF :=0.000000e+000 // Istwert Offset
LMN_FAC :=1.000000e+000 // Stellwert Faktor
LMN_OFF :=0.000000e+000 // Stellwert Offset
I_ITLVAL:="PID-DATA".Reg_C_002_PUT.I_Start // Initialwert I-Anteil
DISV :=0.000000e+000 // Störgröße
LMN :="PID-DATA".Reg_C_002_GET.Y // Stellwert
LMN_PER :=
QLMN_HLM:="PID-DATA".Reg_C_002_GET.Y_HLIM // Stellbegrenzung oben erreicht
QLMN_LLM:="PID-DATA".Reg_C_002_GET.Y_LLIM // Stellbegrenzung unten erreicht
LMN_P :=#dummy_p
LMN_I :=#dummy_i
LMN_D :=#dummy_d
PV :=#dummy_pv
ER :=#dummy_er
L "PID-DATA".Reg_C_002_GET.Y
T "SW: DosPu 2"
Danke!