1. Dashboard
    1. Dashboard
    2. Suche
  2. Forum
    1. Unresolved Threads
  3. Members
    1. Recent Activities
    2. Users Online
    3. Team
    4. Search Members
  4. Jobs
  5. Articles
  6. Calendar
    1. Upcoming Events
    2. Map
  7. Shop
    1. Orders
    2. Shipping Costs
  • Login or register
  • Search
Roboterprogrammierer finden
This Thread
  • Everywhere
  • This Thread
  • This Forum
  • Articles
  • Pages
  • Forum
  • Blog Articles
  • Events
  • Files
  • Products
  • More Options
  1. Roboterforum.de - die Industrieroboter und Cobot Community
  2. Forum
  3. Industrieroboter Support
  4. KUKA Roboter
Your browser does not support videos autonome mobile Roboter von KUKA
besuche unseren Hauptsponsor
Roboterschulung Online
Online Roboterschulung
Advertise in Robotics
Der Roboterkanal
Deutscher Robotikverband
Werben in Robotik
Werben für Robotik

Linearachse einrichten

  • niklas
  • February 19, 2020 at 10:21 AM
  • Thread is Resolved
  • niklas
    Points
    40
    Posts
    7
    • February 19, 2020 at 10:21 AM
    • #1

    Hallo zusammen!

    Ich habe ein Problem beim Einrichten einer Linearachse mit einem Kuka Robotor. Ich hoffe ihr könnt mir weiterhelfen.

    Und war habe ich folgenden Aufbau: ein Kuka KR 60 hängt in einer Portalbauweise über Kopf an einer Lineareinheit. Diese Lineareinheit ist nicht von Kuka, sondern von einer Firma, die die gesamte Anlage aufgebaut hat (die Anlage umfasst noch weitere Roboter, Tische, etc.). Leider meinte diese Firma, dass sie die Einrichtung der Linearachse nicht machen könne. Jetzt bin ich als Student dazu gestoßen und schreibe aktuell eine Arbeit, wozu ich den Roboter mit der Linearachse benötige. Ich habe keine wirkliche Erfahrung mit dem Programmieren von Robotern und bin auch auf mich alleine gestellt.

    Die besagte Firma hat Antriebe in die Konfiguration in WorkVisual gefügt, aber keineswegs miteinander verknüpft. Die Achse lässt sich zwar manuell verfahren, hat aber keine Kopplung mit dem Roboter. Zuerst habe ich in WorkVisual den Roboter auf den Flansch von der Linearachse gestellt. Die Linearachse wird als Motor (MG_ME_260_KSP40) dargestellt. Da taucht die erste Frage auf: bildet MG_ME_260_KSP40 eine Linearachse und kann die dafür verwendet werden? Anschließend habe ich dann in der Maschinenkonfiguration die Werte für die Koordinatensysteme festgelegt. Nebenbei: wie kann man das Weltkoordinatensystem ändern? Das ganze Projekt dann auf den Roboter übertragen, muss ich dann die Linearachse durch verschiedene Messpunkte vermessen, da sich der TCP des Roboters mit der Bewegung der Linearachse schräg nach oben/unten bewegt (Ist-Position bleibt laut Roboteranzeige dabei gleich). Nach dem Vermesser taucht allerdings eine Fehlermeldung auf, die das weitere Verfahren verhindert: "Absolutgenaues Modell: Parameter nicht mit Maschinendaten konsistent." Könnt ihr mir hierbei weiterhelfen?

    Ich bin für jeden Ratschlag und für jede Hilfe sehr sehr dankbar. Mein Wissen über Roboter beschränkt sich quasi auf nur zwei Wochen herumprobieren.

    Danke schonmal im Voraus.

    Niklas

  • Schritt für Schritt zum Roboterprofi!
  • fubini
    Reactions Received
    72
    Points
    5,137
    Trophies
    2
    Posts
    918
    Location
    München
    • February 19, 2020 at 1:50 PM
    • #2

    Hallo Niklas,

    kannst du bitte dein R1/$machine.dat posten, dann kann man sich mal anschauen was du konfiguriert hast und ob das zu deiner Beschreibung passt. Tatsäclich generiert die WorkVisual diese File und überspielt es auf die Steuereung.

    Wie so prinzipiell eine Zusatzachskonfiguration ausschaut siehst du z.B. hier abschauen und eventuell schon mal selber analysieren:

    Basis auf einer Linearachse

    https://www.robot-forum.com/robotforum/thr…SROOT#post84216

    Der Absolutgenauigkeitsfehler ist wahrscheinlich auch erklärbar. Um die Absolutgenauigkeit verwenden zu können, muss der Roboter so in der Welt stehen wie bei der Ermittlung der absolutgenauen Parameter. Ist das nicht der Fall kommt genau deine Meldung. Du kannst mal testweise versuchen die Absolutgenauigkeit über $DEACTIVAT_ABS_ACCUR = #TRUE abzuschalten. Dann werdet ihr wahrscheinlich wieder fahren können. Aber Vorsicht: Es werden dann leicht andere Posen angefahren es besteht also Crashgefahr.

    Fubini

  • niklas
    Points
    40
    Posts
    7
    • February 19, 2020 at 3:13 PM
    • #3

    Hallo Fubini,

    danke für deine Antwort.

    Die $maschine.dat habe ich in den Anhang gehängt.

    Dort finde ich zwar die externe(n) Achse(n) und die Konfiguration, die ich über WorkVisual eingestellt habe, kann damit aber auch wenig anfangen. Vielleicht fällt dir ja was auf.

    Files

    $machine.txt 29.61 kB – 17 Downloads
  • fubini
    Reactions Received
    72
    Points
    5,137
    Trophies
    2
    Posts
    918
    Location
    München
    • February 19, 2020 at 4:34 PM
    • Best Answer
    • #4

    Hallo Niklas,

    hier schon mal die ersten Ergebnisse:

    • Du hängst die Lineareinheit über ERSYSROOT.C = 180 an die Decke. Soweit OK.
    • Allerdings ist die Richtung der Linearachse E1 sehr wahrscheinlich nicht korrekt. Du lässt sie über $ET1_TA1KR.Z = 180 in Welt-Z Richtung verlaufen. Normalerweise hätte ich da eher einen +-90° Winkel erwartet um in der Welt-(X,Y)-Ebene zu sein und zwar so ähnlich wie in diesem Beispiel

      $ET1_NAME[]="KL4000S_Q_64"

      FRAME $ET1_TA1KR={X 0.0,Y 0.0,Z 689.000,A 0.0,B -90.0000,C 0.0} ;FRAME ZWISCHEN A1 UND FUSSPUNKT DER KIN IN TRAFO ET1

      FRAME $ET1_TA2A1={X 0.0,Y 0.0,Z 0.0,A 0.0,B 0.0,C 0.0} ;ZWISCHEN A2 UND A1

      FRAME $ET1_TA3A2={X 0.0,Y 0.0,Z 0.0,A 0.0,B 0.0,C 0.0} ;ZWISCHEN A3 UND A2

      FRAME $ET1_TFLA3={X 0.0,Y 0.0,Z 0.0,A -90.0000,B 0.0,C -90.0000} ;ZWISCHEN FL UND A3

      FRAME $ET1_TPINFL={X 0.0,Y 0.0,Z 0.0,A 0.0,B 0.0,C 0.0} ;ZWISCHEN MESSPUNKT UND FL

      Du drehst quasi das an die Decke hängen über ERSYSROOT.C = 180 nur einfach wieder zurück. Bitte beachte dabei, dass die Achse immer der z-Richtung entspricht, d.h. der E1 Wert verschiebt entlang der z-Achse.

    • Zur Absolutgenauigkeit: PID-Files (das ist das Parameterfile der Absolutgenauigkeit) werden normalerweise von KUKA für Roboter in Bodenmontage erstellt. Dein Roboter hängt an der Decke, daher funktioniert das wahrscheinlich nicht. Hier hätte man bei KUKA schon die Absolutgenauigkeit für Deckenmaschine bestellen müssen. Hauptgrund ist hier die unterschiedlich wirkende Gravitationsrichtung zwischen Boden und Decke. Hast du allerdings ein für Decke ausgelegtes PID-File liegt es nur an der falsch konfigurierten Transformation.

    • Hat dein Roboter eigentlich einen Gewichtsausgleich? Wenn ja kannst du einen für Boden ausgelegten Roboter eh nicht an die Decke hängen. Bei Bodenmontage zieht der Gewichtsausgleich während er bei Deckenmontage drücken müsste. Das kann er aber technisch dann nicht. Laut $TRAFONAME ist das zwar einen Deckenvariante CLG = Ceiling, aber sicher ist sicher.
    • Außerdem solltest du noch beachten, das du über $ET1_TFLA3 den Flansch der Linearachse so ausrichtests dass die z-Achse parallel zur Achse 1 des Roboters ist.

    Fubini

  • niklas
    Points
    40
    Posts
    7
    • February 20, 2020 at 12:06 PM
    • #5

    Okay, die Werte habe ich jetzt so eingegeben, dass die Z-Achse in Bewegungsrichtung der Lineareinheit ausgerichtet ist. Und die Z-Achse des Flansches ist parallel zur A1 des Roboters.

    Bei der Übertragung des Projekts von WorkVisual auf den Roboter gab es keine Probleme/Fehlermeldungen.

    Allerdings verfährt jetzt der Roboter leicht mit der Lineareinheit mit (in x-Richtung), wenn ich E1 im Weltkoordinatensystem verfahre. Die y-, und z-Werte bleiben dabei gleich. Die vom Roboter angezeigte Ist-Position verändert sich nicht.

    Muss ich den Roboter noch vermessen (Inbetriebnahme – Vermessen – Externe Kinematik – Lineareinheit)? Wenn ja, wie muss ich das handhaben? Jeglicher Versuch der Vermessung endet wieder in der Fehlermeldung mit der Absolutgenauigkeit.

    Niklas

  • niklas
    Points
    40
    Posts
    7
    • February 20, 2020 at 1:12 PM
    • #6

    Rolle rückwärts! Ich hab die Vorzeichen vertauscht!

    Es klappt jetzt alles so wie es sollte. Besten Dank für die große Hilfe!!

    Eine Frage habe ich aber allerdings noch: wie lege ich das/ein neues Weltkoordinatensystem fest?

    Niklas

  • fubini
    Reactions Received
    72
    Points
    5,137
    Trophies
    2
    Posts
    918
    Location
    München
    • February 20, 2020 at 1:30 PM
    • #7

    Das inertiale Weltsystem $World ist immer fix die Null und kann nicht geändert werden. Wo bezüglich Welt deine Kinematik liegt ist genau das $ersysroot und wäre ohne Lineareinheit das $robroot. Was du aber wahrscheinlich machen willst ist Werkstückkoordinatensysteme aka Bases zu definieren. Das solltest du über Inbetriebnahme Vermessung Basis finden.

    In der Doku für Systemintegratoren findest du ein schönes Bild wie die ganzen Koordinatensysteme zusammenhängen.

    Das Vermessen der Lineareinheit ist auch empfehlenswert, falls du hohe Genauigkeit brauchst. Hier wird bezogen auf den Roboterfuß genau eingemessen in welche Richtung die Lineareinheit verläuft und dann in $ET1_TFLA3 geschrieben. Man schafft es ja bei der Montage selten der Roboter exakt auf der Lineareinheit festzuschrauben.

    Fubini

    Edited once, last by fubini (February 20, 2020 at 1:37 PM).

  • ottosieben
    Reactions Received
    29
    Points
    2,979
    Posts
    574
    Occupation
    Servicetechniker im Ruhestand
    • February 20, 2020 at 7:51 PM
    • #8

    Moin,

    wie Fubini schon richtig bemerkte, hast Du ein Problem mit der Absolutgenauigkeit.

    Die Ursache ist kurz und bündig gesagt die Lineareinheit selbst. Selbst Lineareinheiten von KUKA haben keine Absolutgenauigkeit. Das heißt also, dass der im Prinzip absolutgenaue Roboter auf einer nicht absolutgenauen Lineareinheit befestigt ist. Daher die Inkonsistenz der MADA.

    Da hilft nur, die Absolutgenauigkeit des Roboters "über Bord zu werfen". Dazu muss das PID File auf dem Speicher des Roboters gelöscht werden.

    Weiterhin muss gewährleistet werden, dass der Roboter auch ein Roboter mit den Maschinendaten eines deckenhängenden Roboter ist.

    Da es ein KR60 ist, sollte es im Ernstfall auch möglich sein, diesen Bodenroboter mittels eines kleinen Kunstgriffs in einen Deckenroboter "umzuwandeln". Allerdings ist bei einer solchen Aktion durch die unterschiedlich einwirkenden Gravitationskräfte mit mechanischen Abweichungen in der (notwendigen) Justage zu rechnen.

    Das hat dann Auswirkung auf die Genauigkeit beim Bahnfahren.

    Zu den Mada: Bitte gib mal an , welcher Robotertyp das ist. (KR60-3 CLG?)

    never touch a running system

  • niklas
    Points
    40
    Posts
    7
    • February 24, 2020 at 9:38 AM
    • #9

    Danke für die Antworten!

    Das Problem mit der Absolutgenauigkeit habe ich in den Griff bekommen. Der Fehler taucht nun nicht mehr auf, die Linearachse verfährt wie gewollt.

    Der Robotertyp ist: KR60 HA-C bzw. der Produktname: KR60HA_3 C4 CLG ZH02

    Wenn ich jetzt aber auch noch mit den selben Roboter einen Drehtisch (kipp- und drehbar) in die kinematische Kette mit einbinden will, habe ich nun zwei Antriebe E2 (kippen) und E3 (drehen). Diese sind auch in der $maschine.dat (oben) enthalten. Wie muss ich dabei vorgehen?

    Bisher habe ich in WorkVisual in der Zellkonfiguration gesagt, dass der Roboter den Antrieben folgen soll. Dabei sind die Antriebe des Tisches jeweils getrennt voneinander. Anschließend habe ich den Fußpunkt und die Achsen vermessen und eingetragen.

    Das ergibt dann einmal für die Kippachse:

    DECL ET_AX $ET2_AX={TR_A1 #E2,TR_A2 #NONE,TR_A3 #NONE} ;EXTERNE ACHSEN #NONE, #E1, #E2, #E3, #E4, #E5, #E6

    CHAR $ET2_NAME[20] ;NAME DER TRANSFORMATION ET2 MAX. 20 ZEICHEN

    $ET2_NAME[]="MG_ME_110_KSP40"

    FRAME $ET2_TA1KR={X 0.0,Y 0.0,Z 0.0,A 0.0,B 0.0,C 90.0000} ;FRAME ZWISCHEN A1 UND FUSSPUNKT DER KIN IN TRAFO ET2

    FRAME $ET2_TA2A1={X 0.0,Y 0.0,Z 0.0,A 0.0,B 0.0,C 0.0} ;ZWISCHEN A2 UND A1

    FRAME $ET2_TA3A2={X 0.0,Y 0.0,Z 0.0,A 0.0,B 0.0,C 0.0} ;ZWISCHEN A3 UND A2

    FRAME $ET2_TFLA3={X 0.0,Y 0.0,Z 0.0,A 0.0,B 0.0,C -90.0000} ;ZWISCHEN FL UND A3

    FRAME $ET2_TPINFL={X 200.000,Y -400.000,Z 200.000,A 0.0,B 0.0,C 0.0} ;ZWISCHEN MESSPUNKT UND FL

    Und für die Drehachse:

    DECL ET_AX $ET3_AX={TR_A1 #E3,TR_A2 #NONE,TR_A3 #NONE} ;EXTERNE ACHSEN #NONE, #E1, #E2, #E3, #E4, #E5, #E6

    CHAR $ET3_NAME[20] ;NAME DER TRANSFORMATION ET3 MAX. 20 ZEICHEN

    $ET3_NAME[]="MG_64_KSP40"

    FRAME $ET3_TA1KR={X 0.0,Y 0.0,Z 0.0,A 0.0,B 0.0,C 0.0} ;FRAME ZWISCHEN A1 UND FUSSPUNKT DER KIN IN TRAFO ET3

    FRAME $ET3_TA2A1={X 0.0,Y 0.0,Z 0.0,A 0.0,B 0.0,C 0.0} ;ZWISCHEN A2 UND A1

    FRAME $ET3_TA3A2={X 0.0,Y 0.0,Z 0.0,A 0.0,B 0.0,C 0.0} ;ZWISCHEN A3 UND A2

    FRAME $ET3_TFLA3={X 0.0,Y 0.0,Z 0.0,A 0.0,B 0.0,C 0.0} ;ZWISCHEN FL UND A3

    FRAME $ET3_TPINFL={X 200.000,Y -400.000,Z 0.0,A 0.0,B 0.0,C 0.0} ;ZWISCHEN MESSPUNKT UND FL

    Das müsste doch funktionieren und der TCP vom Roboter müsste beim Verfahren des Tisches der Bewegung des Tisches folgen, richtig? Der Roboter steht dabei aber einfach nur still.

    Danke für weitere Hilfe

    Niklas

  • SJX
    Reactions Received
    238
    Points
    11,403
    Trophies
    64
    Posts
    2,062
    • February 24, 2020 at 10:27 AM
    • #10

    Wieso getrennte Transformationen für den Dreh-Kipptisch? Ist ja eine Kinematik

    Attached mal als Beispiel Transformation eines DKP400 von KUKA selbst.

    DECL ET_AX $ET1_AX={TR_A1 #E1,TR_A2 #E2,TR_A3 #NONE} ;EXTERNE ACHSEN #NONE, #E1, #E2, #E3, #E4, #E5, #E6

    CHAR $ET1_NAME[20] ;NAME DER TRANSFORMATION ET1 MAXIMAL 20 ZEICHEN

    $ET1_NAME[]="DKP_400"

    FRAME $ET1_TA1KR={x 0.0,y 280.0,z 510.0,a 0.0,b 90.0,c 0.0} ;FRAME ZWISCHEN A1 UND FUSSPUNKT DER KIN IN TRAFO ET1

    FRAME $ET1_TA2A1={x 0.0,y 0.0,z 324.0,a 0.0,b -90.0,c 0.0} ;ZWISCHEN A2 UND A1

    FRAME $ET1_TA3A2={x 0.0,y 0.0,z 0.0,a 0.0,b 0.0,c 0.0} ;ZWISCHEN A3 UND A2

    FRAME $ET1_TFLA3={x 0.0,y 0.0,z 340.0,a 90.0,b 0.0,c 0.0} ;ZWISCHEN FL UND A3

    FRAME $ET1_TPINFL={x 210.0,y 0.0,z 0.0,a 0.0,b 0.0,c 0.0} ;ZWISCHEN MESSPUNKT UND FL

    Gruss SJX

    Manche Maenner bemuehen sich lebenslang, das Wesen einer Frau zu verstehen. Andere befassen sich mit weniger schwierigen Dingen z.B. der Relativitaetstheorie.

  • niklas
    Points
    40
    Posts
    7
    • February 24, 2020 at 10:40 AM
    • #11

    Es ist kein Positionierer von Kuka. Die Firma, die die Anlage aufgebaut hat, hat zwei voneinander getrennte Antriebe in die Konfiguration gefügt.

    Ist es auch möglich die beiden in WorkVisual zusammenzufassen?

    Niklas

  • fubini
    Reactions Received
    72
    Points
    5,137
    Trophies
    2
    Posts
    918
    Location
    München
    • February 24, 2020 at 12:44 PM
    • #12

    Hallo Niklas,

    ich glaube hier herrscht noch etwas Verwirrung in den Begrifflichkeiten

    • Antrieb: In der Regel ein einzelner Motor, der eine Achse antreibt (z.B. Motor 1 des Roboters treibt Achse 1 des Roboters an)
    • Kinematik: Der Zusammenschluss einer oder mehrerer Achsen zu einer Einheit (Die 6 Achsen als Gesamtheit ergeben deinen 6-Achsroboter)

    Die oben angesprochenen Definitionen über $ET[Nummer der Kineamatik]... beschreiben gerade wie du aus mehreren Achsen eine Kinematik zusammenbaust.

    Um das ganze über WorkVisual abzudecken, musst du dir ein Katalogelement erstellen, dass Antriebsdaten und die darauf aufbauende Kinematik beschreibt. Dazu gibt es den Katalogeditor, der Bestandteil des WorkVisual Paketes ist. Ich würde empfehlen mal di Dokumentation dazu zu lesen.

    Fubini

  • niklas
    Points
    40
    Posts
    7
    • February 24, 2020 at 1:57 PM
    • #13

    Okay, jetzt wird einiges für mich verständlicher.

    Jetzt habe ich den Positionierer mit den beiden Antrieben zu einer Kinematik zusammengefügt. Es sieht jetzt so ähnlich aus wie das was du geschrieben hast, SJX, nur halt mit zwei Achsen.

    Nichtsdestotrotz müsste der Roboter den Punkt relativ auf dem Tisch halten, wenn der Positionierer bewegt wird, richtig? Das ist leider immer noch nicht der Fall.

    Niklas

  • fubini
    Reactions Received
    72
    Points
    5,137
    Trophies
    2
    Posts
    918
    Location
    München
    • February 24, 2020 at 2:14 PM
    • #14

    Dazu musst du eine Basis auf den Tisch einmessen und diese aktivieren. Du kannst wahlweise gekoppelt auf dem Dreh-Kipptisch oder ungekoppelt fahren je nachdem ob die Basis auf dem Tisch oder in der Welt liegt.

    Und hast du auch an den Eintrag in

    DECL EX_KIN $EX_KIN={ET1 #ERSYS,ET2 #EASYS,ET3 #NONE,ET4 #NONE,ET5 #NONE,ET6 #NONE} ;EXTERNE KINEMATIKEN #NONE,#EASYS,#EBSYS,#ECSYS,#EDSYS,#EESYS,#EFSYS,#ERSYS

    gedacht bei deinem Dreh-Kipptisch Element.

    Fubini

Tags

  • 1
  • 33
  • 2
  • ABB
  • ABB Roboter
  • ABS
  • base
  • constant
  • CP_PARAMS
  • Dialog
  • EX
  • EXT
  • fanuc
  • Fehler
  • FRAMES
  • INIT
  • INITIALIZED
  • INITMOV
  • IRC5
  • joint
  • KRC2
  • KRC4
  • kuka
  • new
  • NONE
  • notify
  • PATH
  • PGNO_GET
  • profinet
  • PTP_DAT
  • PTP_PARAMS
  • P_ACTIVE
  • P_FREE
  • P_RESET
  • P_STOP
  • Quit
  • Roboter
  • RobotStudio
  • Schweißen
  • Sps
  • Sync
  • T1
  • t2
  • tcp
  • Tool
  • VALUE
  • VAR
  • vel_cp
  • vel_ptp
  • Yaskawa
AD
Your browser does not support videos Automatisierung im Handwerk - ich schaffs mit KUKA
Einloggen für weniger Werbung

gesponserte Artikel

  • Gebrauchtroboter kaufen - Was ist zu beachten. Die Checkliste zum kauf von gebrauchten Robotern

    August 11, 2019 at 7:02 PM
  • Was macht ein Roboterprogrammierer genau und was verdient er?

    August 21, 2019 at 8:17 AM
  • Vernetzen, referenzieren, kollaborieren: Das B2B Portal für die Produktionsautomatisierung

    June 2, 2021 at 11:29 AM

Job Offer

  • Sie wollen Ihr Stellenangebot im Roboterforum schalten? Ab 149€

    Werner Hampel June 17, 2021 at 9:52 AM
  • Werde Roboterprogrammierer bei ROBTEC GmbH in Mainburg / Bayern

    Werner Hampel April 5, 2023 at 7:13 PM
Werbung auf Roboterseite
Roboter programmieren lernen
Banner Robotik

Tags

  • kuka
  • Linearachse
  • Workvisual
  • KR 60
  • EASYS
  • ERSYS
  • EBSYS
  • NONE
  • ECSYS
  • EDSYS
  • EESYS
  • EFSYS
  • E1
  • E2
  • E3
  • E4
  • E5
  • E6
  • TRUE

Wieviele Mitglieder waren heute eingeloggt?

Logge Dich ein, um hier zu lesen wer in den letzten 24h Online war und um weniger Werbung zu sehen.

  1. Privacy Policy
  2. Legal Notice
Powered by WoltLab Suite™ 6.0.22
Roboterforum.de - die Industrieroboter und Cobot Community in the WSC-Connect App on Google Play
Roboterforum.de - die Industrieroboter und Cobot Community in the WSC-Connect App on the App Store
Download