Jaguar Land Rover
Manufacturing Equipment Engineering Standard
Guidelines for Programming ABB IRC5
Robot Controllers at JLR Sites
Advanced Manufacturing Guidelines for Programming
Engineering ABB IRC5 Robot Controllers at Date: Version:
JLR Sites Page 1 of 43
Standards, Controls & Joining
Technologies JLR-MEES-RF-62-009 07/11/17 V 1.8
Uncontrolled when printed
Jaguar Land Rover
Manufacturing Equipment Engineering Standard
Revision History
Date Name Issue Change Description
01/06/16 D. Clements 1.0 Initial Version
10/08/16 D. Clements 1.1 Edited
11/10/16 D. Clements 1.2 Edited
13/10/16 D. Clements 1.3 Accel limits value changes
20/10/16 D. Clements 1.4 Simulation Eng (RobCad) additions. Added energy
efficiency, golden rules and guidelines.
02/12/16 D. Clements 1.5 Edited
New sections added:
Common positions
03/03/17 D. Clements 1.6 Programming track slides
Hard Stop detail
Nesting levels of programs and sub routines
31/10/17 D. Clements 1.7 P5 description rewording
New section 3.9
07/11/17 D. Clements 1.8 Tool names chgs
Wobj name chgs
Various responses to integrators input
Associated Standards
Advanced Manufacturing Guidelines for Programming
Engineering ABB IRC5 Robot Controllers at Date: Version:
JLR Sites Page 2 of 43
Standards, Controls & Joining
Technologies JLR-MEES-RF-62-009 07/11/17 V 1.8
Uncontrolled when printed
Jaguar Land Rover
Manufacturing Equipment Engineering Standard
Table of Contents
1 INTRODUCTION ................................................................................................................................................. 6
1.1 ACRONYMS AND ABBREVIATIONS ................................................................................................................................. 6
2 DESIGN GUIDELINES .......................................................................................................................................... 6
2.1 REGULATORY COMPLIANCE ......................................................................................................................................... 6
2.2 DESIGN STANDARDISATION ......................................................................................................................................... 7
2.3 ASSOCIATED JLR STANDARDS ...................................................................................................................................... 7
3 DESCRIPTION ..................................................................................................................................................... 8
4 I/O INTERFACE ................................................................................................................................................... 9
5 ROBOT SYSTEM ................................................................................................................................................. 9
5.1 NAMING CONVENTION ............................................................................................................................................... 9
5.2 SYSTEM PARAMETERS ................................................................................................................................................ 9
5.3 ROBOT NAME ........................................................................................................................................................... 9
5.4 PROGRAMS AND MODULES ....................................................................................................................................... 10
5.5 USER MODULES ...................................................................................................................................................... 10
5.6 PROCEDURES .......................................................................................................................................................... 11
5.7 PROGRAM NESTING AND SUB-ROUTINES...................................................................................................................... 12
5.8 ROUTINE NAMES..................................................................................................................................................... 13
5.9 END EFFECTOR AND WORK OBJECT/FRAMES NAMING ................................................................................................... 13
5.10 FIXTURES AND TOOLING ROUTINES ........................................................................................................................ 14
5.11 PROGRAM DOCUMENTATION................................................................................................................................ 14
5.12 COLLISION REQUESTS .......................................................................................................................................... 15
5.13 AREA REQUESTS ................................................................................................................................................. 15
5.14 TOOL REQUESTS ................................................................................................................................................. 15
5.15 TYPE INFO DECISIONS .......................................................................................................................................... 16
5.16 PROGRAM STRUCTURE ........................................................................................................................................ 19
5.17 JOB PROCESSING ................................................................................................................................................ 21
5.18 TOOL’S, WORK OBJECTS AND COORDINATE SYSTEMS................................................................................................ 21
5.19 PAYLOAD .......................................................................................................................................................... 21
5.20 LOAD DATA ....................................................................................................................................................... 22
5.21 CONFIGURATION OF LOAD DATA ........................................................................................................................... 22
5.22 MAINTENANCE/SERVICE PROGRAMS ...................................................................................................................... 26
5.23 DATA BACKUP / FILING / ARCHIVING ...................................................................................................................... 26
5.24 AXIS HARD STOPS ............................................................................................................................................... 26
5.25 AXIS SOFTWARE LIMITS........................................................................................................................................ 26
5.26 USER ROUTINES/FUNCTIONS ................................................................................................................................ 27
5.27 CELL RECOVERY .................................................................................................................................................. 27
5.28 APPLICATION INITIALISATION................................................................................................................................. 27
5.29 ERROR MESSAGING............................................................................................................................................. 28
6 ABB RAPID COMMANDS ...................................................................................................................................28
6.1 WAIT INSTRUCTION ................................................................................................................................................ 28
6.2 STOP INSTRUCTION .................................................................................................................................................. 29
Advanced Manufacturing Guidelines for Programming
Engineering ABB IRC5 Robot Controllers at Date: Version:
JLR Sites Page 3 of 43
Standards, Controls & Joining
Technologies JLR-MEES-RF-62-009 07/11/17 V 1.8
Uncontrolled when printed
Jaguar Land Rover
Manufacturing Equipment Engineering Standard
6.3 DECISION INSTRUCTIONS........................................................................................................................................... 29
6.3.1 IF statement .............................................................................................................................................. 29
6.3.2 Test Statements ........................................................................................................................................ 30
6.4 GOTO (JUMP) INSTRUCTION..................................................................................................................................... 30
6.5 WHILE LOOP ......................................................................................................................................................... 31
6.6 STOP COMMAND ................................................................................................................................................... 31
6.7 COMMENT COMMAND ............................................................................................................................................. 32
6.8 RETURN COMMAND ................................................................................................................................................ 33
7 MOTION PROGRAMMING ................................................................................................................................34
7.1 ACCELERATION LIMITING .......................................................................................................................................... 34
7.2 VELOCITY LIMITING .................................................................................................................................................. 34
7.3 COMMON POSITIONS AND FIXTURES ........................................................................................................................... 35
7.3.1 Common fixtures ....................................................................................................................................... 35
7.3.2 Common Positions .................................................................................................................................... 35
7.3.2.1 Split the robot paths into smaller routines (recommended): ...........................................................................35
7.3.2.2 Use IF ELSE ENDIF (as appropriate) statements and TypeInfo bits within program. ........................................35
7.3.3 Common PICK/DROP positions .................................................................................................................. 36
7.4 RELEASING WORK AREAS AND COLLISION ZONES........................................................................................................... 37
7.5 REQUESTING WORK AREAS AND COLLISION ZONES ........................................................................................................ 37
7.6 CONSECUTIVE MOVE INSTRUCTIONS ........................................................................................................................... 38
7.7 PROGRAMMING WITH TRACK SLIDES ........................................................................................................................... 39
8 PROGRAMMING: GOLDEN RULES, TIPS AND GUIDELINES .................................................................................40
9 ENERGY EFFICIENCY ..........................................................................................................................................42
10 HARDWARE CHECKING .....................................................................................................................................43
10.1 GRIPPERS .......................................................................................................................................................... 43
10.2 LASER SENSORS, OPTICAL SENSING DEVICES, ELECTRONIC SENSORS ............................................................................. 43
10.3 RIVET GUNS, SPOT WELDING GUNS, DISPENSING NOZZLES ........................................................................................ 43
10.4 CAMERAS .......................................................................................................................................................... 43
Advanced Manufacturing Guidelines for Programming
Engineering ABB IRC5 Robot Controllers at Date: Version:
JLR Sites Page 4 of 43
Standards, Controls & Joining
Technologies JLR-MEES-RF-62-009 07/11/17 V 1.8
Uncontrolled when printed
Jaguar Land Rover
Manufacturing Equipment Engineering Standard
List of Figures
FIGURE 1: ................................................................................................................................ ERROR! BOOKMARK NOT DEFINED.
Advanced Manufacturing Guidelines for Programming
Engineering ABB IRC5 Robot Controllers at Date: Version:
JLR Sites Page 5 of 43
Standards, Controls & Joining
Technologies JLR-MEES-RF-62-009 07/11/17 V 1.8
Uncontrolled when printed
Jaguar Land Rover
Manufacturing Equipment Engineering Standard
1 Introduction
This standard is owned and controlled by the JLR Global Standards and Control department.
Modifications to this document will be controlled through the JLR Global Standards and Control
department.
Deviations from this standard shall require agreement from the JLR Global Standards and Control
department in addition to the nominated AME Facilities project engineer.
This document will outline the expectations of JLR by its suppliers with regards to the system described.
Specific elements of the facility described in this document shall be dependent upon the project specific
requirements.
Project specific requirements, not covered in this standard, shall be detailed in the Request for
Quotation (RFQ) which will accompany this standard.
1.1 Acronyms and Abbreviations
AME Advanced Manufacturing Engineer
CE European Conformity
DFMEA Design Failure Modes and Effects Analysis
DoC Declaration of Conformity
DoI Declaration of Incorporation
EMC Electromagnetic compatibility
EMS Electrified Monorail System
JLR Jaguar Land Rover
MSDS Material Safety Data Sheet
MTTR Mean Time to Repair
PED Pressure Equipment Directive
PFMEA Process Failure Modes and Effects Analysis
RPL Required Performance Level
RFQ Request for Quotation
SC&J Standards, Controls and Joining
2 Design Guidelines
2.1 Regulatory Compliance
All equipment to be supplied within the European Economic Area must be CE marked and be
accompanied with a Declaration of Conformity (DoC) or Declaration of Incorporation (DoI), as
appropriate, stating compliance to the relevant EHSRs of the applicable European Directives, including:-
The Machinery Directive 2006/42/EC
The Low Voltage Directive 2014/35/EU
Advanced Manufacturing Guidelines for Programming
Engineering ABB IRC5 Robot Controllers at Date: Version:
JLR Sites Page 6 of 43
Standards, Controls & Joining
Technologies JLR-MEES-RF-62-009 07/11/17 V 1.8
Uncontrolled when printed
Jaguar Land Rover
Manufacturing Equipment Engineering Standard
The EMC Directive 2014/30/EU
The Pressure Equipment Directive 2014/68/EU
Safety equipment shall address both the JLR Global Standards and Controls safety standards; and
EN62061 safety risk assessment of the equipment function and associated production processes,
performed by the supplier.
Any other requirements over and above those required to comply with the CE regulations i.e. specific
to location, will be detailed in the RFQ.
2.2 Design Standardisation
The supplier shall supply equipment that maximises the commonality of components and design
philosophies, whilst working within the current JLR standards.
Where applicable, purchased components and sub-assemblies should be sourced from the approved
JLR purchased parts list.
The supplier shall identify and request a deviation where non-approved purchased components or sub-
assemblies are required to the specific project in question. The adoption of a non-standard purchased
component or sub-assembly shall only be applicable to the specific project in question.
The system must comply with critical designs requirements specified as a result of conducting DFMEA’s
and PFMEA’s through the design and delivery lifecycle to ensure the specified level of reliability,
operation and safety.
2.3 Associated JLR Standards
Relevant UK and European Normalised standards; the JLR General Pan Project Rules; and individual
specific JLR standards shall be applied to the design, build and installation of all equipment.
For controls standards refer to the JLR DCP Standard, Ethernet Workbook and Rockwell Project
Workbook.
For switching standard refer to the JLR IFM Project Workbook
For Drives information refer to JLR SEW Project Workbook
For all other standards refer to applicable JLR Standards at the following web address:
http:\www.***********.com
Advanced Manufacturing Guidelines for Programming
Engineering ABB IRC5 Robot Controllers at Date: Version:
JLR Sites Page 7 of 43
Standards, Controls & Joining
Technologies JLR-MEES-RF-62-009 07/11/17 V 1.8
Uncontrolled when printed
Jaguar Land Rover
Manufacturing Equipment Engineering Standard
3 Description
This document sets out the rules for programming the ABB IRC5 type robots in JLR Projects.
It is to be read in conjunction with the latest JLR application manuals and the latest JLR RobCad
standards manual. The intention of this manual is to produce good robot programs.
Specific technical guidance on the use of the application software is presented in the relevant
programming standards manuals.
The standard robot software for Jaguar Land Rover PAN Projects comprises the following functions:
Standard Front End (SFE) software for communications with the PLC
Program invocation by means of program numbers 1 to 127*
Collision protection for 62 zones within a machine section (one PLC controller)*
Process area’s (work area’s) 64 off*
Job handshakes with up to 64 jobs*
SafeMove and EPS safety functions
*subject to change. Ask JLR Standards & Controls dept. for the latest revisions of all documents.
There are additional software packages available for the individual process applications. These are
installed where required.
Each has a standard set of modules containing UI (user interface) and UD (user data) modules, and a set
of configuration parameters.
Under no circumstances must the modules be changed in any way: the UD (user data) modules contain
variable data that the programmer must adjust to suit the installation.
They are:
Bosch Tightening System Projection Nut Welding
Clinch System Sealing and Dispensing
Date Stamp Spot Welding
Handling Stud Welding
Henrob SPR Tool Changing
Perception Measuring Tox Clinch
Shared Device Tucker SPR
Profil Fastening System
There are user guides describing the use of each of the above listed applications. Each must be read and
fully understood before programming the function.
When creating or changing routines, attention must be given to ensuring that the complete or modified
parts are run through in manual mode.
The same applies to programs created offline. This ensures that parameterisation errors in instructions
are identified and collisions are prevented during the motion sequence.
Advanced Manufacturing Guidelines for Programming
Engineering ABB IRC5 Robot Controllers at Date: Version:
JLR Sites Page 8 of 43
Standards, Controls & Joining
Technologies JLR-MEES-RF-62-009 07/11/17 V 1.8
Uncontrolled when printed
Jaguar Land Rover
Manufacturing Equipment Engineering Standard
4 I/O Interface
There is a standard set of inputs and outputs defined for communication to the PLC. Some of these
signals are for user declaration. The IO parameters in each robot may be different depending on the
applications and processes involved.
For instance the IO file for a Tucker riveting application will be different compared to a spot-welding
robot: this is because of the limited number of signals available with the PLC. Some signals may be
changed to suit individual projects, as in signals may be added onto already existing “spare”
declarations.
Please refer to the document “JLR Robot Programming Protocol.pdf”* for a description of the signals.
Please refer to the individual process application documents for a further descriptions of the equipment
signals.
* Ask JLR Standards & Controls dept. for the latest revisions of all documents.
5 Robot System
5.1 Naming Convention
All programs and data used in the robot system must adhere to the strict naming convention detailed
in the document JLR Robot Programming Protocol.pdf.
5.2 System Parameters
No system parameters can be changed in any way without consultation and approval from the JLR
Controls and Standards Dept., unless stated in this document; changing software axis limits, for instance.
5.3 Robot Name
During commissioning each robot will be assigned a unique name (for the project concerned).
Example: z19_010_r01.
Advanced Manufacturing Guidelines for Programming
Engineering ABB IRC5 Robot Controllers at Date: Version:
JLR Sites Page 9 of 43
Standards, Controls & Joining
Technologies JLR-MEES-RF-62-009 07/11/17 V 1.8
Uncontrolled when printed
Jaguar Land Rover
Manufacturing Equipment Engineering Standard
5.4 Programs and Modules
The robot will be commissioned with the required process packages stated by the System Integrator.
They will be loaded with the correct parameters and software modules in the relevant tasks. For each
process there is usually a control module and a user data module. For example; a tool changing robot
will have two system modules:
JLR_TCW7_UI.sys
JLR_TCW7_UD.sys.
The *_UI.sys modules contain the control logic, the *_UD.sys contains user data that must be changed
by the programmer.
Under no circumstances should the modules be changed in any way, added to or logic/data removed.
Only the datatypes in the UD must be adjusted to suit.
No additional software modules can be added by anyone without written consent from the JLR
Standards and Controls Department, after completing the deviation request procedure.
Under no circumstances can any additional software (including parameters and modules) be added
to the system without consultation.
5.5 User Modules
The modules that are provided for all user routines and data are by default called:
PATH_PROGRAMS.mod
ALL_DATA.sys
*no other modules may be created or added for user purposes
Advanced Manufacturing Guidelines for Programming
Engineering ABB IRC5 Robot Controllers at Date: Version:
JLR Sites Page 10 of 43
Standards, Controls & Joining
Technologies JLR-MEES-RF-62-009 07/11/17 V 1.8
Uncontrolled when printed
Jaguar Land Rover
Manufacturing Equipment Engineering Standard
5.6 Procedures
In the default programs module there are standard routines present by default. These include tool
service programs that must be configured for each tool present in the system. The service position must
enable access to all parts of the tool concerned without the need for climbing equipment etc. These
positions must be approved by the maintenance team.
HM_SRVT1_HM Home - Tool 1 Service Pos – Home
HM_SRVT2_HM Home - Tool 2 Service Pos – Home
HM_SRVT3_HM Home - Tool 3 Service Pos – Home
HM_SRVT4_HM Home - Tool 4 Service Pos – Home
HM_SRVTC_HM Home - Tool Change Service Pos – Home
Manufacturing programs may be in the order of P01, P02 etc.
IT IS RECOMMENDED TO HAVE DIFFERENT PROGRAMS FOR SIGNIFICANT DIFFERENT PARTS.
Examples:
P01 Model 1 P11 Model 2 P21 Model 3
P02 Model 1 variant 1 P12 Model 2 variant 1 P22 Model 3 variant 1
P03 Model 1 variant 2 P13 Model 2 variant 2 P23 Model 3 variant 2
*see the section on common positions for further information
Where components only differ in small areas (i.e. an extra rivet) then typeinfo can be used
Please refer to the current document “JLR PAN Robot to PLC Standard vXXXX.pdf” for further detailed
use of the modules and user routines.
The user can create any routines necessary for the robots function, they are to be stored in the
Path_Programs.mod module. They must follow the routine naming convention.
Advanced Manufacturing Guidelines for Programming
Engineering ABB IRC5 Robot Controllers at Date: Version:
JLR Sites Page 11 of 43
Standards, Controls & Joining
Technologies JLR-MEES-RF-62-009 07/11/17 V 1.8
Uncontrolled when printed
Jaguar Land Rover
Manufacturing Equipment Engineering Standard
5.7 Program Nesting and Sub-routines.
How low can you go?
“Not that low” is the answer.
Avoid nesting programs lower than one level. It complicates the process and makes recovery in event
situations difficult to remedy: that is recover to the correct point in a program, following the correct
program tree. This is for all programs and processes – example here only shows pick/rivet/drop process.
Example:
Acceptable.
Unacceptable.
Advanced Manufacturing Guidelines for Programming
Engineering ABB IRC5 Robot Controllers at Date: Version:
JLR Sites Page 12 of 43
Standards, Controls & Joining
Technologies JLR-MEES-RF-62-009 07/11/17 V 1.8
Uncontrolled when printed
Jaguar Land Rover
Manufacturing Equipment Engineering Standard
5.8 Routine Names
Where possible routine names should be clear and descriptive, so that they fit on the Flex-pendant
clearly. Example of routine names are given here:
Example: p01_a_pick_011_x760rhd
p01 Program Number (e.g P01 = X760)
a Path Sequence Indicator
pick Operation Type
010 Station 010 – Fixture 011
X760rhd Model & Variant
Example: p01_b_rrt01_011_x760rhd
p01 Program Number (e.g P01 = X760)
b Path Sequence Indicator
rrt01 Tool Number (1st gun on this robot)
010 Station 010 – Fixture 011
X760rhd Model & Variant
Example: p01_c_drop_021_x760rhd
p01 Program Number (e.g P01 = X760)
c Path Sequence Indicator
drop Operation Type
020 Station 020 – Fixture 021
X760rhd Model & Variant
5.9 End Effector and Work Object/Frames Naming
The naming format for end effectors and work objects/frames is stated and generated within the
simulation (RobCad) environment and thus will be carried forward into the “real” robot:-
Wobj = w_gr18010_11 (not w_rgr_01)
Tooldata = t_gr18010_11 (not t_gr18010_11)
This is effective for all naming conventions of process equipment generated in RobCad.
Advanced Manufacturing Guidelines for Programming
Engineering ABB IRC5 Robot Controllers at Date: Version:
JLR Sites Page 13 of 43
Standards, Controls & Joining
Technologies JLR-MEES-RF-62-009 07/11/17 V 1.8
Uncontrolled when printed
Jaguar Land Rover
Manufacturing Equipment Engineering Standard
5.10 Fixtures and Tooling Routines
Each fixture and tooling face will have its own unique working programs, i.e. for riveting etc., with its
own work objects. The same working program is not to be used for different fixtures.
5.11 Program Documentation
All parts of the programs and routine will be documented and annotated accordingly, to provide as
much information as is reasonable. This includes:
Headers at the top of each routine.
Example:
!****************************************;
!* Program: p01_a_pick_011_x760rhd *;
!* Location: z19_010_r01 *;
!****************************************;
!* Update Section *;
!* ================ *;
!* Date: *;
!* Integrator: *;
!* Changes: *;
!****************************************;
Comments. They must be used wherever necessary.
Advanced Manufacturing Guidelines for Programming
Engineering ABB IRC5 Robot Controllers at Date: Version:
JLR Sites Page 14 of 43
Standards, Controls & Joining
Technologies JLR-MEES-RF-62-009 07/11/17 V 1.8
Uncontrolled when printed
Jaguar Land Rover
Manufacturing Equipment Engineering Standard
Example:
! nTypeInfo 8 = LWB
! nTypeInfo 10 = SWB
IF nTypeInfo=8 OR nTypeInfo=10 THEN
!TYPE = LHD BODYSIDE
P01Rivet1;
ENDIF
Example:
! Determine which variant
IF PLC_di_User_01 = 1 THEN
! Model 1 variant 1
logic here
ELSEIF PLC_di_Typbit_02 = 1 THEN
! Model 1 variant 2
logic here
ENDIF
5.12 Collision Requests
The text part of the instruction must contain the concerned robots and name which robot is waiting for
which robot.
Example:
CollZoneReq 2,"R040 to get Coll zone 2 from R060";
5.13 Area Requests
The text part must contain the relevant information.
Example:
AreaInReq 1,"Waiting to enter ST010 ";
5.14 Tool Requests
The text part must contain the relevant information.
Example:
ToolReq 1,"Waiting for ST010_x760rhd clamps at rest";
Advanced Manufacturing Guidelines for Programming
Engineering ABB IRC5 Robot Controllers at Date: Version:
JLR Sites Page 15 of 43
Standards, Controls & Joining
Technologies JLR-MEES-RF-62-009 07/11/17 V 1.8
Uncontrolled when printed
Jaguar Land Rover
Manufacturing Equipment Engineering Standard
5.15 Type Info Decisions
Different vehicle models, i.e. L460, X761 etc., will have different program numbers assigned to them i.e.
P01, P11 etc. This is normally driven from design sequence charts. To determine variants in models the
type info bits are used and the selections is done via the command:
nTypeInfo:=TypeInfoReq();
Anywhere type info selection is used it is imperative that an operator can determine what is the relevant
type info bit for the concerned part. Annotation before any use of type info data in any decision making
or adjusting is necessary.
It is preferred that these decisions are made at the top level calling program for the variant concerned
i.e. P01, P02.
IT IS RECOMMENDED TO HAVE DIFFERENT PROGRAMS FOR SIGNIFICANT DIFFERENT PARTS.
Examples:
P01 Model 1 P11 Model 2
P02 Model 1 variant 1 P12 Model 2 variant 1
P03 Model 1 variant 2 P13 Model 2 variant 2
WHERE COMPONENTS ONLY DIFFER IN SMALLER AREAS (I.E. AN EXTRA RIVET) THEN TYPEINFO CAN BE
USED
Advanced Manufacturing Guidelines for Programming
Engineering ABB IRC5 Robot Controllers at Date: Version:
JLR Sites Page 16 of 43
Standards, Controls & Joining
Technologies JLR-MEES-RF-62-009 07/11/17 V 1.8
Uncontrolled when printed
Jaguar Land Rover
Manufacturing Equipment Engineering Standard
Examples:-
PROC P01()
!=============== <P01> ===============
! LOCATION: Solihull
! PROJECT: X760
! ROBOT SN: 7600-12345
! STATION: zX.X_stn_xxx
! LINE BUILDER: XXXX
! LAST CHANGE: xx/xx/xxxx
!=====================================
!
!some logic missing for documentation purposes!!
!
! Check return to home flag
IF NOT bRetToHome THEN
!
!------------------------
P01_a_pick_040_x760;
!------------------------
!
JobDone 1;
AreaOutRel 1;
!
! Request to go into Area 2
AreaInReq 2,"Area in 2 = Drop Stn 70";
!
!Get model variant
nTypeInfo:=TypeInfoReq();
!
IF nTypeInfo=1 THEN
!drop LH on conveyor 1
P01_b_drop_070_LHD_Conv1;
ELSEIF nTypeInfo=2 THEN
! drop LH on conveyor 2
P01_b_drop_070_LHD_Conv2;
Advanced Manufacturing Guidelines for Programming
Engineering ABB IRC5 Robot Controllers at Date: Version:
JLR Sites Page 17 of 43
Standards, Controls & Joining
Technologies JLR-MEES-RF-62-009 07/11/17 V 1.8
Uncontrolled when printed
Jaguar Land Rover
Manufacturing Equipment Engineering Standard
ELSE
!invalid Type_Info data
Stop;
ENDIF
Using Type Info inside a process program:
PROC p01_c_gr18010_302_lh()
!Get model variant
nTypeInfo:=TypeInfoReq();
WHILE nTypeInfo <1 AND nTypeInfo>2 DO
!error handle me here”
Stop;
ENDWHILE
!
MoveJ *,vmax,z200,t_gr18010_11\WObj:= w_gr18010_11;
IF nTypeInfo = 1 THEN
RivetHenJ lspr_hk83_8185com_2tl_004,vmax, rd_gx73_, NO,t_gr18010_11\WObj:=w_gr18010_11;
!
ELSEIF nTypeInfo = 2 THEN
MoveJ *,vmax,fine,t_gr18010_11\WObj:=w_gr18010_11;
!
ENDIF
!
MoveJ *,vmax,z200,t_gr18010_11\WObj:=w_gr18010_11;
!
RivetHenJ lspr_hk83_8186com_2tl_004,vmax,hrd_gx73_NO,t_gr18010_11\WObj:=w_gr18010_11;
!
IF nTypeInfo = 1 THEN
RivetHenJ lspr_hk83_8187com_2tl_004,vmax, rd_gx73_3287,
NO,t_gr18010_11\WObj:=w_gr18010_11;
!
ELSEIF nTypeInfo = 2 THEN
MoveJ *,vmax,fine,t_gr18010_11\WObj:=w_gr18010_11;
!
ENDIF
!
Advanced Manufacturing Guidelines for Programming
Engineering ABB IRC5 Robot Controllers at Date: Version:
JLR Sites Page 18 of 43
Standards, Controls & Joining
Technologies JLR-MEES-RF-62-009 07/11/17 V 1.8
Uncontrolled when printed
Jaguar Land Rover
Manufacturing Equipment Engineering Standard
MoveJ *,vmax,z200,t_gr18010_11\WObj:=w_gr18010_11;
AreaOutRel 1;
JobDone 1;
!
ENDPROC
5.16 Program Structure
Always create a simple program structure. The main programs (P01, P02 etc.) should contain the
complete sequence for that car/part.
Type_Info bits are used to determine different actions: LHD, RHD for instance.
An example of a control program is given here:
PROC P01()
!=============== <P01> ===============
!LOCATION: Solihull
!PROJECT: X760
!ROBOT SN: 66-66666
!STATION: 060
!LINE BUILDER: acme
!LAST CHANGE: 11-02-20
!=====================================
TPErase;
TPWrite "Program 01 (Common) X760";
AreaInReq 1,"Area in 1 = PICK STN 060"\NoWait;
!------------------------
P01_HM_to_Pounce;
!------------------------
AreaInReq 1,"Area in 1 = PICK STN 075"\RetToHome;
IF NOT bRetToHome THEN
!
Cycletime 8\ClockStart;
Cycletime 1\ClockStart;
!------------------------
P01_1_FX075_Pick;
Advanced Manufacturing Guidelines for Programming
Engineering ABB IRC5 Robot Controllers at Date: Version:
JLR Sites Page 19 of 43
Standards, Controls & Joining
Technologies JLR-MEES-RF-62-009 07/11/17 V 1.8
Uncontrolled when printed
Jaguar Land Rover
Manufacturing Equipment Engineering Standard
!------------------------
Cycletime 1\ClockStop;
Cycletime 2\ClockStart;
!------------------------
P01_2_GRP1_Glue;
!------------------------
GlueCheck 1;
JobDone 2;
AreaOutRel 2;
Cycletime 2\ClockStop;
IF bReject THEN
Cycletime 5\ClockStart;
AreaInReq 5,"Area in 5 = Drop to x760 Stn 085 TAKEOUT";
!----------------------
P01_3_FX085_Drop;
!----------------------
Cycletime 5\ClockStop;
ELSE
! Reject part with no glue
Cycletime 3\ClockStart;
AreaInReq 3,"Area in 3 = PICK Stn 080";
!----------------------
P01_1_FX075_Pick;
!----------------------
Cycletime 3\ClockStop;
!----------------------
P01_4_FX090_Drop;
!----------------------
Cycletime 4\ClockStop;
ENDIF
initRS;
HomePos;
initHome\ClearAllColZones;
Cycletime 8\ClockStop;
UserReset;
ELSE
Advanced Manufacturing Guidelines for Programming
Engineering ABB IRC5 Robot Controllers at Date: Version:
JLR Sites Page 20 of 43
Standards, Controls & Joining
Technologies JLR-MEES-RF-62-009 07/11/17 V 1.8
Uncontrolled when printed
Jaguar Land Rover
Manufacturing Equipment Engineering Standard
!------------------------
P01_Pounce_to_HM;
HomePos;
initHome\ClearAllColZones;
ENDIF
RETURN;
ENDPROC
Other examples of programs are presented in the document JLR Robot Programming Protocol v1.0.26
(Current).pdf
5.17 Job Processing
The application document JLR Robot Programming Protocol.pdf explains the use of Area requests,
collision zones and tool ready functions.
5.18 Tool’s, Work Objects And Coordinate Systems
All TCP’s and wobj’s will be imported from the simulation data and measured in, on site.
Tooldata will be in the form of 6D data. The document JLR Robot Programming Protocol.pdf* describes
the tool definition methods that can be used. The correct direction for the x, y, z values of the tool must
be strictly adhered to.
All robot position points (rivets, welds, glue paths, via locations etc.) must be programmed in respect to
the vehicle coordinate system (Car Line). Docking fill stations (rivet and dispense), tip dressing and other
tool related stations must have a relevant work object and tool defined for that purpose that may not
relate to car-line.
The method used must give the best performance for the robot motion, especially on large grippers.
The robot's world coordinate system is identical to the basic coordinate system and this should not be
changed without consultation and consent from JLR standards and controls department.
* Ask JLR Standards & Controls dept. for the latest revisions of all documents.
The naming format for end effectors and work objects/frames is stated and generated within the
simulation (RobCad) environment and thus will be carried forward into the “real” robot.
5.19 Payload
The robot must have had ABB payload/mmi calc’s done to determine if the carried mass is within the
defined limits set by ABB.
Advanced Manufacturing Guidelines for Programming
Engineering ABB IRC5 Robot Controllers at Date: Version:
JLR Sites Page 21 of 43
Standards, Controls & Joining
Technologies JLR-MEES-RF-62-009 07/11/17 V 1.8
Uncontrolled when printed
Jaguar Land Rover
Manufacturing Equipment Engineering Standard
5.20 Load Data
The load data (mass, centre of gravity and moments of inertia) must be calculated and defined for each
tool and each part in all possible combinations prior to programming.
Once the TCP and wobj data are added to the robot system the ABB software function “LoadIdentify “
must be executed for each tool and each carried part.
The returned results from the program execution must be satisfactory; that is using as large a measuring
angle as possible and with the returned result must be at least 90% accuracy. The robot must operate
with the determined data.
If the robot is found to be overloaded in the course of determining the load data the JLR Standards and
Controls department must be consulted.
5.21 Configuration of Load Data
This must be read in conjunction with the relevant ABB documentation; Technical reference manual
RAPID Instructions, Functions and Data types.
All load data must be determined by executing the ABB "LoadIdentify" program. The required tool and
work object must be selected in the jogging window prior to executing the program.
The ABB robot references the payload from the “loadIdentify” program to the TCP of the tool used
during that identification process.
Consequences arise as the ABB robot changes the tool and work object around when calculating the
path for external tools; the payload is referenced to the work object. This results in the centre of gravity
of the payload varying by up to several meters as the coordinate system of the work object is the Car
Line coordinate system.
Therefore a separate load for external tools, such as fixed welding guns or gluing nozzles, must always
be determined.
The identified mass will not vary significantly, but there will be variations in the centre of gravity (Cog)
values.
Summary:
Each tool will have "LoadIdentify" determined values. XYZ, COG and inertia values for external tools
shall not be copied from the carried tool. You must run the "LoadIdentify" program for every
individual tool.
Part load values must be determined by using the "LoadIdentify" program. Every combination of
grippers and parts must be determined individually and assigned a documented and formatted
data type name; e.g. X760load_1, X760load_2.
Example:
If a gripper can carry two parts individually or simultaneously then four load data entities must be
determined.
Advanced Manufacturing Guidelines for Programming
Engineering ABB IRC5 Robot Controllers at Date: Version:
JLR Sites Page 22 of 43
Standards, Controls & Joining
Technologies JLR-MEES-RF-62-009 07/11/17 V 1.8
Uncontrolled when printed
Jaguar Land Rover
Manufacturing Equipment Engineering Standard
A payload assigned via the Gripload instruction remains active until a new payload is assigned.
Although the load of the tool used changes when a tool change operation is performed (via TCP change),
the additional payload does not change. This must be done separately via the “Gripload” instruction.
Gripload must be used:
If a part/component is picked up, the payload of the component must be added.
If the part/component is dropped off, load0 must be assigned.
If a change is made from a robot mounted tool to an external tool, a load change must occur and
vice-versa.
Always ensure that the correct payload is added for each position approached by the robot. This also
applies when changing from one procedure to the next.
If you change tools and work objects in a program, you must activate the correct load using the
“Gripload” instruction.
Program examples:
Picking from a fixture.
PROC p01_a_pick_18010_x760rhd ()
!assign load0
Gripload load0;
MoveAbsJ jPounce1_X760,vmax,z200,t_gr18010_11\WObj:=w_gr18010_11;
AreaInReq 7,"Wait for Turntable 41 / 42 in position and clamps closed";
MoveL pick_040r01_040_01_x760, v200, fine, t_gr18010_11\WObj:=w_gr18010_11;
GripperWork Seq1;
Gripload ld_x760Outer_t_gr_01;
ToolReq 7,"Wait for Turntable 41 / 42 clamps open";
MoveAbsJ jPounce2_X760,vmax,fine,t_gr18010_11\WObj:=w_gr18010_11;
AreaOutRel 7;
RETURN;
ENDPROC
Advanced Manufacturing Guidelines for Programming
Engineering ABB IRC5 Robot Controllers at Date: Version:
JLR Sites Page 23 of 43
Standards, Controls & Joining
Technologies JLR-MEES-RF-62-009 07/11/17 V 1.8
Uncontrolled when printed
Jaguar Land Rover
Manufacturing Equipment Engineering Standard
Riveting around a stationary tool.
PROC p01_b_rivet_18010_x760rhd ()
! Assign part load for external gun
Gripload ld_x760Outer_t_gr_01_external;
MoveAbsJ jPounce2, vmax, z200, t_gr18010_11\Wobj:= w_gr18010_11;
! Welding with External gun
MoveJ *, vmax, z50, t_gr18010_11\Wobj:= w_gr18010_11;
RivetL lspr_hk83_8185com_2tl_004, vmax, fine, t_gr18010_11\Wobj:= w_gr18010_11;
MoveJ *, vmax, z50, t_gr18010_11\Wobj:= w_gr18010_11;
RivetL lspr_hk83_8186com_2tl_004, vmax, fine, t_gr18010_11\Wobj:= w_gr18010_11;
MoveJ *, vmax, z50, t_gr18010_11\Wobj:= w_gr18010_11;
MoveAbsJ jPounce4, vmax, fine t_gr18010_11\Wobj:= w_gr18010_11;
RETURN;
ENDPROC
Drop procedure
PROC p01_c_drop_18010_x760rhd ()
Gripload ld_x760Outer_t_gr_01;
AreaInReq 10,"wait for stn w_gr18010_11 empty";
CollZoneReq 2,"R040 to get coll zone 2 from R060";
MoveL drop_040r01_060_01_x760, v200, fine, t_gr18010_11\WObj:=w_gr18010_11;
ToolReq 10,"wait for stn 060 clamps closed";
GrpPartChk 1, t_gr18010_11_B01TK\Part2:= t_gr18010_11_B02TK;
GrpChk Opn, t_gr18010_11;
Gripload load0;
MoveL pPounce3, v500, fine, t_gr18010_11\WObj:=w_gr18010_11;
JobDone 10;
CollZoneRel 2;
AreaOutRel 10;
RETURN;
ENDPROC
Advanced Manufacturing Guidelines for Programming
Engineering ABB IRC5 Robot Controllers at Date: Version:
JLR Sites Page 24 of 43
Standards, Controls & Joining
Technologies JLR-MEES-RF-62-009 07/11/17 V 1.8
Uncontrolled when printed
Jaguar Land Rover
Manufacturing Equipment Engineering Standard
Extracts from the ABB Rapid References manual;
Advanced Manufacturing Guidelines for Programming
Engineering ABB IRC5 Robot Controllers at Date: Version:
JLR Sites Page 25 of 43
Standards, Controls & Joining
Technologies JLR-MEES-RF-62-009 07/11/17 V 1.8
Uncontrolled when printed
Jaguar Land Rover
Manufacturing Equipment Engineering Standard
5.22 Maintenance/Service Programs
Every tool must have a maintenance program with a programmed position that is suitable for access to
the tool.
The program templates are already present in the user programming module: path_programs.mod.
Examples of the structure are detailed in the current document JLR PAN Robot to PLC Standard
vXXXX.pdf.
Service positions must provide access to the whole tool without the need for climbing/access
equipment. They must be approved by the maintenance team.
5.23 Data Backup / Filing / Archiving
A server based backup and data collection system will form part of the total facility archiving system.
Daily backups will automatically occur.
Backups can also be made at the flex-pendant, storing them on the flash drive in the default backup
folder. There should only be a reasonable amount of backups stored on the robot, nominally three.
It is the integrators responsibility to manage this before handover.
5.24 Axis Hard Stops
Axis hard stops can be fitted where deemed necessary in order to limit the working range of the robot.
The hardware stops must those as supplied by ABB for the purpose and for that particular robot and,
fitted in accordance with the relevant ABB documentation.
When a hardware stop is fitted or altered in any way the relevant software limit must be changed to
prevent the hard stop being reached. The software limits must be altered so that the robot stops on a
software limit no less than 5 degrees before the hardware stop comes into effect.
The method for changing the software limit is described in the document ABB User Guide. The
programmer invokes the changes in the system parameters for that robot, which is acceptable without
consultation from the JLR Standards and Controls Dept.
THE SAFEMOVE FUNCTION IS THE PREFERRED SYSTEM TO USE TO LIMIT A ROBOTS WORKING RANGE.
HARD STOPS USAGE WILL BE CLASSED AS A DEVIATION AND MUST BE REQUESTED.
5.25 Axis Software Limits
It may be necessary to adjust the default axis software limits in order to reduce the working envelope
of the robot however; it is not permitted to adjust the software limits outside the ABB default range for
that robot type.
Advanced Manufacturing Guidelines for Programming
Engineering ABB IRC5 Robot Controllers at Date: Version:
JLR Sites Page 26 of 43
Standards, Controls & Joining
Technologies JLR-MEES-RF-62-009 07/11/17 V 1.8
Uncontrolled when printed
Jaguar Land Rover
Manufacturing Equipment Engineering Standard
5.26 User Routines/Functions
The Line builder/SE partner/Programmer must use the software supplied by JLR. It is not permitted to
create other own unique routines and functions without the permission from JLR Controls and
Standards Dept.
5.27 Cell Recovery
The programmer must ensure all appropriate measures are taken to allow the robot system/cell to
automatically recover when the Main program is selected with minimal manual intervention by the
maintenance engineer.
For any questions posed by the robot programmer via the flex-pendant to any user: they must be
coherent and explanatory to enable the correct choice to be made.
5.28 Application Initialisation
The robot programmer must ensure the appropriate checks are made by the robot software to
guarantee the hardware (Gun/Gripper etc) is in the correct starting condition immediately before the
robot enters into the working area. These checks are normally at the start of the program however; the
hardware status checks should be made immediately before the potential crash condition.
When using initialising commands, the programmer must ensure that the action of these functions
does not cause damage to machinery or can cause injury to personnel.
For example, when using commands such as Gripper Open (to ensure the gripper is open before the
robot enters into a job), the programmer must ensure the program contains the appropriate checks to
ensure gripper does not open if parts are detected within the gripper.
The routine user_init is to be used by the programmer to set any state conditions or signals or data
manipulation for when the robot is started from the beginning of the main routine.
It is NOT allowed to clear any collision zones or area releases from this routine, as the HOME position
check is made after this routine is executed.
Advanced Manufacturing Guidelines for Programming
Engineering ABB IRC5 Robot Controllers at Date: Version:
JLR Sites Page 27 of 43
Standards, Controls & Joining
Technologies JLR-MEES-RF-62-009 07/11/17 V 1.8
Uncontrolled when printed
Jaguar Land Rover
Manufacturing Equipment Engineering Standard
5.29 Error Messaging
If the user needs to add wait conditions or checks into the program then these must be supported by
an appropriate error message and DCP fault indication.
The preferred instruction to interact with a user is the UIMsgBox instruction, rather than TPErase and
TPWrite. The function UIMessageBox may also be used.
Example:
This is not acceptable.
MoveAbsJ jPounce_x761,vmax,fine,t_rnt_01\WObj:=w_fx210330_01;
WaitDi di_PLC_Sig_1=1
MoveAbsJ *,vmax,fine,t_rnt_01\WObj:=w_fx210330_01;
This is acceptable:
WaitUntil di_PLC_Sig_1=1 \MaxTime:=5\TimeFlag:=bTimedOutFlag;
While di_PLC_Sig_1<>1 DO
SetDo do005_FaultDCP, 1;
UIMsgBox\Header:="WAITING CONDITION"," "\MsgLine2:="Waiting for di_PLC_Sig_1=1 from PLC.
(Tooling OK)"\Buttons:=btnOK\Icon:=iconInfo\ Result:=brUIAnswer;
ENDWHILE
SetDO do005_FaultDCP, 0;
6 ABB Rapid Commands
6.1 WAIT Instruction
If a WAIT condition is required then the preferred instruction to be used is the WaitUntil instruction,
with a defined timeout value and the relevant error recovery/messaging system. Comments must be
used where appropriate.
!waiting for tooling ok signal from PLC
WaitUntil di_User_1=1 \MaxTime:=5\TimeFlag:=bTimedOutFlag;
While di_User_1<>1 DO
UIMsgBox\Header:="WAITING CONDITION"," "\MsgLine2:="Waiting for di_User_1=1 from PLC.
(Tooling OK)"\Buttons:=btnOK\Icon:=iconInfo\ Result:=brUIAnswer;
ENDWHILE
Advanced Manufacturing Guidelines for Programming
Engineering ABB IRC5 Robot Controllers at Date: Version:
JLR Sites Page 28 of 43
Standards, Controls & Joining
Technologies JLR-MEES-RF-62-009 07/11/17 V 1.8
Uncontrolled when printed
Jaguar Land Rover
Manufacturing Equipment Engineering Standard
6.2 Stop Instruction
Stop statements used within programs must be accompanied with a comment describing why the
program as halted. Preferably the instruction will be inside a WHILE loop.
Example:
! Incorrect type info
STOP;
6.3 Decision Instructions
When decisions are to be made in the user programs the programmer must use the instruction that is
best suited to the current situation. Decisions can be made using IF statements and TEST statements.
When using IF or TEST instructions the programmer must test and prove all possible combinations of
the software to ensure the robot always operates in a safe manner (to personnel and machinery) under
all possible or unlikely scenarios.
6.3.1 IF statement
The IF statement where used should be programmed to handle all potential outcomes.
This example is NOT acceptable as it would be possible for the robot to proceed through the program
without closing the clamps if none of the inputs are in the correct state.
IF di_PLC_User_1 =1 THEN
GripperWork G1_Y72; ! X761 clamps
ELSEIF di_PLC_User_2 =1 THEN
GripperWork G1_Y73; ! X760 clamps
ENDIF
This is correct:
IF di_PLC_User_1 =1 THEN
GripperWork G1_Y72; ! X761 clamps
ELSEIF di_PLC_User_2 =1 THEN
GripperWork G1_Y73; ! X760 clamps
ELSE
WHILE TRUE DO !no input
!no user ip
Stop;
ENDWHILE
ENDIF
Advanced Manufacturing Guidelines for Programming
Engineering ABB IRC5 Robot Controllers at Date: Version:
JLR Sites Page 29 of 43
Standards, Controls & Joining
Technologies JLR-MEES-RF-62-009 07/11/17 V 1.8
Uncontrolled when printed
Jaguar Land Rover
Manufacturing Equipment Engineering Standard
6.3.2 Test Statements
This example is NOT acceptable as it would be possible for the robot to proceed through the program
without closing the clamps if the variable nTypeInfo does not equal to 1,2 or 3.
TEST nTypeInfo
CASE 1
GripperWork G1_Y72; ! X761 clamps
CASE 2
GripperWork G1_Y721; ! X760 clamps
CASE 3
GripperWork G1_Y721; ! X762 clamps
ENDTEST
This is correct:
TEST nTypeInfo
CASE 1
GripperWork G1_Y72; ! X761 clamps
CASE 2
GripperWork G1_Y721; ! X760 clamps
CASE 3
GripperWork G1_Y721; ! X762 clamps
DEFAULT
WHILE TRUE DO !no valid type info
!no user ip
Stop;
ENDWHILE
ENDTEST
6.4 GOTO (Jump) Instruction
The GOTO function within the robot controller MUST NOT BE USED IN ANY CIRCUMSTANCES.
Advanced Manufacturing Guidelines for Programming
Engineering ABB IRC5 Robot Controllers at Date: Version:
JLR Sites Page 30 of 43
Standards, Controls & Joining
Technologies JLR-MEES-RF-62-009 07/11/17 V 1.8
Uncontrolled when printed
Jaguar Land Rover
Manufacturing Equipment Engineering Standard
6.5 WHILE Loop
If a WHILE loop is to be used and it does not contain a wait condition (i.e. WaitUntil, Stop, etc.) then it
must contain a WaitTime instruction to prevent the CPU overrunning.
Example
WHILE di_1=0 DO
WaitTime 0.1;
!waiting for something
ENDWHILE
6.6 STOP Command
If the STOP statement is to be used then it must be enclosed by a Rapid WHILE DO function.
Example:
IF nTypeInfo =1 THEN
!part 1
ELSEIF nTypeInfo =2 THEN
!Moves from Handover Position
ELSE
WHILE TRUE DO
STOP;
!* Incorrect Type Info
ENDWHILE
ENDIF
Advanced Manufacturing Guidelines for Programming
Engineering ABB IRC5 Robot Controllers at Date: Version:
JLR Sites Page 31 of 43
Standards, Controls & Joining
Technologies JLR-MEES-RF-62-009 07/11/17 V 1.8
Uncontrolled when printed
Jaguar Land Rover
Manufacturing Equipment Engineering Standard
6.7 Comment Command
All blank lines should contain a comment instruction. This enables line selection when using the flex-
pendant.
Good Example.
TEST nTypeInfo
CASE 1
!
GripperWork G1_Y72; ! X761 clamps
!
CASE 2
!
GripperWork G1_Y721; ! X760 clamps
!
CASE 3
!
GripperWork G1_Y721; ! X762 clamps
!
ENDTEST
Bad Example.
TEST nTypeInfo
CASE 1
GripperWork G1_Y72; ! X761 clamps
CASE 2
GripperWork G1_Y721; ! X760 clamps
CASE 3
GripperWork G1_Y721; ! X762 clamps
ENDTEST
Advanced Manufacturing Guidelines for Programming
Engineering ABB IRC5 Robot Controllers at Date: Version:
JLR Sites Page 32 of 43
Standards, Controls & Joining
Technologies JLR-MEES-RF-62-009 07/11/17 V 1.8
Uncontrolled when printed
Jaguar Land Rover
Manufacturing Equipment Engineering Standard
6.8 Return Command
At the end of each routine the RETURN instruction should be inserted. This allows for any time a user
has to manually move the program pointer to the end of a routine to abort it, for instance.
In order to provide a command that the program pointer can be moved too that does nothing else but
exit the routine, the rapid command “RETURN” must be entered at the end of the routine stack, and
before the error handler/backward handler.
Example where there is no “ERROR” or “BACKWARD” handler.
MoveAbsJ jPounce_x761,vmax,fine,t_rnt_01\WObj:=w_fx210330_01;
CollZoneRel 11;
RETURN ;
ENDPROC
Example where only an “ERROR” handler is included.
MoveAbsJ jPounce_x761,vmax,fine,t_rnt_01\WObj:=w_fx210330_01;
CollZoneRel 11;
RETURN ;
ERROR
!Error Handler
ENDPROC
Advanced Manufacturing Guidelines for Programming
Engineering ABB IRC5 Robot Controllers at Date: Version:
JLR Sites Page 33 of 43
Standards, Controls & Joining
Technologies JLR-MEES-RF-62-009 07/11/17 V 1.8
Uncontrolled when printed
Jaguar Land Rover
Manufacturing Equipment Engineering Standard
7 Motion Programming
The robot motion must be programmed to be smooth and fluid, without un-necessary stop points. This
prevents mechanical wear and tear, reduces cycle time and uses less energy.
The robot programs must be tested to ensure the error message “50024, Corner path failure” does not
appear in the Flex pendent message window.
This error is normally caused by the overlapping zones (see Zone Data) configured between adjacent
motion point. Please refer to the manuals provided by ABB for further information.
It is recommended not turn to turn this function off – rather to cure the faults first – the error message
does display the line number at which the fault occurs.
7.1 Acceleration Limiting
All robot motion must be programmed to be smooth and fluid, with no excessive shaking of the robot
or the tool and workpiece. This causes unnecessary mechanical wear, decreases equipment life and uses
excess energy.
For robots with large tools i.e. grippers, the gripper “shake” must be reduced to a minimum using
instructions such as AccSet. It is recommended that the robot with a large tool/gripper is programmed
in the first instance with an acceleration rate limited to 60% (AccSet:=100,60;). This can then be
increased slowly after all other measures have been taken to reduce the gripper shake.
7.2 Velocity Limiting
An ABB 6700 robot programmed to move at vMax, with a nominal 150kG load will move at an average
of 1800mm/S (dependant on path length etc.) and will cover 540mm in 0.3 seconds.
Rushing towards a request position with a path length < 540mm will result in the robot stopping at the
position before it receives the request.
You will have to determine if the robot gets to a request position before the request is given. If this
happens, reduce the speed of the robot so it consistently arrives at the point it receives the request
without stopping.
MoveJ P1, vmax, z200, tWeight;
This is NOT good (takes longer) Coll_Req 2;
MoveJ P2, vmax, z200, tWeight;
MoveJ P1, v400, z50, tWeight;
This IS good (takes shorter) Coll_Req 2;
MoveJ P2, vmax, z200, tWeight;
Advanced Manufacturing Guidelines for Programming
Engineering ABB IRC5 Robot Controllers at Date: Version:
JLR Sites Page 34 of 43
Standards, Controls & Joining
Technologies JLR-MEES-RF-62-009 07/11/17 V 1.8
Uncontrolled when printed
Jaguar Land Rover
Manufacturing Equipment Engineering Standard
7.3 Common Positions and Fixtures
7.3.1 Common fixtures
Where different fixtures in the same station (including rotary turntables, trunnions etc.) hold identical
parts, each fixture must have its own work object and process point rob-targets.
Example.
The same rivet on different fixtures will have different rob-target names.
lspr_hk83_8185com_2tl_004 Fixture 1
lspr_hk83_8185com_2tl_004a Fixture 2
7.3.2 Common Positions
Where operations on the car/part are common to more than one variant and each variant shares a
similar work content to each other (i.e. in what is the process operation; spot-weld, rivet, nut etc.) then
in order to reduce future change/modpossing issues it may be worth considering the following options:
7.3.2.1 Split the robot paths into smaller routines (recommended):
Example.
P01()
p01_a_rrt01_011_x760com ( ) ; Common Rivets for 1st variant & 2nd variant
p01_b_rrt01_011_x760rhd ( ) ; Rivets specific for 1st variant (i.e. x760 RHD)
P02()
p01_a_rrt01_011_x760com ( ) ; Common Rivets for 1st variant & 2nd variant
p01_b_rrt01_011_x760lhd ( ) ; Rivets specific for 2nd variant (i.e. x760 LHD)
7.3.2.2 Use IF ELSE ENDIF (as appropriate) statements and TypeInfo bits within program.
The decision making of the process is made by the PLC and sent to the robot using TypeInfo bits.
Example: reference to above example properly
P01()
!**********************
!* X760 common rivet positions
!**************************
!Rivet positions (including any program positions to and from rivet)
IF nTypeInfo =2 THEN
Advanced Manufacturing Guidelines for Programming
Engineering ABB IRC5 Robot Controllers at Date: Version:
JLR Sites Page 35 of 43
Standards, Controls & Joining
Technologies JLR-MEES-RF-62-009 07/11/17 V 1.8
Uncontrolled when printed
Jaguar Land Rover
Manufacturing Equipment Engineering Standard
!**********************
!* X760LHD rivet positions*
!**********************
!Rivets positions (including any program positions to and from rivet)
ELSEIF nTypeInfo =2 THEN
!**********************
!* X760RHD rivet positions*
!**********************
!Rivets positions (including any program positions to and from rivet)
ELSEIF
!Stop
WHILE TRUE DO
STOP;
!* Incorrect Type Info
ENDWHILE
ENDIF
7.3.3 Common PICK/DROP positions
If the same part is picked from the same location and used in different variants of the car it is preferred
to have a common pick routine: i.e. p01_a_pick_011_x760com.
Example.
P01()
p01_a_pick_011_x760com
p01_b_drop_021_x760rhd
p01_c_rrt01_011_x760rhd ( ) ; Rivets specific for 1st variant (i.e. x760 RHD)
P02()
p01_a_pick_011_x760com
p01_b_drop_021_x760lhd
p01_b_rrt01_011_x760lhd ( ) ; Rivets specific for 2nd variant (i.e. x760 LHD)
IF IT IS THE SAME PART BUT IN DIFFERENT LOCATIONS/FIXTURES THEN IT MUST BE NAMED
DIFFERENTLY
All positions programmed must be done in the most optimum way to ensure smooth motion of the
robot. The fewer the amount of movements the better.
Advanced Manufacturing Guidelines for Programming
Engineering ABB IRC5 Robot Controllers at Date: Version:
JLR Sites Page 36 of 43
Standards, Controls & Joining
Technologies JLR-MEES-RF-62-009 07/11/17 V 1.8
Uncontrolled when printed
Jaguar Land Rover
Manufacturing Equipment Engineering Standard
7.4 Releasing Work Areas and Collision Zones
Area releases commands (AreaOutRel) and collision release commands (CollZoneRel) must be executed
after a fine point is used in the previous motion instruction.
Example.
MoveAbsJ jPounce_x761, vmax fine, t_rnt_01\WObj:=w_fx210330_01;
AreaOutRel 1;
AreaOutRel 2;
JobDone 2;
CollZoneRel 11;
7.5 Requesting Work Areas and Collision Zones
Area request commands (AreaInReq), collision release commands (CollZoneReq) and tool requests
(ToolReq) can be requested on the fly, that is the previous move commands should have large zones; to
allow the robot to communicate with the PLC whilst it is moving. If more than one zone/area is
requested then these should be only separate requests with rob-targets in different positions to allow
the communications to take place without stopping the robot.
Example:
MoveAbsJ jPounce_x761, vmax z200, t_rnt_01\WObj:=w_fx210330_01;
AreaInReq 1;
AreaInReq 2;
CollZoneReq 11;
Advanced Manufacturing Guidelines for Programming
Engineering ABB IRC5 Robot Controllers at Date: Version:
JLR Sites Page 37 of 43
Standards, Controls & Joining
Technologies JLR-MEES-RF-62-009 07/11/17 V 1.8
Uncontrolled when printed
Jaguar Land Rover
Manufacturing Equipment Engineering Standard
7.6 Consecutive Move Instructions
It is not desirable and increases cycle time to have consecutive move instructions with the robot in the
same position. This situation will result in the robot stopping at a fine point. A fine point stops the robot
motion and can incur a time penalty of approx. 1 second, dependant on robot type and tool mass.
Example.
This is NOT Recommended:
MoveJ P1, vmax, z200, tWeight;
MoveJ P2, vmax, z200, tWeight;
MoveJ P2, vmax, z200, tWeight;
MoveJ P3, vmax, z200, tWeight;
This repeated use of positions is normally prevalent when different procedures/programs are used in
the robot, which is the standard way programming at JLR. When the last position in a procedure has an
X,Y,Z value as the first position in the NEXT procedure it results in the robot stopping to a fine point
unnecessarily.
Example.
This is Not Recommended:
Example.
This is the Recommended method:
Advanced Manufacturing Guidelines for Programming
Engineering ABB IRC5 Robot Controllers at Date: Version:
JLR Sites Page 38 of 43
Standards, Controls & Joining
Technologies JLR-MEES-RF-62-009 07/11/17 V 1.8
Uncontrolled when printed
Jaguar Land Rover
Manufacturing Equipment Engineering Standard
7.7 Programming with Track Slides
Robot systems using track slides must be programmed with as fewer track slide movements as possible.
Move the robot into the required area on the track to reach the process positions and then utilise robot
movements.
Use the track slide to move the robot to a different area. If the robot is working, e.g. on a fixture, then
no track slide movements should be used (unless a position on the fixture demands the robot to be
moved along the track) until the robot needs to move to another process area.
This will save wear and tear and above all reduces the energy used.
It should not be seen as a seventh axis that should be moved all of the time!
Remember – HOT motors indicate energy wastage and inefficient programming.
Advanced Manufacturing Guidelines for Programming
Engineering ABB IRC5 Robot Controllers at Date: Version:
JLR Sites Page 39 of 43
Standards, Controls & Joining
Technologies JLR-MEES-RF-62-009 07/11/17 V 1.8
Uncontrolled when printed
Jaguar Land Rover
Manufacturing Equipment Engineering Standard
8 Programming: Golden Rules, Tips and Guidelines
The following information summaries good programming rules that should be practised when
programming the robot:
1. The MoveJ instruction does not always produce the best result. Using MoveL instructions can
return better results in both time and energy saving measures. For movements that involve an
individual axis moving more than 90 degrees will require MoveJ commands, but shorter
movements will run smoother and better in a MoveL format.
2. A fine point in a program will bring both the robot and the robot computer to a stop. A fine point
stop generally incurs a 1 second penalty in time. There should be as few stop points as possible
in a program.
3. No consecutive rob-targets/coordinates with the same co-ordinate values. These will be
executed as a fine point and will incur a time penalty.
4. Any requests to the PLC (collision, area and tool etc.) should NOT be done with or after a fine
point. These should be free to execute in any static or moving position. On the fly, as it is.
MoveJ *, vMax, z200, tool1;
RECOMMENDED (takes >1 seconds shorter) Coll_Request 2;
MoveJ *, vMax, z200, tool1;
MoveJ *, vMax, z200, tool1;
MoveJ *, vMax, fine, tool1;
NOT RECOMMENDED (takes >1 seconds longer) Coll_Request 2;
MoveJ P2, vMax, z200, tool1;
MoveJ P3, vMax, z200, tool1;
5. Any releases (collision, area and tool etc.) to the PLC will be executed in a static known position
after a fine point. However they could be done after the next move which will save 0.3 seconds*
each time (the robot will execute the release as it performing the next move):
MoveJ *, vMax, fine, tool1;
RECOMMENDED (takes 0.3 seconds shorter) MoveJ *, vMax, z200, tool1;
Coll_Release 2;
MoveJ *, vMax, z200, tool1;
MoveJ *, vMax, fine, tool1;
NOT RECOMMENDED (takes 0.3 seconds longer) Coll_Release 2;
MoveJ P2, vMax, z200, tool1;
MoveJ P3, vMax, z200, tool1;
*= Estimated time based on 100mS PLC scan time.
Advanced Manufacturing Guidelines for Programming
Engineering ABB IRC5 Robot Controllers at Date: Version:
JLR Sites Page 40 of 43
Standards, Controls & Joining
Technologies JLR-MEES-RF-62-009 07/11/17 V 1.8
Uncontrolled when printed
Jaguar Land Rover
Manufacturing Equipment Engineering Standard
6. An ABB 6700 robot programmed to move at vMax, with a nominal 150kG load will move at an
average of 1800mm/S (dependant on path length etc.) and will cover 540mm in 0.3 seconds.
Rushing towards a request position with a path length < 540mm will result in the robot stopping
at the position before it receives the request. You will have to determine if the robot gets to a
request position before the request is given. If this happens, reduce the speed of the robot so it
consistently arrives at the point it receives the request without stopping.
MoveJ P1, v400, z50, tWeight;
RECOMMENDED (takes shorter)
Coll_Req 2;
MoveJ P2, vmax, z200, tWeight;
MoveJ P1, vmax, z200, tWeight;
NOT RECOMMENDED (takes longer)
Coll_Req 2;
MoveJ P2, vmax, z200, tWeight;
7. Large grippers present huge moments of inertia close to the area where the tool is coupled to
the robot arm. For all grippers and large carried tools acceleration limits should be put into the
programs at the relevant points in order to extend the life time of the tool and robot. These
should be given in the first instance as they will present time penalties. A number of instructions
are available in the ABB controller to limit acceleration and deceleration parameters. These
include:
Default setting Suggested Description
AccSet 100, 100; AccSet 100, 60 Limits both accel and decel.
This will limit the robot to
reaching 60% of its acceleration
value
AccSet 100, 100; AccSet 30, 100 This will limit the robot to
reaching 30% of its acceleration
value over time
VelSet 100, 5000; VelSet 50, 800 Limits the speeds to 50% stated
value with the TCP never
achieving more than 800mm/s
PathAccLim FALSE, FALSE; PathAccLim TRUE \AccMax Limits the accel and decel limits
:= 2, TRUE \DecelMax := 4; separately. In M/s/s.
2m/s/s accel
4m/s/s decel
Advanced Manufacturing Guidelines for Programming
Engineering ABB IRC5 Robot Controllers at Date: Version:
JLR Sites Page 41 of 43
Standards, Controls & Joining
Technologies JLR-MEES-RF-62-009 07/11/17 V 1.8
Uncontrolled when printed
Jaguar Land Rover
Manufacturing Equipment Engineering Standard
8. Robot Studio Signal Analyser. When an OLP is generated and ready to be downloaded to the
robot all path programs should be run through the simulation function in Robot Studio, and using
the signal analyser function to monitor the power spikes on movements. Any excessive power
spikes should be attempted to be programmed out.
Signals to be monitored include:
9 Energy Efficiency
All programs in the robot system must be programmed with respect to energy saving. The movements
must be fluid and no “jerkiness” apparent. This can be achieved by reducing the use of fine points,
reducing the speed of the robot at relevant points in the motion planning and tuning the load data
correctly. Robot programs should be run through the ABB signal analyser software (RobotStudio
package) to see where peak power demands can be reduced. This saves both energy and wear and tear
on the robot system.
Use MoveL instructions when possible
Observe the signal analyser results and act accordingly
Reduce accelerations to reduce power consumption
Adjust speeds relevant to the achieved speed (v400 instead of vMax)
Use PathACCSet instructions to use gravitational forces more effectively
Advanced Manufacturing Guidelines for Programming
Engineering ABB IRC5 Robot Controllers at Date: Version:
JLR Sites Page 42 of 43
Standards, Controls & Joining
Technologies JLR-MEES-RF-62-009 07/11/17 V 1.8
Uncontrolled when printed
Jaguar Land Rover
Manufacturing Equipment Engineering Standard
10 Hardware Checking
Any hardware or furniture forming part of the robot system (tools, end-effectors, sensors etc.) should
have a suitable means of checking the quality and other pertaining factors (i.e. size, position etc.)
affecting the use of such devices.
Such devices include (but not limited to):-
10.1 Grippers
A method of checking relevant devices and points on grippers must be provided. This could be a pointer
located in the cell and an executable routine in the robot that drives certain clamps or pins on the
gripper to the pointer.
10.2 Laser Sensors, Optical Sensing Devices, Electronic Sensors
Laser sensors that are used for object detection must have a suitable means provided of validating the
position of the sensor and for setting up any relevant parameters in the sensor’s control system. It is
recommended to have an interactive executable routine in the robot that uses the robot to move the
sensor to calibration positions to check its position and tune the sensor parameters. A written single
point lesson on how to replace the sensor must be provided.
10.3 Rivet Guns, Spot Welding Guns, Dispensing Nozzles
A method of checking the TCP position of the tool must be provided. This could be a pointer, which is
driven via an executable routine in the robot, to the TCP position.
10.4 Cameras
A method of checking the position of any camera hardware must be provided.
Advanced Manufacturing Guidelines for Programming
Engineering ABB IRC5 Robot Controllers at Date: Version:
JLR Sites Page 43 of 43
Standards, Controls & Joining
Technologies JLR-MEES-RF-62-009 07/11/17 V 1.8
Uncontrolled when printed