Download as pdf or txt
Download as pdf or txt
You are on page 1of 91

Rivian Robot Programming Guide – Kawasaki Implementation

Seal Despenser

July 8th 2023


Table of Contents

INTRODUCTION ............................................................................................................................................. 3
1.1 PURPOSE .........................................................................................................................................................3
1.1.1 Document Description..............................................................................................................................3
1.1.2 Who should use the document ................................................................................................................3
1.1.3 What should be learned ...........................................................................................................................3
IMPLEMENTATION ........................................................................................................................................ 4
2.1 TCP CONVENTION FOR SEAL DESPENSER ...............................................................................................................4
2.1.1 Carried TCP convention for Seal Despenser .............................................................................................4
2.1.2 Pedestal TCP convention for Seal Despenser ...........................................................................................5
2.2 FLOW OUTPUT CALCULATION ..............................................................................................................................5
2.3 GUN ACTIVATION / GUN ANTICIPATION ................................................................................................................6
2.4 FLOWRATE CONTROL SIGNAL OUTPUT FUNCTION....................................................................................................7
2.5 APP SET ROUTINE SETTINGS ................................................................................................................................8
INTERFACE PANEL.......................................................................................................................................... 9
3.1 SD INTERFACE PANEL.........................................................................................................................................9
3.1.1 Default Panel ...........................................................................................................................................9
3.1.2 SD1 Panel with SD2 Removed ..................................................................................................................9
3.2 SD Interface Panel Icon Description .......................................................................................................10
ROBOT SETTINGS ......................................................................................................................................... 12
4.1 I/O COMMUNICATION SETTING .........................................................................................................................12
4.1.1 SD1 I/O Communication Setting ............................................................................................................12
4.1.2 SD2 I/O Communication Setting ............................................................................................................13
4.2 CLAMP SPECIFICATIONS ....................................................................................................................................13
4.2.1 1: Application Field ................................................................................................................................14
4.2.2 30: Painting Sealing Signal Definition ....................................................................................................14
4.3 SYSTEM SWITCH .............................................................................................................................................14
4.3.1 AUTOSTART2.PC.....................................................................................................................................14
4.4 I/O NAMING..................................................................................................................................................15
4.4.1 SD1 I/O Naming .....................................................................................................................................15
4.4.2 SD2 I/O Naming .....................................................................................................................................17
4.5 ROBOT ARM LOAD ..........................................................................................................................................18
ROBOT PROGRAMS ..................................................................................................................................... 20
5.1 FLOW CHARTS ................................................................................................................................................20
5.1.1 SD1 Single Carried Process Flow Chart ...................................................................................................20
5.1.2 SD1 Single Pedestal Process Flow ..........................................................................................................21
5.1.3 SD1 & SD2 Dual Carried Process Flow ....................................................................................................22

[2]
5.1.4 SD1 & SD2 Dual Pedestal Process Flow ..................................................................................................23
5.2 SERVICE ROUTINES ..........................................................................................................................................24
5.2.1 Auto Purge SD1 Carried Example ...........................................................................................................24
5.2.2 Auto Purge SD1 Pedestal Example .........................................................................................................24
5.2.3 Auto Purge SD2 Carried Example ...........................................................................................................25
5.2.4 Auto Purge SD2 Pedestal Example .........................................................................................................26
5.3 PRODUCTION SUBROUTINES ..............................................................................................................................27
5.3.1 SD1 Purge ...............................................................................................................................................27
5.3.2 SD1 Startup ............................................................................................................................................27
5.3.3 SD2 Purge ...............................................................................................................................................28
5.3.4 SD2 Startup ............................................................................................................................................29
5.4 PROGRAM EXAMPLES ......................................................................................................................................29
5.4.1 Main Carried SD1 Example ....................................................................................................................29
5.4.2 Carried Proc 1 SD1 Example ...................................................................................................................32
5.4.3 Carried Proc 1 SD1 Fault Recovery Example ..........................................................................................35
5.4.4 Main MH Pedestal SD1 Example ............................................................................................................36
5.4.5 Pedestal Proc 1 SD1 Adhesive Example..................................................................................................40
5.4.6 Pedestal Proc 1 SD1 Show Part Example................................................................................................43
5.4.7 Main Dual Carried SD2 Example ............................................................................................................45
5.4.8 Main MH Dual Pedestal SD2 Example ...................................................................................................48
5.4.9 Carried Proc 2 SD2 Sealer Example ........................................................................................................54
5.4.10 Carried Proc 2 SD2 Fault Recovery Example ......................................................................................55
5.4.11 Pedestal Proc 2 SD2 Sealer Example ..................................................................................................57
5.4.12 Pedestal Proc 2 SD2 Show Part Example ...........................................................................................60
K LOGIC ....................................................................................................................................................... 63
6.1 SD1 K-LOGIC .................................................................................................................................................63
6.2 SD2 K-LOGIC .................................................................................................................................................78

Introduction
1.1 Purpose
1.1.1 Document Description
This document defines the basic methodology and structure for programming Kawasaki robots for Rivian
Sealer 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

[3]
This document explains the general programming strategy for a Kawasaki robot. It explains standards
that are to be applied to all seal dispenser 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.

Implementation
The following sub-sections describe how the line builder is to implement the seal dispenser application.
Some sub-sections may have detail for both Seal dispenser one or better known as, SD1 and Seal
dispenser two or better known as, SD2, applications. If only SD1 is being used there may be settings that
can be omitted and not required for a single sealer application.

2.1 TCP Convention for Seal Despenser


The following examples below show the required Tool Center Point orientation convention required for
Rivian implementation. The Tool Center Point is located at the end of the sealer nozzle tip.

2.1.1 Carried TCP convention for Seal Despenser


TCP +Z direction should take the sealer nozzle tip towards the part to be dispensed on

[4]
2.1.2 Pedestal TCP convention for Seal Despenser
TCP +Z direction should take the part to be dispensed on towards the pedestal nozzle

2.2 Flow Output Calculation


The following shows the calculations executed automatically by the robot for the sealer dispensing
application. The robot will use the following information to calculate the proper output to send to the
Sealer Controller.

• Cross Sectional Area:


• Expressed in cc/m from Visual Build Sheet

• TCP Velocity (mm/sec)

• Commanded Flow Rate (mm3/sec)

• Maximum Flow of System (cc/sec from dispenser)

• Commanded Bit Value to Sealer Controller (binary value) 65,535 is the maximum

Below is a reference to help understand the calculation that the robot uses to obtain the output value that
is sent to the Sealer Controller.

• The bead Cross Sectional Area is directly input from the Visual Build Sheet to the Kawasaki robot
program in units of cc/m (mm2)

• Commanded Flow Rate (mm3/sec) is then calculated from both Cross Sectional Area and TCP
Velocity

[5]
• 𝐶𝑜𝑚𝑚𝑎𝑛𝑑𝑒𝑑 𝐹𝑙𝑜𝑤 𝑅𝑎𝑡𝑒=𝐶𝑟𝑜𝑠𝑠 𝑆𝑒𝑐𝑡𝑖𝑜𝑛𝑎𝑙 𝐴𝑟𝑒𝑎∗𝑇𝐶𝑃 𝑉𝑒𝑙𝑜𝑐𝑖𝑡𝑦

• The binary output for the flow rate command to the Sealer Controller is calculated using the
following formula:

2.3 Gun Activation / Gun Anticipation


The following is an example of Gun1 turned ON as it appears in the robot backup.

LINEAR 200. ACCU2 TIMER0 TOOL1 WORK0 CLAMP1 (ON,0,0,0) 2 (OFF,0,0,O) OX= WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[1.5193,23.536,25.829,-0.0087122,-91.955,-1.5802] ;SEAL

The Gun1 ON output is taught in a Block Step by use of the CL1 hard key on the teach pendant. By
pressing the CL1 key (CL2 key for Gun2), the “1” will appear in the CLAMP column in the block step line.

An anticipation of the Gun1 and Gun2 signals for turning the guns ON and OFF early is specified directly
in the Block Step program. The example below shows a Block Step line as it appears in the robot backup
that utilizes a Gun1 ON anticipation of 50mm:

[6]
LINEAR 200. ACCU2 TIMER0 TOOL1 WORK0 CLAMP1 (ON,-50,0,0) 2 (OFF,0,0,O) OX= WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[1.5193,23.536,25.829,-0.0087122,-91.955,-1.5802] ;SEAL

While programming the Block Step sealer path through the teach pendant, the GS value is entered by
selecting the F key for either Gun1 or Gun2, then typing in the desired anticipation or delay of the Gun
ON or OFF signal into the prompt box as shown below in Figure 2. A positive value will delay the ON/OFF
timing, a negative value will advance the ON/OFF timing, both in units of millimeters.

2.4 Flowrate Control Signal Output Function


The Kawasaki Robot Sealing Option uses binary outputs to represent analog signals to achieve a
calibrated flowrate command that is transmitted via fieldbus.

Specific AS commands and settings must be set in order to acquire the correct flowrate outputs.
Sealer/Dispensing Settings in this section as well as Section 4 indicate the settings required for Gun 1
and 2.

The flowrate output is sent to the Dispenser Controller which represents a dynamic flow rate required to
create the bead size specified in the robot program. This functionality accommodates variation of the
robot TCP velocity due to curvatures in the robot path, change of monitor speeds, etc.

As discussed in Section 2.1, the robot utilizes both user-defined physical bead size in engineering units,
as well as current/anticipated robot TCP speed to calculate and output the required flow rate command to
the sealer controller to achieve the desired result. The physical bead size is user-defined in the sealer
Block Step motion program. The examples below are to be used as a reference for inserting the Visual
Build Sheet bead size into the robot program for both Sealer #1 and Sealer #2:

Example Sealer #1:

vbs = 12.0 ;cc/m

Example Sealer #2:


vbs2 = 14.0 ;cc/m

In the special case of a daub dispensing system, a different method is used to control the flow rate output
from the robot. These type(s) of systems require a fixed flow rate regardless of the TCP speed. The
allowed values are from 0 to 10 and is defined as a scaling of the maximum allowed flow rate of the
system, where 10 represents 100% (maximum). When not in use, a value of 0 must be specified.

[7]
Example Sealer #1 (daub):

volt = 2 ;20% of maximum

Example Sealer #2 (daub):

volt2 = 3.3 ;33% of maximum

An additional user-defined variable is required to specify the amount of time the robot must anticipate
changes in robot speed due to changes in the path or programmed speed. The variables “time1” and
“time2” are used to set flow anticipation, this value is expressed in seconds and will output the flowrate
earlier based on the time specified. The user is required to modify these variables as required during path
programming to fit any time lag between the robot flow command and the physical change to the flow rate
of sealer material. These variables can either be set as a global value in memory or inserted into the
robot motion program for greater control of the dispensing system.

Example Sealer #1 Flow Anticipation:

time1 = 0.8 ;seconds

Example Sealer #2 Flow Anticipation:

time2 = 0.6 ;seconds

Finally, the user must specify the maximum flow rate for the connected sealer pump unit, in units of
cc/sec. This specification is defined by the sealer equipment supplier. The defined max meter flow rate
can seen below, but should be verified on the connected sealer equipment.

2.5 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

[8]
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.

SD1 & SD2 app_set() Examples:

Interface Panel

3.1 SD Interface Panel


As a default load, the dispense system interface panel comes with two sealer applications. If only one
dispense system is being used, the programmer should remove all SD2 applicable panel functions. Both
examples can be seen below.

3.1.1 Default Panel

3.1.2 SD1 Panel with SD2 Removed

[9]
3.2 SD Interface Panel Icon Description
Descriptions are only provided for dispense system 1. Functionality for dispense system 2 is the same,
each respective icon applied to which dispense system is labeled.

[10]
[11]
Robot Settings
4.1 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. SD1 uses Node Number 6. SD2 uses Node Number 7.
must be used to proceed through the menus. I/P address will be specific to each system.
Setup provided below.

4.1.1 SD1 I/O Communication Setting

[12]
4.1.2 SD2 I/O Communication Setting

4.2 Clamp Specifications


The clamp specifications settings can be found AUX: 6: Input/Output Signal 5: Clamp Specifications.

[13]
4.2.1 1: Application Field

4.2.2 30: Painting Sealing Signal Definition

4.3 System Switch


The system switch setting can be found in AUX 502: 5: Advance Setting 2: System Switch.

4.3.1 AUTOSTART2.PC
AUTOSTART2.PC needs to be enabled for SD1 & SD2. Turning this system switch on will ensure that
even on a power cycle the autostart2 routine will be executing in the background.

[14]
4.4 I/O Naming
4.4.1 SD1 I/O Naming
.AUXDATA
N_OX305 "SYSTEM ON"
N_OX306 "PUMP RETRIGGER"
N_OX307 "HEATING RETRIGGER"
N_OX308 "CALIBRATE PURGE"
N_OX309 "PURGE"
N_OX310 "FILL METER"
N_OX311 "ENABLE PURGE"
N_OX312 "ERROR ACK"
N_OX313 "OPERATION ENABLED"
N_OX314 "START"
N_OX315 "CYCLE END"
N_OX316 "HEAD 1 SELECT SD1"
N_OX317 " SD1 @ PRG BKT/RBT CLR"
N_OX318 "HEAD 2 SELECT SD1"
N_OX319 "ROBOT@ #1 NOZ DET POS"
N_OX320 "HEAD 3 SELECT SD1"
N_OX321 "SELECT PROG B0"
N_OX322 "SELECT PROG B1"
N_OX323 "SELECT PROG B2"
N_OX324 "SELECT PROG B3"
N_OX325 "SELECT PROG B4"
N_OX326 "SELECT PROG B5"
N_OX327 "SELECT PROG B6"
N_OX328 "SELECT PROG B7"
N_OX329 "SELECT STYLE B0"
N_OX330 "SELECT STYLE B1"
N_OX331 "SELECT STYLE B2"
N_OX332 "SELECT STYLE B3"
N_OX333 "SELECT STYLE B4"
N_OX334 "SELECT STYLE B5"
N_OX335 "SELECT STYLE B6"
N_OX336 "SELECT STYLE B7"

[15]
N_OX337 "SD1 VEL BIN 1"
N_OX338 "SD1 VEL BIN 2"
N_OX339 "SD1 VEL BIN 4"
N_OX340 "SD1 VEL BIN 8"
N_OX341 "SD1 VEL BIN 16"
N_OX342 "SD1 VEL BIN 32"
N_OX343 "SD1 VEL BIN 64"
N_OX344 "SD1 VEL BIN 128"
N_OX345 "SD1 VEL BIN 256"
N_OX346 "SD1 VEL BIN 512"
N_OX347 "SD1 VEL BIN 1024"
N_OX348 "SD1 VEL BIN 2048"
N_OX349 "SD1 VEL BIN 4096"
N_OX350 "SD1 VEL BIN 8192"
N_OX351 "SD1 VEL BIN 16384"
N_OX352 "SD1 VEL BIN 32768"
N_WX1305 "HEATING READY"
N_WX1306 "PUMP ON"
N_WX1307 "HEATING ON"
N_WX1308 "REQUEST CAL PURGE"
N_WX1309 "REQUEST PURGE"
N_WX1310 "PURGE FINISHED"
N_WX1311 "METER FULL"
N_WX1312 "GENERAL FAULT"
N_WX1313 "FAULT PUMP/HEATING"
N_WX1314 "MATERIAL APP O.K."
N_WX1315 "CYCLE FINISHED"
N_WX1316 "SD1 SLR PATH SKIP"
N_WX1317 "READY FOR OPERATION"
N_WX1318 "RDY FOR APP"
N_WX1319 "NOZZ #1 CHECKED OK"
N_WX1320 "SD1 EXT SLOWRPT MODE"
N_WX1321 "ACK PROG.B0"
N_WX1322 "ACK PROG.B1"
N_WX1323 "ACK PROG.B2"
N_WX1324 "ACK PROG.B3"
N_WX1325 "ACK PROG.B4"
N_WX1326 "ACK PROG.B5"
N_WX1327 "ACK PROG.B6"
N_WX1328 "ACK PROG.B7"
N_WX1329 "ACK STYLE.B0"
N_WX1330 "ACK STYLE.B1"
N_WX1331 "ACK STYLE.B2"
N_WX1332 "ACK STYLE.B3"
N_WX1333 "ACK STYLE.B4"
N_WX1334 "ACK STYLE.B5"
N_WX1335 "ACK STYLE.B6"
N_WX1336 "ACK STYLE.B7"
N_WX1337 "ACCEPT SEALD PART SD1"
N_WX1338 "REJECT SEALD PART SD1"
N_WX1339 "SEALER KEY AUTO"
N_WX1340 "SEALER INSP FAIL"
.END

[16]
4.4.2 SD2 I/O Naming
.AUXDATA
N_OX545 "SYSTEM ON"
N_OX546 "PUMP RETRIGGER"
N_OX547 "HEATING RETRIGGER"
N_OX548 "CALIBRATE PURGE"
N_OX549 "PURGE"
N_OX550 "FILL METER"
N_OX551 "ENABLE PURGE"
N_OX552 "ERROR ACK"
N_OX553 "OPERATION ENABLED"
N_OX554 "START"
N_OX555 "CYCLE END"
N_OX556 "HEAD 1 SELECT SD2"
N_OX557 "SD2 @ PRG BKT/RBT CLR"
N_OX558 "HEAD 2 SELECT SD2"
N_OX559 "ROBOT@ #2 NOZ DET POS"
N_OX560 "HEAD 3 SELECT SD2"
N_OX561 "SELECT PROG B0"
N_OX562 "SELECT PROG B1"
N_OX563 "SELECT PROG B2"
N_OX564 "SELECT PROG B3"
N_OX565 "SELECT PROG B4"
N_OX566 "SELECT PROG B5"
N_OX567 "SELECT PROG B6"
N_OX568 "SELECT PROG B7"
N_OX569 "SELECT STYLE B0"
N_OX570 "SELECT STYLE B1"
N_OX571 "SELECT STYLE B2"
N_OX572 "SELECT STYLE B3"
N_OX573 "SELECT STYLE B4"
N_OX574 "SELECT STYLE B5"
N_OX575 "SELECT STYLE B6"
N_OX576 "SELECT STYLE B7"
N_OX577 "SD2 VEL BIN 1"
N_OX578 "SD2 VEL BIN 2"
N_OX579 "SD2 VEL BIN 4"
N_OX580 "SD2 VEL BIN 8"
N_OX581 "SD2 VEL BIN 16"
N_OX582 "SD2 VEL BIN 32"
N_OX583 "SD2 VEL BIN 64"
N_OX584 "SD2 VEL BIN 128"
N_OX585 "SD2 VEL BIN 256"
N_OX586 "SD2 VEL BIN 512"
N_OX587 "SD2 VEL BIN 1024"
N_OX588 "SD2 VEL BIN 2048"
N_OX589 "SD2 VEL BIN 4096"
N_OX590 "SD2 VEL BIN 8192"
N_OX591 "SD2 VEL BIN 16384"
N_OX592 "SD2 VEL BIN 32768"
N_WX1545 "HEATING READY"
N_WX1546 "PUMP ON"
N_WX1547 "HEATING ON"

