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 1384) 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 385512) 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