nx cam robotic machining beta - community.plm.automation ...€¦ · web viewnx cam kuka-krl...

23
NX CAM KUKA-KRL Post-Processor User Manual May, 2018 1.Installation To install the KUKA_KRL post processor: 1) Run the post processor setup and select a destination folder such as kits\mach\resource\library\machine\ installed_machines\<MachineName>\postprocessor\KUKA_KRL. 2) For a new installation: a. Adjust KUKA_KRL_post.def file as follow: i. Adjust the include for Robotics.cdl to the actual <MachineName> b. Create a <MachineName>.dat file under kits\mach\ resource\library\machine\installed_machines\ <MachineName> with following single line (adjusted to the actual <MachineName>): i. KUKA KRL,$ {UGII_CAM_LIBRARY_INSTALLED_MACHINES_DIR}<MachineName> \postprocessor\KUKA_KRL\KUKA_KRL_post.tcl,$ {UGII_CAM_LIBRARY_INSTALLED_MACHINES_DIR}<MachineName> \postprocessor\KUKA_KRL\KUKA_KRL_post.def

Upload: truongtuong

Post on 11-Jul-2019

446 views

Category:

Documents


19 download

TRANSCRIPT

Page 1: NX CAM Robotic Machining Beta - community.plm.automation ...€¦ · Web viewNX CAM KUKA-KRL Post-Processor User Manual. May, 2018. Installation. To install the KUKA_KRL post processor:

NX CAM KUKA-KRL Post-Processor User ManualMay, 2018

1. InstallationTo install the KUKA_KRL post processor:

1) Run the post processor setup and select a destination folder such as kits\mach\resource\library\machine\installed_machines\<MachineName>\postprocessor\KUKA_KRL.

2) For a new installation: a. Adjust KUKA_KRL_post.def file as follow:

i. Adjust the include for Robotics.cdl to the actual <MachineName>b. Create a <MachineName>.dat file under kits\mach\resource\library\machine\

installed_machines\<MachineName> with following single line (adjusted to the actual <MachineName>):

i. KUKA KRL,${UGII_CAM_LIBRARY_INSTALLED_MACHINES_DIR}<MachineName>\postprocessor\KUKA_KRL\KUKA_KRL_post.tcl,${UGII_CAM_LIBRARY_INSTALLED_MACHINES_DIR}<MachineName>\postprocessor\KUKA_KRL\KUKA_KRL_post.def

Page 2: NX CAM Robotic Machining Beta - community.plm.automation ...€¦ · Web viewNX CAM KUKA-KRL Post-Processor User Manual. May, 2018. Installation. To install the KUKA_KRL post processor:

2. Robot Kinematics Modelling

a. BASEFRAMEThe robot BASEFRAME is modeled as Machine Zero Junction and should be aligned with KUKA convention. At HOME position:

o Z axis pointing upo X axis pointing in front of the robot

b. TOOLFRAMEThe robot flange (aka TOOLFRAME) is modeled as POCKET_JCT and should be aligned with KUKA convention. At HOME position:

o Z axis pointing out of the flangeo X axis pointing down

Page 3: NX CAM Robotic Machining Beta - community.plm.automation ...€¦ · Web viewNX CAM KUKA-KRL Post-Processor User Manual. May, 2018. Installation. To install the KUKA_KRL post processor:

3. Post ConfigurationSeveral options specific to the KUKA_KRL Post Processor are available from the Post

Configurator dialog .

Page 4: NX CAM Robotic Machining Beta - community.plm.automation ...€¦ · Web viewNX CAM KUKA-KRL Post-Processor User Manual. May, 2018. Installation. To install the KUKA_KRL post processor:

a. Externals Mapping

i. E1 … E6These entries are used to select how the robot externals (positioner axes, rail axis) should be mapped to KUKA external axes.

LIN {X 299.435,Y 464.456,Z -99.994,A -60.670,B -3.906,C -35.823,E1 29.149,E2 0.000,E3 0.000,E4 0.000,E5 0.000,E6 0.000} C_DIS

ii. Positioner BaseFrame JunctionThis entry is used to select the junction within the positioner which represents the positioner root frame.

