You are on page 1of 58

Rivian Robot Programming Guide – Kawasaki Implementation

Tool Changer

July 22nd 2023


Table of Contents
1. INTRODUCTION ............................................................................................................................................. 3
PURPOSE .........................................................................................................................................................3
Document Description..............................................................................................................................3
Who should use the document ................................................................................................................3
What should be learned ...........................................................................................................................3
2. IMPLEMENTATION ........................................................................................................................................ 3
APP SET ROUTINE SETTINGS ................................................................................................................................4
TCP CONVENTION FOR ATI TOOL PIN ...................................................................................................................4
SETTING TOOL ID ON ATI ...................................................................................................................................5
3. INTERFACE PANEL.......................................................................................................................................... 5
ATC INTERFACE PANEL ......................................................................................................................................5
ATC INTERFACE PANEL ICON DESCRIPTION ............................................................................................................5
4. ROBOT SETTINGS ........................................................................................................................................... 8
I/O COMMUNICATION SETTING ...........................................................................................................................8
ATC I/O Communication Setting ..............................................................................................................8
I/O NAMING....................................................................................................................................................9
5. ATI TOOL CHANGER DETAILS ....................................................................................................................... 10
CUBIC S TOOL IDENTIFICATION ..........................................................................................................................10
Tool Identification System Switch Settings ............................................................................................10
CS CONFIGURATOR TOOL IDENTIFICATION SETTINGS ..............................................................................................11
Tool ID / NO. Table .................................................................................................................................11
Tool Points Of Area Monitoring .............................................................................................................12
MULTI TOOL MOV_HOME SUBROUTINE ..............................................................................................................13
STATUS IDENTIFIER FOR ATI MODULE .................................................................................................................13
RTL 1 & RTL 2 CONNECTION............................................................................................................................14
ATI ( LOCK/UNLOCK) SAFETY SENSORS ...............................................................................................................14
6. ROBOT PROGRAMS ..................................................................................................................................... 15
FLOW CHARTS ................................................................................................................................................15
pg01(); Multi Tool Maintenance ............................................................................................................15
pg240(); Tool Swap No Tool ...................................................................................................................17
pg214(); Pick Tool 1................................................................................................................................17
pg242(); Pick Tool 2................................................................................................................................18
pg243(); Pick Tool 3................................................................................................................................18
atc_xpick(), Pick Tool x ...........................................................................................................................19
atc_xdrop(); Drop Tool x ........................................................................................................................20
SERVICE ROUTINES ..........................................................................................................................................21
pg01() ;Multi Tool Maintenance ............................................................................................................21
notoolmnt() ;No Tool Maintenance .......................................................................................................22

Kawasaki Programming Guide RIV0002 TC.docxPage 2 of 58


tool1mnt() ; Tool 1 Maintenance (SSW Example) ..................................................................................23
tool2mnt() ;Tool 2 Maintenance ............................................................................................................24
pg240() ;No Tool Swap ...........................................................................................................................25
pg241() ; Tool 1 Swap ............................................................................................................................25
pg242() ;Tool 2 Swap .............................................................................................................................26
PRODUCTION SUBROUTINES ..............................................................................................................................26
mov_home() ;Multi Tool Home ..............................................................................................................26
atc_lock() ;Tool Changer Lock ................................................................................................................28
atc_unlock() ;Tool Changer Unlock ........................................................................................................28
atc_verify(.reqtoolnum) ;Tool Changer Verify .......................................................................................29
PROGRAM EXAMPLES ......................................................................................................................................33
atc_1pick() ;ATC Pick Tool 1 ...................................................................................................................33
atc_1drop() ;ATC Drop Tool 1 ................................................................................................................34
atc_2pick() ;ATC Pick Tool 2 ...................................................................................................................36
atc_2drop() ;ATC Drop Tool 2 ................................................................................................................38
atc_3pick() ;ATC Pick Tool 3 ...................................................................................................................40
atc_3drop() ;ATC Drop Tool 3 ................................................................................................................41
7. KLOGIC TOOL CHANGER .............................................................................................................................. 43

1. Introduction
Purpose
Document Description
This document defines the basic methodology and structure for programming Kawasaki robots for Rivian
Tool Change applications. It is designed to give the guideline for standard programming, with
expectations that integrators can customize where required.

Who should use the document


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

What should be learned


This document explains the general programing strategy for a Kawasaki robot. It explains the standards
that are to be applied to all Tool Changer 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.

2. Implementation
The Tool Changer application is not a standalone application, most often implemented with Material
Handling, Servo Spot Weld, Self Pierce Rivet, etc., application(s). Note that this programming guide

Kawasaki Programming Guide RIV0002 TC.docxPage 3 of 58


appendix is used as detailed reference to ATI tool changing application; there are additional special
considerations that need to be referenced in each application programming guide as well.

App Set Routine Settings


The app set routine settings are required for each application. These settings enable certain settings
specific to applications. App set routine only runs on the first cycle of autostart.pc. Therefore any time you
cycle power to the robot or pc program 1 is aborted and killed, will the app_set() routine actually run. By
simply removing the negative state of the application bit will enable the settings. If a robot is in auto and
cannot be stopped, it is possible to still enable the app set settings. First you want to edit the app_set()
routine in the background. Then proceed to the keyboard screen and type “sig” space and the specific
signal you want to the positive state. If running multiple applications, there may be more signals set to the
positive state then the ones show below.

ATC app_set() Example:

TCP Convention for ATI Tool Pin


TCP convention should be as followed. The ATI pin, closest to the connection module, should be tool 9.
Z+ direction should move towards tool to be coupled. X+ direction should move towards the ATI
connection module.

Kawasaki Programming Guide RIV0002 TC.docxPage 4 of 58


Setting Tool ID on ATI
When setting the tool ID, all five positions need to be set to the same number. Example below would be
for “Tool 2”.

3. Interface Panel
The Tool Changer Interface Panel is shown below, followed by explanations of each icon.

The Tool Change Covers can be operated manually through the software interface screen in Teach
mode. To operate the tool stand covers in manual you must first turn off the open/close signals (OX
518/519), then you must change the binary signal for which cover you want to open/ close (OX 531-534).
Then the interface panel push buttons will work.

ATC Interface Panel

ATC Interface Panel Icon Description

Kawasaki Programming Guide RIV0002 TC.docxPage 5 of 58


Kawasaki Programming Guide RIV0002 TC.docxPage 6 of 58
Kawasaki Programming Guide RIV0002 TC.docxPage 7 of 58
4. Robot Settings
I/O Communication Setting
The i/o communication settings can be found AUX: 6: Input/Output Signal 8: Signal Allocation 9: Software
EtherNet/IP setting 4: I/O Communication setting. ATC used Node Number 1. must be used
to proceed through the menus. I/P address will be specific to each system. Setup provided below.

ATC I/O Communication Setting

Kawasaki Programming Guide RIV0002 TC.docxPage 8 of 58


I/O Naming
.AUXDATA
N_OX513"TC ERR RESET"
N_OX514"TC IN ERR"
N_OX517"TC IN PROCESS"
N_OX518"OPN TOOL STND COVERS"
N_OX519"CLS TOOL STND COVERS"
N_OX523"DUST COVER NOT PRESENT"
N_OX525"RBT AT PICK/DROP POS"
N_OX529"TC COUPLE"
N_OX530"TC UNCOUPLE"
N_OX531"TOOL LID REQ ID 1"
N_OX532"TOOL LID REQ ID 2"
N_OX533"TOOL LID REQ ID 4"
N_OX534"TOOL LID REQ ID 8"
N_OX543"DUST CVR USED"
N_OX544"OPDOCK ENABLE BIT"
N_WX1513"TOOL 1 ON STAND"
N_WX1514"TOOL 2 ON STAND"
N_WX1515"TOOL 3 ON STAND"
N_WX1516"TOOL 4 ON STAND"
N_WX1517"TOOL 5 ON STAND"
N_WX1518"TOOL 6 ON STAND"
N_WX1519"TOOL 7 ON STAND"
N_WX1520"TOOL 8 ON STAND"
N_WX1521"TC STND CVRS OPND"
N_WX1522"TC STND CVRS CLSD"
N_WX1523"TC MAINT SELECTED"
N_WX1525"ANY TOOL ON ROBOT"
N_WX1526"NO TOOL ON ROBOT"

Kawasaki Programming Guide RIV0002 TC.docxPage 9 of 58


N_WX1527"UNLATCH ENABLED"
N_WX1528"TC COMM OK"
N_WX1529"TC COUPLED"
N_WX1530"TC UNCOUPLED"
N_WX1531"TC TOOL ID 1"
N_WX1532"TC TOOL ID 2"
N_WX1533"TC TOOL ID 4"
N_WX1534"TC TOOL ID 8"
N_WX1535"TOOL PRESENT"
N_WX1536"ALL TOOLS ON STAND"
N_WX1537"TC RTL 1"
N_WX1538"TC RTL 2"
N_WX1539"TC RTL VERIFY"
N_WX1540"TC TSIV"
N_WX1541"TC TSRV"
N_WX1542"INPUT & LOGIC PWR OK"
N_WX1543"TC VALVE PWR OK"
N_WX1544"TC TOOL PWR ON"
.END

