base de programmation KUKA

  • Auteur de la discussion seb_22
  • Date de début
S
seb_22
Apprenti
13 Déc 2010
128
  • Auteur de la discussion
  • #1
Bonjour à tous.

j'ai récupérer un bras 6 axes KUKA en parfait état avec son armoire de contrôle.
Je n'ai encore jamais utilisé de bras robotisé.
Connaissez vous des ouvrages ou des lien internet pour commencer à utiliser un robot de cette marque.
J'ai fait pas mal de C++ il y a quelques années maintenant, donc je peux "avaler" un langage de programmation mais je n'ai aucune base dans ce domaine.

Merci à vous
 
MegaHertz
MegaHertz
Compagnon
31 Août 2017
1 055
Bonjour,

Première chose : Un bon périmètre de sécurité.
Ce truc a assez de force pour t'arracher la tête et assez de vitesse pour que tu ne le voies pas arriver.
 
K
Khar-t'er
Apprenti
12 Jan 2019
134
Je regarde demain au boulot si on a pas une doc technique qui traine en PDF :wink: C'est un langage spécifique (KRL) qui n'est pas vraiment compliqué. Suivant l'usage, les trajectoires peuvent être rentrées manuellement.

Quel est le modèle du robot et de l'armoire ?
 
A
Alex31
Compagnon
31 Août 2014
2 051
12350 et 31200
bonjour

tu peux consulter ce sujet (même si tu n'y trouvera pas d'aide pour la programmation, mais ty te se,tiras moins seul)

ah, ben je suis coiffé au poteau :smt023
 
Djviper16
Djviper16
Compagnon
11 Oct 2012
1 427
Angoulême
Salut @seb_22 tu nous fais une photo de la bête ?

C'est une armoire KRC1 ?
 
S
seb_22
Apprenti
13 Déc 2010
128
  • Auteur de la discussion
  • #7
Bonjour à tous,

merci pour vos réponse.
J'ai lu le poste de Djviper16. j'aurais surement des questions à lui poser.

c'est une commande RC 30/51.

je le récupère physiquement ce WE.

Je vous mettrais des photos.
 
S
seb_22
Apprenti
13 Déc 2010
128
  • Auteur de la discussion
  • #8
voici des photos de la bête.

J'ai tout les manuels mais en allemand...:sad::sad::sad:
IMG_20200217_111027.jpg
IMG_20200217_111034.jpg


IMG_20200217_111034.jpg
 
Djviper16
Djviper16
Compagnon
11 Oct 2012
1 427
Angoulême
Super ! Première étape le fixer solidement au sol.
Et alimenter l'armoire pour remettre en charge les batteries (2x12V normalement).

Tu nous a pas dit, tu veux faire quoi avec ?
 
S
seb_22
Apprenti
13 Déc 2010
128
  • Auteur de la discussion
  • #12
Super ! Première étape le fixer solidement au sol.
Et alimenter l'armoire pour remettre en charge les batteries (2x12V normalement).

Tu nous a pas dit, tu veux faire quoi avec ?
je vais le brancher cette semaine et également le fixer bien sur. faudrait pas qu'il se mette à délirer et me courir après dans l'atelier :lol::lol::lol::lol:

Le but est de faire du chargement/déchargement sur une machine outil. c'est un robot de soudure à la base. J'espère pouvoir le reconvertir.
 
S
seb_22
Apprenti
13 Déc 2010
128
  • Auteur de la discussion
  • #13
Je vais avoir besoin de pinces pneumatiques pour mettre au bout du bras.
Avez vous des adresses pour en trouver?
 
Dernière édition:
Djviper16
Djviper16
Compagnon
11 Oct 2012
1 427
Angoulême
salut,

je me permets de t'envoyer ce message pour te demander quelques details concernant ton bras kuka.

j'ai branché le miens.
Première bonne nouvelle, tout s'allume :-D:-D:-D
première mauvaise nouvelle, tout est en allemand :sad::sad::sad:

