Ermittlung des Umrechnungsfaktors für Positionieraufgaben - Motion Control Positionierachse

SPS'ler

Level-2
Beiträge
154
Reaktionspunkte
4
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo Zusammen,

Ich habe derzeit ein Problem, welches ich nicht gelöst bekomme:

Ich bin dabei eine Positionierachse mit dem Technologie Objekt und den Motion Control Anweisungen in Betrieb zu nehmen. Verwendet wird eine Zahnriemenachse der Firma Igus (ZLW-1660S-G0BW0-D0A2B-AM2A0AA-2000), ein Simatic Micro Drive Antriebsregler PDC 600 und ein Antriebsmotor der Firma ebm-papst mit einem integrierten iQ-Encoder und einem Planetengetriebe (ebm-papst 24 V Motor - ECI-63.40-B00-K1 - PerformaxPlus 63.2 (i=30,0:1) - SGE6340BK1PP63203060).

Die Achse funktioniert soweit, allerdings habe ich ein Problem mit dem Positionieren:

Wie auf meinem Bild zu sehen, ist auf den Schlitten der Zahnachse eine Applikation gebaut, die eine bestimmte Position anfahren soll. Diese weicht natürlich von der Position des Motors ab. Ich habe bisher gedacht ich könnte eine Art Korrekturfaktor ermitteln, wo ich bestimme wieviel Impulse für z.B. 100mm gebraucht werden, um so meine Position berechnen zu können. Leider funktioniert dies nur bedingt, da die Position vermutlich durch Rundungsfehler besonders auf einer längeren Distanz variiert bzw. Sollwert immer leicht überfahren wird. Das sollte bei dieser Applikation nicht passieren. Wie löst Ihr solche Probleme bzw. habt ihr Tipps um so etwas zu umgehen? Bin daran im Moment schon sehr verzweifelt.

Vielen Dank für eure Hilfe!

MfG
 

Anhänge

  • Applikation_Positionierachse.png
    Applikation_Positionierachse.png
    81,1 KB · Aufrufe: 42
Was heißt, die Position variiert? Wenn man hin und herfährt, sollte immer die gleiche Position anfgefahren werden.
Überfahren?? Schwingt die Achse über, steht also am Ende richtig? Dann muß man sie noch ein wenig optimieren.
Normalerweise trägt man für den Geber ein, wieviele Impulse er pro Umdrehung ausgibt., bzw. wieviele Inkremente eine Umdrehung haben.
Dann kann man im TO einen Getriebefaktor engeben und für die Vorschubachse (Lineare Achse wählen) gibt man an, wieviele mm diese Achse bei einer Umdrehung /Zahnriemenrad) verfährt. Bei Festo-Achsen z.b. kann man das auch an der Bestellnummer bzw. damit im Katalog nachsehen. Wenn ich recht erinnere haben die TO-Objekte immer 3 Kommastellen, also Tausendstel mm.

PS: Mit diesen Micrdrive hab ich nocht nichts gemacht, wie bekommen die ihre Werte? Profinet-Telegramm?
 
Was heißt, die Position variiert? Wenn man hin und herfährt, sollte immer die gleiche Position anfgefahren werden.
Überfahren?? Schwingt die Achse über, steht also am Ende richtig? Dann muß man sie noch ein wenig optimieren.
Normalerweise trägt man für den Geber ein, wieviele Impulse er pro Umdrehung ausgibt., bzw. wieviele Inkremente eine Umdrehung haben.
Dann kann man im TO einen Getriebefaktor engeben und für die Vorschubachse (Lineare Achse wählen) gibt man an, wieviele mm diese Achse bei einer Umdrehung /Zahnriemenrad) verfährt. Bei Festo-Achsen z.b. kann man das auch an der Bestellnummer bzw. damit im Katalog nachsehen. Wenn ich recht erinnere haben die TO-Objekte immer 3 Kommastellen, also Tausendstel mm.

PS: Mit diesen Micrdrive hab ich nocht nichts gemacht, wie bekommen die ihre Werte? Profinet-Telegramm?

