Endschalter für Schrittmotor

Hallo werte Auskenner,

das ist mein erster Beitrag in diesem Forum und hoffe nicht gleich Porzellan zu zerschmeißen. Bitte folgende Frage : Ich habe zwei Stepper-Mototoren zum laufen gebracht (worüber ich schon sehr froh bin). Ein Motor treibt eine Gewindespindel an, der zweite Motor eine Drehscheibe. Beide Motoren müssen bei Start des Systems eine Anfangsposition einnehmen um eine Endposition definiert anzufahren. Realisieren will ich das über mechanische Endschalter. Wie kann ich das programmieren ? Vielen Dank für eine eventuelle Unterstützung.

Naja...

Drehen lassen bis Schalter erreicht.

Wo ist dein Problem damit?

Langsam drehen lassen bis der Endschalter schaltet.

Die Reihenfolge so wählen daß der eine Motor nicht den anderen blockiert.

Grüße Uwe

"Endschalter" sollen eigentlich verhindern, daß Motoren über eine bestimmte Position hinausfahren, d.h. den Strom für diese Richtung abschalten.

Momentan fällt mir für Deine Schalter aber nur die englische "home position" ein (Ausgangsposition...).

,,,und dann ggf. langsam wieder zurück, bis der Schalter wieder öffnet.

Diese Zwei Schritte so lange wiederholen bis der Taster auslöst

  • Einen Step Richtung “Anfang” machen
  • Prüfen ob Taster ausgelöst hat

Dann ähnlich in die Gegenrichtung bis der Taster wieder frei meldet

  • Einen Step in Gegenrichtung zu Anfang machen
  • Prüfen ob der Taster wieder freigegeben hat

Deine Position soll nun am Anfang der Achse stehen und der Taster ein frei melden.

Hier kann man den Stepper auch schneller laufen lassen, vor allem wenn die Vorrichtung beim Einschalten weit vom Sensor entfernt sein kann. Deshalb anchließend die langsame Bwwegung in Gegenrichtung zur genauen Erkennung der Markierung.

Das lassen wir mal schön heile, aber ich finde es wichtig, in einem schriftlichen Forum möglichst die richtigen Begriffe zu verwenden. Aus dem CNC-Bereich sind mir folgende geläufig:

  • Endschalter: Sollten nur im Fehlerfall erreicht werden und führen zu NOTAUS.
  • Referenzschalter: Sagt dem Schrittmotor nach dem Einschalten, wo er steht.
  • absolute Nullposition: Von dort startet jegliche Positionsberechnung.
  • relative Nullposition: Kann sich auf ein Werkstück beziehen und ist veränderlich.

Das wäre dann wohl der Referenzschalter, den Du benötigst.

_______________________/-------
^ ^
0 R

Ablauf:

  1. Ist der Referenzschalter gedrückt, weiter bei 3., sonst im Schleichgang nach rechts.
  2. Wird der Referenzschalter gedrückt, Stop.
  3. Bewegung langsam nach links.
  4. Wird der Referenzschalter losgelassen, Position relativ zur Nullposition merken. Ggf. Nullposition anfahren.

In 4. steckt die Annahme, die Nullposition ist etwas vom Referenzpunkt entfernt, damit der Referenzschalter geschont wird.

Ich empfehle Dir die über die Bibliotheksverwaltung installierbare Programmbibliothek MobaTools, die Dich bei der Programmierung unterstützt. Siehe beispielsweise die Beispiele Stepper_Reference und Stepper_Reference_2 sowie Stepper_Slider mit meiner Mitwirkung.

Ich danke Dir für die geistige Auseinandersetzung mit meiner Frage und Deiner Antwort. :wink:

