Rampenfunktion in AWL

Andy Latte

Level-1
Beiträge
84
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Es soll die FKT f(x) = 2*x+5 mit Hilfe des Service LAB dargestellt werden.
Zunächst soll "x" nach jedem Aufruf bzw. Zyklus erhöht werden (Rampe).

L MD 100
L 1.000000e+000
+R
T MD 100
Nun wird die Steigung in einer Variable deklariert und mit dem Wert "2"
initialisiert. Die Variable heißt #T_R_Steigung.
Die Steigung wird mit "x" , d.h mit MD 100, multipliziert. Zuletzt wird der
Wert "5" addiert. In der Variable f_Von_X befinden sich schließlich alle Werte der
FKT f(x)= 2*x+5

L 2.000000e+000
T #T_R_Steigung
L MD 100
*R
L 5.000000e+000
+R
T #f_Von_x

L #f_Von_x
T MD 110
Im Moment hat diese FKT die Form einer linearen FKT. Die Steigung ist positiv. Ich möchte nun, dass wenn die Variable
#f_Von_x den Wert 10000 hat, die Funktion bei diesem Wert auch bleibt und nicht mehr linear zunimmt.

Könnt ihr mir da helfen?
 
Variablendeklaration:
INOUT = #f_Von_x
OUT = #T_R_Steigung

L #f_Von_x //Testen ob die Variable gleich oder groesser 10000 ist
L 1.000000e+004
>=R
SPB fin //wenn ja = springe zur Marke "fin"


//ab hier wie Du geschrieben hast ....
L MD 100
L 1.000000e+000
+R
T MD 100
//Nun wird die Steigung in einer Variable deklariert und mit dem Wert "2"
//initialisiert. Die Variable hei?t #T_R_Steigung.
//Die Steigung wird mit "x" , d.h mit MD 100, multipliziert. Zuletzt wird der
//Wert "5" addiert. In der Variable f_Von_X befinden sich schlie?lich alle Werte der
//FKT f(x)= 2*x+5

L 2.000000e+000 //Das koennte man an den Anfang des FCs setzen damit der Wert auch immer im Status angezeigt wird.
T #T_R_Steigung //Dazu diese Variable als INOUT deklarieren oder auf tmp schieben.

// L #T_R_Steigung //..Dann wuerde (als INOUT deklariert) hier nur das stehen. Die oberen zwei Zeilen dann am FC Anfang.
L MD 100
*R
L 5.000000e+000
+R
T #f_Von_x

L #f_Von_x //das ist nicht Notwendig. Im ACCU1 steht ja sowieso der Wert von #f_Von_x
T MD 110

SET //dass mus nicht sein. Nur zur Kennzeichnung oder wenn es notwendig ist, vieleicht zur weiteren Bearbeitung...
SAVE // das ENO-Bit wird gesetzt falls der Wert noch steigt ....
BEA

fin: T #f_Von_x //im ACCU1 steht noch der Wert: 10 000; max. Wert. Der wird auf die Variable geschoben.
CLR //dass mus nicht sein. Nur zur Kennzeichnung oder wenn es notwendig ist, vieleicht zur weiteren Bearbeitung...
SAVE // das ENO-Bit wird geloescht falls der Wert den max.Wert erreicht hat ....
//Dabei ist zu bedenken dass das ENO-Bit nicht immer aktiviert ist (nachfolgende Verknuepfungen).
//WICHTIG: Deine Variable #f_Von_x wird bei jeder Bearbeitung definiert.


Ist damit Deine Frage beantwortet?
Antwort bitte auf: HubertSchoenherr@mail.ru
(Bin im Moment auf Montage in Russland)
 
Zurück
Oben