[17]
N_WX1548 "REQUEST CAL PURGE"
N_WX1549 "REQUEST PURGE"
N_WX1550 "PURGE FINISHED"
N_WX1551 "METER FULL"
N_WX1552 "GENERAL FAULT"
N_WX1553 "FAULT PUMP/HEATING"
N_WX1554 "MATERIAL APP O.K."
N_WX1555 "CYCLE FINISHED"
N_WX1556 "SD2 SLR PATH SKIP"
N_WX1557 "READY FOR OPERATION"
N_WX1558 "RDY FOR APP"
N_WX1559 "NOZZ #1 CHECKED OK"
N_WX1560 "SD2 EXT SLOWRPT MODE"
N_WX1561 "ACK PROG.B0"
N_WX1562 "ACK PROG.B1"
N_WX1563 "ACK PROG.B2"
N_WX1564 "ACK PROG.B3"
N_WX1565 "ACK PROG.B4"
N_WX1566 "ACK PROG.B5"
N_WX1567 "ACK PROG.B6"
N_WX1568 "ACK PROG.B7"
N_WX1569 "ACK STYLE.B0"
N_WX1570 "ACK STYLE.B1"
N_WX1571 "ACK STYLE.B2"
N_WX1572 "ACK STYLE.B3"
N_WX1573 "ACK STYLE.B4"
N_WX1574 "ACK STYLE.B5"
N_WX1575 "ACK STYLE.B6"
N_WX1576 "ACK STYLE.B7"
N_WX1577 "ACCEPT SEALD PART SD2"
N_WX1578 "REJECT SEALD PART SD2"
N_WX1579 "SEALER KEY AUTO"
.END

4.5 Robot Arm Load


Based on which dispense system or if multiple dispense systems are used the arm load needs to be put
in the robot prior to running payloads. Arm load settings can be found in AUX: 404 4: Basic setting 4:
Load on Arm.

[18]
[19]
Robot Programs
5.1 Flow Charts
5.1.1 SD1 Single Carried Process Flow Chart

[20]
5.1.2 SD1 Single Pedestal Process Flow

[21]
5.1.3 SD1 & SD2 Dual Carried Process Flow

[22]
5.1.4 SD1 & SD2 Dual Pedestal Process Flow

[23]
5.2 Service Routines
5.2.1 Auto Purge SD1 Carried Example
;************************************************
; COMPANY : RIVIAN
; PROGRAM : pg04 () ;AUTO PURGE SD1 CARRIED EXAMPLE
; REVISED LAST: 05/10/2021 REV 01
; Produced by : RIVIAN KAWASAKI ROBOTICS DEV
;************************************************
;
CALL pgverify(4)
;
CALL mov_home; MOVE TO HOME
;
;************************************************
10;AUTO PURGE DESPENSE CONTROLLER 1
;
; IF HEATING ON OFF OR PUMP ON OFF CALL START UP
IF SIG(-1307) OR SIG(-1306) THEN
CALL sd1_startup
END
;
;************************************************
; IF CARRIED ADD MOVES TO PURGE POSITION HERE
; IF PED ALL POSITIONS CAN BE REMOVED
JOINT SPEED7 ACCU2 TIMER0 TOOL1 WORK0 CLAMP1 (OFF,0,0,0) OX= WX= #[85.119,-24.382,-
6.8621,-1.1877,-82.082,-89.069] ;
;
;AT PURGE
LINEAR SPEED7 ACCU0 TIMER0 TOOL1 WORK0 CLAMP1 (OFF,0,0,0) OX= WX= #[87.487,17.704,-
60.289,-0.44939,-30.751,-102.1] ;
;
;************************************************
CALL sd1_purge; PURGE DESPENSE CONTROLLER 1
;************************************************
;
;************************************************
; IF CARRIED ADD MOVES TO HOME POSITION HERE
JOINT SPEED7 ACCU2 TIMER0 TOOL1 WORK0 CLAMP1 (OFF,0,0,0) OX= WX= #[85.119,-24.382,-
6.8621,-1.1877,-82.082,-89.069] ;
;
;************************************************
CALL mov_home
;

5.2.2 Auto Purge SD1 Pedestal Example


;************************************************
; COMPANY : RIVIAN
; PROGRAM : pg04() ;AUTO PURGE SD1 PEDESTAL EXAMPLE
; REVISED LAST: 05/10/2021 REV 01
; Produced by : RIVIAN KAWASAKI ROBOTICS DEV

[24]
;************************************************
;
CALL pgverify(4)
;
CALL mov_home; MOVE TO HOME
;
;************************************************
10;AUTO PURGE DESPENSE CONTROLLER 1
;
; IF HEATING ON OFF OR PUMP ON OFF CALL START UP
IF SIG(-1307) OR SIG(-1306) THEN
CALL sd1_startup
END
;
;************************************************
; IF CARRIED ADD MOVES TO PURGE POSITION HERE
; IF PED ALL POSITIONS CAN BE REMOVED
;
;AT PURGE
;************************************************
CALL sd1_purge; PURGE DESPENSE CONTROLLER 1
;************************************************
;
;************************************************
; IF CARRIED ADD MOVES TO HOME POSITION HERE
;
;************************************************
CALL mov_home
;

5.2.3 Auto Purge SD2 Carried Example


;************************************************
; COMPANY : RIVIAN
; PROGRAM : pg05 () ;AUTO PURGE SD2 CARRIED EXAMPLE
; REVISED LAST: 05/10/2021 REV 01
; Produced by : RIVIAN KAWASAKI ROBOTICS DEV
;************************************************
;
CALL pgverify(5)
;
CALL mov_home; MOVE TO HOME
;
;************************************************
10;AUTO PURGE DESPENSE CONTROLLER 2
;
; IF HEATING ON OFF OR PUMP ON OFF CALL START UP
IF SIG(-1547) OR SIG(-1546) THEN
CALL sd2_startup
END
;
;************************************************
; IF CARRIED ADD MOVES TO PURGE POSITION HERE
; IF PED ALL POSITIONS CAN BE REMOVED

[25]
JOINT SPEED7 ACCU2 TIMER0 TOOL1 WORK0 CLAMP1 (OFF,0,0,0) OX= WX= #[85.119,-24.382,-
6.8621,-1.1877,-82.082,-89.069] ;
;
;AT PURGE
LINEAR SPEED7 ACCU0 TIMER0 TOOL1 WORK0 CLAMP1 (OFF,0,0,0) OX= WX= #[87.487,17.704,-
60.289,-0.44939,-30.751,-102.1] ;
;
;************************************************
CALL sd2_purge; PURGE DESPENSE CONTROLLER 2
;************************************************
;
;************************************************
; IF CARRIED ADD MOVES TO HOME POSITION HERE
JOINT SPEED7 ACCU2 TIMER0 TOOL1 WORK0 CLAMP1 (OFF,0,0,0) OX= WX= #[85.119,-24.382,-
6.8621,-1.1877,-82.082,-89.069] ;
;
;************************************************
CALL mov_home; MOVE TO HOME
;

5.2.4 Auto Purge SD2 Pedestal Example


;************************************************
; COMPANY : RIVIAN
; PROGRAM : pg05() ;AUTO PURGE SD2 PEDESTAL EXAMPLE
; REVISED LAST: 05/10/2021 REV 01
; Produced by : RIVIAN KAWASAKI ROBOTICS DEV
;************************************************
;
CALL pgverify(5)
;
CALL mov_home; MOVE TO HOME
;
;************************************************
10;AUTO PURGE DESPENSE CONTROLLER 2
;
; IF HEATING ON OFF OR PUMP ON OFF CALL START UP
IF SIG(-1547) OR SIG(-1546) THEN
CALL sd2_startup
END
;
;************************************************
; IF CARRIED ADD MOVES TO PURGE POSITION HERE
; IF PED ALL POSITIONS CAN BE REMOVED
;
;AT PURGE
;
;************************************************
CALL sd2_purge; PURGE DESPENSE CONTROLLER 2
;************************************************
;
;************************************************
; IF CARRIED ADD MOVES TO HOME POSITION HERE
;

[26]
;************************************************
CALL mov_home; MOVE TO HOME

5.3 Production Subroutines


5.3.1 SD1 Purge
;************************************************
; COMPANY : RIVIAN
; PROGRAM : sd1_purge() ;PURGE SEAL DESPENSER 1
; REVISED LAST: 05/10/2021 REV 01
; Produced by : RIVIAN KAWASAKI ROBOTICS DEV
;************************************************
; AUTO PURGE SEAL CONTROLLER 1
;************************************************
10;START AUTO PURGE 1
;
SIGNAL 317 ;ROBOT AT PURGE BUCKET
SIGNAL 311 ;ENABLE PURGE
SIGNAL 309 ;PURGE
;
;WAIT PURGE COMPLETE OR GENERAL FAULT
WAIT SIG(1310) OR SIG(1312) ;
;
PULSE 309,0.5 ;PURGE OFF
PULSE 311,0.5 ;PURGE ENABLE OFF
;
SIGNAL -317 ;ROBOT AT PURGE BUCKET OFF
;
;IF GENERAL FAULT GOTO 10
IF SIG(1312) THEN; GENERAL FAULT
PULSE 312,2 ; ERROR ACKNOWLAGE
GOTO 10; START AUTO PURGE 1
END
;
;IF PURGE REQUEST STILL ON GOTO 10
IF SIG(1309) THEN
GOTO 10 ; PURGE REQUEST
END
;

5.3.2 SD1 Startup


;************************************************
; COMPANY : RIVIAN
; PROGRAM : sd1_startup() ;START UP
; REVISED LAST: 05/10/2021 REV 01
; Produced by : RIVIAN KAWASAKI ROBOTICS DEV
;************************************************
;AUTO REMOTE START SEAL CONTROLLER 1
;************************************************
;
;IF AUTO REPEAT MODE SKIP START UP

[27]
IF SIG(1013) GOTO 10; AUTO REPEAT
;
; WAIT FOR SEALER CONTROLLER KEY IN AUTO MODE
WAIT SIG(1339) ; SEALER KEY AUTO
;
SIGNAL 305 ;SYSTEM ON (SD1)
SIGNAL 313 ;OPERATION ENABLED (SD1)
;
; IF GENERAL FAULT, ERROR ACKNOWLEDGE
IF SIG(1312) THEN; GENERAL FAULT
PULSE 312,2; ERROR ACKNOWLEDGE
END;
;
PULSE 307,2 ;HEATING RETRIGGERED
WAIT SIG(1307) ;HEATING ON
WAIT SIG(1305) ;HEATING READY
;
PULSE 306,2 ;PUMP RETRIGGER
WAIT SIG(1306) ;PUMP ON
WAIT SIG(-1313) ;FAULT PUMP/HEATING OFF
;
10; AUTO REPEART
;

5.3.3 SD2 Purge


;************************************************
; COMPANY : RIVIAN AUTOMOTIVE
; PROGRAM : sd2_purge() ;PURGE SEAL DESPENSER 2
; REVISED LAST: 05/10/2021 REV 01 (SEAL)
; Produced by : RIVIAN KAWASAKI ROBOTICS DEV
;************************************************
; AUTO PURGE SEAL CONTROLLER 2
;************************************************
10;START AUTO PURGE 2
;
SIGNAL 557 ;ROBOT AT PURGE BUCKET
SIGNAL 551 ;ENABLE PURGE
SIGNAL 549 ;PURGE
;
;WAIT PURGE COMPLETE OR GENERAL FAULT
WAIT SIG(1550) OR SIG(1552) ;
;
PULSE 549,0.5 ;PURGE OFF
PULSE 551,0.5 ;PURGE ENABLE OFF
;
SIGNAL -557 ;ROBOT AT PURGE BUCKET OFF
;
;IF GENERAL FAULT GOTO 10
IF SIG(1552) THEN; GENERAL FAULT
PULSE 552,2 ; ERROR ACKNOWLAGE
GOTO 10; START AUTO PURGE 2
END
;

[28]
;IF PURGE REQUEST STILL ON GOTO 10
IF SIG(1549) THEN
GOTO 10 ; PURGE REQUEST
END
;

5.3.4 SD2 Startup


;************************************************
; COMPANY : RIVIAN AUTOMOTIVE
; PROGRAM : sd2_startup() ;START UP
; REVISED LAST: 05/10/2021 REV 01 (SEAL)
; Produced by : RIVIAN KAWASAKI ROBOTICS DEV
;************************************************
;
;AUTO REMOTE START SEAL CONTROLLER 2
;
;IF AUTO REPEAT MODE SKIP START UP
IF SIG(1013) GOTO 10; AUTO REPEAT
;
; WAIT FOR SEALER CONTROLLER KEY IN AUTO MODE
WAIT SIG(1579) ; SEALER KEY AUTO
;
SIGNAL 545 ;SYSTEM ON (SD1)
SIGNAL 553 ;OPERATION ENABLED (SD1)
;
; IF GENERAL FAULT, ERROR ACKNOWLEDGE
IF SIG(1552) THEN; GENERAL FAULT
PULSE 552,2; ERROR ACKNOWLEDGE
END;
;
PULSE 547,2 ;HEATING RETRIGGERED
WAIT SIG(1547) ;HEATING ON
WAIT SIG(1545) ;HEATING READY
;
PULSE 546,2 ;PUMP RETRIGGER
WAIT SIG(1546) ;PUMP ON
WAIT SIG(-1553) ;FAULT PUMP/HEATING OFF
;
10; AUTO REPEART
;

5.4 Program Examples


5.4.1 Main Carried SD1 Example
;************************************************
; COMPANY : RIVIAN
; PROGRAM : pg20, R1T MAIN CARRIED SD1 EXAMPLE
; REVISED LAST: 05/10/2021 REV 01
; Produced by : RIVIAN KAWASAKI ROBOTICS DEV
;************************************************
;

[29]
CALL pgverify(20); PROGRAM VERIFY
;
CALL mov_home; MOVE TO HOME
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 EXIT POUNCE LOOP
;*******************************************************
; SEAL PROCESS 1
;
CALL enttool(1); REQUEST TO ENTER TOOL 1 RRL-050
;
;*******************************************************
305;SD1 PRE PROCESS (ADHESIVE)
;
; IF AUTO REPEAT SEAL PATH DRY
IF SIG(1013) GOTO 20 ;AUTO REPEAT
;
; IF HEATING ON OFF OR PUMP ON OFF CALL START UP
IF SIG(-1307) OR SIG(-1306) THEN
CALL sd1_startup
END
;
; IF PURGE REQUEST THEN GO TO PURGE POSITION
IF SIG(1309) THEN; PURGE REQUEST
;IF NEEDED ADD MOVES TO PURGE POSITION HERE
;JOINT SPEED5 ACCU2 TIMER0 TOOL1 WORK0 CLAMP1 (OFF,0,0,0) OX= WX= #[85.119,-24.382,-
6.8621,-1.1877,-82.082,-89.069] ;
;
;AT Purge Position
LINEAR SPEED5 ACCU0 TIMER0 TOOL1 WORK0 CLAMP1 (OFF,0,0,0) OX= WX= #[87.487,17.704,-
60.289,-0.44956,-30.751,-102.1] ;
;******************************
CALL sd1_purge; CALL PURGE
;******************************
;IF NEEDED ADD MOVES FROM PURGE BACK TO POUNCE HERE
;JOINT SPEED5 ACCU2 TIMER0 TOOL1 WORK0 CLAMP1 (OFF,0,0,0) OX= WX= #[85.119,-24.382,-
6.8621,-1.1877,-82.082,-89.069] ;
END
;
; IF HEATING OFF OR PUMP OFF OR GENERAL FAULT
; OR PURGE REQUEST GOTO SD1 PRE PROCESS
IF SIG(-1307) OR SIG(-1306) OR SIG(1312) OR SIG(1309) THEN;

[30]
PULSE 312,2; ERROR ACKNOWLEDGE
GOTO 305;SD1 PRE PROCESS
END
;
;*******************************************
20; SET PROGRAM TO SEAL CONTROLLER SHOULD MATCH MAIN PG
BITS 321,8 = 20 ;SELECT SEALER PG
;
; WAIT PROGRAM ACKNOWLAGE FROM SEAL CONTROLLER
WAIT BITS(1321,8)==20 ;SEALER PG ACK
;
; SET PARAMATER BITS TO SEAL CONTROLLER
BITS 329,4 = 1 ;PART ID BINARY
;
;*******************************************
; SEAL ROOF PANEL
CALL r1t_proc1_sd1
;*******************************************
;
SIGNAL -314 ;CYCLE START OFF
SIGNAL 315 ;CYCLE STOP ON
;
;WAIT MATERIAL APP. O.K. OR GENERAL FAULT OR DRYCYCLE
WAIT SIG(1314) OR SIG(1312) OR SIG(1013);
;
SIGNAL -315 ;CYCLE STOP OFF
BITS 329,4 = 0 ; PART ID BINNARY 0
BITS 321,8 = 0 ;SELECT SEALER PG 0
;
; IF GENERAL FAULT AND NOT DRYCYCLE
IF SIG(1312) AND SIG(-1013) THEN;
CALL r1t_proc1_rfr; Rivian Fault Recovery Process 1
IF SIG(1338) GOTO 20; RESEAL PROCESS
END; GENERAL FAULT NOT DRYCYCLE
;
CALL proccomp(1) ; SET PROCESS 1 COMPLETE
;
;************************************************
; MOVES TO CAMERA POSITIONS
JOINT SPEED4 ACCU0 TIMER0 TOOL1 WORK0 CLAMP1 (OFF,0,1,0) OX= WX= #[75,-
33.788,16.679,0,-89.745,-90];Clear Tool 1
;
; AT PROC 1 CAMERA POSITION 1
JOINT SPEED9 ACCU0 TIMER0 TOOL1 WORK0 CLAMP1 (OFF,0,0,0) OX= WX=
#[27.664,51.009,16.408,1.3252,-109.84,-26.797] ;
;
; PROC 1 1ST CAMERA TRIGGER
CALL reporeq(1); WAIT FOR CAMERA TRIGGER (PLC)
;
; AT PROC 1 CAMERA POSITION 2
JOINT SPEED9 ACCU0 TIMER0 TOOL1 WORK0 CLAMP1 (OFF,0,0,0) OX= WX= #[-
8.8807,29.15,9.3654,-3.2794,-100.73,8.2758] ;
;
; PROC 1 2ND CAMERA TRIGGER

