You are on page 1of 51

Rivian Robot Programming Guide – Kawasaki Implementation

Appendix FD – Flow Drill

REVISION 1 – JULY 10th 2023


Table of Contents

1 INTRODUCTION ............................................................................................................................................. 4
PURPOSE .........................................................................................................................................................4
1.1.1 Document Description .............................................................................................................................4
1.1.2 Who should use the document................................................................................................................4
1.1.3 What should be learned ..........................................................................................................................4

2 IMPLEMENTATION ........................................................................................................................................ 5
TCP CONVENTION FOR FLOW DRILL ......................................................................................................................5
2.1.1 Standard Flow Drill Operations ................................................................................................................6
2.1.2 Teaching a Flow Drill Step ........................................................................................................................7

3 WORK FLOW CHARTS ................................................................................................................................... 8


FLOW DRILL MAIN SCREW PROCESS .....................................................................................................................8
FLOW DRILL FEED SCREW PROCESS ......................................................................................................................9
FLOW DRILL (K_REST) .....................................................................................................................................10
FLOW DRILL EJECT SCREW PROCESS ...................................................................................................................11
FLOW DRILL REFERENCE PROCESS ......................................................................................................................12

4 ROBOT PROGRAMS ..................................................................................................................................... 13


PRODUCTION SUBROUTINES ..............................................................................................................................13
4.1.1 Screw(.screw) .........................................................................................................................................13
4.1.2 Feed Screw(); ..........................................................................................................................................16
4.1.3 Eject Screw();……………………………………………………………………………………….....…………………………………….…17
4.1.4 K Reset(); ................................................................................................................................................18
4.1.5 flowdrill_fault();………………………………….…………………………………………………………………………………………….19
4.1.6 fd_zero();Reference FD………………………………………………………………………………….………………………………….25

5 ROBOT PROGRAMS ..................................................................................................................................... 27


PRODUCTION EXAMPLES...................................................................................................................................27
5.1.1 PG07(); FD Calibration Program Example ..............................................................................................27
5.1.2 PG20(); Main Carried Flow Drill Example ..............................................................................................28
5.1.3 PG20(); Main Tool Change Flow Drill Example…..………………………………….....……………………………………….29

[2]
6 INTERFACE PANEL........................................................................................................................................ 30
7 ROBOT SETTINGS ......................................................................................................................................... 32
FLOW DRILL I/O COMMUNICATION SETTINGS .......................................................................................................32
FLOW DRILL NAMING I/O ................................................................................................................................34
APPSET ROUTINE – APPLICATION SETTING BIT ......................................................................................................36

8 KLOGIC ……………….……………………………………………………………………………………………………………………………………37

Revision History
Revision Modification Date Author Description / Reason
1 July 17th J.W. -PG FD has been updated with TCP Conventions for FD – Standard FD
operations – Teaching a FD step – Work Flow Charts – Updated production
Subroutines – Updates Production Examples – Updated Robot Settings (Node
Coms – Naming I/O – App set) Updated Klogic – Updated Interface

[3]
1. Introduction

1.1 Purpose:

1.1.1 Document Description:


This document defines the basic methodology and structure for programming Kawasaki
robots for Rivian Flow Drill applications. It is designed to give the guideline for standard
programming, with expectations that integrators can customize where required.

1.1.2 Who should use the document:


This document is intended to be used by OEM and system integrator programmers and
engineers, as well as by Rivian controls and process engineers.

1.1.3 What should be learned:


This document explains the general programming strategy for a Kawasaki robot. It explains
standards that are to be applied to all Flow Drill application programs. It also includes template
production programs that must be used as models for the final application programs to be written
by the integrators and end user.

[4]
2. Implementation
The following sub-sections describe how the line builder is to implement the Flow Drill
application.

2.1 TCP Convention for Flow Drill


Figure 1 below shows the required Tool Center Point orientation convention required for Rivian
implementation. The Tool Center Point is located at the fixed cap, and the orientation is as follows:

• +Z-direction brings the fixed cap to the sheet metal


• +X-direction throats the gun into the sheet metal

-Z

+Z

Figure 1: Tool Center Point Orientation Convention


This section describes the basic operation of a servo spot weld gun.

[5]
2.1.1 Standard Flow Drill Operation
This section describes the basic operation of a servo spot weld gun.

Figure 2: Standard Flow Drill Operation

[6]
2.1.2 Teaching a Flow Drill Step
The procedure below lists how to properly teach a Flow Drill step for the Kawasaki Flow Drill
application.

1) Remove the screw that is the head of the flow drill unit or run subroutine eject screw
2) Verify Manual Speed on teach pendant screen is set to a value of 2
3) Insert the Flow Drill Application Teach tool into the nose of the flow drill
4) After bring the robot to the clearance hole on the part and make sure the teach tool is
sitting flush to the part and this distance away with the teach tool with be 30mm
5) Press Record, Insert, or Position Modify (POS MOD) button as required to teach Flow
Drill location.
6) Move the robot in tool -Z to move away from the teaching position

30MM Away from Part

Figure 3: Flow Drill Step example and Gun teaching Display

[7]
3. Work Flow Charts
3.1 Flow Drill Main Screw Process

[8]
3.2 Flow Drill Feed Screw Process

[9]
3.3 Flow Drill (K_REST)

[10]
3.4 Flow Drill Eject Screw Process

[11]
3.5 Flow Drill Reference Process