5. ATI Tool Changer Details


Cubic S Tool Identification
These settings are only applicable to Robots with intent to use different tool shapes for each associated
tool.

Before applying the following settings, a few hardware items need to be confirmed.
• There is a Tool ID Kit in the Kawasaki Controller.
• Allen Bradley Safety I/O Module is wired to the robot controller
• Allen Bradley Safety I/O Module is wired to each tool changer stand for each tool
• Two set’s of Euchner switches for each tool/tool stand. (One transmitter on robot tool and One
transmitter on tool changer stand)

PLC programming is required for this functionality. The Transmitter switches on the tool stand will go back
to the PLC and then relaying back to the robot, which tool the robot is holding.

Tool Identification System Switch Settings


The system switch settings can be found AUX: 5: Advance Setting 2: System Switch. must be
used to proceed through the page, continue until is seen. Below is a example of the proper
settings

Kawasaki Programming Guide RIV0002 TC.docxPage 10 of 58


CS Configurator Tool Identification Settings
There are Cubic S configurator settings, specific to tool identification function, that need to be applied for
this functionality to work properly. Some detail to the examples below will vary, depending on how many
tools are being used. One thing to note when using this functionality, EACH tool will need to have defined
values for Tool Points of Area Monitoring. Changes to Cubic S will result in a safety signature
change.

Tool ID / NO. Table


The following settings can be found at: PARAMETER TREE VIEW > MONITORING COMMON
SETTINGS > TOOL ID/NO. TABLE. The settings below should be matched.

Kawasaki Programming Guide RIV0002 TC.docxPage 11 of 58


Tool Points Of Area Monitoring
The following settings can be found at: PARAMETER TREE VIEW > MONITORING COMMON
SETTINGS > TOOL POINTS OF AREA MONITORING. Here is where you will assign tool points for
individual Tool No Numbers, 1 through 9, where 9(Tool ID zero) is for ATI only. Please note that tool
points should start at “Tool Point9”, the reason we do this is on the teach pendant tool points 1-8 can be
modified. It is required that an experienced robot programmer should only be making these changes, to
not allow for unwanted modification.

Examples for Tool No.1 and 2 are provided below:

Kawasaki Programming Guide RIV0002 TC.docxPage 12 of 58


Optimizing Tool area monitoring shapes is preferred. If it is required to use more than eight tool points to
optimize a tool shape, this is acceptable.

Multi Tool mov_home Subroutine


There is special mov_home subroutine, used specifically for robots that use the tool identification
function. Examples can be found in the Robot Programs Section.

Status Identifier for ATI Module

Kawasaki Programming Guide RIV0002 TC.docxPage 13 of 58


RTL 1 & RTL 2 Connection

ATI ( Lock/Unlock) Safety Sensors

Kawasaki Programming Guide RIV0002 TC.docxPage 14 of 58


6. Robot Programs
Table 1 lists each production program example, utilized for performing tool changing motion, provided by
Kawasaki in which the line builder must use as a reference for motion programs.

Table 2 lists each production subroutine, provided by Kawasaki and used directly by the line builder
without modification.

Flow Charts
pg01(); Multi Tool Maintenance

Kawasaki Programming Guide RIV0002 TC.docxPage 15 of 58


Kawasaki Programming Guide RIV0002 TC.docxPage 16 of 58
pg240(); Tool Swap No Tool

pg214(); Pick Tool 1

Kawasaki Programming Guide RIV0002 TC.docxPage 17 of 58


pg242(); Pick Tool 2

pg243(); Pick Tool 3

Kawasaki Programming Guide RIV0002 TC.docxPage 18 of 58


atc_xpick(), Pick Tool x

Kawasaki Programming Guide RIV0002 TC.docxPage 19 of 58


atc_xdrop(); Drop Tool x

Kawasaki Programming Guide RIV0002 TC.docxPage 20 of 58


Service Routines
pg01() ;Multi Tool Maintenance
;************************************************
; COMPANY : RIVIAN
; PROGRAM : pg01(), MULTI TOOL MAINTENANCE
; REVISED LAST: 1/22/2021
; Produced by : RIVIAN KAWASAKI ROBOTICS DEV
;************************************************
;
;VERIFY PROGRAM
CALL pgverify(1)
;
;MOVE TO HOME
CALL mov_home;MOVE TO HOME
;
;************************************************
1;MAINTENANCE BASED ON CURRENT TOOL HELD BY ROBOT
;COMMENT OUT UNUSED TOOLS
;
;SET TOOL ID BIT
current_tool = BITS(1531,4);Tool Number on Robot
;
IF BITS(1531,4)==15 THEN
CALL notoolmnt
END
IF BITS(1531,4)==1 THEN
CALL tool1mnt
END
IF BITS(1531,4)==2 THEN
CALL tool2mnt
END
IF BITS(1531,4)==3 THEN
CALL tool3mnt
END
IF BITS(1531,4)==4 THEN
;CALL tool4mnt
END
IF BITS(1531,4)==5 THEN
;CALL tool5mnt
END
IF BITS(1531,4)==6 THEN
;CALL tool6mnt
END
;
GOTO 20
;
;SOMETHING ELSE WENT WRONG
;STYLE SELECT BITS NOT IN RANGE
;OR SOMETHING ELSE WENT WRONG
;HALT PROGRAM
998
alarm[5] = 1
PAUSE

Kawasaki Programming Guide RIV0002 TC.docxPage 21 of 58


alarm[5] = 0
GOTO 1
;
20; CONTINUE HOME
;
;MOVE TO HOME
CALL mov_home;MOVE TO HOME

notoolmnt() ;No Tool Maintenance


;*******************************************************
; COMPANY : Rivian
; PROGRAM : notoolmnt, NO TOOL MAINTENANCE POSITION (EXAMPLE)
; REVISED LAST: 08/04/2023
; Produced by : RIVIAN KAWASAKI ROBOTICS DEV
;*******************************************************
;
;SET INTERNAL VARIABLE
; WHAT TOOL IS ON EOAT
eoat_present = BITS(1531,4) ;TOOL ID BITS
;
;NO EOAT ON TOOL CHANGER
;IF TOOL ID BIT = 15 MEANS
;NO TOOL IS ON EOAT
IF BITS(1531,4)>8 GOTO 899 ;TOOL ID BITS
GOTO 900
;
;NO TOOL ON EOAT
899
;
;MOVE TO HOME
CALL mov_home;MOVE TO HOME
;
;APPROACH TO MAINT POS
JOINT SPEED5 ACCU1 TIMER0 TOOL1 WORK0 CLAMP1 (OFF,0,1,0) 2 (OFF,0,0,O) 3 (OFF,0,0,O)
OX= WX= CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[-96.128,-46.5,-11.35,-82.669,-96.489,9.868,-2000,-
0.0099007] ;
JOINT SPEED5 ACCU1 TIMER0 TOOL1 WORK0 CLAMP1 (OFF,0,1,0) 2 (OFF,0,0,O) 3 (OFF,0,0,O)
OX= WX= CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[-96.128,-31.693,-29.797,-82.669,-95.212,51.411,-2000,-
0.0099007] ;
LINEAR SPEED5 ACCU1 TIMER0 TOOL1 WORK0 CLAMP1 (OFF,0,1,0) 2 (OFF,0,0,O) 3 (OFF,0,0,O)
OX= WX= CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[-96.128,-12.499,-52.496,-82.656,-95.194,51.557,-2000,-
0.0099007] ;
;
;MAINTENANCE POSITION
LINEAR SPEED5 ACCU1 TIMER0 TOOL1 WORK0 CLAMP1 (OFF,0,1,0) 2 (OFF,0,0,O) 3 (OFF,0,0,O)
OX= WX= CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[-96.128,35.239,-88.216,-81.013,-89.953,86.94,-2000,-
0.0099007] ;
;
;MAINTENANCE POSITION ON
SIGNAL 5 ;ROBOT AT MAINTENANCE POSITION
;
;WAIT FOR MAINTENANCE CLEAR
;FROM PLC
WAIT SIG(1008) ;MAINTENANCE POSITION CLEAR

Kawasaki Programming Guide RIV0002 TC.docxPage 22 of 58


;
;MAINTENANCE POSITION OFF
SIGNAL -5 ;ROBOT AT MAINTENANCE POSITION
;
;DEPART POSITION
LINEAR SPEED5 ACCU1 TIMER0 TOOL1 WORK0 CLAMP1 (OFF,0,1,0) 2 (OFF,0,0,O) 3 (OFF,0,0,O)
OX= WX= CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[-96.128,-12.499,-52.496,-82.656,-95.194,51.557,-2000,-
0.0099007] ;
LINEAR SPEED5 ACCU1 TIMER0 TOOL1 WORK0 CLAMP1 (OFF,0,1,0) 2 (OFF,0,0,O) 3 (OFF,0,0,O)
OX= WX= CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[-96.128,-31.693,-29.797,-82.669,-95.212,51.411,-2000,-
0.0099007] ;
JOINT SPEED5 ACCU1 TIMER0 TOOL1 WORK0 CLAMP1 (OFF,0,1,0) 2 (OFF,0,0,O) 3 (OFF,0,0,O)
OX= WX= CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[-96.128,-46.5,-11.35,-82.669,-96.489,9.868,-2000,-
0.0099007] ;
;
;TOOL ON EOAT
900
;
;MOVE TO HOME
CALL mov_home;MOVE TO HOME
;

