Regelung mit S7-300

RobRoy94

Level-1
Beiträge
40
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Moin zusammen!
Mit einer S7-300 soll ich eine Temperatur in einem Tank regeln.
Ich habe einen PT100 mit Umformer der mir 4-20mA (0-200°C) ausgibt.
Geregelt werden soll ein analoges Dampfventil (auch 4-20mA).
Ich bin soweit das ich den Temperaturwert eingelesen und skaliert habe.
Auf dem OP37 wird nun die richtige Temperatur angezeigt.
Über das OP soll nun auch die Sollwerteingabe usw erfolgen.
Da es sich um unser Technikerprojekt handelt und wir leider zu Analogwertverarbeitung noch überhaupt nichts gemacht haben stehe ich etwas auf dem Schlauch.
Kann mir jemand einen Tipp geben wie ich die ganze Regelsache jetzt am besten angehe?
 
Die Regelung selbst soll ja wohl mit einem PID-Regler erfolgen. Dazu gibt es von Siemens einen fertigen FB (aus Bibliothek) oder, je nach CPU auch SFB (in der Firmware integriert). Die Nummer war, glaube ich, FB42. Die Doku zu dem Baustein findest du in der Hilfe zu Step 7. FBs brauchen einen Instanz-DB. Für mehr als einen Regler muß je Regler ein eigener DB existieren. Step7 bietet dir an, den DB zu erstellen und schreibt Standard-Parameter hinein. Beim Aufruf brauchst du nur veränderliche Parameter zu übergeben. Wo die Standrd-Vorgaben passen, brauchst du gar nichts zu machen. Zu ändernde aber konstante Parameter änderst du einmalig im Instanz-DB.

Wenn du den Regler selbst schreiben willst: Ich habe hier mehrere Beiträge veröffentlicht, wie das geht. Die Suchfunktion sollte das zutage fördern können.

