Anfänger bracht Hilfe bei Regelung mit Step7

TempeltonPeck

Level-1
Beiträge
118
Reaktionspunkte
7
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo,

Ich bin noch Simatic Anfänger und brauch eure Hilfe bei der Erstellung eines Regelkreises mit Step7.

Ich möchte ein Regelkreis mit Regelstrecke und Regler simulieren und anschließen Soll- und Istwert Grafisch darstellen.

Als erstes hab ich einen FB10 geschrieben welcher als PT1 Regelstrecke dienen soll. Hier für habe ich folgenden AWL-Code genutzt.

FUNCTION_BLOCK "PT1"
TITLE =PT1
//Algorithm of the PT1 part:
//Y = K*(ST/T)*U + (1-(ST/T))*Y_previous
VERSION : 0.1


VAR_INPUT
U : REAL ; //Input Value
ST : REAL := 1.000000e-001; //Sample Time
K : REAL := 1.000000e+000; //Gain
T : REAL := 1.000000e+000; //Time Constant
END_VAR
VAR_OUTPUT
Y : REAL ; //Output Value
END_VAR
VAR
Y_previous : REAL ; //Last Y-Value
Temp : REAL ; //Temporary value
END_VAR
BEGIN
NETWORK
TITLE =PT1 CALCULATION

L "ST";
L "T";
/R ;
L "U";
*R ;
L "K";
*R ;
T "Temp";

L "ST";
L "T";
/R ;
L 1.000000e+000;
TAK ;
-R ;
L #Y_previous;
*R ;
L #Temp;
+R ;
T "Y";
T #Y_previous;
END_FUNCTION_BLOCK

Nun hab ich einen neuen FB20 erstellt in welchen ich den FB41 als Regler geladen habe. Für den FB20 ist Y die Eingangsgröße.

Nun möchte ich dem Regler einen Sollwert per SP_INT vorgeben und die Reglung soll arbeiten. Gleichzeitig möchte ich die Verläufe von Ist- und Sollwert verfolgen. Zudem sollen später auch Verstärkung, Zeitkonstante etc von Strecke und Regler variert werden.

Nachdem alle FBs, DBs und OBs erstellt wurden sind lud ich diese in die (Software) CPU per PLCSIM. Nur leide macht die Regelung gar nichts! Auch wenn ich per VAT Steuerwerte vorgebe. ps: MAN_ON ist auf FALSE

Ich weiss das ich zu meinem Vorhaben noch "PID Control" benötige. Auch dort rühert sich der Kurvenschreiber nicht. Bleibt immer bei Null.

Ich hoffe ich konnte mich einigermaßen verständlich ausdrücken. Hat jemand ein Beispiel parat von einem ähnlichen Project oder kennt eine Webside bzw pdf in der Regelungen samt "PID Control" erklärt ist? Die Siemens Unterlagen sind ja für Anfänger das letzte!

Danke!
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Ja das ist schon verständlicher. Danke!

Nur leider habe ich keine Peripheriegeräte. Deshalb wollte ich ja die Regelgröße mit meinem Strecken-FB in den Regler schicken.

Edit: Hab manuell einfach mal einen Istwert von 50 angegeben und einen Sollwert von 25. Leider arbeitet der Regler nicht. Istwert bleibt bei 50. Hab mich an die Anweisungen aus der pdf gehalten.
 
Zuletzt bearbeitet:
Hat leider auch nicht funktioniert. Kann es sein das der Regler eine Startbedingung braucht (Zeit oder ein Ereignis) oder hab ich vielleicht einen Parameter nicht oder flasch gesetzt?

Siehe:

CALL "CONT_C" , DB41
COM_RST :=FALSE
MAN_ON :=FALSE
PVPER_ON:=FALSE
P_SEL :=
I_SEL :=FALSE
INT_HOLD:=
I_ITL_ON:=
D_SEL :=FALSE
CYCLE :=T#50MS
SP_INT :=2.500000e+001
PV_IN :=5.000000e+001
PV_PER :=
MAN :=
GAIN :=
TI :=
TD :=
TM_LAG :=
DEADB_W :=
LMN_HLM :=
LMN_LLM :=
PV_FAC :=
PV_OFF :=
LMN_FAC :=
LMN_OFF :=
I_ITLVAL:=
DISV :=
LMN :=
LMN_PER :=
QLMN_HLM:=
QLMN_LLM:=
LMN_P :=
LMN_I :=
LMN_D :=
PV :=
ER :=
Nutze den OB 35 mit einer Zykluszeit von 50ms. I und D Anteil sind mit absicht abgeschaltet.
 
