Werte die über analoge Eingangsklemme kommen, direkt an den Schrittmotor schicken

wolfi999

Level-1
Beiträge
55
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo zusammen,

Hätte wieder einmal eine Herausforderung für das SPS - Forum.

Besitze einen CX und eine KL2541 über die ich meinen Schrittmotor ansteuere. Ebenfalls eine analoge Eingangsklemme.

Situation:
An der analogen Eingangsklemme hängt ein "Joystick" der verschiedene Werte (Bereich 0 - 10V) abfragen kann. Diese Werte möchte ich direkt an die Schrittmotorklemme weitergeben. Das heißt wenn der Joystick z.B. 5V liefert, sollte der Schrittmotor 5mm absolut verfahren. Wenn der Joystick 0V liefert sollte der Schrittmotor wieder in die Ausgangsstellung zurückfahren. Wichtig dabei ist mir, das der Wert was der "Joystick liefert auch 1:1 an den Schrittmotor weitergegeben wird (nicht zeitverzögert, sodass der Motor hinten "nachhinkt").

Habe bereits ein Programm geschrieben, dass der Schrittmotor verfährt. Habe hierfür den Baustein MC_MoveAbsolut verwendet. --> Dabei gibt es nur ein Problem, wenn während der Fahrt der "Joystick" einen anderen Wert als ursprünglich geschickt wurde, erhält, wird erst nachdem der erste Wert vollständig verahren wurde, der zweite Wert bearbeitet --> Schrittmotor hängt hinten nach!!!

Lösung:
Variante 1: dies hardwaremäßig so zu lösen, dass der Schrittmotor nicht hinten nach hinkt (Anlaufzeit, etc. auf ein minimum zu redzuieren)
--> bereits gemacht, Schrittmotor hängt trotzdem einwenig hinten nach, nicht akzeptabel!!

Variante 2: dies softwaremäßig lösen. Habe mit dem Baustein New_Pos probiert, dies porgrammtechnisch zu lösen, bekomme dies jedoch nicht in den Griff!!

Variante 3: einen anderen Baustein verwenden (dass wirklich der "Joystick" mit dem Schrittmotor im Einklang ist und nicht hinten nach hinkt), oder es hat jemand im Forum schon mal ein Programm mit New_POS und MC_MoveAbsolut geschrieben, dass mir vielleicht hier weiterhilft.

Danke für eure Hilfe.

mfg
Wolfi
 
Mehrere Baustellen auf einmal ....

dann fangen wir mal an ;)

Also du verwendest die NC (bitte immer angeben) und hast entsprechende Skalierungsfaktoren schon korrekt eingestellt, nehmen ich an.

An der analogen Eingangsklemme hängt ein "Joystick" der verschiedene Werte (Bereich 0 - 10V) abfragen kann. Diese Werte möchte ich direkt an die Schrittmotorklemme weitergeben. Das heißt wenn der Joystick z.B. 5V liefert, sollte der Schrittmotor 5mm absolut verfahren. Wenn der Joystick 0V liefert sollte der Schrittmotor wieder in die Ausgangsstellung zurückfahren.
Also du hast eine Verfahrstrecke von 10mm. Je nach Joystickstellung wird die Achse "ausgelenkt", sozusagen, richtig?
Wichtig dabei ist mir, das der Wert was der "Joystick liefert auch 1:1 an den Schrittmotor weitergegeben wird (nicht zeitverzögert, sodass der Motor hinten "nachhinkt").
Meinst du mit "nachhinken", dass ein Schleppfehler bestehen bleibt?

Habe bereits ein Programm geschrieben, dass der Schrittmotor verfährt. Habe hierfür den Baustein MC_MoveAbsolut verwendet. --> Dabei gibt es nur ein Problem, wenn während der Fahrt der "Joystick" einen anderen Wert als ursprünglich geschickt wurde, erhält, wird erst nachdem der erste Wert vollständig verahren wurde, der zweite Wert bearbeitet --> Schrittmotor hängt hinten nach!!!
Der MoveAbsolute ist ein Baustein für eine einmalige Positionierung. Es wird ein Fahrauftrag abgesetzt und mit dem erstellten Verfahrprofil positioniert. Erst wenn der Baustein fertig ist, kann eine neue Positionierung gestartet werden.
Also egal ob währen des Verfahrens die Zielposition geändert wird, der Motor wird zunächst die ursprünglich vorgegebene Position anfahren. Nachtirggern geht nicht.
Es gibt aber den Baustein MoveAbsoluteOrRestart. Der kann auch nachgetriggert werden. Nur macht es wenig sinn, jedes mal wenn der Joystick sich nen µ bewegt soft nachzutriggern. "nachhinken" wird der Motor schon aufgrund von Zeitverzögerungen, Brems- und Beschelunigungsrampen etc. Auch beim MoveAbsoluteOrRestart wird bei jedem nachtriggern zunächst ein neues Verfahrprofil errechnet.
Das geht bei Positionierung in eine Richtung gut, aber sobald du umkehren musst, wird es aufgrund der Rampen und der Motorträgheit bestimmt trotzdem zu einem Überschwingen kommen.

Oder nervt dich vieleicht eher, das Zielpositionsfenster, dass der Motor im Endeffekt nach der Positionierung nicht dort steht, wo du eigentlich möchstest.
Dann wär's eher eine Frage der Reglereinstellung.

Wenn du nicht an das Poti gebunden wärst, wäre das sinnvollste, du schnappst dir einen linearen oder rotatorischen Absolutwertgeber (Drehgeber). Dann könntest du in der NC eine Encoderachse erzeugen, die ihre Position der NC übermittelt. Dann könnte der Schrittmotor auf diese Achse gekoppelt werden (zB 1:1) und dann folgt er auch der Encoderbewegung. Ganz ohne Funktionsbausteine und Rampen ;)
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Antwort

Danke für die Antwort trinitaucher.

  • Also, hast du richtig erkannt, verwende die NC.
  • Genau, max. Verfahrstrecke von 10mm. Skalierfaktor richtig eingestellt.
  • Nein ein Schleppfehler besteht nicht. Unter nachhinken meine ich, wenn ich mit dem Baustein MC_MoveAbsolut arbeite, dann arbeitet er zunächst die Postion die ich als ersten Wert eingestellt habe fertig und danach verfährt er erst den nächsten Wert. Wie du auch weiter unten erklärt hast --> dass der Baustein nur für eine einmalige Positionierung da ist.
Damit der Schrittmotor nicht jedes µ verfahren muss (postionsveränderung), werde ich den wert vom "Joystick" auf ganze Zahlen auf/abrunden, wenn nicht sogar in Blöcke aufteilen (z.B. dritteln).
Und dann mal mit dem Baustein MC_MoveAbsolutorRestart arbeiten wie du mir gesagt hast.

Danke. halte dich auf dem laufenden.

mfg wolfi
 
Hallo

Hallo zusammen,

Danke, trinitaucher. Mit dem Baustein MC_MoveAbsolutorRestart funktioniert es einwandfrei. Danke für deine hilfe.

mfg
Wolfi
 
Zurück
Oben