[31]
CALL reporeq(2); WAIT FOR CAMERA TRIGGER (PLC)
;
JOINT SPEED4 ACCU0 TIMER0 TOOL1 WORK0 CLAMP1 (OFF,0,1,0) OX= WX= #[75,-
33.788,16.679,0,-89.745,-90];Clear Tool 1
;
; IF SEAL REJECT/RESEAL (PLC), RESTART SEAL PROCCESS
IF SIG(1338) Then; REJECT/RESEAL
; IF ADDITION MOVES NEEDED TO GET BACK TO START
; OF SEAL PROCESS ADD THEM HERE
GOTO 305; START OF SD1 PRE PROCESS
END; SEAL REJECT/RESEAL (PLC)
;
SIGNAL 85 ; CLEAR OF TOOL 1
;
;*******************************************************
12; RETURN HOME LABEL
;
CALL mov_home; MOVE TO HOME
;

5.4.2 Carried Proc 1 SD1 Example


;************************************************
; COMPANY : RIVIAN
; PROGRAM : r1t_proc1_sd1 ;CARRIED R1T PROC 1 SD1 EXAMPLE
; REVISED LAST: 05/10/2021 REV 01
; Produced by : RIVIAN KAWASAKI ROBOTICS DEV
;************************************************
;
; CYCLE START TO SD1 CONTROLLER
SIGNAL 314; CYCLE START
;
; WAIT READY FOR APP. (SD1) OR DRYCYCLE (PLC)
WAIT SIG(1318) OR SIG(1013);
;
;SD1 IN SEALANT CYCLE (PLC)
SIGNAL 701; SD1 IN SEALANT CYCLE ON
;
; MOVE SAFE POSITION BEFORE PATH STARTS
JOINT SPEED6 ACCU2 TIMER0 TOOL1 WORK0 CLAMP1 (OFF,0,0,0) OX= WX=
#[42.641,15.844,4.3118,8.036,-103.24,-40.644] ;
JOINT SPEED6 ACCU0 TIMER0 TOOL1 WORK0 CLAMP1 (OFF,0,0,O) OX= WX= #[39.443,18.82,-
6.2592,7.65,-93.146,-38.998] ;
;
;************************************************
; SEAL SCHEDULE / GUN ON
;************************************************
;
; Start Bead 1
vbs = 12.5 ;cc/m - BEAD SIZE GUN 1
LINEAR 300. ACCU3 TIMER0 TOOL1 WORK0 CLAMP1 (ON,0,1,0) OX= WX= #[38.671,20.675,-
6.0025,7.7772,-93.296,-38.201] ;Bead 1 Start
LINEAR 300. ACCU3 TIMER0 TOOL1 WORK0 CLAMP1 (ON,0,1,0) OX= WX= #[36.297,26.858,-
3.9803,8.1734,-94.97,-35.572] ;

[32]
LINEAR 300. ACCU3 TIMER0 TOOL1 WORK0 CLAMP1 (ON,0,1,0) OX= WX= #[33.204,35.664,-
0.32844,8.7029,-98.13,-31.956] ;
LINEAR 300. ACCU3 TIMER0 TOOL1 WORK0 CLAMP1 (ON,0,1,0) OX= WX=
#[30.593,44.143,3.975,9.1957,-101.98,-28.658] ;
LINEAR 300. ACCU3 TIMER0 TOOL1 WORK0 CLAMP1 (ON,0,1,0) OX= WX=
#[30.942,45.547,4.5693,9.1673,-102.62,-28.913] ;
LINEAR 300. ACCU3 TIMER0 TOOL1 WORK0 CLAMP1 (ON,0,1,0) OX= WX=
#[30.02,49.188,6.7858,9.3828,-104.66,-27.612] ;
LINEAR 300. ACCU3 TIMER0 TOOL1 WORK0 CLAMP1 (ON,0,1,0) OX= WX=
#[29.57,48.222,6.3971,9.4281,-104.2,-27.222] ;
LINEAR 300. ACCU3 TIMER0 TOOL1 WORK0 CLAMP1 (ON,0,1,0) OX= WX=
#[29.029,51.808,8.4708,9.5947,-106.16,-26.319] ;
LINEAR 300. ACCU3 TIMER0 TOOL1 WORK0 CLAMP1 (ON,0,1,0) OX= WX=
#[23.213,44.661,5.5998,0.41606,-101.58,-22.765] ;
LINEAR 300. ACCU3 TIMER0 TOOL1 WORK0 CLAMP1 (ON,0,1,0) OX= WX=
#[23.341,43.612,5.0598,0.40156,-101.04,-22.899] ;
LINEAR 300. ACCU3 TIMER0 TOOL1 WORK0 CLAMP1 (ON,0,1,0) OX= WX=
#[23.079,43.085,4.798,0.42918,-100.78,-22.634] ;
LINEAR 300. ACCU3 TIMER0 TOOL1 WORK0 CLAMP1 (ON,0,1,0) OX= WX=
#[22.746,42.62,4.5697,0.46418,-100.55,-22.299] ;
LINEAR 300. ACCU3 TIMER0 TOOL1 WORK0 CLAMP1 (ON,0,1,0) OX= WX=
#[22.597,43.828,5.1803,0.48095,-101.15,-22.142] ;
LINEAR 300. ACCU3 TIMER0 TOOL1 WORK0 CLAMP1 (ON,0,1,0) OX= WX=
#[20.855,41.569,3.9734,0.66287,-99.932,-20.389] ;
LINEAR 300. ACCU3 TIMER0 TOOL1 WORK0 CLAMP1 (ON,0,1,0) OX= WX=
#[20.978,40.555,3.5122,0.64916,-99.471,-20.519] ;
LINEAR 300. ACCU3 TIMER0 TOOL1 WORK0 CLAMP1 (ON,0,1,0) OX= WX=
#[20.76,39.919,3.2445,0.67146,-99.202,-20.302] ;
LINEAR 300. ACCU3 TIMER0 TOOL1 WORK0 CLAMP1 (ON,0,1,0) OX= WX=
#[20.339,39.429,2.9309,0.71512,-98.882,-19.877] ;
LINEAR 300. ACCU3 TIMER0 TOOL1 WORK0 CLAMP1 (ON,0,1,0) OX= WX=
#[20.184,40.726,3.5506,0.73286,-99.5,-19.713] ;
LINEAR 300. ACCU3 TIMER0 TOOL1 WORK0 CLAMP1 (ON,0,1,0) OX= WX=
#[15.874,36.756,1.6273,1.1771,-97.506,-15.394] ;
LINEAR 300. ACCU3 TIMER0 TOOL1 WORK0 CLAMP1 (ON,0,1,0) OX= WX= #[8.3236,32.656,-
0.35586,1.9367,-95.318,-7.8529] ;
LINEAR 300. ACCU3 TIMER0 TOOL1 WORK0 CLAMP1 (ON,0,1,0) OX= WX= #[2.0243,30.662,-
1.344,2.5452,-94.084,-1.5774] ;
LINEAR 300. ACCU3 TIMER0 TOOL1 WORK0 CLAMP1 (ON,0,1,0) OX= WX= #[2.035,29.83,-
1.6305,2.5434,-93.799,-1.601] ;
LINEAR 300. ACCU3 TIMER0 TOOL1 WORK0 CLAMP1 (ON,0,1,0) OX= WX= #[1.2696,29.79,-
1.6775,2.6154,-93.717,-0.83691] ;
LINEAR 300. ACCU3 TIMER0 TOOL1 WORK0 CLAMP1 (ON,0,1,0) OX= WX= #[1.2645,30.612,-
1.3552,2.617,-94.038,-0.81723] ;
LINEAR 300. ACCU3 TIMER0 TOOL1 WORK0 CLAMP1 (ON,0,1,0) OX= WX= #[-0.83854,30.604,-
1.5318,2.8125,-93.763,1.2791] ;
LINEAR 300. ACCU3 TIMER0 TOOL1 WORK0 CLAMP1 (ON,0,1,0) OX= WX= #[-0.84588,29.719,-
1.8491,2.8124,-93.446,1.2711] ;
LINEAR 300. ACCU3 TIMER0 TOOL1 WORK0 CLAMP1 (ON,0,1,0) OX= WX= #[-1.509,29.758,-
1.9109,2.873,-93.351,1.9314] ;
LINEAR 300. ACCU3 TIMER0 TOOL1 WORK0 CLAMP1 (ON,0,1,0) OX= WX= #[-1.4951,30.647,-
1.5275,2.873,-93.735,1.9368] ;
LINEAR 300. ACCU3 TIMER0 TOOL1 WORK0 CLAMP1 (ON,0,1,0) OX= WX= #[-7.7506,28.293,-
3.9177,-3.252,-87.405,7.9024] ;

[33]
LINEAR 300. ACCU3 TIMER0 TOOL1 WORK0 CLAMP1 (ON,0,1,0) OX= WX= #[-8.4291,27.847,-
4.1588,-3.2368,-87.202,8.5929] ;
LINEAR 300. ACCU3 TIMER0 TOOL1 WORK0 CLAMP1 (ON,0,1,0) OX= WX= #[-8.721,26.576,-4.6507,-
3.2313,-86.728,8.9116] ;
LINEAR 300. ACCU3 TIMER0 TOOL1 WORK0 CLAMP1 (ON,0,1,0) OX= WX= #[-10.397,13.631,-
7.7628,-3.2035,-83.714,10.757] ;
LINEAR 300. ACCU3 TIMER0 TOOL1 WORK0 CLAMP1 (ON,0,1,0) OX= WX= #[-11.899,3.1883,-
8.7914,-3.1698,-82.769,12.308] ;
LINEAR 300. ACCU3 TIMER0 TOOL1 WORK0 CLAMP1 (ON,0,1,0) OX= WX= #[-13.572,-8.397,-
8.3343,-3.1194,-83.316,13.947] ;
LINEAR 300. ACCU3 TIMER0 TOOL1 WORK0 CLAMP1 (ON,0,1,0) OX= WX= #[-15.068,-17.431,-
6.9793,-3.0671,-84.749,15.362] ;
LINEAR 300. ACCU3 TIMER0 TOOL1 WORK0 CLAMP1 (ON,0,1,0) OX= WX= #[-16.703,-28.413,-
3.9222,-3.0062,-87.888,16.829] ;
LINEAR 300. ACCU3 TIMER0 TOOL1 WORK0 CLAMP1 (ON,0,1,0) OX= WX= #[-17.646,-33.684,-
1.8996,-2.974,-89.958,17.663] ;
LINEAR 300. ACCU3 TIMER0 TOOL1 WORK0 CLAMP1 (ON,0,1,0) OX= WX= #[-18.191,-36.389,-
0.7834,-2.9567,-91.1,18.151] ;
LINEAR 300. ACCU3 TIMER0 TOOL1 WORK0 CLAMP1 (ON,0,1,0) OX= WX= #[-16.366,-
37.468,0.32097,-3.0166,-92.108,16.269] ;
LINEAR 300. ACCU3 TIMER0 TOOL1 WORK0 CLAMP1 (ON,0,1,0) OX= WX= #[-8.3606,-
39.572,1.8793,-3.2396,-93.227,8.1832] ;
LINEAR 300. ACCU3 TIMER0 TOOL1 WORK0 CLAMP1 (ON,0,1,0) OX= WX= #[-8.6653,-
39.191,1.7441,-3.2321,-93.109,8.4951] ;
LINEAR 300. ACCU3 TIMER0 TOOL1 WORK0 CLAMP1 (ON,0,1,0) OX= WX= #[-6.703,-38.772,1.2043,-
3.2753,-92.459,6.5649] ;
LINEAR 300. ACCU3 TIMER0 TOOL1 WORK0 CLAMP1 (ON,0,1,0) OX= WX= #[-5.0203,-39.82,1.8079,-
1.0491,-92.771,4.9624] ;
LINEAR 300. ACCU3 TIMER0 TOOL1 WORK0 CLAMP1 (ON,0,1,0) OX= WX= #[-0.39231,-
40.076,2.0122,-1.1236,-92.888,0.32814] ;
LINEAR 300. ACCU3 TIMER0 TOOL1 WORK0 CLAMP1 (ON,0,1,0) OX= WX= #[-0.39105,-
39.142,1.675,-1.1232,-92.55,0.33352] ;
LINEAR 300. ACCU3 TIMER0 TOOL1 WORK0 CLAMP1 (ON,0,1,0) OX= WX= #[0.98053,-
39.133,1.6901,-1.1439,-92.538,-1.0387] ;
LINEAR 300. ACCU3 TIMER0 TOOL1 WORK0 CLAMP1 (ON,0,1,0) OX= WX= #[0.99141,-
40.244,2.4835,-1.1449,-93.331,-1.0658] ;
LINEAR 300. ACCU3 TIMER0 TOOL1 WORK0 CLAMP1 (ON,0,1,0) OX= WX= #[10.438,-
39.569,2.1696,-1.268,-92.817,-10.509] ;
LINEAR 300. ACCU3 TIMER0 TOOL1 WORK0 CLAMP1 (ON,0,1,0) OX= WX= #[26.395,-33.202,-
0.86627,-1.3962,-89.41,-26.393] ;
LINEAR 300. ACCU3 TIMER0 TOOL1 WORK0 CLAMP1 (ON,0,1,0) OX= WX= #[38.028,-24.119,-
4.5392,-1.4274,-85.451,-37.931] ;
LINEAR 300. ACCU3 TIMER0 TOOL1 WORK0 CLAMP1 (ON,0,1,0) OX= WX= #[37.661,-23.441,-
5.0451,-1.4285,-84.955,-37.552] ;
LINEAR 300. ACCU3 TIMER0 TOOL1 WORK0 CLAMP1 (ON,0,1,0) OX= WX= #[38.538,-22.508,-
5.4254,-1.4294,-84.553,-38.419] ;
LINEAR 300. ACCU3 TIMER0 TOOL1 WORK0 CLAMP1 (ON,0,1,0) OX= WX= #[38.903,-23.123,-
5.2216,-1.4286,-84.747,-38.789] ;
LINEAR 300. ACCU3 TIMER0 TOOL1 WORK0 CLAMP1 (ON,0,1,0) OX= WX= #[41.743,-19.831,-
6.3444,-1.4282,-83.555,-41.6] ;
LINEAR 300. ACCU3 TIMER0 TOOL1 WORK0 CLAMP1 (ON,0,1,0) OX= WX= #[41.393,-19.304,-
6.4052,-1.4289,-83.502,-41.247] ;
LINEAR 300. ACCU3 TIMER0 TOOL1 WORK0 CLAMP1 (ON,0,1,0) OX= WX= #[42.179,-18.338,-
6.6419,-1.428,-83.247,-42.028] ;

[34]
LINEAR 300. ACCU3 TIMER0 TOOL1 WORK0 CLAMP1 (ON,0,1,0) OX= WX= #[42.593,-19.016,-6.188,-
1.4257,-83.689,-42.453] ;
LINEAR 300. ACCU3 TIMER0 TOOL1 WORK0 CLAMP1 (ON,0,1,0) OX= WX= #[46.541,-13.532,-
7.6315,-1.4185,-82.15,-46.366] ;
LINEAR 300. ACCU3 TIMER0 TOOL1 WORK0 CLAMP1 (ON,0,1,0) OX= WX= #[45.382,-11.367,-
8.3739,-1.4254,-81.436,-45.187] ;
LINEAR 300. ACCU3 TIMER0 TOOL1 WORK0 CLAMP1 (ON,0,1,0) OX= WX= #[45.932,-10.553,-
8.4835,-1.424,-81.313,-45.734] ;
LINEAR 300. ACCU3 TIMER0 TOOL1 WORK0 CLAMP1 (ON,0,1,0) OX= WX= #[44.812,-8.1831,-
8.8276,-1.4289,-80.997,-44.606] ;
LINEAR 300. ACCU3 TIMER0 TOOL1 WORK0 CLAMP1 (ON,0,1,0) OX= WX= #[44.036,-8.5936,-
8.4826,-1.4299,-81.36,-43.838] ;
LINEAR 300. ACCU3 TIMER0 TOOL1 WORK0 CLAMP1 (ON,0,1,0) OX= WX= #[41.565,-2.4153,-
8.8058,-1.4365,-81.098,-41.359] ;
LINEAR 300. ACCU3 TIMER0 TOOL1 WORK0 CLAMP1 (ON,0,1,0) OX= WX= #[35.115,13.313,-
7.2579,-1.4324,-82.806,-34.949] ;
LINEAR 300. ACCU3 TIMER0 TOOL1 WORK0 CLAMP1 (OFF,0,0,0) OX= WX= #[34.441,15.088,-
6.9271,-1.4305,-83.154,-34.283] ;
; SEAL SCHEDULE 1 / GUN OFF
;
;SD1 IN SEALANT CYCLE OFF (PLC)
SIGNAL -701; SD1 IN SEALANT CYCLE OFF
;
LINEAR SPEED4 ACCU0 TIMER0 TOOL1 WORK0 CLAMP1 (OFF,0,1,0) OX= WX= #[35.291,12.779,-
6.9066,-1.4314,-83.152,-35.134] ;
JOINT SPEED4 ACCU0 TIMER0 TOOL1 WORK0 CLAMP1 (OFF,0,1,0) OX= WX= #[75,-
33.63,17.048,1.32e-07,-90.114,-90];Clear Tool 1
;

5.4.3 Carried Proc 1 SD1 Fault Recovery Example


;************************************************
; COMPANY : RIVIAN
; PROGRAM : r1t_proc1_rfr, R1T PROC 1 SD1 FAULT RECOVERY EXAMPLE
; REVISED LAST: 05/11/2021 REV 01
; Produced by : RIVIAN KAWASAKI ROBOTICS DEV
;************************************************
; MOVE TO A POSITION THAT A VISUAL INSPECTION
; OF THE SEAL PATH CAN BE MADE WHERE ROBOT IS CLEAR
;************************************************
;
; MOVES TOWARDS VISUAL INSPECTION
JOINT SPEED4 ACCU2 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 #[-69.208,-9.9459,-43.793,-175.29,-35.812,39.563,-2000] ;
;
; AT VISUAL INSPECTION POSITION SD1
JOINT SPEED4 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 #[-71.111,33.634,-56.742,-150.85,-37.296,25.523,-2000] ;
;
; AT VISIUAL INSPECTION POSITION (PLC)
SIGNAL 700; AT VISUAL INSPECTION
;
; ACCEPT OR REJECT/RESEAL FROM PLC OR I/F PANEL PB
WAIT SIG(1337) OR SIG(1338) ;

