TIA Pumpe Regeln mit Analogwert...Hilfe benötigt

Koi_Andi

Level-1
Beiträge
58
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo liebe Forenfreunde,

ich benötige mal wieder eure Hilfe. Dieses Mal geht es um eine Drucksteuerung für eine Pumpe.
Ich möchte eine Wasserpumpe mit Hilfe eines Druckgebers von Vega steuern, da die bisherige Steuerung des Herstellers leider den Geist aufgegeben hat und es den Hersteller wohl auch nicht mehr gibt.

Ich habe eine Wasserpumpe (Sulzer) mit 2,2 kW, welche mir bis zu 8 Wasserfilter je nach verschmutzungsgrad Rückspühlt. Diese Funktion habe ich bereits mit meiner schon vorhandenen S7 1513 realisiert.
Nun die Pumpe läuft derzeit komplett durch, so dass ich hörbare Druckschläge in der Leitung habe, welche ich aber nicht möchte. Der Nachbar ist keine 2 Meter von der Anlage entfernt. Nervt Ihn also sehr.

Ich möchte nun das Ganze mit einem Siemens V20 FU über die SPS steuern. Ja ich weiß, laut der Beschreibung kann der Fu das auch ohne SPS, jedoch möchte ich, dass diese Ansteuerung darüber läuft.
Die Pumpe baut einen Max. Druck von 7 Bar auf, jedoch benötigen die Filter nur 3,2 Bar. Heißt ich möchte mit einem Vegabar Sensor den Druck erfassen, so dass das System nur 3,2 Bar hat. Je nach dem wie viele Filter gerade Spülen, soll die SPS den FU nachregeln lassen.
Derzeit erreiche ich 3,2 Bar über den FU im Test bei geschlossenen Ventilen mit ca. 39Hz. Also 11 Hz nach oben offen mit den ich Regeln und arbeiten möchte…

Nun mein Manko, ich habe noch nie eine solche Regelstrecke mit 4-20 mA Eingang programmiert die dann je nach Bedarf einen 4-20 mA Ausgang regelt.

Mein Gedankengang war nun folgender, Wenn alle Ventile zu sind möchte ich das der Umrichter auf 39Hz dauerhaft läuft. Verändert sich nun der Druck in der Rohrleitung dürch ein geöffnetes Ventil, so soll der FU bis 100% Regeln. Wie kann ich einen fest vorgeschriebenenen mA Wert am ausgang programmieren, zb: 12mA mit geschlossenen Ventilen und dann bis auf 20mA mit geöffneten Ventilen?


Gruß
Andi
 
Zuletzt bearbeitet:
Hallo Thomas,

Als CPU Ne S7 1500 (1513 PN1)
Analogeingangskarte ist von Helmholz mit 16 Bit, Analogausgangskarte ebenfalls Helmholz mit 12 Bit.

Möchte das ich feste Analogwerte vergebe, je nach Druck werde ich den jeweiligen Analogwert dann ansteuern. Aber wie vergebe ich diese Werte???

Hier hatte ich sowas in der Art für eine Nachfüllfunktion eines Nachspeisetank für die Teichanlage programmiert. Ein Analogeingang steuert da ein Ventil. Nur möchte ich nun eben genau so nur statt einem Ventil einen festen Ausgangswert programmieren.
Anhang anzeigen Nachfüll.bmp

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

ja sowas habe ich bereits für die Teichanlage gemacht, sind mehrere Teiche mit ingesamt 600.000 Liter Volumen. Da wollte ich im Sommer nicht täglich raus um zu schauen wo Wasser nachgefüllt werden soll und wo nicht. Also das hab ich bereits einmal gemacht.

Hier hatte ich sowas in der Art für eine Nachfüllfunktion eines Nachspeisetank für die Teichanlage programmiert. Ein Analogeingang steuert da ein Ventil. Nur möchte ich nun eben genau so nur statt einem Ventil einen festen Ausgangswert programmieren.
Anhang anzeigen 34038

Nun sollte ich nur wissen, welchen Baustein ich brauche um einen festen Analogwert zu programmieren welchen ich dann über diese Funktion ausgeben werde.


Gruß

Andi
 
Zuletzt bearbeitet:
Dafür brauchst du einen kontinuierlichen Regler, PI-Regler reicht aus.

Dazu deinem Programm einen neuen Baustein hinzufügen. Im Dialog wählst du "Cyclic interrupt" aus. Als Zeittakt kannst du z.B. die voreingestellten 100 ms (Anzeige ist in Microsekunden) belassen. Dieser Baustein wird später automatisch alle 100ms aufgerufen. Unterbricht also dann auch dein laufendes Programm im OB1.
In diesem neuen Baustein (z.B. OB30), fügst du aus der Bibliothek Technologie->PID Basisfunktionen den Baustein CONT_C ein. Das ist ein PID-Regler.
Dieser hat mehrere Parameter. An den Eingang PV_IN beschaltest du deinen Druck-Istwert den du schon hast. An den Eingang SP_INT trägst du deinen Drucksollwert ein den du später haben möchtest, z.B. 3.2.
Den Parameter CYCLE musst du mit T#100ms beschalten, denn der OB im 100ms Zyklus aufgerufen wird.

Der Ausgang LMN bzw. LMN_PER ist die Stellgröße des Reglers, d.h. der Ausgang. An den Ausgang LMN_PER kannst du nun dein PAW angeben, oder du verwendest den Ausgang LMN, dieser hat bei den voreingestellten Werten einen Bereich von 0.0 bis 100.0.
Wenn du das drin hast musst du später nur noch den Parameter MAN_ON auf false setzen, und dann regelt der Baustein schon.

