Hochlauf bzw. Runterlauframpen

capri-fan

Level-2
Beiträge
100
Reaktionspunkte
2
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo,

ich möchte Proportionalventile mit einer Hochlauf bzw. Runterlauframpe ansteuern (S7-300, STEP7 V5.2).
Kann mir evtl. jemand erklären wie man das macht?
 
Nabend

ich geh mal davon aus das das Prop ventil Analog Angesteuert wird.

Ich würde den Baustein bzw die Stellgrößen berechnung in einem bestimmten Zeitrütmuß aufrufen und beim aufruf immer 1 dazu addieren bzw abziehen bis die gewünschte Stellgröße erreicht ist.

Über die aufrufzeit kannst du die Rampenlänge bestimmen.

MfG
Balou
 
Hallo,

vielen Dank für die schnellen Antworten, aber ich habe das nicht so recht verstanden. :?:
Gibt es evtl. ein Beispiel?
 
du hast sicherlich eine stellgröße für das prop ventil!

z.B. 0.0-100.0%

Du willst das das ventil lagsam öffnet und langsam schließt?

Überlegung:

Bewegfung 1% öffnung in (sagen wir) 1 sec

Funktion:

Der Sollwert für das Prop-Ventil wird mit dem wert verglichen den du bisher vorgibst.
Sollte eine Differenz vorhanden sein ziehst du 1% zent ab bzw schlagst 1% drauf je nach richtung der differenz.
Somit bekomst du eine Rampe.

Zeit der Rampe Stellst du ein in dem du den Baustein nicht Zyklisch sonder wi von plc_tippser vorgeschlagen im OB 35 oder über einen Timer mit PF flanke auf die aufrufzeit gibt die Rampenlänge vor.

Für genauere Infos brauche ich genauere Daten wie du das Ventil ansteuerest (Regler oder Stellwertgeber)

MfG Balou
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo,

der Sollwert kommt von einem Poti und ist ein 4-20mA analoger Eingang.
Am Ausgang ist ein Proprtionalventil mit 0-10V Steuerstrom angeschlossen.

Ich habe den Eingang schon normiert damit ich maximal 10V am Ausgang erhalte und möchte nun die 0-10V langsam ansteigen lassen egal wie schnell mein Poti aufgesteuert wird.

Wie spreche ich z. B. den OB35 an??
 
ob35

der ob 35 wir im hardware manager unter weckalarme parametriert.
hier kann man angeben nach wieviel ms der ob 35 aufgerufen werden soll. ein sog. timer interrupt. den ob35 selbst muss du im simatic manager unter bausteine ,RMT-> neues objekt einfügen -> organisationsbaustein. es erscheint ne maske und in der trägst du als namen ob35 ein. fertig.
alles was du in den ob35 programmierst wird alle X ms aufgerufen. wobei das x wie oben schon erwähnt im hardwaremanager eingestellt werden kann.

RMT = rechte maus taste
 
OB35

Hallo Gast,

danke erstmal. Das habe ich kapiert.

Jetzt noch eine Frage zu den Stellgrößen. Was muß im OB35 jetzt programmiert werden?

L EW??
T AW??

Oder wie muß ich mir das Vorstellen?
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo capri-fan,

auf der Siemens Homepage (www4.ad.siemens.de) findest Du einen kostenlosen Baustein. Suchwort ist "Rampengenerator". Funktioniert ohne OB3x und ist trotzdem Zykluszeit unabhängig. Verwende den selber schon sehr lange und es funzt sehr gut.


Gruss Andi F :D
 
Hab ein Beispielprogramm parat

Wenn du mir deine mail mitteilst kann ich die eine kompl. fertige Rampensteuerung mailen.

Gruß kleissler
 
Du kannst auch einen Taktmerker nehmen, und mit jeder steigenden flanke inkrementierst du ein register.
kommt hat drauf an, wie träge dein system ist, welches du ansteuern willst. halt nicht so elegant wie mit dem ob35, aber auch ne möglichkeit :)
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo,

hier ein Hochlaufgeber in SCL.



FUNCTION FC210 : VOID


TITLE = 'Hochlaufgeber'

(*
Der Baustein erzeugt einen Hochlaufgeber für Integer- Werte.
Wenn der Baustein im 100ms- Takt aufgerufen (OB35)wird,
beträgt bei einer Rampe = 100 die Zeit für einen Sollwertsprung
von 0 auf 10.000 = 10 Sec.
*)



VERSION : '1.0'
AUTHOR : Old_Willi
NAME : Hoch_Geb
FAMILY : Strg

//************ Bausteinparameter ******************
VAR_INPUT // Eingangsparameter
TAKT :BOOL; // Taktzeit für Erhöhung bzw. Absenkung
SOLL_EING :WORD; // Sollwert- Eingang
RAMPE :INT; // bei 100 ist die Zeit für einen Sollwertsprung von 0 auf 10.000 = 10 Sec.
END_VAR

//************ Durchgangsparameter ******************

VAR_IN_OUT
SOLL_AUSG :WORD; // Sollwert- Ausgang
END_VAR

//************ Ausgangsparameter ******************
VAR_OUTPUT
END_VAR

//************ temporäre Parameter ******************
VAR_TEMP
SOLL_AUSG_TEMP :INT;
SOLL_EING_TEMP :INT;
END_VAR


//************ Anweisungsteil ******************

BEGIN

SOLL_AUSG_TEMP := WORD_TO_INT (SOLL_AUSG);
SOLL_EING_TEMP := WORD_TO_INT (SOLL_EING);


//****** Rampe größer *************

IF SOLL_EING_TEMP >= SOLL_AUSG_TEMP AND Takt THEN
SOLL_AUSG_TEMP := SOLL_AUSG_TEMP + RAMPE;
IF SOLL_EING_TEMP < SOLL_AUSG_TEMP THEN
SOLL_AUSG_TEMP := SOLL_EING_TEMP;
END_IF;
END_IF;

//****** Rampe kleiner *************

IF SOLL_EING_TEMP <= SOLL_AUSG_TEMP AND Takt THEN
SOLL_AUSG_TEMP := SOLL_AUSG_TEMP - (RAMPE);
IF SOLL_EING_TEMP > SOLL_AUSG_TEMP THEN
SOLL_AUSG_TEMP := SOLL_EING_TEMP;
END_IF;
END_IF;

SOLL_AUSG := INT_TO_WORD (SOLL_AUSG_TEMP);



END_FUNCTION
 
Zurück
Oben