You are on page 1of 33

Jaguar Land Rover

PAN Projects
Robot to PLC Programming Standard
for
FANUC’s R30iB Controller
Robot To PLC Standard
Programming

Issue No. Details of the Update Author


1.0 Initial Standard Release JP
2.0 Added Appendix 6&7 for Numeric Registers and Position Registers. JP
3.0 UPDATED Numeric Registers + General Update JP
4.0 Updated Type Info Request, Vision System Switch Outs JP

Jaguar Land Rover : Robot to PLC Programming Standard for FANUC’s R30iB Controller 2
Robot To PLC Standard
Programming

Contents
1. Introduction ................................................................................................................................. 5
2. Safety ......................................................................................................................................... 5
3. Robot Configuration .................................................................................................................... 6
4. IO Interface ................................................................................................................................. 7
5. Program Selection ...................................................................................................................... 8
5.1 Service Programs .................................................................................................................. 8
5.2 Service Positions................................................................................................................... 9
6. Command Programs................................................................................................................. 10
6.1 Work Areas In and Out ........................................................................................................ 10
6.1.1 Area In Request ............................................................................................................ 10
6.1.2 Area Out Release ......................................................................................................... 10
6.2 Collision Zones.................................................................................................................... 11
6.2.1 Collision Zone Request ................................................................................................. 11
6.2.2 Collision Zone Release ................................................................................................. 11
6.3 Job Done............................................................................................................................. 12
6.4 Tool Request ....................................................................................................................... 12
6.5 Set Tool Number ................................................................................................................. 12
6.6 Type Information Request ................................................................................................... 13
7. Initialisation Programs............................................................................................................... 14
7.1 Initialise Home..................................................................................................................... 14
7.2 Initialise Robot Sequence .................................................................................................... 14
7.3 Cycle Start........................................................................................................................... 15
7.4 Cycle End............................................................................................................................ 15
8. Integrator/End User Programs .................................................................................................. 16
8.1 User Initialisation ................................................................................................................. 16
8.2 User Reset .......................................................................................................................... 16
9. Collision Guard Levels .............................................................................................................. 17
10. Naming Conventions............................................................................................................... 18
10.1 Manufacturing Zones......................................................................................................... 18
10.2 Manufacturing Process Types ........................................................................................... 19
10.3 Manufacturing Tool Types ................................................................................................. 19
10.4 Product Model ................................................................................................................... 19
10.5 User Tool Naming (UTOOL) .............................................................................................. 20
10.5.1 Tools Supplied with Manufactures Identification.......................................................... 20

Jaguar Land Rover : Robot to PLC Programming Standard for FANUC’s R30iB Controller 3
Robot To PLC Standard
Programming

10.5.2 Tools Supplied without Manufactures Identification ..................................................... 20


10.6 User Frame Naming (UFRAME) ........................................................................................ 20
10.6.1 Fixed (Fixture)............................................................................................................. 20
10.6.2 Moveable (Turntable) .................................................................................................. 20
10.6.3 Carried (Gripper) ......................................................................................................... 20
10.7 Process Position and Joining Data Naming ....................................................................... 21
10.7.1 Process Position Naming ............................................................................................ 21
10.7.2 Process Joining Data Naming ..................................................................................... 21
10.8 Product Model Sequence .................................................................................................. 22
10.8.1 Process Operation in Fixed Fixture ............................................................................. 22
10.8.2 Process Operation in Moveable (Turn Table) Fixture .................................................. 22
10.8.3 Process Operation at Pedestal.................................................................................... 22
10.8.4 Tool Operations .......................................................................................................... 23
10.8.5 Material Handling Operation in Fixed Fixture............................................................... 23
10.8.6 Material Handling in Moveable (Turn Over) Fixture ..................................................... 23
11. Defining the Tools TCP and Load ........................................................................................... 24
11.1 Robot Mounted TCP Definition .......................................................................................... 24
11.2 Pedestal Mounted TCP Definition...................................................................................... 26
Appendix 1 – RSR0001 Example.................................................................................................. 27
Appendix 2 – Program Example (PROG2.tp (Spot Welding))........................................................ 28
Appendix 3 – Position comments for Joining................................................................................. 29
Appendix 4 – Material Handling Position Naming.......................................................................... 30
Appendix 5 – Dispensing position naming..................................................................................... 30

Jaguar Land Rover : Robot to PLC Programming Standard for FANUC’s R30iB Controller 4
Robot To PLC Standard
Programming

1. Introduction
This document only specifies the “Robot to PLC Programming Standard” within FANUC’s R30iB
Robot Controller with “EtherNetIP” bus communication.

It is only relevant for JLR PAN Project installations and should be used in conjunction with “JLR
BIW RobCAD Standard” documentation

The document should be read and fully understood by the end user before any commissioning and
or programming is started.

IF IN DOUBT ASK

2. Safety
The safety of people is always of primary importance in any situation. When applying safety
measures to your robotic system, consider the following:

• External devices
• Robot(s)
• Tooling
• Workpiece

Only trained personnel should operate a Robot

For more information refer to the Safety section in the:-

• FANUC Corporation SYSTEM R-30iB and R-30iB Mate HandlingTool and LR HandlingTool
Setup and Operations Manual MAROBHT8203131E REV C

The Robot E-Stop out is wired into some Allen Bradley Safe Point I/O which is then monitored by
the Line PLC. The safety of the robot is all run over Ethernet I/P safe and utilises the Robots Safe
I/O connect feature. This can make logical decisions on Safe Inputs on whether to issue a robot E-
Stop or fence output.

All safety systems must be fully functional without any manual overrides to ensure the end
user is fully protected from all hazards.