Der Regler sollte in gleichen Zeitabständen abgearbeitet werden. Dazu rufst du ihn im OB13 (heißt, glaub' ich, Weckalarm) auf.

Mit dem Ausgangssignal steuerst du dein Ventil. Skalieren kannst du ja schon. 100%=16mA und 4mA dazu für den Nullpunkt.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
So. Ich habe mir jetzt den FC41 in einen FC geholt.
Dann habe ich ihn DB11 genannt. Draufhin hat er mir einen Instanz DB generiert.
An SP_INT habe ich meinen bereits Skalierten Eingangswert gelegt.
An PV_IN einen Realwert den ich über das OP vorgebe.
An LMN_HLM habe ich 200.0
An LMN_LLM habe ich 0.0

Jetzt habe ich gedacht den Ausgangswert von PV muss ich wieder Skalieren und dann an meine analoge Ausgangsbaugruppe geben.
Bin ich jetzt schon vollkommen in der falschen Spur oder ist der Ansatz richtig?
 
FB41 Ein- und Ausgänge skalieren

Hallo,

der FB41 verfügt bereits über fertige Skaliermöglichkeiten, allerdings nicht am Eingang SP_INT (der ist für den Sollwert vorgesehen), sondern am Eingang PV_PER und am Ausgang LMN_PER. Die Skalierung am Eingang muß mit PVPER_ON eingeschaltet werden.
 
Also mache ich es folgerndermaßen : !?
1. SP_INT Sollwert den ich im OP eingebe
2. PV_IN Bereits Skalierter Temperatur Istwert

Aber was ist mit den Ausgängen? Den Wert muss ich doch neu skalieren um ihn an der baugruppe auszugeben oder?
 
Zuletzt bearbeitet:
Du kannst den Regler schon in einen FC schreiben aber der FC sollte dann im OB 35 aufgerufen. Somit wird erreicht das der Regler immer im gleichen Zeitabstand aufgerufen wird.
 
Ich hab meinen Regler jetzt folgendermassen belegt:

CALL "CONT_C" , DB35
COM_RST :=
MAN_ON :=FALSE
PVPER_ON:=
P_SEL :=
I_SEL :=
INT_HOLD:=
I_ITL_ON:=
D_SEL :=
CYCLE :=T#100MS (eingestellte Zeit im OB35)
SP_INT :=MD10 (Sollwert 0-200 vom OP aus)
PV_IN :=MD150 (Istwert 0-200 vom Ausgang des FC105)
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 :=PAW256
QLMN_HLM:=
QLMN_LLM:=
LMN_P :=
LMN_I :=
LMN_D :=
PV :=
ER :=MD12 (Differenz Anzeige am OP)

NOP 0

Müsste ich so am PAW256 schon etwas im Bereich von 4-20 mA messen können?
Wie kann ich das simulieren? Einfach ne LED mit Strommesser anschliessen?

Gruß
Roland
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Reglersimulation

Hallo Roland,

Eigentlich sollte sich im DB35 ab DW72 schon was tun. Wenn nicht:
Der Regler ist zum Heizen vorgesehen, das heißt, wenn der Sollwert größer ist als der Eingang, dann steigt der Ausgang. LMN und LMN_PV sind fest über die Funktion CRP_OUT verbunden, also kannst du LMN zum Beobachten überallhin verschalten.
Übrigens, wenn mal eine Kühl-Regelung gebraucht wird, nur GAIN negativ vorgeben.
 
Hallo Werner,

erstmal Danke für die Antwort!
Am Ausgang LMN regeln sich jetzt Werte zwischen 0 und 100.
Ist der Sollwert größer als der Ist Wert , dann läuft er langsam bis 100 hoch.
Gut, soweit klappt das ja.
Heisst das denn jetzt auch das der LMN_PV an meinem PAW256 4-20mA einstellt?

Wie kann ich das an meinem Analogausgang mit einem Strommessgerät simulieren? Hab da etwas viel Respekt da irgendwas einfach so anzuschliessen.
 
Ja.

Ich wollte nur das "Ja" postenm aber:
Die folgenden Fehler traten bei der Verarbeitung auf:
1. Der Text, den Sie eingegeben haben, ist zu kurz. Bitte erweitern Sie den Text auf die minimale Länge von 10 Zeichen.
 
Also am Ausgang bekomme ich nichts raus.

Ist es denn so das ich am LMN einen Wert von 0-100 bekomme, und am LMN_PER einen Wert zwischen 0-27648 (LMN*27648/100) ?
Wenn ja. muss ich diesen dann nicht nochmal umwandeln bevor ich ihn an den PAW gebe?
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo Roland,

LED ist nicht nötig, wenn der Ausgang eine Analogkarte ist. Vorsicht allerdings beim parallen Anschluss vom Meßgerät mit der Anlagenhardware, der Strom teilt sich auf.

Analogausgänge sind ziemlich kurzschlußfest, allerdings gilt auch dabei das Ohmsche Gesetz (die Spannungsversorgung hat auch nur 24 Volt, bei 20mA..).
Wenn am Ausgang sich nichts tut, obwohl die Werte im DB sich ändern, wäre das ein neues Problem. Analogausgangskarten müssen z.B. in der Hardwarekonfiguration richtig eingetragen sein.
 
Zuletzt bearbeitet:
RobRoy94 schrieb:
Also am Ausgang bekomme ich nichts raus.

Ist es denn so das ich am LMN einen Wert von 0-100 bekomme, und am LMN_PER einen Wert zwischen 0-27648 (LMN*27648/100) ?
Ich glaube, da' das so ist, wenn
PV_FAC :=1
PV_OFF :=0
oder:
LMN_FAC :=1
LMN_OFF :=0
Aber welcher wofür zuständig ist (Eingang, Ausgang) mußt du der Hilfe entnehmen.
[/QUOTE]
Wenn ja. muss ich diesen dann nicht nochmal umwandeln bevor ich ihn an den PAW gebe?[/QUOTE]
Nein, gerade dafür ist es ja da.
Allerdings paßt es nur, wenn du eine Ausgabebaugruppe hast, die 4-20mA macht, also 4mA bei Wert 0. Ansonsten kannst du mit den Werten:
PV_FAC , PV_OFF
oder:
LMN_FAC, LMN_OFF
eben erreichen, das bei Ausgang 0 bereits 0.2*27648 in die Baugruppe geschrieben werden und eine Baugruppe für 0-20mA auf diese Weise 4-20mA macht.

Ich würde bei LMN_PER mal ein MW statt des PAW angeben, dann kannst du es leichter beobachten. Oder den Instanz-DB in Datensicht beobachten.
 
Ich habe noch eine Frage zu TI, TD und GAIN.
Kann ich diese nur mit PID control festlegen oder ist es auch möglich diese Werte vom OP aus einzugeben?
Wenn ja, wie ist es dann mit den Zeiten? was muss ich an TI und TD schreiben damit er einen Wert den ich im OP in ms vorgebe an den Eingang schreibt?
 
Zurück
Oben