[35]
;
SIGNAL -700; AT VISUAL INSPECTION OFF
;
;************************************************
; MOVES BACK TO END OF PROCESS
JOINT SPEED4 ACCU2 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 #[-69.208,-9.9459,-43.793,-175.29,-35.812,39.563,-2000] ;
;
; IF NOT REJECT/RESEAL (PLC), CONTINUE END
IF SIG(-1338) GOTO 99 ; ACCEPT END
;
;************************************************
312; REJECT/RESEAL (PLC), RESTART SEAL PROCESS
;
; GENERAL FAULT ERROR ACKNOWLEDGE
PULSE 312,1; ERROR ACKNOWLEDGE
;
; IF HEATING ON OFF OR PUMP ON OFF CALL START UP
IF SIG(-1307) OR SIG(-1306) THEN
CALL sd1_startup
END
;
; IF PURGE REQUEST CALL PURGE
IF SIG(1309) THEN; PURGE REQUEST
;ADDITIONAL MOVES TO PURGE POSITION HERE
JOINT SPEED5 ACCU2 TIMER0 TOOL1 WORK0 CLAMP1 (OFF,0,0,0) OX= WX= #[85.119,-24.382,-
6.8621,-1.1877,-82.082,-89.069] ;
;AT Purge Position
LINEAR SPEED5 ACCU0 TIMER0 TOOL1 WORK0 CLAMP1 (OFF,0,0,0) OX= WX= #[87.487,17.704,-
60.289,-0.44956,-30.751,-102.1] ;
;******************************
CALL sd1_purge; CALL PURGE
;******************************
;MOVES FROM PURGE POSITION TO START OF PROCESS
JOINT SPEED5 ACCU2 TIMER0 TOOL1 WORK0 CLAMP1 (OFF,0,0,0) OX= WX= #[85.119,-24.382,-
6.8621,-1.1877,-82.082,-89.069] ;
END
;
; IF HEATING ON OFF OR PUMP ON OFF OR GENERAL FAULT
; OR PURGE REQUEST GOTO RESTART SEAL PROCCESS
IF SIG(-1307) OR SIG(-1306) OR SIG(1312) OR SIG(1309) THEN;
PULSE 312,2; ERROR ACKNOWLEDGE
GOTO 312;SD1 PRE PROCESS
END
;
;************************************************
99;END
;

5.4.4 Main MH Pedestal SD1 Example


;************************************************
; COMPANY : RIVIAN

[36]
; PROGRAM : pg20, R1C COMMON MAIN MH PEDESTAL SD1 EXAMPLE
; REVISED LAST: 05/13/2021 REV 01
; Produced by : RIVIAN KAWASAKI ROBOTICS DEV
;************************************************
;
CALL pgverify(20); PROGRAM VERIFY
;
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 -8 ; AT POUNCE OFF
SIGNAL -11 ; ROBOT IN PROGRAM LOOP 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 PICK PATH STATION 015
;
WAIT SIG(-1141) ; CHECK FOR NO PP #1
WAIT SIG(-1142) ; CHECK FOR NO PP #2
WAIT SIG(-1143) ; CHECK FOR NO PP #3
;
CALL cylopn_multiv_c(1,2,3,0,0,0,0,0,0,0,1);VALVE OPEN 1-3 / TOOL 1
;
CALL enttool(1); REQUEST TO ENTER TOOL 1 RFF-015
;
JOINT SPEED9 ACCU4 TIMER0 TOOL1 WORK0 CLAMP1 (OFF,0,0,O) 2 (OFF,0,0,O) OX= WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[-135.7,-45.277,81.861,8.2272,-83.614,90.854] ;
JOINT SPEED9 ACCU3 TIMER0 TOOL1 WORK0 CLAMP1 (OFF,0,0,O) 2 (OFF,0,0,O) OX= WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[-144.58,-48.107,24.076,2.091,-55.732,86.422] ;
JOINT SPEED9 ACCU2 TIMER0 TOOL1 WORK0 CLAMP1 (OFF,0,0,O) 2 (OFF,0,0,O) OX= WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[-143.13,-2.0493,-20.297,-13.717,6.5199,103.58] ;
LINEAR SPEED7 ACCU2 TIMER0 TOOL1 WORK0 CLAMP1 (OFF,0,0,O) 2 (OFF,0,0,O) OX= WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[-142.94,23.963,-21.683,-15.809,7.0542,105.52] ;
;
; ****** ABOVE PICK 1 ******
LINEAR SPEED3 ACCU1 TIMER0 TOOL1 WORK0 CLAMP1 (OFF,0,0,O) 2 (OFF,0,0,O) OX= WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[-142.98,25.532,-24.582,-10.912,9.9589,100.59] ;Pick 1 App
;
; ******* AT PICK POSITION 1 ******
LINEAR SPEED1 ACCU0 TIMER0 TOOL1 WORK0 CLAMP1 (OFF,0,0,O) 2 (OFF,0,0,O) OX= WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[-143.03,34.244,-36.603,-4.9058,21.877,94.406] ;Pick 1
;
SIGNAL 213 ;ROBOT AT PICK POSITION 1
;
WAIT SIG(1157) AND SIG(1158) OR SIG(1013) ;PP #5 #6 or AUTO REPEAT

[37]
;
CALL cylcls_multiv_c(0,0,3,0,0,0,0,0,0,0,1);CLOSES VALVE 3 / TOOL 1
;
; ABOVE PICK 1 POSITION
LINEAR SPEED3 ACCU1 TIMER0 TOOL1 WORK0 CLAMP1 (OFF,0,0,O) 2 (OFF,0,0,O) OX= WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[-143,26.396,-26.021,-9.4512,11.372,99.113] ;Pick 1 Depart
;
CALL exttool(1); REQUEST TO EXIT TOOL 1 RFF-015
;
SIGNAL -213 ;ROBOT AT PICK POSITION 1 OFF
;
LINEAR SPEED6 ACCU3 TIMER0 TOOL1 WORK0 CLAMP1 (OFF,0,0,O) 2 (OFF,0,0,O) OX= WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[-142.94,-60,-0.086366,-3.908,20.648,83.319] ;
JOINT SPEED9 ACCU3 TIMER0 TOOL1 WORK0 CLAMP1 (OFF,0,0,O) 2 (OFF,0,0,O) OX= WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[-129.31,-34.787,70.715,-9.7291,25.062,107.3] ;
JOINT SPEED9 ACCU0 TIMER0 TOOL1 WORK0 CLAMP1 (OFF,0,0,O) 2 (OFF,0,0,O) OX= WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[-24.131,-41.82,81.227,-71.473,-6.1585,-11.964] ;
;
SIGNAL 85 ; CLEAR OF TOOL 1 RFF-015
;
;************************************************
305; PROCESS 2 PED SEALER 1 (ADHESIVE)
;
; IF AUTO REPEAT SEAL PATH DRY
IF SIG(1013) GOTO 21 ;AUTO REPEAT
;
; IF HEATING ON OFF OR PUMP ON OFF CALL START UP
IF SIG(-1307) OR SIG(-1306) THEN
CALL sd1_startup
END
;
; IF PURGE REQUEST CALL SD1 PURGE
IF SIG(1309) THEN; PURGE REQUEST
CALL sd1_purge; CALL PURGE
END
;
; IF HEATING ON OFF OR PUMP ON OFF OR GENERAL FAULT
; OR PURGE REQUEST GOTO SD1 PRE PROCESS
IF SIG(-1307) OR SIG(-1306) OR SIG(1312) OR SIG(1309) THEN;
PULSE 312,2; ERROR ACKNOWLEDGE
GOTO 305;SD1 PRE PROCESS
END
;
; SET PROGRAM TO SEAL CONTROLLER
BITS 321,8 = 10 ;SELECT SEALER PG
;
; WAIT PROGRAM ACKNOWLAGE FROM SEAL CONTROLLER
WAIT BITS(1321,8)==10 ;SEALER PG ACK
;
; SET PARAMATER BITS TO SEAL CONTROLLER
BITS 329,4 = 1 ;PARAM BITS BINARY
;
;*******************************************
21; COMMON PEDESTAL PROCESS 1 SD1 ADHESIVE

[38]
CALL r1c_proc1_adh
;*******************************************
;
SIGNAL -314 ;CYCLE START OFF
SIGNAL 315 ;CYCLE STOP ON
;
;WAIT MATERIAL APP. O.K. OR GENERAL FAULT OR DRYCYCLE
WAIT SIG(1314) OR SIG(1312) OR SIG(1013);
;
SIGNAL -315 ;CYCLE STOP OFF
BITS 329,4 = 0 ; RESET PARAM BINNARY 0
BITS 321,8 = 0 ; RESET PROGRAM BINNARY 0
;
; IF GENERAL FAULT AND NOT DRYCYCLE
IF SIG(1312) AND SIG(-1013) THEN; IF GENERAL FAULT THEN
; CALL R1T PROCESS 1 SHOW PART
CALL r1c_proc1_showp
IF SIG(1338) GOTO 305; REJECT/RESEAL(PLC)
END;
;
CALL proccomp(1) ; SET PROCESS 1 COMPLETE
;
;************************************************
; MOVES TO CAMERA POSITIONS
;
; AT PROC 1 CAMERA POSITION 1
JOINT SPEED7 ACCU0 TIMER0 TOOL1 WORK0 CLAMP1 (OFF,0,0,O) 2 (OFF,0,0,O) OX= WX=
#[57.086,-27.971,-13.157,-99.588,-51.903,113.1] ;
;
; PROC 1 1ST CAMERA TRIGGER
CALL reporeq(1); WAIT FOR CAMERA TRIGGER (PLC)
;
; IF SEAL REJECT/RESEAL (PLC), RESTART SEAL PROCCESS
IF SIG(1338) Then; REJECT/RESEAL
; IF ADDITION MOVES NEEDED TO GET BACK TO START
; OF SEAL PROCESS ADD THEM HERE
GOTO 305; START OF SEAL PROCESS
END; SEAL REJECT/RESEAL (PLC)
;
LINEAR SPEED7 ACCU1 TIMER0 TOOL1 WORK0 CLAMP1 (OFF,0,0,O) 2 (OFF,0,0,O) OX= WX=
#[57.086,-27.971,-13.157,-99.588,-51.903,113.1] ;
JOINT SPEED7 ACCU2 TIMER0 TOOL1 WORK0 CLAMP1 (OFF,0,0,O) 2 (OFF,0,0,O) OX= WX=
#[72.408,-33.066,-10.646,-80.623,4.8213,39.66] ;
JOINT SPEED7 ACCU2 TIMER0 TOOL1 WORK0 CLAMP1 (OFF,0,0,O) 2 (OFF,0,0,O) OX= WX=
#[77.968,-23.288,-33.072,-61.884,60.869,-39.176] ;
;
;*********************************************
40;CONTINUE TO DROP 1
;
CALL enttool(2); REQUEST TO ENTER TOOL 2 RFF-020
;
; ENTER ZONE 7 w/RFF_020_02 ZONE 7
CALL entzone(7); ENTER ZONE 7 w/RFF_020_01 ZONE 7
;

[39]
JOINT SPEED9 ACCU3 TIMER0 TOOL2 WORK0 CLAMP1 (OFF,0,0,O) 2 (OFF,0,0,O) OX= WX= #[-
50.922,36.483,14.28,-103.95,93.807,0.76673] ;
JOINT SPEED5 ACCU3 TIMER0 TOOL2 WORK0 CLAMP1 (OFF,0,0,O) 2 (OFF,0,0,O) OX= WX= #[-
54.082,57.654,6.9336,-104.48,92.385,6.5018] ;
;
; BEFORE DROP 1 RRF-020
LINEAR SPEED5 ACCU1 TIMER0 TOOL2 WORK0 CLAMP1 (OFF,0,0,O) 2 (OFF,0,0,O) OX= WX= #[-
54.136,58.54,-9.5046,-104.56,88.184,-9.3945] ;
;
; AT DROP 1 RRF-020
LINEAR SPEED3 ACCU0 TIMER0 TOOL2 WORK0 CLAMP1 (OFF,0,0,O) 2 (OFF,0,0,O) OX= WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[-54.202,59.686,-13.091,-104.37,87.111,-13.053] ;Drop 1
;
SIGNAL 214 ;ROBOT AT DROP OFF POSITION 1
;
CALL reporeq(2); POSITIVE HAND OFF, TOOLING CHECK
;
CALL cylopn_multiv_c(1,2,3,0,0,0,0,0,0,0,1);VALVE OPEN 1-3 / TOOL 1
;
SIGNAL (-214) ;ROBOT AT DROP OFF POSITION 1 OFF
;
; ABOVE DROP 1 RFF-020
LINEAR SPEED3 ACCU0 TIMER0 TOOL2 WORK0 CLAMP1 (OFF,0,0,O) 2 (OFF,0,0,O) OX= WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[-54.134,58.233,-8.6547,-104.58,88.402,-8.5725] ;Drop 1 Depart
;
CALL exttool(1); REQUEST TO EXIT TOOL 1 RFF-015
;
LINEAR SPEED7 ACCU2 TIMER0 TOOL1 WORK0 CLAMP1 (OFF,0,0,O) 2 (OFF,0,0,O) OX= WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[-51.479,57.249,2.6106,-104.52,93.818,1.661] ;
LINEAR SPEED9 ACCU4 TIMER0 TOOL1 WORK0 CLAMP1 (OFF,0,0,O) 2 (OFF,0,0,O) OX= WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[-49.601,12.611,11.721,-102.46,89.803,3.4638] ;
;
JOINT SPEED9 ACCU4 TIMER0 TOOL1 WORK0 CLAMP1 (OFF,0,0,O) 2 (OFF,0,0,O) OX= WX= #[-
47.581,-13.861,17.319,-103.29,93.55,178.61] ;
;
SIGNAL (86) ;CLEAR TOOL 2 RRF-020
;
; EXIT ZONE 7 w/RFF_020_02 ZONE 7
CALL extzone(7); EXIT ZONE 7 w/RFF_020_01 ZONE 7
;
;*********************************************
12;RETURN TO HOME LABEL
;
CALL mov_home;MOVE TO HOME
;

5.4.5 Pedestal Proc 1 SD1 Adhesive Example


;************************************************
; COMPANY : RIVIAN
; PROGRAM : r1c_proc1_adh(), PEDESTAL PROC 1 SD1 ADHESIVE EXAMPLE
; REVISED LAST: 05/13/2021 REV 01
; Produced by : RIVIAN KAWASAKI ROBOTICS DEV
;************************************************

[40]
;
; CYCLE START TO SD1 CONTROLLER
SIGNAL 314; CYCLE START
;
; WAIT READY FOR APP. (SD1) OR DRYCYCLE(PLC)
WAIT SIG(1318) OR SIG(1013);
;
; SD1 IN SEALANT CYCLE (PLC)
SIGNAL 701; SD1 IN SEALANT CYCLE
;
FLIN SPEED5 ACCU2 TIMER0 TOOL2 WORK0 CLAMP1 (OFF,0,0,O) 2 (OFF,0,0,O) OX= WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[65.311,-2.1849,-41.575,-46.545,57.629,-54.021] ;
FLIN SPEED5 ACCU2 TIMER0 TOOL2 WORK0 CLAMP1 (OFF,0,0,O) 2 (OFF,0,0,O) OX= WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[67.881,3.6149,-47.948,-33.202,70.696,-67.156] ;
FLIN SPEED5 ACCU0 TIMER0 TOOL2 WORK0 CLAMP1 (OFF,0,0,O) 2 (OFF,0,0,O) OX= WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[67.188,3.239,-46.189,-33.051,68.953,-66.422] ;
;
; SEAL SCHEDULE / GUN ON / SEQ 1 BEAD #29861-040
vbs = 7 ;cc/m - BEAD SIZE GUN 1
FLIN 200. ACCU2 TIMER0 TOOL2 WORK0 CLAMP1 (ON,0,0,O) 2 (OFF,0,0,O) OX= WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[66.809,3.7304,-46.105,-32.71,68.74,-66.61] ;29861-040
FLIN 200. ACCU2 TIMER0 TOOL2 WORK0 CLAMP1 (ON,0,0,O) 2 (OFF,0,0,O) OX= WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[66.063,5.5036,-46.338,-31.804,68.674,-67.344] ;29861-040
FLIN 200. ACCU2 TIMER0 TOOL2 WORK0 CLAMP1 (ON,0,0,O) 2 (OFF,0,0,O) OX= WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[65.343,6.7215,-46.095,-31.166,68.207,-67.665] ;29861-040
FLIN 200. ACCU2 TIMER0 TOOL2 WORK0 CLAMP1 (ON,0,0,O) 2 (OFF,0,0,O) OX= WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[64.12,8.9446,-45.668,-30.078,67.407,-68.222] ;29861-040
FLIN 200. ACCU2 TIMER0 TOOL2 WORK0 CLAMP1 (ON,0,0,O) 2 (OFF,0,0,O) OX= WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[59.228,18.433,-42.604,-25.902,63.054,-70.051] ;29861-040
FLIN 200. ACCU3 TIMER0 TOOL2 WORK0 CLAMP1 (ON,0,0,O) 2 (OFF,0,0,O) OX= WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[58.98,18.133,-42.751,-25.618,63.107,-70.307] ;29861-040
;
; SEAL SCHEDULE / GUN OFF
;
FLIN 200. ACCU3 TIMER0 TOOL2 WORK0 CLAMP1 (OFF,0,0,O) 2 (OFF,0,0,O) OX= WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[58.88,18.015,-42.808,-25.504,63.127,-70.408] ;ADHESIVE BEAD1
FLIN 200. ACCU0 TIMER0 TOOL2 WORK0 CLAMP1 (OFF,0,0,O) 2 (OFF,0,0,O) OX= WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[57.389,18.132,-42.772,-24.069,62.66,-71.449] ;ADHESIVE BEAD1
;
; SEAL SCHEDULE / GUN ON / SEQ 2 BEAD #29861-041
vbs = 7 ;cc/m - BEAD SIZE GUN 1
;
FLIN 200. ACCU2 TIMER0 TOOL2 WORK0 CLAMP1 (ON,0,0,O) 2 (OFF,0,0,O) OX= WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[57.293,18.1,-42.737,-24.077,62.627,-71.433] ;29861-041
FLIN 200. ACCU2 TIMER0 TOOL2 WORK0 CLAMP1 (ON,0,0,O) 2 (OFF,0,0,O) OX= WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[56.714,17.902,-42.807,-24.062,62.691,-71.465] ;29861-041
;
; SEAL SCHEDULE / GUN OFF
;
FLIN 200. ACCU2 TIMER0 TOOL2 WORK0 CLAMP1 (OFF,0,0,O) 2 (OFF,0,0,O) OX= WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[56.618,17.902,-42.807,-24.062,62.691,-71.465] ;
FLIN 200. ACCU2 TIMER0 TOOL2 WORK0 CLAMP1 (OFF,0,0,O) 2 (OFF,0,0,O) OX= WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[56,17.387,-42.984,-24.025,62.853,-71.546] ;
;