[12]
4. Robot Programs

4.1 Production subroutines

4.1.1 Screw(.screw)
;************************************************
; COMPANY : RIVIAN
; PROGRAM SCREW; SCREW
; REVISED LAST: 04/27/2022
; Produced by: RIVIAN KAWASAKI ROBOTICS DEV
;************************************************
;
;IF IN AUTO REPEAT MODE
IF SIG(1013) GOTO 99
;
;WAIT SPOT NUMBER OK OFF
WAIT SIG(-1809) ;FD#1 SPOT NUMBER ACK
;
;************************************************
1;START CYCLE
;
; IF NO ERROR OFF
IF SIG(-1787) THEN ;FD#1 NO ERROR = ON TIMEOUT
;FAULT RESET FROM ROBOT (PULSE)
PULSE 787,1 ;FD#1 FAULT RESET
WAIT SIG(1787); WAIT FD#1 NO ERROR
GOTO 1; ANI WAIT OVERRIDE
END; IF ERROR FROM FD CONTROLLER
;
;************************************************
;FLOW DRILL #1 START SEQUENCE
;
SIGNAL (785) ;FD#1 REQUEST AUTO
;
WAIT SIG(1785) ;FD#1 AUTOMATIC MODE CONFIRMED
;
BITS 809,8 = 1 ;REQUEST TYPE ID
;
;SET SCREW SCHEDULE
IF .screw==0 THEN ; IF .SCREW ARGUMENT 0 THEN
BITS 817,8 = 1; SET SCREW SCHEDULE TO 1

[13]
ELSE ; SET SCREW SCHEDULE TO MATCH .SCREW ARGUMENT
BITS 817,8 = .screw; SET SCREW SCHEDULE .SCREW ARGUMENT
END
;
; WAIT FD#1 SPOT NUMBER ACKNOWLEDGE
WAIT SIG(1809) ;FD#1 SPOT NUMBER ACK
;
; WAIT SYSTEM READY
WAIT SIG(1786) ;FD#1 SYSTEM ONLINE
;
; WAIT SCREW IN HEAD
WAIT SIG(1806); FD#1 SCREW IN HEAD (CHECK INTERFACE PANEL LIGHT & RESET UNIT)
;
; START PROCESS
SIGNAL (786) ;FD#1 START PROCESS
;
; WAIT PROCESS FINISHED
UTIMER @fd_timer = 0 ;FLOWDRILL TIMEOUT TIMER
; WAIT FD#1 PROC COMPLETE OR FD#1 TIMEOUT OR MESSAGE NUMBER AND MESSAGE TYPE 3 ERROR
WAIT SIG(1788) OR UTIMER(@fd_timer)>10 OR (BITS(1817,12)>0 AND BITS(1833,2)==3) ;FD#1 PROCESS
COMPLETE OR FLOWDRIL TIMEOUT
;
IF SIG(1788) GOTO 10 ; IF PROCESS FINISHED GOTO CONTINUE PROCESS
;
;************************************************
;AUTO SKIP SCREW
.msgfromscrew = 0
.msgfromscrew = BITS(1817,12)
CASE .msgfromscrew OF
VALUE 384:
PRINT "Final tightening not OK"
SIGNAL 787 ;RESET FLOW DRILL
WAIT SIG(1787); WAIT FD#1 NO ERROR
SIGNAL -787 ;RESET FLOW DRILL OFF
SIGNAL 808 ; SEND PLC FLOW DRILL ERROR
WAIT SIG(1806); FD#1 SCREW IN HEAD (CHECK INTERFACE PANEL LIGHT & RESET UNIT)
SIGNAL -808 ; RESET PLC FLOW DRILL ERROR
GOTO 10; CONTINUE PROCESS
;
VALUE 385:
PRINT "Overrun not OK"
SIGNAL 787 ;RESET FLOW DRILL
WAIT SIG(1787); WAIT FD#1 NO ERROR
SIGNAL -787 ;RESET FLOW DRILL OFF
SIGNAL 808 ; SEND PLC FLOW DRILL ERROR
WAIT SIG(1806); FD#1 SCREW IN HEAD (CHECK INTERFACE PANEL LIGHT & RESET UNIT)

