Schrittmotor-Echtzeitsteuerung beckhoff

makwanaadit

Level-1
Beiträge
4
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Ich habe 3 Schrittmotoren mit Encoders mit 3 EL7047 verbunden. Ich benutze TwinCAT 3. Ich habe eine Exceldatei mit 4 Spalten. 1 Spalte enthält den Zeitpunkt und 3 Spalten enthalten die Winkel für jeden Motor. Ich möchte, dass sich die Motoren bewegen und den Winkel zum genannten Zeitpunkt erreichen. Wie kann ich eine solche Steuerung erreichen? Derzeit verwende ich den FB von PLCopen Motion Control, um den Motor zu steuern, konnte aber nichts finden, um die gewünschte Steuerung zu haben.

ZeitWinkel (grad)
0.0515.30
0.130.00


Vielen Dank.



--------English Version--------

I have 3 Stepper motors with encoders connected with 3 EL7047. I am using TwinCAT 3. I have an excel file with of 4 columns. 1 column has time stamp and 3 columns have angles for each motor. I want the motors to move and reach the angle at the mentioned time stamp. How can I achieve such control?

Currently I am using FB from PLCopen Motion Control to control motor but could not find anything to have the desired control.

Thank you in advance.
 
Zuletzt bearbeitet:
Da ich nicht weiß in welcher Sprache ich antworten soll starte ich mal in good old german. Schau Dir mal die TC3 NC Camming Funktionalität TF5050 an, das könnte Dein Problem eventuell lösen.

Now in English.
Take a look at the TC3 NC Camming functionality TF5050, that might be the solution for your problem.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo @oliver.tonn

Ich habe über den TF5050 gelesen. Ich konnte die Sync-Bewegung mit allen Motoren machen, aber ich konnte nichts mit Zeit finden. Was ich verstanden habe, ist, dass wir den Slave-Motor in Bezug auf den Master steuern können. Das ist eine der Sachen, die ich will. Aber ich brauche auch genaue Zeitpunkte.


Ich bin neu in diesem Bereich und es wäre hilfreich, wenn Sie mir eine Richtung zeigen können, um dies zu erreichen.
 
Und wo genau ist Dein Problem?
Ja, die TF5050 arbeitet nicht direkt mit Zeiten, aber was hindert Dich daran über die Geschwindigkeit des Masters die benötigten Zeiten in Winkel umzurechnen.
Dreht der Master mit 360°/Minute und etwas soll nach 10s passieren musst Du halt statt 10s eben 60° angeben.
 
Das Problem ist, ich habe einen Mechanismus mit 3 Motoren befestigt, wie im Bild gezeigt. Was Sie gesagt haben, ist eine gute Idee, aber ich denke, es wird in meinem Fall nicht richtig funktionieren.

Können Sie etwas vorschlagen, was ich in diesem Fall tun kann?
mechanism.jpg
 
Die Aufgabe ist es, diesen Mechanismus zu bewegen (3 Motoren) und eine Trajektorie mit dem Endteil (Grün) in Bezug auf die Zeit zu erstellen. Die Verbindungen werden mit EL7047 hergestellt. Die Motoren haben Encoder für das Feedback.

mechanism.PNG trajectory.PNG
Also bekomme ich zunächst eine Datei mit dem Zeitpunkt und den Winkeln für jeden Motor. Ich muss die Motoren mit dem Zeitpunkt so bewegen, dass ich die exakte Trajektorie erreiche. Die Zeit ist sehr wichtig, denn ich muss mit Sicherheit sagen können, dass bei 10s mein Motor 1 bei 15,3 ist, Motor 2 bei 20,3 und so weiter.


Also kann ich jetzt mit TF5050 1 Motor als Master und 2 als Slave machen und den Mechanismus bewegen. Aber ich kann die Zeit nicht sicherstellen. Dann haben Sie vorgeschlagen, die Zeit in den Winkel umzurechnen und das dann zu tun. Aber ich glaube, ich habe das nicht richtig verstanden. Soll ich eine virtuelle Master-Achse erstellen, indem ich die Zeit in Winkel umrechne und 3 Slave-Achsen (3 Motoren), um die Winkel zu erreichen? Können Sie 1 Beispiel mit Bezug auf die Datendatei, die ich habe, teilen?


Zeit 0.1s Winkel1 - 15.3 Winkel2 - 30.2 Winkel3 - 20.1


Es tut mir leid, wenn ich einige dumme Fragen stelle und ich danke Ihnen sehr für Ihre Hilfe.

Motor link: https://de.nanotec.com/produkte/551-st6018m2008-b
 
Der NC-I (oder jeder anderen CNC) gibt man "Trajektoren" = "Vektoren" vor. Entsprechend den Randbedingungen werden diese dann abgefahren.
Prinzipiell wird es interessant wird es mit Koordinatentransformation, d.h. du z.B. um einen einfache Linie zu fahren zwei oder drei Motoren gleichzeitig bewegen musst. Das rechnet dir die NC-I. Du kannst dir zwar "Geschwindigkeiten" wünschen, wenn aber die Randbedingungen nicht erfüllt werden weil z.B. ein Motor in der Bewegung den Wunsch nicht leisten kann dann wird insgesamt die Geschwindigkeit reduziert.

Meiner Meinung nach wirst du aber nur mit Camming glücklich. E.g. du nimmst eine virtuelle Achse die sich um 360°C bewegen kann. Jetzt musst du für deine physikalischen Achsen jeweils definieren wo sie sich in der Position befinden sollen wenn die MasterAchse sich bewegt.
Letztendlich kannst du die Geschwindigkeit der Masterachse dann bei der Fahrt vorgeben, die SlaveAchsen folgen dann entsprechend.

Ich würde mir in TwinCAT die graphische Darstellung der Cam-Kurven nutzen, die Cam-Punkte mir dann aufschreiben (da der graphische CAM-Editor eine Lizenz benötigtkannst du hier nichts speichern) und die Kurve dann als Motion-Function-Points in der PLC codieren.

Guga

P.S. Warum eine virtuelle Masterachse: Da gibt es keine physikalischen Probleme und ich kann meine Fehlerbehandlung als Schleife über alle 3 Slave-Achsen fahren.
 
Zurück
Oben