-> Hier kostenlos registrieren
Hallo allerseits,
über dieses Forum habe ich bereits wertevolle Hilfe in der Komponentenauswahl bekommen, deswegen wende ich mich wieder an euch.
Ich habe einen Widerstand, den ich einregeln möchte mittels PI bzw. PID Regler.
Meine verwendete SPS ist ein PiXtend und hat leider soetwas nicht eingebaut.
Deshalb habe ich mir folgendes Tutorial angesehen: PID Controller in CoDeSys - Maksym Levinskyi und abgetippt.
Über zwei Analogeingänge, berechne ich den Sensorwiderstand (R = U/I).
Um den Widerstand einzuregeln, muss ich einen Analogausgang ansteuern, der mein Netzteil regelt.
Ich habe vorerst nur meinen einfachen Code zum laufen bekommen:
Sensorwiderstand:=(((Analogeingang0-0.789)/0.182)/((Analogeingang1-2.43)/7.57));
//Versuch einer Regelung
IF Sensorwiderstand <= 20.986 THEN
rAnalogOut0:=rAnalogOut0_Last-0.01;
;//rAnalogOut0-0.01; //Ausgangsspannung muss eingeregelt werden, nach Sensorwiderstandssollwert
ELSIF Sensorwiderstand >= 20.986 THEN
rAnalogOut0:=rAnalogOut0_Last+0.01;
ELSIF Sensorwiderstand=20.986 THEN
rAnalogOut0:=rAnalogOut0_Last;
END_IF
Jetzt Frage ich mich: Wo an welcher stelle füge ich meine Eingangsgröße in den PID Regler ein (Sensorwiderstand) und wie regele ich meine Ausgangsgröße (Spannung) ?
Das Projekt ist angehangen.
Vielen Dank!!
über dieses Forum habe ich bereits wertevolle Hilfe in der Komponentenauswahl bekommen, deswegen wende ich mich wieder an euch.
Ich habe einen Widerstand, den ich einregeln möchte mittels PI bzw. PID Regler.
Meine verwendete SPS ist ein PiXtend und hat leider soetwas nicht eingebaut.
Deshalb habe ich mir folgendes Tutorial angesehen: PID Controller in CoDeSys - Maksym Levinskyi und abgetippt.
Über zwei Analogeingänge, berechne ich den Sensorwiderstand (R = U/I).
Um den Widerstand einzuregeln, muss ich einen Analogausgang ansteuern, der mein Netzteil regelt.
Ich habe vorerst nur meinen einfachen Code zum laufen bekommen:
Sensorwiderstand:=(((Analogeingang0-0.789)/0.182)/((Analogeingang1-2.43)/7.57));
//Versuch einer Regelung
IF Sensorwiderstand <= 20.986 THEN
rAnalogOut0:=rAnalogOut0_Last-0.01;
;//rAnalogOut0-0.01; //Ausgangsspannung muss eingeregelt werden, nach Sensorwiderstandssollwert
ELSIF Sensorwiderstand >= 20.986 THEN
rAnalogOut0:=rAnalogOut0_Last+0.01;
ELSIF Sensorwiderstand=20.986 THEN
rAnalogOut0:=rAnalogOut0_Last;
END_IF
Jetzt Frage ich mich: Wo an welcher stelle füge ich meine Eingangsgröße in den PID Regler ein (Sensorwiderstand) und wie regele ich meine Ausgangsgröße (Spannung) ?
Das Projekt ist angehangen.
Vielen Dank!!