Beckhoff Modulo-Achse verliert temporär die Referenz

da_kine

Level-2
Beiträge
558
Reaktionspunkte
189
Zuviel Werbung?
-> Hier kostenlos registrieren
Grüße euch,

ich habe an einer Beckhoff Achse (ELM7212-0010 - Motor mit Absolutwertgeber ) ein seltsames verhalten.

Die Achse ist eine Rundachse (Drehtisch) mit Modulo Positionierung. Wenn ich eine Programmänderung einspiele, TwinCat neu starte und die Grundstellungsfahrt auslöse ( Modulo 60° ) positioniert die Achse irgendwohin. Alle Nachfolgenden Modulo Operationen werden ausgehend vom falschen Startpunkt aber dann (versetzt) richtig angefahren. Aus irgendeinem Grund verliert die Achse immer wieder, nicht immer, ihren Modulobezug. Die gespeicherte Encoder Offset Position passt auch und verändert sich nicht.

Wenn ich aber dann den IPC herunterfahre und wieder neu starte und die Grundstellungsfahrt ausführe passt es wieder.

TwinCat 3 4024.54 - Tc2MC2 3.3.56 - DriveManager 2 1.1.72.0

Hatte jemand schon mal ein ähnliches Problem? Setzte ich beim übertragen irgendwo temporär einen anderen Offset? Ich wüsste nicht wo ich den konfigurieren sollte...

Grüße

Markus
 
Hallo,

arbeitest du bei der Grundstellungsfahrt mit einem Referenzsensor oder ist der Bezug nur der Absolute Motorgeber?

Ich / wir würde zum Thema Modulo immer mit einem Referenz Sensor arbeiten, damit die Anlagenposition eindeutig ist.
Zusätzlich ein Tipp, die Modulo Turns ( Anzahl der Modulo Umdrehungen ) geht beim System Neustart verloren, dadurch hat die Achse nach n Umdrehung keine Bezug mehr zur Position des Drive, Motorposition hat keinen Bezug mehr zur Abtriebsposition. Wenn du das brauchst müsstest du dir die Moduloturns Zyklisch in der PLC Remanent weg schreiben und beim Neustadt wieder per ADS in die NC schreiben. Deshalb lass die Achse mal laufen, schau dir vor dem Neustart mal die Moduloturns an ich denke hier liegt das Problem.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Als Bezug habe ich nur den Absolutwertgeber. Ich fahre damit auf Modulo 60° in der Grundstellungsfahrt. Das mit den Modulo Turns werde ich mir ansehen.
Wann würdest du die Achse dann referenzieren? Einmalig nach dem Neustart der Steuerung, quasi bei der ersten Grundstellungsfahrt oder in bestimmten Intervallen?
 
Modulo ohne Referenzfahrt geht nicht, weil der Absolutwertgeber bei einer Endlosachse immer über den Überlauf fährt. Da die Position aus dem NC kommt und nicht vom Geber, merkst Du das erst nicht. Bei Neustarten aber, hast Du plötzlich eine andere Position, bedingt durch den eingestellten Offset + aktuelle Geberposition versus Modulo. Also immer referenzieren.
Oder: Alternativ kann man sich die letzte Achsen-Position auch persistent wegspeichern und beim Neustart darauf basierend den Positions-Offset der Achse neu berechnen und in den NC runter schreiben. Aber das macht nur Sinn, wenn man auch sicherstellen kann, das die Achse während die Anlage aus ist, nicht bewegbar ist, z.B. durch eine Haltebremse oder ein steifes Winkelgetriebe. Aber auch da kann es zu einem schleichenden Versatz der Position kommen, wenn auch sehr langsam.
 
