-> Hier kostenlos registrieren
Hallo,
ich habe schon immer den Fb_Control_PID_Adv in Codesys 2.3 eingesetzt für diese Aufgabe und hat gut Funktioniert. Nun, nachdem ich den Wechsel auf Codesys 3.5 vollzogen habe, musste ich feeststellen, dass der FbPIDController nicht wirklich regelt.
Zur Erklrärung mit der Ausgabe reckpidregler.wY_Analog wird ein 4-20mA Signal an ein BHKW zur Leistungregelung übergeben. Der Regelbereich beträgt 50%-100% der Leistung.
istuebergaberealinvers liefert den aktuellen Strombezug am Trafo. 0 entspräche dabei 500kW Bezug und 32767 entspricht dann 500kW Einspeisung. Der Zielwert ist 16750.
In der Vergangenheit haben solche Pid Regler für dieses Setting brauchbare Ergebnisse geliefert ohne Parameter feintuning. Aktuell scheine ich jedoch den Wald vor lautern Bäumen nicht zu sehen. Sobald der Reference Wert unter dem Zielwert sinkt, erhalte ich 32767 als Ergebnis und sobald der Wert über dem Sollwert ist erhlate ich die 50% also 16384 aber nie einen Wert dazwischen. Die verschiedenen Parameter habe ich schon in verschiedener Kombination geändert.
Hat jemand einen Hinweis?
ich habe schon immer den Fb_Control_PID_Adv in Codesys 2.3 eingesetzt für diese Aufgabe und hat gut Funktioniert. Nun, nachdem ich den Wechsel auf Codesys 3.5 vollzogen habe, musste ich feeststellen, dass der FbPIDController nicht wirklich regelt.
pidcontrollererweiterteeinstellungen.rOutputMin:=50;
pidcontrollererweiterteeinstellungen.rOutputMax:=100;
pidcontrollererweiterteeinstellungen.rPresetValueOff:=manuelleleistung;
pidcontrollererweiterteeinstellungen.rPresetValueOn:=manuelleleistung;
pidcontrollererweiterteeinstellungen.xPresetOff:=TRUE;
pidcontrollererweiterteeinstellungen.xPresetOn:=TRUE;
pidcontrollererweiterteeinstellungen.rKp:=5;
pidcontrollererweiterteeinstellungen.rTd:=5;
pidcontrollererweiterteeinstellungen.rTn:=1;
pidcontrollererweiterteeinstellungen.tCycleTime:=T#1S;
pidcontrollererweiterteeinstellungen.rDeadZone:=0.5;
pidcontrollererweiterteeinstellungen.xChangeInDirection:=FALSE;
reckpidregler(xEnable:= NOT manuelpidregler, rReferenceValue:=zielwert, rActualValue:=istuebergaberealinvers,rManualValue:=manuelleleistung,typConfigParameters:=pidcontrollererweiterteeinstellungen);
Zur Erklrärung mit der Ausgabe reckpidregler.wY_Analog wird ein 4-20mA Signal an ein BHKW zur Leistungregelung übergeben. Der Regelbereich beträgt 50%-100% der Leistung.
istuebergaberealinvers liefert den aktuellen Strombezug am Trafo. 0 entspräche dabei 500kW Bezug und 32767 entspricht dann 500kW Einspeisung. Der Zielwert ist 16750.
In der Vergangenheit haben solche Pid Regler für dieses Setting brauchbare Ergebnisse geliefert ohne Parameter feintuning. Aktuell scheine ich jedoch den Wald vor lautern Bäumen nicht zu sehen. Sobald der Reference Wert unter dem Zielwert sinkt, erhalte ich 32767 als Ergebnis und sobald der Wert über dem Sollwert ist erhlate ich die 50% also 16384 aber nie einen Wert dazwischen. Die verschiedenen Parameter habe ich schon in verschiedener Kombination geändert.
Hat jemand einen Hinweis?