When using a coordinated positioner, the ROOT part of the moving $BASE coordinate expression will hold the position of this junction relative to the robot WORLD (see d.ii).

$BASE = EK({X 1520.000,Y -420.000,Z 964.000,A 0.000,B -0.000,C 0.000},#EASYS,{X -30.000,Y 190.000,Z 0.000,A 0.000,B -0.000,C 0.000})

iii. Positioner ToolFrame JunctionThis entry is used to select the junction within the positioner which represents the positioner object frame.

When using a coordinated positioner, the BASE_DATA part of the moving $BASE coordinate expression will be downloaded with respect to this junction.

$BASE = EK({X 1520.000,Y -420.000,Z 964.000,A 0.000,B -0.000,C 0.000},#EASYS,{X -30.000,Y 190.000,Z 0.000,A 0.000,B -0.000,C 0.000})

If the robot has no positioner, this entry should be left empty.

Page 5: NX CAM Robotic Machining Beta - community.plm.automation ...€¦ · Web viewNX CAM KUKA-KRL Post-Processor User Manual. May, 2018. Installation. To install the KUKA_KRL post processor:

iv. Positioner External Chain IdentifierThis entry is used to define whether the positioner is a coordinated positioner or a non-coordinated positioner. In case of coordinated positioner, it is as well used to select the KUKA external chain identifier to which the positioner is mapped.

When using a coordinated positioner (selection of EASYS…EFSYS), this identifier is used in the expression of the moving $BASE.

$BASE = EK({X 1520.000,Y -420.000,Z 964.000,A 0.000,B -0.000,C 0.000},#EASYS,{X -30.000,Y 190.000,Z 0.000,A 0.000,B -0.000,C 0.000})

When using a non-coordinated positioner, this entry should be set to “NONE”.

In this case:

$BASE will be downloaded as a fixed base (not as a moving EK base), with coordinates equal to the initial position of the MCS (when positioner is at 0) relative to robot WORLD (see d.ii).

The target positions will be downloaded as the final position of the robot TCPF (tool tip) relative to this initial position of the MCS (when the positioner is at 0).

v. Positioner Machine Definition IndexThis entry is only used when robot has an external positioner and the “Frame Definitions” in “Kuka Tools and Bases” is set to BAS.

In this case, the base definition is downloaded as following instruction:EX_BASE(<Base_Number>, <Positioner Machine Definition Index>).

Page 6: NX CAM Robotic Machining Beta - community.plm.automation ...€¦ · Web viewNX CAM KUKA-KRL Post-Processor User Manual. May, 2018. Installation. To install the KUKA_KRL post processor:

b. Headers

i. Top header and Initialization FoldThis option is used to define an optional Top header and a FOLD INI to be added to the program output.

In the downloaded program, the Top header and the FOLD INI will be written at the beginning of the program as follow:

&ACCESS RVEO&REL 9&PARAM DISKPATH = KRC:\R1\TrajectoriesDEF PROG();* -------------------------------------;* NX CAM Robotics 10.0.2.3 to Kuka-Krl;* CREATED : 11/06/2015 18:24 by velaygil;* CELL : Robotic_Polishing_Linishing.prt;* ROBOT : KR125;* -------------------------------------;FOLD INI ;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;ENDFOLD (USER INI);ENDFOLD (INI)

Global mom variables and one dimension arrays can be used in the header, as follow:

$toolCount=mom_tool_count$nGun{mom_tool_count}On=1$linearUnit=”mom_sys_rapid_feed_mode(LINEAR)”

$RetractMsg1= “This is {mom_sys_retract_distance}”$RetractMsg2= “This is mom_sys_retract_distance”

Page 7: NX CAM Robotic Machining Beta - community.plm.automation ...€¦ · Web viewNX CAM KUKA-KRL Post-Processor User Manual. May, 2018. Installation. To install the KUKA_KRL post processor:

c. Motion

i. PTP MotionSelect actual “PTP” motion instruction (between “PTP” and “SPTP”) used in RAPID moves and moves to parking poses.

ii. LIN MotionSelect actual “LIN” motion instruction (between “LIN” and “SLIN”) used in CUT moves.

LIN {X 173.738,Y 740.027,Z -153.184,A -65.058,B 4.778,C -65.767,E1 0.000,E2 0.000,E3 0.000,E4 0.000,E5 0.000,E6 0.000} C_DIS

iii. Absolute AccuracyDefine whether the robot has absolute accuracy. This will turn on the 5th bit of the configuration Status. On a real robot, $ABS_ACCUR is defined in the robot machine data files.

iv. Speed DefinitionsThis option is used to select the Speed definition format.

KRL:Linear speed: $VEL.CP=<speed in m/s>Joint speed: $VEL.AXIS[1..6]=<speed in %>

$VEL.EXTAX[1..6]=<speed in %>

BAS_KRC1:Linear speed: BAS(#VEL_CP,<speed in m/s>)Joint speed: BAS(#VEL_PTP,<speed in %>)

Page 8: NX CAM Robotic Machining Beta - community.plm.automation ...€¦ · Web viewNX CAM KUKA-KRL Post-Processor User Manual. May, 2018. Installation. To install the KUKA_KRL post processor:

BAS_KRC2:Linear speed: BAS(#CP_PARAMS,<speed in m/s>)Joint speed: BAS(#PTP_PARAMS,<speed in %>)

v. PTP Flyby ModeThis option is used to select the flyby mode to be used on PTP motions (Rapid motions and motions to parking poses) between C_DIS and C_PTP.

When C_DIS is selected, the post processor will generate:

$APO.CDIS = 20.0PTP {X 299.435,Y 464.456,Z -99.994,A -60.670,B -3.906,C -35.823,E1 29.149,E2 0.000,E3 0.000,E4 0.000,E5 0.000,E6 0.000} C_DIS

When C_PTP is selected, the post processor will instead generate:

$APO.CPTP = 20.0PTP {X 299.435,Y 464.456,Z -99.994,A -60.670,B -3.906,C -35.823,E1 29.149,E2 0.000,E3 0.000,E4 0.000,E5 0.000,E6 0.000} C_PTP

Note: if “PTP Motion” option is set to “SPTP”, this option will be ignored. The postprocessor will always generate a C_SPL flyby mode and set $APO.CPTP:

$APO.CPTP = 20.0PTP {X 299.435,Y 464.456,Z -99.994,A -60.670,B -3.906,C -35.823,E1 29.149,E2 0.000,E3 0.000,E4 0.000,E5 0.000,E6 0.000} C_SPL

Page 9: NX CAM Robotic Machining Beta - community.plm.automation ...€¦ · Web viewNX CAM KUKA-KRL Post-Processor User Manual. May, 2018. Installation. To install the KUKA_KRL post processor:

d. Tool and Base

i. Spindle Tool AxisNX CAM assumes that the spindle axis (IJK) of the tool path positions is aligned with the X+ axis of the tool tip.

With this option it is possible to rotate both the $TOOL and E6POS orientations, in the program file, so that the X-, Z+ or Z- axis of the $TOOL and E6POS are aligned with the tool path spindle axis.

As the rotation is done around local Y axis, make sure the original tool Y axis is aligned with the physical model when setting up the pocket.

ii. Robot WorldFrame JunctionThe post processor assumes the robot WORLD (origin of the base coordinates and positioner root coordinates) is at the robot BASEFRAME when all externals are set to zero.

With this option it is possible to define an explicit junction to be the robot WORLD.

iii. Frame DefinitionsThis option is used to select TOOL and BASE definition format.

KRL:$TOOL={<tool coords>}$BASE={<base coords>}

With Positioner:$BASE=EK(<base coords>, <moving base chain>, <moving base coords>)

BAS:BAS(#TOOL, <tool number>}BAS(#BASE, <base number>}

Page 10: NX CAM Robotic Machining Beta - community.plm.automation ...€¦ · Web viewNX CAM KUKA-KRL Post-Processor User Manual. May, 2018. Installation. To install the KUKA_KRL post processor:

With Positioner:EX_BASE(<base number>, <positioner machine definition index >)

NONE:No TOOL or BASE definition will be output

e. Payload data

For Kuka, the Payload Number and the Orientation Quaternions are unused.

Payloads are downloaded as $LOAD variable set. They are supported on the path and each location as events. The postprocessor generates a download line such as:

$LOAD={{M 75.000,{X,1.100,Y,2.100,Z,3.300,A,10.000,B,20.000,C,30.000},J {X,1.000,Y,2.000,Z,3.000}}}

Page 11: NX CAM Robotic Machining Beta - community.plm.automation ...€¦ · Web viewNX CAM KUKA-KRL Post-Processor User Manual. May, 2018. Installation. To install the KUKA_KRL post processor:

f. Pick & Place

This section is used to define the robot instructions (Olp Commands) that should be outputted for Grip and Release actions.

Any global mom variable can be used inside the instructions (see Headers section for details).

Page 12: NX CAM Robotic Machining Beta - community.plm.automation ...€¦ · Web viewNX CAM KUKA-KRL Post-Processor User Manual. May, 2018. Installation. To install the KUKA_KRL post processor:

4. Program StructureThe post processor generates a single SRC file with one KUKA procedure (DEF) for the full program. Tool paths within the program are separated with a special comment:

;-- ToolPath POSITIONER_UP

As position coordinates are generated inline, it is not required to generate a DAT file.

5. Generalities

a. $BASE

i. KRLIn mounted tool configuration, the active MCS of the tool path is used as KUKA $BASE.

If the robot has a coordinated positioner, the $BASE / MCS is assumed to be a moving BASE attached to the positioner. Its coordinates will then be downloaded with respect to the positioner tool frame with special expression involving also the root position of the positioner.

$BASE = EK({X 1520.000,Y -420.000,Z 964.000,A 0.000,B -0.000,C 0.000},#EASYS,{X -30.000,Y 190.000,Z 0.000,A 0.000,B -0.000,C 0.000})

If the robot has no positioner, the $BASE / MCS is assumed to be a fixed BASE. Its coordinates will then be downloaded with respect to the robot WORLD (see 3.a.ii and 3.d.ii).

$BASE = {X -30.000,Y 190.000,Z 0.000,A 0.000,B -0.000,C 0.000}

If the robot has a non-coordinated positioner (“Positioner ToolFrame Junction” defined and “Positioner External Chain Identifier” set to NONE), the $BASE / MCS is assumed to be a fixed BASE, superimposed on the initial position of the MCS. Its coordinates will then be downloaded with respect to the robot WORLD (see 3.a.iv and 3.d.ii3.a.ii).

$BASE = {X -30.000,Y 190.000,Z 0.000,A 0.000,B -0.000,C 0.000}

In mounted part configuration, the $BASE is the position of the remote TCP with respect to the robot WORLD (see 3.d.ii).

$BASE = {X -30.000,Y 190.000,Z 0.000,A 0.000,B -0.000,C 0.000}

Using different MCS in different tool paths of a same program is supported. $BASE coordinates will be written in the program file, every time the active MCS is changed.

Page 13: NX CAM Robotic Machining Beta - community.plm.automation ...€¦ · Web viewNX CAM KUKA-KRL Post-Processor User Manual. May, 2018. Installation. To install the KUKA_KRL post processor:

ii. BASIf “Frame Definitions” is set to “BAS” instead of “KRL” in the Post Configurator dialog, the coordinates of the $BASE are not downloaded. Instead a BAS() instruction is generated with the Base Number (see 3.d.iii).

In mounted tool configurations, the Base Number is taken from MCS parameter “Fixture Offset”.

In mounted part configurations, the Base Number is taken from the remote Tool parameter “Tool Number”.

Page 14: NX CAM Robotic Machining Beta - community.plm.automation ...€¦ · Web viewNX CAM KUKA-KRL Post-Processor User Manual. May, 2018. Installation. To install the KUKA_KRL post processor:

b. $TOOL

i. KRLIn mounted tool configuration, the active tool is used as KUKA $TOOL. Its coordinates are downloaded with respect to the robot flange.

In mounted part configuration, the $TOOL is the position of the mounted MCS relative to the robot flange.

With “Spindle Tool Axis” option, it is possible to emulate a rotation of the tool tip and E6POS so that X-, Z+ or Z- is aligned with the tool path spindle axis (instead of using default X+ axis).

Using different TOOLs in different tool paths of a same program is supported. $TOOL coordinates will be written in the program file, every time the active TOOL is changed.

$TOOL = {X 49.301,Y -1.215,Z 431.528,A -90.083,B 0.083,C 135.000}

It is also possible to define the tool payload via a special comment in Tool / Edit / Tool / Description.

Page 15: NX CAM Robotic Machining Beta - community.plm.automation ...€¦ · Web viewNX CAM KUKA-KRL Post-Processor User Manual. May, 2018. Installation. To install the KUKA_KRL post processor:

In this case a change of tool, payload is downloaded as KUKA $LOAD, as follow:

$LOAD={{M 10,{X 20.000,Y 30.000,Z 40.500,A 0.000,B 0.000,C 0.000},J {X 100.000,Y 200.000,Z -30.500}}}

ii. BASIf “Frame Definitions” is set to “BAS” instead of “KRL” in the Post Configurator dialog, the coordinates of the $TOOL are not downloaded. Instead a BAS() instruction is generated with the Tool Number (see 3.d.iii).

In mounted tool configurations, the Tool Number is taken from the Tool parameter “Tool Number” (see a.ii) .

In mounted part configurations, the Tool Number is taken from the mounted MCS parameter “Fixture Offset” (see a.ii).

c. $IPO_MODE$IPO_MODE instruction is automatically generated as follow:

Page 16: NX CAM Robotic Machining Beta - community.plm.automation ...€¦ · Web viewNX CAM KUKA-KRL Post-Processor User Manual. May, 2018. Installation. To install the KUKA_KRL post processor:

Mounted Tool configurationo $IPO_MODE=#BASE

Mounted Part configurationo $IPO_MODE=#TCP

$IPO_MODE is not generated if “Frame Definitions” is set to “NONE” in the Post Configurator dialog.

d. ExternalsThe post processor will issue warnings in case some positions have a non-zero external value (positioner or rail) and no mapping was defined for it.

e. E6POSE6POS are downloaded inline, with respect to the active MCS.

LIN {X 173.738,Y 740.027,Z -153.184,A -65.058,B 4.778,C -65.767,E1 0.000,E2 0.000,E3 0.000,E4 0.000,E5 0.000,E6 0.000} C_DIS

If the robot has a non-coordinated positioner (“Positioner ToolFrame Junction” defined and “Positioner External Chain Identifier” set to NONE), the downloaded coordinates are the final position of the robot TCPF (tool tip) relative to the initial position of the MCS (when the positioner is at 0) (see 3.a.iv3.a.ii).

f. Robot ConfigurationConfiguration Status and Turn would show up in the Program if configuration was defined for the operation. i.e.:

LIN {X -1982.352,Y -17.978,Z 421.557,A -175.813,B -73.646,C -141.550,S 2,T 35,E1 0.000,E2 2700.000,E3 0.000,E4 0.000,E5 0.000,E6 0.000}

PTP {X -1985.710,Y -18.224,Z 433.030,A -175.813,B -73.646,C -141.550,S 2,T 35,E1 0.000,E2 2700.000,E3 0.000,E4 0.000,E5 0.000,E6 0.000}

If configuration was not defined – those are omitted:

LIN {X -1982.352,Y -17.978,Z 421.557,A -175.813,B -73.646,C -141.550,E1 0.000,E2 2700.000,E3 0.000,E4 0.000,E5 0.000,E6 0.000}

PTP {X -1985.710,Y -18.224,Z 433.030,A -175.813,B -73.646,C -141.550,E1 0.000,E2 2700.000,E3 0.000,E4 0.000,E5 0.000,E6 0.000}

In order to get correct configuration Status and Turn, the robot motionparameters.e file should include following entries:

config_family cf_over_head_pos ; joint_config_family j3 joint_cf_elbow_up ;joint_config_family j5 joint_cf_pos ;default_turns j1 0 0.0, j4 0 0.0, j6 0 0.0 ;

Page 17: NX CAM Robotic Machining Beta - community.plm.automation ...€¦ · Web viewNX CAM KUKA-KRL Post-Processor User Manual. May, 2018. Installation. To install the KUKA_KRL post processor:

An additional option “Absolute Accuracy” is available in the Post Configurator to turn on the 5th bit of the Status value on all positions, as required for absolute accuracy robots.

g. SpeedThe post processor takes into account the standard “Feed Rates” definitions for linear speeds and the “Robot Zones and Joint Motion Speed” definitions for joint speeds.

As the speed setting in KUKA is modal, only changes in speeds are downloaded.

According to “Speed Definitions” setting in Post Configurator (see 3.c.iv), the speed is download in different formats.

i. KRLLinear speeds are downloaded as:

$VEL.CP=<speed in m/s>

Joint speeds are downloaded as:

$VEL_AXIS[1]=<speed in %>…$VEL_AXIS[6]=<speed in %>$VEL_EXTAX[1]=<speed in %>...$VEL_EXTAX[6]=<speed in %>

ii. BAS_KRC1Linear speed: BAS(#VEL_CP,<speed in m/s>)Joint speed: BAS(#VEL_PTP,<speed in %>)

iii. BAS_KRC2Linear speed: BAS(#CP_PARAMS,<speed in m/s>)Joint speed: BAS(#PTP_PARAMS,<speed in %>)

h. ZoneThe post processor takes into account the “Robot Zones and Joint Motion Speed” definitions.

For linear motion, only linear zones (C_DIS) in mm are supported.

For joint motion, user can choose whether to use linear zones (C_DIS) in mm or PTP zones (C_PTP) in % (see 3.c.v).

Zones are downloaded as:

Page 18: NX CAM Robotic Machining Beta - community.plm.automation ...€¦ · Web viewNX CAM KUKA-KRL Post-Processor User Manual. May, 2018. Installation. To install the KUKA_KRL post processor:

$APO.CDIS = <zone in mm>

Or

$APO.CPTP = <zone in %>

The zone values are taken as is from “Robot Zones and Joint Motion Speed” without any conversion.

Positions that are using a non-null zone value are downloaded as a flyby motion (i.e. with a C_DIS or C_PTP suffix on the motion line):

LIN {X 173,Y 740,Z 184,A -65,B 4,C -65,E1 0,E2 0,E3 0,E4 0,E5 0,E6 0} C_DIS

Positions that are using a null zone value are downloaded as a full reach motion (i.e. without any zone suffix on the motion line):

LIN {X 173,Y 740,Z 184,A -65,B 4,C -65,E1 0,E2 0,E3 0,E4 0,E5 0,E6 0}

It is also possible to select Spline motion types “SPTP” and “SLIN” instead of regular motion types “PTP” and “LIN” (see 3.c.i and 3.c.ii). In such a case:

The flyby mode on the motion lines is forced to C_SPL. $APO.CDIS zone value is downloaded before SLIN motions $APO.CPTP zone value is downloaded before SPTP motions

i. Parking PosesParking poses are downloaded as joint motions to inline E6AXIS targets with the selected "Rapid" zone value from "Robot Zones and Joint Motion Speed":

PTP {A1 0.000,A2 0.000,A3 0.000,A4 0.000,A5 0.000,A6 0.000,E1 0.000,E2 0.000,E3 0.000,E4 0.000,E5 0.000,E6 0.000} C_DIS

j. Olp CommandsOlp Commands UDE are downloaded as is.

Olp Commands are supported at program, path and position levels.

The Olp commands can be placed before or after the motion instruction. Multiple lines olp commands are written on a single line using %% as the separator.

Page 19: NX CAM Robotic Machining Beta - community.plm.automation ...€¦ · Web viewNX CAM KUKA-KRL Post-Processor User Manual. May, 2018. Installation. To install the KUKA_KRL post processor:

6. User Customization

a. Additional TCL fileIt is possible to create additional Post Configurator options and implement overrides in an additional TCL file that should be sourced in the KUKA_KRL_post.psc file.

b. TOOLTo override how the TOOL is written done, user can override KUKA_write_tool_definition routine in its additional own TCL file.

c. BASETo override how the BASE is written done, user can override KUKA_write_base_definition routine in its additional own TCL file.

d. Program TrailerTo override how the program is closed, user can override MOM_end_of_program routine in its additional own TCL (currently the routine is just outputting “END” keyword).