Kühlwasser Regelung mit Mischerventil

Dilbert

Level-1
Beiträge
13
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo Leute,


Ich bin ein SPS – Neuling und stehe hier vor einem Problem. :shock:
Meine Aufgabe ist, Ich soll eine Temperaturregelung für Kühlwasser
mit Mischerventil und mit Stellmotor aufbauen.
Bisher wurde das mit einem Hardware-Regler gemacht.

Das Ventil hat nur zwei Endschalter für die Endlagen und der Motor wird
einfach mit 24V für auf bzw. zu angesteuert.
Ich hatte da erst mal an den FB41/DB41 gedacht, aber einen
Analog – Ausgang kann ich hier nicht benutzen, da der Motor nur mit 24 V DC arbeitet.

Weiß jemand da eine Lösung :?:

PT100 + CPU 313C Step 7 V5.3

Gruß Peter
 
Hi

Benutz doch den fb43 PWM damit müsste es gehen den schaltest du hinter den fb41 (PID) somit kannste den Motor ansteuern
 
Noch ne Frage !!

Hallo Leute ,

Erstmal vielen Dank für den Tipp mit FB42 bzw FB59. Ich habe mich für den FB42 entschieden.

Z.Z. kann ich leider nur mit PLCsim simulieren da ich noch keine reale Regelstrecke habe.
Nur habe ich nun Leider doch noch ein paar Fragen.

