Positionsdaten speichern lassen

Koernerbrot

Level-2
Beiträge
14
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo,

ich versuche gerade meine Motorengruppe mit Hilfe der MC_Home Funktion auf eine Ausgangsposition zu bringen, dafür möchte ich meine Motoren nur ein einziges Mal, nämlich bei der Ausrichtung des ganzen Teststandes Digital Nullen und dann eine Position anfahren, welche ich dann als Parkposition definieren möchte und wo im Verlauf des Betriebs die Motoren dorthin wieder zurückfahren, z.B für die Überprüfung des Produkts.

Dabei habe ich folgende Probleme:

1. Wenn der Motor angeht, hat er unter Ist-Position eine Position von -1000000, so weit wurde er halt schon gedreht, Manuell könnte ich Ihn natürlich auf 0 fahren, dann behält er sich diese auch, aber da muss es doch auch ne einfachere Lösung geben. Ich habe dazu auch schon den Punkt Persistent Data auf True gestellt, dass hat aber nichts verändert.

2. Wenn ich Homing benutze, brauche ich zwingend einen Physischen Schalter der mir ein Signal gibt das er jetzt an der gewünschten Position ist oder kann ich auch erstmal unter Position eine gewünschte Soll Position angeben. Einen Schalter müsste ich dann nämlich erst bestellen.

3. Warum ich 2. noch nicht testen konnte, kommt deswegen, da sich beim Start der Homing Funktion die Digitale Ist-Position einfach auf negativ eine Milliarde verändert und von dort aus versucht dann der Motor ins Positive zu gelangen, was dann Jahre dauern würde. Gibt es dazu eine Lösung?

Die Motoren die ich benutze sind von der Firma Baumüller. Ich hätte auch Zugriff auf ProDrive wenn der Fehler dort behoben werden muss.
 
Wenn Du Absolutwertgeber hast und der maximale Verfahrweg innerhalb der Gebergrenzen liegt, must Du nicht referenzieren. Dann ist die Position immer persistent. Schwieriger ist es mit reinen Relativ-Gebern oder wenn Du die Grenzen der Absolutwertgeber überschreitest.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Ich lese raus, dass du einen Absolutwertgeber verbaut haben wirst. Von daher musst du nicht wirklich eine Referenzfahrt machen, schon garnicht mit physischem Schalter.
Der MC_Home Baustein lässt dich den HomingMode beschreiben. Dort gibt es im ENUM MC_HomingMode den Wer MC_ForceCalibration. Dieser besagt "Erzwingt den Zustand „Achse ist kalibriert“. Es wird keine Bewegung ausgeführt und die Position bleibt unverändert." Wenn du damit den Baustein ausführt gilt die Achse direkt als referenziert. Dir fehlt hier der Positionsoffset von deinem eingelernten Null zum Wert des Encoders.
Diesen kannst du z.B. mit FB_SoEAX5000SetPositionOffset beschreiben. Du fährt also einmalig zum Einmessen auf dein 0. Dann liest du den aktuellen Encoderwert ab und schreibst ihn negativ(!) in eine persistente Variabel. Diese wird dann bei jedem Start deiner Maschine mit Hilfe des Bausteins in den Umrichter geschrieben.
Dadurch erscheint deine Ist-Position immer als Abstand zwischen aktueller Encoder-Ist-Position und deinem eingelernten Null.
 
Ich lese raus, dass du einen Absolutwertgeber verbaut haben wirst. Von daher musst du nicht wirklich eine Referenzfahrt machen, schon garnicht mit physischem Schalter.
Der MC_Home Baustein lässt dich den HomingMode beschreiben. Dort gibt es im ENUM MC_HomingMode den Wer MC_ForceCalibration. Dieser besagt "Erzwingt den Zustand „Achse ist kalibriert“. Es wird keine Bewegung ausgeführt und die Position bleibt unverändert." Wenn du damit den Baustein ausführt gilt die Achse direkt als referenziert. Dir fehlt hier der Positionsoffset von deinem eingelernten Null zum Wert des Encoders.
Diesen kannst du z.B. mit FB_SoEAX5000SetPositionOffset beschreiben. Du fährt also einmalig zum Einmessen auf dein 0. Dann liest du den aktuellen Encoderwert ab und schreibst ihn negativ(!) in eine persistente Variabel. Diese wird dann bei jedem Start deiner Maschine mit Hilfe des Bausteins in den Umrichter geschrieben.
Dadurch erscheint deine Ist-Position immer als Abstand zwischen aktueller Encoder-Ist-Position und deinem eingelernten Null.
OK ich sehe gerade ich habe gar nicht alles beschrieben, also ich die Motorgruppe die ich referenzieren möchte besteht nämlich aus 8 verschiedenen Motoren, welche dann 4 Arme bewegen, 2 Motoren für jede Bewegung. All diese Bewegungen sind mit MC Camming in Kurven vorher schon beschrieben und werden nur von einem Mastermotor dann diktiert. An diesen Master habe ich noch einen Absolutgeber, welcher meine Position speichert.

Natürlich könnte ich am Anfang jeden Motor seiner Stelle mit MC_Direct als Homing option an Ort und Stelle kalibrieren, aber wenn der Strom ausfällt oder ein Arm einen Error erzeugt und somit stehen bleibt möchte ich einen Parkplatz haben wohin alle getrennt von einander hinfahren können um dann wieder mit dem Master einkoppeln zu können. Getrennt um eine kollision zu vermeiden.
 
Das ist völlig Wurscht. Die Frage lautet: Hat jeder Motor einen eigenen Absolutwertgeber, dessen Grenzen für die Bewegung ausreichen? Wenn ja, hast Du kein Problem mit Stromausfall. Einmal das Positonsoffset setzen und fertig.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Unterstützt die Funktion keine Referenzschalter? Ich würde einfach Endlagenschalter und einen Referenzschalter einbauen. Dann kann die Anlage jedes Mal vor Inbetriebnahme referenziert werden. Eine Beckhoff-Steuerung hatte ich bisher noch nie. Das witzig ist, dass es MC_Home auch bei TIA-Portal gibt.
 
Das ist völlig Wurscht. Die Frage lautet: Hat jeder Motor einen eigenen Absolutwertgeber, dessen Grenzen für die Bewegung ausreichen? Wenn ja, hast Du kein Problem mit Stromausfall. Einmal das Positonsoffset setzen und fertig.
Nein ich habe nur einen externen Absolutgeber, welcher am Master gekoppelt ist. Alle anderen haben keinen Absolutgeber.
 
Unterstützt die Funktion keine Referenzschalter? Ich würde einfach Endlagenschalter und einen Referenzschalter einbauen. Dann kann die Anlage jedes Mal vor Inbetriebnahme referenziert werden. Eine Beckhoff-Steuerung hatte ich bisher noch nie. Das witzig ist, dass es MC_Home auch bei TIA-Portal gibt.
Das liegt daran, dass die Motion Bausteine von der PLCopen.org nach IEC61131 standartisiert sind ;)
 
Zurück
Oben