# Dreipunktschrittregler für Dreiwegeventil



## myozze (2 November 2004)

Hallo an alle und besonders an Regelungsprofis,

ich als Regelungsneuling stehe vor folgender Aufgabe:
Es soll ein Dreiwegeventil (Landis&Staefa VXF21.80-78, Stellantrieb: Landis&Staefa SQX31) temperaturabhängig geregelt werden.
Das Ventil sitzt an einem Bypass nach einer Wärmepumpe und soll die Vorlauftemperatur der Wärmepumpe auf einem bestimmten Wert halten.

Zur Verfügung steht mir eine CoDeSys-SPS. Was ich nicht habe, ist der passende Reglerbaustein. Den muß ich mir jetzt schreiben. 

Mein Ansatz wäre:
Ich nehme einen PID-Regler und baue mir drum herum eine Art Schrittregler: 
Das Ausgangssignal des PID-Reglers wandle ich in eine Pulslänge um. Diesen Puls gebe ich auf den Auf- bzw Zu-Eingang des Stellmotors. Nach Ablauf einer bestimmten Zykluszeit wird ein neuer Puls erzeugt. Eine Hysterese erhalte ich, indem ich unterhalb eines bestimmten PID-Ausgangswertes keinen Puls erzeuge (oder ich verwende einen PID-Regler mit Hysterese).
Den Faktor Pulsdauer/Wert, die Hysteresegrenzen und die Zykluszeit mache ich parametrierbar.

Ausserdem bereitet mir noch Kopfzerbrechen, dass ich keine Stellungsrückmeldung bekomme. Ich muss also noch die Pulszeiten aufsummieren und mit der Laufzeit des Stellantriebs vergleichen, um mir eine Stellungsanzeige zu "generieren". Ausserdem muß ich eine Reset einbauen, um die Stellunganzeige zu "eichen".
Ich denke darüber nach, bei einem Reset das Ventil kpl. Auf- oder zufahren zu lassen (Puls mit Laufzeit des Stellantriebes). Aber:
Was passiert, wenn ich nach dem Erreichen einer Endlage Eingang "Auf"/"Zu" gesetzt lasse. Ich gehe eigentlich davon aus, dass jeder Stellantrieb intern Endschalter hat (die aber auch ausfallen können...).

Das nächste Problem: Das Ventil kann am Stellantrieb von Hand verstellt werden. Das bekomme ich aber nicht mit (oder?). Meine errechneter Stellungswert ist damit für die Katz. Ausweg: Ich verbiete dem Kunden die Handverstellung am Stellantrieb und baue eine Handbetriebsmodus mit Hand-Auf/Zu in meinen Regler ein.

Macht der Ansatz Eurer Meinung nach Sinn oder bin ich völlig auf dem Holzweg? Gibt's Alternativen?

Ich bin für jede Meinung, Hilfe und Anregung dankbar!

Viele Grüsse
Andi


----------



## Firefox (2 November 2004)

Hi Andi,

Gegen den Faktor Hardwareausfall bei den Endschaltern bist du nicht gefeit und den Faktor Mensch kannst Du ohne Stellungsrückmeldung auch nicht eliminieren. Allerdings kannst Du die aus einem Poti leicht eine Rückmeldung basteln, wenn es der Platz am oder im Ventil zulässt. Aber bietet Landiys so etwas nicht als Zubehör an? Ansonsten guck mal bei Gemue.de.

MfG

Firefox


----------



## Onkel Dagobert (11 November 2004)

Hallo Andi,