je ne sait pas si le tiens est un français ou en anglais mais peux tu me dire si il y a un menu pour changer la langue sur le tiens?

j'ai une autre question. lorsque tu l'allume, y-a-t-il une manip à faire pour pouvoir commencer à actionner les axes en manuel? genre comme les POM sur un centre d'usinage.

Merci d'avance.

seb
Salut Seb,

Je te fais une réponse ici car ça peut être utile pour d'autres.

Nous n'avons pas la même armoire (KRC1 dans mon cas), donc pas le même KCP (Kuka Control Panel).
Mon système est sur une base VXworks avec interface sous windows95. Et toi ?

Mon interface est en français.
Pour pouvoir faire bouger le robot en manuel, il faut qu'il n'y ait aucune erreur. S'il y a des erreurs il faut les acquitter, et si on ne peut pas les acquitter c'est qu'il faut résoudre la cause de ces erreurs.
Par exemple moi j'ai dû shunter toutes les sécurités (barrières immatérielles, BAU, etc).
Ensuite, pour pouvoir le faire bouger avec un programme il faut faire la calibration de tout les axes.

Jérôme
 
Dernière édition:
E
ericquad
Nouveau
20 Fev 2010
43
Bonsoir

+1 au club kuka

projet en cours depuis pas mal de temps
reprise aux beaux jours
car plus de temps disponible (retraite en vue)

je vais suivre le sujet avec intérêt

KR150L110 kcp2 krc2
Eric


IMG_0937 [640x480].JPG
 
Djviper16
Djviper16
Compagnon
11 Oct 2012
1 427
Angoulême
Ca fait 2 jours que tout le monde me l'envoi !
 
S
seb_22
Apprenti
13 Déc 2010
128
  • Auteur de la discussion
  • #19
ericquad, c'est un sacré jouet celui là.

Djviper16, pour le systeme, je n'en ai pas encore. Confinement oblige, j'ai mis un peu de côté ce bras mais je regarde toujours les infos que je peut glaner ici et là.
Peux tu m'en dire plus sur ton systeme de pilotage?
 
E
ericquad
Nouveau
20 Fev 2010
43
Bonjour seb_22

c'est une armoire krc2
qui commande un kr150 L110
pour l'instant je n'ai fait que de la manip a partir du KCP (idem ta video)

j'ai réussi à générer un parcours simple (cercle)
1 Solidworks enregistrement en dxf
2 dxf ver cn avec dxf converteur
3 ouverture du fichier cn avec r.DK
4 production par r.DK de 2 fichiers en KRL (srs et dat) ci dessous
5 transfert sur le DD du KRC par l' intermédiaire d'une clef usb

les fichiers apparaissent sans erreur sur le KCP
je ne les ai pas encore lancé
car je suis en train de finaliser l'encrage du KR sur un socle
j’espère que cela fonctionnera:-D

je ne voudrais pas polluer le post à seb_22
n’hésitez pas à me dire si vous souhaitez en créer un nouveau

Eric


fichiers machine en KRL produit par R.DK :

cercle.dat

ACCESS RVP
&REL 1
&COMMENT Generated by RoboDK
&PARAM TEMPLATE = C:\KRC\Roboter\Template\vorgabe
&PARAM EDITMASK = *
DEFDAT CIRCLE

EXT BAS (BAS_COMMAND :IN,REAL :IN )
EXT SetTool()
EXT M_RunCode()
EXT SetRPM()

