Hi
I usually use kdiff3 (http://kdiff3.sourceforge.net/). It is free and allows comparing pretty much everything on file basis after extracting the archives.
Fubini
Hi
I usually use kdiff3 (http://kdiff3.sourceforge.net/). It is free and allows comparing pretty much everything on file basis after extracting the archives.
Fubini
Hi bmike,
looking into bas.src reveals in the older versions (V4.1.7) syntax was:
$BASE=EK(EX_AX_DATA[EX_AX_NO].ROOT,EX_AX_DATA[EX_AX_NO].EX_KIN,EX_AX_DATA[EX_AX_NO].OFFSET)
so it is pretty much the same as in newer versions:
$BASE=EK(MACHINE_DEF[MACH_IDX].ROOT,MACHINE_DEF[MACH_IDX].MECH_TYPE,BASE_DATA[BASE_NO])
So basically the offset is not stored in BASE_DATA[17...] but in EX_AX_DATA[EX_AX_NO].OFFSET
Fubini
This Version works:
DEF TEST( )
;FOLD INI;%{PE}%V3.2.0,%MKUKATPBASIS,%CINIT,%VCOMMON,%P
;FOLD BAS INI;%{E}%V3.2.0,%MKUKATPBASIS,%CINIT,%VINIT,%P
GLOBAL INTERRUPT DECL 3 WHEN $STOPMESS==TRUE DO IR_STOPM ( )
INTERRUPT ON 3
BAS (#INITMOV,0 )
;ENDFOLD (BAS INI)
;ENDFOLD (INI)
BAS(#VEL_PTP, 10)
BAS(#ACC_PTP, 10)
PTP $POS_ACT
$APO.CDIS=0.1
$APO.CORI=1
$APO.CVEL=100
$APO.CPTP=50
BAS(#VEL_PTP, 75)
$IPO_MODE=#BASE
$TOOL=TOOL_DATA[1]
$VEL.CP=0.083
EX_BASE(17,2)
LIN {X 860,Y 0, Z 360.25, A 93.92, B 0, C 0, E1 -137.71} C_VEL
LIN {X 860,Y 0, Z 250, A 93.92, B 0, C 0, E1 -137.71} C_VEL
$VEL.CP=0.167
LIN {X 860,Y 0, Z 250, A 93.92, B 0, C 0, E1 -137.71} C_VEL
LIN {X 860,Y -7.93, Z 249.87, A 93.92, B -1.81, C -0.12, E1 -139.53} C_VEL
LIN {X 860,Y -15.86, Z 249.5, A 93.93, B -3.63, C -0.25, E1 -141.34} C_VEL
LIN {X 860,Y -23.76, Z 248.87, A 93.94, B -5.44, C -0.37, E1 -143.16} C_VEL
LIN {X 860,Y -31.65, Z 247.99, A 93.95, B -7.26, C -0.5, E1 -144.98} C_VEL
END
DEF EX_BASE(BASE_NO :IN,MACH_IDX :IN)
INT BASE_NO , MACH_IDX
MY_FRAME = BASE_DATA[BASE_NO]:{x 0.0,y 0.0, z 0.0, a 0.0, b -90.0, c 0.0}
$BASE=EK(MACHINE_DEF[MACH_IDX].ROOT, MACHINE_DEF[MACH_IDX].MECH_TYPE,BASE_DATA[BASE_NO]:{x 0.0,y 0.0, z 0.0, a 0.0, b -90.0, c 0.0})
$ACT_BASE=BASE_NO
END
Please note that I will not be able to do your work. Read a about expert programming and especially krl-sytax. In your case the error messages pretty cleary stated the problems: in line
$BASE=EK(MACHINE_DEF[MACH_IDX].ROOT, MACHINE_DEF[MACH_IDX].MECH_TYPE,BASE_DATA[BASE_NO]:{x 0.0,y 0.0, z 0.0, a 0.0, b -90.0, c 0.0})
you wrote "c 0,0)" instead of "c 0.0}"
In my previous correction i only corrected your wrong subroutine calls and did not check for syntax on a real controller.
Fubini
Probably you never did expert programming before. Please read the System Integrators Manual for more on this stuff. Just a quick hack, that probably get you furthrt but will not yet solve all your Problems:
&ACCESS RVE
DEF DEGRO1( )
;FOLD INI;%{PE}%V3.2.0,%MKUKATPBASIS,%CINIT,%VCOMMON,%P
;FOLD BAS INI;%{E}%V3.2.0,%MKUKATPBASIS,%CINIT,%VINIT,%P
GLOBAL INTERRUPT DECL 3 WHEN $STOPMESS==TRUE DO IR_STOPM ( )
INTERRUPT ON 3
BAS (#INITMOV,0 )
;ENDFOLD (BAS INI)
;ENDFOLD (INI)
BAS(#VEL_PTP, 10)
BAS(#ACC_PTP, 10)
PTP $POS_ACT
$APO.CDIS=0.1
$APO.CORI=1
$APO.CVEL=100
$APO.CPTP=50
BAS(#VEL_PTP, 75)
$IPO_MODE=#BASE
$TOOL=TOOL_DATA[1]
$VEL.CP=0.083
EX_BASE(17,2)
LIN {X 860,Y 0, Z 360.25, A 93.92, B 0, C 0, E1 -137.71} C_VEL
LIN {X 860,Y 0, Z 250, A 93.92, B 0, C 0, E1 -137.71} C_VEL
$VEL.CP=0.167
LIN {X 860,Y 0, Z 250, A 93.92, B 0, C 0, E1 -137.71} C_VEL
LIN {X 860,Y -7.93, Z 249.87, A 93.92, B -1.81, C -0.12, E1 -139.53} C_VEL
LIN {X 860,Y -15.86, Z 249.5, A 93.93, B -3.63, C -0.25, E1 -141.34} C_VEL
LIN {X 860,Y -23.76, Z 248.87, A 93.94, B -5.44, C -0.37, E1 -143.16} C_VEL
LIN {X 860,Y -31.65, Z 247.99, A 93.95, B -7.26, C -0.5, E1 -144.98} C_VEL
...
END
DEF EX_BASE(BASE_NO :IN,MACH_IDX :IN)
INT BASE_NO , MACH_IDX
$BASE=EK(MACHINE_DEF[MACH_IDX].ROOT, MACHINE_DEF[MACH_IDX].MECH_TYPE,BASE_DATA[BASE_NO]:{x 0.0,y 0.0, z 0.0, a 0.0, b -90.0, c 0,0))
$ACT_BASE=BASE_NO
END
Report to moderator Logged
Does your code read like in your previous post:
DEF EX_BASE(17,2)
INT 17 , 2
...
END
Then you should modify it to
DEF EX_BASE (BASE_NO :IN , MACH_IDX : IN)
INT BASE_NO , MACH_IDX
...
END
"wrist ptp" is Setting $ORI_TYPE = #JOINT.
Hi,
looks ok for me. Of course I can not state wether you external kinematic set up is don correct. It is always easier to just check it out. Set the TCP close to your external axis and activate your base. Then cartesian jog the external axis. The Robot should stay at the same Position in relation to your external axis base (visually and $pos_act stands still).
Fubini
Ticktack method definetly works, so what exactly is not working. Probably you just did not deactivate the dropping back to user Level after 300 seconds or .... Just use Forum search with keyword Authentication.config to find many further examples.
Fubini
Just take a look at method
DEF EX_BASE (BASE_NO :IN , MACH_IDX : IN)
of bas.src. It pretty much shows how the $config.dat values are used. Using this information and my prevoius post you would be able to use a e.g. call
EX_BASE(13,5)
call in your programs to activate geometric coupling for base 13 and machine 5 according to you $config.dat.
Fubini
Hi,
see https://www.robot-forum.com/robotforum/kuk…50461/#msg50461
and study what bas.src does with the EK command.
By the way asigning $BASE=base_data[17] never would work, but external kinematic bases were stored in base_data[17 ...]. Bas.src then evaluated the index and applied the corresponding EK command.
Fubini
Hi,
you need to set your axis to endless using $AXIS_TYPE[6] = 5. If the axis is not endless (e.g. $AXIS_TYPE[6]=3) +-358° are the maximal values for any robot, because with the turn you can only separate two times 360° to be unique. Endless axes always run shortest path so no turn is used.
Fubini
Hi,
as I was looking at the controllers source code to study your problem I noticed a recent change because of problems sounding similar to yours. Hence looking at the internal KUKA error database I found ticket number CRDB63679. That ticket is closed for V8.3.19. Of course I can not give official KUKA statements here, but referring to this number probably will get you help.
Fubini
Hi,
just found out there was an issue with this monitoring function. It should be fixed in V8.3.19. So maybe talking to your Kuka representative and getting you a newer V8.3 should help.
Fubini
Hi,
in theory a floor robot can be used on the ceiling only if
[list type=decimal]
But in any case I would talk to your local KUKA representive for a official ok.
Fubini
Hi,
and probably in your case b is Close to 90°? Hence what you are seeing is the so called "euler singularity" (or the "gimbal lock"). This has been discussed many times. Just use Forum or Google search with keywords "euler singularity" or "gimbal lock".
Fubini
Hi,
there are no absolute values because they are defined by the robots dynamic model, see https://www.robot-forum.com/robotforum/kuk…70851/#msg70851
Fubini
Hi,
this message belongs to the warm up Routine of the robots (see $WARMUP_RED_VEL in R1/$machine.dat). If the machine is cold and this feature is activated for a configurable time span the allowed torques are reduced. Whenever this torque limitation is in effect you should see this message.
Fubini