Jaguar Land Rover : Robot to PLC Programming Standard for FANUC’s R30iB Controller 5
Robot To PLC Standard
Programming

3. Robot Configuration
There will be a standard package that will be loaded into all JLR Fanuc Robots as a standard, this
will include Standard Teach Pendant Programs, Macros, Condition Handlers, Karel Programs and
PMC

 Standard Teach Pendant (TP) Programs:- These are stored in the TPP memory allocation
on the SRAM (non-volatile) memory of the Robot. TP programs are the routines the Robot
runs when in automatic to complete a task. These programs can also be setup with a Sub-
Type Macro or Condition Handler. The main TP program that is ran when the Robot is first
started is RSR0001 (Robot Service Request). This contains the “SELECT” statement which
selects the correct program to run depending on the program number supplied to the robot
via the PLC. Program numbers 1 to 99 are for product/style variants and can be added to
the “SELECT” statement by the integrator/end user as necessary, 100 to 127 are for
service programs. Service programs 100 to 116 are pre-defined and should not be changed
by the integrator/end user, 117 to 127 are free to use by the integrator/end user and can be
added to the “SELECT” Statement if required.

 Karel Programs are loaded in to the Robot to conduct certain tasks that are unable to be
done in TP language. The code for these programs isn’t visible and the Integrator/End User
are unable to edit these without the source code. Karel programs can be called to run from
TP programs just in the same way as any other programs.

 PMC (Programmable Machine Controller) is ladder logic that runs in the background of the
robot and is used to communicate with the PLC, TP Programs and third party equipment
around the cell. Fundamentally PMC is a PLC built into the robot controller as standard.
This has been written and proven by FANUC UK Ltd and MUST not be changed by the
Integrator/End User.

All Robots are configured with FANUC’s standard software package “SpotTool+”. “SpotTool+” was
developed with flexible production lines in mind, where it might be required for the same robot to
conduct different process’, such as:-

 Spot Welding
 Dispensing
 Handling

By making “SpotTool+” the bases of all the JLR robots it allows the Integrator/End User make one
Robot capable of carryout 3 different process’. Then when a TP program is created the software
will ask for this particular TP program what kind of application will the robot be carrying out and it
sets itself up respectively.

Jaguar Land Rover : Robot to PLC Programming Standard for FANUC’s R30iB Controller 6
Robot To PLC Standard
Programming

4. IO Interface
The fieldbus communication is EtherNetIP and the robot is a slave to the PLC.

The integrator/end user MUST set the “Bus – EtherNet/IP Address” in accordance with the JLR
Standard and Controls Department allocation sheet. The “Bus - EtherNet/IP Subnet Mask”
(255.255.248.0) should NOT be changed by the integrator/end user and the “Bus - EtherNet/IP
Gateway” should be left blank (no values).

The interface is 512 bits in length and the first 384 bits (Digital Outputs/Inputs 1384) are
reserved for the JLR Standard and any pre-defined IO signals in the robot system MUST NOT be
changed by the integrator/end user. The last 128 bits (Digital Outputs/Inputs 385512) are free to
use by the integrator/end user but JLR Standards and Controls must be informed if and when
used.

Terminology:-
DO[..] – Digital Output
DI[..] – Digital Input

Below shows how the 512 bits are allocated:

DO[1] / DI[1]  DO[384] / DI[384] Standard PLC to Robot IO interface.

DO[385] / DI[385]  DO[512] / DI[512] Free for integrator/end user.

We also use Group Inputs (GI[..]) and Group Outputs (GO[..]) to communicate integers values
between the Robot and PLC. These are made up of a sequence of digital I/O signals. These are
interpreted as a binary integer.

If shared devices are to be used on a robot the IO from Digital Output/Inputs 384 to 511 (Free for
integrator/end user) will be used before any hardware needs to be added.

4.1 Vision System Switch Outs


A byte of PLC data has been allocated to give the operator the ability to key out individual camera
systems on the robot. Originally there was only a single byte that would key out a vision system,
but with the increased use of vision system there is the possibility to have multiple system on one
robot. Therefore if one of those system was down then it would need keying out but with the old
process that would mean that the other system would be disable also, not ideal. By allocating a
byte of PLC data it gives the operator the ability to key out up to 8 individual vision systems on one
robot. Currently on the X260 project those bits are allocated accordingly:-

Rob_Out[x,12].0 DI385 Perceptron Switched Out


Rob_Out[x,12].1 DI386 ISRA Switched Out
Rob_Out[x,12].2 DI387 Quiss Switched Out
Rob_Out[x,12].3 DI388 Cognex Switched Out
Rob_Out[x,12].4 DI389 Recognisense Switched Out
Rob_Out[x,12].5 DI390 Die Check Switched Out
Rob_Out[x,12].6 DI391 Camera 7 Switched Out
Rob_Out[x,12].7 DI392 Camera 8 Switched Out
.

Jaguar Land Rover : Robot to PLC Programming Standard for FANUC’s R30iB Controller 7
Robot To PLC Standard
Programming

5. Program Selection
ALL program selection is done via a group input (GI[1:PROG NUMBER]) sent from the PLC, this
then calls the necessary program P01, P02 …P127 from the “RSR0001” TP (Teach Pendant),
using the SELECT statement in the main RSR0001 routine.

Terminology:-
RSR – Robot Service Request – Main Robot program that can be start via a remote device such
as the PLC

Valid product model programs are from P01 to P99 and should ALWAYS start with the robot at its
home position and ALWAYS end with the robot at its home position.

Valid service programs are from P100 to P127 and follow the same principle as above. The robot
will stop at the service position until the return to home is sent from the PLC.

5.1 Service Programs


