Die ACE SPS/PLC hat einen eigenen PID (Proportional-Integral-Differential (derivativ) Regler, der wirklich gut regelt. Der PID Regler ist neben dem P und PI Regler das am häufigsten verwendete Verfahren in der Prozesssteuerung,
Die PID-Funktion berechnet den "Fehlerwert" zwischen einer gemessenen Prozessgröße und dem gewünschten Sollwert. Es passt eine Ausgabe an, um den Fehler zu minimieren. Diese Anpassung erfolgt periodisch. Jedes Mal, wenn eine Anpassung vorgenommen wird, berücksichtigt sie die Größe des Fehlers (proportional), die kumulierte Summe des Fehlers über die Zeit (integral) und die Änderungsrate des Fehlers (Diffenrential bzw. derivativ).
Da die ACE SPS einen PWM Ausgang bzw. analogen Ausgang hat wird in aller Regel mit diesen Ausgängen gearbeitet. Der PWM Ausgang ist für einige Anwendungen wie Heizungen oder Getriebemotoren viel zu schnell, selbst wenn ein SSR (solid-state-relay) verwendet wird. Der PID Regler kann aber auch als 2-Punkt Regler (AN-AUS) mit variablen Zeiten verwendet werden. Dazu wird das PID Ausgangssignal in eine Zeit umgerechnet. Unten gibt es den LINK zum Video und die Projekt Dateien von dieser Seite zum Download.
Ich habe die PLC und das HMI über COM1 als RS232 Verbunden. Mit einem Poti habe ich den analogen Eingang simuliert und über eine 24 Volt LED habe ich das pulsen sichtbar gemacht. Wenn ich im folgenden also auch von LED schreibe ist damit immer der Ausgang gemeint.
1: Zuerst kopiere ich den analogen Wert in eine Variable, hier muss ggf. noch ein "scale" dazwischen um den Fühlerwert zu bestimme.
3: Das ist der eigentliche PID Regler, ich habe Variablen verwendet, so kann ich alle Werte über das HMI verändern. Für das P,I und D sollten Float Variablen verwendet werden. Da beim PID mit zwei Stellen nach dem Komma gearbeitet werden sollte, sonst sind die "Sprünge" zu groß.
6 und 8, hier starte ich nur die beiden Timer.
10: Ist die Anlage nicht gestartet werden alle Werte über "copy" auf 0 gesetzt.
13: Ist der "Istwert" größer als der "Sollwert", wird der Ausgang immer auf 0 gesetzt. Das verhindert ein "nachschwingen". Zudem soll es bei einer Fehlfunktion immer sicher stellen dass der Ausgang nicht ein ist, wenn der Sollwert erreicht ist. Hier auch ein "=>" verwendet werden.
15: Mit dieser Funktion, teile ich die fest eingestellte Zeit durch 2, diese Einstellung kann auch geändert werden. Damit wird die Zeit aber halbiert.
17 und 19: In dieser Reihe wird über den Vergleich von SOLL und IST und über den Vergleich von timer2 und timer3 nun die Variable "pwmaus" geschaltet. Mit Reihe 17 und 19 wird der " aus Takt" des schalten umgesetzt.
23: Über die copy Funktion wird nun bestimmt wie lange der Ausgang EIN sein soll. Hier wird nun der PID Ausgang mit einem Timer verglichen und geschaltet. Nach dem schalten muss der timer wieder auf 0 gesetzt werden.
25: über eine NC (normaly closed) und eine NO (normaly open) Funktion wird der Ausgang im Wechsel geschaltet.
Damit die Werte über das HMI verändert werden können habe ich eine kleine Grafik erstellt. Auf dieser Oberfläche kann auch gleich der Sollwert (setpoint) eingestellt und die Anlage gestartet werden. Über die Auszeit wird bestimmt wie lange die LED aus ist über den PID Regler wird bestimmt wie lange die LED ein ist. Die MIN und MAX Werte dienen zum begrenzen der Werte. So kann eine MIN ein Zeit der LED oder eine MAX ein Zeit der LED bestimmt werden.
Wichtig ist vor allem auf die richtige Modbus Adressierung zu achten.
Hier gibt es die .zip Datei mit dem PLC und HMI Dateien.