[14]
SIGNAL -808 ; RESET PLC FLOW DRILL ERROR
GOTO 10; CONTINUE PROCESS
;
END
;
;************************************************
5; FAULTED LOOP NEED RECOVERY OPTION
SIGNAL 808 ; SEND PLC FLOW DRILL ERROR
CALL flowdrill_fault
WAIT SIG(2424) AND (SIG(2427) OR SIG(2422));RETRY FD#1 SCREW OR SKIP SCREW
;
; IF ENABLE RECOVERY S.S. AND RETRY SCREW P.B.
IF SIG(2424) AND SIG(2427) THEN ; CALL RETRY FD#1
CALL k_reset; RESET FOR FD#1 CONTROLLER
SIGNAL -2424 ;TURN OFF RECOVERY SWITCH
SIGNAL -808 ; RESET PLC FLOW DRILL ERROR
GOTO 1 ; START CYCLE
END
;
; IF ENABLE RECOVERY S.S. AND SKIP SCREW P.B.
IF SIG(2424) AND SIG(2422) THEN; ENABLE REC. AND SKIP SCREW
WAIT SIG(1806); FD#1 SCREW IN HEAD (CHECK INTERFACE PANEL LIGHT & RESET UNIT)
SIGNAL -2424 ;TURN OFF RECOVERY SWITCH
SIGNAL -808 ; RESET PLC FLOW DRILL ERROR
GOTO 10; CONTINUE PROCESS
END
;
GOTO 5; FAULTED LOOP RETURN NO OPTION SELECTED
;
;************************************************
10; CONTINUE PROCESS
SIGNAL (-786) ;FD#1 START PROCESS OFF
;
; WAIT PROCESS COMPLETE OFF
WAIT SIG(-1788) ;FD#1 PROCESS COMPLETED
;
; WAIT FOR LAST PROC OK and LAST PROC NOT OKAY
UTIMER @fd_timer = 0 ;FLOWDRILL TIMEOUT TIMER
WAIT SIG(1790) AND SIG(-1791) OR UTIMER(@fd_timer)>3 ;LAST PROC OK, LAST PROC NOTOK OFF,
FLOWDRILL TIMEOUT TIMER
IF UTIMER(@fd_timer)>3 THEN ;
PULSE 794,1; PULSE FD#1 SCREW FAIL (TO PLC)
END ; IF UTIMER EXCEDED FD#1
;
; RESET SCREW SCHEDULE BITS TO 0
BITS 817,8 = 0 ; RESET SCREW SCHEDULE BITS TO 0

[15]
;
;************************************************
99; SCREW SEQUENCE COMPLETE
;
IF SIG(1013) THEN;IF DRYCYCLE SIM TIME
TWAIT 1.5;SIMULATED SCREW TIME
END

4.1.2 Feed Screw();


;************************************************
; COMPANY : RIVIAN
; PROGRAM : feed_screw(),FEED SCREW
; REVISED LAST: 06/11/2019
; Produced by : RIVIAN KAWASAKI ROBOTICS DEV
;************************************************
;--------------------------------
1
;--------------------------------
;NO ERROR ON
IF SIG(-1787) GOTO 900 ;FD#1 NO ERROR = ON TIMEOUT
;
;REQUEST AUTO ON
SIGNAL 785 ;FD#1 REQUEST AUTO
;
;AUTOMATIC MODE CONFIRMED ON
WAIT SIG(1785) ;FD#1 AUTOMATIC MODE CONFIRMED
;
;SYSTEM READY ON
WAIT SIG(1786) ;FD#1 SYSTEM ONLINE
;
;SCREW FEED START ON
SIGNAL 805 ;FD#1 FEED ELEMENT
;
;ELEMENT IS FED ON
WAIT SIG(1805) ;FD#1 ELEMENT IS FED
;
;SCREW FEED START OFF
SIGNAL -805 ;FD#1 FEED ELEMENT
;
;ELEMENT IS FED OFF
WAIT SIG(-1805) ;FD#1 ELEMENT IS FED
;

[16]
;READY TO START ON
WAIT SIG(1786) ;FD#1 SYSTEM ONLINE
;
;REQUEST AUTO OFF
SIGNAL -785 ;FD#1 REQUEST AUTO
;
GOTO 999
900
;
;PROCESS ACKNOWLEDGEMENT ON
PULSE 788,2 ;FD#1 PROCESS ACKNOWLEDGEMENT(FD#1 QUIT FK)
;
GOTO 1
999

4.1.3 Eject Screw();

;************************************************
; COMPANY : RIVIAN
; PROGRAM : ejtscrw(),EJECT SCREW
; REVISED LAST: 06/11/2019
; Produced by : RIVIAN KAWASAKI ROBOTICS DEV
;************************************************
;--------------------------------
1
;--------------------------------
;NO ERROR ON
IF SIG(-1787) GOTO 900 ;FD#1 NO ERROR = ON TIMEOUT
;
;REQUEST AUTO ON
SIGNAL 785 ;FD#1 REQUEST AUTO
;
;AUTOMATIC MODE CONFIRMED ON
WAIT SIG(1785) ;FD#1 AUTOMATIC MODE CONFIRMED
;
;SYSTEM READY ON
WAIT SIG(1786) ;FD#1 SYSTEM ONLINE
;
;SCREW EJECT START ON
SIGNAL 804 ;FD#1 EJECT ELEMENT
;
;SCREW EJECT FINISH ON

[17]
WAIT SIG(1804) ;FD#1 ELELEMNT EJECTED FINISHED
;
;SCREW EJECT START OFF
SIGNAL -804 ;FD#1 EJECT ELEMENT
;
;SCREW EJECT FINISH OFF
WAIT SIG(-1804) ;FD#1 ELELEMNT EJECTED FINISHED
;
;SYSTEM READY ON
WAIT SIG(1786); FD#1 SYSTEM ONLINE
;
;REQUEST AUTO OFF
SIGNAL -785 ;FD#1 REQUEST AUTO
;
GOTO 999
900
;
;PROCESS ACKNOWLEDGEMENT ON
PULSE 788,2 ;FD#1 PROCESS ACKNOWLEDGEMENT(FD#1 QUIT FK)
;
TWAIT 3
;
GOTO 1
999

3.1.4 KReset();
;************************************************
; COMPANY : RIVIAN
; PROGRAM : k_reset(), RESET SIGNALS
; REVISED LAST: 06/11/2019
; Produced by : RIVIAN KAWASAKI ROBOTICS DEV
;************************************************
;
;TURN OFF SCREW SCHEDULE BITS
BITS 817,8 = 0
;
;START PROCESS OFF
SIGNAL (-786) ;FD#1 START PROCESS
;
;REQUEST TYPE ID OFF
BITS 809,8 = 0 ;REQ TYPE ID OFF
;
;FD#1 SPOT NUMBER OK OFF