The following service programs are pre-defined in the SELECT Statement in the main routine
within “RSR0001”. The corresponding call Programs 100-116 which are Teach Pendant Programs
stored on the robot, any used for each specific robot can be modified and MUST be tested by the
integrator/end user before being executed at full speed.

100. Tool Changer Service Position.


101. Tool 1 Service Position.
102. Tool 1 Tip Change.
103. Tool 1 Tip Dress.
104. Tool 1 Reserved.
105. Tool 1 Spare to use by integrator/end user.
106. Tool 2 Service Position.
107. Tool 2 Tip Change.
108. Tool 2 Tip Dress.
109. Tool 2 Reserved.
110. Tool 2 Spare to use by integrator/end user.
111. Tool 3 Service Position.
112. Tool 3 Tip Change.
113. Tool 3 Tip Dress.
114. Tool 3 Reserved.
115. Tool 3 Spare to use by integrator/end user.
116. Tool 4 Service Position.
117 to 127. Spare to use by integrator/end user.

Jaguar Land Rover : Robot to PLC Programming Standard for FANUC’s R30iB Controller 8
Robot To PLC Standard
Programming

5.2 Service Positions


The JLR Robot to PLC Standard comes with some pre-defined service positions that the
integrator/end user MUST modify to make the service programs work. Within Fanuc’s Controller
these Service Positions are defined as Reference Positions. A Reference Position allows the robot
to issue an output to the PLC when the Robot is at the position within a pre-defined joint tolerance.

The following service positions are in ALL robots:

Reference Position Comment Comment PR[..] DO[..]


Home Home Position PR[1] DO[8] & UO[7]
Tool Change Serv Pos Tool Change Service Position PR[50] DO[3082]
Serv Position T1 Service Position Tool 1 PR[51] DO[3083]
Serv Position T2 Service Position Tool 2 PR[52] DO[3084]
Serv Position T3 Service Position Tool 3 PR[53] DO[3085]
Serv Position T4 Service Position Tool 4 PR[54] DO[3086]
Serv Position T5 Service Position Tool 5 PR[55] DO[3087]
Serv Position T6 Service Position Tool 6 PR[56] DO[3088]
Serv Position T7 Service Position Tool 7 PR[57] DO[3089]

All of these reference positions names can be changed by the Integrator/End User to match the
actual tool name that is being used. However when this is done the name must be altered where
ever else it is used within the robot, e.g. The Position Register (PR[..]) comment for the PR[..]
related to that tool or the I/O comment relating to the Digital Output (DO[..]) that is on when the
robot is at the reference position.

If the Reference Position needs to be changed/altered the Integrator/End User should Record the
new position in the relevant Position Register and also record the new position in the Reference
Position Data.

Jaguar Land Rover : Robot to PLC Programming Standard for FANUC’s R30iB Controller 9
Robot To PLC Standard
Programming

6. Command Programs
The command routines are used by the integrator/end user to sequence with the PLC, all the
command programs are contained within the FANUC R30iB controller. These programs should
not be altered by the integrator/end user. Appendix 1 shows an example RSR0001 which is
the main routine. Appendix 2 shows a standard program that is called from the RSR001.

6.1 Work Areas In and Out


The standard PLC to Robot IO interface allows up to 8 work areas but this can be extended up
to 64 work areas but this MUST be requested through JLR Standards and Controls
Department.

6.1.1 Area In Request


 Used to request entry into a work area
 Program Name – AREA_IN_REQ
 TP usage/notation – CALL AREA_IN_REQ(1,1) – Argument Value
 Associated I/O DO[49-56] and DI[17-24]

The same Area Request program is used independent of which area is required. To do this an
argument, of integer type, is passed into the program and the value of this argument dictates which
Area will be requested. The second argument is used to indicate if it is possible for the robot to
return directly to home from the position at which it calls the Area. A 1 indicates that it is possible to
return home a 0 means it is unable to return home. Both these arguments should be filled in
whenever the program is sed. The integrator/end user can use this program wherever they deem
necessary and specify the number for the area they require. The Area In Request program will
error handle the value passed into it, therefore if the user enters an Area number which is out of
range an error will occur.

Example Program:-

! Area 1 Request
CALL AREA_IN_REQ(1,1)
CALL P01_ A_RSW01_010

6.1.2 Area Out Release


 Used to release access to an Area back to the PLC
 Program Name – AREA_OUT_REL
 TP usage/notation – CALL AREA_OUT_REL(1) – Argument Value
 Associated I/O DO[17-24]

The same Area Out Release program is used independent of which area is required to be
released. To do this it works in the same way to the Area In Request program, by using an
argument passed into the program to decide which area to release.

Example Program:-

! Area 1 Release
CALL AREA_OUT_REL(1)

Jaguar Land Rover : Robot to PLC Programming Standard for FANUC’s R30iB Controller 10
Robot To PLC Standard
Programming

6.2 Collision Zones


There are 63 collision zones available but collision zone 63 can only be used as a
release/clear all collision zones and can only be done when the robot is at its home position.

6.2.1 Collision Zone Request


 Used to request entry into a Collision Zone
 Program Name – COLL_ZONE_REQ
 TP usage/notation – CALL COLL_ZONE_REQ (1) – Argument Value
 Associated I/O DO[31-32], GO[2], DI[31-32] and GI[2]

The same Collision Zone Request program is used independent of which Collision Zone is
required. To do this a argument, of integer type, is passed into the program and the value of this
argument dictates which Area will be requested. This argument value is then passed into the
Group Output (GO[]) so the PLC has this information. The integrator/end user can use this
program wherever they deem necessary and specify the number for the Zone they require. The
Collision Zone Request program will error handle the value passed into it, therefore if the user
enters an Area number which is out of range an error will occur.