Hallo,

hab es jetzt geschaft das wenn ich den Sollwert ändere der Kurvenschreiber reagiert. Fragt nicht was der Fehler war. Ich weiss es selbst nicht. Allerdings ändert sich der Istwert oder Stellwert nicht bei änderung des Sollwertes.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hast Du denn bei dem Proportionalbeiwert (gain) und dem Integralwert (TI) was eingegeben?
Außerdem muss P_sel und I_sel gesetzt sein und LMN_HLM (Obergrenze Regelausgang) z.B auf 100.0 (100%) und LMN_LLM auf 0 sein.
 
Zuletzt bearbeitet:
Neues Problem!

Der Stellwert ist immer größer als der Sollwert! Wie kann das sein? Mal abgesehen von Über bzw. Einschwingen. Zudem ich I und D-Anteil abgestellt habe. Also nur ein einfachen P-Regler nutze. Und dessen bleibende Regelabweichung sorgt immer dafür das der Stellwert unter dem Sollwert liegt. Außerdem je höher die Verstärkung desto geringer sollte die Regelabweichung seinen aber die ist auch immer gleich, egal bei welcher Verstärkung.

Was das Studium nicht geschaft hat, schafft jetzt Siemens! Ich werde Wahnsinnig!
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Was hast du für ein Problem damit, das der Stellwert grösser als der Sollwert ist. Der Stellwert steuert doch nur dein Stellglied an. Oder meintest du den Istwert?
 
Da ich keine Regelstrecke hab sollte da nicht der Stellwert=Istwert sein.

Nur zum allg Verständnis:

Sollwert= Wert den der Istwert annehmen soll
Stellgröße=Ausgangsgröße des Reglers
Istwert=Mometanwert
Regelgröße=Zu regelnde Größe
 
Zuletzt bearbeitet:
Da ich keine Regelstrecke hab sollte da nicht der Stellwert=Istwert sein.

Nur zum allg Verständnis:

Sollwert= Wert den der Istwert annehmen soll
Stellgröße=Ausgangsgröße des Reglers
Istwert=Mometanwert
Regelgröße=Zu regelnde Größe
Also irgendwas hast du noch nicht verstanden oder du hast dich verschrieben. Hier schriebst du
...
Der Stellwert ist immer größer als der Sollwert! Wie kann das sein? Mal abgesehen von Über bzw. Einschwingen. ...
Und dessen bleibende Regelabweichung sorgt immer dafür das der Stellwert unter dem Sollwert liegt. ...
Meintest du hier Istwert anstatt Stellwert?
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Sorry für das durcheinander.

Also. Ich gehe davon aus das Stellwert=Istwert ist weil ich keine Regelstrecke implementiert habe. Daher habe ich mich gewundert warum der Stellwert immer größer als der Sollwert ist.

Es kan natürlich sein das meine Annhame falsch ist.
 
Bei einem P Regler ist genau das der Fall... Es kommt am Ende immer was mit dem P Faktor multipliziertes raus... Überschrift "Bleibende Regelabweichung"

Ferner ist es halbwegs ungeschickt zu sagen, dass Stellwert = Istwert ist, denn dann würdest du ja sagen, dass deine Strecke einen Wert vorgegeben bekommt, den Sie dann erreichen soll. Du möchtest aber ja gerade eben dieses Erreichen kontrollieren. Also kann man sagen, dass Stellwert und Istwert nix miteinander zu tun haben.

Wenn man das am Beispiel Gasbrenner mal zeigt: Du gibst eine Solltemperatur der Flamme vor. Dann misst du ihre aktuelle Temperatur. Die Differenz davon soll der Regler zu 0 ausgleichen. Als Ausgabe hat er daher im Falle eines P-Reglers dann % vom Gasventil. Je nach dem, wieviel er nun rausgibt, wird sich die Temperatur erhöhen oder nicht, aber direkt kommt aus dem Regler nicht raus, dass sie jetzt 900° haben soll...