Okay, also wieder so eine Beckhoff Eigenheit. Ich habe schon mit anderen Herstellern Modulo Achsen gemacht und da war das eigentlich nie ein Problem. Die Achse wurde bei der Inbetriebnahme oder einem Motortausch einmalig mit einer Lehre Referenziert und dann war die Geschichte erledigt.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Das ist keine Beckhoff Eigenheit. Das ist rein konstruktiv. Die Anzahl der Turns bei dem Multiturn-Encoder muss genau ein Vielfaches der Getriebeübersetzung sein. Oder der Motor hat einen Single-Turn-Encoder und das Getriebe eine Übersetzung von 1:1. Dann funktioniert es auch so.

Ich denke es liegt hauptsächlich an der Verwendung der 48V-Motoren. Bei den größeren Servoumrichtern gibt es meist mehr Möglichkeiten, da wird die Position schon mal komlett im Umrichter gemanaged, auch das Modulo. Die kleinen 48V-Umrichter haben das nicht. Da macht das die NC.
 
Ich denke es liegt hauptsächlich an der Verwendung der 48V-Motoren
Stimmt. Ich glaube mal irgendwo gelesen zu haben, dass die 48V Encoder bauartbedingt eigentlich nur Single Turn sind und der Multiturn quasi "Emuliert" wird. Darum muss der Encoder Offset in den ELM72xx auch im Drive gespeichert werden.
 
Wann würdest du die Achse dann referenzieren? Einmalig nach dem Neustart der Steuerung, quasi bei der ersten Grundstellungsfahrt oder in bestimmten Intervallen?
Gar nicht. Referenzieren ist etwas das man mit inkrementellen Gebern tun muss, weil z.B. die Achse im abgeschalteten Zustand "von Hand" verdreht worden sein könnte, ohne dass die Steuerung das hätte beobachten können.
Bei absoluten Gebern muss man die Differenz zwischen der theoretischen und der tatsächlichen Position einmalig messtechnisch ermitteln und den Versatz ständig draufaddieren. "Einmalig" bedeutet dabei: nach jeder mechanischen Veränderung, z.B. einem Auswechseln des Gebers.
Aber, die absoluten Geber übertragen nicht alle ständig ihren kompletten absoluten Messwert. Meistens wird der komplette Messwert einmalig nach dem Einschalten übertragen und Änderungen der Position werden danach nur noch inkrementell aktualisiert.
Absolute Geber sind also in der Praxis oft nicht ganz so absolut (und haben z.T. Batterien/Akkus - warum wohl?), wie es diese Bezeichnung nahelegt. Ich würde die Hersteller des Gebers und der "AuswerteElektronik" befragen, ob und wie sie zusammenarbeiten.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Gar nicht. Referenzieren ist etwas das man mit inkrementellen Gebern tun muss, weil z.B. die Achse im abgeschalteten Zustand "von Hand" verdreht worden sein könnte, ohne dass die Steuerung das hätte beobachten können.
Okay, da bin ich dabei. Die Incrmentalgeber werden eigentlich immer nur mit Flankenauswertung auf A B Z gefahren und in Zählern verrechnet.
Bei absoluten Gebern muss man die Differenz zwischen der theoretischen und der tatsächlichen Position einmalig messtechnisch ermitteln und den Versatz ständig draufaddieren. "Einmalig" bedeutet dabei: nach jeder mechanischen Veränderung, z.B. einem Auswechseln des Gebers.
Das ist das was ich bei Beckhoff mit den verschiedenen "SetPositionOffset" Funktionen mache. Dieser Offset wird dann fest im Regler oder dem Encoder gespeichert, je nach System. Ich muss die Achse im Normalfall also nicht erneut referenzieren da der Wert beim Einschalten gelesen und als Berechnungsgrundlage verwendet wird.
Aber die Funktion MC_Home überschreibt diesen Offset in der NC auf der SPS wieder und ersetzt den Wert aus dem Offset-Speicher dann bis zum nächsten Neustart mit seinem eigenen Wert.
Verstehe ich das soweit richtig?

Aber, die absoluten Geber übertragen nicht alle ständig ihren kompletten absoluten Messwert. Meistens wird der komplette Messwert einmalig nach dem Einschalten übertragen und Änderungen der Position werden danach nur noch inkrementell aktualisiert.