Example Program:-

! Zone 1 Request
CALL COLL_ZONE_REQ(1)

6.2.2 Collision Zone Release


 Used to release access to a Collision Zone back to the PLC
 Program Name – COLL_ZONE_REL
 TP usage/notation – CALL COLL_ZONE_REL(1) – Argument Value
 Associated I/O DO[31-32], GO[2], DI[31-32] and GI[2]

The same Collision Zone Release program is used independent of which Zone is required to be
released. To do this it works in the same way to the Collision Zone Request program, by using an
argument passed into the program to decide which Zone to release.

Example Program:-

! Zone 1 Release
CALL COLL_ZONE_REL(1)

Jaguar Land Rover : Robot to PLC Programming Standard for FANUC’s R30iB Controller 11
Robot To PLC Standard
Programming

6.3 Job Done


 Used to inform the PLC that a particular Job or Task has been completed
 Program Name – JOB_DONE
 TP usage/notation – CALL JOB_DONE(1) – Argument Value
 Associated I/O DO[41-48]

The same Job Done program is used independent of which Job or Task has been completed. To
do this a argument, of integer type, is passed into the program and the value of this argument
dictates which Job or Task has been completed. The integrator/end user can use this program
wherever they deem necessary and specify the number for the Job or Task they require. The Job
Done program will error handle the value passed into it, therefore if the user enters an Job number
which is out of range an error will occur.

Example Program:-

! Job 1 Done
CALL JOB_DONE(1)

6.4 Tool Request


 Used to Request Tool Movements from the PLC (Open/Close Clamps etc)
 Program Name – TOOL_REQ
 TP usage/notation – CALL TOOL_REQ(1) – Argument Value
 Associated I/O DO[33-40] and DI[33-40]

The same Tool Request program is used independent of which Tool movement is required. To do
this a argument, of integer type, is passed into the program and the value of this argument dictates
which Tool movement is requested. The integrator/end user can use this program wherever they
deem necessary and specify the number for the Tool Movement they require. The Tool Request
program will error handle the value passed into it, therefore if the user enters an Tool number
which is out of range an error will occur.

6.5 Set Tool Number


Currently not Developed as X260 has no Tool Changers. Robots will default to Tool 1 at all times.
This will be developed in the JLR Test Cell.

Jaguar Land Rover : Robot to PLC Programming Standard for FANUC’s R30iB Controller 12
Robot To PLC Standard
Programming

6.6 Type Information Request


 Used to request type information from the PLC
 Program Name – TYPEINFOREQ
 TP usage/notation – CALL TYPE_INFO_REQ

The type information request command is a Group Input (GI[3]) which will return a numeric
value which can range from 1 to 255 and is used to sequence decisions within the robot
process from the PLC. Within the Type Info Request program the value of GI[3] is written into
R[161]. This is because a GI cannot be used in a SELECT Statement but a Register can.

Example

CALL TYPE_INFO_REQ
SELECT R[161:Type Info] = 1,
CALL PROGA
= 2, CALL PROGB
= 3, CALL PROGC

Jaguar Land Rover : Robot to PLC Programming Standard for FANUC’s R30iB Controller 13
Robot To PLC Standard
Programming

7. Initialisation Programs
The initialisation programs preform specific logic within the robot sequence and are TP programs
stored on the SRAM, which MUST NOT be changed by the integrator/end user.

7.1 Initialise Home


 Used to check that the robot is at its home position, initialises IO and an option to reset
all collision zones.
 Program Name – INITHOME
 Other Programs used within:- CHECKROBHOME and INITIO

“INITHOME” checks the robot is at its home position, initialises all the following IO commands
to their start state using the INITIO program, and clears all the collision zones for the robot.

 DO[17-24] = ON – Are Release


 DO[49-56] = OFF – Area Request
 DO[33-40]=OFF – Tool Request
 DO[41-48]= OFF – Job Ready

The Integrator/End User can use the “INITHOME” program within their programs where required,
but should edit the “INITHOME” program itself.

7.2 Initialise Robot Sequence


 Used at the end of the Programs 1-99 to end the cycle with the PLC.
 Program Name – INITRS

“INITRS” sets the end of cycle to the PLC, once the PLC has sent the end of cycle the robot resets
all the job done commands to zero.

 DO[58] – Cycle Complete Request


 DO[41-48]= OFF – Job Ready

The integrator/end user should ensure that the initialise robot sequence is at the end of all
programs they add (Prog 1-99).

Jaguar Land Rover : Robot to PLC Programming Standard for FANUC’s R30iB Controller 14
Robot To PLC Standard
Programming

7.3 Cycle Start


 Used to initialise IO and get the program number from the PLC.
 Program Name CYCLESTART
 Other programs used PROGNUMCHK

“CYCLESTART” is used in the RSR0001 before the program select statement and is used to
request the next program number from the PLC. It then uses “PROGNUMCHK” to make sure that
the program number is within range.

 DO[11] – Program Number Request


 GI[1] – Program Number

Only used at start RSR0001 program and should NOT be used by integrator/end user.

7.4 Cycle End


 Used to check that GI[1:PROG NUMBER] from the PLC = 0 before starting the next cycle
and sets DO[11:PROGRAM NUMBER REQUEST] = OFF.
 Program Name CYCLEEND

Used at the end of the RSR0001 before going back to the top of the program and requesting a new
program number from the PLC. This program should not be used by the integrator\end user.

Jaguar Land Rover : Robot to PLC Programming Standard for FANUC’s R30iB Controller 15
Robot To PLC Standard
Programming

8. Integrator/End User Programs


The integrator/end user programs can be configured by the integrator/end user and used within
their own programs. These programs should have no motion assigned to them as they should only
be used to set and reset I/O.

