Autor Thema: Geschwindigkeitsrampe mit FT_RMP  (Gelesen 3750 mal)

0 Mitglieder und 1 Gast betrachten dieses Thema.

Offline Bodensee123

  • Newbie
  • *
  • Beiträge: 2
    • Profil anzeigen
Geschwindigkeitsrampe mit FT_RMP
« am: 21. Januar 2021, 14:54:55 »
Hallo Zusammen,

ich Suche für ein Projekt nach einer Möglichkeit ein Geschwindigkeitsrampe zu implementieren. Es soll eine Zielgeschwindigkeit vorgeben werden können, welche dann langsam bis zur Zielgeschwindigkeit ansteigt. Die Geschwindigkeit soll beim erreichen des Zielwertes beibehalten werden und sich erst wieder ändern, wenn ein neuer Wert eingegeben wurde.

Abhängig der Geschwindigkeit soll dann eine Variable inkrementiert werden (z.B: Geschwindigkeit 100 entspricht 100 Inkremente pro Sekunde, Geschwindigkeit 10 entspricht 10 Inkremente pro Sekunde ).

Ich habe es bereits mit dem Funktionsbaustein FT_RMP versucht, jedoch scheint dieser nicht zu funktionieren, da der Ausgang sofort auf den Wert des Eingangssignals springt und nicht wie angegeben diesen langsam erreicht.

Hier der Code dazu:

test2: OSCAT_BASIC.FT_RMP;
out: REAL;

test2(RMP := TRUE, in := 1000,KR:= 100,KF:=100);
out := test2.out;

Hat jemand eine Idee was ich falsch gemacht habe oder wie man so etwas einfach implementieren könnte?

Vielen Dank im voraus

Offline Zamag

  • Newbie
  • *
  • Beiträge: 1
    • Profil anzeigen
    • E-Mail
Re: Geschwindigkeitsrampe mit FT_RMP
« Antwort #1 am: 22. Januar 2021, 16:43:03 »
Hallo Bodensee

Zu deinem Anwendungsbeschrieb würde eigentlich die Funktion SRAMP besser passen.
Versuch es einmal damit.

Gruss Zamag

Offline Bodensee123

  • Newbie
  • *
  • Beiträge: 2
    • Profil anzeigen
Re: Geschwindigkeitsrampe mit FT_RMP
« Antwort #2 am: 23. Januar 2021, 13:15:31 »
Hallo Zamag,
vielen Dank für deine Antwort!
Die SRAMP habe ich tatsächlich schon probiert, nur leider kann man bei diesem FB nur eine Zielposition angeben. Das bedeutet wenn die Zielposition erreicht wurde, dann ist die Geschwindigkeit 0. Ich benötige eine Rampe die eine Geschwindigkeit auch halten kann. Ansonsten würde der FB sehr gut passen, nur leider muss man eben eine Zielposition angeben.


Offline Ignat

  • Newbie
  • *
  • Beiträge: 1
    • Profil anzeigen
Re: Geschwindigkeitsrampe mit FT_RMP
« Antwort #3 am: 04. Februar 2022, 14:28:36 »
Hallo Bodensee123,

das Ding ist, der FT_RMP Block ist mit "in" Wert erst initialisiert. In dem Block steht:

IF NOT init THEN
init := TRUE;
last := tx;
tx := t#0s;
out := in;
END_IF;

So in deinem Fall, du rufst den Block mit IN:=1000 und aufm erstem Zyklus der Program ist OUT mit diesem Wert initialisiert.

Was du ausprobieren könnte ist:
- haben noch eine Variable für "rSpeed_SET", und wechseln die dynamisch in der Programm

test2: OSCAT_BASIC.FT_RMP;
out: REAL;
rSpeed_SET :REAL;
xStart :BOOL;

test2(RMP := TRUE, in := rSpeed_SET, KR:= 100,KF:=100);
out := test2.out;

IF xStart THEN
rSpeed_SET := 1000; // give a SP to the Ramp Block, ramp up
ELSE
rSpeed_SET := 0; // stop by ramp, when no command

UPD1: zu spät gerade, glaube ich... =)
« Letzte Änderung: 04. Februar 2022, 14:31:06 von Ignat »