Also die Position ist nie die richtige die ich anfahren möchte. Zum Beispiel wenn ich auf die Position 100mm fahre dann passt das und wenn ich auf 1065 fahre dann bin ich in Wirklichkeit bei 1080mm. Ich habe mal einen Screenshot von meinem Antrieb und meinem Geber gemacht, wie er im TIA Portal eingestellt ist.

Außerdem gibt es den Punkt Mechanik (Screenshot). Hier steht noch der Anfangswert (10mm) drin. Ist dies vielleicht mein Fehler?
Wie kann ich denn den einzutragenden Wert ermitteln? Ich müsste ja wissen wieviel mm die Achse bei einer Motorumdrehung macht, allerdings fällt mir nicht ein wie ich das ermitteln könnte. Außerdem ist ja meine Position der Applikation noch eine andere als die des Schlittens die auf dem Riemen befestigt ist, ist hier dann noch ein zusätzlicher Faktor im Programm beim bestimmen meiner Soll-Position notwendig?
 

Anhänge

  • Antrieb.png
    Antrieb.png
    83,8 KB · Aufrufe: 49
  • Geber.png
    Geber.png
    93,6 KB · Aufrufe: 49
  • Mechanik.png
    Mechanik.png
    71,8 KB · Aufrufe: 49
Nachtrag:

Zu der Zahnachse habe ich die Daten aus der Grafik gefunden. Hier steht 120mm pro Umdrehung. Muss ich diese bei dem Technologie Objekt unter dem Punkt Mechanik eintragen? Und dann wäre nur noch das Problem das mein Positionierpunkt der Applikation ja nicht direkt auf der Mitte des Schlittens liegt, muss ich hier einfach die Distanz von der Mitte des Schlittens zu dem Positionierpunkt ermitteln und dieses dann verrechnen?
 

Anhänge

  • Übersetzung_Zahnachse.png
    Übersetzung_Zahnachse.png
    49,1 KB · Aufrufe: 26
Zuviel Werbung?
-> Hier kostenlos registrieren
Also, wenn man nicht alle Daten korrekt kennt, kann man die Übersetzung auch berechnen.
Im Prinzip ein Dreisatz. Markiere den Startpunkt, schreib den Wert der Position auf, den das TO zeigt, fahre ca. 100mm, messe das aus (z.Bsp. 101,7) schreibe den Wert des Endpunktes auf, berechne die Differenz zwischen Start und Endpunkt. Stimmen alle Werte, dann müßte dort 101,7 rauskommen, wenn nicht kann man die Abweichung berechnen und die Werte in der Mechanik des TO entsprechend verändern. Habe ich früher auch häufig gemacht. Seitdem wir aber alles bekannte und festgelegte Komponenten verwenden, mache ich das immer mit den Werten von Vorschub und Getriebeübersetzung und prüfe, ob das am Ende auch wirklich stimmt. Also 100mm verfahren und dann messen. Den Nullpunkt der Achse kannst du ja über Refgerenzieren festlegen, es gibt da verschiedene Modi, mit denen man referenzieren kann.
 
Normalerweise musst Du hier gar nichts manuell umrechnen.
Du hast eine Linearachse mit 120mm/U und ein Planetengetriebe mit 1:30, also in Summe eine Linearachse mit 120mm/30U = 4mm/Umot.

Im Anschluss kannst Du nach der Referenzfahrt normal alle Positionen absolut anfahren ohne dir Gedanken zu machen.
 
Normalerweise musst Du hier gar nichts manuell umrechnen.
Du hast eine Linearachse mit 120mm/U und ein Planetengetriebe mit 1:30, also in Summe eine Linearachse mit 120mm/30U = 4mm/Umot.

Im Anschluss kannst Du nach der Referenzfahrt normal alle Positionen absolut anfahren ohne dir Gedanken zu machen.

Also wenn ich das jetzt richtig verstanden habe, muss ich bei dem Technologie Objekt unter "Mechanik" 4mm pro Umdrehung eintragen um die beiden Übersetzungen abzudecken.