dein Denkansatz ist richtig, bis auf "Nach Ablauf einer bestimmten Zykluszeit wird ein neuer Puls erzeugt." Ein neuer Impuls muss abhängig sein von der Änderung des Reglerausgangsignals, nicht von einer Zykluszeit. Endschalter brauchst du eigentlich nur dann, wenn die Funktion des Stellantriebs überwacht werden soll. In der Regel ist das ganz sinnvoll. Siemens bzw. L&G Antriebe haben Endschalter, jedenfalls die die ich kenne. Es sind Wechsler die den Antrieb in der Endlage abschalten. Am jeweiligen Schlieser kann das Endlagensignal zurückgeführt werden (bei 230V-Typen über Koppelrelais). Es gibt aber auch die Möglichkeit, ein zweites Paar Endschalter nach zu rüsten. Diese müssen dann exakt eingestellt werden, damit sie schalten bevor die "scharfen" Endschalter kommen. Sonst werden sie nie ausgelöst. Eine Handbedienung über die Software sehe ich auch immer vor. Gegen eine Vorortbedienung kann man nichts machen. Daher Synchronisiere ich die Stellantriebe 1 mal pro Tag (einmal AUF und wieder ZU), jeweils um 6:00h morgens (nicht bei frostgefährdeten Anlagen).

Wenn man Endlagensignale zur Verfügung hat, kann man noch eine Funktion zum Teachen der Ventillaufzeit einbauen. Das ist bei der Inbetriebnahme sehr nützlich.

Bietet denn CoDeSys keine Schrittregler an?


Gruß, Onkel


----------



## myozze (13 November 2004)

*danke*

Hallo Onkel Dagobert,

das beruhigt mich. Klar: Die Impulsdauer richtet sich natürlich nach der PID-Ausgangswert-Änderung und nicht nach dem absoluten Wert des PID-Ausgangs.
Einen neuen Impuls möchte ich aber immer erst nach Ablauf einer bestimmten Zykluszeit setzen, damit der Stellantrieb nicht dauernd auf und zu fährt. Dann selbstverfreilich nur, wenn sich der PID-Ausgang geändert hat (+Hysterese).
Die Geschichte mit den Teach-, Synchronisier- und Handfunktionen gefällt mir auch sehr gut. Die kommen rein.
Hab mir jetzt Gedanken zum Regler gemacht, den ich intern verwenden muß: Ich denke, dass der I-Anteil möglichst klein sein muß. Sonst schraubt mir ja der I-Anteil während meiner Pausenzeit (zwischen den Impulsen) den Reglerausgang unnötig hoch. Gibt's da irgendwelche Faustwerte für die Reglerparameter (als Ausgangsbasis), die du mir nennen könntest?
Ausserdem soll es "selbstlernende" Schrittregler geben, die sich selber der Regelstrecke anpassen. Bin allerdings etwas ratlos, wie ich das machen soll. Hast du da Erfahrung?

Zu CoDeSys: Die Fa. 3s (Hersteller von CoDeSys) bietet keinen Schrittregler an. Es ist normalerweise Sache vom jeweiligen SPS-Hersteller, der CoDeSys für seine SPS verwendet, solche "höheren" Bibliotheks-Bausteine zur Verfügung zu stellen. Möller, ABB, Wago, Beckmann & Co bieten solche Bibliotheken an, die kosten dann aber auch ... Ein offener Bausteinpool zum Austausch von Bausteinen (zwischen SPS-Programmierern) wäre darum eine super Sache. Leider gibt's sowas noch nicht, glaub ich. Vielleich eine Anregung für diese Forum? Aber das ist ein anderes Thema.

Viele Grüsse
Andi


----------



## Onkel Dagobert (16 November 2004)

*Re: danke*

Hallo Andi,



			
				myozze schrieb:
			
		

> ...Hab mir jetzt Gedanken zum Regler gemacht, den ich intern verwenden muß: Ich denke, dass der I-Anteil möglichst klein sein muß. Sonst schraubt mir ja der I-Anteil während meiner Pausenzeit (zwischen den Impulsen) den Reglerausgang unnötig hoch. Gibt's da irgendwelche Faustwerte für die Reglerparameter (als Ausgangsbasis), die du mir nennen könntest?...