[41]
; SEAL SCHEDULE / GUN ON / SEQ 3 BEAD #29861-047
vbs = 7 ;cc/m - BEAD SIZE GUN 1
;
FLIN 200. ACCU2 TIMER0 TOOL2 WORK0 CLAMP1 (ON,0,0,O) 2 (OFF,0,0,O) OX= WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[55.826,17.428,-42.984,-24.025,62.853,-71.546] ;29861-047
FLIN 200. ACCU2 TIMER0 TOOL2 WORK0 CLAMP1 (ON,0,0,O) 2 (OFF,0,0,O) OX= WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[55.459,17.1,-43.026,-24.025,62.853,-71.546] ;29861-047
;
; SEAL SCHEDULE / GUN OFF
;
FLIN 200. ACCU2 TIMER0 TOOL2 WORK0 CLAMP1 (OFF,0,0,O) 2 (OFF,0,0,O) OX= WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[55.272,16.997,-43.06,-23.827,62.828,-71.701] ;
FLIN 200. ACCU2 TIMER0 TOOL2 WORK0 CLAMP1 (OFF,0,0,O) 2 (OFF,0,0,O) OX= WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[52.581,15.685,-43.445,-18.863,61.95,-75.467] ;
;
; SEAL SCHEDULE / GUN ON / SEQ 4 BEAD #29861-048
vbs = 6 ;cc/m - BEAD SIZE GUN 1
FLIN 200. ACCU2 TIMER0 TOOL2 WORK0 CLAMP1 (ON,0,0,O) 2 (OFF,0,0,O) OX= WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[52.637,15.42,-43.585,-18.895,62.113,-75.481] ;29861-048
FLIN 200. ACCU2 TIMER0 TOOL2 WORK0 CLAMP1 (ON,0,0,O) 2 (OFF,0,0,O) OX= WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[54.358,3.6713,-46.169,-20.251,64.955,-75.162] ;29861-048
FLIN 200. ACCU2 TIMER0 TOOL2 WORK0 CLAMP1 (ON,0,0,O) 2 (OFF,0,0,O) OX= WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[55.331,0.3512,-46.411,-21.206,65.421,-74.563] ;29861-048
;
; SEAL SCHEDULE / GUN OFF
;
FLIN 200. ACCU2 TIMER0 TOOL2 WORK0 CLAMP1 (OFF,0,0,O) 2 (OFF,0,0,O) OX= WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[55.46,0.0078418,-46.446,-21.329,65.498,-74.492] ;
FLIN 200. ACCU2 TIMER0 TOOL2 WORK0 CLAMP1 (OFF,0,0,O) 2 (OFF,0,0,O) OX= WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[55.703,-1.0736,-46.434,-21.578,65.548,-74.316] ;
;
; SEAL SCHEDULE / GUN ON / SEQ 5 BEAD #29861-046
vbs = 7 ;cc/m - BEAD SIZE GUN 1
FLIN 200. ACCU1 TIMER0 TOOL2 WORK0 CLAMP1 (ON,0,0,O) 2 (OFF,0,0,O) OX= WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[55.82,-1.5148,-46.373,-21.708,65.522,-74.208] ;29861-046
FLIN 200. ACCU1 TIMER0 TOOL2 WORK0 CLAMP1 (ON,0,0,O) 2 (OFF,0,0,O) OX= WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[56.204,-2.896,-46.313,-22.108,65.566,-73.914] ;29861-046
;
; SEAL SCHEDULE / GUN OFF
FLIN 200. ACCU2 TIMER0 TOOL2 WORK0 CLAMP1 (OFF,0,0,O) 2 (OFF,0,0,O) OX= WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[56.496,-3.5111,-46.27,-22.41,65.601,-73.691] ;
FLIN 200. ACCU2 TIMER0 TOOL2 WORK0 CLAMP1 (OFF,0,0,O) 2 (OFF,0,0,O) OX= WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[57.449,-1.7037,-46.487,-23.338,66.036,-73.111] ;
;
; SEAL SCHEDULE / GUN ON / SEQ 6 BEAD #29861-044
vbs = 7 ;cc/m - BEAD SIZE GUN 1
FLIN 200. ACCU1 TIMER0 TOOL2 WORK0 CLAMP1 (ON,0,0,O) 2 (OFF,0,0,O) OX= WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[57.811,-1.5375,-46.485,-23.702,66.134,-72.86] ;29861-044
FLIN 200. ACCU2 TIMER0 TOOL2 WORK0 CLAMP1 (ON,0,0,O) 2 (OFF,0,0,O) OX= WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[56.611,0.44119,-46.474,-22.491,65.82,-73.698] ;29861-044
FLIN 200. ACCU2 TIMER0 TOOL2 WORK0 CLAMP1 (ON,50,0,O) 2 (OFF,0,0,O) OX= WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[53.641,10.175,-45.091,-19.688,63.783,-75.282] ;29861-044
;
; SEAL SCHEDULE / GUN OFF

[42]
;
FLIN 200. ACCU2 TIMER0 TOOL2 WORK0 CLAMP1 (OFF,0,0,O) 2 (OFF,0,0,O) OX= WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[53.486,10.733,-44.938,-19.553,63.604,-75.34] ;
FLIN 200. ACCU2 TIMER0 TOOL2 WORK0 CLAMP1 (OFF,0,0,O) 2 (OFF,0,0,O) OX= WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[59.349,0.20669,-47.038,-25.133,67.094,-72.073] ;
FLIN 200. ACCU2 TIMER0 TOOL2 WORK0 CLAMP1 (OFF,0,0,O) 2 (OFF,0,0,O) OX= WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[60.17,-0.47835,-46.229,-26.104,66.578,-71.123] ;
;
; SEAL SCHEDULE / GUN ON / SEQ 7 BEAD #29861-043
vbs = 7 ;cc/m - BEAD SIZE GUN 1
FLIN 200. ACCU2 TIMER0 TOOL2 WORK0 CLAMP1 (ON,0,0,O) 2 (OFF,0,0,O) OX= WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[59.738,0.46995,-46.171,-25.694,66.368,-71.373] ;29861-043
FLIN 200. ACCU2 TIMER0 TOOL2 WORK0 CLAMP1 (ON,0,0,O) 2 (OFF,0,0,O) OX= WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[58.534,3.3777,-45.858,-24.536,65.787,-72.088] ;29861-043
FLIN 200. ACCU2 TIMER0 TOOL2 WORK0 CLAMP1 (ON,0,0,O) 2 (OFF,0,0,O) OX= WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[57.354,6.6883,-45.487,-23.416,65.113,-72.749] ;29861-043
; SEAL SCHEDULE / GUN OFF
;
FLIN 200. ACCU2 TIMER0 TOOL2 WORK0 CLAMP1 (OFF,0,0,O) 2 (OFF,0,0,O) OX= WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[57.252,7.0003,-45.444,-23.321,65.045,-72.802] ;
FLIN 200. ACCU2 TIMER0 TOOL2 WORK0 CLAMP1 (OFF,0,0,O) 2 (OFF,0,0,O) OX= WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[63.212,2.0318,-46.098,-29.11,67.469,-69.045] ;
;
; SEAL SCHEDULE / GUN ON / SEQ 8 BEAD #29861-042
vbs = 7 ;cc/m - BEAD SIZE GUN 1
FLIN 200. ACCU2 TIMER0 TOOL2 WORK0 CLAMP1 (ON,0,0,O) 2 (OFF,0,0,O) OX= WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[62.931,2.5755,-46.141,-28.836,67.377,-69.233] ;29861-042
FLIN 200. ACCU2 TIMER0 TOOL2 WORK0 CLAMP1 (ON,0,0,O) 2 (OFF,0,0,O) OX= WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[61.771,5.1888,-45.765,-27.769,66.698,-69.829] ;29861-042
FLIN 200. ACCU2 TIMER0 TOOL2 WORK0 CLAMP1 (ON,0,0,O) 2 (OFF,0,0,O) OX= WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[60.565,8.035,-45.378,-26.872,66.037,-70.307] ;29861-042
;
; SEAL SCHEDULE / GUN OFF
;
FLIN 200. ACCU2 TIMER0 TOOL2 WORK0 CLAMP1 (OFF,0,0,O) 2 (OFF,0,0,O) OX= WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[60.451,8.3354,-45.329,-26.769,65.957,-70.361] ;
FLIN SPEED5 ACCU0 TIMER0 TOOL2 WORK0 CLAMP1 (OFF,0,0,O) 2 (OFF,0,0,O) OX= WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[25.637,32.986,-35.989,42.623,64.475,-126.4] ;
;
; SD1 IN SEALANT CYCLE OFF (PLC)
SIGNAL -701; SD1 IN SEALANT CYCLE OFF
;
FLIN SPEED7 ACCU2 TIMER0 TOOL2 WORK0 CLAMP1 (OFF,0,0,O) 2 (OFF,0,0,O) OX= WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[30.693,52.389,-18.153,44.868,48.345,-130.31] ;
JOINT SPEED7 ACCU4 TIMER0 TOOL2 WORK0 CLAMP1 (OFF,0,0,O) 2 (OFF,0,0,O) OX= WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[66.075,-11.065,-39.359,-51.779,49.351,-53.499] ;
;

5.4.6 Pedestal Proc 1 SD1 Show Part Example


;************************************************
; COMPANY : RIVIAN
; PROGRAM : r1t_proc1_showp() ;PEDESTAL PROC 1 SHOW PART EXAMPLE
; REVISED LAST: 04/12/2023 REV 02

[43]
; Produced by : RIVIAN KAWASAKI ROBOTICS DEV
;************************************************
; MOVE TO A POSITION THAT A VISUAL INSPECTION
; OF THE SEAL PATH CAN BE MADE FROM OUTSIDE
; THE FENCE AND WAIT ON A ACCEPT OR REJECT/RESEAL
; FROM THE PLC OF I/F SCREEN
;
JOINT SPEED5 ACCU2 TIMER0 TOOL2 WORK0 CLAMP1 (OFF,0,0,0) 2 (OFF,0,0,0) OX= WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[78.56,-2.1845,-41.574,-46.544,57.63,-54.022] ;SD1 COMMON
JOINT SPEED4 ACCU2 TIMER0 TOOL2 WORK0 CLAMP1 (OFF,0,0,0) 2 (OFF,0,0,0) OX= WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[89.043,-2.1845,-35.962,-52.553,57.63,-54.022] ;
JOINT SPEED4 ACCU2 TIMER0 TOOL2 WORK0 CLAMP1 (OFF,0,0,O) 2 (OFF,0,0,O) OX= WX=
#[93.784,-25.576,-16.615,-75.484,22.404,-54.022] ;
;
; AT VISIAL INSPECTION POSITION SD1
LINEAR SPEED2 ACCU0 TIMER0 TOOL2 WORK0 CLAMP1 (OFF,0,0,0) 2 (OFF,0,0,0) OX= WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[90.479,-37.659,-4.8105,-75.484,10.189,-96.754] ;
;
; SEND SIGNAL TO PLC SO THEY KNOW WE ARE AT
; VISIUAL INSPECTION POSITION
SIGNAL 700; AT VISUAL INSPECTION
;
; ACCEPT OR REJECT/RESEAL FROM PLC OR I/F PANEL PB
WAIT SIG(1337) OR SIG(1338) ;
;
SIGNAL -700; AT VISUAL INSPECTION OFF
;
;MOVES BACK TO END OF PROCESS
JOINT SPEED4 ACCU2 TIMER0 TOOL2 WORK0 CLAMP1 (OFF,0,0,0) 2 (OFF,0,0,0) OX= WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[93.784,-25.576,-16.615,-75.484,22.404,-54.022] ;
JOINT SPEED4 ACCU2 TIMER0 TOOL2 WORK0 CLAMP1 (OFF,0,0,0) 2 (OFF,0,0,0) OX= WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[89.043,-2.1847,-35.962,-52.553,57.63,-54.022] ;
JOINT SPEED5 ACCU2 TIMER0 TOOL2 WORK0 CLAMP1 (OFF,0,0,0) 2 (OFF,0,0,0) OX= WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[65.311,-2.1845,-41.574,-46.544,57.63,-54.022] ;SD1 COMMON
;
; GENERAL FAULT ERROR ACKNOWLEDGE
PULSE 312,1; ERROR ACKNOWLEDGE
;
; IF HEATING ON OFF OR PUMP ON OFF CALL START UP
IF SIG(-1307) OR SIG(-1306) THEN
CALL sd1_startup
END
;
; IF PURGE REQUEST CALL PURGE
IF SIG(1309) THEN; PURGE REQUEST
;ADDITIONAL MOVES TO PURGE POSITION HERE
;AT Purge Position
;******************************
CALL sd1_purge; CALL PURGE
;******************************
;MOVES BACK TO END OF PROCESS
END
;
; IF HEATING ON OFF OR PUMP ON OFF OR GENERAL FAULT

[44]
; OR PURGE REQUEST GOTO RESTART SEAL PROCCESS
IF SIG(-1307) OR SIG(-1306) OR SIG(1312) OR SIG(1309) THEN;
PULSE 312,2; ERROR ACKNOWLEDGE
GOTO 312;SD1 PRE PROCESS
END
;
; IF SEAL REJECT/RESEAL (PLC), RESTART SEAL PROCCESS
IF SIG(1338) Then; REJECT/RESEAL
; IF ADDITION MOVES NEEDED TO GET BACK TO START
; OF SEAL PROCESS ADD THEM HERE
END; SEAL REJECT/RESEAL (PLC)
;

5.4.7 Main Dual Carried SD2 Example


;************************************************
; COMPANY : RIVIAN
; PROGRAM : pg20, R1T MAIN DUAL CARRIED SD1 SD2 EXAMPLE
; REVISED LAST: 05/10/2021 REV 01
; Produced by : RIVIAN KAWASAKI ROBOTICS DEV
;************************************************
;
CALL pgverify(20); PROGRAM VERIFY
;
CALL mov_home; MOVE TO HOME
;
;************************************************
305; SD1 PRE PROCESS
;
; IF AUTO REPEAT SEAL PATH DRY
IF SIG(1013) GOTO 102 ;AUTO REPEAT
;
; IF HEATING ON OFF OR PUMP ON OFF CALL START UP
IF SIG(-1307) OR SIG(-1306) THEN
CALL sd1_startup
END
; IF PURGE REQUEST CALL SD1 PURGE
IF SIG(1309) THEN; PURGE REQUEST
; IF ADDITION MOVES NEEDED TO GET TO PURGE
; POSITION ADD THEM HERE
CALL sd1_purge; CALL PURGE
; IF ADDITION MOVES NEEDED TO GET FROM PURGE
; TO HOME POSITION ADD THEM HERE
END
;
; IF HEATING ON OFF OR PUMP ON OFF OR GENERAL FAULT
; OR PURGE REQUEST GOTO SD1 PRE PROCESS
IF SIG(-1307) OR SIG(-1306) OR SIG(1312) OR SIG(1309) THEN;
PULSE 312,2; ERROR ACKNOWLEDGE
GOTO 305;SD1 PRE PROCESS
END
;SD1 PRE PROCESS END
;************************************************
;

[45]
;************************************************
505; SD2 PRE PROCESS
;
; IF HEATING ON OFF OR PUMP ON OFF CALL START UP
IF SIG(-1547) OR SIG(-1546) THEN
CALL sd2_startup
END
; IF PURGE REQUEST CALL SD1 PURGE
IF SIG(1549) THEN; PURGE REQUEST
; IF ADDITION MOVES NEEDED TO GET TO PURGE
; POSITION ADD THEM HERE
CALL sd2_purge; CALL PURGE
; IF ADDITION MOVES NEEDED TO GET FROM PURGE
; TO HOME POSITION ADD THEM HERE
END
;
; IF HEATING ON OFF OR PUMP ON OFF OR GENERAL FAULT
; OR PURGE REQUEST GOTO SD1 PRE PROCESS
IF SIG(-1547) OR SIG(-1546) OR SIG(1552) OR SIG(1549) THEN;
PULSE 552,2; ERROR ACKNOWLEDGE
GOTO 505;SD2 PRE PROCESS
END
102;SD2 PRE PROCESS END
;************************************************
;
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 EXIT POUNCE LOOP
;*******************************************************
;SEALER PROCESS 1 (ADHESIVE) CO-OP RFM 038 01
;
CALL enttool(1);ENTER TOOL 1 RFM 038 01 CO-OP 1ST POSITION
;
CALL entzone(2);ENTER ZONE 2 W/RFM 038 01 ZONE 5
CALL entzone(8);ENTER ZONE 8 W/RFM 040 07 ZONE 6
;
;*******************************************
20; SET PROGRAM TO SEAL CONTROLLER
BITS 321,8 = 20 ;SELECT SEALER PG
;
; WAIT PROGRAM ACKNOWLAGE FROM SEAL CONTROLLER
WAIT BITS(1321,8)==20 ;SEALER PG ACK

[46]
;
; SET PARAMATER BITS TO SEAL CONTROLLER
BITS 329,4 = 1 ;PART ID BINARY
;
;*******************************************
; REAR OF PART (ADHESIVE)
CALL r1t_proc1_sd1
;*******************************************
;
SIGNAL -314 ;CYCLE START OFF
SIGNAL 315 ;CYCLE STOP ON
;
;WAIT MATERIAL APP. O.K. OR GENERAL FAULT OR DRYCYCLE
WAIT SIG(1314) OR SIG(1312) OR SIG(1013);
;
SIGNAL -315 ;CYCLE STOP OFF
BITS 329,4 = 0 ; PART ID BINNARY 0
BITS 321,8 = 0 ;SELECT SEALER PG 0
;
; IF GENERAL FAULT AND NOT DRYCYCLE
IF SIG(1312) AND SIG(-1013) THEN;
CALL r1t_proc1_rfr; RIVIAN FAULT RECOVERY PROC 1
IF SIG (1338) GOTO 20; GOTO RESEAL
END; GENERAL FAULT NOT DRYCYCLE
;
CALL proccomp(1) ; SET PROCESS 1 COMPLETE
;
;MOVES TO CAMERA POSITIONS
JOINT SPEED4 ACCU0 TIMER0 TOOL1 WORK0 CLAMP1 (OFF,0,1,0) OX= WX= #[75,-
33.788,16.679,0,-89.745,-90];Clear Tool 1
;
; AT PROC 1 CAMERA POSITION 1
JOINT SPEED9 ACCU0 TIMER0 TOOL1 WORK0 CLAMP1 (OFF,0,0,0) OX= WX=
#[27.664,51.009,16.408,1.3252,-109.84,-26.797] ;
;
; PROC 1 1ST CAMERA TRIGGER
CALL reporeq(1); WAIT FOR CAMERA TRIGGER (PLC)
;
; IF SEAL REJECT/RESEAL (PLC), RESTART SEAL PROCCESS
IF SIG(1338) Then; REJECT/RESEAL
; IF ADDITION MOVES NEEDED TO GET BACK TO START
; OF SEAL PROCESS ADD THEM HERE
GOTO 20; START OF SD1 PRE PROCESS
END; SEAL REJECT/RESEAL (PLC)
;
;************************************************
25;SEALER PROCESS 2 (SEALER) CO-OP RFM 038 01
;
; SET PROGRAM TO SEAL CONTROLLER
BITS 561,8 = 21 ;SELECT SEALER PG
;
; WAIT PROGRAM ACKNOWLAGE FROM SEAL CONTROLLER
WAIT BITS(1561,8)==21 ;SEALER PG ACK
;