8.1 User Initialisation


 Used to configure any non JLR standard processes.
 Program Name – USERINIT

8.2 User Reset


 Used to reset any user specific I/O signals
 Program Name – USERRESET

User reset is normally used at the end of the Programs 1 to 99 to reset any user specific IO signals
but it can also be used within other integrator/end user created programs if required.

Jaguar Land Rover : Robot to PLC Programming Standard for FANUC’s R30iB Controller 16
Robot To PLC Standard
Programming

9. Collision Guard Levels


Collision Guard provides a highly sensitive method to detect that the robot has collided with an
object and then stops the robot immediately. This helps to minimize the potential for damage to the
end-of-arm tooling and robot. The sensitivity of the Collision Guard can be modified to make it
more or less sensitive between the percentage 1-200%, 1% being the lowest sensitivity and 200%
being the maximum sensitivity. It’s the integrators/end user responsibility to ensure that collision
guard is enabled at all times to protect the robot.

The default settings for JLR are 100%, which is the standard settings for the robot.

The sensitivity values can be changed with the TP programs if required for certain operations such
as Tool change where the sensitivity may need to be lower. Then after the operation is complete
the sensitivity should be set back to default.

Example TP

COL GUARD ADJUST 120

The collision guard can also be turned completely off if required either via a TP command or via
the Collision Guard Setup page.

Example TP

COL DETECT ON

COL DETECT OFF

When the robot is started in Automatic mode it automatically switches collision guard back on to
protect the robot.

Jaguar Land Rover : Robot to PLC Programming Standard for FANUC’s R30iB Controller 17
Robot To PLC Standard
Programming

10. Naming Conventions


The naming conventions for all the integrators/end users programs and data types within the robot
controller must follow the descriptions in the “JLR BIW RobCAD” Standard documentation, this
must not exceed the 32 character length restriction within the robot system.

10.1 Manufacturing Zones


Zone 1 Bulk Head
Zone 2 Side Members
Zone 3 Dash
Zone 4 Front End
Zone 5 Centre Floor
Zone 6 Rear Floor
Zone 8 Under Body
Zone 9 Rear Quarters
Zone 10 Body Side Inners
Zone 11 Body Side Subs
Zone 12 Body Side Marriage
Zone 13 Roof
Zone 16 Fenders
Zone 17 Bonnet
Zone 18 Front Doors
Zone 19 Rear Doors
Zone 21 Tail Gate
Zone 22 Framing
Zone 22.1 1st Stage Framing (Inner)
Zone 22.2 2nd Stage Framing (Outer)
Zone 22.3 Roof Framing
Zone 23 Finishing Line
Zone 99 Nutting

Some zones could be broken into smaller sub zones and other could have a Left/Right hand
derivatives.

Jaguar Land Rover : Robot to PLC Programming Standard for FANUC’s R30iB Controller 18
Robot To PLC Standard
Programming

10.2 Manufacturing Process Types


The following manufacturing processes are defined by JLR.

 Self-Piercing Riveting SPR (spr)


 Spot Welding SWD (swd)
 Dispensing ADH (Adhesive) (adh)
 Stud Welding WST (wst)

The following processes need to be confirmed by JLR.

• Self-Piercing Stud SPS


• Self-Piercing Nut SPN
• Arc Welding AWD
• Nut Welding NTW
• Crimp Riveting CPR (Tox)
• Hemming HEM
• Nut Riveting NTR
• Clinching CLH
• Coning CON
• Laser Measuring LRM
• Camera Measuring CAM
• In-Line Measuring ILM

For the material handling process the terminology to be used is “Pick” and “Drop”.

10.3 Manufacturing Tool Types


Tool Robot Carried Pedestal Mounted
Spot Weld RSW PSW
Rivet RRT PRT
Clinch RCH PCH
Mig RMG PMG
Dispense (Nozzle) RNZ PNZ
Arc RAC PAC
Stud RSD PSD
Nut RNT PNT
Gripper RGR N/A

10.4 Product Model


The product model number from the PLC will always be from 1 to 99, this will call the necessary
Prog1 to 99 program from the SELECT statement within the RSR001 program. All of the product
model sequence should be contained within the Prog1 to 99 programs.

Example: Prog1, Prog2, Prog3, Prog31…Prog99

Jaguar Land Rover : Robot to PLC Programming Standard for FANUC’s R30iB Controller 19
Robot To PLC Standard
Programming

10.5 User Tool Naming (UTOOL)


All the declared user tool data is stored on the robots FROM memory in the files FRAMEVAR.VR
and SYSFRAME.SV. All UTOOL’s should use ‘t’ as a prefix to the name. Naming of UTOOL’s are
limited to 29 Characters, this is a Robot Constraint.

10.5.1 Tools Supplied with Manufactures Identification

t_rrt_xxxxx
Manufactures Supplied Identification
Taken from Section 10.3 Manufacturing Tool Types (robot rivet)
Tool prefix

10.5.2 Tools Supplied without Manufactures Identification

t_pnz_01
Equipment Number (starting at 01, second nozzle 02….for each tool type)
Taken from Section 10.3 Manufacturing Tool Types (pedestal nozzle)
Tool prefix

10.6 User Frame Naming (UFRAME)


All the declared user tool data is stored on the robots FROM memory in the files FRAMEVAR.VR
and SYSFRAME.SV. All UFRAME’s should use ‘’ as a prefix to the name. Naming of UFRAME’s
are limited to 29 Characters, this is a Robot Constraint.

10.6.1 Fixed (Fixture)

uf_fx18010_01
Fixture No. in Station (starting at 1, second fixture in station 2, etc)
Fixture (fx), Zone 18, Station 010
User Frame Prefix