Meine letzte frage mit der Umrechnung war vielleicht etwas verwirrend, deswegen habe ich diese einmal aufgezeichnet. Die 4mm pro Motorumdrehung werden ja bei der Bewegung von der Schlittenmitte zur Schlittenmitte getätigt, meine Applikation liegt aber wie in dem Beispiel 50mm von der Mitte entfernt. Somit muss ich ja letztendlich bei dem Sollwert der Absolut-Position diese 50mm addieren um mit meiner Applikation die richtige Position zu erreichen. Ist das so richtig oder habe ich etwas übersehen?

Vielen Dank für die Zahlreichen Antworten :)
 

Anhänge

  • Umrechnung_Schlittenmitte_zu_Applikation.png
    Umrechnung_Schlittenmitte_zu_Applikation.png
    144,8 KB · Aufrufe: 34
@SPS'ler
Die Bezeichnung IQ-Encoder sagt mir nichts. Laut nem bisschen googlen ist das irgendeine Art von inkrementalen Encoder.
Also Referenzfahrt notwendig.

Hast Du keine Referenznocke oder Endschalter an deiner Anwendung?
Dann wäre deine Position von dir selbst festgelegt, was deiner Nullungs-Position entspricht.
Das kann völlig frei gewählt werden.
Als reines Beispiel: Referenzposi=2000mm lichtes Maß von der nächsten Wand und Verfahrbereich 2000-2400mm als Vorgabe.

Nach der Referenzfahrt kannst du absolut positionieren. Was dein Offset deiner Applikation zur Endlage der Achse betrifft gibst du z.B. den Offset als Referenzposition an bei Referenzfahrt auf Endschalter negativ. Das liegt aber komplett bei Dir, deiner Anwendung und wie Du es verschalten willst.

Die 4mm/U sind ja nur die Übersetzung. Bei 1024 Imp/U würde einem Impuls ein Weg von gerundet 0,0039 mm entsprechen. Damit musst du dich aber normalerweise bei einer Siemens Servo-Achse nicht rumschlagen. Die Normierung erfolgt durch die (richtigen) Angaben unter "Mechanik" grundsätzlich auf Lastbewegungen.
 
@SPS'ler
Die Bezeichnung IQ-Encoder sagt mir nichts. Laut nem bisschen googlen ist das irgendeine Art von inkrementalen Encoder.
Also Referenzfahrt notwendig.

Hast Du keine Referenznocke oder Endschalter an deiner Anwendung?
Dann wäre deine Position von dir selbst festgelegt, was deiner Nullungs-Position entspricht.
Das kann völlig frei gewählt werden.
Als reines Beispiel: Referenzposi=2000mm lichtes Maß von der nächsten Wand und Verfahrbereich 2000-2400mm als Vorgabe.

Nach der Referenzfahrt kannst du absolut positionieren. Was dein Offset deiner Applikation zur Endlage der Achse betrifft gibst du z.B. den Offset als Referenzposition an bei Referenzfahrt auf Endschalter negativ. Das liegt aber komplett bei Dir, deiner Anwendung und wie Du es verschalten willst.

Die 4mm/U sind ja nur die Übersetzung. Bei 1024 Imp/U würde einem Impuls ein Weg von gerundet 0,0039 mm entsprechen. Damit musst du dich aber normalerweise bei einer Siemens Servo-Achse nicht rumschlagen. Die Normierung erfolgt durch die (richtigen) Angaben unter "Mechanik" grundsätzlich auf Lastbewegungen.
Ja eine Referenzfahrt über eine Nocke führe ich durch, das funktioniert auch.
Ich denke mein Problem wird sein das die Angaben unter Mechanik nicht stimmen.

Die restliche Verschaltung sollte ja kein Problem darstellen.

Also wäre mein Gedanke jetzt unter Mechanik die 4mm pro Lastumdrehung einzutragen oder gibt es noch einen Punkt zu beachten, bzw. Interpretiere ich deine Antwort falsch? Die Inkremente spielen ja in dem Punkt Mechanik keine Rolle denke ich.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Ist denn Dein Versatz zwischen Applikation und Schlitten nicht konstant (bzw. warum nicht)?