[18]
WAIT SIG(-1809); FD#1 SPOT NUMBER ACK
;
TWAIT 1; KFLOW TIME REFRESH

3.1.5 flowdrill_fault();
;************************************************
; COMPANY : RIVIAN
; PROGRAM : flowdrill_fault(),FLOWDRILL FAULTS TO KEYBOARD
; REVISED LAST: 09/1/2022
; Produced by : RIVIAN KAWASAKI ROBOTICS DEV
;************************************************
.msgfromscrew = 0
.msgfromscrew = BITS(1817,12)
CASE .msgfromscrew OF
VALUE 7:
PRINT "Emergency stop activated"
VALUE 100:
PRINT "System Errors"
VALUE 101:
PRINT "CANopen Timeout when starting the units"
VALUE 102:
PRINT "CANopen Start of units not possible due to error"
VALUE 103:
PRINT "CAN bushas malfunction"
VALUE 104:
PRINT "CAN bus switched off"
VALUE 105:
PRINT "CAN bus data loss"
VALUE 106:
PRINT "CANopen unit has a node guarding error"
VALUE 110:
PRINT "Bus terminal Transfer error by overflow"
VALUE 112:
PRINT "Inverter not connected"
VALUE 113:
PRINT "Inverter Error when parametrising"
VALUE 114:
PRINT "Inverter Internal error"
VALUE 117:
PRINT "Gun is not referenced!"
VALUE 128:
PRINT "System data invalid"
VALUE 129:
PRINT "System data memory error"
VALUE 130:
PRINT "New system data"
VALUE 131:

[19]
PRINT "System data memory full!"
VALUE 132:
PRINT "Unknown plug-in module in slot"
VALUE 133:
PRINT "Plug-in module has a resource conflict"
VALUE 134:
PRINT "Plug-in module has a resource link error"
VALUE 135:
PRINT "Plug-in module not able to set up"
VALUE 136:
PRINT "Plug-in module does not start"
VALUE 137:
PRINT "Plug-in module has an unknown status"
VALUE 138:
PRINT "Incomplete setup of plug-in module"
VALUE 151:
PRINT "Error in parameter memory"
VALUE 152:
PRINT "Error when writing parameters"
VALUE 153:
PRINT "Error when reading parameters"
VALUE 154:
PRINT "Data system error when accessing parameter files"
VALUE 155:
PRINT "Error when writing a parameter file"
VALUE 156:
PRINT "Error when reading a parameter file"
VALUE 157:
PRINT "Difference between stored and needed parameters"
VALUE 162:
PRINT "Value of parameter is too low. The minimum value is used"
VALUE 163:
PRINT "Value of parameter is too high. The maximum value is used"
VALUE 164:
PRINT "Value of parameter invalid"
VALUE 168:
PRINT "Spot number invalid"
VALUE 169:
PRINT "Program number invalid"
VALUE 175:
PRINT "Impossible to create file system"
VALUE 176:
PRINT "Internal error in the file system"
VALUE 177:
PRINT "Incomplete backup"
VALUE 178:
PRINT "Gun change failed"
VALUE 179:
PRINT "No gun connected"

[20]
VALUE 186:
PRINT "Number of the connected gun is invalid"
VALUE 187:
PRINT "Inverter stop error See process visualization for details"
VALUE 188:
PRINT "Error when reading the engine data"
VALUE 189:
PRINT "Error when loading the engine data into the inverter"
VALUE 191:
PRINT "Real-time clock voltage supply very low"
VALUE 192:
PRINT "Real-time clock stopped"
VALUE 193:
PRINT "I/O program faulty"
VALUE 194:
PRINT "Run time error in I/O program"
VALUE 195:
PRINT "Automatic off during travel break"
VALUE 196:
PRINT "System Safety circuit interrupted"
VALUE 197:
PRINT "Movement disabled"
VALUE 199:
PRINT "Service mode active"
VALUE 200:
PRINT "Action at shut-down inverter triggered"
VALUE 208:
PRINT "System configuration is invalid"
VALUE 209:
PRINT "Limited operating time because of missing license"
VALUE 210:
PRINT "No operation because of missing license"
VALUE 212:
PRINT "Data transfer from old format"
VALUE 213:
PRINT "Error during data transfer"
VALUE 216:
PRINT "Unexpected warm start"
VALUE 217:
PRINT "Background memory part worn"
VALUE 218:
PRINT "Data error of background memory"
VALUE 220:
PRINT "Acknowledgement causes a restart"
VALUE 244:
PRINT "Error when loading a language file"
VALUE 260:
PRINT "Logbook Error in memory 1 Memory deleted"
VALUE 261:

[21]
PRINT "Logbook Error in memory 2 Memory deleted"
VALUE 263:
PRINT "Not all characters were stored because of string overflow"
VALUE 264:
PRINT "Server XPegasus data sets were not picked up from the archive of the module"
VALUE 265:
PRINT "Server XPegasus The archive storage of the module can no longer hold datasets"
VALUE 266:
PRINT "Server PQS datasets were not picked up from archive storage of the module"
VALUE 267:
PRINT "Server PQS The archive storage of the module can no longer hold datasets"
VALUE 274:
PRINT "Dynamic memory out of space"
VALUE 275:
PRINT "Dynamic memory decreases"
VALUE 276:
PRINT "Error during communication with interface module"
VALUE 277:
PRINT "Error on interface module"
VALUE 278:
PRINT "Switched off"
VALUE 279:
PRINT "Not started"
VALUE 280:
PRINT "Wrong configuration"
VALUE 284:
PRINT "Error during firmware upload"
VALUE 285:
PRINT "Error during initialisation"
VALUE 286:
PRINT "Program blocked"
VALUE 303:
PRINT "Logbook entry was not transferred"
VALUE 336:
PRINT "Reset activity is executed"
VALUE 341:
PRINT "Gun selection active"
VALUE 348:
PRINT "An external alarm has occurred"
VALUE 360:
PRINT "One or more digital outputs are overloaded"
VALUE 365:
PRINT "Fan speed too low"
VALUE 380:
PRINT "Selected manual operation prohibited"
VALUE 381:
PRINT "Finding not OK"
VALUE 382:
PRINT "Passage not OK"

[22]
VALUE 383:
PRINT "Thread forming not OK"
VALUE 384:
PRINT "Final tightening not OK"
VALUE 385:
PRINT "Overrun not OK"
VALUE 391:
PRINT "Torque too high"
VALUE 392:
PRINT "Stroke beyond intervention limit"
VALUE 393:
PRINT "Stroke beyond fault limit"
VALUE 394:
PRINT "Screw not ejected"
VALUE 404:
PRINT "Automatic operation not released"
VALUE 410:
PRINT "Feeder Bunker empty (FILL)"
VALUE 411:
PRINT "Feeding process failed. Check slide rail input"
VALUE 412:
PRINT "Feeder flap sorting pot open"
VALUE 413:
PRINT "Attention! Shut-off valve position error! "
VALUE 414:
PRINT "Feeder separation or slide rail jammed! "
VALUE 415:
PRINT "Feeder end position monitoring swivel module no signal! "
VALUE 416:
PRINT "Feed lock cylinder was not locked! "
VALUE 417:
PRINT "Feeder protection circuit was opened during feed "
VALUE 418:
PRINT "Feeder feed time too long! "
VALUE 419:
PRINT "Feed time too short! "
VALUE 420:
PRINT "System cleanup feeder active! "
VALUE 421:
PRINT "Refill feeder screws! "
VALUE 422:
PRINT "Feeder protection circuit open! "
VALUE 423:
PRINT "Feed screw stuck in hose! "
VALUE 424:
PRINT "Feeder teach in active for feed duration! "
VALUE 425:
PRINT "Feeder acknowledgment required (movements are pending)! "
VALUE 426:

[23]
PRINT "System cleanup feeder completed! Acknowledgment necessary!"
VALUE 427:
PRINT "Feeder swivel module is stuck or is empty!"
VALUE 428:
PRINT "Feeder screw control after disconnection no signal!! "
VALUE 429:
PRINT "Lock cylinder feeder was not unlocked "
VALUE 431:
PRINT "Master cylinder "
VALUE 432:
PRINT "Downholder device "
VALUE 433:
PRINT "Following error"
VALUE 436:
PRINT "Bit change prewarning value of tool reached "
VALUE 437:
PRINT "Bit change for tool required"
VALUE 438:
PRINT "Bit change for tool mandatory "
VALUE 439:
PRINT "Torque sensor zero value too high"
VALUE 440:
PRINT "Torque sensor limit value too high "
VALUE 441:
PRINT "Spindle friction too high "
VALUE 458:
PRINT "Reference curve could not be saved"
VALUE 470:
PRINT "Jaw wear prewarning value of tool reached "
VALUE 471:
PRINT "Jaw change for tool required "
VALUE 472:
PRINT "Jaw change for tool mandatory "
VALUE 473:
PRINT "Toothed belt wear prewarning value of tool reached "
VALUE 474:
PRINT "Toothed belt change for tool required"
VALUE 475:
PRINT "Toothed belt change for tool mandatory "
VALUE 476:
PRINT "Greasing the guiding prewarning value of tool reached "
VALUE 477:
PRINT "Greasing the guiding for tool required "
VALUE 540:
PRINT "Process halted "
any:
PRINT "unknow msg"
END

[24]
4.1.6 fd_zero();Reference FD
;************************************************
; COMPANY : RIVIAN
; PROGRAM : fd_zero(),REFERENCE FD
; REVISED LAST: 09/1/2021
; Produced by : RIVIAN KAWASAKI ROBOTICS DEV
;************************************************
;
;MOVE BEFORE REFERENCE BLOCK
;CLEAR OF REF. BLOCK TO EJECT SCREW
LINEAR SPEED5 ACCU0 TIMER0 TOOL1 WORK0 CLAMP OX= WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[-121.02,10.196,-36.075,-6.3645,34.936,5.4987] ;
;
BREAK
;
;CALL EJECT SCREW
CALL ejtscrw; CALL EJECT SCREW
;
;REQUEST AUTOMATIC
SIGNAL 785; REQUEST AUTOMATIC
;
;MOVE TO REFERENCE BLOCK (24MM-30MM AWAY)
LINEAR SPEED5 ACCU0 TIMER0 TOOL1 WORK0 CLAMP OX= WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[-121.38,19.262,-37.142,-5.3894,37.391,3.9903] ;30 mm
;
BREAK
;
;CALL REQUEST TO REFERENCE
SIGNAL 803 ;REQ REFERENCE
;
;WAIT FOR REFERENCE COMPLETED
WAIT SIG(1803) ;REFERENCE COMPLETED
;
;TURN OFF REQUEST TO REFERENCE
SIGNAL -803 ;REQ REFERENCE
;
;TURN OFF REQUEST AUTOMATIC
SIGNAL -785 ;REQ AUTOMATIC
;
;DEPART REFERENCE BLOCK
;CLEAR OF REF. BLOCK TO FEED SCREW
LINEAR SPEED5 ACCU2 TIMER0 TOOL1 WORK0 CLAMP OX= WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[-121.4,15.92,-32.194,-6.0649,32.467,4.8265] ;
;
BREAK
;
;CALL FEED SCREW
CALL feed_screw; CALL FEED SCREW