10.6.2 Moveable (Turntable)

uf_fx18010_01_01
Turn Table Position Number
Fixture Number in Station (starting at 1, second fixture in station 2 etc)
Fixture (fx), Zone 18, Station 010
User Frame Prefix

10.6.3 Carried (Gripper)

uf_rgr_01
Equipment Number (starting at 01, second gripper 02….for each tool type)
Taken from Section 10.3 Manufacturing Tool Types (robot gripper)
User Frame Prefix

Jaguar Land Rover : Robot to PLC Programming Standard for FANUC’s R30iB Controller 20
Robot To PLC Standard
Programming

10.7 Process Position and Joining Data Naming


Process position and data numbers must be unique and derived from the original CAD authoring
tool. All robot process positions on the vehicle (excluding dispensing) MUST be in carline. The
number standard within the process naming will be specified per vehicle program.

For naming format excluding Dispensing and Material Handling see “Appendix 1”, for Material
Handling see “Appendix 2” and for Dispensing see “Appendix 3”.

10.7.1 Process Position Naming


For spot welding and SPR processes the positions imported from RobCAD have the prefix “l”
(lowercase “L”) for positions (the “l” from RobCAD is for location). For ALL other process positions
there does not need to be a prefix.

Example position for Spot Welding: lswd_ fk72_1234com_2ul_01


Example position for Self Piercing Riveting: lspr_ ck52_5678com_2tr_02

For material handling see “Appendix 2”.

Example position for Material Handling (pick): pick_010_01


Example position for Material Handling (drop): drop_010_01

For dispensing see “Appendix 3”.

For dispensing the naming convention has been shorten but the full name should always be
commented above the “on” start position of each bead path.

Example comment before on position ! adh_fk72_ b7890com_ul_c1k


Example comment before (start) Dispensing: adh_b7890com_on
Example comment before (intermediate 1): adh_b7890com_005_s0
Example comment before (intermediate 2): adh_b7890com_010_s0
Example comment before (intermediate 3): adh_b7890com_015_s0
Example comment before (intermediate 4 with segment 1 change): adh_b7890com_020_s1
Example comment before (intermediate 5 with segment 2 change): adh_b7890com_025_s2
Example comment before (end) Dispensing: adh_b7890com_off

10.7.2 Process Joining Data Naming


For process joining data within the robot the prefix “jd” should be used for data types.

Example Comment for Spot Welding: jdswd_ fk72_1234com_2ul_01


Example Comment for Self Piercing Riveting: jdspr_ ck52_5678com_2tr_02
Example Comment for (segment 0) Dispensing: jdadh_b7890com_s0
Example Comment for (segment 1) Dispensing: jdadh_b7890com_s1
Example Comment for (segment 2) Dispensing: jdadh_b7890com_s2

Jaguar Land Rover : Robot to PLC Programming Standard for FANUC’s R30iB Controller 21
Robot To PLC Standard
Programming

10.8 Product Model Sequence


The product model sequence should be split into process specific routines within the “P(01 to 99)”
routine.

Example: P01_a_DockOn_rsw01;
P01_b_rsw1_010_x260com;
P01_c_DockOff_rsw01;
P01_d_DockOn_rsw02;
P01_e_rsw2_020_x260lhd;
P01_f_rsw2_020_x260rhd;
P01_g_DockOff_rsw02;

10.8.1 Process Operation in Fixed Fixture


P01_a_rsw01_010_x260com;

Model Variant (com, lhd, rhd, fix, sun, lwb, swb, 3dr, 5dr)
Model
Station Number in which the operation is performed
Tool Number
Path Sequence Number
Program Selection Number within robot system

Examples: P01_a_rsw1_010_x260com;
P01_b_rsw1_020_x260lhd;

10.8.2 Process Operation in Moveable (Turn Table) Fixture


P01_a_rsw01_010_01_x260com;

Model Variant (com, lhd, rhd, fix, sun, lwb, swb, 3dr, 5dr)
Model
Turn Table Position Number
Station Number in which the operation is performed
Tool Number
Path Sequence Number
Program Selection Number within robot system

Examples: P01_a_rsw1_010_01_x260com;
P01_b_rsw1_020_02_x260lhd;

10.8.3 Process Operation at Pedestal


P01_a_psw01_x260com;

Model Variant (com, lhd, rhd, fix, sun, lwb, swb, 3dr, 5dr)
Model
Tool Number
Path Sequence Number
Program Selection Number within robot system

Jaguar Land Rover : Robot to PLC Programming Standard for FANUC’s R30iB Controller 22
Robot To PLC Standard
Programming

Examples: P01_a_psw01_x260com;
P01_b_psw02_x260lhd;

10.8.4 Tool Operations

10.8.5 Material Handling Operation in Fixed Fixture

10.8.6 Material Handling in Moveable (Turn Over) Fixture

Jaguar Land Rover : Robot to PLC Programming Standard for FANUC’s R30iB Controller 23
Robot To PLC Standard
Programming

11. Defining the Tools TCP and Load


The tools TCP can be taken from “RobCAD” but should be confirmed if the tool is not doweled
directly onto the robot flange to elevate any manufacturing tolerances. If the tool TCP is to be
manually taught then the 6-point-TCP & ZX measuring method should be used. If the tools TCP is
not defined correctly some of the “JLR Robot Standard” functions will not work correctly. If
positions are to be offset the function “RelTool” should be used in preference to the function “Offs”.
It’s the integrators/end user’s responsibility to ensure that the robot TCP is defined correctly.