GetriebeÜbersetzungen werden aus gutem Grund als nicht ausgerechneter Quotient angegeben, also in Form von 2 Ganzzahlen: Zähler und Nenner.
Rechnet man z.B. den Quotienten aus und trägt ihn als Zähler ein und gibt als Nenner 1 an, dann kommt es unweigerlich zu Abweichungen, die zum verfahrenen Weg proportional sind.
Es ist schon nötig, die Angaben in Form von Ganzzahlen zu machen und nicht als REAL-Zahlen.
Aber ich weiss nicht, ob dies überhaupt Dein Problem ist bzw. sein kann.

Wie sieht es denn mit der Reproduzierbarkeit Deiner PositionierAktionen aus, wenn Du immer zwischen denselben beiden SollPositionen hin- und herfährst? Sind die so erreichten IstPositionen dann immer genau genug gleich?
 
Zuletzt bearbeitet:
Ist denn Dein Versatz zwischen Applikation und Schlitten nicht konstant (bzw. warum nicht)?

GetriebeÜbersetzungen werden aus gutem Grund als nicht ausgerechneter Quotient angegeben, also in Form von 2 Ganzzahlen: Zähler und Nenner.
Rechnet man z.B. den Quotienten aus und trägt ihn als Zähler ein und gibt als Nenner 1 an, dann kommt es unweigerlich zu Abweichungen, die zum verfahrenen Weg proportional sind.
Es ist schon nötig, die Angaben in Form von Ganzzahlen zu machen und nicht als REAL-Zahlen.
Aber ich weiss nicht, ob dies überhaupt Dein Problem ist bzw. sein kann.

Wie sieht es denn mit der Reproduzierbarkeit Deiner PositionierAktionen aus, wenn Du immer zwischen denselben beiden SollPositionen hin- und herfährst? Sind die so erreichten IstPositionen dann immer genau genug gleich?

Der Versatz zu dem Schlitten ist immer konstant. Das Problem ist mehr das ich bei einem Fahrweg von 100mm nicht 100mm verfahre sondern mehr. Die Position ist letztendlich aber immer gleich allerdings eben zum Beispiel bei 110mm. Deswegen die Einstellung unter dem Punkt Mechanik.
 
Ich hätte jetzt gedacht, wie bereits oben erwähnt wurde, dass der Getriebemotor mit den Angaben der Achse verrechnet werden muss ( Ergebnis: 4mm pro Umdrehung) und dies dann mein Wert für die Lastbewegung pro Umdrehung ist, den ich im TO eintrage.

Wenn dieses nicht der richtige Wert zum eintragen unter Mechanik ist, wie soll ich denn dann den richtigen Wert herausfinden?
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Außerdem gibt es den Punkt Mechanik (Screenshot). Hier steht noch der Anfangswert (10mm) drin. Ist dies vielleicht mein Fehler?
Ich verstehe den Begriff "Anfangswert" nicht so ganz ... Anfang von was?
Nachtrag:

Zu der Zahnachse habe ich die Daten aus der Grafik gefunden. Hier steht 120mm pro Umdrehung. Muss ich diese bei dem Technologie Objekt unter dem Punkt Mechanik eintragen? Und dann wäre nur noch das Problem das mein Positionierpunkt der Applikation ja nicht direkt auf der Mitte des Schlittens liegt, muss ich hier einfach die Distanz von der Mitte des Schlittens zu dem Positionierpunkt ermitteln und dieses dann verrechnen?
120 mm/Umdrehung ist sicherlich der Weg bezogen auf Umdrehung des ZahnRiemenRades. Hier fehlt noch der Zusammenhang bzw. der Bezug zur Umdrehung der MotorAchse / des Gebers. Aber das hatte Holzmichl Dir schon geschrieben.

Das Thema "Applikation nicht direkt auf der Mitte des Schlittens" solltest Du an dieser Stelle ignorieren! Du kannst ja den Wert entsprechend dem Versatz beim Referenzieren so verändern, dass sich der PositionsWert auf die Applikation bezieht.

Um den einzutragenden Wert für die mm pro (Motor!)Umdrehung zu ermitteln, bietet es sich an, die entsprechende Strecke für eine möglichst grosse Anzahl MotorUmdrehungen zu messen und auf 1 Umdrehung umzurechnen.
 
Ich verstehe den Begriff "Anfangswert" nicht so ganz ... Anfang von was?