[47]
; SET PARAMATER BITS TO SEAL CONTROLLER
BITS 569,4 = 1 ;PART ID BINARY
;
;*******************************************
; BOTTOM OF ROCKER (SEALER)
CALL r1t_proc2_sd2
;*******************************************
;
SIGNAL -554 ;CYCLE START OFF
SIGNAL 555 ;CYCLE STOP ON
;
;WAIT MATERIAL APP. O.K. OR GENERAL FAULT OR DRYCYCLE
WAIT SIG(1554) OR SIG(1552) OR SIG(1013);
;
SIGNAL -555 ;CYCLE STOP OFF
BITS 569,4 = 0 ; PART ID BINNARY 0
BITS 561,8 = 0 ;SELECT SEALER PG 0
;
; IF GENERAL FAULT AND NOT DRYCYCLE
IF SIG(1552) AND SIG(-1013) THEN;
CALL r1t_proc2_rfr; RIVIAN FAULT RECOVERY PROC 2
IF SIG(1338) GOTO 25; RESEAL PROCESS
END; GENERAL FAULT NOT DRYCYCLE
;
CALL proccomp(2) ; SET PROCESS 2 COMPLETE
;
; AT PROC 2 CAMERA POSITION 1
JOINT SPEED5 ACCU0 TIMER0 TOOL1 WORK0 CLAMP1 (OFF,0,0,0) 2 (OFF,0,0,O) OX= WX=
#[84.074,-47.68,-44.394,0.1013,-62.859,-0.0030391] ;
;
; PROC 2 1ST CAMERA TRIGGER
CALL reporeq(2); WAIT FOR CAMERA TRIGGER (PLC)
;
; IF SEAL REJECT/RESEAL (PLC), RESTART SEAL PROCCESS
IF SIG(1338) Then; REJECT/RESEAL
; IF ADDITION MOVES NEEDED TO GET BACK TO START
; OF SEAL PROCESS ADD THEM HERE
GOTO 25; START OF SD1 PRE PROCESS
END; SEAL REJECT/RESEAL (PLC)
;
CALL extzone(2);EXIT ZONE 2 W/RFM 038 01 ZONE 5
CALL extzone(8);EXIT ZONE 8 W/RFM 040 07 ZONE 6
;
SIGNAL 85; CLEAR TOOL 1 RFM 038 01 CO-OP 1ST POSITION
;
12; RETURN HOME LABEL
;
CALL mov_home; MOVE TO HOME
;

5.4.8 Main MH Dual Pedestal SD2 Example


;************************************************
; COMPANY : RIVIAN

[48]
; PROGRAM : pg20, R1C COMMON MAIN MH PEDESTAL SD2 EXAMPLE
; REVISED LAST: 05/13/2021 REV 01
; Produced by : RIVIAN KAWASAKI ROBOTICS DEV
;************************************************
;
CALL pgverify(20); PROGRAM VERIFY
;
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 -8 ; AT POUNCE OFF
SIGNAL -11 ; ROBOT IN PROGRAM LOOP 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 PICK PATH STATION 015
;
WAIT SIG(-1141) ; CHECK FOR NO PP #1
WAIT SIG(-1142) ; CHECK FOR NO PP #2
WAIT SIG(-1143) ; CHECK FOR NO PP #3
WAIT SIG(-1144) ; CHECK FOR NO PP #4
WAIT SIG(-1157) ; CHECK FOR NO PP #5
WAIT SIG(-1158) ; CHECK FOR NO PP #6
;
CALL cylopn_multiv_c(1,2,3,0,0,0,0,0,0,0,1);VALVE OPEN 1-3 / TOOL 1
;
CALL enttool(1); REQUEST TO ENTER TOOL 1 RFF-015
;
JOINT SPEED9 ACCU4 TIMER0 TOOL1 WORK0 CLAMP1 (OFF,0,0,O) 2 (OFF,0,0,O) OX= WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[-135.7,-45.277,81.861,8.2272,-83.614,90.854] ;
JOINT SPEED9 ACCU3 TIMER0 TOOL1 WORK0 CLAMP1 (OFF,0,0,O) 2 (OFF,0,0,O) OX= WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[-144.58,-48.107,24.076,2.091,-55.732,86.422] ;
JOINT SPEED9 ACCU2 TIMER0 TOOL1 WORK0 CLAMP1 (OFF,0,0,O) 2 (OFF,0,0,O) OX= WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[-143.13,-2.0493,-20.297,-13.717,6.5199,103.58] ;
LINEAR SPEED7 ACCU2 TIMER0 TOOL1 WORK0 CLAMP1 (OFF,0,0,O) 2 (OFF,0,0,O) OX= WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[-142.94,23.963,-21.683,-15.809,7.0542,105.52] ;
;
; ****** ABOVE PICK 1 ******
LINEAR SPEED3 ACCU1 TIMER0 TOOL1 WORK0 CLAMP1 (OFF,0,0,O) 2 (OFF,0,0,O) OX= WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[-142.98,25.532,-24.582,-10.912,9.9589,100.59] ;Pick 1 App
;
; ******* AT PICK POSITION 1 ******
LINEAR SPEED1 ACCU0 TIMER0 TOOL1 WORK0 CLAMP1 (OFF,0,0,O) 2 (OFF,0,0,O) OX= WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[-143.03,34.244,-36.603,-4.9058,21.877,94.406] ;Pick 1
;

[49]
SIGNAL 213 ;ROBOT AT PICK POSITION 1
;
WAIT SIG(1157) AND SIG(1158) OR SIG(1013) ;PP #5 #6 or AUTO REPEAT
;
CALL cylcls_multiv_c(0,0,3,0,0,0,0,0,0,0,1);CLOSES VALVE 3 / TOOL 1
;
; ABOVE PICK 1 POSITION
LINEAR SPEED3 ACCU1 TIMER0 TOOL1 WORK0 CLAMP1 (OFF,0,0,O) 2 (OFF,0,0,O) OX= WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[-143,26.396,-26.021,-9.4512,11.372,99.113] ;Pick 1 Depart
;
CALL exttool(1); REQUEST TO EXIT TOOL 1 RFF-015
;
SIGNAL -213 ;ROBOT AT PICK POSITION 1 OFF
;
LINEAR SPEED9 ACCU3 TIMER0 TOOL1 WORK0 CLAMP1 (OFF,0,0,O) 2 (OFF,0,0,O) OX= WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[-142.94,-60,-0.086366,-3.908,20.648,83.319] ;
LINEAR SPEED9 ACCU3 TIMER0 TOOL1 WORK0 CLAMP1 (OFF,0,0,O) 2 (OFF,0,0,O) OX= WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[-144.38,-59.148,4.0487,2.6336,19.259,80.073] ;
LINEAR SPEED9 ACCU3 TIMER0 TOOL1 WORK0 CLAMP1 (OFF,0,0,O) 2 (OFF,0,0,O) OX= WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[-140.08,-59.017,4.3147,-9.8522,32.461,100.25] ;
JOINT SPEED9 ACCU3 TIMER0 TOOL1 WORK0 CLAMP1 (OFF,0,0,O) 2 (OFF,0,0,O) OX= WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[-129.31,-34.787,70.715,-9.7291,25.062,107.3] ;
JOINT SPEED9 ACCU2 TIMER0 TOOL1 WORK0 CLAMP1 (OFF,0,0,O) 2 (OFF,0,0,O) OX= WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[-24.131,-41.82,81.227,-71.473,-6.1585,-11.964] ;
;
SIGNAL 85 ; CLEAR OF TOOL 1 RFF-015
;
;************************************************
305; PROCESS 2 PED SEALER 1 (ADHESIVE)
;
; IF AUTO REPEAT SEAL PATH DRY
IF SIG(1013) GOTO 21 ;AUTO REPEAT
;
; IF HEATING ON OFF OR PUMP ON OFF CALL START UP
IF SIG(-1307) OR SIG(-1306) THEN
CALL sd1_startup
END
;
; IF PURGE REQUEST CALL SD1 PURGE
IF SIG(1309) THEN; PURGE REQUEST
CALL sd1_purge; CALL PURGE
END
;
; IF HEATING ON OFF OR PUMP ON OFF OR GENERAL FAULT
; OR PURGE REQUEST GOTO SD1 PRE PROCESS
IF SIG(-1307) OR SIG(-1306) OR SIG(1312) OR SIG(1309) THEN;
PULSE 312,2; ERROR ACKNOWLEDGE
GOTO 305;SD1 PRE PROCESS
END
;
; SET PROGRAM TO SEAL CONTROLLER
BITS 321,8 = 10 ;SELECT SEALER PG
;
; WAIT PROGRAM ACKNOWLAGE FROM SEAL CONTROLLER

[50]
WAIT BITS(1321,8)==10 ;SEALER PG ACK
;
; SET PARAMATER BITS TO SEAL CONTROLLER
BITS 329,4 = 1 ;PARAM BITS BINARY
;
;*******************************************
21; PROCESS 1 USES SD1 (ADHESIVE)
CALL r1c_proc1_sd1
;*******************************************
;
SIGNAL -314 ;CYCLE START OFF
SIGNAL 315 ;CYCLE STOP ON
;
;WAIT MATERIAL APP. O.K. OR GENERAL FAULT OR DRYCYCLE
WAIT SIG(1314) OR SIG(1312) OR SIG(1013);
;
SIGNAL -315 ;CYCLE STOP OFF
BITS 329,4 = 0 ; RESET PARAM BINNARY 0
BITS 321,8 = 0 ; RESET PROGRAM BINNARY 0
;
; IF GENERAL FAULT AND NOT DRYCYCLE
IF SIG(1312) AND SIG(-1013) THEN; IF GENERAL FAULT THEN
CALL r1c_proc1_showp
IF SIG(1338) GOTO 305; REJECT/RESEAL(PLC)
END;
;
CALL proccomp(1) ; SET PROCESS 1 COMPLETE
;
;************************************************
; MOVES TO CAMERA POSITIONS
;
; AT PROC 1 CAMERA POSITION 1
JOINT SPEED7 ACCU0 TIMER0 TOOL1 WORK0 CLAMP1 (OFF,0,0,O) 2 (OFF,0,0,O) OX= WX=
#[57.086,-27.971,-13.157,-99.588,-51.903,113.1] ;
;
; PROC 1 1ST CAMERA TRIGGER
CALL reporeq(1); WAIT FOR CAMERA TRIGGER (PLC)
;
; IF SEAL REJECT/RESEAL (PLC), RESTART SEAL PROCCESS
IF SIG(1338) Then; REJECT/RESEAL
; IF ADDITION MOVES NEEDED TO GET BACK TO START
; OF SEAL PROCESS ADD THEM HERE
GOTO 305; START OF SEAL PROCESS
END; SEAL REJECT/RESEAL (PLC)
;
LINEAR SPEED7 ACCU1 TIMER0 TOOL1 WORK0 CLAMP1 (OFF,0,0,O) 2 (OFF,0,0,O) OX= WX=
#[57.086,-27.971,-13.157,-99.588,-51.903,113.1] ;
JOINT SPEED7 ACCU2 TIMER0 TOOL1 WORK0 CLAMP1 (OFF,0,0,O) 2 (OFF,0,0,O) OX= WX=
#[72.408,-33.066,-10.646,-80.623,4.8213,39.66] ;
JOINT SPEED7 ACCU2 TIMER0 TOOL1 WORK0 CLAMP1 (OFF,0,0,O) 2 (OFF,0,0,O) OX= WX=
#[77.968,-23.288,-33.072,-61.884,60.869,-39.176] ;
;
;************************************************
505; PROCESS 2 PED SEALER SD2 (SEALER)

[51]
;
; IF AUTO REPEAT SEAL PATH DRY
IF SIG(1013) GOTO 19 ;AUTO REPEAT
;
; IF HEATING ON OFF OR PUMP ON OFF CALL START UP
IF SIG(-1547) OR SIG(-1546) THEN
CALL sd2_startup
END
;
; IF PURGE REQUEST CALL SD1 PURGE
IF SIG(1549) THEN; PURGE REQUEST
CALL sd2_purge; CALL PURGE
END
;
; IF HEATING ON OFF OR PUMP ON OFF OR GENERAL FAULT
; OR PURGE REQUEST GOTO SD2 PRE PROCESS
IF SIG(-1547) OR SIG(-1546) OR SIG(1552) OR SIG(1549) THEN;
PULSE 552,2; ERROR ACKNOWLEDGE
GOTO 505;SD2 PRE PROCESS
END
;
; SET PROGRAM TO SEAL CONTROLLER
BITS 561,8 = 10 ;SELECT SEALER PG
;
; WAIT PROGRAM ACKNOWLAGE FROM SEAL CONTROLLER
WAIT BITS(1561,8)==10 ;SEALER PG ACK
;
; SET PARAMATER BITS TO SEAL CONTROLLER
BITS 569,4 = 1 ;PARAM BITS BINARY
;
;*******************************************
19; PROCESS 2 USES SD2 (SEALER)
CALL r1c_proc2_sd2
;*******************************************
;
SIGNAL -554 ;CYCLE START OFF
SIGNAL 555 ;CYCLE STOP ON
;
;WAIT MATERIAL APP. O.K. OR GENERAL FAULT OR DRYCYCLE
WAIT SIG(1554) OR SIG(1552) OR SIG(1013);
;
SIGNAL -555 ;CYCLE STOP OFF
BITS 569,4 = 0 ; RESET PARAM BINNARY 0
BITS 561,8 = 0 ; RESET PROGRAM BINNARY 0
;
; IF GENERAL FAULT AND NOT DRYCYCLE
IF SIG(1552) AND SIG(-1013) THEN; IF GENERAL FAULT THEN
CALL r1c_proc2_showp
IF SIG(1338) GOTO 505; REJECT/RESEAL(PLC)
END;
;
CALL proccomp(2) ; SET PROCESS 2 COMPLETE
;
;************************************************

[52]
; MOVES TO CAMERA POSITIONS
;
; AT PROC 2 CAMERA POSITION 1
JOINT SPEED9 ACCU0 TIMER0 TOOL1 WORK0 CLAMP1 (OFF,0,0,O) 2 (OFF,0,0,O) OX= WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[32.846,-13.224,10.387,-79.907,-75.024,-91.726] ;Vision Check
Approach 1
;
; PROC 2 1ST CAMERA TRIGGER
CALL reporeq(2); WAIT FOR CAMERA TRIGGER (PLC)
;
; IF SEAL REJECT/RESEAL (PLC), RESTART SEAL PROCCESS
IF SIG(1338) Then; REJECT/RESEAL
; IF ADDITION MOVES NEEDED TO GET BACK TO START
; OF SEAL PROCESS ADD THEM HERE
GOTO 505; START OF SEAL PROCESS
END; SEAL REJECT/RESEAL (PLC)
;
JOINT SPEED9 ACCU0 TIMER0 TOOL1 WORK0 CLAMP1 (OFF,0,0,O) 2 (OFF,0,0,O) OX= WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[7.5764,-38.945,75.656,-44.911,20.257,-39.037] ;
;
CALL extzone(1); EXIT Z1 W/ RFF-010-01 Z6
;
;*********************************************
40;CONTINUE TO DROP 1
;
CALL enttool(2); REQUEST TO ENTER TOOL 2 RFF-020
;
; ENTER ZONE 7 w/RRF_020_01 ZONE 7
CALL entzone(7); ENTER ZONE 7 w/RRF_020_02 ZONE 7
;
JOINT SPEED9 ACCU3 TIMER0 TOOL2 WORK0 CLAMP1 (OFF,0,0,O) 2 (OFF,0,0,O) OX= WX= #[-
50.922,36.483,14.28,-103.95,93.807,0.76673] ;
JOINT SPEED5 ACCU3 TIMER0 TOOL2 WORK0 CLAMP1 (OFF,0,0,O) 2 (OFF,0,0,O) OX= WX= #[-
54.082,57.654,6.9336,-104.48,92.385,6.5018] ;
;
; BEFORE DROP 1 RRF-020
LINEAR SPEED5 ACCU1 TIMER0 TOOL2 WORK0 CLAMP1 (OFF,0,0,O) 2 (OFF,0,0,O) OX= WX= #[-
54.136,58.54,-9.5046,-104.56,88.184,-9.3945] ;
;
; AT DROP 1 RRF-020
LINEAR SPEED3 ACCU0 TIMER0 TOOL2 WORK0 CLAMP1 (OFF,0,0,O) 2 (OFF,0,0,O) OX= WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[-54.202,59.686,-13.091,-104.37,87.111,-13.053] ;Drop 1
;
SIGNAL 214 ;ROBOT AT DROP OFF POSITION 1
;
CALL cylopn_multiv_c(1,2,3,0,0,0,0,0,0,0,1);VALVE OPEN 1-3 / TOOL 1
;
; ABOVE DROP 1 RFF-020
LINEAR SPEED3 ACCU0 TIMER0 TOOL2 WORK0 CLAMP1 (OFF,0,0,O) 2 (OFF,0,0,O) OX= WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[-54.134,58.233,-8.6547,-104.58,88.402,-8.5725] ;Drop 1 Depart
;
CALL reporeq(3); POSITIVE HAND OFF, TOOLING CHECK
;
SIGNAL (-214) ;ROBOT AT DROP OFF POSITION 1 OFF

[53]
;
LINEAR SPEED7 ACCU2 TIMER0 TOOL1 WORK0 CLAMP1 (OFF,0,0,O) 2 (OFF,0,0,O) OX= WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[-51.479,57.249,2.6106,-104.52,93.818,1.661] ;
LINEAR SPEED9 ACCU4 TIMER0 TOOL1 WORK0 CLAMP1 (OFF,0,0,O) 2 (OFF,0,0,O) OX= WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[-49.601,12.611,11.721,-102.46,89.803,3.4638] ;
;
JOINT SPEED9 ACCU4 TIMER0 TOOL1 WORK0 CLAMP1 (OFF,0,0,O) 2 (OFF,0,0,O) OX= WX= #[-
47.581,-13.861,17.319,-103.29,93.55,178.61] ;
;
SIGNAL (86) ;CLEAR TOOL 2 RRF-020
;
; EXIT ZONE 7 w/RRF_020_01 ZONE 7
CALL extzone(7); EXIT ZONE 7 w/RRF_020_02 ZONE 7
;
;*********************************************
12; RETURN TO HOME LABEL
;
CALL mov_home;MOVE TO HOME
;

5.4.9 Carried Proc 2 SD2 Sealer Example


