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 Handwerk automatisieren - ich schaffs mit KUKA
besuche unseren Partner
Roboterprogrammierer
Online Roboterschulung
Werbung schalten Roboter
Advertise in Robotics
Der Roboterkanal
Deutscher Robotikverband
Werben in Robotik
Werben für Robotik

Startpunkt verschieben

  • Holztec-leitner
  • February 15, 2024 at 6:13 PM
  • Thread is Resolved
  • Holztec-leitner
    Reactions Received
    3
    Points
    413
    Trophies
    2
    Posts
    73
    • February 15, 2024 at 6:13 PM
    • #1

    Servus zusammen,

    ich verzweifle langsam. Habe seit ein paar Monaten einen KRC4.

    Habe auch ein Programm geschrieben, wo der Roboter ein Becken ausfräst. Da der auszufräsende Baustamm nicht immer gleich ist, ist mein Plan, den Startpunkt XStart über Touch Up einen neuen Startpunkt abzuspeichern. Danach wäre mein Wunsch, dass sich alle anderen Punkte ebenfalls verschieben... Ist das irgendwie möglich??? Ich kann zwar alles markieren und über World verschieben, aber ist auch immer ein Aufwand. Gibt es irgendwie die Möglichkeit den Startpunkt neu abzuspeichern, alle anderen Punkte verschieben sich ebenfalls und fertig ?

    Vielen Dank !!!

  • Schritt für Schritt zum Roboterprofi!
  • woodys
    Reactions Received
    35
    Points
    3,175
    Trophies
    8
    Posts
    589
    • February 15, 2024 at 7:29 PM
    • #2

    Hallo

    Was ist denn mit dem Vorschlag von Herrmann?

    Irgendwas davon schon umgesetzt?

    Zum Punkte verschieben gibt es viele Möglichkeiten….

    Baseverschiebung….

    Punktseparator….

    Geometrische Operator….

  • funnougat
    Reactions Received
    14
    Points
    864
    Posts
    169
    • February 16, 2024 at 7:08 AM
    • #3
    Code
    DEF  MAIN ( )
    DECL FRAME OFFSET_X_Y
    DECL REAL Beckenlaenge,Beckenbreite
    
    ;FOLD INI;%{PE}
      ;FOLD BASISTECH INI
        GLOBAL INTERRUPT DECL 3 WHEN $STOPMESS==TRUE DO IR_STOPM ( )
        INTERRUPT ON 3 
        BAS (#INITMOV,0 )
      ;ENDFOLD (BASISTECH INI)
      ;FOLD USER INI
        ;Make your modifications here
    
      ;ENDFOLD (USER INI)
    ;ENDFOLD (INI)
    
    BAS(#BASE,1)
    BAS(TOOL,1)
    ;Hier Teachen
    ;FOLD TEACHEN
    IF FALSE THEN
    BAS(#BASE,1)
    BAS(TOOL,1)
    HALT
    LIN StartPos
    ENDIF
    ;ENDFOLD
    
    Beckenlaenge = 500
    Beckenbreite = 250
    OFFSET_X_Y = $NULLFRAME
    OFFSET_X_Y.X = Beckenlaenge
    
    ; Geschwindigkeit festlegen
    BAS(#VEL_PTP,50) ;PTP SPEED
    BAS(#VEL_CP,2.0) ;LIN SPEED
    PTP {X 0,Y 0,Z 500,A 0,B 0,C 0}:StartPos
    
    LIN StartPos
    
    LIN OFFSET_X_Y:StartPos
    
    OFFSET_X_Y.Y = Beckenbreite
    
    LIN OFFSET_X_Y:StartPos
    
    OFFSET_X_Y.X = 0
    
    LIN OFFSET_X_Y:StartPos
    
    OFFSET_X_Y = $NULLFRAME
    
    LIN OFFSET_X_Y:StartPos
    
    LIN {X 0,Y 0,Z 500,A 0,B 0,C 0}:StartPos
    
    END
    Display More
    Code
    DEFDAT MAIN
    ;FOLD EXTERNAL DECLARATIONS;%{PE}%MKUKATPBASIS,%CEXT,%VCOMMON,%P
    ;FOLD BASISTECH EXT;%{PE}%MKUKATPBASIS,%CEXT,%VEXT,%P
    EXT  BAS (BAS_COMMAND  :IN,REAL  :IN )
    ;ENDFOLD (BASISTECH EXT)
    ;FOLD USER EXT;%{E}%MKUKATPUSER,%CEXT,%VEXT,%P
    ;Make your modifications here
    
    ;ENDFOLD (USER EXT)
    ;ENDFOLD (EXTERNAL DECLARATIONS)
    
    DECL E6POS StartPos={X 0.0,Y 0.0,Z 0.0,A 0.0,B 0.0,C 0.0,S 0,T 0}
    
    ENDDAT
    Display More

    So vieleicht?

  • Holztec-leitner
    Reactions Received
    3
    Points
    413
    Trophies
    2
    Posts
    73
    • February 16, 2024 at 7:35 AM
    • #4

    Guten Morgen,

    Vielen Dank !!!

    wo soll ich den Code einfügen ? Im dat Programm ? Oder im $configdat Programm ? Oder einfach über dem normalen Fräsprogramm? Du hast mir ja 2 Codes geschrieben... wo muss welcher Code hinein ?

    Muss ich dann auch noch eine Variable konfigurieren, oder reicht es einfach nur den Code zu schreiben ?

  • funnougat
    Reactions Received
    14
    Points
    864
    Posts
    169
    • February 16, 2024 at 9:06 AM
    • #5

    Der 1 code ist das eigentliche Programm also SRC und der 2 code ist der DAT file.

  • funnougat
    Reactions Received
    14
    Points
    864
    Posts
    169
    • February 16, 2024 at 9:08 AM
    • #6

    Ich weiß auch nicht ob auf deinem Robby ExpertTech vorhanden ist eventuell kannst du dann "startpos" garnicht teachen.

  • Holztec-leitner
    Reactions Received
    3
    Points
    413
    Trophies
    2
    Posts
    73
    • February 16, 2024 at 11:00 AM
    • #7

    Habs jetzt mal so eingefügt, zeigt aber viele Fehlermeldungen an

    DEFDAT Becken1150x190x190_Rund

    EXT BAS (BAS_COMMAND :IN,REAL :IN )

    ;FOLD BASISTECH EXT;%{PE}%MKUKATPBASIS,%CEXT%VEXT,%P

    EXT BAS (BAS_COMMAND :IN,REAL :IN )

    ;ENDFOLD (BASISTECH EXT)

    ;FOLD USER EXT;%{E}MKUKATPUSER,%CEXT,%VEXT,%P

    ;Make your modifications here

    ;ENDFOLD (USER EXT)

    ;FOLD EXTERNAL DECLARATIONS;%{PE}%MKUKATPBASIS,%VCOMMON,%P

    ;ENDFOLD (EXTERNAL DECLARATIONS)

    ;FOLD EXTERNAL DECLARATIONS;%{PE}%MKUKATPBASIS,%CEXT,%VCOMMON,%P

    ;FOLD BASISTECH EXT;%{PE}%MKUKATPBASIS,%CEXT,%VEXT,%P

    EXT BAS (BAS_COMMAND :IN,REAL :IN )

    DECL INT SUCCESS

    ;ENDFOLD (BASISTECH EXT)

    ;FOLD USER EXT;%{E}%MKUKATPUSER,%CEXT,%VEXT,%P

    ;Make your modifications here

    ;ENDFOLD (USER EXT)

    ;ENDFOLD (EXTERNAL DECLARATIONS)

    DECL BASIS_SUGG_T LAST_BASIS={POINT1[] "P0 ",POINT2[] "P0 ",CP_PARAMS[] "CPDAT19 ",PTP_PARAMS[] "PDAT0 ",CONT[] " ",CP_VEL[] "2 ",PTP_VEL[] "100 ",SYNC_PARAMS[] "SYNCDAT ",SPL_NAME[] "S1 ",A_PARAMS[] "ADAT2 "}

    DECL E6POS StartPos={X 0.0,Y 0.0,Z 0.0,A 0.0,B 0.0,C 0.0,S 0.0,S 0,T 0,

    ENDDAT

    DECL ADAT CSADAT1={CondStopPara {CondStopPath 0,CondStopOnStart TRUE,StopCondition[] " "}}

    DECL ADAT CSADAT2={CondStopPara {CondStopPath 0,CondStopOnStart FALSE,StopCondition[] " "}}

    DECL ADAT CSADAT3={CondStopPara {CondStopPath 0,CondStopOnStart FALSE,StopCondition[] " "}}

    DECL ADAT CVADAT3={ConstVelPara {ConstVelTyp 1,ConstVelPath 0,ConstVelOnStart TRUE}}

    DECL ADAT CSADAT4={CondStopPara {CondStopPath 0,CondStopOnStart FALSE,StopCondition[] " "}}

    DECL ADAT CVADAT4={ConstVelPara {ConstVelTyp 1,ConstVelPath 0,ConstVelOnStart TRUE}}

    DECL ADAT CSADAT5={CondStopPara {CondStopPath 0,CondStopOnStart FALSE,StopCondition[] " "}}

    DECL ADAT CVADAT5={ConstVelPara {ConstVelTyp 1,ConstVelPath 0,ConstVelOnStart TRUE}}

    DECL ADAT CSADAT6={CondStopPara {CondStopPath 0,CondStopOnStart FALSE,StopCondition[] " "}}

    DECL ADAT CVADAT6={ConstVelPara {ConstVelTyp 1,ConstVelPath 0,ConstVelOnStart TRUE}}

    ENDDAT

  • Holztec-leitner
    Reactions Received
    3
    Points
    413
    Trophies
    2
    Posts
    73
    • February 16, 2024 at 11:01 AM
    • #8

    DEF Becken1150x190x190_Rund( )

    DECL FRAME OFFSET_X_Y

    DECL REAL Beckenlaenge,Beckenbreite

    ;FOLD INI;%{PE}

    ;FOLD BASISTECH INI

    GLOBAL INTERRUPT DECL 3 WHEN $STOPMESS==TRUE DO IR_STOPM ()

    INTERRUPT ON 3

    BAS (#INITMOV,0 )

    ;ENDFOLD (BASISTECH INI)

    ;ENDFOLD (BASISTECH INI)

    ;FOLD USER INI

    ;Make your modifications here

    ;ENDFOLD (USER INI)

    ;ENDFOLD (INI)

    BAS(#BASE,1)

    BAS(TOOL,1)

    ;Hier Teachen

    ;FOLD TEACHEN

    IF FALSE THEN

    BAS(#BASE,1)

    BAS(TOOL,1)

    HALT

    LIN StartPos

    ENDIF

    ;ENDFOLD

    Beckenlaenge = 500

    Beckenbreite =250

    OFFSET_X_Y = $NULLFRAME

    OFFSET_X_Y.X = Beckenlaenge

    ; Geschwindigkeit festlegen

    BAS(#VEL_PTP,50) ;PTP SPEED

    BAS(#VEL_CP,2.0) ;LIN SPEED

    PTP {X 0,Y 0,Z 500,A 0,B 0,C 0}:StartPos

    LIN StartPos

    LIN OFFSET_X_Y:StartPos

    OFFSET_X_Y.Y = Beckenbreite

    LIN OFFSET_X_Y:StartPos

    OFFSET_X_Y = $NULLFRAME

    LIN OFFSET_X_Y:StartPos

    LIN {X 0,Y 0,Z 500,A 0,B 0,C 0}:Startpos

    END

  • Holztec-leitner
    Reactions Received
    3
    Points
    413
    Trophies
    2
    Posts
    73
    • February 16, 2024 at 11:03 AM
    • #9

    .

    Images

    • IMG_6413.jpg
      • 258.01 kB
      • 1,600 × 1,200
      • 14
  • Holztec-leitner
    Reactions Received
    3
    Points
    413
    Trophies
    2
    Posts
    73
    • February 16, 2024 at 11:25 AM
    • #10

    Habe deinen Code jetzt 1:1 so reinkopiert, und folgendes wird angezeigt

    Images

    • IMG_6414.jpg
      • 277.89 kB
      • 1,200 × 1,600
      • 13
  • fubini
    Reactions Received
    73
    Points
    4,728
    Trophies
    2
    Posts
    924
    Location
    München
    • February 16, 2024 at 11:33 AM
    • #11

    bas(#tool, 1) statt bas(tool,1).

    Fubini

  • Holztec-leitner
    Reactions Received
    3
    Points
    413
    Trophies
    2
    Posts
    73
    • February 16, 2024 at 11:49 AM
    • #12

    Danke Fubini,

    Programm lässt sich jetzt anwählen. Jetzt müsste ich nur noch wissen, wie und ich die StartPos teache :)

  • Programmiersklave
    Reactions Received
    104
    Points
    6,299
    Posts
    1,203
    About Me

    neuerdings freigelassen

    Location
    märk. Sauerland
    Occupation
    Roboter- und SPS-Programmierer
    • February 16, 2024 at 11:59 AM
    • #13

    Wir hatten ja damals schon mal drüber gesprochen... eines der Probleme sind Deine fehlenden Kenntnisse.

    Die allersimpelste Möglichkeit, Dein Problem zu lösen, wäre, dass Du Dein Base - bzw. das Base, was Du als Ausgangswert Deiner weiteren Baseberechnung nimmst, einfach mit dem Tool teachst. Das machst Du in einem völlig unabhängigen Programm, Du legst EINEN Punkt in Welt an ($NULLFRAME), und teachst den mit Deinem Fräser ("ankratzen", soweit ich mich erinnere, hast Du CNC-Kenntnisse). Das bedingt natürlich, dass der Fräser vernünftig eingemessen ist, vermutlich wäre es bei Deiner Situation am besten, dass Z in den Fräser hineinzeigt und X und Y so liegen, wie es nachher zum Becken passt.

    Also: mit diesem Tool in Welt(!) den Punkt "nullpunkt" (Datentyp "FRAME", weil BASE auch ein Frame ist) teachen, dabei peinlich darauf achten, wo er sein soll ("in der Mitte" oder "linke vordere Ecke", je nachdem, wie Dein Programm geteacht ist), und dann nach dem Teachen die folgenden Zeilen abfahren:

    Code
    BASE_DATA[1] = xnullpunkt

    Jetzt kommt es darauf an, wie Du die Winkel festlegen willst. Wenn Du sagst, ich teache das extrem präzise, dann reicht es so. Sagst Du aber, neenee, X und Y-Richtung muss immer dieselbe sein wie in Welt, wie bei CNC, dann musst Du das wieder angleichen:

    Code
    BASE_DATA[1].a=0 ; A dreht sich um Z (Welt), aber Du willst keine Drehung
    BASE_DATA[1].b=0 ; B dreht sich um das nun neue Y, aber...
    BASE_DATA[1].c=0 ; C dreht sich um das nun neue X, aber...

    Wäre sogar möglich, dass Du sagst: X-Richtung muss immer beibehalten werden, aber wenn der Stamm um die Längsachse verdreht liegt, dann will ich schräg fräsen - dann lässt Du in Obigem die letzte Zeile weg und bist fein (sofern der Stamm in X-Richtung liegt).

    DANACH steht in BASE_DATA[1] exakt die Stelle, die Du angekratzt hast, und das ANDERE Programm kann in diesem Koordinatensystem fahren bzw. Du kannst BASE_DATA[1] als Ausgangspunkt Deiner Berechnung verwenden. Du kannst dieses Base auch anwählen und darin teachen (das ist das normale Verfahren).

    Wenn es bisher in World geteacht war, hast Du natürlich jetzt das Problem, dass Du es neu machen musst.

    Und wenn Dein Frästool (TOOL_DATA[...]) nicht eingemessen war, dann geht das im Grunde gar nicht vernünftig.

    Wenn Deine Vorrichtung (also das, wo Du das Rohteil reinlegst) gegenüber WORLD schon verdreht liegt, dann musst Du diese Verdrehung drunterlegen, das ist auch kein Problem, muss aber nicht unbedingt hier schon erklärt werden.

    Und eigentlich ist all das Quark, weil:

    exakt dafür hat man die Bases erfunden und sogar eine Vermessung im System mitgeliefert. Nur teacht Du dafür nicht EINEN Punkt, sondern einen PUNKT, eine RICHTUNG und eine EBENE. Dreimal Teachen, neues BASE, einfacher geht es kaum. Entspräche also bei Deiner (vermuteten) Anordnung:

    1.) einmal "ankratzen", speichern.

    2.) einmal wild irgendeine beliebige Strecke manuell in X fahren, speichern

    3.) von da aus einmal wild irgendeine beliebige Strecke manuell in Y fahren, speichern

    Speichern, übernehmen bestätigen, fertig.

    Automatisierung mit dem geflügelten Walross aus dem Sauerland

  • Holztec-leitner
    Reactions Received
    3
    Points
    413
    Trophies
    2
    Posts
    73
    • February 16, 2024 at 11:59 AM
    • #14

    Wenn ich zwischen den beiden PTP Home nun eine Lin Bewegung mit dem Punktnamen Start teache,

    verschieben sich leider die anderen Punkte nicht. Die Variable XStart findet er ja auch...

    Images

    • IMG_6416.jpg
      • 292.18 kB
      • 1,200 × 1,600
      • 3
    • IMG_6415.jpg
      • 342.31 kB
      • 1,200 × 1,600
      • 5
  • Holztec-leitner
    Reactions Received
    3
    Points
    413
    Trophies
    2
    Posts
    73
    • February 16, 2024 at 12:02 PM
    • #15

    Danke Programmiersklave,

    ich probiers mal... Der Stamm liegt in einer Vorrichtung, die so ausgerichtet wurde, dass diese Paralell zur Achse vom Robter steht... Da habe ich schon aufgepasst :)

  • Holztec-leitner
    Reactions Received
    3
    Points
    413
    Trophies
    2
    Posts
    73
    • February 16, 2024 at 12:25 PM
    • #16

    Hallo Programmiersklave,

    Könntest du mir nur noch sagen, wie man den Punkt Nullpunkt teacht. Ich habe folgendes so ins Programm reingeschrieben...

    Images

    • IMG_6417.jpg
      • 213.2 kB
      • 1,600 × 1,200
      • 11
  • Holztec-leitner
    Reactions Received
    3
    Points
    413
    Trophies
    2
    Posts
    73
    • February 16, 2024 at 12:41 PM
    • #17

    Ich hab das ja auch mit der Base kapiert... Wenn ich mein Becken programmiert habe, köännte ich auch einfach die Base verschieben... aber dann muss ich jedesmal alle Punkte markieren und dann kartetisch Base verschieben... ? Geht das nicht einfacher ?

  • Hermann
    Reactions Received
    168
    Points
    12,178
    Trophies
    8
    Posts
    2,380
    Location
    Baden-Württemberg
    • February 16, 2024 at 12:49 PM
    • #18

    Wenn die Punkte im Base geteacht sind, dann werden mit dem Verschieben der Base quasi alle Punkte automatisch um genau diesen Versatz verschoben. Das ist ja der Witz der Basis. Alle Punkte beziehen sich auf die Basis, Verschieben der Basis sorgt dafür dass die Punkte relativ zur Welt verschoben sind.

    Dieses Markieren und Verschieben der Punkte musst du nur machen, weil die Punkte nicht in dem Base geteacht sind, sondern in irgend einem anderen, das nicht verschoben wird.

  • Programmiersklave
    Reactions Received
    104
    Points
    6,299
    Posts
    1,203
    About Me

    neuerdings freigelassen

    Location
    märk. Sauerland
    Occupation
    Roboter- und SPS-Programmierer
    • February 16, 2024 at 12:54 PM
    • #19
    Quote from Holztec-leitner

    Ich hab das ja auch mit der Base kapiert... Wenn ich mein Becken programmiert habe, köännte ich auch einfach die Base verschieben... aber dann muss ich jedesmal alle Punkte markieren und dann kartetisch Base verschieben... ? Geht das nicht einfacher ?

    Die Punktdaten (was in Xp... drinsteht) beziehen sich auf das BASE-Koordinatensystem. Wenn die Punkte in BASE_DATA[1] programmiert sind, dann verschieben sich alle gleichzeitig, wenn Du BASE_DATA[1] änderst.

    $BASE ist modal, das heisst: entweder, Du benutzt die klassische Teacherei, dann steht (versteckt) bei jedem Punkt irgendwo $BASE=BASE_DATA[1]. Oder Du hast es Expertenmäßig von Hand programmiert, dann steht das irgendwo einmal obendrüber und gilt solange, bis was anderes kommt.

    Die andere Frage: touchUp, unten in der Menüleiste...

    Automatisierung mit dem geflügelten Walross aus dem Sauerland

  • Holztec-leitner
    Reactions Received
    3
    Points
    413
    Trophies
    2
    Posts
    73
    • February 16, 2024 at 1:20 PM
    • #20

    Icvh habs gerade probiert, aber es funktioniert nicht, wenn ich nicht alles Punkte markiere...

    P1 und P2 sind in der selben Base1

    wenn ich nun den P1 markiere und kartetisch die Base verschiebe, verschiebt sich nur dieser Punkt aber alle anderen bleiben gleich...

Tags

  • 1
  • 33
  • 2
  • ABB
  • ABB Roboter
  • ABS
  • base
  • constant
  • CP_PARAMS
  • Dialog
  • EX
  • 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
  • YRC1000
AD
Your browser does not support videos autonome mobile Roboter von 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

Similar Threads

  • Individuelle Startposition setzen.

    • Holztec-leitner
    • February 9, 2024 at 6:51 AM
    • KUKA Roboter

Tags

  • kuka
  • Tool
  • base
  • vel_cp
  • vel_ptp
  • INITMOV

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