120 mm/Umdrehung ist sicherlich der Weg bezogen auf Umdrehung des ZahnRiemenRades. Hier fehlt noch der Zusammenhang bzw. der Bezug zur Umdrehung der MotorAchse / des Gebers. Aber das hatte Holzmichl Dir schon geschrieben.

Das Thema "Applikation nicht direkt auf der Mitte des Schlittens" solltest Du an dieser Stelle ignorieren! Du kannst ja den Wert entsprechend dem Versatz beim Referenzieren so verändern, dass sich der PositionsWert auf die Applikation bezieht.

Um den einzutragenden Wert für die mm pro (Motor!)Umdrehung zu ermitteln, bietet es sich an, die entsprechende Strecke für eine möglichst grosse Anzahl MotorUmdrehungen zu messen und auf 1 Umdrehung umzurechnen.
Mit Anfangswert ist nur ein Wert gemeint, den ich nicht bewusst eingetragen habe. Ich meine der Wert stand schon da eingetragen.

Das ermitteln des Weges ist mir klar, hier kann ich ja einfach den Schlitten im Tippbetrieb bewegen und die Distanz messen.
Aber wie ermittle ich die Motorumdrehungen? Soll ich die Kupplung markieren und zählen wie oft der Motor eine Umdrehung macht oder kann ich die getätigten Umdrehungen irgendwo im TIA-Portal auslesen?
 
Ob die Anzahl Umdrehungen im TIA-Portal zur Verfügung steht, weiss ich leider nicht.
Markierung hört sich gut an. Das Zählen ist natürlich mühsam.
Evtl. ist es möglich, den Motor von Hand zu drehen?

Welchen Wert hast Du momentan bei LastBewegung pro MotorUmdrehung eingetragen?
Welcher Weg kann maximal gefahren werden?
Wie gross wird die Abweichung zwischen Soll- und IstPosition?

Ich würde einen Weg von z.B. 4mm programmieren (wenn Du 4 mm/Umdr. eingetragen hast).
Dann gucken, ob die Markierung wieder dort steht, wo sie vor dem Positionieren stand.
Ggfs von Hand die Markierung in die Position drehen, den Weg messen und die mm/Umdr. korrigieren.
Dann z.B. Weg programmieren, der 10 Umdr. entsprechen sollte. Dann wieder Marke durch Drehen in die "StartPosition" justieren, Weg messen, korrigieren.
U.s.w. mit Weg, der 100 Umdrehungen entspricht ...
 
Zuletzt bearbeitet:
Zuviel Werbung?
-> Hier kostenlos registrieren
Leider ist es nicht möglich den Motor per Hand zu drehen.

Ich werde den Wert auf 4mm einstellen und dann 4mm positionieren und sehen wo ich danach angelangt bin und dann die Werte korrigieren bis ich auf ein richtiges Ergebnis komme. Wird ein wenig vermutlich ein wenig länger dauern, da ich nicht händisch drehen kann aber dann ist das so.

Vielen Dank für die Hilfe, ich werde berichten was dabei rausgekommen ist.
 
Zuletzt bearbeitet:
Mir ist noch eine Sache aufgefallen:

Ich kann nur die Kupplung von der Übergabe Getriebe->Zahnachse markieren, das heißt ich muss dann ja bei dem Zählen der Motorumdrehungen noch das Getriebe rausrechnen, habt ihr dafür einen Ansatz? Oder gibt es einen Parameter im TIA Portal wo ich die Getriebeübersetzung eintragen kann?
 
Ich kann nur die Kupplung von der Übergabe Getriebe->Zahnachse markieren, das heißt ich muss dann ja bei dem Zählen der Motorumdrehungen noch das Getriebe rausrechnen, habt ihr dafür einen Ansatz? Oder gibt es einen Parameter im TIA Portal wo ich die Getriebeübersetzung eintragen kann?
Ja leider! Da müssen wir wohl unterstellen, dass 1:30 korrekt ist. Also 30 Umdr. der MotorAchse = 1 Umdr. der ZahnAchse
Aber den Parameter in der GrössenOrdnung von 4 mm / Umdr. belassen und nur "wenig" korrigieren. ;)
 
Zurück
Oben