tool1mnt() ; Tool 1 Maintenance (SSW Example)


;*******************************************************
; COMPANY : Rivian
; PROGRAM : tool1mnt, TOOL 1 MAINTENANCE POSITION (EXAMPLE)
; REVISED LAST: 1/22/2021
; Produced by : RIVIAN KAWASAKI ROBOTICS DEV
;*******************************************************
;
;MOVE TO HOME
CALL mov_home;MOVE TO HOME
;
;APPROACH TO MAINT POS
JOINT SPEED5 ACCU0 TIMER0 TOOL1 WORK0 CLAMP1 (OFF,0,1,1) OX= WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[-73.201,67.21,-32.299,-106.31,97.212,98.875,-800,158] ;
;
10;MAINTENANCE POSITION
JOINT SPEED5 ACCU0 TIMER0 TOOL1 WORK0 CLAMP1 (OFF,0,1,1) OX= WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[-74.881,80.435,-36.349,-107.3,96.727,94.761,-800,158] ;MAINT
;
SIGNAL 5 ;ROBOT AT MAINTENANCE POSITION ON
;
; IF TIP CHANGE REQUIRED GROUP 1, WATER OFF
IF SIG(1258) THEN; TIP CHANGE REQUIRED GROUP 1
SIGNAL (722); VALVE CLOSED
WAIT SIG(1722) AND SIG(-1721); VALVE CLOSED/WATER OFF
END;
;
;WAIT MAINTENANCE CLEAR OR STEPPERS ARE RESEET GROUP 1
;OR I/F PB TIP ALIGNMENT CLOSE
WAIT SIG(1008) OR SIG(1257) OR SIG(1249) ;
;
IF SIG(1008) OR SIG(1257) GOTO 20; MAINT POS COMP

Kawasaki Programming Guide RIV0002 TC.docxPage 23 of 58


IF SIG(1249) THEN; IF I/F PB TIP ALIGNMENT
;
;****TIP ALIGNMENT POSITION GUN OPENING 4MM*****
JOINT SPEED5 ACCU0 TIMER0 TOOL1 WORK0 CLAMP1 (OFF,0,1,1) OX= WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[-74.881,80.435,-36.349,-107.3,96.727,94.761,-800,4] ;MAINT
;
;WAIT MAINTENANCE CLEAR OR I/F PB TIP ALIGNMENT OPEN
WAIT SIG(1008) OR SIG(1250) ;
;
END
;
GOTO 10; MAINTENANCE POSITION
;
;*******************************************************
20; MAINTENANCE POSITION COMPLETE
;*******************************************************
;
IF SIG(-1721) THEN; IF WATER OFF, RESET WATER
SIGNAL (-722); VALVE CLOSED OFF
PULSE 721,0.5; WATER SAVER RESET
TWAIT 1; WATER SAVER RESET DELAY
WAIT SIG(1721); WAIT WATER FLOW OK
END;
;
WAIT SIG(-1240); NOT PULLED TIP BYPASS
;
;IF TIP DRESS BYPASS ON AND STEPPERS ARE RESET GROUP 1
;THEN SEAT CAPS AND TIP MEASUREMENT
IF SIG(1245) AND SIG(1257) THEN;
CALL seat_cap; NEW TIPS SEAT CAPS
CALL tip_meas1; TIP MEASUREMENT
CALL tip_cal1; TIP MEASUREMENT
END
;
;MAINT POSITION OFF
SIGNAL -5 ;ROBOT AT MAINTENANCE POSITION
;
;DEPART FROM MAINT POS
JOINT SPEED7 ACCU1 TIMER0 TOOL1 WORK0 CLAMP1 (OFF,0,1,1) OX= WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[-73.942,67.21,-32.299,-106.31,97.212,98.875,-800,158] ;
;
;MOVE TO HOME
CALL mov_home;MOVE TO HOME
;

tool2mnt() ;Tool 2 Maintenance


;*******************************************************
; COMPANY : Rivian
; PROGRAM : tool2mnt, TOOL 2 MAINTENANCE POSITION (EXAMPLE)
; REVISED LAST: 1/22/2021
; Produced by : RIVIAN KAWASAKI ROBOTICS DEV
;*******************************************************
;
;MOVE TO HOME

Kawasaki Programming Guide RIV0002 TC.docxPage 24 of 58


CALL mov_home;MOVE TO HOME
;
;APPROACH TO MAINT POS
JOINT SPEED9 ACCU1 TIMER0 TOOL1 WORK0 CLAMP1 (OFF,0,1,0) 2 (OFF,0,0,O) 3 (OFF,0,0,O)
OX= WX= CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[-110,-30,15,0,-82.016,-70,-2000,0] ;
;
10;MAINTENANCE POSITION
LINEAR SPEED6 ACCU0 TIMER0 TOOL1 WORK0 CLAMP1 (OFF,0,1,0) 2 (OFF,0,0,O) 3 (OFF,0,0,O)
OX= WX= CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[-110,-27.728,-35.904,0,-31.112,-69.999,-2000,0.0001737]
;
;
SIGNAL 5 ;ROBOT AT MAINTENANCE POSITION ON
;
;WAIT MAINTENANCE POSITION CLEAR
WAIT SIG(1008);
;
; IF MAINT POS CLEAR NOT ON GOTO 10
IF SIG(-1008) GOTO 10;
;
SIGNAL -5 ;ROBOT AT MAINT POS OFF
;
;DEPART FROM MAINT POS
JOINT SPEED9 ACCU1 TIMER0 TOOL1 WORK0 CLAMP1 (OFF,0,1,0) 2 (OFF,0,0,O) 3 (OFF,0,0,O)
OX= WX= CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[-110,-30,15,0,-82.016,-70,-2000,0] ;
;
;MOVE TO HOME
CALL mov_home;MOVE TO HOME
;

pg240() ;No Tool Swap


;************************************************
; COMPANY : RIVIAN
; PROGRAM : pg240(), NO TOOL
; REVISED LAST: 1/20/2021
; Produced by : RIVIAN KAWASAKI ROBOTICS DEV
;************************************************
;
;VERIFY PROGRAM
CALL pgverify(240)
;
;MOVE TO HOME
CALL mov_home;MOVE TO HOME
;
CALL atc_verify(0)
;
;MOVE TO HOME
CALL mov_home;MOVE TO HOME
;

pg241() ; Tool 1 Swap


;************************************************
; COMPANY : RIVIAN
; PROGRAM : pg241(), PICK TOOL 1

Kawasaki Programming Guide RIV0002 TC.docxPage 25 of 58


; REVISED LAST: 1/20/2021
; Produced by : RIVIAN KAWASAKI ROBOTICS DEV
;************************************************
;
;VERIFY PROGRAM
CALL pgverify(241)
;
;MOVE TO HOME
CALL mov_home;MOVE TO HOME
;
CALL atc_verify(1)
;
;MOVE TO HOME
CALL mov_home;MOVE TO HOME
;

pg242() ;Tool 2 Swap


;************************************************
; COMPANY : RIVIAN
; PROGRAM : pg242(), PICK TOOL 2
; REVISED LAST: 1/20/2021
; Produced by : RIVIAN KAWASAKI ROBOTICS DEV
;************************************************
;
;VERIFY PROGRAM
CALL pgverify(242)
;
;MOVE TO HOME
CALL mov_home;MOVE TO HOME
;
CALL atc_verify(2)
;
;MOVE TO HOME
CALL mov_home;MOVE TO HOME
;

Production Subroutines
mov_home() ;Multi Tool Home
;************************************************
; COMPANY : RIVIAN AUTOMOTIVE
; PROGRAM : mov_home(), MULTIPLE HOME (EXAMPLE)
; REVISED LAST: 10/7/2020
; Produced by : RIVIAN KAWASAKI ROBOTICS DEV
;************************************************
;SET INTERNAL VARIABLE
; WHAT TOOL IS ON EOAT
eoat_present = BITS(1531,4) ;TOOL ON ROBOT
;
; ADVANCED CUBIC-S MULTIPLE HOME
;-------------------------
CASE eoat_present OF

Kawasaki Programming Guide RIV0002 TC.docxPage 26 of 58