DECL E6AXIS XP1={A1 -94.35134,A2 -26.43012,A3 142.77105,A4 -180.00000,A5 26.34093,A6 85.64866}
DECL FDAT FP1={TOOL_NO 1,BASE_NO 2,IPO_FRAME #BASE,POINT2[] " ",TQ_STATE FALSE}
DECL PDAT PPDAT1={VEL 100.000,ACC 100.000,APO_DIST 1.000,APO_MODE #CPTP}
DECL E6POS XP2={X -70.711,Y -70.711,Z 15.000,A -180.000,B -0.000,C 180.000}
DECL FDAT FP2={TOOL_NO 1,BASE_NO 2,IPO_FRAME #BASE,POINT2[] " ",TQ_STATE FALSE}
DECL LDAT LCPDAT2={VEL 1.00000,ACC 100.000,APO_DIST 1.000,APO_FAC 50.0000,ORI_TYP #VAR,CIRC_TYP #BASE,JERK_FAC 50.0000}
DECL E6POS XP3={X -70.711,Y -70.711,Z 3.000,A -180.000,B -0.000,C 180.000}
DECL FDAT FP3={TOOL_NO 1,BASE_NO 2,IPO_FRAME #BASE,POINT2[] " ",TQ_STATE FALSE}
DECL LDAT LCPDAT3={VEL 1.00000,ACC 100.000,APO_DIST 1.000,APO_FAC 50.0000,ORI_TYP #VAR,CIRC_TYP #BASE,JERK_FAC 50.0000}
DECL E6POS XP4={X -70.711,Y -70.711,Z -1.500,A -180.000,B -0.000,C -180.000}
DECL FDAT FP4={TOOL_NO 1,BASE_NO 2,IPO_FRAME #BASE,POINT2[] " ",TQ_STATE FALSE}
DECL LDAT LCPDAT4={VEL 0.00250,ACC 100.000,APO_DIST 1.000,APO_FAC 50.0000,ORI_TYP #VAR,CIRC_TYP #BASE,JERK_FAC 50.0000}
DECL E6POS XP5={X -70.711,Y 70.711,Z -1.500,A -180.000,B -0.000,C -180.000}
DECL E6POS XP6={X 70.711,Y 70.711,Z -1.500,A -180.000,B -0.000,C -180.000}
DECL FDAT FP6={TOOL_NO 1,BASE_NO 2,IPO_FRAME #BASE,POINT2[] " ",TQ_STATE FALSE}
DECL LDAT LCPDAT6={VEL 0.00667,ACC 100.000,APO_DIST 1.000,APO_FAC 50.0000,ORI_TYP #VAR,CIRC_TYP #BASE,JERK_FAC 50.0000}
DECL E6POS XP7={X 70.711,Y -70.711,Z -1.500,A -180.000,B -0.000,C -180.000}
DECL E6POS XP8={X -70.711,Y -70.711,Z -1.500,A -180.000,B -0.000,C -180.000}
DECL FDAT FP8={TOOL_NO 1,BASE_NO 2,IPO_FRAME #BASE,POINT2[] " ",TQ_STATE FALSE}
DECL LDAT LCPDAT8={VEL 0.00667,ACC 100.000,APO_DIST 1.000,APO_FAC 50.0000,ORI_TYP #VAR,CIRC_TYP #BASE,JERK_FAC 50.0000}
DECL E6POS XP9={X -70.711,Y -70.711,Z -3.000,A 180.000,B -0.000,C -180.000}
DECL FDAT FP9={TOOL_NO 1,BASE_NO 2,IPO_FRAME #BASE,POINT2[] " ",TQ_STATE FALSE}
DECL LDAT LCPDAT9={VEL 0.00250,ACC 100.000,APO_DIST 1.000,APO_FAC 50.0000,ORI_TYP #VAR,CIRC_TYP #BASE,JERK_FAC 50.0000}
DECL E6POS XP10={X -70.711,Y 70.711,Z -3.000,A -180.000,B -0.000,C 180.000}
DECL E6POS XP11={X 70.711,Y 70.711,Z -3.000,A -180.000,B -0.000,C 180.000}
DECL FDAT FP11={TOOL_NO 1,BASE_NO 2,IPO_FRAME #BASE,POINT2[] " ",TQ_STATE FALSE}
DECL LDAT LCPDAT11={VEL 0.00667,ACC 100.000,APO_DIST 1.000,APO_FAC 50.0000,ORI_TYP #VAR,CIRC_TYP #BASE,JERK_FAC 50.0000}
DECL E6POS XP12={X 70.711,Y -70.711,Z -3.000,A -180.000,B -0.000,C -180.000}
DECL E6POS XP13={X -70.711,Y -70.711,Z -3.000,A 180.000,B -0.000,C -180.000}
DECL FDAT FP13={TOOL_NO 1,BASE_NO 2,IPO_FRAME #BASE,POINT2[] " ",TQ_STATE FALSE}
DECL LDAT LCPDAT13={VEL 0.00667,ACC 100.000,APO_DIST 1.000,APO_FAC 50.0000,ORI_TYP #VAR,CIRC_TYP #BASE,JERK_FAC 50.0000}
DECL E6POS XP14={X -70.711,Y -70.711,Z 3.000,A -180.000,B -0.000,C 180.000}
DECL FDAT FP14={TOOL_NO 1,BASE_NO 2,IPO_FRAME #BASE,POINT2[] " ",TQ_STATE FALSE}
DECL LDAT LCPDAT14={VEL 0.00250,ACC 100.000,APO_DIST 1.000,APO_FAC 50.0000,ORI_TYP #VAR,CIRC_TYP #BASE,JERK_FAC 50.0000}
DECL E6POS XP15={X -70.711,Y -70.711,Z 15.000,A -180.000,B -0.000,C 180.000}
DECL FDAT FP15={TOOL_NO 1,BASE_NO 2,IPO_FRAME #BASE,POINT2[] " ",TQ_STATE FALSE}
DECL LDAT LCPDAT15={VEL 1.00000,ACC 100.000,APO_DIST 1.000,APO_FAC 50.0000,ORI_TYP #VAR,CIRC_TYP #BASE,JERK_FAC 50.0000}
DECL E6POS XP16={X -0.000,Y 0.000,Z 15.000,A -180.000,B -0.000,C -180.000}
DECL FDAT FP16={TOOL_NO 1,BASE_NO 2,IPO_FRAME #BASE,POINT2[] " ",TQ_STATE FALSE}
DECL LDAT LCPDAT16={VEL 1.00000,ACC 100.000,APO_DIST 1.000,APO_FAC 50.0000,ORI_TYP #VAR,CIRC_TYP #BASE,JERK_FAC 50.0000}
DECL E6POS XP17={X -0.000,Y -0.000,Z 115.000,A -180.000,B -0.000,C 180.000}
DECL FDAT FP17={TOOL_NO 1,BASE_NO 2,IPO_FRAME #BASE,POINT2[] " ",TQ_STATE FALSE}
DECL LDAT LCPDAT17={VEL 1.00000,ACC 100.000,APO_DIST 1.000,APO_FAC 50.0000,ORI_TYP #VAR,CIRC_TYP #BASE,JERK_FAC 50.0000}

ENDDAT



cercle.srs

&ACCESS RVP
&REL 1
&PARAM TEMPLATE = C:\KRC\Roboter\Template\vorgabe
&PARAM EDITMASK = *
DEF CIRCLE ( )

;FOLD INI
BAS (#INITMOV,0 )
;ENDFOLD (INI)

;FOLD STARTPOS
$BWDSTART = FALSE
PDAT_ACT = PDEFAULT
BAS(#PTP_DAT)
FDAT_ACT = {TOOL_NO 0,BASE_NO 0,IPO_FRAME #BASE}
BAS(#FRAMES)
;ENDFOLD

;FOLD SET DEFAULT SPEED
$VEL.CP=0.2
BAS(#VEL_PTP,100)
BAS(#TOOL,0)
BAS(#BASE,0)
;ENDFOLD

$ADVANCE = 5

PTP $AXIS_ACT ; skip BCO quickly
; Program generated by RoboDK v3.8.4 for KUKA KR 150-2 on 04/07/2019 21:14:04
; Using nominal kinematics.
BASE_DATA[2] = {FRAME: X 0.000,Y 1000.000,Z 0.000,A 0.000,B 0.000,C 0.000}
TOOL_DATA[1] = {FRAME: X 0.000,Y 0.000,Z 0.000,A 0.000,B 0.000,C 0.000}
$VEL.CP = 1.00000
;FOLD PTP P1 Vel=100 % PDAT1 Tool[1] Base[2];%{PE}%R 5.5.31,%MKUKATPBASIS,%CMOVE,%VPTP,%P 1:PTP, 2:P1, 3:, 5:100, 7:PDAT1
$BWDSTART=FALSE
PDAT_ACT=PPDAT1
FDAT_ACT=FP1
BAS(#PTP_PARAMS,100)
PTP XP1 C_PTP
;ENDFOLD
;FOLD LIN P2 Vel=1.000 m/s CPDAT2 Tool[1] Base[2];%{PE}%R 5.5.0,%MKUKATPA20,%CARC_SWI,%VLIN,%P 1:LIN, 2:P2, 3:, 5:1, 7:CPDAT2
$BWDSTART=FALSE
LDAT_ACT=LCPDAT2
FDAT_ACT=FP2
BAS(#CP_PARAMS,1)
LIN XP2 C_DIS
;ENDFOLD
SetTool(1)
M_RunCode(6)
SetRPM(6000.0)
$VEL.CP = 1.00000
M_RunCode(3)
;FOLD LIN P3 Vel=1.000 m/s CPDAT3 Tool[1] Base[2];%{PE}%R 5.5.0,%MKUKATPA20,%CARC_SWI,%VLIN,%P 1:LIN, 2:P3, 3:, 5:1, 7:CPDAT3
$BWDSTART=FALSE
LDAT_ACT=LCPDAT3
FDAT_ACT=FP3
BAS(#CP_PARAMS,1)
LIN XP3 C_DIS
;ENDFOLD
$VEL.CP = 0.00250
;FOLD LIN P4 Vel=0.003 m/s CPDAT4 Tool[1] Base[2];%{PE}%R 5.5.0,%MKUKATPA20,%CARC_SWI,%VLIN,%P 1:LIN, 2:P4, 3:, 5:0, 7:CPDAT4
$BWDSTART=FALSE
LDAT_ACT=LCPDAT4
FDAT_ACT=FP4
BAS(#CP_PARAMS,0)
LIN XP4 C_DIS
;ENDFOLD
$VEL.CP = 0.00667
;FOLD CIRC P5 P6 Vel=0.007 m/s CPDAT6 Tool[1] Base[2];%{PE}%R 5.5.0,%MKUKATPA20,%CARC_SWI,%VCIRC,%P 1:CIRC, 2:P6, 3:, 5:0, 7:CPDAT6
$BWDSTART=FALSE
LDAT_ACT=LCPDAT6
FDAT_ACT=FP6
BAS(#CP_PARAMS,0)
CIRC XP5, XP6 C_DIS
;ENDFOLD
;FOLD CIRC P7 P8 Vel=0.007 m/s CPDAT8 Tool[1] Base[2];%{PE}%R 5.5.0,%MKUKATPA20,%CARC_SWI,%VCIRC,%P 1:CIRC, 2:P8, 3:, 5:0, 7:CPDAT8
$BWDSTART=FALSE
LDAT_ACT=LCPDAT8
FDAT_ACT=FP8
BAS(#CP_PARAMS,0)
CIRC XP7, XP8 C_DIS
;ENDFOLD
$VEL.CP = 0.00250
;FOLD LIN P9 Vel=0.003 m/s CPDAT9 Tool[1] Base[2];%{PE}%R 5.5.0,%MKUKATPA20,%CARC_SWI,%VLIN,%P 1:LIN, 2:P9, 3:, 5:0, 7:CPDAT9
$BWDSTART=FALSE
LDAT_ACT=LCPDAT9
FDAT_ACT=FP9
BAS(#CP_PARAMS,0)
LIN XP9 C_DIS
;ENDFOLD
$VEL.CP = 0.00667
;FOLD CIRC P10 P11 Vel=0.007 m/s CPDAT11 Tool[1] Base[2];%{PE}%R 5.5.0,%MKUKATPA20,%CARC_SWI,%VCIRC,%P 1:CIRC, 2:P11, 3:, 5:0, 7:CPDAT11
$BWDSTART=FALSE
LDAT_ACT=LCPDAT11
FDAT_ACT=FP11
BAS(#CP_PARAMS,0)
CIRC XP10, XP11 C_DIS
;ENDFOLD
;FOLD CIRC P12 P13 Vel=0.007 m/s CPDAT13 Tool[1] Base[2];%{PE}%R 5.5.0,%MKUKATPA20,%CARC_SWI,%VCIRC,%P 1:CIRC, 2:P13, 3:, 5:0, 7:CPDAT13
$BWDSTART=FALSE
LDAT_ACT=LCPDAT13
FDAT_ACT=FP13
BAS(#CP_PARAMS,0)
CIRC XP12, XP13 C_DIS
;ENDFOLD
$VEL.CP = 0.00250
;FOLD LIN P14 Vel=0.003 m/s CPDAT14 Tool[1] Base[2];%{PE}%R 5.5.0,%MKUKATPA20,%CARC_SWI,%VLIN,%P 1:LIN, 2:P14, 3:, 5:0, 7:CPDAT14
$BWDSTART=FALSE
LDAT_ACT=LCPDAT14
FDAT_ACT=FP14
BAS(#CP_PARAMS,0)
LIN XP14 C_DIS
;ENDFOLD
$VEL.CP = 1.00000
;FOLD LIN P15 Vel=1.000 m/s CPDAT15 Tool[1] Base[2];%{PE}%R 5.5.0,%MKUKATPA20,%CARC_SWI,%VLIN,%P 1:LIN, 2:P15, 3:, 5:1, 7:CPDAT15
$BWDSTART=FALSE
LDAT_ACT=LCPDAT15
FDAT_ACT=FP15
BAS(#CP_PARAMS,1)
LIN XP15 C_DIS
;ENDFOLD
M_RunCode(9)
;FOLD LIN P16 Vel=1.000 m/s CPDAT16 Tool[1] Base[2];%{PE}%R 5.5.0,%MKUKATPA20,%CARC_SWI,%VLIN,%P 1:LIN, 2:P16, 3:, 5:1, 7:CPDAT16
$BWDSTART=FALSE
LDAT_ACT=LCPDAT16
FDAT_ACT=FP16
BAS(#CP_PARAMS,1)
LIN XP16 C_DIS
;ENDFOLD
;FOLD LIN P17 Vel=1.000 m/s CPDAT17 Tool[1] Base[2];%{PE}%R 5.5.0,%MKUKATPA20,%CARC_SWI,%VLIN,%P 1:LIN, 2:P17, 3:, 5:1, 7:CPDAT17
$BWDSTART=FALSE
LDAT_ACT=LCPDAT17
FDAT_ACT=FP17
BAS(#CP_PARAMS,1)
LIN XP17 C_DIS
;ENDFOLD
M_RunCode(2)
END
 
Dernière édition:
S
seb_22
Apprenti
13 Déc 2010
128
  • Auteur de la discussion
  • #22
pas pour le moment malheureusement.
Il me faut absolument un pc avec un windows 95 pour cela.
J'en ai trouvé un mais pas le clavier qui va avec... peut être ce WE. j'attends une réponse.
 
E
ericquad
Nouveau
20 Fev 2010
43
Bonjour Djviper
j avance à petit pas
j'ai finalisé le socle
il me manque à couler la dalle
j’espère le faire revivre à la fin de l'été
Eric
 
Haut