Maxon Steuerung Epos 2p 24/5

Smather

Level-1
Beiträge
14
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo zusammen,
ich habe eni kleines Problem beim Programmieren der internen SPS der Epos 2p 24/5 Steuerung.
Ich kann die Steuerung über den Funktionsbaustein FB 'MCPower' freigeben. Ein analog Eingang wird auch eingelesen. Funktioniert soweit sehr gut.
Jetzt möchte ich den Antrieb im Drehzahlbetrieb ('VelocityMode') in Abhängigkeit vom Analogeingang drehen lassen. Und zwar mit folgender Logik.
Analog Eingang1 < 2V --> Motor rechts drehen
Analog Eingang1 > 2,5V --> Motor links drehen
2V < Analog Eingang1 > 2,5V --> Motor steht.

Werde entweder eine Case-Anweisung nutzen oder eine If-Schleife. Das ist ja nicht das Problem sondern die Funktion zum Ansteuern des Antriebes. Also wie gesagt brauche ich den 'Velocity'-Mode. Ich stell mir das so vor, dass der Motor im Drehzahlbetrieb und Freigegeben ist und ich mit der Funktion nur die Drehzahl (und Drehrichtung über Vorzeichen?) übergebe. Also z.B. -2000 rpm Antrieb dreht links; +2000 rpm Antrieb dreht rechts und 0 rpm Antrieb steht.

Ich habe schon einmal was ausprobiert mit einer Funktion, allerdings müsste ich hier die Drehrichtung über einen ENUM parameter übergeben und das weiß ich nicht wie ich das machen kann. ('MCpositive' und 'MCnegative'). Ist es möglich eine Variable als ENUM zu deklarieren und dann im Programm zu nutzen? Wenn ja wie kann ich das machen? Denn als String-variable hab ich es schon mal probiert, wird aber in dem Funktionsbaustein eben nicht als ENUM erkannt!

Hat jemand schon mal so eine 'einfache' Funktion wie oben umgesetzt? Mit welchem Funktionsbaustein kannn ich das lösen, bzw. habt ihr kurz eine Lösung parat? Ich würde mich sehr freuen wenn ich schnell eine Lösung und Antwort bekommen würde.

Vielen Dank schon mal für Eure Mühen.

Gruß
Smather
 
Also ich kenne Deine Steuerung nicht, aber da Du hier im CoDeSys Bereich bist:
Du musst keinen Enum/ String oder ähnliches anlegen. Der Enum ist in der Bibliothek bereits definiert.
So reicht in

MC_MoveVelocity1.Direction:=positive; (oder halt negative)

Sollte Dir das nicht gelingen, kannst Du auch bei enums mit den Zahlenwerten arbeiten.

MC_MoveVelocity1.Direction:=1; (oder -1 für negative)
 
Zurück
Oben