Der I-Anteil bringt im Allgemeinen Ruhe in den Regelkreis. Je größer Die Nachstellzeit ist, um so langsamer ändert der I-Anteil seinen Beitrag an der Stellgröße. Der P-Anteil wirkt im Gegensatz dazu unverzüglich entsprechend der Regelabweichung. Eine Faustregel bezüglich der Reglerparameter gibt es prinzipiell nicht. Diese sind immer von der Regelstrecke abhängig. Da du deine Regelstrecke kurz beschrieben hast, würde ich mal denken daß eine Verstärkung von 1,5 bis 2,5 und eine Nachstellzeit von >45s (Ventillaufzeit 120s mal angenommen) gute Ausgangswerte zum Probieren sind.




			
				myozze schrieb:
			
		

> ..Ausserdem soll es "selbstlernende" Schrittregler geben, die sich selber der Regelstrecke anpassen. Bin allerdings etwas ratlos, wie ich das machen soll. Hast du da Erfahrung?..



Leider habe ich mit selbstoptimierenden Reglern keine Erfahrung. Bei Step7 der neueren Versionen gibt es aber einen Baustein der das kann. Ich hatte auch mal kurz damit experimentiert (nur Simulation), habe es aber dann auch dabei belassen. Bezüglich Bearbeitungszeit und Speicherplatz war diese Lösung ohnehin nicht besonders attraktiv. Die Handhabung ist auch nicht unbedingt einfach. Kann jemand was positives darüber berichten?


Gruß, Onkel


----------



## Anonymous (18 November 2004)

hallo andi,

also, ich würde nur ein p-regler verwenden ohne (i-anteil), mit einem bereich von -100% bis + 100%. 
den p-reglerausgang legst du dann auf dein ventilmodul. das ventilmodul hat zwei dig. ausgänge(einer zum schliessen und einer zum öffnen). des weiteren kann im ventilmodul eine öffnungsdauer des ventils angegeben werden. zum beispiel 60s. gibt der regler +10% raus wird ein impuls von 6s und dauer auf den öffnenden ausgang gelegt. 54s passiert nichts.

bei +20% wird ein impuls von 12s auf den "öffnenden" Ausgang gelegt und 48s passiert nichts. usw und sofort..

gibt der regler negative werte raus machst du das selbe einfach mit dem "schliessenden" ausgang. 

der i-anteil ergibt sich von selbst mit der öffnungsdauer des ventils. die stellung des ventils interessiert mich in diesem fall nicht...  
funzt gut habe das schon mehrfach so verwendet  .


----------



## myozze (20 November 2004)

*Selbstoptimierung Schritt-Regler*

Hallo Pate,

warum kompliziert, wenns auch einfach geht.  :wink:  :idea: 
Deine Lösung hört sich gut an. Werd das mal austesten.

Nur das Thema Selbstoptimierung würd mich noch interessieren. Weiss jemand, wie das funktioniert?  :?: 

Viele Grüsse und Danke für die Antworten
Andi


----------



## Anonymous (24 November 2004)

*hmm..*

Da gibts meines wissens verschiedene Verfahren. 

Sprungantwortverfahren
Einschwingverfahren (Ziegler und Nichols)
(Sind wohl die zwei einfachsten) 

Weiter gibts sie Frequenzganganalyse(Nyquistkriterium). Das geht dann aber schon so richtig richtung Ingenieurskunst.. Das ist bei mir schon bald etwas lange her    ...


Eine Kurze Zusammenfassung habe ich unter http://www.iei.tu-clausthal.de/~promise/rcp/lit/einstellregeln.pdf  gefunden. 
Wenn du etwas rumstöberst findest du sicher noch viel mehr ...

Eine selbstoptimierungsverfahren für PID Regler wollt ich auch schon lange mal programmieren also wenn jemand noch mehr weiss.. Es wären schon zwei Interessenten  :lol:


----------