Absolute Geber sind also in der Praxis oft nicht ganz so absolut, wie es diese Bezeichnung nahelegt. Ich würde die Hersteller des Gebers und der "AuswerteElektronik" befragen, ob und wie sie zusammenarbeiten.
Da sowohl der Drive als auch der Motor von Beckhoff sind, denke ich die werden schon miteinander klarkommen...
 
Vll. kann das deine ELM72xx auch?
So wie es beschrieben ist kann ich es nicht machen da die ELM den DriveManager 2 benötigen. Ich habe jetzt aber unter Advanced Parameter folgendes gefunden:
1719650403609.png

Ich werde das jetzt mal auf PrimaryFeedback stellen und schauen was passiert.

Im Infosys steht mal wieder nichts zu diesem Parameter. :cautious:
 
Zuletzt bearbeitet:
Beckhoff aktualisiert ihre Dokus eher unregelmäßig... Die Einstellung von Drivemanager 1 gibt es in einem anderen Bild auch für 2.
Ich konfiguriere die AX5000er mit dem Drivemanager 2.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Gar nicht. Referenzieren ist etwas das man mit inkrementellen Gebern tun muss, weil z.B. die Achse im abgeschalteten Zustand "von Hand" verdreht worden sein könnte, ohne dass die Steuerung das hätte beobachten können.
Bei absoluten Gebern muss man die Differenz zwischen der theoretischen und der tatsächlichen Position einmalig messtechnisch ermitteln und den Versatz ständig draufaddieren. "Einmalig" bedeutet dabei: nach jeder mechanischen Veränderung, z.B. einem Auswechseln des Gebers.
Das stimmt so pauschal nicht. Je nach Anwendung musst du das Thema Geberüberlauf berücksichtigen.
Dieses Überlaufhandling findet in der entsprechenden Achssteuerung statt und diese Daten können auch z.B. bei Neustart oder Spannungsausfall weg sein. Deshalb kann auch ein Referenzieren bei Absolutgebern notwendig sein.
 
Bei Beckhoff musst du das "original" Produkt kennen. Dort ist die Doku meist sehr ausführlich.
Das sieht man gut bei den Safety Klemmen.

@Blockmove
Dieses Problem ist in den Beckhoff Achsreglern (AX5000/AX8000) gelöst.
Die schreiben das in einen nicht flüchtigen Speicherbereich der auch noch bei Spannungsausfall beschrieben wird.
Ob dies aber für seinen Regler auch gilt ist noch unbekannt...
 
Ich würde auf folgendes hinweisen, die NC macht ein HomingRun und dann steht im PositionGain ein neuer Wert in der Steuerung, der Wert ist nicht identisch mit dem Wert im PLC-Projekt. Macht man dann ein Projektdownload mit "Registry" ... überschreibt man diesen wieder mit den alten Wert aus dem PLC Projekt. Ich habe in meiner ELM72xx Anwendung genau das Problem, die Jungs vom Service setzten den 0-Punkt einer Achse neu und ich muss immer daran denken erst den PositionGain aus der Steuerung zu uploaden. Sonst mache ich irgendwann ein Update in der Config und die Achse stehen wieder falsch.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
So, kurze Rückmeldung.

Ich habe jetzt den Parameter 0x8100:09 (Modulo Data storage) auf "Primary Feedback" gestellt. Bisher sind wir ca. 5000 Takte gefahren und ich habe diverse Änderungen gemacht. Erfahrungsgemäß hätte die Achse bisher schon 2 - 3 mal aussteigen müssen, läuft aber bisher aber ohne Probleme.

Danke hierfür.
 
Mit dem Drive Manager 2 (V 1.1.82.0 )funktioniert es mittlerweile, dass man in der Skalierungskonfiguration für den Encoder den Modulo-Betrieb über den Assistenten komfortabel konfigurieren kann.
 
Zuletzt bearbeitet:
Zurück
Oben