VALUE 1:
;MOVE HOME TOOL#1
JOINT SPEED9 ACCU0 TIMER0 TOOL1 WORK0 CLAMP1 (OFF,0,1,0) OX= WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[-94.077,-19.028,12.57,0.12758,-66.684,159.98,-2000,-4299.3]
;HOME
;-------------------------
;
VALUE 2:
;MOVE HOME TOOL#2
JOINT SPEED9 ACCU0 TIMER0 TOOL2 WORK0 CLAMP1 (OFF,0,1,0) OX= WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[-94.077,-19.028,12.57,0.12758,-66.684,159.98,-2000,-4299.3]
;HOME
;------------------------------
;
VALUE 3:
;MOVE HOME TOOL#3
JOINT SPEED9 ACCU0 TIMER0 TOOL3 WORK0 CLAMP1 (OFF,0,1,0) OX= WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[-94.077,-19.028,12.57,0.12758,-66.684,159.98,-2000,-4299.3]
;HOME
;-------------------------
;
VALUE 4:
;MOVE HOME TOOL#4
JOINT SPEED4 ACCU0 TIMER0 TOOL4 WORK0 CLAMP1 (OFF,0,1,1) OX= WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[-94.077,-19.028,12.57,0.12758,-66.684,159.98,110,-4299.3] ;HOME
;-------------------------
;
VALUE 5:
;MOVE HOME TOOL#5
JOINT SPEED9 ACCU0 TIMER0 TOOL5 WORK0 CLAMP1 (OFF,0,1,0) OX= WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[-94.077,-19.028,12.57,0.12758,-66.684,-25,-2000,-4299.3] ;HOME
;-------------------------
;
VALUE 6:
;MOVE HOME TOOL#6
JOINT SPEED9 ACCU0 TIMER0 TOOL6 WORK0 CLAMP1 (OFF,0,1,0) OX= WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[-94.077,-19.028,12.57,0.12758,-66.684,159.98,-2000,-4299.3]
;HOME
;-------------------------
;
VALUE 7:
;MOVE HOME TOOL#7
JOINT SPEED9 ACCU0 TIMER0 TOOL7 WORK0 CLAMP1 (OFF,0,1,0) OX= WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[-94.077,-19.028,12.57,0.12758,-66.684,159.98,-2000,-4299.3]
;HOME
;-------------------------
;
VALUE 8:
;MOVE HOME TOOL#8
JOINT SPEED9 ACCU0 TIMER0 TOOL8 WORK0 CLAMP1 (OFF,0,1,0) OX= WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[-94.077,-19.028,12.57,0.12758,-66.684,159.98,-2000,-4299.3]
;HOME
;-------------------------
;
VALUE 15:
;MOVE HOME TOOL#9

Kawasaki Programming Guide RIV0002 TC.docxPage 27 of 58


JOINT SPEED9 ACCU0 TIMER0 TOOL9 WORK0 CLAMP1 (OFF,0,1,0) OX= WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[-94.077,-19.028,12.57,0.12758,-66.684,159.98,-2000,-4299.3]
;HOME
;-------------------------
END;
;
;********************************
;END PROGRAM
999
;

atc_lock() ;Tool Changer Lock


;************************************************
; COMPANY : RIVIAN
; PROGRAM : atc_lock(), TOOL CHANGER LOCK
; REVISED LAST: 02/26/2023 REV 02 (ATC)
; Produced by RIVIAN KAWASAKI ROBOTICS DEV
;************************************************
;
IF SIG(-1542) THEN ; IF ATC INPUT POWER FAULT THEN
PULSE 513,1.5 ;PULSE ATC RESET
END; IF ATC INPUT POWER NOT OK
;
power_ok:;WAIT FOR TOOL CHANGER POWER AND AIR
WAIT SIG(1542) AND SIG(1543) ;ATC INPUT & LOGIC PWR OK, ATC VALVE PWR OK
IF SIG(-1542) OR SIG(-1543) GOTO power_ok; ANTI-WAIT OVERRIDE
;
rtl_inputs:;WAIT FOR READY 2 LOCK INPUTS
WAIT SIG(1537) AND SIG(1538) ;RTL1, RTL2
IF SIG(-1537) OR SIG(-1538) GOTO rtl_inputs; ANTI-WAIT OVERRIDE
;
; SET OUTPUTS FOR LOCK
SIGNAL -530 ;RESET TOOL CHANGER UNCOUPLE
SIGNAL 529 ;SET TOOL CHANGER COUPLE
;
locked_inputs:;WAIT FOR INPUTS ATC_LOCKED
WAIT SIG(1529) AND SIG(-1530) ;ATC COUPLED, ATC UNCOUPLED
IF SIG(-1529) OR SIG(1530) GOTO locked_inputs; ANTI-WAIT OVERRIDE
;
safe_inputs:;WAIT FOR INPUTS BEFORE MOVING
WAIT SIG(1528) AND SIG(1540) AND SIG(1541) ;COMMS ACTIVE, TSIV, TSRV
IF SIG(-1528) OR SIG(-1540) OR SIG(-1541) GOTO safe_inputs; ANTI-WAIT OVERRIDE
;

atc_unlock() ;Tool Changer Unlock


;************************************************
; COMPANY : RIVIAN
; PROGRAM : atc_unlock(), TOOL CHANGER UNLOCK
; REVISED LAST: 02/26/2023 REV 02 (ATC)
; Produced by RIVIAN KAWASAKI ROBOTICS DEV
;************************************************
;
IF SIG(-1542) THEN ; IF ATC INPUT POWER FAULT THEN

Kawasaki Programming Guide RIV0002 TC.docxPage 28 of 58


PULSE 513,1.5 ;PULSE ATC RESET
END; IF ATC INPUT POWER NOT OK
;
power_ok:;WAIT FOR TOOL CHANGER POWER AND AIR
WAIT SIG(1542) AND SIG(1543) ;ATC INPUT & LOGIC PWR OK, ATC VALVE PWR OK
IF SIG(-1542) OR SIG(-1543) GOTO power_ok; ANTI-WAIT OVERRIDE
;
safe_inputs:;WAIT FOR INPUTS BEFORE UNLOCKING
WAIT SIG(1540) AND SIG(1541) ;TSIV, TSRV
IF SIG(-1540) OR SIG(-1541) GOTO safe_inputs; ANTI-WAIT OVERRIDE
;
; SET OUTPUTS FOR UNLOCK
SIGNAL -529 ;RESET TOOL CHANGER COUPLE
SIGNAL 530 ;SET TOOL CHANGER UNCOUPLE
;
unlocked_inputs:;WAIT FOR INPUTS ATC_UNLOCKED
WAIT SIG(-1529) AND SIG(1530) ;ATC COUPLED, ATC UNCOUPLED
IF SIG(1529) OR SIG(-1530) GOTO unlocked_inputs; ANTI-WAIT OVERRIDE
;

atc_verify(.reqtoolnum) ;Tool Changer Verify


;************************************************
; COMPANY : RIVIAN
; PROGRAM : atc_verify(.reqtoolnum), TOOL CHANGER VERIFY
; REVISED LAST: 03/08/2023 REV 02
; Produced by RIVIAN KAWASAKI ROBOTICS DEV
;************************************************
1
;
WAIT SIG(1528) ; ATC COMMS OK
IF SIG(-1528) GOTO 1; ANTI WAIT OVERRIDE
;
;SET INTERNAL VARIABLE
; WHAT TOOL IS ON EOAT
eoat_present = BITS(1531,4) ;TOOL ON ROBOT
;
;
;********************************
;IF REQUESTED TOOL NUMBER NOT IN
; THE RANGE OF 1-8
; THEN ABORT THIS JOB
IF .reqtoolnum<1 OR .reqtoolnum>8 GOTO 998
;********************************
;
;
;NO EOAT ON TOOL CHANGER
; IF TOOL ID BIT = 15 MEANS
; NO TOOL IS ON EOAT
IF BITS(1531,4)>8 GOTO 899
;
;-------------------------
;VERIFY REQUESTED TOOL IS ON EOAT
; IF REQUESTED TOOL == TOOL ON EOAT
; THEN END PROGRAM

Kawasaki Programming Guide RIV0002 TC.docxPage 29 of 58


IF BITS(1531,4)==.reqtoolnum GOTO 999
;
;SET ATC INTERNAL VARIABLE
lst_eoat_doff = BITS(1531,4) ;TOOL NUMBER ON ROBOT
;
;VERIFY TOOL STAND EMPTY BEFORE
; GOING TO ATC_xDROP
;-------------------------
CASE eoat_present OF
VALUE 1:
;VERIFY TOOL STAND #1 IS EMPTY
WAIT SIG(-1513) ;TOOL ON STAND #1
IF SIG(1513) GOTO 610 ;TOOL ON STAND #1
CALL atc_1drop;TOOL 1 DROP TO STAND
;-------------------------
;
VALUE 2:
;VERIFY TOOL STAND #2 IS EMPTY
WAIT SIG(-1514) ;TOOL ON STAND #2
IF SIG(1514) GOTO 610 ;TOOL ON STAND #2
CALL atc_2drop;TOOL 2 DROP TO STAND
;-------------------------
;
VALUE 3:
;VERIFY TOOL STAND #3 IS EMPTY
WAIT SIG(-1515) ;TOOL ON STAND #3
IF SIG(1515) GOTO 610 ;TOOL ON STAND #3
CALL atc_3drop;TOOL 3 DROP TO STAND
;-------------------------
;
VALUE 4:
;VERIFY TOOL STAND #4 IS EMPTY
WAIT SIG(-1516) ;TOOL ON STAND #4
IF SIG(1516) GOTO 610 ;TOOL ON STAND #4
CALL atc_4drop;TOOL 4 DROP TO STAND
;-------------------------
;
VALUE 5:
;VERIFY TOOL STAND #5 IS EMPTY
WAIT SIG(-1517) ;TOOL ON STAND #5
IF SIG(1517) GOTO 610 ;TOOL ON STAND #5
CALL atc_5drop;TOOL 5 DROP TO STAND
;-------------------------
;
VALUE 6:
;VERIFY TOOL STAND #6 IS EMPTY
WAIT SIG(-1518) ;TOOL ON STAND #6
IF SIG(1518) GOTO 610 ;TOOL ON STAND #6
CALL atc_6drop;TOOL 6 DROP TO STAND
;-------------------------
;
VALUE 7:
;VERIFY TOOL STAND #7 IS EMPTY
WAIT SIG(-1519) ;TOOL ON STAND #7
IF SIG(1519) GOTO 610 ;TOOL ON STAND #7
CALL atc_7drop;TOOL 7 DROP TO STAND

