Universelle Sollwerteingabe und Rampengenerator
Verfasst: Samstag 30. April 2011, 17:12
Guten Tag liebes Forum,
für den einen oder anderen vielleicht von Interesse:
Die Module
- DLL "tag_input" (selektive Werteübergabe aus einem Textfile zu PL)
- macro "analog_tag" (ereignisgesteuerter 2-zu-1 Demultiplexer, erlaubt 2 Analogquellen dynamisch auf einen Wert zuzuweisen, bei Veränderung der Werte)
- macro "PV_input" (dezimalstellen-selektive autorepeat Eingabe von Sollwerten, add tara, Handeingabe Funktionalität)
- DLL "ramp" (Sollwert Rampengenerator mit pause, limiter, man_WSP, rate Funktionalität)
sind hier in einem Projektbeispiel zusammengezogen. Sie bilden eine 4fach-Sollwert Eingabeeinheit. Diese kann einfach verändert werden (mehr oder weniger Kanäle)
Die Sollwertrampen können als Steuerung oder als Sollwert für einen Regler vorgeschaltet werden. Wenn der zu beeinflussende Prozess (z.B. eine Ofentemperatur) langsam geführt werden muss, ist eine Rampe von Vorteil.
Wird ein Profil benötigt, so kann dieses entweder durch PL selbst vorgegeben werden, oder es kann mittels eines Textfiles der Sollwert vorgegeben werden. Die Zielwerte für das Profil können gemächlich vorgegeben werden, die "Echtzeit", hier mit 10Hz, wird durch die Rampen-DLL erledigt.
Die DLL "rampe" erzeugt ausgehend von einem working_SP eine Rampenberechnung, welche solange in die richtige Richtung führt, bis der vorgegebene Zielwert (target_SP) erreicht wurde, oder vorzeitig ein Grenzwert der Rampe "den Riegel schiebt".
Im beiliegenden pdf-File ist eine grafische Doku enthalten.
Zu beachten: als Taster kommen an mehreren Stellen Bitmaps zum Einsatz. In der Doku habe ich die Quelle und den Vorgang zur Aufbereitung der Bitmaps ebenfalls beschrieben. Da die Bitmaps leider mit einem absoluten Filepath referenziert werden, müsst Ihr mein Beispiel anpassen, und auf die Stelle hinweisen, worin Ihr die beiliegenden Bitmaps gespeichert habt.
Freundliche Grüsse von Thomas
für den einen oder anderen vielleicht von Interesse:
Die Module
- DLL "tag_input" (selektive Werteübergabe aus einem Textfile zu PL)
- macro "analog_tag" (ereignisgesteuerter 2-zu-1 Demultiplexer, erlaubt 2 Analogquellen dynamisch auf einen Wert zuzuweisen, bei Veränderung der Werte)
- macro "PV_input" (dezimalstellen-selektive autorepeat Eingabe von Sollwerten, add tara, Handeingabe Funktionalität)
- DLL "ramp" (Sollwert Rampengenerator mit pause, limiter, man_WSP, rate Funktionalität)
sind hier in einem Projektbeispiel zusammengezogen. Sie bilden eine 4fach-Sollwert Eingabeeinheit. Diese kann einfach verändert werden (mehr oder weniger Kanäle)
Die Sollwertrampen können als Steuerung oder als Sollwert für einen Regler vorgeschaltet werden. Wenn der zu beeinflussende Prozess (z.B. eine Ofentemperatur) langsam geführt werden muss, ist eine Rampe von Vorteil.
Wird ein Profil benötigt, so kann dieses entweder durch PL selbst vorgegeben werden, oder es kann mittels eines Textfiles der Sollwert vorgegeben werden. Die Zielwerte für das Profil können gemächlich vorgegeben werden, die "Echtzeit", hier mit 10Hz, wird durch die Rampen-DLL erledigt.
Die DLL "rampe" erzeugt ausgehend von einem working_SP eine Rampenberechnung, welche solange in die richtige Richtung führt, bis der vorgegebene Zielwert (target_SP) erreicht wurde, oder vorzeitig ein Grenzwert der Rampe "den Riegel schiebt".
Im beiliegenden pdf-File ist eine grafische Doku enthalten.
Zu beachten: als Taster kommen an mehreren Stellen Bitmaps zum Einsatz. In der Doku habe ich die Quelle und den Vorgang zur Aufbereitung der Bitmaps ebenfalls beschrieben. Da die Bitmaps leider mit einem absoluten Filepath referenziert werden, müsst Ihr mein Beispiel anpassen, und auf die Stelle hinweisen, worin Ihr die beiliegenden Bitmaps gespeichert habt.
Freundliche Grüsse von Thomas