Step 7 Berechnung Winkelgeschwindigkeit aus Positionssignal (Resolver)

ohmshiva23

Level-1
Beiträge
11
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo SPS’ler,
ich bräuchte mal eure Unterstützung.

Bei einem Kettenantrieb wird über einen Resolver der Winkel (in Grad) angegeben, aber leider nicht die Geschwindigkeit berechnet.
Dies muss ich nun selbst tun. Leider hab ich noch keinen Plan wie das genau gehen soll.

Meine Idee war alle 5ms den aktuellen Wert mit dem vorigen zu vergleichen und daraus die Winkelgeschwindigkeit zu berechnen.
Dann noch die Ausnahme falls die 360Grad überschritten werden. Also z.B. alter Wert 300Grad, aktueller Wert 20Grad -> Änderung = 80Grad.
Das gleiche dann wenn die Kette sich „rückwärts“ bewegt. Ob die Kette sich vorwärts oder rückwärts bewegt weiß ich (Bool).

Meint ihr das ist so durchführbar oder habt ihr bessere Ideen.
Wie kann man das am besten umsetzen ?

Danke schon mal für eure Unterstützung.

Gruß
Thomas
 
Hallo,
ich weiß jetzt ja nicht, wie schnell sich der Antrieb dreht - aber machbar ist das auf alle Fälle. Eventuell mit dem Abfrage-Intervall auch noch schneller werden (1 ms).
Woher kommt der Wert ? PN / PB ?

Gruß
Larry
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Dein Ansatz ist richtig.
Wenn Du 80° in 5ms machst, dann machst Du pro Sekunde 80° * 200 = 16000° und pro Minute dann 60 * 16000° = 960000°. Eine Umdrehung sind 360°. Also 960000° pro Minute / 360° = 2667 Umdrehungen pro Minute

Falls Du mit einer S7-1500 arbeitest, dann würde ich mit einem Technologieobjekt (TO) arbeiten. Da bekommst Du die gewünschten Daten vom System angeboten und brauchst nicht rumrechnen.
 
Das Signal wird über eine LTN Auswertekarte einem IFM Controller zur Verfügung gestellt und dann von CAN auf MPI gewandelt um schließlich in eine CPU315 zu landen. Ist schwer zu beschreiben. Mit der S7 wird ein ferngesteuerter Bagger gesteuert. Schlußendlich steht der Positionsistwert in einem DB zur Verfügung.
Die Umdrehungszahl ist an sich gering. 5ms ist wahrscheinlich schon übertrieben.

Nein leider keine S7-1500. Eine Andere Idee wie man das umstzt ?
 
Auf jeden Fall einen Zeitgesteuerten OB verwenden, dann mach doch irgendwie sowas:

Code:
//I_nActual = INPUT | Aktueller Winkel in °
//I_nTimeDiff ) INPUT | SampleTime in ms
//V_nLast = STATIC | Letzter Winkel in °
//T_nDiff = TEMP | Winkeländerung in °
//O_rWinkelg = OUTPUT | Winkelgeschw. in Rad/s

T_nDiff := I_nActual - V_nLast;

IF (T_fDiff < 0) THEN
    T_fDiff := T_fDiff + 360;
END_IF;

O_rWinkelg := (INT_TO_REAL(T_nDiff) * 2 * PI / 360 ) / I_nTimeDiff / 1000;

Irgendwas in dieser Art...
 
Zurück
Oben