Uploaded by johnsmtnz

FANUC's Standard Robot to PLC Programming(Version 4.0)

advertisement
Jaguar Land Rover
PAN Projects
Robot to PLC Programming Standard
for
FANUC’s R30iB Controller
Robot To PLC Standard
Programming
Issue No.
1.0
2.0
3.0
4.0
Details of the Update
Initial Standard Release
Added Appendix 6&7 for Numeric Registers and Position Registers.
UPDATED Numeric Registers + General Update
Updated Type Info Request, Vision System Switch Outs
Author
JP
JP
JP
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 EStop 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 SubType 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
Rob_Out[x,12].1
Rob_Out[x,12].2
Rob_Out[x,12].3
Rob_Out[x,12].4
Rob_Out[x,12].5
Rob_Out[x,12].6
Rob_Out[x,12].7
DI385
DI386
DI387
DI388
DI389
DI390
DI391
DI392
Perceptron Switched Out
ISRA Switched Out
Quiss Switched Out
Cognex Switched Out
Recognisense Switched Out
Die Check Switched Out
Camera 7 Switched Out
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
Home
Tool Change Serv Pos
Serv Position T1
Serv Position T2
Serv Position T3
Serv Position T4
Serv Position T5
Serv Position T6
Serv Position T7
Comment
Home Position
Tool Change Service Position
Service Position Tool 1
Service Position Tool 2
Service Position Tool 3
Service Position Tool 4
Service Position Tool 5
Service Position Tool 6
Service Position Tool 7
PR[..]
PR[1]
PR[50]
PR[51]
PR[52]
PR[53]
PR[54]
PR[55]
PR[56]
PR[57]
DO[..]
DO[8] & UO[7]
DO[3082]
DO[3083]
DO[3084]
DO[3085]
DO[3086]
DO[3087]
DO[3088]
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
Spot Weld
Rivet
Clinch
Mig
Dispense (Nozzle)
Arc
Stud
Nut
Gripper
Robot Carried
RSW
RRT
RCH
RMG
RNZ
RAC
RSD
RNT
RGR
Pedestal Mounted
PSW
PRT
PCH
PMG
PNZ
PAC
PSD
PNT
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:
Example position for Self Piercing Riveting:
lswd_ fk72_1234com_2ul_01
lspr_ ck52_5678com_2tr_02
For material handling see “Appendix 2”.
Example position for Material Handling (pick):
Example position for Material Handling (drop):
pick_010_01
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:
Example Comment for Self Piercing Riveting:
Example Comment for (segment 0) Dispensing:
Example Comment for (segment 1) Dispensing:
Example Comment for (segment 2) Dispensing:
jdswd_ fk72_1234com_2ul_01
jdspr_ ck52_5678com_2tr_02
jdadh_b7890com_s0
jdadh_b7890com_s1
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
Joint Number
Number of Panels in the
Joint Stack
swd_fk72_4003com_2ul_01
Variant
Com = Common
Lhd = Left Hand Drive
Rhd = Right Hand Drive
Fix = Fixed Roof
Sun = Sun Roof
Lwb = Long Wheel Base
Swb = Short Wheel Base
Unique Fixing
Number within joint
Joint Type
Tl = Twin Left
Tr = Twin Right
Ul = Unique Left
Ur = Unique Right
Xc = Cross Car
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
pick or drop
Station Number
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
B = Anti Flutter
Manufacturing Process Type
Dispensing Components
C = Hem Flange
(see section 10.2)
Project Code
1K = 1 Component
D = Sealant
Bead Number
2K – 2 Components
adh_fk72_B4003com_ul_c2k
Variant
Com = Common
Lhd = Left Hand Drive
Rhd = Right Hand Drive
Fix = Fixed Roof
Sun = Sun Roof
Lwb = Long Wheel Base
Swb = Short Wheel Base
Joint Type
Tl = Twin Left
Tr = Twin Right
Ul = Unique Left
Ur = Unique Right
Xc = Cross Car
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
[195] = 1
'1st Dress Loop'
'Spot ID Ok'
Appendix 7 – Position Register
[1,1] =
[1,2] =
[1,3] =
[1,4] =
[1,5] =
[1,6] =
[1,7] =
[1,8] =
[1,9] =
[1,10] =
[1,11] =
[1,12] =
[1,13] =
[1,14] =
[1,15] =
[1,20] =
[1,21] =
[1,22] =
[1,23] =
[1,24] =
[1,29] =
[1,30] =
[1,31] =
[1,51] =
[1,52] =
[1,53] =
[1,54] =
[1,55] =
[1,56] =
[1,57] =
[1,90] =
'Home'
Group: 1
'P01 Pounce'
Group: 1
'P02 Pounce' Uninitialized
'P03 Pounce' Uninitialized
'P04 Pounce' Uninitialized
'P05 Pounce' Uninitialized
'P06 Pounce' Uninitialized
'P07 Pounce' Uninitialized
'P08 Pounce' Uninitialized
'SPR Fill Pounce'
'SPR Post Offset'
'SPR Post Offset'
'SCA Dock Pos' Uninitialized
'SCA Docking Off' Uninitialized
'SPR Docking Off'
'Tip wear down' Uninitialized
'Tip Wear'
'Tip Wear' Uninitialized
'Tip 1 Dress Pos'
'Tip 2 Dress Pos'
'Move Gun'
'Spot Dress Calc'
'Thick Check Calc'
'Service Pos 1' Uninitialized
'Service Pos 2' Uninitialized
'Service Pos 3' Uninitialized
'Service Pos 4' Uninitialized
'Service Pos 5' Uninitialized
'Service Pos 6' Uninitialized
'Service Pos 7' Uninitialized
'RESERVED ATMAST'
Jaguar Land Rover : Robot to PLC Programming Standard for FANUC’s R30iB Controller
33
Download