Ich danke Dir für Deine Antwort. Du hast natürlich recht. Es geht nicht um das "Endeschalten" sondern um das definieren einer Position um dann entsprechend einer angegeben Schrittzahl auf eine Ziel-Position zu fahren. Beide Motoren müssen zueinander synchron hinsichtlich ihrer Zielposition laufen. D.h. Drehscheibe des Motors 1 soll stehen mit einer Funktionskontur auf C-Achse 0° , dann muss Motor 2 den Spindelschlitten auf Z-Ende-Position fahren und wieder zurück. Motor 1 schaltet die Drehscheibe 36° weiter, bei Ziel erreicht, Motor2 fährt schlitten wieder auf Z-Ziel-Position und wieder zurück. Um diese Synchronisation zu erzielen war also meine Überlegung, eine Start-Routine zu programmieren welche dafür sorgt das die Motoren anlaufen und bei erreichen der Microtaster-Schaltpunkte stoppen um dann den Loop auszuführen.

Gerne doch!

Die Salami bekommt langsam mehr Scheiben.
Aber immer noch nicht, hast du dein Problem benannt.

Was solls, ich werde das nicht zu meiner Baustelle machen.

:grin:

Vielleicht wäre es sinnvoll eine eigene Rubrik für geheime Projekte zu eröffnen.

3 Likes

@hans-haselnuss: Was dir die ganzen Kommentare sagen wollen: Hier hat keine eine Glaskugel. Und ohne deinen Code zu kennen wirst du keine sinnvolle Antwort bekommen. Was hast du bereits? Und wo genau hängst du fest?

Hallo,
schau mal hier.

das geht mit den Moba Tools ähnlich.

man kann das "Referenz Fahren" natürlich auch in eine Ablaufsteuerung (Schrittkette / Statemashine) integrieren.

Es gibt auch immer wieder den Vorschlag das mit in die Setup() zu bauen. Kann man machen. Ich bin jetzt ehr dafür das für jeden Antrieb mit einer eigene Function, und wie im Beispiel gezeigt, mit einer Statusvariablen zu machen. Die Function kann man gegebenenfalls dann auch nochmals bei Bedarf starten.

Heinz

Solche Zuordnungen sind weder eindeutig, noch einfach zu bestimmen.
Aber es zeigen sich wiederkehrende Muster.

Hier deutet einiges darauf hin, dass wir mal wieder die Entwicklungsarbeit leisten sollen, damit ein anderer damit glänzen kann.

Das Eingangsposting ist vollkommen unzureichend um das zu Grunde liegende Problem zu erkennen.

Mein Posting 2 ist ein Test, ob der TO auf den Punkt kommen will.
Die Reaktion ist

  1. passiv aggressiv und persönlich, fast schon attackierend.
  2. ohne jede Antwort auf meine Frage, nach dem Problem.

Ich habe dafür meine Kategorie.

Hallo,
ich sehe das ein klein wenig anders. Der T0 sucht einen Ansatz, wie man eine Referenz-Fahrt und anschließend einen Ablauf realisieren kann. Das er sich zur Anfangsaufgabe gestellt hat das gleich mit zwei Antrieben und einem recht komplexen Ablauf zu machen, ist etwas unglücklich.

@hans-haselnuss
Vorschlag Du beschäftigst Dich zunächst mal damit wie Du z.B mitttels Moba Tools einen Deiner Antrieb Referenz fahren kannst und anschließend zwei Sollpositionen mit unterschiedlicher Geschwindigkeit und Rampe.

Dann mit dem Thema Schrittkette,Ablaufsteuerung und versuchst Deinen gesamten Ablauf gedanklich in so ein Konzept bringen. Das geht am besten mit Papier und Bleistift, also völlig analog. Dabei kann heraus kommen das Du zwei Schrittketten benötigst. Soweit ich das bisher verstanden habe gibt es aber eindeutige Abhängigkeiten voneinander, da sollte eine reichen.
Beispiele für Schrittketten, Ablaufsteuerungen, Endlicher Automat, Statemashine findest Du auch hier im Forum.
Wie Du dann in welchem Schritt / State welche Position mit welchem Antrieb anfahren musst ist dann eigentlich recht einfach.

Gruß Heinz

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.