[25]
[26]
5. Program Examples

5.1 Program Examples

5.1.1 PG07(); FD Calibration Program Example

;*******************************************************
; COMPANY : RIVIAN
; PROGRAM : pg07,FLOW DRILL CALIBRATION FAULT (EXAMPLE)
; REVISED LAST: 10/14/2021
; Produced by : RIVIAN KAWASAKI ROBOTICS DEV
;*******************************************************
;
CALL pgverify(7); VERIFY PROGRAM
;
;MOVE TO HOME
CALL mov_home;MOVE TO HOME
;
;************************************************
10;POUNCE LOOP LABEL
;
SIGNAL 11 ; RBT IN PROGRAM LOOP
SIGNAL 8 ; AT POUNCE
WAIT SIG(1002) OR SIG(1014) ; CYCLE START OR RETURN TO HOME
SIGNAL -11 ; ROBOT IN PROGRAM LOOP OFF
SIGNAL -8 ; AT POUNCE OFF
IF SIG(1014) GOTO 12 ; RETURN HOME
IF SIG(1002) GOTO 11 ; START CYCLE LABEL
GOTO 10 ;ANTI WAIT OVERRIDE
;
;************************************************
11; START CYCLE LABEL MH PROCESS
JOINT SPEED8 ACCU2 TIMER0 TOOL1 WORK0 CLAMP OX= WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[-112.68,-11.123,9.2993,-102.71,-61.499,144.18] ;
;
;APPROACH CALIBRATION POS
JOINT SPEED8 ACCU2 TIMER0 TOOL1 WORK0 CLAMP OX= WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[-120.58,6.3772,-17.379,-5.9407,-37.334,54.106] ;
JOINT SPEED5 ACCU1 TIMER0 TOOL1 WORK0 CLAMP OX= WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[-121.1,7.1014,-33.514,-6.3817,33.806,5.0138] ;
;
CALL fd_zero;

[27]
;
;DEPART FROM CALIBRATION POS
JOINT SPEED5 ACCU4 TIMER0 TOOL1 WORK0 CLAMP OX= WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[-119.38,6.3772,-5.7438,-63.744,-18.249,140.08] ;
JOINT SPEED8 ACCU4 TIMER0 TOOL1 WORK0 CLAMP OX= WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[-112.68,-11.123,9.2993,-102.71,-61.499,144.18] ;
;
;MOVE TO HOME
CALL mov_home;MOVE TO HOME

5.1.2 PG20(); Main Carried Flow Drill Example


;************************************************
; COMPANY : RIVIAN
; PROGRAM : pg20, CARRIED FLOW DRILL (EXAMPLE)
; REVISED LAST: 12/09/2019
; Produced by : RIVIAN KAWASAKI ROBOTICS DEV
;************************************************
;
CALL pgverify(20); VERIFY PROGRAM
;
CALL mov_home;MOVE TO HOME
CALL mov_pnce;MOVE TO POUNCE
;
;************************************************
10;POUNCE LOOP LABEL
;
SIGNAL 11 ; RBT IN PROGRAM LOOP
SIGNAL 8 ; AT POUNCE
WAIT SIG(1002) OR SIG(1014) ; CYCLE START OR RETURN TO HOME
SIGNAL -11 ; ROBOT IN PROGRAM LOOP OFF
SIGNAL -8 ; AT POUNCE OFF
IF SIG(1014) GOTO 12 ; RETURN HOME
IF SIG(1002) GOTO 11 ; START CYCLE LABEL
GOTO 10 ;ANTI WAIT OVERRIDE
;
;************************************************
11; START CYCLE LABEL MH PROCESS
;
SIGNAL 796 ;Flow drill connected
SIGNAL -795 ;Flow drill Disconnected Off
WAIT SIG(-1795) AND SIG(1796) ;Tool Connected
SIGNAL 797 ;Request Tool Code 1
WAIT SIG(1797) ;Tool Code 1 Ack
;
CALL enttool(1); REQUEST TO ENTER TOOL 1 RBS-060 LH
;
CALL r1t_screw_lh

[28]
;
;*******************************************************
12; RETURN HOME LABEL
;
CALL mov_home;MOVE TO HOME

5.1.3 PG20(); Main Tool Change Flow Drill Example