The tools load can also be taken from “RobCAD” but MUST be verified with the robot internal
program “LoadIdentify”. If the tool load and the centre of gravity of the tool load are not correct the
robot will not move at its peak performance. It’s the integrators/end user’s responsibility to ensure
that the robot is not running over loaded.

11.1 Robot Mounted TCP Definition


For robot mounted tools the X and Z positive directions MUST be as shown with regard to the fixed
tip.

Spot Weld Guns

Jaguar Land Rover : Robot to PLC Programming Standard for FANUC’s R30iB Controller 24
Robot To PLC Standard
Programming

SPR Guns

Dispensing Nozzle

Jaguar Land Rover : Robot to PLC Programming Standard for FANUC’s R30iB Controller 25
Robot To PLC Standard
Programming

Grippers: As tools for material handling (Pick and Drop)

For grippers that are tools then the TCP should be on a location pin on the gripper, if there is
no location pin then a suitable alternative point on the gripper should be used.

11.2 Pedestal Mounted TCP Definition

Jaguar Land Rover : Robot to PLC Programming Standard for FANUC’s R30iB Controller 26
Robot To PLC Standard
Programming

Appendix 1 – RSR0001 Example


1: --eg:Main Robot Program ;
2: ;
3: LBL[1:Loop] ;
4: ;
5: --eg:Initilise Routines ;
6: CALL USERINIT ;
7: CALL INITHOME ;
8: ;
9: LBL[2] ;
10: ;
11: --eg:Check Robot at Home Position ;
12: IF (!UO[7:ATPERCH]),JMP LBL[101] ;
13: ;
14: CALL CYCLESTART ;
15: ;
16: --eg:Select Program to be run ;
17: SELECT R[160:Prog No.]=1,CALL PROG1 ;
18: =2,CALL PROG2 ;
19: =101,CALL TOOL_1_SERVICE_POSITION ;
20: =102,CALL TOOL_1_TIP_CHANGE ;
21: =103,CALL TOOL_1_TIP_DRESS ;
22: ELSE,JMP LBL[999] ;
23: ;
24: CALL CYCLEEND ;
25: ;
26: CALL HOME ;
27: ;
28: JMP LBL[1] ;
29: ;
30: LBL[101:Robot not @ Home] ;
31: ;
32: CALL CHECKROBHOME ;
33: ;
34: JMP LBL[1] ;
35: ;
36: LBL[999:Invalid Prog Num] ;
37: ;
38: CALL CLRUSER ;
39: CALL DCPFAULT(1) ;
40: CALL DCPCLEAR ;
41: ;
42: JMP LBL[2] ;

Jaguar Land Rover : Robot to PLC Programming Standard for FANUC’s R30iB Controller 27
Robot To PLC Standard
Programming

Appendix 2 – Program Example (PROG2.tp (Spot Welding))


1: --eg:Rivet TP Test ;
2: ;
3: CALL HOME ;
4: CALL DCPCLEAR ;
5: ;
6: UFRAME_NUM=0 ;
7: UTOOL_NUM=0 ;
8: ;
9:J PR[2:P01 Pounce] 100% FINE ;
10: ;
11: !Area Request ;
12: CALL AREA_IN_REQ(1,1) ;
13: ;
14: IF (F[1:Return Home Flag]=ON),JMP LBL[100] ;
15: ;
16: LBL[1] ;
17: ;
18: CALL P2_SPOT_TEST ;
19: ;
20: CALL JOB_DONE(1) ;
21: ;
22: CALL AREA_OUT_REL(1) ;
23: ;
24: CALL INITRS ;
25: ;
26: LBL[100] ;
27: ;
28: IF DI[778:BOSCH TIP DRESS REQUEST]=ON AND DI[779:BOSCH PRE
WARNING]=OFF,CALL TIPDRESS_CONTROL ;
29: ;
30: IF DI[779:BOSCH PRE WARNING]=ON,CALL TOOL_1_TIP_CHANGE ;
31: ;
32: CALL HOME ;
33: ;
34: CALL INITHOME ;
35: ;

Jaguar Land Rover : Robot to PLC Programming Standard for FANUC’s R30iB Controller 28
Robot To PLC Standard
Programming

Appendix 3 – Position comments for Joining


As the FANUC controller allows a maximum of 16 characters for the naming of positions within a
program and the JLR Naming convention is larger than this, a comment will be entered before the
position which will contain the JLR name.

Manufacturing Process Type


(see section 10.2)
Project Code Number of Panels in the
Joint Number Joint Stack

Unique Fixing
swd_fk72_4003com_2ul_01 Number within joint

Variant Joint Type


Com = Common Tl = Twin Left
Lhd = Left Hand Drive Tr = Twin Right
Rhd = Right Hand Drive Ul = Unique Left
Fix = Fixed Roof Ur = Unique Right
Sun = Sun Roof Xc = Cross Car
Lwb = Long Wheel Base
Swb = Short Wheel Base

Jaguar Land Rover : Robot to PLC Programming Standard for FANUC’s R30iB Controller 29
Robot To PLC Standard
Programming

Appendix 4 – Material Handling Position Naming


As the Material Handling position naming is less than 16 characters it is possible to comment the
actual positions.

Manufacturing Process Type Station Number


pick or drop

pick_010_01

Station Sequence Number


1st Pick out of Station = 01
2nd Pick out of Station = 02
3rd Pick out of Station = 03
Etc….

Appendix 5 – Dispensing position naming


As the FANUC controller allows a maximum of 16 characters for the naming of positions within a
program and the JLR Naming convention is larger than this, a comment will be entered before the
position which will contain the JLR name
Bonding Type
A = Inter Welding Seal
Manufacturing Process Type B = Anti Flutter
(see section 10.2) C = Hem Flange Dispensing Components
Project Code D = Sealant 1K = 1 Component
Bead Number 2K – 2 Components