;************************************************
; COMPANY : RIVIAN
; PROGRAM : r1t_proc2_seal() ;CARRIED PROC 2 SD2 SEALER EXAMPLE
; REVISED LAST: 05/10/2021 REV 01
; Produced by : RIVIAN KAWASAKI ROBOTICS DEV
;************************************************
;
;CO-OP WITH RFM 037 01 IN 1ST POSITION
;
; CYCLE START TO SD2 CONTROLLER
SIGNAL 554; CYCLE START
;
; WAIT READY FOR APP. (SD2) OR DRYCYCLE (PLC)
WAIT SIG(1558) OR SIG(1013);
;
;SD2 IN SEALANT CYCLE (PLC)
SIGNAL 702; SD2 IN SEALANT CYCLE ON
;
JOINT SPEED8 ACCU1 TIMER0 TOOL1 WORK0 CLAMP1 (OFF,0,0,0) 2 (OFF,0,0,O) OX= WX=
#[28.819,-16.734,22.371,10.843,-39.916,19.034] ;
JOINT SPEED8 ACCU3 TIMER0 TOOL1 WORK0 CLAMP1 (OFF,0,0,0) 2 (OFF,0,0,O) OX= WX= #[-
41.132,-36.825,-12.451,-39.334,-83.052,79.502] ;
JOINT SPEED6 ACCU2 TIMER0 TOOL1 WORK0 CLAMP1 (OFF,0,0,0) 2 (OFF,0,0,O) OX= WX= #[-
61.332,-28.606,-15.576,-36.099,-79.626,99.718] ;
JOINT SPEED6 ACCU2 TIMER0 TOOL1 WORK0 CLAMP1 (OFF,0,0,0) 2 (OFF,0,0,O) OX= WX= #[-
80.109,-11.003,-17.511,-55.846,-64.868,151.83] ;
JOINT SPEED2 ACCU1 TIMER0 TOOL1 WORK0 CLAMP1 (OFF,0,0,0) 2 (OFF,0,0,O) OX= WX= #[-
83.744,5.043,-11.506,-73.253,-55.888,185.09] ;
;
; SEAL SCHEDULE / GUN ON / SEQ 1 BEAD #46449-012
vbs = 12 ;cc/m - BEAD SIZE GUN 2

[54]
LINEAR 300. ACCU0 TIMER0 TOOL1 WORK0 CLAMP1 (OFF,0,0,0) 2 (ON,30,0,O) OX= WX= #[-
84.438,4.0635,-14.94,-79.808,-56.552,190.96] ;46449-012
LINEAR 300. ACCU1 TIMER0 TOOL1 WORK0 CLAMP1 (OFF,0,0,0) 2 (ON,0,0,O) OX= WX= #[-81.06,-
7.2328,-25.029,-78.804,-53.512,188.31] ;46449-012
LINEAR 300. ACCU1 TIMER0 TOOL1 WORK0 CLAMP1 (OFF,0,0,0) 2 (ON,0,0,O) OX= WX= #[-
74.924,-21.339,-34.828,-74.902,-48.663,180.51] ;46449-012
LINEAR 300. ACCU1 TIMER0 TOOL1 WORK0 CLAMP1 (OFF,0,0,0) 2 (ON,0,0,O) OX= WX= #[-
66.151,-34.542,-41.935,-68.537,-42.323,168.89] ;46449-012
LINEAR 300. ACCU1 TIMER0 TOOL1 WORK0 CLAMP1 (OFF,0,0,0) 2 (ON,0,0,O) OX= WX= #[-
55.954,-43.592,-45.392,-57.802,-35.652,153.92] ;46449-012
LINEAR 300. ACCU1 TIMER0 TOOL1 WORK0 CLAMP1 (OFF,0,0,0) 2 (ON,0,0,O) OX= WX= #[-
31.108,-52.864,-47.724,-14.984,-25.342,105.86] ;46449-012
LINEAR 300. ACCU1 TIMER0 TOOL1 WORK0 CLAMP1 (OFF,0,0,0) 2 (ON,0,0,O) OX= WX= #[-
9.5072,-54.509,-47.756,29.254,-29.734,59.112] ;46449-012
LINEAR 300. ACCU1 TIMER0 TOOL1 WORK0 CLAMP1 (OFF,0,0,0) 2 (ON,0,0,O) OX= WX= #[26.336,-
46.92,-45.084,65.074,-53.908,16.831] ;46449-012
LINEAR 300. ACCU1 TIMER0 TOOL1 WORK0 CLAMP1 (OFF,0,0,0) 2 (ON,0,0,O) OX= WX= #[38.531,-
38.699,-41.632,70.702,-63.408,6.1811] ;46449-012
LINEAR 300. ACCU0 TIMER0 TOOL1 WORK0 CLAMP1 (OFF,0,0,0) 2 (ON,25,0,O) OX= WX=
#[49.437,-25.629,-34.445,73.579,-71.954,-3.5723] ;46449-012
; SEAL SCHEDULE / GUN OFF
;
;SD2 IN SEALANT CYCLE OFF (PLC)
SIGNAL -702; SD2 IN SEALANT CYCLE OFF
;
LINEAR 300. ACCU1 TIMER0 TOOL1 WORK0 CLAMP1 (OFF,0,0,0) 2 (OFF,20,0,O) OX= WX=
#[48.963,-28.241,-35.974,73.234,-71.813,-2.3298] ;
;
JOINT SPEED6 ACCU0 TIMER0 TOOL1 WORK0 CLAMP1 (OFF,0,0,0) 2 (OFF,0,0,O) OX= WX=
#[77.174,-37.899,3.2442,48.248,-67.934,-47.081] ;
JOINT SPEED9 ACCU1 TIMER0 TOOL1 WORK0 CLAMP1 (OFF,0,0,O) 2 (OFF,0,0,O) OX= WX=
#[108.64,-21.553,-16.166,30.708,-68.96,-63.548] ;
;

5.4.10 Carried Proc 2 SD2 Fault Recovery Example


;************************************************
; COMPANY : RIVIAN AUTOMOTIVE
; PROGRAM : sd2_rfr_proc2 ;Carried seal 2 RFR
; PROGRAM : Seal Despense 2 Rivian Fault Recovery
; REVISED LAST: 05/11/2021 REV 01 (SEAL)
; Produced by : RIVIAN KAWASAKI ROBOTICS DEV
;************************************************
; MOVE TO A POSITION THAT A VISUAL INSPECTION
; OF THE SEAL PATH CAN BE MADE WHERE ROBOT IS CLEAR
;************************************************
;
; MOVES TOWARDS VISUAL INSPECTION
JOINT SPEED4 ACCU2 TIMER0 TOOL1 WORK0 CLAMP1 (OFF,0,1,0) 2 (OFF,0,0,0) OX= WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[-69.208,-9.9459,-43.793,-175.29,-35.812,39.563,-2000] ;
;
; AT VISUAL INSPECTION POSITION SD1
JOINT SPEED4 ACCU0 TIMER0 TOOL1 WORK0 CLAMP1 (OFF,0,1,0) 2 (OFF,0,0,0) OX= WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[-71.111,33.634,-56.742,-150.85,-37.296,25.523,-2000] ;

[55]
;
; AT VISIUAL INSPECTION POSITION (PLC)
SIGNAL 700; AT VISUAL INSPECTION
;
; ACCEPT OR REJECT/RESEAL FROM PLC OR I/F PANEL PB
WAIT SIG(1337) OR SIG(1338) ;
;
SIGNAL -700; AT VISUAL INSPECTION OFF
;
;************************************************
; MOVES BACK TO END OF PROCESS
JOINT SPEED4 ACCU2 TIMER0 TOOL1 WORK0 CLAMP1 (OFF,0,1,0) 2 (OFF,0,0,0) OX= WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[-69.208,-9.9459,-43.793,-175.29,-35.812,39.563,-2000] ;
;
; IF NOT REJECT/RESEAL (PLC), CONTINUE END
IF SIG(-1338) GOTO 99 ; ACCEPT END
;
;************************************************
552; REJECT/RESEAL (PLC), RESTART SEAL PROCESS
;
; GENERAL FAULT ERROR ACKNOWLEDGE
PULSE 552,1; ERROR ACKNOWLEDGE
;
; IF HEATING ON OFF OR PUMP ON OFF CALL START UP
IF SIG(-1547) OR SIG(-1546) THEN
CALL sd2_startup
END
;
; IF PURGE REQUEST CALL PURGE
IF SIG(1549) THEN; PURGE REQUEST
;ADDITIONAL MOVES TO PURGE POSITION HERE
JOINT SPEED5 ACCU2 TIMER0 TOOL1 WORK0 CLAMP1 (OFF,0,0,0) OX= WX= #[85.119,-24.382,-
6.8621,-1.1877,-82.082,-89.069] ;
;AT Purge Position
LINEAR SPEED5 ACCU0 TIMER0 TOOL1 WORK0 CLAMP1 (OFF,0,0,0) OX= WX= #[87.487,17.704,-
60.289,-0.44956,-30.751,-102.1] ;
;******************************
CALL sd2_purge; CALL PURGE
;******************************
;MOVES FROM PURGE POSITION TO START OF PROCESS
JOINT SPEED5 ACCU2 TIMER0 TOOL1 WORK0 CLAMP1 (OFF,0,0,0) OX= WX= #[85.119,-24.382,-
6.8621,-1.1877,-82.082,-89.069] ;
END
;
; IF HEATING ON OFF OR PUMP ON OFF OR GENERAL FAULT
; OR PURGE REQUEST GOTO RESTART SEAL PROCCESS
IF SIG(-1547) OR SIG(-1546) OR SIG(1552) OR SIG(1549) THEN;
PULSE 552,2; ERROR ACKNOWLEDGE
GOTO 552;SD1 PRE PROCESS
END
;
;************************************************
99;END
;

[56]
5.4.11 Pedestal Proc 2 SD2 Sealer Example
;************************************************
; COMPANY : RIVIAN
; PROGRAM : r1c_proc2_sd2() ;PEDESTAL PROC 2 SD2 SEALER EXAMPLE
; REVISED LAST: 05/13/2021 REV 01
; Produced by : RIVIAN KAWASAKI ROBOTICS DEV
;************************************************
;
; CYCLE START TO SD1 CONTROLLER
SIGNAL 554; CYCLE START
;
; WAIT READY FOR APP. (SD2) OR DRYCYCLE(PLC)
WAIT SIG(1558) OR SIG(1013);
;
; SD2 IN SEALANT CYCLE (PLC)
SIGNAL 702; SD2 IN SEALANT CYCLE
;
JOINT SPEED8 ACCU3 TIMER0 TOOL1 WORK0 CLAMP1 (OFF,0,0,O) 2 (OFF,0,0,O) OX= WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[60.733,-47.804,-2.9228,-36.585,4.6928,195.46] ;
JOINT SPEED8 ACCU3 TIMER0 TOOL1 WORK0 CLAMP1 (OFF,0,0,O) 2 (OFF,0,0,O) OX= WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[51.719,-22.704,-14.806,-40.006,-6.5432,145.52] ;
FJOINT SPEED5 ACCU3 TIMER0 TOOL1 WORK0 CLAMP1 (OFF,0,0,O) 2 (OFF,0,0,O) OX= WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[34.837,15.056,-33.251,-93.973,-78.7,200.72] ;
FJOINT SPEED8 ACCU2 TIMER0 TOOL1 WORK0 CLAMP1 (OFF,0,0,O) 2 (OFF,0,0,O) OX= WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[35.16,8.5709,-35.576,-96.321,-86.153,206.77] ;
FLIN SPEED8 ACCU2 TIMER0 TOOL1 WORK0 CLAMP1 (OFF,0,0,O) 2 (OFF,0,0,O) OX= WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[34.609,-1.3882,-22.263,-93.702,-89.244,208.06] ;
FLIN SPEED8 ACCU2 TIMER0 TOOL1 WORK0 CLAMP1 (OFF,0,0,O) 2 (OFF,0,0,O) OX= WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[34.602,-3.4936,-17.183,-93.619,-88.925,202.99] ;
FLIN SPEED2 ACCU0 TIMER0 TOOL1 WORK0 CLAMP1 (OFF,0,0,O) 2 (OFF,0,0,O) OX= WX=
#[26.602,-1.6955,-16.655,-90.523,-96.327,202.57] ;
;
; SEAL SCHEDULE / GUN ON / SEQ 1 BEAD #46449-003
vbs2 = 7 ;cc/m - BEAD SIZE GUN 2
FLIN 200. ACCU1 TIMER0 TOOL1 WORK0 CLAMP1 (OFF,0,0,O) 2 (ON,0,0,O) OX= WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[26.716,-1.7513,-16.573,-90.549,-96.216,202.46] ;46449-003
FLIN 200. ACCU1 TIMER0 TOOL1 WORK0 CLAMP1 (OFF,0,0,O) 2 (ON,0,0,O) OX= WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[27.296,-2.0235,-16.164,-90.678,-95.653,201.89] ;46449-003
FLIN 200. ACCU2 TIMER0 TOOL1 WORK0 CLAMP1 (OFF,0,0,O) 2 (ON,0,0,O) OX= WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[28.387,-2.1727,-15.521,-90.218,-94.412,201.36] ;46449-003
FLIN 200. ACCU2 TIMER0 TOOL1 WORK0 CLAMP1 (OFF,0,0,O) 2 (ON,0,0,O) OX= WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[34.926,-3.3975,-12.535,-90.506,-87.767,199.04] ;46449-003
FLIN 200. ACCU1 TIMER0 TOOL1 WORK0 CLAMP1 (OFF,0,0,O) 2 (ON,0,0,O) OX= WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[34.951,-3.6279,-12.17,-90.375,-87.658,198.25] ;46449-003
FLIN 200. ACCU2 TIMER0 TOOL1 WORK0 CLAMP1 (OFF,0,0,O) 2 (ON,0,0,O) OX= WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[34.987,-5.1911,-12.088,-90.229,-87.59,198.14] ;46449-003
FLIN 200. ACCU1 TIMER0 TOOL1 WORK0 CLAMP1 (OFF,0,0,O) 2 (ON,0,0,O) OX= WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[35.024,-5.1222,-12.15,-90.242,-87.558,198.23] ;46449-003
FLIN 150. ACCU2 TIMER0 TOOL1 WORK0 CLAMP1 (OFF,0,0,O) 2 (ON,0,0,O) OX= WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[32.047,-4.8137,-13.449,-90.339,-90.628,199.32] ;46449-003
;
FLIN SPEED5 ACCU2 TIMER0 TOOL1 WORK0 CLAMP1 (OFF,0,0,O) 2 (OFF,0,0,O) OX= WX=
#[32.397,-5.0594,-13.215,-90.274,-90.251,199.08] ;

[57]
FLIN SPEED5 ACCU0 TIMER0 TOOL1 WORK0 CLAMP1 (OFF,0,0,O) 2 (OFF,0,0,O) OX= WX=
#[31.223,-4.4633,-14.514,-90.287,-91.369,201.28] ;
;
; SEAL SCHEDULE / GUN ON / SEQ 2 BEAD #46449-007
vbs2 = 7 ;cc/m - BEAD SIZE GUN 2
FLIN 200. ACCU1 TIMER0 TOOL1 WORK0 CLAMP1 (OFF,0,0,O) 2 (ON,0,0,O) OX= WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[31.166,-4.4565,-14.515,-90.272,-91.424,201.28] ;46449-007
FLIN 200. ACCU2 TIMER0 TOOL1 WORK0 CLAMP1 (OFF,0,0,O) 2 (ON,0,0,O) OX= WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[28.966,-3.6797,-15.072,-90.128,-94.01,200.83] ;46449-007
FLIN 200. ACCU1 TIMER0 TOOL1 WORK0 CLAMP1 (OFF,0,0,O) 2 (ON,0,0,O) OX= WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[28.92,-3.7039,-15.177,-90.194,-94.038,200.92] ;46449-007
FLIN 200. ACCU2 TIMER0 TOOL1 WORK0 CLAMP1 (OFF,0,0,O) 2 (ON,0,0,O) OX= WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[28.436,-2.492,-15.188,-90.211,-94.035,200.71] ;46449-007
FLIN 200. ACCU2 TIMER0 TOOL1 WORK0 CLAMP1 (OFF,0,0,O) 2 (ON,0,0,O) OX= WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[28.257,-1.7129,-15.28,-90.219,-94.466,200.99] ;46449-007
;
; PATH AFTER END OF SEALER GUN OFF
;
FLIN SPEED5 ACCU1 TIMER0 TOOL1 WORK0 CLAMP1 (OFF,0,0,O) 2 (OFF,0,0,O) OX= WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[28.37,-1.4108,-15.494,-90.275,-94.489,201.19] ;
FLIN SPEED5 ACCU1 TIMER0 TOOL1 WORK0 CLAMP1 (OFF,0,0,O) 2 (OFF,0,0,O) OX= WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[31.339,-4.284,-13.684,-90.362,-90.955,199.55] ;
;
;
; SEAL SCHEDULE / GUN ON / SEQ 3 BEAD #46449-008
vbs2 = 6 ;cc/m - BEAD SIZE GUN 2
FLIN 200. ACCU1 TIMER0 TOOL1 WORK0 CLAMP1 (OFF,0,0,O) 2 (ON,0,0,O) OX= WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[31.373,-4.1621,-13.691,-90.37,-90.922,199.56] ;46449-008
FLIN 150. ACCU1 TIMER0 TOOL1 WORK0 CLAMP1 (OFF,0,0,O) 2 (ON,0,0,O) OX= WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[31.356,-3.9778,-13.739,-90.365,-90.939,199.61] ;46449-008
FLIN 150. ACCU0 TIMER0 TOOL1 WORK0 CLAMP1 (OFF,0,0,O) 2 (ON,0,0,O) OX= WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[31.856,-3.0648,-13.533,-90.367,-90.813,199.56] ;46449-008
FLIN 150. ACCU1 TIMER0 TOOL1 WORK0 CLAMP1 (OFF,0,0,O) 2 (ON,0,0,O) OX= WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[32.358,-3.5551,-13.502,-90.485,-90.529,199.64] ;46449-008
FLIN 150. ACCU1 TIMER0 TOOL1 WORK0 CLAMP1 (OFF,0,0,O) 2 (ON,0,0,O) OX= WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[32.347,-3.81,-13.489,-90.482,-90.538,199.62] ;46449-008
FLIN 150. ACCU0 TIMER0 TOOL1 WORK0 CLAMP1 (OFF,0,0,O) 2 (ON,0,0,O) OX= WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[31.769,-4.6024,-13.756,-90.354,-91.123,199.9] ;46449-008
FLIN 150. ACCU1 TIMER0 TOOL1 WORK0 CLAMP1 (OFF,0,0,O) 2 (ON,0,0,O) OX= WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[31.274,-3.9095,-13.778,-90.344,-91.018,199.64] ;46449-008
;
; PATH AFTER END OF SEALER GUN OFF
;
FLIN 200. ACCU1 TIMER0 TOOL1 WORK0 CLAMP1 (OFF,0,0,O) 2 (OFF,0,0,O) OX= WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[31.332,-3.7682,-13.575,-90.251,-91.27,199.46] ;
FLIN 200. ACCU0 TIMER0 TOOL1 WORK0 CLAMP1 (OFF,0,0,O) 2 (OFF,0,0,O) OX= WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[31.116,-3.6576,-13.724,-90.271,-91.499,199.61] ;
;
FJOINT SPEED5 ACCU2 TIMER0 TOOL1 WORK0 CLAMP1 (OFF,0,0,O) 2 (OFF,0,0,O) OX= WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[32.656,-4.2857,-12.753,-90.263,-89.908,198.66] ;
FLIN SPEED4 ACCU2 TIMER0 TOOL1 WORK0 CLAMP1 (OFF,0,0,O) 2 (OFF,0,0,O) OX= WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[34.601,-4.9552,-12.488,-90.839,-88.04,198.4] ;
FLIN SPEED9 ACCU2 TIMER0 TOOL1 WORK0 CLAMP1 (OFF,0,0,O) 2 (OFF,0,0,O) OX= WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[34.609,-1.3882,-22.263,-93.702,-89.244,208.06] ;