;************************************************
; COMPANY : RIVIAN
; PROGRAM : pg20, MAIN TC FD (EXAMPLE)
; REVISED LAST: 2/12/2021
; Produced by : RIVIAN KAWASAKI ROBOTICS DEV
;************************************************
;
CALL pgverify(20); PROGRAM VERIFY
;
CALL mov_home;MOVE TO HOME
;
CALL atc_verify(2); Flow Drill
;
CALL mov_pnce;MOVE TO POUNCE
;
;************************************************
10; POUNCE LOOP
SIGNAL 11 ;RBT IN PROGRAM LOOP
SIGNAL 8 ;RBT AT POUNCE
WAIT SIG(1002) OR SIG(1014) ;CYCLE START OR RETURN HOME
SIGNAL -8 ;RBT AT POUNCE OFF
SIGNAL -11 ;RBT IN PROGRAM LOOP OFF
IF SIG(1014) GOTO 12 ;RETURN HOME
IF SIG(1002) GOTO 11 ;CYCLE START
GOTO 10 ;ANTI WAIT OVERRIDE
;
;*******************************************************
11; START CYCLE FLOW DRILL PROCESS 1
;
SIGNAL 796 ;Flow drill connected
SIGNAL -795 ;Flow drill Disconnected Off
WAIT SIG(-1795) AND SIG(1796) ;Tool Connected
SIGNAL 797 ;Request Tool Code 1
WAIT SIG(1797) ;Tool Code 1 Ack
;
CALL enttool(1);ENTER TOOL 1 ;STATION 90
;
CALL r1t_proc1_fd1;
;

[29]
SIGNAL (85) ;CLEAR TOOL 1
;
;*******************************************************
12; RETURN HOME LABEL
;
CALL mov_home; MOVE TO HOME

6. Interface Panel
The Flow Drill Interface Panel is shown below, followed by explanations of each item.

• Flow Drill Controller Communication on Indicator

• Solid Green - Flow Drill controller communication is OK


• Red - Flow Drill controller communication is NOT OK

[30]
• Flow Drill Enable

• ON - Flow Drill ON
• OFF - Flow Drill OFF

• Flow Drill Skip Once PB

• FD Enable Selector Switch must be ON to use this feature


• FD controller must be in faulted condition
• Robot must be in a Process Timeout condition
• Robot will skip the faulted FD and continue with the program

• Flow Drill Fault Reset PB

• Used to turn ON the Fault Reset from Robot Controller signal to the Flow Drill
controller

• Flow Drill Fault Recovery Switch

• FD Enable Selector Switch must be ON to use features Skip once and Retry Screw

• Flow Drill Retry Screw

• FD controller must be in faulted condition


• Robot must be in a Process Timeout condition
• Robot will retry and continue with the program
• Need to inspect the screw before retrying

[31]
• Flow Drill Screw in Head

• Solid Green - Flow Drill Screw is present in head


• Red - Flow Drill Screw is not present in head (Resend screw with fault reset)

• Flow Drill Error

• Green - Flow Drill Unit is not at an error state


• Red - Flow Drill Unit is at an error state and fault recovery needs to be selected

7. Robot Settings

7.1 Flow Drill I/O Communication Settings


The Flow Drill application utilizes robot settings to set the network path and configuration to the
flow drill application

[32]
[33]
7.2 Flow Drill Naming I/O
The Flow Drill application uses Naming I/O to add descriptions to signals for naming I/O
monitor viewing.

N_OX785 "FD#1 REQ AUTO" N_OX815 "FD#1 REQ TYPE ID 64"

N_OX786 "FD#1 START PROC" N_OX816 "FD#1 REQ TYPE ID 128"

N_OX787 "FD#1 QUIT ERROR" N_OX817 "FD#1 REQ SPOT NUM 1"

N_OX788 "FD#1 QUIT FK" N_OX818 "FD#1 REQ SPOT NUM 2"

N_OX789 "FD#1 FLOWDRILL ERROR" N_OX819 "FD#1 REQ SPOT NUM 4"

N_OX793 "FD#1 WP DOWNHOLDER" N_OX820 "FD#1 REQ SPOT NUM 8"

N_OX794 "FD#1 SCREW FAIL (SEND TO N_OX821 "FD#1 REQ SPOT NUM 16"
PLC)"
N_OX822 "FD#1 REQ SPOT NUM 32"
N_OX795 "FD#1 DISCONNECT TOOL"
N_OX823 "FD#1 REQ SPOT NUM 64"
N_OX796 "FD#1 CONNECT TOOL"
N_OX824 "FD#1 REQ SPOT NUM 128"
N_OX797 "FD#1 REQ TOOLCODE 1"
N_OX825 "FD#1 REQ SPOT NUM 256"
N_OX798 "FD#1 REQ TOOLCODE 2"
N_OX826 "FD#1 REQ SPOT NUM 512"
N_OX799 "FD#1 REQ TOOLCODE 4"
N_OX827 "FD#1 REQ SPOT NUM 1024"
N_OX800 "FD#1 REQ TOOLCODE 8"
N_OX828 "FD#1 REQ SPOT NUM 2048"
N_OX801 "FD#1 REQ FIRST MES"
N_OX829 "FD#1 REQ SPOT NUM 4096"
N_OX802 "FD#1 REQ NEXT MES"
N_OX830 "FD#1 REQ SPOT NUM 8192"
N_OX803 "FD#1 ADJUST TOOL"
N_OX831 "FD#1 REQ SPOT NUM 16384"
N_OX804 "FD#1 EJECT ELEMENT"
N_OX832 "FD#1 REQ SPOT NUM 32768"
N_OX805 "FD#1 FEED ELEMENT"
N_OX833 "FD#1 REQ SPOT NUM 65536"
N_OX806 "FD#1 MANUAL FUNCTION "
N_OX834 "FD#1 REQ SPOT NUM 131072"
N_OX807 "FD#1 RESET COUNT"
N_OX835 "FD#1 REQ SPOT NUM 262144"
N_OX808 "FLAG PLC ERROR OCCURED "
N_OX836 "FD#1 REQ SPOT NUM 524288"
N_OX809 "FD#1 REQ TYPE ID 1"
N_OX837 "FD#1 REQ SPOT NUM 1048576"
N_OX810 "FD#1 REQ TYPE ID 2"
N_OX838 "FD#1 REQ SPOT NUM 2097152"
N_OX811 "FD#1 REQ TYPE ID 4"
N_OX839 "FD#1 REQ SPOT NUM 4194303"
N_OX812 "FD#1 REQ TYPE ID 8"
N_OX840 "FD#1 REQ SPOT NUM 8388608"
N_OX813 "FD#1 REQ TYPE ID 16"
N_OX841 "FD#1 REQ SPOT NUM 16777216"
N_OX814 "FD#1 REQ TYPE ID 32"
N_OX842 "FD#1 FFR"