adh_fk72_B4003com_ul_c2k
Variant Joint Type
Com = Common Tl = Twin Left
Lhd = Left Hand Drive Tr = Twin Right
Rhd = Right Hand Drive Ul = Unique Left
Fix = Fixed Roof Ur = Unique Right
Sun = Sun Roof Xc = Cross Car
Lwb = Long Wheel Base
Swb = Short Wheel Base

Jaguar Land Rover : Robot to PLC Programming Standard for FANUC’s R30iB Controller 30
Robot To PLC Standard
Programming

Dispense Shortened (Start/End) Position Naming


Trigger
(on/off)

adh_B4003com_on
Dispense Shortened (Intermediate) Position Naming

Intermediate Step Number


Increments of 5
(005,010,015)

adh_B4003com_005_s1
Segment Number
(0-255)

Jaguar Land Rover : Robot to PLC Programming Standard for FANUC’s R30iB Controller 31
Robot To PLC Standard
Programming

Appendix 6 – Numeric Registers


[*NUMREG*]$NUMREG Storage: SHADOW Access: RW : ARRAY[200] OF Numeric Reg

[10] = 1 'Tip wear down'


[31] = 0.000000 'Thick From WT'
[32] = 0 'Pressure SCH'
[33] = 0 'Get Data Status'
[34] = .500000 'Wear Ratio'
[35] = 1 'Electrode->Dress'
[50] = 1 'Debug Text No.'
[55] = 0 'Yes/No Prompt '
[56] = -1.000000 'Karel F-Key'
[60] = 0 'Coll Zone Held'
[61] = 0 'Coll Zone Held'
[62] = 0 'Coll Zone Held'
[63] = 0 'Coll Zone Held'
[64] = 0 'Coll Zone Held'
[65] = 0 'Coll Zone Held'
[66] = 0 'Coll Zone Held'
[67] = 0 'Coll Zone Held'
[68] = 1 'Current Zone'
[80] = 1 'Controller ID'
[81] = 1 'Tool ID'
[82] = 2 'Rivet Type'
[83] = 10 'Post Move Offset'
[84] = 0 'Post Move Openig'
[85] = 1 'Rivet ID Ok'
[86] = 7 'Rivet ID'
[87] = 7 'Request Riv Sch'
[88] = 0 'Rivet Call Delay'
[89] = 333 'DCP SPR Fault No'
[90] = 1 'Man Control ID'
[91] = 1 'Man Tool ID'
[92] = 1 'Man Rivet Type'
[93] = 10 'Man Post Move Of'
[94] = 20 'Man Post Opening'
[96] = 4 'Man Rivet ID'
[97] = 1 'Man Schedule Req'
[100] = 8 'Combo Choice No.'
[101] = 2 'Hen RobCAD Time'
[102] = 1.500000 'Hen Actual Time'
[110] = 1 'Thk Chk Choice'
[111] = 1 'Res Calib Choice'
[151] = 1 'AreaRequest'
[152] = 1 'AreaRelease'
[153] = 1 'ToolRequest'
[154] = 1 'JobDone'
[156] = 1 'Col_Zone_Req'
[157] = 1 'Col_Zone_Set'
[158] = 1 'Col Zone Rel'
[159] = 0 'Col Zone Clr'
[160] = 1 'Prog No.'
[161] = 0 'Type_Info '
[165] = 1 'Return Home'
[191] = 1 'Res For Loop'
[180] = 0 ‘TCP Speed’
[181] = 400 ‘Max Appl Speed’
[182] = 0 ‘TCP Scale’
[192] = 1 'Tip Dress Loop'
[193] = 1 'Polish Dress Lop'

Jaguar Land Rover : Robot to PLC Programming Standard for FANUC’s R30iB Controller 32
Robot To PLC Standard
Programming

[194] = 3 '1st Dress Loop'


[195] = 1 'Spot ID Ok'

Appendix 7 – Position Register


[1,1] = 'Home' Group: 1
[1,2] = 'P01 Pounce' Group: 1
[1,3] = 'P02 Pounce' Uninitialized
[1,4] = 'P03 Pounce' Uninitialized
[1,5] = 'P04 Pounce' Uninitialized
[1,6] = 'P05 Pounce' Uninitialized
[1,7] = 'P06 Pounce' Uninitialized
[1,8] = 'P07 Pounce' Uninitialized
[1,9] = 'P08 Pounce' Uninitialized
[1,10] = 'SPR Fill Pounce'
[1,11] = 'SPR Post Offset'
[1,12] = 'SPR Post Offset'
[1,13] = 'SCA Dock Pos' Uninitialized
[1,14] = 'SCA Docking Off' Uninitialized
[1,15] = 'SPR Docking Off'
[1,20] = 'Tip wear down' Uninitialized
[1,21] = 'Tip Wear'
[1,22] = 'Tip Wear' Uninitialized
[1,23] = 'Tip 1 Dress Pos'
[1,24] = 'Tip 2 Dress Pos'
[1,29] = 'Move Gun'
[1,30] = 'Spot Dress Calc'
[1,31] = 'Thick Check Calc'
[1,51] = 'Service Pos 1' Uninitialized
[1,52] = 'Service Pos 2' Uninitialized
[1,53] = 'Service Pos 3' Uninitialized
[1,54] = 'Service Pos 4' Uninitialized
[1,55] = 'Service Pos 5' Uninitialized
[1,56] = 'Service Pos 6' Uninitialized
[1,57] = 'Service Pos 7' Uninitialized
[1,90] = 'RESERVED ATMAST'

Jaguar Land Rover : Robot to PLC Programming Standard for FANUC’s R30iB Controller 33

You might also like