Die Reglerparameter sind die Eingänge GAIN und TI. Die kannst du erstmal auf den Voreinstellungen lassen. Wenn du GAIN erhöhst reagiert der Regler schneller, wenn du TI verringerst ebenfalls (ganz grob gesagt).
 
Zuletzt bearbeitet:
Rechnet der Baustein dann den Wert in ein analoges Ausgangssignal um?

Oder muss ich da nochmals dann sagen das der Bereich 4-20mA sein soll. also Real auf Int umrechnen lassen


Gruß

Andi
 
Zuletzt bearbeitet:
Zuviel Werbung?
-> Hier kostenlos registrieren
Wenn du LMN_PER verwendest, dann geht dieser Ausgang von 0 bis 27648. Wenn die Ausgangskarte passend eingestellt ist, dann entspricht das direkt 4..20 mA.

Oder du verwendest den Ausgang LMN und skalierst diesen dann selber, sodass 0..100% von diesem Aufgang einer entsprechenden Spanne an deinem Analogausgang entspricht. Der Bereich des Ausgangs wird über die Parameter LMN_LLM und LMN_HLM festgelegt. Wenn du möchtest, dass der Motor z.B. immer mit min. 30 Hz (Beispiel) betrieben wird, dann könntest du LMN_LLM entsprechend hochsetzen.
 
Hallo Thomas,

Das heißt, dass dann LMN_LLM den INT Wert bekommt was mir der Druckgeber von Vega bei 3,2 Bar ausspuckt.... Richtig verstanden??

Gruß Andi
 
Nein, LMN ist der Reglerausgang.

PV_IN: Druckistwert
SP_INT: Drucksollwert
LMN: Stellgröße

Grob gesagt:
Wenn der Baustein feststellt, dass der Druckistwert < Drucksollwert, dann erhöht er die Stellgröße LMN -> Motor dreht schneller
wenn der Baustein feststellt, dass der Druckistwert > Drucksollwert, dann verringert er die Stellgröße LMN -> Motor dreht langsamer

Über die Reglerparameter GAIN und TI stellst du ein, wie schnell die Stellgröße auf eine Differenz zwischen Soll- und Istwert reagiert.

Wenn du den Regler in Betrieb hast, kannst du dir übers TIA-Portal ja mal das Inbetriebnahmetool aufrufen. Da siehst du auch eine Kurve mit den von mit erwähnten drei Werten.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Ok verstanden, dann kann ich diese Werte also eher gesagt erst dann Programmieren, wenn ich die Pumpe dadurch in Betrieb nehme.

Ja als Leihe ist es schwer manche Dinge nachzuvollziehen, aber du erklärst es mir super gut.

Gruß

Andi
 
Du kannst den Regler auch zum Rumspielen ohne Stellgröße in Betrieb nehmen. Nur wird dann die Stellgröße nach einiger Zeit immer entweder auf 0 (wenn Druck zu groß) oder auf 100% (wenn Druck zu gering) wandern.
 
Real, dachte das hast du mittlerweile selber rausgefunden...

Der Typ wird dir angezeigt wenn du mit der Maus über den Eingang gehst. Außerdem gibt es eine umfangreiche Bausteinhilfe in der das alles dokumentiert ist. Dazu den Baustein anwählen und F1 drücken.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Was in der Bausteinhilfe nicht steht:

wenn man den Regler auf Manual (also Steuerbetrieb / Handfunktion) stellt und dann den Hand-Sollwert vorgibt,
dann wird das auch der Stellwert. soweit-sogut.

Wenn man dann aber wieder in Automatik (also Reglerbetrieb) geht, wird sofort der volle Wert an den Ausgang gegeben.
Man kann den Regler nur auf 0 zwingen, indem man einen Reset-Impuls an den Reset-Eingang gibt.
(Nur so konnte ich meine Pumpen von 0Hz auf den Stellwert hochrampen lassen)
Der Reset löscht offensichtlich den I-Anteil. Manual macht das nicht.

Wenn ich falsch liege, verbessert mich.
 
In der Step7 Hilfe zum Cont_c ist dieses Verhalten zumindest auch dokumentiert:
Handwertverarbeitung
Es kann zwischen Hand- und Automatikbetrieb umgeschaltet werden. Bei Handbetrieb wird die Stellgröße einem Handwert nachgeführt.
Der Integrierer (INT) wird intern auf LMN - LMN_P - DISV und der Differenzierer (DIF) auf 0 gesetzt und intern abgeglichen. Das Umschalten in den Automatikbetrieb ist damit stoßfrei.
Ich nutze das ganz gerne bei Regelungen bei denen es mehrere Schaltstufen / Antriebe gibt, um den Regler beim Zu- oder Abschalten einer Stufe auf einen passenden Startwert zu setzen und von dort dann weiterzuregeln.
 
Hallo

Eine Frage, was macht den Unterschied aus ob ich einen Cont_C in ein OB packe oder eben in ein FB?
Hat das was mit der Regelzeit dann zu tun oder verlängert sich die Zykluszeit gesamt?

Gruß

Andi

PS: Ich ziehe den Hut vor jedem Automatisierer der sowas aus dem FF alles weiß, ist ja der pure Wahnsinn wie verstrickt zum Teil die Aufbauten eines Bausteins sind
 
Zurück
Oben