Da ein P Regler ja die Differenz nur verstärkt, musst du auch dafür sorgen, dass immer eine Regelabweichung da ist, sonst wird der Regler gar nix mehr tun
 
Zuletzt bearbeitet:
Hallo,

Sorry! Vergesst alles vorher! Versuche seit Dienstag den Mist zum laufen zubringen und stehe unter Zeitdruck! Deshalb bin ich etwas durch den Wind und ich komm einfach nicht vorwärts! Der Regler regelt einfach nicht! Ich versuche es noch einmal zu erklären.

Ich habe keine Peripherie! Ich möchte für den Anfang einfach einen P-Regler ohne Regelstrecke mit PCSLIM und PID Control simulieren!

Da ich keine Peripherie habe muss Ist und Sollwert vorgegeben werden.

Beispiel: Sollwert=75 und Istwert=25 sind per SP_INT und PV_IN vorgegeben. Der Peripherieeingang PVPER_ON ist mit FALSE deaktiviert. Ebenso steht MAN_ON auf FALSE. I_SEL und D_SEL auch abgeschaltet. P-Anteil ist 2 per PID-Control. Istwert steht auf intern in PID-Control.

Das Problem: Der Regler reagiert überhaupt nicht. Der Istwert bleibt konstant bei 75!

Hat jemand ne Idee?
 
Zuletzt bearbeitet:
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo TempeltonPeck,

ich befürchte, dass Du um die Simulation einer Regelstrecke nicht umhinkommst.

Dein P-Regler hat intern eine Gleichung mit der Variable der Regelabweichung. Wenn sich die Regelabweichung nicht ändert, kann auch kein anderes Ergebniss herauskommen. Falls in Deinem Regler ein I-Anteil dazukommt, wann wird der Regler auch ohne Strecke bis an seinen "I-Anschlag" arbeiten.

Grüße

Ralph
 
Hallo TempeltonPeck,

ich befürchte, dass Du um die Simulation einer Regelstrecke nicht umhinkommst.

Dein P-Regler hat intern eine Gleichung mit der Variable der Regelabweichung. Wenn sich die Regelabweichung nicht ändert, kann auch kein anderes Ergebniss herauskommen. Falls in Deinem Regler ein I-Anteil dazukommt, wann wird der Regler auch ohne Strecke bis an seinen "I-Anschlag" arbeiten.

Grüße

Ralph

Mit I-Anteil funktioniert es leider auch nicht. Dann werde ich es mal mit einer zusätslichen Regelstrecke probieren.
 
Zuletzt bearbeitet:
Ach ich könnte Schreien! Hab eines Project erstellt. Wollte als erstes nur eine PT1 Strecke erstellen. mit Hilfe folgendem AWL-Code:


L #ST
L #T
/R
L #U
*R
L #K
*R
T #Temp

L #ST
L #T
/R
L 1.000000e+000
TAK
-R
L #Yp
*R
L #Temp
+R
T #Y
T #Yp
Algorithmus für die Berechnung war Y = K*(ST/T)*U + (1-(ST/T))*Yp.

Alle Variablen sind Real Werte. U,K,ST und T sind Eingangsvariablen. Temp und Yp sind Statisch. Y ist eine Ausgangsvariable.

So nun FB mit Instanz DB erstellt und natürlich im OB35 aufgerufen. Nun wollte ich per VAT die Variablen vorgeben und mir den Ausgang Y beobachten. Nur egal was ich vorgebe der Ausgang bleibt immer 0!

Konsistenzprüfung ergab keine Fehler oder Warnungen.

Gut dachte ich probiers mit der Oscat Bibliothek. Funktioniert natürlich auch nicht! Wollte den FB162 nutzen. Wenn ich die CPU auf Run-P setze steht im Diagnosepuffer er könne den OB35 nicht laden. Kein FBR vorhanden.

Bitte ich brauch dringend hilfe!

ps: die SF-Led leuchtet auch rot. Kein wunder hab ja auch keine Perepherie.
 
Zuletzt bearbeitet:
Zurück
Oben