Kawasaki Programming Guide RIV0002 TC.docxPage 30 of 58


;-------------------------
;
VALUE 8:
;VERIFY TOOL STAND #8 IS EMPTY
WAIT SIG(-1520) ;TOOL ON STAND #8
IF SIG(1520) GOTO 610 ;TOOL ON STAND #8
CALL atc_8drop;TOOL 8 DROP TO STAND
;-------------------------
;
ANY :
GOTO 610
END
;
;
;NO TOOL ON EOAT, SKIP DROPOFF
899
;
; VERIFY NO TOOL PRESENT AND UNLOCKED
WAIT SIG(-1537) AND SIG(-1538) AND SIG(1530); NO TOOL/UNLOCKED
IF SIG(1537) OR SIG(1538) OR SIG(-1530) GOTO 899; ANTI WAIT OVERRIDE
;VERIFY TOOLx PRESENT IN STAND
; BEFORE GOING TO ATC_xPICK
;-------------------------
CASE .reqtoolnum OF
VALUE 1:
;VERIFY TOOL #1 IS PRESENT
WAIT SIG(1513) ; TOOL 1 ON STAND
IF SIG(-1513) GOTO 610
CALL atc_1pick;PICK FROM STAND 1
;-------------------------
;
VALUE 2:
;VERIFY TOOL #2 IS PRESENT
WAIT SIG(1514) ; TOOL 2 ON STAND
IF SIG(-1514) GOTO 610
CALL atc_2pick;PICK FROM STAND 2
;-------------------------
;
VALUE 3:
;VERIFY TOOL #3 IS PRESENT
WAIT SIG(1515) ; TOOL 3 ON STAND
IF SIG(-1515) GOTO 610
CALL atc_3pick;PICK FROM STAND 3
;-------------------------
;
VALUE 4:
;VERIFY TOOL #4 IS PRESENT
WAIT SIG(1516) ; TOOL 3 ON STAND
IF SIG(-1516) GOTO 610
CALL atc_4pick;PICK FROM STAND 4
;-------------------------
;
VALUE 5:
;VERIFY TOOL #5 IS PRESENT
WAIT SIG(1517) ; TOOL 5 ON STAND
IF SIG(-1517) GOTO 610

Kawasaki Programming Guide RIV0002 TC.docxPage 31 of 58


CALL atc_5pick;PICK FROM STAND 5
;-------------------------
;
VALUE 6:
;VERIFY TOOL #6 IS PRESENT
WAIT SIG(1518) ; TOOL 6 ON STAND
IF SIG(-1518) GOTO 610
CALL atc_6pick;PICK FROM STAND 6
;-------------------------
;
VALUE 7:
;VERIFY TOOL #7 IS PRESENT
WAIT SIG(1519) ; TOOL 7 ON STAND
IF SIG(-1519) GOTO 610
CALL atc_7pick;PICK FROM STAND 7
;-------------------------
;
VALUE 8:
;VERIFY TOOL #8 IS PRESENT
WAIT SIG(1520) ; TOOL 8 ON STAND
IF SIG(-1520) GOTO 610
CALL atc_8pick;PICK FROM STAND 8
;-------------------------
;
ANY :
GOTO 610
END
;
;
;WE HAVE A GOOD TOOL
IF BITS(1531,4)>=1 AND BITS(1531,4)<=8 GOTO 1
;
;-------------------------
;INVALID NEST CHECK
;TOOL STAND NOT IN RANGE
; OR SOMETHING ELSE WENT WRONG
; HALT PROGRAM
610
alarm[11] = 1
PAUSE
GOTO 1; RECHECK
;
;-------------------------
;REQUESTED TOOL NUMBER NOT IN RANGE
; OR SOMETHING ELSE WENT WRONG
; ABORT PROGRAM
998
alarm[5] = 1
PAUSE
GOTO 899; RECHECK
;
;********************************
;EVERYTHING IS GOOD, END PROGRAM
999
;
;TOOL CHANGE NOT IN PROGRESS

Kawasaki Programming Guide RIV0002 TC.docxPage 32 of 58


SIGNAL -517 ;ATC IN PROGRESS
;********************************

Program Examples
atc_1pick() ;ATC Pick Tool 1
;************************************************
; COMPANY : RIVIAN
; PROGRAM : atc_1pick(), ATC PICK 1(EXAMPLE)
; REVISED LAST: 8/3/2023
; Produced by : RIVIAN KAWASAKI ROBOTICS DEV
;************************************************
;
1;VERIFY TOOL#1 IS EMPTY
;IF NOT = 15, ABORT PROGRAM
;SOMETHING ELSE WENT WRONG
IF BITS(1531,4)<>15 GOTO 999
;
;TOOL CHANGE IN PROGRESS
SIGNAL 517 ;TOOL CHANGE IN PROGRESS
;
;REQUEST TOOL LID
BITS 531,4 = 1
;
SIGNAL -519 ;CLOSE TOOL STAND COVERS
SIGNAL 518 ;OPEN TOOL STAND COVERS
;
;MOVE ABOVE TOOL #1 POS
;
JOINT SPEED9 ACCU3 TIMER0 TOOL9 WORK0 CLAMP1 (OFF,0,1,1) OX= WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[-3.6973,-22.723,-32.013,12.928,21.519,128.13,-902.86,158] ;
;
JOINT SPEED7 ACCU2 TIMER0 TOOL9 WORK0 CLAMP1 (OFF,0,1,1) OX= WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[-40.232,-1.8259,-34.606,66.797,42.865,84.172,-902.86,158] ;
;
;VERIFY NEST OPEN INPUTS
WAIT SIG(-1522) AND SIG(1521) ;TOOL STAND COVERS CLOSED, TOOL STAND COVERS OPEN
;
LINEAR SPEED4 ACCU2 TIMER0 TOOL9 WORK0 CLAMP1 (OFF,0,1,1) OX= WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[-30.65,24.52,-35.327,56.08,36.408,90.978,-1382.3,158] ;ABOVE2
;
;MOVE 2" ABOVE TOOL
LINEAR SPEED4 ACCU1 TIMER0 TOOL9 WORK0 CLAMP1 (OFF,0,1,1) OX= WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[-28.419,33.274,-33.605,55.6,33.909,89.961,-1382.3,157.99]
;ABOVE2
;
;MOVE TO ENGAGE POSITION
LINEAR SPEED1 ACCU0 TIMER0 TOOL9 WORK0 CLAMP1 (OFF,0,1,1) OX= WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[-27.647,36.603,-32.739,55.709,32.886,89.324,-1382.3,157.99]
;ENGAGE
;
SIGNAL 525 ;RBT AT ATC PICK/DROP LOCATION
;
;CHECK IF ATC IS IN POS

Kawasaki Programming Guide RIV0002 TC.docxPage 33 of 58


; WAIT FOR READY 2 LOCK
; THE PRESENCE OF A TOOL
; IS DETERMINED IN KLOGIC
WAIT SIG(1537) OR SIG(1538) AND SIG(1539) ;RTL1, RTL2, RTLV
;
;LOCK EOAT
CALL atc_lock
;
SIGNAL -525 ;RBT AT ATC PICK/DROP LOCATION
SIGNAL 457; TOOL NUMBER 1
;
;ADJUST FOR SAG
;
LINEAR SPEED1 ACCU0 TIMER0 TOOL1 WORK0 CLAMP1 (OFF,0,1,1) OX= WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[-27.72,36.369,-33.024,55.096,33.8,89.86,-1382.3,157.99] ;
;
LINEAR SPEED5 ACCU1 TIMER0 TOOL1 WORK0 CLAMP1 (OFF,0,1,1) OX= WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[-27.499,34.857,-28.721,60.527,31.343,83.283,-1382.3,157.99] ;
;
LINEAR SPEED5 ACCU1 TIMER0 TOOL1 WORK0 CLAMP1 (OFF,0,1,1) OX= WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[-61.17,-34.294,-18.08,91.964,59.409,59.049,-1382.3,157.99] ;
;
;MOVE ABOVE STAND POS
;
;MOVE ATC POUNCE POS
JOINT SPEED5 ACCU2 TIMER0 TOOL1 WORK0 CLAMP1 (OFF,0,1,1) OX= WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[-67.023,-37.581,-5.3538,18.122,41.246,26.664,-903.18,158] ;
;
JOINT SPEED7 ACCU4 TIMER0 TOOL1 WORK0 CLAMP1 (OFF,0,1,1) OX= WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[-52.848,-2.7955,12.246,-91.696,96.528,59.69,-800,158] ;
;
;MOVE HOME
CALL mov_home
;
;RESET TOOL CHANGE IN PROGRESS
SIGNAL -517 ;RESET TOOL CHANGE IN PROGRESS
;
;END PROGRAM
RETURN
;
;------------------------------
;STYLE SELECT BITS NOT IN RANGE
; OR SOMETHING ELSE WENT WRONG
; ABORT PROGRAM
999
alarm[11] = 1
PAUSE
alarm[11] = 0
GOTO 1
;