[58]
FJOINT SPEED9 ACCU3 TIMER0 TOOL1 WORK0 CLAMP1 (OFF,0,0,O) 2 (OFF,0,0,O) OX= WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[34.843,5.9396,-33.159,-93.818,-88.571,210] ;
FJOINT SPEED9 ACCU3 TIMER0 TOOL1 WORK0 CLAMP1 (OFF,0,0,O) 2 (OFF,0,0,O) OX= WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[34.837,15.056,-33.251,-93.973,-78.7,200.72] ;
FJOINT SPEED9 ACCU3 TIMER0 TOOL1 WORK0 CLAMP1 (OFF,0,0,O) 2 (OFF,0,0,O) OX= WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[64.373,-7.5722,-21.37,-90.015,6.8969,165.02] ;
JOINT SPEED9 ACCU3 TIMER0 TOOL1 WORK0 CLAMP1 (OFF,0,0,O) 2 (OFF,0,0,O) OX= WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[73.46,1.1918,-24.415,-96.08,45.259,164.59] ;
JOINT SPEED9 ACCU3 TIMER0 TOOL1 WORK0 CLAMP1 (OFF,0,0,O) 2 (OFF,0,0,O) OX= WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[85.265,-3.1876,-20.914,-96.856,84.905,164.96] ;
LINEAR SPEED9 ACCU2 TIMER0 TOOL1 WORK0 CLAMP1 (OFF,0,0,O) 2 (OFF,0,0,O) OX= WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[87.947,-3.3109,-9.2528,-96.772,93.621,165] ;
LINEAR SPEED6 ACCU2 TIMER0 TOOL1 WORK0 CLAMP1 (OFF,0,0,O) 2 (OFF,0,0,O) OX= WX=
#[89.342,-4.0839,-8.4529,-96.94,95.088,165.64] ;
LINEAR SPEED6 ACCU2 TIMER0 TOOL1 WORK0 CLAMP1 (OFF,0,0,O) 2 (OFF,0,0,O) OX= WX=
#[88.811,-4.1154,-8.5172,-96.862,94.56,165.64] ;
;
FLIN SPEED5 ACCU0 TIMER0 TOOL1 WORK0 CLAMP1 (OFF,0,0,O) 2 (OFF,0,0,O) OX= WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[88.347,-3.874,-8.3288,-96.774,94.124,165.88] ;
;
; SEAL SCHEDULE / GUN ON / SEQ 4 BEAD #46449-001
vbs2 = 7 ;cc/m - BEAD SIZE GUN 2
FLIN 200. ACCU2 TIMER0 TOOL1 WORK0 CLAMP1 (OFF,0,0,O) 2 (ON,0,0,O) OX= WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[88.133,-3.9074,-8.3038,-96.74,93.917,165.93] ;46449-001
FLIN 200. ACCU1 TIMER0 TOOL1 WORK0 CLAMP1 (OFF,0,0,O) 2 (ON,0,0,O) OX= WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[87.5,-3.866,-8.1698,-96.636,93.311,166.14] ;46449-001
FLIN 200. ACCU2 TIMER0 TOOL1 WORK0 CLAMP1 (OFF,0,0,O) 2 (ON,0,0,O) OX= WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[86.651,-3.995,-8.538,-96.526,92.434,165.88] ;46449-001
FLIN 200. ACCU2 TIMER0 TOOL1 WORK0 CLAMP1 (OFF,0,0,O) 2 (ON,0,0,O) OX= WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[79.224,-4.3535,-7.2908,-95.543,85.248,167.88] ;46449-001
FLIN 200. ACCU2 TIMER0 TOOL1 WORK0 CLAMP1 (OFF,0,0,O) 2 (ON,0,0,O) OX= WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[79.277,-4.8787,-7.2564,-95.552,85.304,167.91] ;46449-001
FLIN 200. ACCU2 TIMER0 TOOL1 WORK0 CLAMP1 (OFF,0,0,O) 2 (ON,0,0,O) OX= WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[79.347,-6.0053,-7.2616,-95.559,85.373,167.89] ;46449-001
FLIN 200. ACCU1 TIMER0 TOOL1 WORK0 CLAMP1 (OFF,0,0,O) 2 (ON,0,0,O) OX= WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[79.493,-6.0464,-7.2461,-95.579,85.518,167.89] ;46449-001
FLIN 200. ACCU2 TIMER0 TOOL1 WORK0 CLAMP1 (OFF,0,0,O) 2 (ON,0,0,O) OX= WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[83.546,-5.8742,-7.9148,-96.066,89.449,166.85] ;46449-001
;
FLIN SPEED5 ACCU0 TIMER0 TOOL1 WORK0 CLAMP1 (OFF,0,0,O) 2 (OFF,0,0,O) OX= WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[81.25,-5.9612,-7.4644,-95.779,87.231,167.51] ;
FLIN SPEED5 ACCU0 TIMER0 TOOL1 WORK0 CLAMP1 (OFF,0,0,O) 2 (OFF,0,0,O) OX= WX=
#[83.567,-5.8976,-7.9773,-95.966,89.488,166.87] ;
;
; SEAL SCHEDULE / GUN ON / SEQ 5 BEAD #46449-002
vbs2 = 7 ;cc/m - BEAD SIZE GUN 2
FLIN 200. ACCU2 TIMER0 TOOL1 WORK0 CLAMP1 (OFF,0,0,O) 2 (ON,0,0,O) OX= WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[83.713,-5.8668,-8.0338,-95.986,89.626,166.8] ;46449-002
FLIN 200. ACCU2 TIMER0 TOOL1 WORK0 CLAMP1 (OFF,0,0,O) 2 (ON,0,0,O) OX= WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[85.855,-5.6246,-8.454,-96.3,91.688,166.15] ;46449-002
FLIN 200. ACCU2 TIMER0 TOOL1 WORK0 CLAMP1 (OFF,0,0,O) 2 (ON,0,0,O) OX= WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[85.99,-5.5019,-8.4647,-96.32,91.82,166.13] ;46449-002
FLIN 200. ACCU2 TIMER0 TOOL1 WORK0 CLAMP1 (OFF,0,0,O) 2 (ON,0,0,O) OX= WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[86.106,-3.5025,-8.5221,-96.339,91.928,166.06] ;46449-002

[59]
; PATH AFTER END OF SEALER GUN OFF
;
FLIN SPEED5 ACCU1 TIMER0 TOOL1 WORK0 CLAMP1 (OFF,0,0,O) 2 (OFF,0,0,O) OX= WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[86.194,-3.5628,-8.5435,-96.353,92.012,166.03] ;
FLIN SPEED5 ACCU1 TIMER0 TOOL1 WORK0 CLAMP1 (OFF,0,0,O) 2 (OFF,0,0,O) OX= WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[85.925,-3.8587,-8.8524,-96.424,91.685,165.64] ;
;
FLIN SPEED5 ACCU0 TIMER0 TOOL1 WORK0 CLAMP1 (OFF,0,0,O) 2 (OFF,0,0,O) OX= WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[82.293,-5.6528,-7.7499,-95.901,88.233,167.12] ;
;
; SEAL SCHEDULE / GUN ON / SEQ 6 BEAD #46449-005
vbs2 = 7 ;cc/m - BEAD SIZE GUN 2
FLIN 200. ACCU1 TIMER0 TOOL1 WORK0 CLAMP1 (OFF,0,0,O) 2 (ON,0,0,O) OX= WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[82.412,-5.7489,-7.6963,-95.918,88.356,167.17] ;46449-005
FLIN 200. ACCU1 TIMER0 TOOL1 WORK0 CLAMP1 (OFF,0,0,O) 2 (ON,0,0,O) OX= WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[82.524,-6.0014,-7.711,-95.932,88.465,167.15] ;46449-005
FLIN 200. ACCU0 TIMER0 TOOL1 WORK0 CLAMP1 (OFF,0,0,O) 2 (ON,0,0,O) OX= WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[83.409,-6.1929,-7.9439,-96.045,89.313,166.82] ;46449-005
FLIN 200. ACCU1 TIMER0 TOOL1 WORK0 CLAMP1 (OFF,0,0,O) 2 (ON,0,0,O) OX= WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[83.8,-5.2652,-8.019,-96.098,89.69,166.71] ;46449-005
FLIN 200. ACCU1 TIMER0 TOOL1 WORK0 CLAMP1 (OFF,0,0,O) 2 (ON,0,0,O) OX= WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[83.796,-5.147,-8.026,-96.097,89.686,166.7] ;46449-005
FLIN 200. ACCU0 TIMER0 TOOL1 WORK0 CLAMP1 (OFF,0,0,O) 2 (ON,0,0,O) OX= WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[82.991,-4.4974,-7.7817,-95.992,88.918,167.03] ;46449-005
FLIN 200. ACCU1 TIMER0 TOOL1 WORK0 CLAMP1 (OFF,0,0,O) 2 (ON,0,0,O) OX= WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[82.246,-5.7153,-7.6792,-95.896,88.197,167.22] ;46449-005
; PATH AFTER END OF SEALER GUN OFF
;
FLIN SPEED5 ACCU2 TIMER0 TOOL1 WORK0 CLAMP1 (OFF,0,0,O) 2 (OFF,0,0,O) OX= WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[82.405,-6.5944,-7.7589,-95.915,88.343,167.11] ;
FLIN 200. ACCU0 TIMER0 TOOL1 WORK0 CLAMP1 (OFF,0,0,O) 2 (OFF,0,0,O) OX= WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[81.759,-6.4441,-7.6261,-95.835,87.717,167.29] ;
;
; SD2 IN SEALANT CYCLE OFF (PLC)
SIGNAL -702; SD2 IN SEALANT CYCLE OFF
;
FLIN SPEED5 ACCU2 TIMER0 TOOL1 WORK0 CLAMP1 (OFF,0,0,O) 2 (OFF,0,0,O) OX= WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[81.759,-6.4441,-7.6261,-95.835,87.717,167.29] ;
FLIN SPEED5 ACCU2 TIMER0 TOOL1 WORK0 CLAMP1 (OFF,0,0,O) 2 (OFF,0,0,O) OX= WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[81.381,-4.0619,-12.395,-95.954,85.219,166.35] ;
;
FJOINT SPEED9 ACCU3 TIMER0 TOOL1 WORK0 CLAMP1 (OFF,0,0,O) 2 (OFF,0,0,O) OX= WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[81.677,-23.674,-12.375,-96.017,85.509,152.56] ;
FJOINT SPEED9 ACCU4 TIMER0 TOOL1 WORK0 CLAMP1 (OFF,0,0,O) 2 (OFF,0,0,O) OX= WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[69.856,-40.819,-14.714,-51.188,59.375,111.99] ;
FJOINT SPEED9 ACCU4 TIMER0 TOOL1 WORK0 CLAMP1 (OFF,0,0,O) 2 (OFF,0,0,O) OX= WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[69.856,-40.819,-14.714,-51.188,59.375,29.414] ;
FJOINT SPEED9 ACCU3 TIMER0 TOOL1 WORK0 CLAMP1 (OFF,0,0,O) 2 (OFF,0,0,O) OX= WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[69.548,-10.566,-41.065,-51.154,59.283,-52.529] ;
FJOINT SPEED9 ACCU1 TIMER0 TOOL1 WORK0 CLAMP1 (OFF,0,0,O) 2 (OFF,0,0,O) OX= WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[65.311,-2.1845,-41.574,-46.544,57.63,-54.022] ;
;

5.4.12 Pedestal Proc 2 SD2 Show Part Example


[60]
;************************************************
; COMPANY : RIVIAN
; PROGRAM : r1c_proc2_showp() ;PEDESTAL PROC 2 SHOW PART EXAMPLE
; REVISED LAST: 05/10/2021 REV 01
; Produced by : RIVIAN KAWASAKI ROBOTICS DEV
;************************************************
; MOVE TO A POSITION THAT A VISUAL INSPECTION
; OF THE SEAL PATH CAN BE MADE FROM OUTSIDE
; THE FENCE AND WAIT ON A ACCEPT OR REJECT/RESEAL
; FROM THE PLC OF I/F SCREEN
;
JOINT SPEED5 ACCU1 TIMER0 TOOL2 WORK0 CLAMP1 (OFF,0,0,O) 2 (OFF,0,0,O) OX= WX=
#[66.075,-11.066,-39.361,-51.779,49.351,-53.499] ;
JOINT SPEED4 ACCU2 TIMER0 TOOL2 WORK0 CLAMP1 (OFF,0,0,0) 2 (OFF,0,0,0) OX= WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[84.397,-11.066,-35.419,-43.194,49.351,-52.549] ;
JOINT SPEED4 ACCU2 TIMER0 TOOL2 WORK0 CLAMP1 (OFF,0,0,O) 2 (OFF,0,0,O) OX= WX=
#[84.397,-11.066,-36.43,-36.31,49.351,-36.292] ;
JOINT SPEED4 ACCU2 TIMER0 TOOL2 WORK0 CLAMP1 (OFF,0,0,O) 2 (OFF,0,0,O) OX= WX=
#[84.397,-11.066,-31.951,-17.413,49.351,8.3305] ;
;
; AT VISIAL INSPECTION POSITION SD2
LINEAR SPEED2 ACCU0 TIMER0 TOOL2 WORK0 CLAMP1 (OFF,0,0,0) 2 (OFF,0,0,0) OX= WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[84.397,-11.066,-31.951,-17.413,49.351,8.3307] ;
;
; SEND SIGNAL TO PLC SO THEY KNOW WE ARE AT
; VISIUAL INSPECTION POSITION
SIGNAL 700; AT VISUAL INSPECTION
;
; ACCEPT OR REJECT/RESEAL FROM PLC OR I/F PANEL PB
WAIT SIG(1337) OR SIG(1338) ;
;
SIGNAL -700; AT VISUAL INSPECTION OFF
;
JOINT SPEED5 ACCU2 TIMER0 TOOL2 WORK0 CLAMP1 (OFF,0,0,O) 2 (OFF,0,0,O) OX= WX=
#[84.397,-11.066,-36.43,-36.31,49.351,-36.292] ;
JOINT SPEED4 ACCU2 TIMER0 TOOL2 WORK0 CLAMP1 (OFF,0,0,O) 2 (OFF,0,0,O) OX= WX=
#[84.397,-11.066,-35.419,-43.194,49.351,-52.549] ;
JOINT SPEED4 ACCU2 TIMER0 TOOL2 WORK0 CLAMP1 (OFF,0,0,O) 2 (OFF,0,0,O) OX= WX=
#[66.075,-11.066,-39.361,-51.779,49.351,-53.499] ;
;
; IF SEAL REJECT/RESEAL (PLC), RESTART SEAL PROCCESS
IF SIG(1338) Then; REJECT/RESEAL
; IF ADDITION MOVES NEEDED TO GET BACK TO START
; OF SEAL PROCESS ADD THEM HERE
END; SEAL REJECT/RESEAL (PLC)
;
; GENERAL FAULT ERROR ACKNOWLEDGE
PULSE 552,1; ERROR ACKNOWLEDGE
;

5.5 Auto Start Routine (autostart2.pc)


;************************************************

[61]
; COMPANY : RIVIAN
; PROGRAM : autostart2.pc, Slow Repeat E-Stop Recovery
; REVISED LAST: 09/08/2020
; Produced by : RIVIAN KAWASAKI ROBOTICS DEV
;************************************************
; PC program External Slow Repeat Mode
10; loop
PCSCAN 0.1
IF SIG(-1320) THEN ;EXTERNAL SLOW REPEAT SPEED ON
slow_repeat_flo = purge ;SET ANALOG OUTPUT ON TO VALUE OF "PURGE" VARIABLE
slowrepeat_flo2 = purge2 ;SET ANALOG OUTPUT ON TO VALUE OF "PURGE2" VARIABLE
sptemp = slow_repeat_flo*6553.5
sptemp2 = slowrepeat_flo2*6553.5
ELSE
slow_repeat_flo = 0;Variable
slowrepeat_flo2 = 0;Variable
END
;************************************************
;SETOUTSPEED / FLOW ANTICIPATION LOGIC SYSTEM 1
;vbs is the size of the bead from the visual build sheet
;sptemp is the Temporary Speed Variable
;volt is a variable that represents
;slowtime is a variable for the slowrepeat duration
DREG 72 = slowtime*10; Slow Repeat Duration Variable
IF SIG(1320) THEN; If not in SLOWREPEAT
sptemp = OUTSPEED(time1)*vbs*6.5535*(10/max_meter_flow)
sptemp2 = OUTSPEED(time2)*vbs2*6.5535*(10/max_meter_flow2)
END
IF sptemp>65535 THEN
sptemp = 65535
END
IF sptemp2>65535 THEN
sptemp2 = 65535
END
IF sptemp<1 AND SIG(2) GOTO 20
IF volt>0 THEN; Daub only
sptemp = volt*6553.5
END
BITS 337,16 = sptemp
20
IF sptemp2<1 AND SIG(3) GOTO 10
IF volt2>0 THEN; Daub only
sptemp2 = volt2*6553.5
END
BITS 577,16 = sptemp2
GOTO 10
;

[62]
K Logic
6.1 SD1 K-Logic

[63]
[64]
[65]
[66]
[67]
[68]
[69]
[70]
[71]
[72]
[73]
[74]
[75]
[76]
[77]
6.2 SD2 K-Logic

[78]
[79]
[80]
[81]
[82]
[83]
[84]
[85]
[86]
[87]
[88]
[89]
[90]
[91]

You might also like