Ich habe mir für den Kuka KR30L16 mit KR C2 Steuerung ein paar Unterprogramme geschrieben, um Bewegungen in der XY-Hauptebene schneller programmieren zu können. Sie arbeiten jeweils mit LIN_REL oder CIRC_REL.
Mein Problem bezieht sich nun auf folgenden Programmausschnitt.
m_hoch fährt den Robi in Z-Achse hoch und mit minus runter.
m_dreh_y dreht um die Y-Achse.
m_vor fährt den Robi entlang der X-Achse.
Das CHAR als zweiter Parameter dient in einer Switch-Anweisung jeweils als Parameter für den Überschleifmodus und der letzte Parameter ist für den Überschleifweg etc. gedacht.
Ausgerichtet wird das Tool (Schweißpistole) vorher so, dass sie etwa 60mm über der Schweißbahn senkrecht nach unten steht. Um mein Unterprogramm m_dreh_y zu testen, wollte ich nun den Robi runterfahren lassen und die Schweißpistole im 30° Winkel nach vorne "stechen" lassen --> Stechendes Schweißen...
Habe verschiedene Überschleifmodi gewählt, hätte es gerne so, dass der Robi die Schweißpistole bereits auf dem Weg nach "unten" dreht, daher Überschleifen mit C_DIS 50 oder eben C_VEL 100, aber der Bewegungssatz in m_dreh_y wird erst durchgeführt, wenn m_hoch abgeschlossen ist...
Zwischen m_hoch und m_vor klappt das Überschleifen prima, aber mit der Umorientierung von m_dreh_y klappts nicht wirklich. Habt ihr da vielleicht ne Idee?
Hauptprogramm:
...
m_hoch(-50,"v",100)
m_dreh_y(-30,"o",5)
m_vor(1000,"n",0)
...
;FOLD m_hoch
GLOBAL DEF m_hoch(height:IN,cont:IN,value:IN)
REAL height,value
CHAR cont
FRAME ZP
ZP=$NULLFRAME
ZP.Z=height
SWITCH cont
CASE "d","D"
$APO.CDIS=value
LIN_REL ZP C_DIS
CASE "v","V"
$APO.CVEL=value
LIN_REL ZP C_VEL
CASE "o","O"
$APO.CORI=value
LIN_REL ZP C_ORI
DEFAULT
LIN_REL ZP
ENDSWITCH
END
;ENDFOLD
;FOLD m_dreh_y
GLOBAL DEF m_dreh_y(winkel:IN,cont:IN,value:IN)
REAL winkel, value
CHAR cont
FRAME ZP
ZP=$NULLFRAME
ZP.B=winkel
SWITCH cont
CASE "d","D"
$APO.CDIS=value
LIN_REL ZP C_DIS
CASE "v","V"
$APO.CVEL=value
LIN_REL ZP C_VEL
CASE "o","O"
$APO.CORI=value
LIN_REL ZP C_ORI
DEFAULT
LIN_REL ZP
ENDSWITCH
END
;ENDFOLD
;FOLD m_vor
GLOBAL DEF m_vor(length:IN,cont:IN,value:IN)
REAL length, value
CHAR cont
FRAME ZP
ZP=$NULLFRAME
ZP.X=length
SWITCH cont
CASE "d","D"
$APO.CDIS=value
LIN_REL ZP C_DIS
CASE "v","V"
$APO.CVEL=value
LIN_REL ZP C_VEL
CASE "o","O"
$APO.CORI=value
LIN_REL ZP C_ORI
DEFAULT
LIN_REL ZP
ENDSWITCH
END
;ENDFOLD