atc_1drop() ;ATC Drop Tool 1


;************************************************
; COMPANY : Rivian

Kawasaki Programming Guide RIV0002 TC.docxPage 34 of 58


; PROGRAM : atc_1drop(), ATC DROP 1 (EXAMPLE)
; REVISED LAST: 8/3/2023
; Produced by : RIVIAN KAWASAKI ROBOTICS DEV
;************************************************
;
1;VERIFY TOOL#1 IS ON EOAT
;IF NOT = 1, ABORT PROGRAM
;SOMETHING ELSE WENT WRONG
IF BITS(1531,4)<>1 GOTO 999;
;
;TOOL CHANGE IN PROGRESS
SIGNAL 517 ;TOOL CHANGE IN PROGRESS
;
;REQUEST TOOL LID 1 OPEN
BITS 531,4 = 1 ;TOOL COVER REQUEST
;
;OPEN TOOL STAND COVERS
SIGNAL 518 ;OPEN TOOL STAND COVERS
SIGNAL -519 ;CLOSE TOOL STAND COVERS
;
;VERIFY NEST OPEN INPUTS
WAIT SIG(-1522) AND SIG(1521) ;TOOL STAND COVERS CLOSED, TOOL STAND COVERS OPEN
;
;MOVE BEFORE STAND POSITION
LINEAR SPEED5 ACCU0 TIMER0 TOOL1 WORK0 CLAMP1 (OFF,0,1,1) 2 (OFF,0,0,O) 3 (OFF,0,0,O)
OX= WX= CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[87.807,-6.1848,-22.562,-0.024122,-67.511,-
107.8,80,0.0012159] ;
;
;MOVE 2" ABOVE TOOL
LINEAR SPEED2 ACCU0 TIMER0 TOOL1 WORK0 CLAMP1 (OFF,0,1,1) 2 (OFF,0,0,O) 3 (OFF,0,0,O)
OX= WX= CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[89.831,8.9459,-46.538,-0.21427,-43.186,-
110.19,80,0.0012159] ;
;
;MOVE TO RELEASE POSITION
LINEAR SPEED1 ACCU0 TIMER0 TOOL1 WORK0 CLAMP1 (OFF,0,1,0) 2 (OFF,0,0,O) 3 (OFF,0,0,O)
OX= WX= CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[89.831,10.89,-48.619,-0.22313,-41.105,-
110.18,80,0.0013896] ;
;
SIGNAL 525 ;RBT AT ATC PICK/DROP LOCATION
;
;UNLOCK EOAT
CALL atc_unlock;
;
; MOVE TO TC CHECK POSITION
; JUST ABOVE PINS AND HIGH
; ENOUGH FOR THE ROBOT TO
; MOVE AWAY AND FOR THE TC
; TOOL TO SLIDE BACK INTO
; THE NEST IN CASE OF
; STICKING
;
;MOVE 2" ABOVE TOOL
LINEAR SPEED3 ACCU0 TIMER0 TOOL9 WORK0 CLAMP1 (OFF,0,1,0) 2 (OFF,0,0,O) 3 (OFF,0,0,O)
OX= WX= CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[89.831,8.995,-46.592,-0.21427,-43.131,-110.19,-
2000,0.0013896] ;
;

Kawasaki Programming Guide RIV0002 TC.docxPage 35 of 58


; CLOSE TOOL STAND COVERS
SIGNAL -518 ;OPEN TOOL STAND COVERS
SIGNAL 519 ;CLOSE TOOL STAND COVERS
;
WAIT BITS(1531,4)==15 AND SIG(1514) ;TOOL ID BITS, TOOL 1 ON STAND
;
SIGNAL -525 ;RBT AT ATC PICK/DROP LOCATION
;
;MOVE ABOVE STAND POS
LINEAR SPEED6 ACCU1 TIMER0 TOOL9 WORK0 CLAMP1 (OFF,0,1,0) 2 (OFF,0,0,O) 3 (OFF,0,0,O)
OX= WX= CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[89.831,-8.6317,-11.101,-0.14944,-78.623,-110.32,-
2000,0.0012159] ;
;
; CLOSE TOOL STAND COVERS
SIGNAL -518 ;OPEN TOOL STAND COVERS
SIGNAL 519 ;CLOSE TOOL STAND COVERS
;
;MOVE BEFORE STAND POSITION
JOINT SPEED9 ACCU0 TIMER0 TOOL9 WORK0 CLAMP1 (OFF,0,1,0) 2 (OFF,0,0,O) 3 (OFF,0,0,O)
OX= WX= CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[158.54,-38.032,16.99,-4.9873,-71.838,-56.178,-
2000,0.0001737] ;Clr Tool Stand
;
;VERIFY NEST CLOSED INPUTS
WAIT SIG(1522) AND SIG(-1521) ;TOOL STAND COVERS CLOSED, TOOL STAND COVERS OPENED
;
;RESET TOOL LID REQUEST
BITS 531,4 = 0 ;Tool Cover Request
;
;END PROGRAM
RETURN;
;
;------------------------------
;STYLE SELECT BITS NOT IN RANGE
; OR SOMETHING ELSE WENT WRONG
; ABORT PROGRAM
999;
alarm[11] = 1
PAUSE
alarm[11] = 0
GOTO 1
;

atc_2pick() ;ATC Pick Tool 2


;************************************************
; COMPANY : RIVIAN
; PROGRAM : atc_2pick(), TOOL2 PICK
; REVISED LAST: 8/3/2023
; Produced by KAWASAKI ROBOTICS (USA) Inc.
;************************************************
;
1; VERIFY TOOL#2 IS PRESENT
; IF NOT = 15, ABORT PROGRAM
; SOMETHING ELSE WENT WRONG
IF BITS(1531,4)<>15 GOTO 999

Kawasaki Programming Guide RIV0002 TC.docxPage 36 of 58


;
;TOOL CHANGE IN PROGRESS
SIGNAL 517 ;TOOL CHANGE IN PROGRESS
;
;REQ TOOL COVER
BITS 531,4 = 2
;
;OPEN TOOL STAND COVERS
SIGNAL -519 ;CLOSE TOOL STAND COVERS
SIGNAL 518 ;OPEN TOOL STAND COVERS
;
;MOVE ABOVE TOOL #2 POS
JOINT SPEED9 ACCU3 TIMER0 TOOL9 WORK0 CLAMP1 (OFF,0,1,1) OX= WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[-3.6243,-23.581,-31.42,10.663,19.931,-145.13,-902.86,158]
;ABOVE1
JOINT SPEED7 ACCU1 TIMER0 TOOL9 WORK0 CLAMP1 (OFF,0,1,1) OX= WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[28.13,-15.122,-31.82,-58.52,32.68,-88.079,-902.68,158] ;ABOVE1
;
;VERIFY NEST OPEN INPUTS
WAIT SIG(-1522) AND SIG(1521) ;TOOL STAND COVERS CLOSED, TOOL STAND COVERS OPEN
;
;MOVE 2" ABOVE TOOL
LINEAR SPEED2 ACCU1 TIMER0 TOOL9 WORK0 CLAMP1 (OFF,0,1,1) OX= WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[18.564,26.335,-35.31,-40.01,28.883,-103.43,-902.68,157.99]
;ABOVE2
;
;MOVE TO ENGAGE POSITION
LINEAR SPEED1 ACCU0 TIMER0 TOOL9 WORK0 CLAMP1 (OFF,0,1,1) OX= WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[18.088,29.316,-34.756,-39.84,28.208,-103.31,-902.68,157.99]
;ENGAGE
;
SIGNAL 525 ;RBT AT ATC PICK/DROP LOCATION
;
;CHECK IF ATC IS IN POS
; WAIT FOR READY 2 LOCK
; THE PRESENCE OF A TOOL
; IS DETERMINED IN KLOGIC
WAIT SIG(1537) OR SIG(1538) AND SIG(1539) ;RTL1, RTL2, RTLV
;
;LOCK EOAT
CALL atc_lock
;
SIGNAL -525 ;RBT AT ATC PICK/DROP LOCATION
SIGNAL 458 ; TOOL NUMBER 2 ACTIVE
;
;ADJUST FOR SAG
;
LINEAR SPEED1 ACCU1 TIMER0 TOOL2 WORK0 CLAMP1 (OFF,0,1,1) OX= WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[18.04,27.931,-32.095,-43.187,26.186,-99.517,-902.68,157.99] ;
;
;MOVE ABOVE STAND POS
LINEAR SPEED5 ACCU2 TIMER0 TOOL2 WORK0 CLAMP1 (OFF,0,1,1) OX= WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[33.273,-32.555,-21.745,-78.018,33.231,-67.685,-902.68,158] ;
;
JOINT SPEED5 ACCU1 TIMER0 TOOL2 WORK0 CLAMP1 (OFF,0,1,1) OX= WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[-46.816,-34.963,19.309,-121.52,62.966,9.5356,-464.15,158] ;