[34]
N_OX843 "FD#1 SEQ COMPLETE" N_WX1809 "FD#1 SPOT ACK"

N_OX844 "FD#1 RESET ANTI DBL FD" N_WX1810 "FD #1 FFR RESET @ HOME
ACTIVE"
N_OX845 "FD #1 IN RECOVERY LOOP"
N_WX1811 "PLC ERROR
N_OX846 "FFR RESET @ HOME ACTIVE" ACKNOLEDGEMENT "
N_WX1814 "FD#1 MESSAGE COUNT 1" N_WX1812 "FAILED SCREW ACK"
N_WX1815 "FD#1 MESSAGE COUNT 2" N_WX1814 "FD#1 MESSAGE COUNT 1"
N_WX1816 "FD#1 MESSAGE COUNT 4" N_WX1815 "FD#1 MESSAGE COUNT 2"
N_WX1817 "FD#1 MESSAGE NUM 1" N_WX1816 "FD#1 MESSAGE COUNT 4"
N_WX1818 "FD#1 MESSAGE NUM 2" N_WX1817 "FD#1 MESSAGE NUM 1"
N_WX1819 "FD#1 MESSAGE NUM 4" N_WX1818 "FD#1 MESSAGE NUM 2"
N_WX1820 "FD#1 MESSAGE NUM 8" N_WX1819 "FD#1 MESSAGE NUM 4"
N_WX1821 "FD#1 MESSAGE NUM 16" N_WX1820 "FD#1 MESSAGE NUM 8"
N_WX1822 "FD#1 MESSAGE NUM 32" N_WX1821 "FD#1 MESSAGE NUM 16"
N_WX1823 "FD#1 MESSAGE NUM 64" N_WX1822 "FD#1 MESSAGE NUM 32"
N_WX1824 "FD#1 MESSAGE NUM 128" N_WX1823 "FD#1 MESSAGE NUM 64"
N_WX1825 "FD#1 MESSAGE NUM 256" N_WX1824 "FD#1 MESSAGE NUM 128"
N_WX1826 "FD#1 MESSAGE NUM 512" N_WX1825 "FD#1 MESSAGE NUM 256"
N_WX1827 "FD#1 MESSAGE NUM 1024" N_WX1826 "FD#1 MESSAGE NUM 512"
N_WX1828 "FD#1 MESSAGE NUM 2048" N_WX1827 "FD#1 MESSAGE NUM 1024"
N_WX1833 "FD#1 MESSAGE TYPE 1" N_WX1828 "FD#1 MESSAGE NUM 2048"
N_WX1834 "FD#1 MESSAGE TYPE 2" N_WX1833 "FD#1 MESSAGE TYPE 1"
N_WX1804 "FD#1 ELEMENT EJECTED " N_WX1834 "FD#1 MESSAGE TYPE 2"
N_WX1805 "FD#1 ELEMENT FED"

N_WX1806 "FD#1 ELEMENT HEAD"

N_WX1807 "FD#1 SERIVCE WARNING "

N_WX1808 "FD#1 SERVICE MANDATORY"

N_WX1785 "FD#1 AUTOMODE ACK"

N_WX1786 "FD#1 SYS ONLINE"

N_WX1787 "FD#1 NO ERROR"

N_WX1788 "FD#1 PROCESS FINISHED"

N_WX1789 "FD#1 MOVE OK"

[35]
7.3 Appset Routine – Application Setting Bit
The .appset() routine is used to set application enable which drives multiple different parts of the K Logic.
Appset run’s the very first cycle anytime autostart.pc is started. If the application setting is not turned to a
positive value multiple features and functions will not work. Depending on the robot applications there may
be multiple signals that need to have the negative state remove. Application programming guides call out
what should be set. For Flow Drill example: a Flow Drill should match the screen shot below, by only
removing the negative state from the Flow Drill application signal.

Remove “-“

Before Signal

[36]
8. Klogic

[37]
[38]
[39]
[40]
[41]
[42]
[43]
[44]
[45]
[46]
[47]
[48]
[49]
[50]
[51]

You might also like