1.) Wenn ich den Schalter PVPER_ON:=TRUE setze, also der Istwert soll von der Peripherie eingelesen werden.
Wird der Ausgang des Reglers ( QLMNUP :=M20.0 // Ventil Auffahren ) gnadenlos auf High gesetz.
Ein Änderung des Istwert am PEW136 is vollkommen "Wurscht".:(

Wenn ich den Schalter PVPER_ON:=FALSE setze, das PEW136 in REAL umgewandele und ans PV_IN schreibe ist alles OK!! :)


2.) TI :=T#0MS // Zeitverhalten des Integrierers
wenn ich den Wert auf z.B. 5 sek setze beginnt der Regler zu schwingen.:(

Weiß hier jemand was ich da falsch mache ??

Hier mal der CODE im OB35

Netzwerk 1
L EW 50
ITD
DTR
T MD 50
L PEW 136
ITD
DTR
T MD 55


Netzwerk 2
CALL FB 42 , DB42
COM_RST :=FALSE
LMNR_HS :=E0.0 // ENDSCHALTER Motor ist OBEN ( Motor AUS)
LMNR_LS :=E0.1 // ENDSCHALTER Motor ist UNTEN ( Motor AUS)
LMNS_ON :=
LMNUP :=
LMNDN :=
PVPER_ON:=FALSE
CYCLE :=T#50MS // Abtastrate Zeit wie OB35
SP_INT :=MD50 // SOLLWERT REAL von EW50 ( SLiderbar )
PV_IN :=MD55 // ISTWERT REAL von PEW 136
PV_PER :=PEW136 // Silderbar PLCSIM
GAIN :=
TI :=T#0MS // Zeitverhalten des Integrierers
DEADB_W :=1.000000e+000 // Totzone ( 1.0 )
PV_FAC :=1.000000e+000 // Faktor ( anpassungsfaktor f. Istwert 1.0 )
PV_OFF :=0.000000e+000 // Offset ( 0.0 )
PULSE_TM:=T#1S // Mindestimpulsdauer
BREAK_TM:=T#1S // Mindestpausendauer
MTR_TM :=T#1M // Motorstellzeit von ganz AUF bis ganz ZU
DISV :=
QLMNUP :=M20.0 // Ventil Auffahren
QLMNDN :=M20.1 // Ventil Zufahren
PV :=MD70 // Am Ausgang wirkender ISTWERT ( nur zum sehen )
ER :=MD75 // REGELDIFFERENZ ( nur zum sehen )
===================================================
PVPER_ON BOOL FALSE PROCESS VARIABLE PERIPHERY ON / Istwert Peripherie einschalten.
Soll der Istwert von der Peripherie eingelesen werden, so muß der Eingang
PV_PER mit der Peripherie verschaltet werden und der Eingang "Istwert Peripherie einschalten" gesetzt werden.
======================================================
TI TIME T#0ms oder >= CYCLE T#20s RESET TIME / IntegrationszeitDer Eingang "Integrationszeit"
bestimmt das Zeitverhalten des Integrierers.
3 mal abgesägt und immer noch zu kurz !!!!!!!!!!!!!!!!!!!!!!!!!! :confused:

Gruß
Peter
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Glückwunsch!

Hallo Peter,

das sieht doch schon mal ganz gut aus.

..Z.Z. kann ich leider nur mit PLCsim simulieren da ich noch keine reale Regelstrecke habe...
Wenn du nun die Regelstrecke oder wenigstens das Ventil auch noch simulieren würdest, könntest ein richtiges Regelverhalten beobachten.

1.) Wenn ich den Schalter PVPER_ON:=TRUE setze, also der Istwert soll von der Peripherie eingelesen werden.
Wird der Ausgang des Reglers ( QLMNUP :=M20.0 // Ventil Auffahren ) gnadenlos auf High gesetz.
Ein Änderung des Istwert am PEW136 is vollkommen "Wurscht".:( ..
Ja, das ist ein bisschen verwirrend. Der Peripheriewert wird intern auf -100..+100 % normiert (bei PV_FAC=1,0 und PV_OFF=0.0). Du müsstest dann deinen Sollwertbereich ebenfalls in % angeben, bzw mittels PV_FAC den %-Wert des Peripheriewertes an den Wertebereich deines Sollwertes anpassen. In der Bausteinhilfe ist das alles eindeutig erklärt. Zum Simulieren würde ich mit %-Werten arbeiten, später mit Physikalischen Einheiten [°C] zum Bsp.

2.) TI :=T#0MS // Zeitverhalten des Integrierers
wenn ich den Wert auf z.B. 5 sek setze beginnt der Regler zu schwingen.:(
Wie erkennst du das ohne Regelstrecke? Ich nehme an, du veränderst den Sollwert und den Istwert manuell per PCLSIM. Dann takten die Ausgänge je nach Regelabweichung. Das ist soweit in Ordnung. Nur, ohne Regelstrecke bekommt der Regler keine Rückwirkung und taktet ewig.

..Weiß hier jemand was ich da falsch mache ??
Prinzipiell erst einmal garnichts. GAIN ist mit 2,0 in der Instanz vorbelegt. Zum Kühlen müsstest du dann einen negativen Wert anlegen. Mit dem I-Anteil und GAIN musst du dann mit Regelstrecke ein bisschen probieren. Der Eingang COM_RST initialisiert den Baustein, sollte man beim Anlauf machen. Prinzipiell sollte dein Bausteinaufruf aber schon funktionieren.


Versuche doch mal einen Baustein zu schreiben, der dir dein Ventil nachbildet und verschalte ihn dann mit deinen Regler. Also einen Baustein mit up- und down-Eingängen, Ventillaufzeit als Vorgabe und Stellung des Ventils [%] sowie die Endlagen als Ausgänge. Als Zeitbasis nutzt du am besten den OB35-Zyklus. Damit könntest du dann schon einmal den Stellgrad des Ventils regeln.

Nutzt du SCL?


Gruß, Onkel
 
Zuletzt bearbeitet:
Hallo Onkel,

Erst mal vielen dank für deine Hilfe. Ich bin froh, das ich dieses Forum
gefunden habe, denn als absoluter Neuling ist man froh um Unterstüzung.;)

Wenn ich das nun richtig verstanden habe, brauch ich mir um den PV_PER
keinen Kopf mehr zu machen.
Ich setze PVPER_ON = FALSE und kann den PVPER vergessen

Es soll später so werden, das man mit Hilfe eines OP3 einen Sollwert
vorgeben kann ( der wird dann bei ca. 85 Grad C. liegen ).

Das würde dann mein Sollwert SP_INT vom OP3 als REAL.

Istwert kommt von einem PT100 PV_IN Hier müßte ich dann das PEW136
in DINT bzw. REAL wandeln.

Der Istwert könnte Min. 0 Grad haben und Max. Ca. 115 Grad. ( Ja wir fahren mit DRUCK von ca. 4 Bar ).

Bisher habe ich die Simulation so gemacht:

Ich erhöhe mit der Sliderbar den Istwert. Dann sehe ich ja am Ausgang ER die wirkende Regeldifferenz und der Ausgang QLMNDN kommt ( Ventil in Pos. kühlen ). nun nutze ich wieder die Sliderbar um
den Istwert kleiner werden zu lassen ( So sollte es ja später auch sein ).
Auf diese Art und Weise Simuliere ich dann mal Über.- bzw Untertemperatur und das klappt ja auch soweit.

Um den Baustein zu initialisieren hatte ich mir gedacht ich rufe den FB42 im OB 100 auf und setze da dann den COM_RST auf TRUE. Sollte doch gehen.
===============================================
Zitat:
Versuche doch mal einen Baustein zu schreiben, der dir dein Ventil nachbildet.
Hmmm ? Ich glaube da würde ich wohl ne ganze Zeit drann knobeln.
Wie gesagt ich bin auch Neuling ( Siemens Serv 1 + 2 ).
========================================
Was ist SLC ????

Als ich das Ziel aus den Augen verlor, verdoppelte ich meine Anstrengungen.


Gruß
Peter
 
Hallo Peter,

Zitat:
Versuche doch mal einen Baustein zu schreiben, der dir dein Ventil nachbildet.
Hmmm ? Ich glaube da würde ich wohl ne ganze Zeit drann knobeln.
Es ist garnicht so schwer. Wenn man davon ausgeht, das der Baustein im Weckalarm aufgerufen wird, dann kann man die Änderung der Stellgröße pro Bausteinaufruf wie folgt berechnen:
Code:
[FONT=Courier New]DY := (LMN_HLM - LMN_LLM) * TA/T1[/FONT]
 
[U]wobei:[/U]
[FONT=Courier New]TA        : REAL := 0.0;      // Abtastzeit [ms] = OB35-Zyklus[/FONT]
[FONT=Courier New]T1        : REAL := 60000.0;  // Ventillaufzeit [ms][/FONT]
[FONT=Courier New]LMN_HLM   : REAL := 100.0;    // Obergrenze Ausgangssignal (default 100.0)[/FONT]
[FONT=Courier New]LMN_LLM   : REAL := 0;        // Untergrenze Ausgangssignal (default 0.0)[/FONT]
Dieses DY addierst du nun zu einer Real-Variable y, falls der high-Ausgang vom Regler anliegt, bzw. subtrahierst ihn wenn der low-Ausgang anliegt, fertig ist deine Ventilstellung. Das Ausgangssignal y müsste nur noch an den Endlagen durch Vergleiche mit LMN_HLM und LMN_LLM begrenzt werden. Mit denselben Vergleichsfunktionen kannst du die Stellungsrückmeldung ausgeben. Mit einem RESET-Eingang setzt du die Berechnung zurück, z.Bsp. beim Anlauf der Steuerung.

Mit SCL lassen sich solche Berechnungen besonders übersichtlich darstellen, daher hatte ich danach gefragt. Natürlich geht das alles auch in AWL zu machen.

Informationen und Handbücher zu SCL findest du bei Siemens.
http://support.automation.siemens.com/WW/view/de/10805400/133000


Gruß, Onkel
 
Zuletzt bearbeitet:
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo Onkel,

Vielen Dank erstmal ! Damit werde ich mal in " Klausur "
gehen. ;)

Das wird aber erst mal etwas dauern, weil ich mal mit anderen
Dingen belegt worden bin. :(

Dennoch werde ich mich sobald wie eben möglich wieder damit
befassen.


Gruß
Peter
 
Zurück
Oben