Kawasaki Programming Guide RIV0002 TC.docxPage 37 of 58


;
JOINT SPEED9 ACCU1 TIMER0 TOOL2 WORK0 CLAMP1 (OFF,0,1,1) OX= WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[-74.725,-27.915,19.59,-95.986,77.826,14.129,-386.89,158] ;
;
CALL mov_home
;
;RESET TOOL CHANGE IN PROGRESS
SIGNAL -517 ;RESET TOOL CHANGE IN PROGRESS
;
;END PROGRAM
RETURN
;
;------------------------------
;STYLE SELECT BITS NOT IN RANGE
; OR SOMETHING ELSE WENT WRONG
; ABORT PROGRAM
999
alarm[11] = 1
PAUSE
alarm[11] = 0
GOTO 1
;

atc_2drop() ;ATC Drop Tool 2


;************************************************
; COMPANY : Rivian
; PROGRAM : atc_2drop(), ATC DROP 2 (EXAMPLE)
; REVISED LAST: 8/3/2023
; Produced by : RIVIAN KAWASAKI ROBOTICS DEV
;************************************************
;
1;VERIFY TOOL#2 IS ON EOAT
;IF NOT = 2, ABORT PROGRAM
;SOMETHING ELSE WENT WRONG
IF BITS(1531,4)<>2 GOTO 999
;
;TOOL CHANGE IN PROGRESS
SIGNAL 517 ;TOOL CHANGE IN PROGRESS
;
;REQUEST TOOL LID 2 OPEN
BITS 531,4 = 2 ;TOOL COVER REQUEST
;
;OPEN TOOL STAND COVERS
SIGNAL -519 ;CLOSE TOOL STAND COVERS
SIGNAL 518 ;OPEN TOOL STAND COVERS
;
;VERIFY NEST OPEN INPUTS
WAIT SIG(-1522) AND SIG(1521) ;TOOL STAND COVERS CLOSED, TOOL STAND COVERS OPEN
;
;MOVE BEFORE STAND POSITION
JOINT SPEED9 ACCU1 TIMER0 TOOL9 WORK0 CLAMP1 (OFF,0,1,0) 2 (OFF,0,0,O) 3 (OFF,0,0,O)
OX= WX= CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[158.92,-27.28,20,14.391,-39.776,-36.666,-2000,179.99] ;
;
;MOVE 2" ABOVE TOOL

Kawasaki Programming Guide RIV0002 TC.docxPage 38 of 58


LINEAR SPEED3 ACCU0 TIMER0 TOOL9 WORK0 CLAMP1 (OFF,0,1,0) 2 (OFF,0,0,O) 3 (OFF,0,0,O)
OX= WX= CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[140.24,19.666,-21.976,48.608,-46.131,7.7753,-2000,0] ;
;
;MOVE TO RELEASE POSITION
LINEAR SPEED1 ACCU0 TIMER0 TOOL9 WORK0 CLAMP1 (OFF,0,1,0) 2 (OFF,0,0,O) 3 (OFF,0,0,O)
OX= WX= CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[140.24,20.286,-23.622,49.829,-45.055,6.0306,-2000,0] ;
;
SIGNAL 525 ;RBT AT ATC PICK/DROP LOCATION
;
;UNLOCK EOAT
CALL atc_unlock
;
;MOVE TO TC CHECK POSITION
; JUST ABOVE PINS AND HIGH
; ENOUGH FOR THE ROBOT TO
; MOVE AWAY AND FOR THE TC
; TOOL TO SLIDE BACK INTO
; THE NEST IN CASE OF
; STICKING
;
;MOVE 2" ABOVE TOOL
LINEAR SPEED2 ACCU1 TIMER0 TOOL9 WORK0 CLAMP1 (OFF,0,1,0) 2 (OFF,0,0,O) 3 (OFF,0,0,O)
OX= WX= CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[140.98,18.527,-22.637,49.238,-46.215,6.4565,-2000,0] ;
LINEAR SPEED3 ACCU1 TIMER0 TOOL9 WORK0 CLAMP1 (OFF,0,1,0) 2 (OFF,0,0,O) 3 (OFF,0,0,O)
OX= WX= CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[142.17,15.48,-20.645,47.632,-48.212,7.68,-
2000,0.0012159] ;
JOINT SPEED4 ACCU1 TIMER0 TOOL2 WORK0 CLAMP1 (OFF,0,1,0) 2 (OFF,0,0,O) 3 (OFF,0,0,O)
OX= WX= CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[150.59,-12.011,-2.077,20.602,-24.362,-72.454,-2000,-
0.0067742] ;clr Stand
;
;REQUEST TOOL LID 2 CLOSE
SIGNAL -518 ;OPEN TOOL STAND COVERS
SIGNAL 519 ;CLOSE TOOL STAND COVERS
;
WAIT BITS(1531,4)==15 AND SIG(1513) ;TOOL ID BITS, TOOL 2 ON STAND
;
SIGNAL -525 ;RBT AT ATC PICK/DROP LOCATION
;
;MOVE ABOVE STAND POS
JOINT SPEED8 ACCU2 TIMER0 TOOL2 WORK0 CLAMP1 (OFF,0,1,0) 2 (OFF,0,0,O) 3 (OFF,0,0,O)
OX= WX= CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[158.36,-37.373,16.374,-4.3326,-94.07,-146.38,-2000,180]
;clr Stand
;
;VERIFY NEST CLOSED INPUTS
WAIT SIG(1522) AND SIG(-1521) ;TOOL STAND COVERS CLOSED, TOOL STAND COVERS OPENED
;
;RESET TOOL LID REQUEST
BITS 531,4 = 0 ;Tool Cover Request
;
;END PROGRAM
RETURN
;
;------------------------------
;STYLE SELECT BITS NOT IN RANGE
; OR SOMETHING ELSE WENT WRONG
; ABORT PROGRAM

Kawasaki Programming Guide RIV0002 TC.docxPage 39 of 58


999
alarm[11] = 1
PAUSE
alarm[11] = 0
GOTO 1
;

atc_3pick() ;ATC Pick Tool 3


;************************************************
; COMPANY : RIVIAN
; PROGRAM : atc_3pick(), ATC PICK 3 (EXAMPLE)
; REVISED LAST: 8/3/2023
; Produced by : RIVIAN KAWASAKI ROBOTICS DEV
;************************************************
;
1; VERIFY TOOL#2 IS PRESENT
; IF NOT = 15, ABORT PROGRAM
; SOMETHING ELSE WENT WRONG
IF BITS(1531,4)<>15 GOTO 999
;
;TOOL CHANGE IN PROGRESS
SIGNAL 517 ;TOOL CHANGE IN PROGRESS
;
;REQ TOOL COVER
BITS 531,4 = 3
;
;OPEN TOOL STAND COVERS
SIGNAL -519 ;CLOSE TOOL STAND COVERS
SIGNAL 518 ;OPEN TOOL STAND COVERS
;
;MOVE ABOVE TOOL #3 POS
JOINT SPEED9 ACCU3 TIMER0 TOOL9 WORK0 CLAMP1 (OFF,0,1,1) OX= WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[-3.6243,-23.581,-31.42,10.663,19.931,-145.13,-902.86,158]
;ABOVE1
JOINT SPEED7 ACCU1 TIMER0 TOOL9 WORK0 CLAMP1 (OFF,0,1,1) OX= WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[28.13,-15.122,-31.82,-58.52,32.68,-88.079,-902.68,158] ;ABOVE1
;
;VERIFY NEST OPEN INPUTS
WAIT SIG(-1522) AND SIG(1521) ;TOOL STAND COVERS CLOSED, TOOL STAND COVERS OPEN
;
;MOVE 2" ABOVE TOOL
LINEAR SPEED2 ACCU1 TIMER0 TOOL9 WORK0 CLAMP1 (OFF,0,1,1) OX= WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[18.564,26.335,-35.31,-40.01,28.883,-103.43,-902.68,157.99]
;ABOVE2
;
;MOVE TO ENGAGE POSITION
LINEAR SPEED1 ACCU0 TIMER0 TOOL9 WORK0 CLAMP1 (OFF,0,1,1) OX= WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[18.088,29.316,-34.756,-39.84,28.208,-103.31,-902.68,157.99]
;ENGAGE
;
SIGNAL 525 ;RBT AT ATC PICK/DROP LOCATION
;
;CHECK IF ATC IS IN POS
; WAIT FOR READY 2 LOCK

Kawasaki Programming Guide RIV0002 TC.docxPage 40 of 58


; THE PRESENCE OF A TOOL
; IS DETERMINED IN KLOGIC
WAIT SIG(1537) OR SIG(1538) AND SIG(1539) ;RTL1, RTL2, RTLV
;
;LOCK EOAT
CALL atc_lock
;
SIGNAL -525 ;RBT AT ATC PICK/DROP LOCATION
SIGNAL 458 ; TOOL NUMBER 2 ACTIVE
;
;ADJUST FOR SAG
;
LINEAR SPEED1 ACCU1 TIMER0 TOOL2 WORK0 CLAMP1 (OFF,0,1,1) OX= WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[18.04,27.931,-32.095,-43.187,26.186,-99.517,-902.68,157.99] ;
;
;MOVE ABOVE STAND POS
LINEAR SPEED5 ACCU2 TIMER0 TOOL2 WORK0 CLAMP1 (OFF,0,1,1) OX= WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[33.273,-32.555,-21.745,-78.018,33.231,-67.685,-902.68,158] ;
;
JOINT SPEED5 ACCU1 TIMER0 TOOL2 WORK0 CLAMP1 (OFF,0,1,1) OX= WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[-46.816,-34.963,19.309,-121.52,62.966,9.5356,-464.15,158] ;
;
JOINT SPEED9 ACCU1 TIMER0 TOOL2 WORK0 CLAMP1 (OFF,0,1,1) OX= WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[-74.725,-27.915,19.59,-95.986,77.826,14.129,-386.89,158] ;
;
;RESET TOOL CHANGE IN PROGRESS
SIGNAL -517 ;RESET TOOL CHANGE IN PROGRESS
;
CALL mov_home
;
;END PROGRAM
RETURN
;
;------------------------------
;STYLE SELECT BITS NOT IN RANGE
; OR SOMETHING ELSE WENT WRONG
; ABORT PROGRAM
999
alarm[11] = 1
PAUSE
alarm[11] = 0
GOTO 1
;

atc_3drop() ;ATC Drop Tool 3


;************************************************
; COMPANY : Rivian
; PROGRAM : atc_3drop(), ATC DROP 3 (EXAMPLE)
; REVISED LAST: 8/3/2023
; Produced by : RIVIAN KAWASAKI ROBOTICS DEV
;************************************************
;
1;VERIFY TOOL#2 IS ON EOAT
;IF NOT = 2, ABORT PROGRAM

Kawasaki Programming Guide RIV0002 TC.docxPage 41 of 58


;SOMETHING ELSE WENT WRONG
IF BITS(1531,4)<>3 GOTO 999
;
;TOOL CHANGE IN PROGRESS
SIGNAL 517 ;TOOL CHANGE IN PROGRESS
;
;REQUEST TOOL LID 3 OPEN
BITS 531,4 = 3 ;TOOL COVER REQUEST
;
;OPEN TOOL STAND COVERS
SIGNAL -519 ;CLOSE TOOL STAND COVERS
SIGNAL 518 ;OPEN TOOL STAND COVERSz
;
;VERIFY NEST OPEN INPUTS
WAIT SIG(-1522) AND SIG(1521) ;TOOL STAND COVERS CLOSED, TOOL STAND COVERS OPEN
;
;MOVE BEFORE STAND POSITION
JOINT SPEED5 ACCU1 TIMER0 TOOL9 WORK0 CLAMP1 (OFF,0,1,0) 2 (OFF,0,0,O) 3 (OFF,0,0,O)
OX= WX= CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[163.01,-31.22,13.507,-2.4993,-110,-149.28,-2000,-
0.0076427] ;
;
;MOVE 2" ABOVE TOOL
LINEAR SPEED3 ACCU0 TIMER0 TOOL9 WORK0 CLAMP1 (OFF,0,1,0) 2 (OFF,0,0,O) 3 (OFF,0,0,O)
OX= WX= CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[145.22,50.5,-75.424,111.17,-38.385,-250.38,-2000,-
0.0099007] ;Above Ati Pic
;
;MOVE TO RELEASE POSITION
LINEAR SPEED1 ACCU0 TIMER0 TOOL9 WORK0 CLAMP1 (OFF,0,1,0) 2 (OFF,0,0,O) 3 (OFF,0,0,O)
OX= WX= CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[145.26,53.275,-76.717,112.63,-38.875,-252.3,-2000,-
0.0099007] ;PickPos.
;
SIGNAL 525 ;RBT AT ATC PICK/DROP LOCATION
;
;UNLOCK EOAT
CALL atc_unlock
;
;MOVE TO TC CHECK POSITION
; JUST ABOVE PINS AND HIGH
; ENOUGH FOR THE ROBOT TO
; MOVE AWAY AND FOR THE TC
; TOOL TO SLIDE BACK INTO
; THE NEST IN CASE OF
; STICKING
;
;MOVE 2" ABOVE TOOL
LINEAR SPEED2 ACCU1 TIMER0 TOOL9 WORK0 CLAMP1 (OFF,0,1,0) 2 (OFF,0,0,O) 3 (OFF,0,0,O)
OX= WX= CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[146.14,51.196,-76.531,111.47,-38.993,-251.91,-2000,-
0.0076427] ;
LINEAR SPEED3 ACCU1 TIMER0 TOOL9 WORK0 CLAMP1 (OFF,0,1,0) 2 (OFF,0,0,O) 3 (OFF,0,0,O)
OX= WX= CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[151.1,26.505,-70.594,104.99,-30.234,-245.31,-2000,-
0.0076427] ;
JOINT SPEED4 ACCU1 TIMER0 TOOL2 WORK0 CLAMP1 (OFF,0,1,0) 2 (OFF,0,0,O) 3 (OFF,0,0,O)
OX= WX= CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[155.38,-17.312,-45.311,61.682,-51.41,-193.7,-2000,180]
;clr Stand
;
;REQUEST TOOL LID 2 CLOSE

Kawasaki Programming Guide RIV0002 TC.docxPage 42 of 58


SIGNAL -518 ;OPEN TOOL STAND COVERS
SIGNAL 519 ;CLOSE TOOL STAND COVERS
;
WAIT BITS(1531,4)==15 AND SIG(1513) ;TOOL ID BITS, TOOL 2 ON STAND
;
SIGNAL -525 ;RBT AT ATC PICK/DROP LOCATION
;
;MOVE ABOVE STAND POS
JOINT SPEED6 ACCU2 TIMER0 TOOL2 WORK0 CLAMP1 (OFF,0,1,0) 2 (OFF,0,0,O) 3 (OFF,0,0,O)
OX= WX= CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[158.36,-37.373,16.374,-4.3326,-54.638,-146.38,-
2000,180] ;clr Stand
;
;VERIFY NEST CLOSED INPUTS
WAIT SIG(1522) AND SIG(-1521) ;TOOL STAND COVERS CLOSED, TOOL STAND COVERS OPENED
;
;RESET TOOL LID REQUEST
BITS 531,4 = 0 ;Tool Cover Request
;
;END PROGRAM
RETURN
;
;------------------------------
;STYLE SELECT BITS NOT IN RANGE
; OR SOMETHING ELSE WENT WRONG
; ABORT PROGRAM
999
alarm[11] = 1
PAUSE
alarm[11] = 0
GOTO 1
;

7. KLogic Tool Changer


The remainder of this document lists the Kawasaki KLogic that has been configured for the Tool Changer
application. In addition, the Common and Material Handling KLogic are included.

Kawasaki Programming Guide RIV0002 TC.docxPage 43 of 58


Kawasaki Programming Guide RIV0002 TC.docxPage 44 of 58
Kawasaki Programming Guide RIV0002 TC.docxPage 45 of 58
Kawasaki Programming Guide RIV0002 TC.docxPage 46 of 58
Kawasaki Programming Guide RIV0002 TC.docxPage 47 of 58
Kawasaki Programming Guide RIV0002 TC.docxPage 48 of 58
Kawasaki Programming Guide RIV0002 TC.docxPage 49 of 58
Kawasaki Programming Guide RIV0002 TC.docxPage 50 of 58
Kawasaki Programming Guide RIV0002 TC.docxPage 51 of 58
Kawasaki Programming Guide RIV0002 TC.docxPage 52 of 58
Kawasaki Programming Guide RIV0002 TC.docxPage 53 of 58
Kawasaki Programming Guide RIV0002 TC.docxPage 54 of 58
Kawasaki Programming Guide RIV0002 TC.docxPage 55 of 58
Kawasaki Programming Guide RIV0002 TC.docxPage 56 of 58
Kawasaki Programming Guide RIV0002 TC.docxPage 57 of 58
Kawasaki Programming Guide RIV0002 TC.docxPage 58 of 58

You might also like