[go: up one dir, main page]

0% found this document useful (0 votes)
367 views136 pages

Kawasaki Programming Guide RIV0003 SSW

Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
367 views136 pages

Kawasaki Programming Guide RIV0003 SSW

Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 136

Rivian Robot Programming Guide – Kawasaki Implementation

Appendix SSW – SERVO SPOT WELD

JUN 28TH 2023


Table of Contents
INTRODUCTION ............................................................................................................................................. 4

1.1.1 Document Description: ............................................................................................................................4


1.1.2 Who should use the document: ...............................................................................................................4
1.1.3 What should be learned: ..........................................................................................................................4
IMPLEMENTATION ........................................................................................................................................ 4

2.1.1 Standard Servo Gun Operation ................................................................................................................5


2.1.2 Teaching a Weld Step ..............................................................................................................................6
2.1.3 Weld Schedules ........................................................................................................................................7

SERVO SPOT WELD - GUN SETUP ................................................................................................................... 9

3.1.1 Application Field ....................................................................................................................................10


3.1.2 Clamp/gun Condition .............................................................................................................................11
3.1.3 Spot Weld Clamp Definition ...................................................................................................................11
3.1.4 Spot Weld Control Definition .................................................................................................................12
3.1.5 Spot Weld Gun Definition.......................................................................................................................12
3.1.6 Servo Hand Speed ..................................................................................................................................13

3.3.1 Servo Gun Connect .................................................................................................................................15


3.3.2 Servo Gun Disconnect ............................................................................................................................16

3.4.1 Finding The Value For Each Variable......................................................................................................18

3.5.1 Zeroing A New Servo Gun ......................................................................................................................19


3.5.2 Zeroing Existing Servo Gun ....................................................................................................................20

WORK FLOW CHART(S) ................................................................................................................................ 25

SERVO SPOT WELD INDEPENDENT MOTION– KAWASAKI PROGRAMS ........................................................ 30

[2]
SERVO SPOT WELD CARRIED – KAWASAKI EXAMPLES ................................................................................. 54

INTERFACE PANEL........................................................................................................................................ 95
ROBOT SETTINGS ....................................................................................................................................... 100

[3]
K LOGIC ..................................................................................................................................................... 104

Introduction

1.1 Purpose

1.1.1 Document Description:


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

1.1.2 Who should use the document:


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

1.1.3 What should be learned:


This document explains the general programming strategy for a Kawasaki robot. It explains standards
that are to be applied to all Servo Spot Welding 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

[4]
The following sub-sections describe how the line builder is to implement the Servo Spot Weld application.

2.1 TCP Convention for Servo Spot Weld


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

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


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

X+
Z+

Figure 1: Tool Center Point Orientation Convention

The Servo Spot Welding application uses the Tool Center Point location and orientation settings to
determine the moving and fixed sides of the weld gun. Because of this, these settings affect the clearance
distance, deflection compensation and tip wear compensation motion of the robot.

The Tool Dimensions, Mass, CG and Inertia are setup during the servo gun setup and calibration
process.

2.1.1 Standard Servo Gun Operation

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

[5]
A servo spot weld gun is controlled as an external axis to the standard 6-axis Kawasaki robot. This
external axis can be manually jogged, as well as clamp to achieve a preset force in Teach mode. Figure 2
shows the direction convention for jogging the servo gun axis in Teach. For example, with the servo gun
axis as JT7 of the robot, pressing the “ + “ button on the teach pendant for JT7 will open the servo gun (as
long as the gun is connected with motor power ON).

Figure 2: Servo Gun Axis Motion Convention


The servo spot weld gun can manually be commanded to achieve a preset force in Teach. This is initiated
by pressing “ A “ and “ CL1 ” buttons simultaneously on the teach pendant, as long as motor power is ON
and the gun is connected. This will initiate a clamp sequence, and the gun will close and pressurize to the
force entered in Aux. 1021, Clamp Force Teaching setting. The operator does not need to hold “ A” and “
CL1 “ buttons once the servo gun starts to close.

To open the gun after clamping, press the “ A “ and “ CL1 “ buttons simultaneously once again, and the
gun will open to the opening distance prior to closing the gun.

For optimized cycle time, it is crucial that the servo gun axis position changes as little as possible when
performing motion. To aid in maintaining consistent servo gun axis position while teaching a Servo Spot
Weld application, pressing “ A “ and either JT7 ( - ) or ( + ) keys on the teach pendant will result in the
servo gun axis automatically moving to the LARGE / SMALL Open Position, which are set in Aux
Function 1035.

2.1.2 Teaching a Weld Step


The procedure below lists how to properly teach a weld step for the Kawasaki Servo Spot Weld
application (carried application).

1) Change to new tips on the gun and perform new tip and tip dress prior to teaching
2) Jog the robot such that the fixed arm tip is touching the sheet metal at the desired spot location
3) Verify Manual Speed on teach pendant screen is set to a value of 2
4) Achieve motor power in Teach, and enable the clamp (CL1)
5) Press Record, Insert, or Position Modify (POS MOD) button as required to teach weld location

[6]
6) Release the clamp by pressing (CL1) to open the gun

Figure 3: Teaching Weld Step

A similar procedure is followed for a pedestal servo spot weld application.

2.1.3 Weld Schedules


Once the motion step is taught or during teaching, the user must specify the desired weld schedule. The
user must press the Clamp soft button located at the bottom of the teach pendant screen, which pulls up
the Clamp Data menu, shown in Figure 4. The user then must enter the desired weld schedule into the
WS box and press enter for completing the setting. If just changing the clamp data weld schedule after
position has already been taught then the user must use “A”+”AUX MOD” buttons for the data to be
saved. Individual weld schedule(s) are configured through Aux Function 1025 (Clamp Force Setting).

Figure 4: Assigning Weld Schedule

[7]
Note: In the Clamp Data menu Force.(lbf) should remain zero(0). There is only one specific case where
this should be changed. This is in the seat_cap(x) routine, at the NOP seat cap position(s). Force.(lbf) will
be 90% of the Gun tags max tip force. Example: 1400lbs max tip force in the clamp data menu for that
gun in seat cap routine we should have 1260.

2.2 App Set Routine Settings


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

SSW1 & SSW2 app_set() Examples:

[8]
Servo Spot Weld - Gun Setup
The purpose of this section is to provide instruction for setting up servo weld guns, with the assumption
the user has a basic understanding of Kawasaki robot operations. The following sub sections summarizes
the major steps to complete setup for a single gun that has not previously been calibrated. It is
recommended to read through and become familiar with the entire procedure prior to starting a servo
weld gun setup for the first time.

NOTE:
Taking a robot controller all-data-save is recommended prior to starting setup, as well as the completion
of calibration, to use as a future reference if required

It is recommended to enter TCP and mass properties prior to starting calibration procedure, however, can
be entered at any time without effect on force calibration

A majority of Aux. Functions for Servo Spot Weld Calibration require user entry of Gun Number, which will
always be (1) except for tool change or dual applications. For sake of reducing bulk, the instruction for
entering Gun Number is removed

Screenshots are provided in this document for servo gun related steps only. The ability to navigate and
utilize standard Aux. Functions is assumed.

SAFETY:

a. The items that require special attention in this manual are designated with the following
symbols.

b. Ensure proper and safe operation of the robot and prevent physical injury or property
damages by complying with the safety matters described in the boxes with these
symbols.

Danger

Failure to comply with this instruction may result in an imminent


hazard, which may cause serious injury or death.

Warning
Caution
Failure to comply with this instruction may result in serious injury
or death.
Failure to comply with this instruction may result in bodily injury
or physical damage.

[9]
c. In order to perform work safely, read and fully understand this procedure, all pertinent
laws, regulations, and related materials as well as the safety explanations described in
each section, and prepare safety measures and procedures suitable for actual work
performed.

d. Read and understand thoroughly the Kawasaki Robot Safety Manual 90801-1001.

3.1 Clamp Specifications


Clamp specifications can be found under AUX. 605. Here you will find the settings specific to servo gun
application setup. Following, all the different pages can be seen on specific setup. Due to some robots
having multiple guns on tool changers or dual pedestal servo spot weld guns be sure to reference the
proper setup.

3.1.1 Application Field


Here you will find the ability to set what type of application is to be used with which clamp. When setting
the application field, there is only a need to use one clamp, even if the robot has multiple servo spot weld
guns on a tool changing robot. The only time there is a need to change the application field for a second
clamp would be when using dual pedestal servo spot weld guns.

[10]
3.1.2 Clamp/gun Condition

This is used to set the servo spot weld gun number to the clamp condition code. Further explanation on
CC (clamp condition code) to follow in the servo gun connect/disconnect section of this guide. Be sure to
check the “Not Used” box for clamp subroutine on all guns. Failure to do so will cause issues when trying
to fire a weld spot. No clamp subroutines are used for any servo spot weld guns. Using the
button will go to the next clamp condition code. Below are examples for servo spot weld gun 1, 2 and 3.

3.1.3 Spot Weld Clamp Definition

[11]
Section not used. All settings should be zero.

3.1.4 Spot Weld Control Definition


This menu is used to set the start, binary schedule and complete bits to the weld timer. If, single carried
or multi carried with tool change servo spot welders only weld 1 needs to be used. If a dual pedestal
servo spot welder is used, then weld 2 will also need to be used. Examples for both are provided below.

3.1.5 Spot Weld Gun Definition

In this menu we set the gun type to Servo Welding Gun. If multiple servo guns are used the
button will need to be used to set the type for each gun. Only set the gun type for how many servo guns
are used, do not set extra if not used.

[12]
3.1.6 Servo Hand Speed
Setting unused, factory default should be 3.

3.2 Wear Measurement Parameters


Before starting any gun calibrations new caps must be present on the servo weld gun and wear settings
must be zeroed out. In AUX. 1029: Spot Weld: Wear Measurement Parameters: you can find the settings
for wear. In the examples below you will find the proper settings based on which servo weld gun
number/group and size cap being used. If using a dual servo pedestal welder, the settings for gun 2 are
different from a multi carried servo gun. The settings for pedestal weld gun 2 are the last example.

[13]
[14]
3.3 Gun Connect/Disconnect (AMP Range On First Connect)
3.3.1 Servo Gun Connect
1) Connect Servo Gun if not connected (When gun is disconnected there will be a blue lightning bolt
in the clamp1 button on the teach pendant)
2) Press the Clamp1 button

3) In Gun Stat. field, Enter 1 to connect then press enter.

[15]
4) Depending on how many servo guns the robot has, it may be required to change the CC (gun
number) to connect and use the proper gun settings.

You will notice the clamp number changed to the value that was input after you exit the Clamp Data
screen.

5) After Setting(s) are complete, exit Clamp Data Screen.


6) While holding the Enable Switch, press and hold A key + Motors ON, this should now give the
robot motors.
7) While holding the Enable Switch, press and hold A + Clamp1 to Connect the Gun. Continue to
hold the Enable Switch while the gun cycles to open hard stop and just off full open.
8) When the gun is connected, the blue lightning bolt in the Clamp1 button will be absent, Joint 7
position will be displayed and CC value will be 1(See circle in image above for location of CC).

9) For a dual pedestal servo gun(s) you will notice two clamps for servo gun clamp data.

If gun fails to connect, or does not hit the hard stop, first verify the gun mechanism does not have
any mechanical constraints preventing the gun from opening, then carefully increase current value
for Minimum Force in Aux. 1023 until gun successfully connects. Maximum recommended
current value in order to connect the gun is 4A. Contact gun manufacturer if unable to
successfully connect gun with current value less than or equal to 4A.

3.3.2 Servo Gun Disconnect


1) Disconnect Servo Gun (When gun is disconnected there will be a blue lightning bolt in the clamp1
button on the teach pendant)

[16]
2) Press the Clamp1 button

3) In Gun Stat. field, enter 0 to disconnect then press enter.

4) After Setting Complete displays, exit Clamp Data Screen.


5) Press and hold A + Clamp1 to Disconnect the Gun.
6) When gun is disconnected there will be a blue lightning bolt in the clamp1 button on the teach
pendant, Joint 7 position will display -2000 and the CC value will be 0 (See circle in image above
for location of CC).

3.4 Servo Gun Resolution


In this section we will describe how calculate the servo gun Resolution and Resolution: Exponent that is
set in Aux. 1011. Figure 1 below is used to show the location of information inserted into Aux. 1011.

[17]
The resolution of the servo gun is calculated with the equation below, in addition the descriptions of
the variables are listed below.

3.4.1 Finding The Value For Each Variable


1) Open the gun using A + CL1 (the gun should not open to the hard stop)
2) Using a metric tape, physically measure the opening between caps. Accuracy of measurement
within 2 to 3 mm. This will be the value for variable X.
3) In AUX. 501/2: Advanced Setting: Zeroing: Zeroing Data Set/Display, write down the CURRENT
encoder value of JT 7. This will be the value for [E2].
4) Once you have wrote down the value for E2, back out one page using the key.
5) Close the gun using A + CL1 , once the gun is closed return back to 2. Zeroing Data Set/Display.
6) Now write down the CURRENT encoder value of JT 7. This will be the value for [E1].

Once each variable is determined, calculate using the Resolution Equation and insert the resolution value
into AUX. 1011: Spot Weld: Servo Weld Gun Mechanical Parameter [Resolution] and [Resolution: Exponent
(10^n)]. Remember to select the proper gun number, if calibrating multiple servo weld guns. An example
for how the calculation should work is shown below:

[18]
EXAMPLE

Variables:
X = 142mm
E2 = 268419884
E1 = 268518880

Convert the value using scientific notation to arrive at:

= 1.43440138 with an exponent value of 3 (number of places decimal point has moved)

3.5 Servo Gun Zeroing


In this section we will describe the servo gun zeroing process for both new and existing servo spot weld
gun(s). The purpose of the servo gun zeroing process is to define the closed position of the servo gun as
the 0mm location. For reference, opening the gun is moving the joint of the servo gun in the positive (+)
direction. Closing the gun is moving the joint of the servo gun in the negative (-) direction. Correct zeroing
of the servo gun is critical for proper teaching and path planning. If the servo gun zeroing is adjusted, the
weld points, dress points, measure points and all associated servo gun touch points where the clamp
closed is on must be retaught followed with complete program verification. The following sections
describe the process for zeroing a new servo gun or an existing servo gun using Aux Function 1011,
shown below for reference in Figure 1.

3.5.1 Zeroing A New Servo Gun


1) In Aux. 1011: Spot Weld: Servo Gun Mechanical Parameter: choose the proper gun number, set
the Limit [Upper] to “0” (zero)mm.

[19]
2) Set the Limit [Lower] to -200mm or a negative value that is larger than the max gun opening
(i.e. -300, -400, or -500).

3) Perform a software disconnect with the servo gun clamp.

4) Perform a software connect with the servo gun clamp.


5) In teach mode, jog the servo gun close to a 10mm opening.

6) Close the servo gun in teach using the + .

7) Write down the value of servo gun JT using the Axis data monitor. (negative value is typical)
8) Go into Aux 1011: Spot Weld: Servo Gun Mechanical Parameter: enter the absolute (positive)
value of the servo gun JT that was written down in Step 7 as the Limit [Upper].

9) Set the Limit [Lower] to -200mm. This will be the final default value for the Limit [Lower].

10) Perform a software disconnect with the servo gun clamp.

11) Perform a software connect with the servo gun clamp.


12) In teach mode, jog the servo gun close to a 10mm opening.

13) Close the servo gun in teach using the + and check the servo gun JT value.

Note:
• The value of JT7 (or whichever JT the servo weld gun is on) needs to be within ±0.5mm of 0
(zero)

3.5.2 Zeroing Existing Servo Gun

1) Close the servo gun in teach using the + .

2) Note the value of JT7 (or whichever JT the servo weld gun is on).
3) If the value is not within ±0.5mm of 0 (zero) perform the remaining steps.
4) If the value is a positive (+) value then write down the value and subtract this value from the Limit
[Upper] in Aux 1011: Spot Weld: Servo Gun Mechanical Parameter:

5) If the value is negative (-) then write down the value and add the calculated value to the Limit
[Upper] in Aux 1011: Spot Weld: Servo Gun Mechanical Parameter:

[20]
6) Perform a software disconnect with the servo gun clamp.

7) Perform a software connect with the servo gun clamp.

8) Close the servo gun in teach using the + .

9) Note the value of JT7 (or whichever JT the servo weld gun is on).
10) The value of JT7 needs to be within ±0.5mm of 0 (zero).
11) If the value of JT7 is not within ±0.5mm of 0 (zero), then repeat steps 1 through 9.

3.6 Initial Data Entry for Start of Calibration

1. Aux. 1021: Spot Weld: Servo Weld Gun Data


a. Note current setting(s) for Clearance [Moving Tip], [Fixed Tip], also note current setting(s)
for Clearance before and after force (four settings). Once the full calibration procedure is
complete the original settings will need to be put back in.
b. Enter Max. Clamp Force Limit for the servo gun. This value can be found on the servo
gun tag, located on the servo gun.
c. Press Enter for setting complete

2. Aux. 1012: Spot Weld: Data for Gun Zeroing

[21]
a. Verify Press Force at Auto Zeroing value is 292 lbf (standard value for Kawasaki)

3.7 Force Calibration

1. Robot needs to be put in for calibration mode. On the robot teach pendent if you touch the REP. SPD,

this will pull up the menu, where at the bottom you can select Force calibration mode. You must have the
servo gun you intend to calibrate connected, also motor power must be off.

If the setting is enable, on the bottom right of the screen you will now see Force. Cal.

2. Proceed to AUX. 1023 Spot Weld: Force Calibration:


3. Type the gun number you wish to calibrate and press ENTER

4. This is the menu where the calibration procedure takes place

[22]
4.1. Input the proper tool number that matches the servo gun being calibrated
4.2. Slowly close the gun on the force calibration tool until it receives for feedback, then open the gun
until there is no pressure reading, check the axis value for the servo gun being calibrated. This
will be the value for Clamp On Position.

4.3. Pressurization time, should remain to be 2.00s


4.4. Setting up Force Calibration table
4.4.1.Enter first entry in Set Force column as minimum stable force for servo weld gun
4.4.1.1. 300lb for Milco
4.4.1.2. This setting is known as Minimum Force throughout the remainder of this
document
4.4.2.Enter second entry in Set Force column at 330lb, and continue down the list in increments
of 220lb until Max Force found on the Servo gun, Gun Tag

4.4.2.1. The last entry in the Set Force column should be the gun manufacturer’s
specification for Max Force of the servo gun
4.4.2.2. The Set Force Values must always be increasing while moving down the table
4.4.3.Copy Set Force Values into the Measure column
4.4.4.Enter a value of 2.000A into all associated entries in the Current column, press Enter for
setting complete
4.4.4.1. If there was increase made to the minimum Current value for initial connection
reasons, use that value for a starting point in the Current column

[23]
5. Now that all settings have been entered, we need to populate the calibration program, press the
key. A conformation prompt will appear, it describes that any current running program will
be killed and replaced with the Force Check Program, Press [Yes] to confirm and continue.

6. Calibration procedure. Remaining in the Force Calibration menu, Press hard key. The Servo gun
will close and open on the force gauge, holding closed for the 2 second pressurization time and then

open. It open and close with force motion will continue continuously until you let go of the hard
key.
6.1. During this process starting at the top force you will always need to have the cursor in the row of
the set force you are trying to achieve. It can remain in any column the row is key

6.2. Make sure the force gauge is reset to 0.0 and press the hard key to get your first [Measure]
force.
6.3. Input the force gauge value into the Measure column for Set Force 300. (Usually under 300, this
is ok)
6.4. Do not modify the Current column for set force 300. This will modify the minimum current
required for connection.
6.5. Move cursor down to the 330 Set Force value

6.6. Press the hard key and read the value of the force on the force gauge.
6.7. Input the value into the Measure column for set force 330 and press the soft key, this
will auto generate a current value, check the current value if it make sense, then press the
hard key to save the values.
6.8. If measured force is not within tolerance (+/-5%) of the Set Force, continue with step 6.6 and 6.7
until it does.
6.9. Once you have achieved a Measurement within tolerance you will want to use the last calculated
Current for the starting point of the next measurement

6.10. Continue this process until you have made it to Max Force

[24]
6.10.1. DO NOT ATTEMPT TO EXCEED THE MAX FORCE, DAMAGE MAY OCCUR TO THE
SERVO WELD GUN
6.11. The reference table seen below should provide clarity to (+/-5%) tolerance for set force
values

Work Flow Chart(s)


4.1 Main Style Process

[25]
[26]
[27]
4.2 Tip Dress Work Flow

[28]
4.3 Cap Change

[29]
Servo Spot Weld Independent Motion– Kawasaki
Programs
5.1 zzextpc3.pc(); PED TIP DRESS SSW1 ROBOT
CONTROLLED DUMP
;************************************************
; COMPANY : RIVIAN
; PROGRAM : zzextpc3(), PEDESTAL TIP DRESS SSW1 ROBOT CONTROLED DUMP
; REVISED LAST: 01/04/2023 REV 01
; Produced by RIVIAN KAWASAKI ROBOTICS DEV
;************************************************
;
; INDEPENDENT TIP DRESS IN PROCESS INTERNAL FLAG
SIGNAL 483 ;IM TD IN PROCESS
;
; INDEPENDENT MOTION ZONE 1 CLEAR OFF (PED TD)
SIGNAL -486 ;IM ZONE 1 CLEAR OFF (PED TD)
;
; RE-RUNS TIP CAL PROCESS ONLY IF STARTED AND NOT COMP
IF SIG(482) AND SIG(-253) GOTO 182 ;TIP CAL PROCESS
;
;************************************************
; IS THIS A NEW TIP? SKIP SEAT CAP AND TIP MEASURE
IF SIG(1257) THEN ; STEP RESET SSW1 GROUP 1 ON
CALL wtr_chk(1); WELD TIMER 1 WATER CHECK
CALL ped_seatcap(1); SEAT CAPS PED GUN 1
CALL ped_tipmeas(1);TIP WEAR CALCULATIONS
new_cap = 1; SET VARIABLE FOR WHICH TIP DRESS SCHED
END; IF NEW TIPS AND STEPPERS ARE RESET GROUP 1
;************************************************
10;START TIP DRESS SSW1 PROCESS
;
CALL wtr_chk(1); WELD TIMER 1 WATER CHECK
;
CALL ped_opngun(1); OPEN PED GUN 1
;
; ADVANCE TIP DRESS DUMP 1 ROBOT CONTROL
CALL ped_dump("advance 1"); ADVANCE TD DUMP
;
; PROGRAM FOR PED TIP DRESS

[30]
CALL ped_td1
;
CALL ped_opngun(1); OPEN PED GUN 1
;
; RETURN TIP DRESS DUMP 1 ROBOT COTROLLED
CALL ped_dump("return 1"); RETURN TD DUMP
;
182; START INDEPENDENT TIP CAL PROCESS
;
; IF NOT PULLED TIP BYPASS RUN TIP CAL PROCESS
IF SIG(-1240) THEN; IF NOT PULLED TIP
CALL ped_wearc1;CALL TIP CALIBRATION
CALL ped_tipmeas(1);TIP WEAR CALCULATIONS
END ; IF NOT PULLED TIP
;
IF SIG(248) GOTO 10 ; IF NOT SUFFICIANT CUT FAULT RE-DRESS
;
; TIP RESISTANCE CHECK PEDESTAL GUN 1 (SSW1)
CALL ped_rischk(1)
;
IF SIG(1242) GOTO 10; IF TIP RESISTANCE FAULT RE-DRESS
;
CALL ped_tdpcomp(1); TD PED 1 PROCESS COMPLETE TO PLC
;
; INDEPENDENT MOTION ZONE 1 CLEAR (PED TD)
SIGNAL 486 ;IM ZONE 1 CLEAR (PED TD)
;
; INDEPENENT TIP DRESS ROUTINE SIGNAL RESET
SIGNAL -483 ;RESET IM TD IN PROCESS
SIGNAL -245 ;RESET TIP DRESS COMPLETE 1
SIGNAL -253 ;TESET TIP WEAR MEASURE COMPLETE INT FLAG
new_cap = 0; RESET NEW CAP VARABLE

5.2 ped_dump(.$state) ;PEDESTAL DUMP RETURN/ADVANCE

;************************************************
; COMPANY : RIVIAN
; PROGRAM : ped_dump(.$state), PEDESTAL DUMP RETURN/ADVANCE
; REVISED LAST: 01/04/2023 REV 01
; Produced by RIVIAN KAWASAKI ROBOTICS DEV
;************************************************
; SUBROUTINE CALLED FROM ZZEXTPC 3or4 (TIP DRESS)
; TO MOVE THE PED TIP DRESS DUMP TO THE OPEN OR
; CLOSED STATE
;************************************************
;
SCASE .$state OF
SVALUE "return 1":
1; RETURN PED TIP DRESS DUMP 1 ROBOT COTROLLED
SIGNAL -492,493 ;RETURN TD DUMP RB CONTROL
;WAIT TIP DRESS DUMP RETURNED AND NOT ADVANCED
WAIT SIG(-1489) AND SIG(1490);TD DUMP 1 RETRUNED

[31]
IF SIG(1489) OR SIG(-1490) GOTO 1; ANTI WAIT OVERRIDE
;
SVALUE "advance 1":
2; ADVANCE PED TIP DRESS DUMP 1 ROBOT CONTROL
SIGNAL 492,-493 ;ADVANCE TD DUMP RB CONTROL
;WAIT TIP DRESS DUMP ADVANCED AND NOT RETURNED
WAIT SIG(1489) AND SIG(-1490);TD DUMP 1 ADVANCED
IF SIG(-1489) OR SIG(1490) GOTO 2; ANTI WAIT OVERRIDE
;
SVALUE "return 2":
3; RETURN PED TIP DRESS DUMP 2 ROBOT COTROLLED
SIGNAL -494,495 ;RETURN TD DUMP RB CONTROL
;WAIT TIP DRESS DUMP RETURNED AND NOT ADVANCED
WAIT SIG(-1483) AND SIG(1484);TD DUMP 2 RETRUNED
IF SIG(1483) OR SIG(-1484) GOTO 3; ANTI WAIT OVERRIDE
;
SVALUE "advance 2":
4; ADVANCE PED TIP DRESS DUMP 2 ROBOT CONTROL
SIGNAL 494,-495 ;ADVANCE TD DUMP RB CONTROL
;WAIT TIP DRESS DUMP ADVANCED AND NOT RETURNED
WAIT SIG(1483) AND SIG(-1484);TD DUMP 2 ADVANCED
IF SIG(-1483) OR SIG(1484) GOTO 4; ANTI WAIT OVERRIDE
;
END;

5.3 ped_opngun(.gunop) ;PEDESTAL OPEN GUN(ped gun#)

;************************************************
; COMPANY : RIVIAN
; PROGRAM : ped_opngun(.gunop), PEDESTAL OPEN GUN (ped gun#)
; REVISED LAST: 01/04/2023 REV 01
; Produced by RIVIAN KAWASAKI ROBOTICS DEV
;************************************************
;THIS PROGRAM IS INDEPENDENT MOTION SERVO GUN
;MOTION ONLY USING SGINDP INTERPOLATION TYPE
;KI320[ ] MUST BE ACTIVE IN MOTION PROGRAM
;ELSE ERROR WILL OCCUR
;
CASE .gunop OF
VALUE 1:
;************************************************
1; START OPEN GUN 1 (SSW1)
SIGNAL -10 ;RESET IM GUN OPEN COMPLETE
;
;EXECUTE KI320 IF IN TEACH MODE FOR TEACH PROCEDURE
IF SIG(106) THEN ;ROBOT IN TEACH
;ENABLES INDEPENDENT MOTION FOR BACKGROUND TIP DRESS
KI320[ 7 ] ;ENABLE INDEPENDENT MOTION JT7 PED GUN 1
END
;
; JT7 SHOULD BE PED GUN 1 FULL OPEN

[32]
SGINDP SPEED6 ACCU1 TIMER0 TOOL1 WORK0 CLAMP1 (OFF,0,1,1) OX=10 WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[0,0,0,0,0,0,158,0] ;GUN OPEN
;
WAIT SIG(10) ;IM GUN OPEN COMPLETE
IF SIG(-10) GOTO 1; ANTI WAIT OVERIDE
;
SIGNAL -10 ;RESET IM GUN OPEN COMPLETE
;
; CHECK SERVO GUN OPEN
WAIT SIG(242) ;SERVO GUN 1 OPEN
IF SIG(-242) GOTO 1; ANTI WAIT OVERRIDE
;
VALUE 2:
;************************************************
2; START OPEN GUN 2 (SSW2)
SIGNAL -10 ;RESET IM GUN OPEN COMPLETE
;
;EXECUTE KI320 IF IN TEACH MODE FOR TEACH PROCEDURE
IF SIG(106) THEN ;ROBOT IN TEACH
;ENABLES INDEPENDENT MOTION FOR BACKGROUND TIP DRESS
KI320[ 8 ] ;ENABLE INDEPENDENT MOTION JT8 PED GUN 2
END
;
; JT8 SHOULD BE PED GUN 2 FULL OPEN
SGINDP SPEED6 ACCU1 TIMER0 TOOL1 WORK0 CLAMP1 (OFF,0,1,1) OX=10 WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[0,0,0,0,0,0,0,158] ;GUN OPEN
;
WAIT SIG(10) ;IM GUN OPEN COMPLETE
IF SIG(-10) GOTO 2; ANTI WAIT OVERIDE
;
SIGNAL -10 ;RESET IM GUN OPEN COMPLETE
;
; CHECK SERVO GUN OPEN
WAIT SIG(282) ;SERVO GUN 2 OPEN
IF SIG(-282) GOTO 2; ANTI WAIT OVERRIDE
;
END

5.4 ped_rischk(.gunrc) ;PEDESTAL TIP RESISTANCE


CHECK(ped gun#)

;************************************************
; COMPANY : RIVIAN
; PROGRAM : ped_rischk(.gunrc), PEDESTAL TIP RESISTANCE CHECK (ped gun#)
; REVISED LAST: 01/04/2023 REV 01
; Produced by RIVIAN KAWASAKI ROBOTICS DEV
;************************************************
;THIS PROGRAM IS INDEPENDENT MOTION SERVO GUN JT8
;MOTION ONLY USING SGINDP INTERPOLATION TYPE
;KI320[ 8 ] MUST BE ACTIVE IN MOTION PROGRAM
;ELSE ERROR WILL OCCUR

[33]
;
CASE .gunrc OF
VALUE 1:
;************************************************
;START RESISTANCE CHECK SSW1 GUN 1 PEDESTAL
;
; CHECK IF PULLED TIP BYPASS GOTO END
IF SIG(1240) GOTO 91; IF PULLED TIP BYPASS ON
;
;EXECUTE KI320 IF IN TEACH MODE FOR TEACH PROCEDURE
IF SIG(106) THEN ;ROBOT IN TEACH
;ENABLES INDEPENDENT MOTION FOR BACKGROUND TIP DRESS
KI320[ 7 ] ;ENABLE INDEPENDENT MOTION JT7 PED GUN 1
END

SIGNAL -14 ;RESET IM RESISTANCE CHECK WELD COMPLETE


;
SIGNAL 247 ;TIP RESISTANCE CHECK SSW1
;
; OX=14 MUST BE USED FOR INDEPENDENT MOTION COMPLETE
; TIP RESISTANCE CHECK POSITION PED GUN 1 (SCHEDULE 252)
SGINDP SPEED7 ACCU0 TIMER0 TOOL1 WORK0 CLAMP1 (ON,252,1,1) OX=14 WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[0,0,0,0,0,0,0,-1.8095] ;TIP DRESS
SGINDP SPEED7 ACCU1 TIMER0 TOOL1 WORK0 CLAMP1 (OFF,0,1,1) OX= WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[0,0,0,0,0,0,0,100] ;OPEN PED GUN
;
WAIT SIG(14) ;IM RESISTANCE CHECK WELD COMPLETE
;
WAIT SIG(-14) ;IM RESISTANCE CHECK WELD COMPLETE OFF
;
IF SIG(1242) THEN; IF TIP RESISTANCE CHECK FAULT
PULSE 2120,1 ; PULSE TIP DRESS REQ SSW1 GRP1 TO PLC
END; IF TIP RESISTANCE CHECK FAULT
;
91;TIP RESISTANCE CHECK SKIP LABEL
;
SIGNAL -247 ;TIP RESISTANCE CHECK SSW1
;
VALUE 2:
;************************************************
;START RESISTANCE CHECK SSW1 GUN 1 PEDESTAL
;
; CHECK IF PULLED TIP BYPASS GOTO END
IF SIG(1280) GOTO 92; IF PULLED TIP BYPASS ON
;
;EXECUTE KI320 IF IN TEACH MODE FOR TEACH PROCEDURE
IF SIG(106) THEN ;ROBOT IN TEACH
;ENABLES INDEPENDENT MOTION FOR BACKGROUND TIP DRESS
KI320[ 8 ] ;ENABLE INDEPENDENT MOTION JT8 PED GUN 2
END
;
SIGNAL -14 ;RESET IM RESISTANCE CHECK WELD COMPLETE
;
SIGNAL 287 ;TIP RESISTANCE CHECK SSW2

[34]
;
; OX=14 MUST BE USED FOR INDEPENDENT MOTION COMPLETE
; TIP RESISTANCE CHECK POSITION PED GUN 2 (SCHEDULE 252)
SGINDP SPEED7 ACCU0 TIMER0 TOOL1 WORK0 CLAMP1 (ON,252,2,1) OX=14 WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[0,0,0,0,0,0,0,0,2.7643] ;TIP DRESS
SGINDP SPEED7 ACCU1 TIMER0 TOOL1 WORK0 CLAMP1 (OFF,0,1,1) OX= WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[0,0,0,0,0,0,0,100] ;OPEN PED GUN
;
WAIT SIG(14) ;IM RESISTANCE CHECK WELD COMPLETE
;
WAIT SIG(-14) ;IM RESISTANCE CHECK WELD COMPLETE OFF
;
IF SIG(1282) THEN; IF TIP RESISTANCE CHECK FAULT
PULSE 2168,1 ; PULSE TIP DRESS REQ SSW2 GRP1 TO PLC
END; IF TIP RESISTANCE CHECK FAULT
;
92;TIP RESISTANCE CHECK SKIP LABEL
;
SIGNAL -287 ;TIP RESISTANCE CHECK SSW2
;
END

5.5 ped_seatcap(.gunsc) ;PED PRESS ON NEW WELD CAPS(ped


gun#)

;************************************************
; COMPANY : RIVIAN
; PROGRAM : tw_prs01(.gunsc), NEW INDEP MOTION SEAT CAP
; REVISED LAST: 01/04/2023 REV 01
; Produced by RIVIAN KAWASAKI ROBOTICS DEV
;************************************************
;THIS PROGRAM IS INDEPENDENT MOTION SERVO GUN
;MOTION ONLY USING SGINDP INTERPOLATION TYPE
;KI320[ ] MUST BE ACTIVE IN MOTION PROGRAM
;ELSE ERROR WILL OCCUR
;
CASE .guntm OF
VALUE 1:
;************************************************
; START CAP PRESS GUN 1 (SSW1)
; CHECK IF PULLED TIP BYPASS GOTO END
IF SIG(1240) GOTO 99; IF PULLED TIP BYPASS ON
;
;EXECUTE KI320 IF IN TEACH MODE FOR TEACH PROCEDURE
IF SIG(106) THEN ;ROBOT IN TEACH
;ENABLES INDEPENDENT MOTION FOR BACKGROUND TIP DRESS
KI320[ 7 ] ;ENABLE INDEPENDENT MOTION JT7 PED GUN 1
END
;

[35]
SIGNAL -14 ;IM WELD COMPLETE
;
; NUMBER OF CAP PRESSES 3
FOR .i = 1 TO 3
;
; CHANGE "CL1=x.xxx" TO MODIFY SEAT CAP FORCE
; IN BLOCK STEP, BLOCK STEP USES KN FORCE, DIVIDE
; FORCE POUNDS(eg:1200) BY 225 TO GET FORCE IN KN
; FORCE FOR SEAT CAP SHOULD BE INCLUDED IN THE CLAMP
; CONDITION AND SHOULD BE 90 PERCENT OF MAX FORCE (SCHEDULE 0)
SGINDP SPEED9 ACCU1 TIMER0 TOOL1 WORK0 CLAMP1 (ON,0,1,1) OX=14 WX=
CL1=4.266,0.0,0.0,0.0,0.0,0.0,0.0 #[0,0,0,0,0,0,0] ;CAP PRESS
;
; OPEN GUN TO CLEARANCE TIP DRESS DUMP
SGINDP SPEED9 ACCU1 TIMER0 TOOL1 WORK0 CLAMP1 (OFF,0,1,1) OX= WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[0,0,0,0,0,0,100] ;OPEN GUN
;
WAIT SIG(14) ;IM WELD COMPLETE
;
WAIT SIG(-14) ;IM WELD COMPLETE
;
END
;
VALUE 2:
;************************************************
; START CAP PRESS GUN 2 (SSW2)
; CHECK IF PULLED TIP BYPASS GOTO END
IF SIG(1280) GOTO 99; IF PULLED TIP BYPASS ON
;
;EXECUTE KI320 IF IN TEACH MODE FOR TEACH PROCEDURE
IF SIG(106) THEN ;ROBOT IN TEACH
;ENABLES INDEPENDENT MOTION FOR BACKGROUND TIP DRESS
KI320[ 8 ] ;ENABLE INDEPENDENT MOTION JT8 PED GUN 2
END
;
SIGNAL -14 ;IM WELD COMPLETE
;
; NUMBER OF CAP PRESSES 3
FOR .i = 1 TO 3
;
; CHANGE "CL1=x.xxx" TO MODIFY SEAT CAP FORCE
; IN BLOCK STEP, BLOCK STEP USES KN FORCE, DIVIDE
; FORCE POUNDS(eg:1200) BY 225 TO GET FORCE IN KN
; FORCE FOR SEAT CAP SHOULD BE INCLUDED IN THE CLAMP
; CONDITION AND SHOULD BE 90 PERCENT OF MAX FORCE (SCHEDULE 0)
SGINDP SPEED9 ACCU1 TIMER0 TOOL1 WORK0 CLAMP1 (ON,0,1,1) OX=14 WX=
CL1=4.266,0.0,0.0,0.0,0.0,0.0,0.0 #[0,0,0,0,0,0,0] ;CAP PRESS
;
; OPEN GUN TO CLEARANCE TIP DRESS DUMP
SGINDP SPEED9 ACCU1 TIMER0 TOOL1 WORK0 CLAMP1 (OFF,0,1,1) OX= WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[0,0,0,0,0,0,100] ;OPEN GUN
;
WAIT SIG(14) ;IM WELD COMPLETE
;

[36]
WAIT SIG(-14) ;IM WELD COMPLETE
;
END
END
99; PULLED TIP JUMP LABLE

5.6 ped_td1() ;PEDESTAL TIP DRESS SSW1 GUN 1

;************************************************
; COMPANY : RIVIAN
; PROGRAM : ped_td1, PEDESTAL TIP DRESS SSW1 GUN 1
; REVISED LAST: 01/06/2023 REV 01
; Produced by RIVIAN KAWASAKI ROBOTICS DEV
;************************************************
;THIS PROGRAM IS INDEPENDENT MOTION SERVO GUN
;MOTION ONLY USING SGINDP INTERPOLATION TYPE
;KI320[ ] MUST BE ACTIVE IN MOTION PROGRAM
;ELSE ERROR WILL OCCUR
;
;IF PULLED TIP OR TD BYPASS GOTO END
IF SIG(1240) OR SIG(1245) GOTO 99
;
SIGNAL 244 ;TIP DRESS MOTOR ON
;
WAIT SIG(1244) ; TIP DRESS MOTOR RUNNING
;
;EXECUTE KI320 IF IN TEACH MODE FOR TEACH PROCEDURE
IF SIG(106) THEN ;ROBOT IN TEACH
;ENABLES INDEPENDENT MOTION FOR BACKGROUND TIP DRESS
KI320[ 8 ] ;ENABLE INDEPENDENT MOTION JT8 PED GUN 1
END
;
SIGNAL -19 ;RESET IM TD COMPLETE
;
10
IF new_cap==1 THEN;
; AT TIPDRESS NEW CAPS(SCHEDULE 249, OX:19)
SGINDP SPEED4 ACCU1 TIMER0 TOOL1 WORK0 CLAMP1 (ON,249,1,1) OX=19 WX=
CL1=1.333,0.0,0.0,0.0,0.0,0.0,0.0 #[106.4,-6.3485,3.6429,-87.498,92.6,128.81,-3577.4,-4.6] ;TIP
DRESS
;
ELSE
; AT TIPDRESS (SCHEDULE 250, OX:19)
SGINDP SPEED4 ACCU1 TIMER0 TOOL1 WORK0 CLAMP1 (ON,250,1,1) OX=19 WX=
CL1=1.333,0.0,0.0,0.0,0.0,0.0,0.0 #[106.4,-6.3485,3.6429,-87.498,92.6,128.81,-3577.4,-4.6] ;TIP
DRESS
;
END; IF new_cap==1 THEN
;
WAIT SIG(19) ;IM TD GUN CLOSED COMPLETE

[37]
IF SIG(-19) GOTO 10; ANTI WAIT OVERRIDE
;
SIGNAL -19 ;IM TD COMPLETE
;
CALL ped_tdcmp(1); WTC TIP DRESS COMPLETE (GUN 1)
;
CALL ped_opngun(1); OPEN PED GUN 1
;
; RETURN TIP DRESS DUMP ROBOT COTROLLED
CALL ped_dump("return 1"); RETURN TD DUMP
;
99 ;END OF PROGRAM
;
SIGNAL -244 ;TIP DRESS MOTOR OFF

5.7 ped_tdcmp(.wtc_ped) ;PED TD PROC COMP TO WTC(ped


gun#)

;************************************************
; COMPANY : RIVIAN
; PROGRAM : ped_tdcmp, WTC PED TD PROCESS COMPLETE
; REVISED LAST: 01/04/2023 REV 01
; Produced by RIVIAN KAWASAKI ROBOTICS DEV
;************************************************
; SUBROUTINE CALLED FROM ped_tdx(TIP DRESS) TO SEND
; TIP DRESS COMPLETE SIGNAL TO WTC AS LONG
; AS THE ROBOT IS NOT IN PULLED TIP BYPASS
;************************************************
;
; CHECK IF IN PULLED TIP BYPASS, DOES NOT SEND
; COMPLETE IF PULLED TIP BYPASS ON
IF SIG(1240) GOTO 99; IF PULLED TIP BYPASS ON
;
CASE .wtc_ped OF
VALUE 1:
gun_1:; TIP DRESS COMPLETE TO WTC GUN 1
PULSE 243,1 ;TIP DRESS COMPLETE GUN 1
WAIT SIG(-1257) ;WAIT STEPPER RESET GUN 1
IF SIG(1257) GOTO gun_1
VALUE 2:
gun_2:; TIP DRESS COMPLETE TO WTC GUN 2
PULSE 283,1 ;TIP DRESS COMPLETE GUN 2
WAIT SIG(-1297) ;WAIT STEPPER RESET GUN 2
IF SIG(1297) GOTO gun_2
END; CASE .wtc_ped OF

[38]
;
99; END OF TIP DRESS COMPLETE
new_cap = 0; RESET NEW CAP FLAG

5.8 ped_tdpcomp(.ped_num) ;PED TD PROC COMP TO


PLC(ped gun#)

;************************************************
; COMPANY : RIVIAN
; PROGRAM : tdped_comp, PLC TD PED PROCESS COMPLETE
; REVISED LAST: 01/04/2023 REV 01
; Produced by RIVIAN KAWASAKI ROBOTICS DEV
;************************************************
; SUBROUTINE CALLED FROM ZZEXTPCx(TIP DRESS) TO SEND
; TIP DRESS PROCESS COMPLETE SIGNAL TO PLC AS LONG
; AS THE ROBOT IS NOT IN PULLED TIP BYPASS
;************************************************
;
; CHECK IF IN PULLED TIP BYPASS, DOES NOT SEND
; COMPLETE IF PULLED TIP BYPASS ON
IF SIG(1240) GOTO 99; IF PULLED TIP BYPASS ON
;
CASE .ped_num OF
VALUE 1:
1; GUN 1 TIP DRESS PROCESS COMPLETE TO PLC
SIGNAL 245 ; TD PROCESS COMPLETE TO PLC
WAIT SIG(1254) ;TIP DRESS POSITION CLR
IF SIG(-1254) GOTO 1 ;ANTI WAIT OVERRIDE
SIGNAL -245 ; RESET TD PROCESS COMPLETE TO PLC
;
VALUE 2:
2; PED GUN 2 TIP DRESS PROCESS COMPLETE TO PLC
SIGNAL 285 ; TD PROCESS COMPLETE TO PLC
WAIT SIG(1294) ;TIP DRESS POSITION CLR
IF SIG(-1294) GOTO 2 ;ANTI WAIT OVERRIDE
SIGNAL -285 ; RESET TD PROCESS COMPLETE TO PLC
;
END; CASE .ped_num OF
99; END OF TIP DRESS COMPLETE

5.9 ped_tipmeas(.guntm) ;PED TIP WEAR


CALCULATIONS(ped gun#)

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

[39]
; COMPANY : RIVIAN
; PROGRAM : ped_tipmeas(.guntm), PED TIP WEAR CALCULATIONS
; REVISED LAST: 01/06/2023 REV 01
; Produced by RIVIAN KAWASAKI ROBOTICS DEV
;************************************************
; SUBROUTINE CALLED OUT OF zzextpcx UNLESS
; TIPDRESS BYPASSED FROM PLC, THEN SUBROUTINE
; CALLED OUT OF pg01(MAINTENANCE)
;************************************************
;
; .guntm = PED GUN 1 (SSW1) OR PED GUN 2 (SSW2)
CASE .guntm OF
VALUE 1:
;************************************************
; START MEASURE CALCULATIONS PED GUN 1 (SSW1)
measure_count = measure_count+1 ;INCREMENT MEASURE COUNT
IF measure_count=>max_td_count THEN ;RESET measure_count VARIABLE AFTER max_td_count
REACHED
measure_count = 1
wear_m1[0] = wear_m1[max_td_count-1]
wear_f1[0] = wear_f1[max_td_count-1]
wear1[0] = wear1[max_td_count-1]
END
;
tipdresscnt1 = tipdresscnt1+1 ;INCREMENT TIP DRESS COUNT
IF SIG(1257) THEN ;NEW TIP STEPPER RESET GROUP 1 (NTSR)
tipdresscnt1 = 1 ;RESET TIP DRESS COUNT
END ;IF SIG(1264), NEW TIP STEPPER RESET GROUP 1 (NTSR)
;
; **************** GUN 1 TIP WEAR TO VARIABLES ****************
; READ AND LOG TIP WEAR VALUES
wear_m1[measure_count] = SGCHIP(1,0) ;WRITE ABRASION VALUE OF MOVING CAP TO
wear_m1[] ARRAY
tipwear_m1 = wear_m1[measure_count] ;INTERFACE SCREEN VARIABLE (MOVING CAP)
wear_f1[measure_count] = SGCHIP(1,1) ;WRITE ABRASION VALUE OF FIXED CAP TO wear_f1[]
ARRAY
tipwear_f1 = wear_f1[measure_count] ;INTERFACE SCREEN VARIABLE (FIXED CAP)
wear1[measure_count] = wear_m1[measure_count]+wear_f1[measure_count] ;WRITE ABRASION
VALUE OF TOTAL WEAR TO wear1[] ARRAY
wear_if1 = wear1[measure_count] ;INTERFACE SCREEN VARIABLE (TOTAL WEAR)
; STEEL SPOT WELDING TIP CUT WARNING LEVEL GUN 1 (MIN WEAR BETWEEN TIP DRESSES)
wear_flt1 = 0.04 ;STEEL SPOT WELDING (0.05)
;
wear_m1[measure_count+1] = 999 ;SET LEADING EDGE OF WEAR READINGS (MOVING CAP)
wear_f1[measure_count+1] = 999 ;SET LEADING EDGE OF WEAR READINGS (FIXED CAP)
wear1[measure_count+1] = 999 ;SET LEADING EDGE OF WEAR READINGS (TOTAL WEAR)
;
; **************** TIP dress CUTTER DULL WARNNIG GUN 1 ****************
; LAST 10 READINGS AVERAGE GREATER THAN 0.2mm WEAR
;
;MOVING CAP CALCULATIONS
IF SIG(1257) THEN ;NEW TIP STEPPER RESET GROUP 1 (NTSR)
cutter1_m_delta = wear_m1[measure_count]; TIP WEAR MEASURED ON A NEW MOVING WELD
CAP

[40]
ntsr_m_flag = TRUE ;SET NEW TIP STEPPER RESET FLAG
GOTO skip_m_wear_cal
END ;IF SIG(1264), NEW TIP STEPPER RESET GROUP 1 (NTSR)
;
IF ntsr_m_flag==TRUE THEN ;LAST MEASURE WAS ON NEW CAPS
cutter1_m[0] = wear_m1[measure_count]-cutter1_m_delta; TIP WEAR MEASURED ON A DRESSED
MOVING WELD CAP
ntsr_m_flag = FALSE ;RESET ntsr_flag TO OFF
END ;IF ntsr_m_flag == TRUE THEN ;LAST MEASURE WAS ON NEW CAPS
;
IF measure_count==1 THEN ;COUNT RESET
cutter1_m[0] = wear_m1[measure_count]-wear_m1[max_td_count]; TIP WEAR MEASURED ON A
DRESSED MOVING WELD CAP
GOTO 10
END
;
cutter1_m[0] = wear_m1[measure_count]-wear_m1[measure_count-1]; TIP WEAR MEASURED ON A
DRESSED MOVING WELD CAP
10
;
cutter1_m[11] = cutter1_mm[10] ;INCREMENT MEMORY BANK (MOVING)
cutter1_m[10] = cutter1_mm[9] ;INCREMENT MEMORY BANK (MOVING)
cutter1_m[9] = cutter1_mm[8] ;INCREMENT MEMORY BANK (MOVING)
cutter1_m[8] = cutter1_mm[7] ;INCREMENT MEMORY BANK (MOVING)
cutter1_m[7] = cutter1_mm[6] ;INCREMENT MEMORY BANK (MOVING)
cutter1_m[6] = cutter1_mm[5] ;INCREMENT MEMORY BANK (MOVING)
cutter1_m[5] = cutter1_mm[4] ;INCREMENT MEMORY BANK (MOVING)
cutter1_m[4] = cutter1_mm[3] ;INCREMENT MEMORY BANK (MOVING)
cutter1_m[3] = cutter1_mm[2] ;INCREMENT MEMORY BANK (MOVING)
cutter1_m[2] = cutter1_mm[1] ;INCREMENT MEMORY BANK (MOVING)
cutter1_m[1] = cutter1_m[0] ;INPUT NEW VALUE
;
FOR m = 1 TO 10 ;SET MOVING TIP WEAR MEMORY
cutter1_mm[m] = cutter1_m[m]
END
;
delta1_m = 0 ;RESET DELTA1_M FOR CALCULATION
FOR c = 2 TO 11
delta1_m = cutter1_m[c]+delta1_m ;ADD LAST 10 TIP CUTTER VALUES
END
avg_m1 = delta1_m/10 ;AVG OF LAST 10 READINGS
diff1_m1 = ABS(avg_m1) ;(MOVING)
PRINT "AVERAGE MOVING TIP WEAR ",diff1_m1
skip_m_wear_cal:
;
;FIXED CAP CALCULATIONS
IF SIG(1257) THEN ;NEW TIP STEPPER RESET GROUP 1 (NTSR)
cutter1_f_delta = wear_f1[measure_count]; TIP WEAR MEASURED ON A NEW FIXED WELD CAP
ntsr_f_flag = TRUE ;SET NEW TIP STEPPER RESET FLAG
GOTO skip_f_wear_cal
END ;IF SIG(1264), NEW TIP STEPPER RESET GROUP 1 (NTSR)
;
IF ntsr_f_flag==TRUE THEN ;LAST MEASURE WAS ON NEW CAPS

[41]
cutter1_m[0] = wear_m1[measure_count]-cutter1_m_delta; TIP WEAR MEASURED ON A DRESSED
MOVING WELD CAP
ntsr_f_flag = FALSE ;RESET ntsr_flag TO OFF
END ;IF ntsr_f_flag == TRUE THEN ;LAST MEASURE WAS ON NEW CAPS
;
IF measure_count==1 THEN ;COUNT RESET
cutter1_f[0] = wear_f1[measure_count]-wear_f1[max_td_count]; TIP WEAR MEASURED ON A
DRESSED FIXED WELD CAP
GOTO 20
END
;
cutter1_f[0] = wear_f1[measure_count]-wear_f1[measure_count-1]; TIP WEAR MEASURED ON A
DRESSED FIXED WELD CAP
;
20
cutter1_f[11] = cutter1_fm[10] ;INCREMENT MEMORY BANK (FIXED)
cutter1_f[10] = cutter1_fm[9] ;INCREMENT MEMORY BANK (FIXED)
cutter1_f[9] = cutter1_fm[8] ;INCREMENT MEMORY BANK (FIXED)
cutter1_f[8] = cutter1_fm[7] ;INCREMENT MEMORY BANK (FIXED)
cutter1_f[7] = cutter1_fm[6] ;INCREMENT MEMORY BANK (FIXED)
cutter1_f[6] = cutter1_fm[5] ;INCREMENT MEMORY BANK (FIXED)
cutter1_f[5] = cutter1_fm[4] ;INCREMENT MEMORY BANK (FIXED)
cutter1_f[4] = cutter1_fm[3] ;INCREMENT MEMORY BANK (FIXED)
cutter1_f[3] = cutter1_fm[2] ;INCREMENT MEMORY BANK (FIXED)
cutter1_f[2] = cutter1_fm[1] ;INCREMENT MEMORY BANK (FIXED)
cutter1_f[1] = cutter1_f[0] ;INPUT NEW VALUE
;
FOR m = 1 TO 10 ;SET MOVING TIP WEAR MEMORY
cutter1_fm[m] = cutter1_f[m]
END
;
delta1_f = 0 ;RESET DELTA1_f FOR CALCULATION
FOR c = 2 TO 11
delta1_f = cutter1_m[c]+delta1_f ;ADD LAST 10 TIP CUTTER VALUES
END
avg_f1 = delta1_f/10 ;AVG OF LAST 10 READINGS
diff1_f1 = ABS(avg_f1) ;(FIXED)
PRINT "AVERAGE FIXED TIP WEAR ",diff1_f1
skip_f_wear_cal:
;
; **************** TIP dress CUT WARNING GUN 1 ****************
;TIP dress CUT WARNING (NOT ENOUGH MATERIAL CUT FROM TIPS)
;
diff1 = wear_f1[measure_count]-wear_m1[measure_count] ;CALCULATE DIFFERENCE BETWEEN
MOVING AND FIXED CAPS
IF SIG(-1257) THEN ;NEW TIP STEPPER RESET GROUP 1 (NTSR)
IF (wear_m1[measure_count]<=(wear_m1[measure_count-1]+wear_flt1)) OR
(wear_f1[measure_count]<=(wear_f1[measure_count-1]+wear_flt1)) THEN
PRINT "WEAR MEASUREMENT FROM PREVIOUS CUT ",wear1[measure_count-1]
PRINT " "
PRINT "WEAR MEASUREMENT FROM CURRENT CUT ",wear1[measure_count]
alarm[18] = 1 ; TD CUT NOT SUFFICIENT
SIGNAL 248 ; TD FAULT TD CUT NOT SUFFICIENT
PULSE 2120,1 ; PULSE TIP DRESS REQUEST TO PLC

[42]
wearwarn = wearwarn+1 ; INCREMENT WEAR WARNING COUNT
IF wearwarn>1 THEN; IF WARNING MORE THAN ONCE
SIGNAL 248 ; TD FAULT TD CUT NOT SUFFICIENT
WAIT SIG(1238) OR SIG(1007); TD CUT NOT SUF ACK(PLC) AND RESET
PULSE 2120,1 ; PULSE TIP DRESS REQUEST TO PLC
alarm[18] = 0 ; TD CUT NOT SUFFICIENT RESET
END ; IF WARNING MORE THAN ONCE
ELSE
SIGNAL -248;RESET TD FAULT TD CUT NOT SUFFICIENT
alarm[18] = 0 ; TD CUT NOT SUFFICIENT RESET
wearwarn = 0; RESET TD CUT NOT SUFFICIENT
END
END
;
; **************** WRONG TIP GUN 1 ****************
;TIP WEAR ON 1ST MEASURE GREATER THAN 5mm
;
IF SIG(1257) THEN ;NEW TIP STEPPER RESET GROUP 1 (NTSR)
dress_cnt = 1 ;NTSR, RESET TIP DRESS COUNTER
IF wear_f1[measure_count]>=wrong_tip1 OR wear_f1[measure_count]<=(0-wrong_tip1) THEN
SIGNAL 261 ;GUN 1 WRONG TIP ON ROBOT (RESET IN init PROGRAM)
END
IF wear_m1[measure_count]>=wrong_tip1 OR wear_m1[measure_count]<=(0-wrong_tip1) THEN
SIGNAL 261 ;GUN 1 WRONG TIP ON ROBOT (RESET IN init PROGRAM)
END
END ;IF SIG(1264), NEW TIP STEPPER RESET GROUP 1 (NTSR)
;************************************************
; END GUN 1
;************************************************
;
VALUE 2:
;************************************************
; START MEASURE CALCULATIONS GUN 2 (SSW2)
measure_count2 = measure_count2+1 ;INCREMENT MEASURE COUNT
IF measure_count2=>max_td_count THEN ;RESET measure_count2 VARIABLE AFTER max_td_count
REACHED
measure_count2 = 1
wear_m2[0] = wear_m2[max_td_count-1]
wear_f2[0] = wear_f2[max_td_count-1]
wear2[0] = wear2[max_td_count-1]
END
;
tipdresscnt2 = tipdresscnt2+1 ;INCREMENT TIP DRESS COUNT
IF SIG(1297) THEN ;NEW TIP STEPPER RESET GUN 2 (NTSR)
tipdresscnt2 = 1 ;RESET TIP DRESS COUNT
END ;IF SIG(1297), NEW TIP STEPPER RESET GUN 2 (NTSR)
;
; **************** GUN 2 TIP WEAR TO VARIABLES ****************
; READ AND LOG TIP WEAR VALUES
wear_m2[measure_count2] = SGCHIP(2,0) ;WRITE ABRASION VALUE OF MOVING CAP TO
wear_m2[] ARRAY
tipwear_m2 = wear_m2[measure_count2] ;INTERFACE SCREEN VARIABLE (MOVING CAP)
wear_f2[measure_count2] = SGCHIP(2,1) ;WRITE ABRASION VALUE OF FIXED CAP TO wear_f2[]
ARRAY

[43]
tipwear_f2 = wear_f2[measure_count2] ;INTERFACE SCREEN VARIABLE (FIXED CAP)
wear2[measure_count2] = wear_m2[measure_count2]+wear_f2[measure_count2] ;WRITE ABRASION
VALUE OF TOTAL WEAR TO wear2[] ARRAY
wear_if2 = wear2[measure_count2] ;INTERFACE SCREEN VARIABLE (TOTAL WEAR)
; STEEL SPOT WELDING TIP CUT WARNING LEVEL GUN 1 (MIN WEAR BETWEEN TIP DRESSES)
wear_flt1 = 0.05 ;STEEL SPOT WELDING (0.05)
;
wear_m2[measure_count2+1] = 999 ;SET LEADING EDGE OF WEAR READINGS (MOVING CAP)
wear_f2[measure_count2+1] = 999 ;SET LEADING EDGE OF WEAR READINGS (FIXED CAP)
wear2[measure_count2+1] = 999 ;SET LEADING EDGE OF WEAR READINGS (TOTAL WEAR)
;
; **************** TIP dress CUTTER DULL WARNNIG GUN 2 ****************
; LAST 10 READINGS AVERAGE GREATER THAN 0.2mm WEAR
;
;MOVING CAP CALCULATIONS
IF SIG(1297) THEN ;NEW TIP STEPPER RESET GUN 2 (NTSR)
cutter2_m_delta = wear_m2[measure_count2]; TIP WEAR MEASURED ON A NEW MOVING WELD
CAP
ntsr_m_flag = TRUE ;SET NEW TIP STEPPER RESET FLAG
GOTO skip_m2_wear_ca
END ;IF SIG(1297), NEW TIP STEPPER RESET GUN 2 (NTSR)
;
IF ntsr_m_flag==TRUE THEN ;LAST MEASURE WAS ON NEW CAPS
cutter2_m[0] = wear_m2[measure_count2]-cutter2_m_delta; TIP WEAR MEASURED ON A
DRESSED MOVING WELD CAP
ntsr_m_flag = FALSE ;RESET ntsr_flag TO OFF
END ;IF ntsr_m_flag == TRUE THEN ;LAST MEASURE WAS ON NEW CAPS
;
IF measure_count2==1 THEN ;COUNT RESET
cutter2_m[0] = wear_m2[measure_count2]-wear_m2[max_td_count]; TIP WEAR MEASURED ON A
DRESSED MOVING WELD CAP
GOTO 102
END
;
cutter2_m[0] = wear_m2[measure_count2]-wear_m2[measure_count2-1]; TIP WEAR MEASURED ON
A DRESSED MOVING WELD CAP
102
;
cutter2_m[11] = cutter2_mm[10] ;INCREMENT MEMORY BANK (MOVING)
cutter2_m[10] = cutter2_mm[9] ;INCREMENT MEMORY BANK (MOVING)
cutter2_m[9] = cutter2_mm[8] ;INCREMENT MEMORY BANK (MOVING)
cutter2_m[8] = cutter2_mm[7] ;INCREMENT MEMORY BANK (MOVING)
cutter2_m[7] = cutter2_mm[6] ;INCREMENT MEMORY BANK (MOVING)
cutter2_m[6] = cutter2_mm[5] ;INCREMENT MEMORY BANK (MOVING)
cutter2_m[5] = cutter2_mm[4] ;INCREMENT MEMORY BANK (MOVING)
cutter2_m[4] = cutter2_mm[3] ;INCREMENT MEMORY BANK (MOVING)
cutter2_m[3] = cutter2_mm[2] ;INCREMENT MEMORY BANK (MOVING)
cutter2_m[2] = cutter2_mm[1] ;INCREMENT MEMORY BANK (MOVING)
cutter2_m[1] = cutter2_m[0] ;INPUT NEW VALUE
;
FOR m = 1 TO 10 ;SET MOVING TIP WEAR MEMORY
cutter2_mm[m] = cutter2_m[m]
END
;

[44]
delta2_m = 0 ;RESET DELTA2_M FOR CALCULATION
FOR c = 2 TO 11
delta2_m = cutter2_m[c]+delta2_m ;ADD LAST 10 TIP CUTTER VALUES
END
avg_m2 = delta2_m/10 ;AVG OF LAST 10 READINGS
diff1_m2 = ABS(avg_m2) ;(MOVING)
PRINT "AVERAGE MOVING TIP WEAR ",diff1_m2
skip_m2_wear_ca:
;
;FIXED CAP CALCULATIONS
IF SIG(1297) THEN ;NEW TIP STEPPER RESET GUN 2 (NTSR)
cutter2_f_delta = wear_f2[measure_count2]; TIP WEAR MEASURED ON A NEW FIXED WELD CAP
ntsr_f_flag = TRUE ;SET NEW TIP STEPPER RESET FLAG
GOTO skip_f2_wear_ca
END ;IF SIG(1297), NEW TIP STEPPER RESET GUN 2 (NTSR)
;
IF ntsr_f_flag==TRUE THEN ;LAST MEASURE WAS ON NEW CAPS
cutter2_m[0] = wear_m2[measure_count2]-cutter2_m_delta; TIP WEAR MEASURED ON A
DRESSED MOVING WELD CAP
ntsr_f_flag = FALSE ;RESET ntsr_flag TO OFF
END ;IF ntsr_f_flag == TRUE THEN ;LAST MEASURE WAS ON NEW CAPS
;
IF measure_count2==1 THEN ;COUNT RESET
cutter2_f[0] = wear_f2[measure_count2]-wear_f2[max_td_count]; TIP WEAR MEASURED ON A
DRESSED FIXED WELD CAP
GOTO 202
END
;
cutter2_f[0] = wear_f2[measure_count2]-wear_f2[measure_count2-1]; TIP WEAR MEASURED ON A
DRESSED FIXED WELD CAP
;
202
cutter2_f[11] = cutter2_fm[10] ;INCREMENT MEMORY BANK (FIXED)
cutter2_f[10] = cutter2_fm[9] ;INCREMENT MEMORY BANK (FIXED)
cutter2_f[9] = cutter2_fm[8] ;INCREMENT MEMORY BANK (FIXED)
cutter2_f[8] = cutter2_fm[7] ;INCREMENT MEMORY BANK (FIXED)
cutter2_f[7] = cutter2_fm[6] ;INCREMENT MEMORY BANK (FIXED)
cutter2_f[6] = cutter2_fm[5] ;INCREMENT MEMORY BANK (FIXED)
cutter2_f[5] = cutter2_fm[4] ;INCREMENT MEMORY BANK (FIXED)
cutter2_f[4] = cutter2_fm[3] ;INCREMENT MEMORY BANK (FIXED)
cutter2_f[3] = cutter2_fm[2] ;INCREMENT MEMORY BANK (FIXED)
cutter2_f[2] = cutter2_fm[1] ;INCREMENT MEMORY BANK (FIXED)
cutter2_f[1] = cutter2_f[0] ;INPUT NEW VALUE
;
FOR m = 1 TO 10 ;SET MOVING TIP WEAR MEMORY
cutter2_fm[m] = cutter2_f[m]
END
;
delta2_f = 0 ;RESET DELTA2_f FOR CALCULATION
FOR c = 2 TO 11
delta2_f = cutter2_f[c]+delta2_f ;ADD LAST 10 TIP CUTTER VALUES
END
avg_f2 = delta2_f/10 ;AVG OF LAST 10 READINGS
diff1_f2 = ABS(avg_f2) ;(FIXED)

[45]
PRINT "AVERAGE FIXED TIP WEAR ",diff1_f2
skip_f2_wear_ca:
;
; **************** TIP dress CUT WARNING GUN 2 ****************
;TIP dress CUT WARNING (NOT ENOUGH MATERIAL CUT FROM TIPS)
;
diff2 = wear_f2[measure_count2]-wear_m2[measure_count2] ;CALCULATE DIFFERENCE BETWEEN
MOVING AND FIXED CAPS
IF SIG(-1297) THEN ;NEW TIP STEPPER RESET GUN 2 (NTSR)
IF (wear_m2[measure_count2]<=(wear_m2[measure_count2-1]+wear_flt1)) OR
(wear_f2[measure_count2]<=(wear_f2[measure_count2-1]+wear_flt1)) THEN
PRINT "WEAR MEASUREMENT FROM PREVIOUS CUT ",wear2[measure_count2-1]
PRINT " "
PRINT "WEAR MEASUREMENT FROM CURRENT CUT ",wear2[measure_count2]
alarm[18] = 1 ; TD CUT NOT SUFFICIENT
SIGNAL 248 ; TD FAULT TD CUT NOT SUFFICIENT
PULSE 2121,1 ; PULSE TIP DRESS REQUEST TO PLC
wearwarn = wearwarn+1 ; INCREMENT WEAR WARNING COUNT
IF wearwarn>1 THEN; IF WARNING MORE THAN ONCE
SIGNAL 248 ; TD FAULT TD CUT NOT SUFFICIENT
WAIT SIG(1238) OR SIG(1007); TD CUT NOT SUF ACK(PLC) AND RESET
PULSE 2121,1 ; PULSE TIP DRESS REQUEST TO PLC
alarm[18] = 0 ; TD CUT NOT SUFFICIENT RESET
END ; IF WARNING MORE THAN ONCE
ELSE
SIGNAL -248;RESET TD FAULT TD CUT NOT SUFFICIENT
alarm[18] = 0 ; TD CUT NOT SUFFICIENT RESET
wearwarn = 0; RESET TD CUT NOT SUFFICIENT
END
END
;
; **************** WRONG TIP GUN 2 ****************
;TIP WEAR ON 1ST MEASURE GREATER THAN 5mm
;
IF SIG(1297) THEN ;NEW TIP STEPPER RESET GUN 2 (NTSR)
dress_cnt2 = 1 ;NTSR, RESET TIP DRESS COUNTER
IF wear_f2[measure_count2]>=wrong_tip2 OR wear_f2[measure_count2]<=(0-wrong_tip2) THEN
SIGNAL 301 ;GUN 2 WRONG TIP ON ROBOT (RESET IN init PROGRAM)
END
IF wear_m2[measure_count2]>=wrong_tip2 OR wear_m2[measure_count2]<=(0-wrong_tip2) THEN
SIGNAL 301 ;GUN 2 WRONG TIP ON ROBOT (RESET IN init PROGRAM)
END
END ;IF SIG(1297), NEW TIP STEPPER RESET GUN 2 (NTSR)
;************************************************
; END GUN 2
;************************************************
;
END ; CASE OF

5.10 ped_wearc1() ;PEDESTAL WEAR MEASUREMENT

[46]
;************************************************
; COMPANY : RIVIAN
; PROGRAM : ped_wearc1, PEDESTAL WEAR MEASUREMENT CALCULATIONS
; REVISED LAST: 01/04/2023 REV 01
; Produced by RIVIAN KAWASAKI ROBOTICS DEV
;************************************************
;THIS PROGRAM IS INDEPENDENT MOTION SERVO GUN
;MOTION ONLY USING SGINDP INTERPOLATION TYPE
;KI320[ ] MUST BE ACTIVE IN MOTION PROGRAM
;ELSE ERROR WILL OCCUR
;
;IF PULLED TIP BYPASS GOTO END OF ROUTINE
IF SIG(1240) GOTO 999 ;PULLED TIP BYPASS
;
;EXECUTE KI320 IF IN TEACH MODE FOR TEACH PROCEDURE
IF SIG(106) THEN ;ROBOT IN TEACH
;ENABLES INDEPENDENT MOTION FOR BACKGROUND TIP DRESS
KI320[ 7 ] ;ENABLE INDEPENDENT MOTION JT7 PED GUN 1
END
;
SIGNAL 482 ;IM M1 TIP CAL IN PROCESS
SIGNAL -253 ;RESET TIP CAL MEASURE COMPLETE INT FLAG
;
1; TIP CAL PED GUN 1 POSITION (SCHEDULE 0, GUN STAT 2/K)
SGINDP SPEED9 ACCU1 TIMER0 TOOL1 WORK0 CLAMP1 (ON,0,1,2) OX=1 WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[0,0,0,0,0,0,0,-10.919] ;MEASURE 1
;
WAIT SIG(1) ;IM M1 COMPLETE
IF SIG(-1) GOTO 1; ANTI WAIT OVERRIDE
;
SIGNAL -1 ;RESET IM M1 COMPLETE
;
;LABEL TO JUMP TO, FINISHED TIP
; CALIBRATION
999;DONE
;
;FLAG TO TELL ROBOT THAT TIP WEAR
; ROUTINE HAS ENDED
SIGNAL -482 ;IM M1 IN PROCESS
SIGNAL 253 ;TIP WEAR MEASURE COMPLETE INT FLAG

5.11 pg20_2(); MAIN SINGLE PEDESTAL SSW1

;************************************************
; COMPANY : RIVIAN
; PROGRAM : pg20, R1T MAIN SINGLE PEDESTAL SSW1 EXAMPLE
; REVISED LAST: 08/11/2021
; Produced by : RIVIAN KAWASAKI ROBOTICS DEV
;************************************************
;
CALL pgverify(20); PROGRAM VERIFY

[47]
;
;ENABLES INDEPENDENT MOTION FOR BACKGROUND TIP DRESS
KI320[ 8 ] ;ENABLE INDEPENDENT MOTION JT8 PED GUN 1
;
CALL mov_home;MOVE TO HOME
;
CALL atc_verify(1); VERIFY CORRECT TOOL (LH EE1)
;
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
;
CALL enttool(1); REQUEST TO ENTER TOOL 1 RBS-060L
;
CALL entzone(6); REQUEST TO ENTER Z6 W/ RBS-060-01,02,03 Z4
;
CALL entzone(12); REQUEST TO ENTER Z12 W/ RBS-060-02 MAINTENACE POS
;
WAIT SIG(-1141) ; CHECK FOR NO PP #1 (R1T)
WAIT SIG(-1157) ; CHECK FOR NO PP #3 (COMM)
;
CALL cylopn_multiv_c(1,2,3,0,0,0,0,0,0,0,1);VALVE OPEN 1-3 / TOOL 1
;
JOINT SPEED6 ACCU3 TIMER0 TOOL1 WORK0 CLAMP1 (OFF,0,1,1) OX= WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[-134.93,7.3757,-13.067,-77.694,46.371,28.647,-2901.6,158] ;
JOINT SPEED6 ACCU3 TIMER0 TOOL1 WORK0 CLAMP1 (OFF,0,1,1) OX= WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[-171.99,38.601,-46.129,-16.894,26.954,57.376,-4443,158] ;
;
; ****** ABOVE PICK ******
LINEAR SPEED4 ACCU2 TIMER0 TOOL1 WORK0 CLAMP1 (OFF,0,1,1) OX= WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[-166.55,56.316,-46.744,-25.991,29.024,63.204,-4443,158] ;
;
; ******* AT PICK POSITION ******
LINEAR SPEED4 ACCU0 TIMER0 TOOL1 WORK0 CLAMP1 (OFF,0,1,1) OX= WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[-168.04,78.784,-35.371,-36.474,18.833,75.639,-4443,157.99] ;Pick 1
;
SIGNAL 213 ;ROBOT AT PICK POSITION 1
;
WAIT SIG(1141) OR SIG(1510) OR SIG(1013) ;PP #1 (R1T) or ABORT PICKUP or AUTO REPEAT
WAIT SIG(1157) OR SIG(1510) OR SIG(1013) ;PP #3 (COMM) or ABORT PICKUP or AUTO REPEAT

[48]
;
CALL cylcls_multiv_c(1,2,0,0,0,0,0,0,0,0,1);CLOSES VALVES 1-2 / TOOL 1
;
;******* ABOVE PICK 1 POSITION *******
LINEAR SPEED4 ACCU0 TIMER0 TOOL1 WORK0 CLAMP1 (OFF,0,1,1) OX= WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[-167.77,73.504,-38.376,-32.482,21.433,71.214,-4443,157.99]
;Depart
;
WAIT SIG(1141) OR SIG(1013) ;PP #1 (R1T) or AUTO REPEAT
WAIT SIG(1157) OR SIG(1013) ;PP #3 (COMM) or AUTO REPEAT
;
CALL exttool(1); REQUEST TO EXIT TOOL 1 RBS-060L
;
SIGNAL -213 ;ROBOT AT PICK POSITION 1 OFF
;
LINEAR SPEED5 ACCU3 TIMER0 TOOL1 WORK0 CLAMP1 (OFF,0,1,1) OX= WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[-165.95,50.392,-49.064,-25.335,31.29,61.928,-4443,158] ;
JOINT SPEED6 ACCU3 TIMER0 TOOL1 WORK0 CLAMP1 (OFF,0,1,1) OX= WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[-134.93,7.3759,-13.067,-77.694,46.371,28.647,-2901.6,89.999] ;
JOINT SPEED6 ACCU0 TIMER0 TOOL1 WORK0 CLAMP1 (OFF,0,1,1) OX= WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[-73.942,-40.67,9.1288,-95.347,72.914,56.268,-2901.6,158] ;
;
SIGNAL 85 ; CLEAR OF TOOL 1 RBS-060L
;
CALL extzone(6); EXIT Z6 W/ RBS-060-01,02,03 Z4
;
CALL extzone(12); EXIT Z12 W/ RBS-060-02 MAINTENACE POS
;
JOINT SPEED6 ACCU3 TIMER0 TOOL1 WORK0 CLAMP1 (OFF,0,1,1) OX= WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[-41.726,-42.792,-4.9712,-91.658,76.372,42.567,-1555.1,158] ;
;
; ******** PICKUP 1 END ********
JOINT SPEED7 ACCU2 TIMER0 TOOL1 WORK0 CLAMP1 (OFF,0,1,1) OX= WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[51.189,-42.792,-4.9713,-91.658,76.372,42.567,-1555.1,89.999] ;
JOINT SPEED7 ACCU2 TIMER0 TOOL1 WORK0 CLAMP1 (OFF,0,1,1) OX= WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[74.112,-41.753,1.7336,-92.657,9.9439,39.12,-2642.4,89.997] ;
JOINT SPEED7 ACCU2 TIMER0 TOOL1 WORK0 CLAMP1 (OFF,0,1,1) OX= WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[100.5,-26.162,9.8732,-93.817,-66.399,35.172,-2642.2,89.995] ;
;
;******** WELD PROCESS ********
;
WAIT SIG(-483);IM TD IN PROCESS OFF
WAIT SIG(1490) ;TIP DRESS DUMP RETURNED
;
CALL enttool(10); REQUEST TO ENTER TOOL 10 IM
;
KI321; DISABLE INDEPENDENT MOTION DURING PROCESS
;
CALL r1t_proc1_pg1; PEDESTAL GUN 1 PROCESS 1
;
SIGNAL 94 ; CLEAR OF TOOL 10 IM TD
;
;ENABLES INDEPENDENT MOTION FOR BACKGROUND TIP DRESS
KI320[ 8 ] ;ENABLE INDEPENDENT MOTION JT8 PED GUN 1

[49]
;
;
;******* MOVE TO SET DOWN *******
JOINT SPEED8 ACCU4 TIMER0 TOOL1 WORK0 CLAMP1 (OFF,0,1,1) OX= WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[91.098,-44.995,18.298,-89.465,-90.751,28.199,-2001,157.98] ;
JOINT SPEED8 ACCU4 TIMER0 TOOL1 WORK0 CLAMP1 (OFF,0,1,1) OX= WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[74.076,-41.75,1.7234,-92.659,10.024,39.137,-2642.9,158] ;
JOINT SPEED8 ACCU4 TIMER0 TOOL1 WORK0 CLAMP1 (OFF,0,1,1) OX= WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[51.189,-42.792,-4.9712,-91.658,76.372,42.567,-1555.1,158] ;
JOINT SPEED8 ACCU2 TIMER0 TOOL1 WORK0 CLAMP1 (OFF,0,1,1) OX= WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[-60.085,-42.122,-4.248,-89.933,36.956,41.867,-1223.7,158] ;
JOINT SPEED7 ACCU2 TIMER0 TOOL1 WORK0 CLAMP1 (OFF,0,1,1) OX= WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[-86.123,-29.444,7.8744,-94.812,-16.15,46.201,-2862.8,158] ;
;
;******* DROPOFF 1 PATH *******
;
CALL enttool(3); REQUEST TO ENTER TOOL3 RBS-070
;
JOINT SPEED7 ACCU4 TIMER0 TOOL1 WORK0 CLAMP1 (OFF,0,1,1) OX= WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[-43.182,26.439,-58.584,-132.42,-67.608,202.4,-5000,158] ;
JOINT SPEED7 ACCU4 TIMER0 TOOL1 WORK0 CLAMP1 (OFF,0,1,1) OX= WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[-9.5783,47.668,-68.457,-170.81,-41.329,220.69,-5813,158] ;
JOINT SPEED7 ACCU4 TIMER0 TOOL1 WORK0 CLAMP1 (OFF,0,1,1) OX= WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[-11.766,64.387,-60.656,-158.31,-33.889,210.59,-5813,158] ;
LINEAR SPEED4 ACCU4 TIMER0 TOOL1 WORK0 CLAMP1 (OFF,0,1,1) OX= WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[-10.7,59.553,-52.633,-154.71,-26.428,207.46,-5813,158] ;
LINEAR SPEED4 ACCU2 TIMER0 TOOL1 WORK0 CLAMP1 (OFF,0,1,1) OX= WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[-10.946,64.825,-54.053,-160.58,-38.892,212.82,-5813,158] ;
LINEAR SPEED4 ACCU1 TIMER0 TOOL1 WORK0 CLAMP1 (OFF,0,1,1) OX= WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[-10.78,61.417,-50.612,-159.28,-35.625,211.03,-5813,158] ;
LINEAR SPEED4 ACCU1 TIMER0 TOOL1 WORK0 CLAMP1 (OFF,0,1,1) OX= WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[-9.8805,70.75,-50.629,-166.67,-47.76,216.25,-5813,158] ;
;
; ****** ABOVE DROP ******
LINEAR SPEED4 ACCU1 TIMER0 TOOL1 WORK0 CLAMP1 (OFF,0,1,1) OX= WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[-9.8801,72.824,-51.372,-167.46,-51.848,216.89,-5813,158] ;
;
; ******* AT DROP POSITION ******
LINEAR SPEED4 ACCU0 TIMER0 TOOL1 WORK0 CLAMP1 (OFF,0,1,1) OX= WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[-9.884,79.314,-53.235,-167.81,-54.001,217.42,-5813,157.99] ;Drop
1
;
SIGNAL 214 ;ROBOT AT DROP POSITION 1
;
CALL cylopn_multiv_c(1,2,0,0,0,0,0,0,0,0,1);OPEN VALVES 1-2 / TOOL 1
;
;******* ABOVE DROP 1 POSITION *******
;
LINEAR SPEED4 ACCU1 TIMER0 TOOL1 WORK0 CLAMP1 (OFF,0,1,1) OX= WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[-10.218,75.271,-56.579,-167.85,-56.976,218.02,-5813.4,158]
;Depart
;
WAIT SIG(-1141) ; CHECK FOR NO PP #1 (R1T)
WAIT SIG(-1157) ; CHECK FOR NO PP #3 (COMM)

[50]
;
CALL exttool(3); REQUEST TO EXIT TOOL3 RBS-070
;
SIGNAL -214 ;ROBOT AT DROP POSITION 1 OFF
;
JOINT SPEED6 ACCU1 TIMER0 TOOL1 WORK0 CLAMP1 (OFF,0,1,1) OX= WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[-11.241,67.542,-64.56,-167.63,-64.882,219.4,-5813.4,158] ;
;
JOINT SPEED6 ACCU4 TIMER0 TOOL1 WORK0 CLAMP1 (OFF,0,1,1) OX= WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[-11.684,54.173,-64.061,-166.91,-67.092,217.94,-5813.4,158] ;
JOINT SPEED6 ACCU4 TIMER0 TOOL1 WORK0 CLAMP1 (OFF,0,1,1) OX= WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[-41.597,-25.053,-13.51,-138.85,-43.161,124.45,-4984.8,158] ;
JOINT SPEED6 ACCU1 TIMER0 TOOL1 WORK0 CLAMP1 (OFF,0,1,1) OX= WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[-68.846,2.6108,11.033,-94.145,83.888,59.289,-3642.5,158] ;
;
SIGNAL 87 ; CLEAR OF TOOL 3 RBS-070
;
;******** DROPOFF 1 END ********
12;RETURN FROM POUNCE
;
CALL mov_home;MOVE TO HOME
;
;************************************************
483;VERIFY INDEPENDENT TID DRESS IS COMPLETE
SIGNAL (11);WAITING IN LOOP
WAIT SIG(-483);IM TD IN PROCESS OFF
IF SIG(483) GOTO 483; ANTI WAIT OVERRIDE
SIGNAL (-11);WAITING IN LOOP OFF
;************************************************
KI321 ; IM OFF

5.12 r1t_proc1_pg1(); SINGLE PEDESTAL PROC 1 SSW 1

;************************************************
; COMPANY : RIVIAN AUTOMOTIVE
; PROGRAM : r1t_proc1_pg1, SINGLE PEDESTAL PROC 1 SSW 1 GUN 1 EXAMPLE
; REVISED LAST: 7/30/2020
; Produced by : RIVIAN KAWASAKI ROBOTICS DEV
;************************************************
;
1; PULLED TIP BYPASS LBL
;
CALL wtr_chk(1); CHECK WATER ON AN NO PULLED TIP SSW1
;
FJOINT SPEED6 ACCU4 TIMER0 TOOL1 WORK0 CLAMP1 (OFF,0,1,1) OX= WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[147.21,7.223,2.075,-95.901,-22.21,61.732,-1400,90] ;
FJOINT SPEED6 ACCU4 TIMER0 TOOL1 WORK0 CLAMP1 (OFF,0,1,1) OX= WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[140.5,16.385,-24.328,-123.8,-48.181,85.184,-1400,90] ;
FLIN SPEED4 ACCU2 TIMER0 TOOL1 WORK0 CLAMP1 (OFF,0,1,1) OX= WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[152.46,4.744,-30.553,-140.98,-46.663,101.81,-1400,90] ;

[51]
FLIN SPEED4 ACCU2 TIMER0 TOOL1 WORK0 CLAMP1 (OFF,0,1,1) OX= WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[154.16,8.9295,-30.168,-139.87,-39.971,100.97,-1400,124.43] ;
FLIN SPEED4 ACCU2 TIMER0 TOOL1 WORK0 CLAMP1 (OFF,0,1,1) OX= WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[154.77,15.047,-29.569,-140.12,-39.171,101.01,-1400,106.23] ;
;
; ID# W-AY00010220-750 SCH# 1
FLIN SPEED4 ACCU0 TIMER0 TOOL1 WORK0 CLAMP1 (ON,1,1,1) OX= WX=
CL1=3.556,0.0,0.0,0.0,0.0,0.0,0.0 #[155.14,16.404,-29.092,-138.58,-37.057,99.59,-1400,4.8564] ;W-
AY00010220-750
;
FLIN SPEED4 ACCU2 TIMER0 TOOL1 WORK0 CLAMP1 (OFF,0,1,1) OX= WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[154.12,16.385,-28.321,-136.3,-37.179,96.562,-1399,41.107] ;
;
; ID# W-AY00010220-751 SCH# 2
FLIN SPEED4 ACCU0 TIMER0 TOOL1 WORK0 CLAMP1 (ON,2,1,1) OX= WX=
CL1=3.556,0.0,0.0,0.0,0.0,0.0,0.0 #[153.45,17.808,-28.621,-135.7,-37.805,96.209,-1399.2,5.5968] ;W-
AY00010220-751
;
FLIN SPEED4 ACCU2 TIMER0 TOOL1 WORK0 CLAMP1 (OFF,0,1,1) OX= WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[153.41,16.143,-29.327,-138.26,-39.757,99.353,-1400,97.129] ;
FLIN SPEED4 ACCU2 TIMER0 TOOL1 WORK0 CLAMP1 (OFF,0,1,1) OX= WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[151.44,10.96,-31.47,-139.29,-44.384,101.12,-1400,114.34] ;
FLIN SPEED4 ACCU2 TIMER0 TOOL1 WORK0 CLAMP1 (OFF,0,1,1) OX= WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[144.36,18.591,-30.098,-130.58,-47.725,93.808,-1400,114.34] ;
FLIN SPEED4 ACCU2 TIMER0 TOOL1 WORK0 CLAMP1 (OFF,0,1,1) OX= WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[146.77,23.414,-26.798,-127.92,-42.043,90.249,-1400,130.7] ;
;
; ID# W-AY00010220-700 SCH# 3
FLIN SPEED4 ACCU0 TIMER0 TOOL1 WORK0 CLAMP1 (ON,3,1,1) OX= WX=
CL1=3.556,0.0,0.0,0.0,0.0,0.0,0.0 #[146.92,23.555,-28.792,-130.97,-43.976,94.296,-1400,4.756] ;W-
AY00010220-700
;
FLIN SPEED4 ACCU2 TIMER0 TOOL1 WORK0 CLAMP1 (OFF,0,1,1) OX= WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[146.03,24.917,-26.948,-127.28,-42.657,89.829,-1400,46.954] ;
;
; ID# W-AY00010220-701 SCH# 4
FLIN SPEED4 ACCU0 TIMER0 TOOL1 WORK0 CLAMP1 (ON,4,1,1) OX= WX=
CL1=3.556,0.0,0.0,0.0,0.0,0.0,0.0 #[147.18,25.557,-26.027,-125.51,-39.335,91.318,-1400,4.7589] ;W-
AY00010220-701
;
FLIN SPEED4 ACCU2 TIMER0 TOOL1 WORK0 CLAMP1 (OFF,0,1,1) OX= WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[145.5,25.799,-26.213,-125.59,-42.288,88.174,-1400,115.77] ;
;
FJOINT SPEED4 ACCU2 TIMER0 TOOL1 WORK0 CLAMP1 (OFF,0,1,1) OX= WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[144.69,23.91,-27.612,-125.78,-43.584,89.061,-1400,159.78] ;
FJOINT SPEED6 ACCU4 TIMER0 TOOL1 WORK0 CLAMP1 (OFF,0,1,1) OX= WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[139.66,14.346,-25.688,-126,-50.879,87.105,-1400,89.999] ;
FJOINT SPEED6 ACCU4 TIMER0 TOOL1 WORK0 CLAMP1 (OFF,0,1,1) OX= WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[147.21,7.223,2.075,-95.901,-22.21,61.732,-1400,90] ;
;
;
;SSW PULLED TIP BYPASS MAINTENANCE FUNCTION
;END PROCESS IF NO PULLED TIP BYPASS CONDITION
;

[52]
IF SIG(1240) THEN
;
CALL r1t_proc1_pg1fr;CALL RIVIAN FAULT RECOVERY PROGRAM
;
GOTO 1; RETURN TO LBL 1 AND RESTART PROCESS
;
;
END
;
; PROCESS 1 COMPLETE LH
CALL proccomp(1)
;

5.13 r1t_proc1_pg1fr(); SINGLE PED PROC1 SSW1 GUN1


FAULT RECOVERY

;************************************************
; COMPANY : RIVIAN
; PROGRAM : r1t_proc1_lh_rfr, PEDESTAL RIVIAN FAULT RECOVERY SSW
; REVISED LAST: 06/24/2021
; Produced by : RIVIAN KAWASAKI ROBOTICS DEV
;************************************************
;ADD MOVES TO RFR COMMON (CLEAR OF TIP DRESS DUMP)
;
;*******************************************************
; RFR MAINTENANCE POSITION (CLEAR OF TIP DRESS DUMP)
;*******************************************************
LINEAR SPEED5 ACCU0 TIMER0 TOOL1 WORK0 CLAMP1 (OFF,0,1,1) OX= WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[147.21,7.2229,2.075,-95.901,-22.21,61.732,-1400,157.99] ;MAINT
;
; ENABLE INDEPENDENT MOTION AXIS 8
KI320[ 8 ]
;
SIGNAL 94 ; CLEAR OF TOOL 10
;
;MAINT POSITION ON
SIGNAL 5 ;ROBOT AT MAINTENANCE POSITION
;
;WAIT MAINTENANCE CLEAR
WAIT SIG(1008) ; MAINT POS CLEAR
;
;*******************************************************
; MAINTENANCE POSITION COMPLETE
;*******************************************************
;
CALL wtr_chk(1); CHECK WATER ON AN NO PULLED TIP SSW1
;
;MAINT POSITION OFF
SIGNAL -5 ;ROBOT AT MAINTENANCE POSITION
;--------------------------------

[53]
;
;IF TIP DRESS REQUIRED OR NEW TIP STEPPER RESET 1
IF SIG(1243) OR SIG(1257) THEN;
;
;************************************************
;WAIT INDEPENDENT MOTION TIP DRESS ROUTINE RUNNING
WAIT SIG(483); IM TIP DRESS IN PROCESS
;************************************************
;
;************************************************
;WAIT IM TIP DRESS FINISHED NOT RUNNING
WAIT SIG(-483); IM TIP DRESS IN PROCESS
;************************************************
;
; DISABLE INDEPENDENT MOTION
KI321
;
END
;
CALL enttool(10);PED TIP DRESSER
;
; DISABLE INDEPENDENT MOTION
KI321
;
;ADD MOVES TO BEGINNING OF PROCESS
JOINT SPEED5 ACCU4 TIMER0 TOOL1 WORK0 CLAMP1 (OFF,0,1,1) OX= WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[147.21,7.2229,2.075,-95.901,-22.21,61.732,-1400,157.99] ;
;

Servo Spot Weld Carried – Kawasaki Examples


6.1 pg01(); SINGLE CARRIED SSW1 MAINTENACE
;*******************************************************
; COMPANY : RIVIAN
; PROGRAM : pg01, SINGLE CARRIED SSW1 MAINTENANCE EXAMPLE
; REVISED LAST: 5/26/2021
; Produced by : RIVIAN KAWASAKI ROBOTICS DEV
;*******************************************************
;
CALL pgverify(1); VERIFY PROGRAM IS BEING CALLED BY PLC
;
;MOVE TO HOME
CALL mov_home;MOVE TO HOME
;
JOINT SPEED7 ACCU4 TIMER0 TOOL1 WORK0 CLAMP1 (OFF,0,1,1) OX= WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[13.29,-20,90,8.5356,-96.438,-93.636,125.22] ;

[54]
JOINT SPEED7 ACCU4 TIMER0 TOOL1 WORK0 CLAMP1 (OFF,0,1,1) OX= WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[-164.07,-20,90,8.5356,-96.438,-93.636,125.22] ;
;
;APPROACH TO MAINT POS
JOINT SPEED5 ACCU4 TIMER0 TOOL1 WORK0 CLAMP1 (OFF,0,1,1) OX= WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[-166.21,-5.076,-42.852,-19.723,44.63,-78.395,125] ;
;
10;AT MAINTENANCE POSITION
JOINT SPEED4 ACCU0 TIMER0 TOOL1 WORK0 CLAMP1 (OFF,0,1,1) OX= WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[-175.44,35.384,-59.546,-19.723,63.202,-78.395,125] ;MAINT
;
SIGNAL 5 ;ROBOT AT MAINTENANCE POSITION ON
;
;IF TIP CHANGE REQUIRED GROUP 1, WATER OFF, SET NEW CAP VARIABLE
IF SIG(1258) THEN; TIP CHANGE REQUIRED GROUP 1
SIGNAL (722); VALVE CLOSED
WAIT SIG(1722) AND SIG(-1721); VALVE CLOSED AND WATER OFF
new_cap = 1
END;
;
;WAIT MAINTENANCE CLEAR OR TIP ALIGNMENT I/F (P.B.)
WAIT SIG(1008) OR SIG(1249) ;
;
IF SIG(1008) GOTO 20; MAINT POS C
IF SIG(1249) THEN; IF I/F (P.B.) TIP ALIGNMENT CLS
;
;****TIP ALIGNMENT POSITION GUN OPEN 4MIL****
JOINT SPEED5 ACCU0 TIMER0 TOOL1 WORK0 CLAMP1 (OFF,0,1,1) OX= WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[-175.44,35.384,-59.546,-19.723,63.202,-78.395,4] ;MAINT
;
;WAIT MAINTENANCE CLEAR OR I/F PB T
WAIT SIG(1008) OR SIG(1250) ;WAIT MAINT POS CLR OR I/F (P.B.) TIP ALIGNMENT OPEN
;
END
;
GOTO 10; MAINTENANCE POSITION
;
;**********************************
20; MAINTENANCE POSITION COMPLETE
;**********************************
;
CALL wtr_chk(1); CHECK WATER ON, NOT PULLED TIP
;
;IF TIP DRESS BYPASS ON AND STEPPERS ARE RESET GROUP 1
;THEN SEAT CAPS AND TIP MEASUREMENT
IF SIG(1245) AND SIG(1257) THEN;
CALL seat_cap(1); NEW TIPS SEAT CAPS
END
;
SIGNAL -5 ;ROBOT AT MAINT POS OFF
;
JOINT SPEED5 ACCU4 TIMER0 TOOL1 WORK0 CLAMP1 (OFF,0,1,1) OX= WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[-166.21,-5.076,-42.852,-19.723,44.63,-78.395,125] ;
;

[55]
JOINT SPEED7 ACCU4 TIMER0 TOOL1 WORK0 CLAMP1 (OFF,0,1,1) OX= WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[-164.07,-20,90,8.5356,-96.438,-93.636,125.22] ;
;
JOINT SPEED7 ACCU0 TIMER0 TOOL1 WORK0 CLAMP1 (OFF,0,1,1) OX= WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[13.29,-20,90,8.5356,-96.438,-93.636,125.21] ;
;
CALL mov_home;MOVE TO HOME

6.2 pg02(); SINGLE CARRIED SSW1 TIP DRESS


;************************************************
; COMPANY : RIVIAN
; PROGRAM : pg02(), SINGLE CARRIED TIP DRESS GUN 1
; REVISED LAST: 06/15/2021 REV 2.3 (SSW)
; Produced by : RIVIAN KAWASAKI ROBOTICS DEV
;************************************************
;
;VERIFY PROGRAM
CALL pgverify(2)
;
;MOVE TO HOME
CALL mov_home;MOVE TO HOME
;
CALL td_gun1
;
;MOVE TO HOME
CALL mov_home;MOVE TO HOME

6.3 pg02_1(); MULTI CARRIED SSW 1 TIP DRESS


;************************************************
; COMPANY : RIVIAN
; PROGRAM : pg02(), MULTI CARRIED SSW 1 TIP DRESS EXAMPLE
; REVISED LAST: 06/2/2021 REV2.3 (SSW)
; Produced by : RIVIAN KAWASAKI ROBOTICS DEV
;************************************************
;
;VERIFY PROGRAM
CALL pgverify(2)
;
;MOVE TO HOME
CALL mov_home;MOVE TO HOME
;
;************************************************
;TIP DRESS BASED ON CURRENT TOOL HELD BY ROBOT
;COMMENT OUT UNUSED GUNS
;
;SET TOOL ID BIT
eoat_present = BITS(1531,4) ;TOOL ID BITS
;
; IF TOOL ID BIT 15
IF BITS(1531,4)==15 THEN
CALL mov_home

[56]
END
; IF TOOL ID BIT 1
IF BITS(1531,4)==1 THEN
CALL td_gun1
END
; IF TOOL ID BIT 2
IF BITS(1531,4)==2 THEN
CALL td_gun2
END
; IF TOOL ID BIT 3
IF BITS(1531,4)==3 THEN
CALL td_gun3
END
; IF TOOL ID BIT 4
IF BITS(1531,4)==4 THEN
;CALL td_gun4
END
; IF TOOL ID BIT 5
IF BITS(1531,4)==5 THEN
;CALL td_gun5
END
; IF TOOL ID BIT 6
IF BITS(1531,4)==6 THEN
;CALL td_gun6
END
;
; IF TOOL ID BIT 7
IF BITS(1531,4)==7 THEN
;CALL td_gun7
END
;
; IF TOOL ID BIT 8
IF BITS(1531,4)==8 THEN
;CALL td_gun8
END
;
GOTO 20
;
;SOMETHING ELSE WENT WRONG
;STYLE SELECT BITS NOT IN RANGE
;OR SOMETHING ELSE WENT WRONG
;HALT PROGRAM
998
alarm[5] = 1
HALT
;
20; CONTINUE HOME
;
;MOVE TO HOME
CALL mov_home;MOVE TO HOME

6.4 pg20(); MAIN SINGLE CARRIED SSW 1


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

[57]
; COMPANY : RIVIAN
; PROGRAM : pg20, R1T MAIN SINGLE CARRIED SSW1 EXAMPLE
; REVISED LAST: 08/11/2021
; 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
;
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
;*******************************************************
; WELD PATH Process 1 (SW 1)
;
CALL enttool(1);ENTER TOOL 1 RRL-020
;
CALL r1t_proc1_sw1;WELD PROCRESS 1 RRL-020-04
;
SIGNAL (85) ;CLEAR TOOL 1 RRL-020
;
12;RETURN TO HOME
;
CALL mov_home;MOVE TO HOME

6.5 pg20_1(); MAIN MULTI CARRIED SSW 1


;************************************************
; COMPANY : RIVIAN
; PROGRAM : pg20, R1T MAIN MULTI CARRIED SSW1 EXAMPLE
; REVISED LAST: 08/11/2021
; Produced by : RIVIAN KAWASAKI ROBOTICS DEV
;************************************************
;
CALL pgverify(20); VERIFY PROGRAM IS BEING CALLED BY PLC
;
CALL mov_home;MOVE TO HOME
;
CALL atc_verify(1); VERIFY WELD GUN 1
;
CALL mov_pnce;MOVE TO POUNCE

[58]
;
;************************************************
10;POUNCE LOOP LABEL
;
SIGNAL 11 ; RBT IN PROGRAM LOOP
SIGNAL 8 ; AT POUNCE
WAIT SIG(1002) OR SIG(1014) ; CYCLE START OR RETURN TO HOME
SIGNAL -11 ; ROBOT IN PROGRAM LOOP OFF
SIGNAL -8 ; AT POUNCE OFF
IF SIG(1014) GOTO 12 ; RETURN HOME
IF SIG(1002) GOTO 11 ; START CYCLE LABEL
;
GOTO 10 ;ANTI WAIT OVERRIDE
;
;************************************************
11; START CYCLE LABEL
;
CALL r1c_proc1_wg1; COMMON 10TF1 Proc1 Gun 1
;
CALL proccomp(1) ; PROCESS 1 COMPLETE
;
CALL atc_verify(2); VERIFY WELD GUN 2
;
CALL r1c_proc2_wg2; COMMON 10TF1 Proc1 Gun 2
;
CALL proccomp(2) ; PROCESS 2 COMPLETE
;
SIGNAL 85 ; Clear Of Tool 1 - TF1
;
;************************************************
12;RETURN HOME LABEL
;
CALL mov_home;MOVE TO HOME

6.6 r1c_proc1_rfr(); MULTI CARRIED PROC1 SSW1 GUN1


FAULT RECOVERY
;************************************************
; COMPANY : RIVIAN
; PROGRAM : r1c_proc1_rfr, CARRIED PROC 1 SSW1 GUN 1 FAULT RECOVERY EXAMPLE
; REVISED LAST: 06/15/2021
; Produced by : RIVIAN KAWASAKI ROBOTICS DEV
;************************************************
;ADD MOVES TO TIP CHANGE COMMON
JOINT SPEED5 ACCU2 TIMER0 TOOL1 WORK0 CLAMP1 (OFF,0,1,1) OX= WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[-61.89,-16.279,-42.946,-0.35344,-61.877,62.587,150] ;
JOINT SPEED5 ACCU2 TIMER0 TOOL1 WORK0 CLAMP1 (OFF,0,1,1) OX= WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[-56.05,-26.645,23.11,-1.9162,-102.75,90.079,150] ;
;
;APPROACH TO MAINT POS

[59]
JOINT SPEED5 ACCU2 TIMER0 TOOL1 WORK0 CLAMP1 (OFF,0,1,1) OX= WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[65.998,-26.645,23.11,-1.9162,-102.75,90.079,150] ;
;
;*******************************************************
; MAINTENANCE POSITION
;*******************************************************
JOINT SPEED5 ACCU0 TIMER0 TOOL1 WORK0 CLAMP1 (OFF,0,1,1) OX= WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[83.66,-7.209,-28.511,-2.092,-68.591,99.082,130] ;MAINT
;
;MAINT POSITION ON
SIGNAL 5 ;ROBOT AT MAINTENANCE POSITION
;
;WAIT MAINTENANCE CLEAR
WAIT SIG(1008) ;
;
;*******************************************************
; MAINTENANCE POSITION COMPLETE
;*******************************************************
;
;************************************************
IF SIG(-1721) THEN; IF WATER OFF, RESET WATER
CALL wtr_chk(1) ;SSW WATER CHECK 1
END
;
;PULLED TIP BYPASS OFF
WAIT SIG(-1240); WAIT PULLED TIP BYPASS OFF
;
;MAINT POSITION OFF
SIGNAL -5 ;ROBOT AT MAINTENANCE POSITION
;--------------------------------
;
;ADD MOVES TO TIP CHANGE COMMON
JOINT SPEED7 ACCU4 TIMER0 TOOL1 WORK0 CLAMP1 (OFF,0,1,1) OX= WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[65.998,-26.645,23.11,-1.9162,-102.75,90.079,150] ;
;
;IF TIP DRESS REQUIRED OR NEW TIP STEPPER RESET 1
IF SIG(1243) OR SIG(1257) THEN;
;ADD MOVES TO GET TO TIP DRESS COMMON IF NEEDED
;
;TIP DRESS GUN 1
CALL td_gun1
;
;ADD MOVES TO BEGINNING OF PROCESS

[60]
JOINT SPEED7 ACCU3 TIMER0 TOOL1 WORK0 CLAMP1 (OFF,0,1,1) OX= WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[-3.3926,-23.4,9.2649,-3.3052,-100.47,96.244,150] ;
;
END
;
JOINT SPEED9 ACCU2 TIMER0 TOOL1 WORK0 CLAMP1 (OFF,0,1,1) OX= WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[-0.37272,-21.848,-2.9369,0.44654,-27.846,-154.24,150] ;

6.7 r1c_proc1_wg1; MULTI CARRIED PROC 1 SSW 1 GUN 1


;************************************************
; COMPANY : RIVIAN
; PROGRAM : r1c_proc1_wg1, CARRIED PROC 1 SSW1 GUN 1 EXAMPLE
; REVISED LAST: 06/15/2021
; Produced by : RIVIAN KAWASAKI ROBOTICS DEV
;************************************************
1;PULLED TIP BYPASS LBL
;
JOINT SPEED9 ACCU3 TIMER0 TOOL1 WORK0 CLAMP1 (OFF,0,1,1) OX= WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[-0.37272,-21.848,-2.9369,0.44654,-27.846,-154.24,150] ;
;
CALL enttool(1);REQUEST TO ENTER TOOL 1 OP010 TF1
;
LINEAR SPEED7 ACCU3 TIMER0 TOOL1 WORK0 CLAMP1 (OFF,0,1,1) OX= WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[-28.985,-17.22,-21.778,-76.314,-14.77,-105.02,100] ;
LINEAR SPEED7 ACCU2 TIMER0 TOOL1 WORK0 CLAMP1 (OFF,0,1,1) OX= WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[-26.617,-5.5207,-12.762,-38.431,-19.339,-141.39,99.999] ;
LINEAR SPEED5 ACCU2 TIMER0 TOOL1 WORK0 CLAMP1 (OFF,0,1,1) OX= WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[-26.502,-9.5576,-25.441,-60.686,-13.532,-118.26,60] ;
;
; ID# W_AY00013513_465 SCH# 1
LINEAR SPEED5 ACCU0 TIMER0 TOOL1 WORK0 CLAMP1 (ON,1,1,1) OX= WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[-25.582,-10.302,-25.474,-56.427,-13.146,-122.89,3.4927]
;W_AY00013513_465
;
LINEAR SPEED5 ACCU2 TIMER0 TOOL1 WORK0 CLAMP1 (OFF,0,1,1) OX= WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[-26.502,-9.5576,-25.441,-60.686,-13.532,-118.26,60] ;
LINEAR SPEED7 ACCU2 TIMER0 TOOL1 WORK0 CLAMP1 (OFF,0,1,1) OX= WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[-26.617,-5.5207,-12.762,-38.431,-19.339,-141.39,100] ;
LINEAR SPEED7 ACCU3 TIMER0 TOOL1 WORK0 CLAMP1 (OFF,0,1,1) OX= WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[-27.096,-8.1771,-14.774,-44.505,-17.865,-135.6,100] ;
LINEAR SPEED7 ACCU3 TIMER0 TOOL1 WORK0 CLAMP1 (OFF,0,1,1) OX= WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[-27.075,-7.7778,-13.561,-42.748,-18.439,-137.45,100] ;
LINEAR SPEED7 ACCU3 TIMER0 TOOL1 WORK0 CLAMP1 (OFF,0,1,1) OX= WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[-23.077,-16.101,-25.895,-84.497,-37.663,-72.757,150] ;
LINEAR SPEED7 ACCU2 TIMER0 TOOL1 WORK0 CLAMP1 (OFF,1,1,1) OX= WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[-26.35,-15.524,-38.66,-99.718,-41.351,-51.922,150] ;
LINEAR SPEED5 ACCU2 TIMER0 TOOL1 WORK0 CLAMP1 (OFF,1,1,1) OX= WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[-19.783,-12.955,-28.393,-68.684,-30.401,-83.829,60] ;
;
; ID# W_AY00013513_462 SCH# 2

[61]
LINEAR SPEED5 ACCU0 TIMER0 TOOL1 WORK0 CLAMP1 (ON,2,1,1) OX= WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[-20.188,-13.622,-28.378,-67.756,-31.017,-84.786,3.4765]
;W_AY00013513_462
;
LINEAR SPEED5 ACCU2 TIMER0 TOOL1 WORK0 CLAMP1 (OFF,1,1,1) OX= WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[-19.783,-12.955,-28.393,-68.684,-30.401,-83.829,60] ;
LINEAR SPEED7 ACCU2 TIMER0 TOOL1 WORK0 CLAMP1 (OFF,1,1,1) OX= WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[-26.35,-15.524,-38.66,-99.718,-41.351,-51.922,150] ;
LINEAR SPEED7 ACCU3 TIMER0 TOOL1 WORK0 CLAMP1 (OFF,0,1,1) OX= WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[-23.077,-16.101,-25.895,-84.497,-37.663,-72.757,150] ;
LINEAR SPEED7 ACCU2 TIMER0 TOOL1 WORK0 CLAMP1 (OFF,0,1,1) OX= WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[-7.8265,-48.647,-60.163,-148.96,-21.592,-8.7455,150.77] ;
LINEAR SPEED7 ACCU2 TIMER0 TOOL1 WORK0 CLAMP1 (OFF,0,1,1) OX= WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[-15.146,-44.262,-69.399,-148.66,-37.144,-6.4661,148.29] ;
LINEAR SPEED5 ACCU2 TIMER0 TOOL1 WORK0 CLAMP1 (OFF,0,1,1) OX= WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[-16.822,-38.872,-74.037,-154.8,-47.489,1.2609,150.77] ;
LINEAR SPEED5 ACCU2 TIMER0 TOOL1 WORK0 CLAMP1 (OFF,0,1,1) OX= WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[1.5943,-33.614,-71.525,-179.02,-37.49,46.368,154.8] ;
LINEAR SPEED5 ACCU2 TIMER0 TOOL1 WORK0 CLAMP1 (OFF,0,1,1) OX= WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[1.511,-42.517,-74.135,-178.68,-31.201,46.023,20] ;
;
; ID# W_AY00013513_456 SCH# 3
LINEAR SPEED5 ACCU0 TIMER0 TOOL1 WORK0 CLAMP1 (ON,3,1,1) OX= WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[1.5031,-43.197,-74.361,-178.65,-30.747,45.989,3.5819]
;W_AY00013513_456
;
LINEAR SPEED5 ACCU2 TIMER0 TOOL1 WORK0 CLAMP1 (OFF,0,1,1) OX= WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[1.511,-42.517,-74.135,-178.68,-31.201,46.023,20] ;
LINEAR SPEED5 ACCU2 TIMER0 TOOL1 WORK0 CLAMP1 (OFF,0,1,1) OX= WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[1.5943,-33.614,-71.525,-179.02,-37.49,46.368,154.8] ;
LINEAR SPEED5 ACCU2 TIMER0 TOOL1 WORK0 CLAMP1 (OFF,0,1,1) OX= WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[-16.822,-38.872,-74.037,-154.8,-47.489,1.2609,150.77] ;
LINEAR SPEED7 ACCU2 TIMER0 TOOL1 WORK0 CLAMP1 (OFF,0,1,1) OX= WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[-15.146,-44.262,-69.399,-148.66,-37.144,-6.4661,148.29] ;
JOINT SPEED7 ACCU3 TIMER0 TOOL1 WORK0 CLAMP1 (OFF,0,1,1) OX= WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[-7.8265,-48.647,-60.163,-148.96,-21.592,-8.7455,150.77] ;
JOINT SPEED9 ACCU4 TIMER0 TOOL1 WORK0 CLAMP1 (OFF,0,1,1) OX= WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[-7.8261,-48.647,-52.68,5.6651,-49.248,-8.7456,150.77] ;
LINEAR SPEED9 ACCU3 TIMER0 TOOL1 WORK0 CLAMP1 (OFF,0,1,1) OX= WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[-36.539,-36.702,-39.327,-3.0944,-85.019,31.896,154.8] ;
LINEAR SPEED7 ACCU2 TIMER0 TOOL1 WORK0 CLAMP1 (OFF,0,1,1) OX= WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[-31.496,-32.694,-55.529,-3.1706,-64.574,27.945,154.8] ;
LINEAR SPEED5 ACCU2 TIMER0 TOOL1 WORK0 CLAMP1 (OFF,0,1,1) OX= WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[-26.239,-21.739,-47.002,0.74703,-63.125,23.095,154.8] ;
LINEAR SPEED7 ACCU2 TIMER0 TOOL1 WORK0 CLAMP1 (OFF,0,1,1) OX= WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[-10.743,-27.35,-51.921,1.3213,-59.136,-14.014,154.8] ;
LINEAR SPEED5 ACCU2 TIMER0 TOOL1 WORK0 CLAMP1 (OFF,0,1,1) OX= WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[-10.811,-28.144,-49.164,1.2682,-62.687,-13.851,58.857] ;
;
; ID# W_AY00013513_460 SCH# 4
LINEAR SPEED5 ACCU0 TIMER0 TOOL1 WORK0 CLAMP1 (ON,4,1,1) OX= WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[-10.876,-28.279,-48.676,1.253,-63.308,-13.767,3.8457]
;W_AY00013513_460
;

[62]
LINEAR SPEED5 ACCU2 TIMER0 TOOL1 WORK0 CLAMP1 (OFF,0,1,1) OX= WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[-10.811,-28.144,-49.164,1.2682,-62.687,-13.851,34.115] ;
LINEAR SPEED5 ACCU2 TIMER0 TOOL1 WORK0 CLAMP1 (OFF,0,1,1) OX= WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[-29.13,-24.795,-48.541,-4.1055,-61.663,28.019,92.92] ;
LINEAR SPEED5 ACCU2 TIMER0 TOOL1 WORK0 CLAMP1 (OFF,0,1,1) OX= WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[-17.873,-31.206,-51.766,-3.0095,-63.916,-1.3214,77.99] ;
;
; ID# W_AY00013513_461 SCH# 5
LINEAR SPEED5 ACCU0 TIMER0 TOOL1 WORK0 CLAMP1 (ON,5,1,1) OX= WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[-18.01,-31.902,-50.178,-2.9686,-66.203,-1.3098,2.1713]
;W_AY00013513_461
;
LINEAR SPEED5 ACCU2 TIMER0 TOOL1 WORK0 CLAMP1 (OFF,0,1,1) OX= WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[-30.817,-27.982,-51.348,-4.3962,-61.893,27.85,116.88] ;
LINEAR SPEED5 ACCU1 TIMER0 TOOL1 WORK0 CLAMP1 (OFF,0,1,1) OX= WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[-29.93,-27.922,-53.902,-4.269,-59.488,27.079,154.8] ;
LINEAR SPEED5 ACCU1 TIMER0 TOOL1 WORK0 CLAMP1 (OFF,0,1,1) OX= WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[-30.552,-29.48,-53.888,-3.4191,-62.517,27.194,154.8] ;
LINEAR SPEED5 ACCU2 TIMER0 TOOL1 WORK0 CLAMP1 (OFF,0,1,1) OX= WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[-28.308,-27.375,-45.607,-1.4908,-71.963,23.962,63.402] ;
;
; ID# W_AY00013513_501 SCH# 6
LINEAR SPEED5 ACCU0 TIMER0 TOOL1 WORK0 CLAMP1 (ON,6,1,1) OX= WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[-28.338,-27.525,-44.761,-1.4826,-72.96,23.965,3.7021]
;W_AY00013513_501
;
LINEAR SPEED5 ACCU2 TIMER0 TOOL1 WORK0 CLAMP1 (OFF,0,1,1) OX= WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[-28.308,-27.375,-45.607,-1.4908,-71.963,23.962,110] ;
LINEAR SPEED5 ACCU2 TIMER0 TOOL1 WORK0 CLAMP1 (OFF,0,1,1) OX= WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[-34.711,-33.392,-48.918,-1.4377,-74.825,30.282,110] ;
LINEAR SPEED5 ACCU2 TIMER0 TOOL1 WORK0 CLAMP1 (OFF,0,1,1) OX= WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[-37.15,-29.005,-49.916,-1.4642,-69.501,32.857,110] ;
LINEAR SPEED5 ACCU2 TIMER0 TOOL1 WORK0 CLAMP1 (OFF,0,1,1) OX= WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[-33.738,-23.282,-46.507,-1.5123,-67.105,29.52,110] ;
LINEAR SPEED5 ACCU2 TIMER0 TOOL1 WORK0 CLAMP1 (OFF,0,1,1) OX= WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[-35.455,-25.207,-45.627,-2.0229,-67.792,33.335,30] ;
;
; ID# W_AY00013513_499 SCH# 7
LINEAR SPEED5 ACCU0 TIMER0 TOOL1 WORK0 CLAMP1 (ON,7,1,1) OX= WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[-35.97,-25.715,-45.345,-2.2008,-67.96,34.477,4.1623]
;W_AY00013513_499
;
LINEAR SPEED5 ACCU2 TIMER0 TOOL1 WORK0 CLAMP1 (OFF,0,1,1) OX= WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[-35.455,-25.207,-45.627,-2.0228,-67.792,33.335,29.999] ;
LINEAR SPEED5 ACCU2 TIMER0 TOOL1 WORK0 CLAMP1 (OFF,0,1,1) OX= WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[-33.738,-23.282,-46.507,-1.5122,-67.105,29.52,110] ;
LINEAR SPEED7 ACCU2 TIMER0 TOOL1 WORK0 CLAMP1 (OFF,0,1,1) OX= WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[-37.15,-29.005,-49.916,-1.4642,-69.501,32.857,110] ;
LINEAR SPEED5 ACCU2 TIMER0 TOOL1 WORK0 CLAMP1 (OFF,0,1,1) OX= WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[-46.533,-26.403,-46.166,-1.8425,-68.89,48.763,31.562] ;
LINEAR SPEED5 ACCU2 TIMER0 TOOL1 WORK0 CLAMP1 (OFF,0,1,1) OX= WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[-40.763,-20.699,-42.331,-1.7117,-66.855,43.001,31.563] ;
;
; ID# W_AY00013513_498 SCH# 8

[63]
LINEAR SPEED5 ACCU0 TIMER0 TOOL1 WORK0 CLAMP1 (ON,8,1,1) OX= WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[-40.786,-20.885,-41.766,-1.703,-67.607,43,3.4846]
;W_AY00013513_498
;
LINEAR SPEED5 ACCU2 TIMER0 TOOL1 WORK0 CLAMP1 (OFF,0,1,1) OX= WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[-40.763,-20.699,-42.331,-1.7117,-66.855,43.001,31.562] ;
LINEAR SPEED7 ACCU2 TIMER0 TOOL1 WORK0 CLAMP1 (OFF,0,1,1) OX= WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[-44.542,-24.594,-44.999,-1.7995,-68.189,46.777,31.561] ;
LINEAR SPEED5 ACCU2 TIMER0 TOOL1 WORK0 CLAMP1 (OFF,0,1,1) OX= WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[-53.728,-6.134,-31.003,-2.086,-64.015,78.063,40] ;
LINEAR SPEED5 ACCU2 TIMER0 TOOL1 WORK0 CLAMP1 (OFF,0,1,1) OX= WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[-48.329,-7.5174,-31.471,-0.2957,-64.968,69.231,40] ;
;
; ID# W_AY00013513_497 SCH# 9
LINEAR SPEED5 ACCU0 TIMER0 TOOL1 WORK0 CLAMP1 (ON,9,1,1) OX= WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[-48.334,-7.7972,-30.708,-0.29335,-66.011,69.23,3.4027]
;W_AY00013513_497
;
LINEAR SPEED5 ACCU2 TIMER0 TOOL1 WORK0 CLAMP1 (OFF,0,1,1) OX= WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[-48.329,-7.5174,-31.471,-0.2957,-64.968,69.231,40] ;
LINEAR SPEED5 ACCU2 TIMER0 TOOL1 WORK0 CLAMP1 (OFF,0,1,1) OX= WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[-35.463,-21.432,-41.422,-0.29656,-70.327,22.891,40] ;
;
; ID# W_AY00013513_496 SCH# 10
LINEAR SPEED5 ACCU0 TIMER0 TOOL1 WORK0 CLAMP1 (ON,10,1,1) OX= WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[-35.437,-21.593,-40.818,-0.29535,-71.092,22.86,3.508]
;W_AY00013513_496
;
LINEAR SPEED5 ACCU2 TIMER0 TOOL1 WORK0 CLAMP1 (OFF,0,1,1) OX= WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[-35.463,-21.432,-41.422,-0.29656,-70.327,22.891,40] ;
LINEAR SPEED5 ACCU2 TIMER0 TOOL1 WORK0 CLAMP1 (OFF,0,1,1) OX= WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[-37.302,-24.607,-43.44,-0.28357,-71.492,24.72,40] ;
LINEAR SPEED7 ACCU0 TIMER0 TOOL1 WORK0 CLAMP1 (OFF,0,1,1) OX= WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[-61.815,-16.116,-42.772,-0.28152,-61.872,62.773,154.8] ;
;
;SSW PULLED TIP BYPASS MAINTENANCE FUNCTIONS
;GOTO END IF NO PULLED TIP BYPASS CONDITION
IF SIG(1240) THEN
CALL r1c_proc1_rfr; CALL FAST FAULT RECOVERY PROGRAM
GOTO 1; RETURN TO LBL 1 AND RESTART PROCESS
END ; IF PULLED TIP BYPASS

6.8 r1c_proc2_rfr(); MULTI CARRIED PROC2 SSW1 GUN 2


FAULT RECOVERY
;************************************************
; COMPANY : RIVIAN
; PROGRAM : r1c_proc2_rfr, CARRIED PROC 2 SSW1 GUN 2 FAULT RECOVERY EXAMPLE
; REVISED LAST: 06/15/2021
; Produced by : RIVIAN KAWASAKI ROBOTICS DEV
;************************************************
;ADD MOVES TO TIP CHANGE COMMON

[64]
JOINT SPEED5 ACCU2 TIMER0 TOOL2 WORK0 CLAMP1 (OFF,0,2,1) OX= WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[-64.779,-16.954,-10.312,82.158,49.5,50.093,154.46] ;
;
;APPROACH TO MAINT POS
JOINT SPEED5 ACCU2 TIMER0 TOOL2 WORK0 CLAMP1 (OFF,0,2,1) OX= WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[65.998,-26.645,23.11,-1.9162,-102.75,90.079,130] ;
;
;*******************************************************
; MAINTENANCE POSITION
;*******************************************************
JOINT SPEED5 ACCU0 TIMER0 TOOL2 WORK0 CLAMP1 (OFF,0,2,1) OX= WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[83.66,-7.209,-28.511,-2.092,-68.591,99.082,130] ;MAINT
;
;MAINT POSITION ON
SIGNAL 5 ;ROBOT AT MAINTENANCE POSITION
;
;WAIT MAINTENANCE CLEAR
WAIT SIG(1008) ;
;
;*******************************************************
; MAINTENANCE POSITION COMPLETE
;*******************************************************
;
;************************************************
IF SIG(-1721) THEN; IF WATER OFF, RESET WATER
CALL wtr_chk(1) ;SSW WATER CHECK 1
END
;
;PULLED TIP BYPASS OFF
WAIT SIG(-1240); WAIT PULLED TIP BYPASS OFF
;
;MAINT POSITION OFF
SIGNAL -5 ;ROBOT AT MAINTENANCE POSITION
;--------------------------------
;
;ADD MOVES TO TIP CHANGE COMMON
JOINT SPEED7 ACCU4 TIMER0 TOOL2 WORK0 CLAMP1 (OFF,0,2,1) OX= WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[65.998,-26.645,23.11,-1.9162,-102.75,90.079,130] ;
;
;IF TIP DRESS REQUIRED OR NEW TIP STEPPER RESET 2
IF SIG(1262) OR SIG(1264) THEN;
;ADD MOVES TO GET TO TIP DRESS COMMON IF NEEDED
;
;TIP DRESS GUN 2
CALL td_gun2
;
;ADD MOVES TO BEGINNING OF PROCESS
JOINT SPEED7 ACCU4 TIMER0 TOOL2 WORK0 CLAMP1 (OFF,0,2,1) OX= WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[-81.69,-43.033,-23.039,-3.3052,-100.47,96.244,154.16] ;
;

[65]
END
;
JOINT SPEED9 ACCU0 TIMER0 TOOL2 WORK0 CLAMP1 (OFF,0,2,1) OX= WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[-61.815,-16.116,-42.772,-0.28152,-61.872,62.773,154.8] ;

6.9 r1c_proc2_wg2(); MULTI CARRIED PROC 2 SSW 1 GUN 2


;************************************************
; COMPANY : RIVIAN
; PROGRAM : r1c_proc2_wg2, CARRIED PROC 2 SSW1 GUN 2 EXAMPLE
; REVISED LAST: 06/15/2021
; Produced by : RIVIAN KAWASAKI ROBOTICS DEV
;************************************************
1;PULLED TIP BYPASS LBL
;
;OPEN CLAMPS C09,C15 and RETRACT PINS C11,C14
CALL reporeq(1)
;
LINEAR SPEED9 ACCU4 TIMER0 TOOL2 WORK0 CLAMP1 (OFF,0,2,1) OX= WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[-61.815,-16.116,-42.772,-0.28152,-61.872,62.773,150] ;
;
LINEAR SPEED9 ACCU3 TIMER0 TOOL2 WORK0 CLAMP1 (OFF,0,2,1) OX= WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[-31.213,-29.623,-51.688,1.2648,-66.468,1.8995,150] ;
LINEAR SPEED9 ACCU3 TIMER0 TOOL2 WORK0 CLAMP1 (OFF,0,2,1) OX= WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[2.3719,-34.406,-49.906,-0.12334,-74.1,-38.819,66.426] ;
LINEAR SPEED5 ACCU2 TIMER0 TOOL2 WORK0 CLAMP1 (OFF,0,2,1) OX= WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[-4.5549,-25.123,-44.82,-0.17681,-69.919,-31.866,66.426] ;
;
; ID# W_AY00013513_500 SCH# 21
LINEAR SPEED5 ACCU0 TIMER0 TOOL1 WORK0 CLAMP1 (ON,21,2,1) OX= WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[-4.5617,-25.438,-43.422,-0.17512,-71.633,-31.864,3.6658]
;W_AY00013513_500
;
LINEAR SPEED5 ACCU2 TIMER0 TOOL2 WORK0 CLAMP1 (OFF,0,2,1) OX= WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[-4.5568,-25.218,-44.436,-0.17612,-70.398,-31.866,66.426] ;
LINEAR SPEED9 ACCU3 TIMER0 TOOL2 WORK0 CLAMP1 (OFF,0,2,1) OX= WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[2.3717,-34.406,-49.906,-0.12334,-74.1,-38.819,66.426] ;
LINEAR SPEED9 ACCU4 TIMER0 TOOL2 WORK0 CLAMP1 (OFF,0,2,1) OX= WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[3.4481,-35.671,-34.149,-0.50975,-88.759,-42.268,150] ;
JOINT SPEED9 ACCU4 TIMER0 TOOL2 WORK0 CLAMP1 (OFF,0,2,1) OX= WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[-43.037,-26.362,-52.554,42.981,16.034,52.865,150] ;
LINEAR SPEED9 ACCU3 TIMER0 TOOL2 WORK0 CLAMP1 (OFF,0,2,1) OX= WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[-68.76,0.75954,-48.417,46.716,77.705,103.35,150] ;
LINEAR SPEED7 ACCU2 TIMER0 TOOL2 WORK0 CLAMP1 (OFF,0,2,1) OX= WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[-62.564,-0.65446,-55.545,44.998,77.605,114.04,150] ;
LINEAR SPEED5 ACCU2 TIMER0 TOOL2 WORK0 CLAMP1 (OFF,0,2,1) OX= WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[-59.591,-1.0367,-59.663,41.741,79.201,117.87,150] ;
LINEAR SPEED5 ACCU2 TIMER0 TOOL2 WORK0 CLAMP1 (OFF,0,2,1) OX= WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[-64.12,3.1352,-49.674,58.338,74.948,104.29,50.543] ;
LINEAR SPEED5 ACCU2 TIMER0 TOOL2 WORK0 CLAMP1 (OFF,0,2,1) OX= WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[-64.785,10.494,-39.484,67.827,71.814,88.534,36.337] ;
;
; ID# W_AY00013513_457 SCH# 2

[66]
LINEAR SPEED5 ACCU0 TIMER0 TOOL1 WORK0 CLAMP1 (ON,22,2,1) OX= WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[-65.331,10.181,-39.856,68.27,72.161,88.454,3.6568]
;W_AY00013513_457
;
LINEAR SPEED5 ACCU2 TIMER0 TOOL2 WORK0 CLAMP1 (OFF,0,2,1) OX= WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[-64.785,10.493,-39.484,67.827,71.814,88.534,36.337] ;
LINEAR SPEED5 ACCU2 TIMER0 TOOL2 WORK0 CLAMP1 (OFF,0,2,1) OX= WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[-64.12,3.1349,-49.674,58.338,74.948,104.29,50.542] ;
LINEAR SPEED7 ACCU2 TIMER0 TOOL2 WORK0 CLAMP1 (OFF,0,2,1) OX= WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[-59.591,-1.0369,-59.663,41.741,79.201,117.87,150] ;
LINEAR SPEED7 ACCU3 TIMER0 TOOL2 WORK0 CLAMP1 (OFF,0,2,1) OX= WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[-62.564,-0.65463,-55.545,44.998,77.605,114.04,150] ;
LINEAR SPEED9 ACCU3 TIMER0 TOOL2 WORK0 CLAMP1 (OFF,0,2,1) OX= WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[-68.76,0.75937,-48.417,46.716,77.705,103.35,150] ;
JOINT SPEED9 ACCU0 TIMER0 TOOL2 WORK0 CLAMP1 (OFF,0,2,1) OX= WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[-64.779,-16.954,-10.312,82.158,49.5,50.093,154.46] ;
;
;SSW PULLED TIP BYPASS MAINTENANCE FUNCTIONS
;GOTO END IF NO PULLED TIP BYPASS CONDITION
IF SIG(1240) THEN
CALL r1c_proc2_rfr;CALL FAST FAULT RECOVERY PROGRAM
GOTO 1; RETURN TO LBL 1 AND RESTART PROCESS
END ; IF PULLED TIP BYPASS

6.10 r1t_proc1_rfr(); SINGLE CARRIED PROC 1 SSW 1 FAULT


RECOVERY
;************************************************
; COMPANY : RIVIAN
; PROGRAM : r1t_proc1_rfr, CARRIED SINGLE PROC 1 SSW1 FAULT RECOVERY EXAMPLE
; REVISED LAST: 06/15/2021
; Produced by : RIVIAN KAWASAKI ROBOTICS DEV
;************************************************
;ADD MOVES TO TIP CHANGE COMMON
;
JOINT SPEED8 ACCU0 TIMER0 TOOL1 WORK0 CLAMP1 (OFF,0,1,1) OX= WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[5.9628,-31.154,19.509,-17.398,43.544,194.7,30];
;
;--------------------------------
;APPROACH TO MAINT POS
JOINT SPEED3 ACCU2 TIMER0 TOOL1 WORK0 CLAMP1 (OFF,0,1,1) OX= WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[6.0052,-31.163,19.509,-17.399,43.552,194.71,30.166] ;
JOINT SPEED3 ACCU2 TIMER0 TOOL1 WORK0 CLAMP1 (OFF,0,1,1) OX= WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[65.381,-44.42,20,-18.67,55.004,202.24,115] ;
JOINT SPEED3 ACCU2 TIMER0 TOOL1 WORK0 CLAMP1 (OFF,0,1,1) OX= WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[65.381,-44.42,20,-111.11,55.004,202.24,115] ;
LINEAR SPEED3 ACCU2 TIMER0 TOOL1 WORK0 CLAMP1 (OFF,0,1,1) OX= WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[71.789,-40.985,4.1526,-96.753,58.903,181,115] ;
;
;*******************************************************
; MAINTENANCE POSITION

[67]
;*******************************************************
LINEAR SPEED2 ACCU0 TIMER0 TOOL1 WORK0 CLAMP1 (OFF,0,1,1) OX= WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[85.638,-7.2989,-56.089,-66.284,70.666,114.73,115] ; MAINT
;
;MAINT POSITION ON
SIGNAL 5 ;ROBOT AT MAINTENANCE POSITION
;
;WAIT MAINTENANCE CLEAR
WAIT SIG(1008) ;
;
;*******************************************************
; MAINTENANCE POSITION COMPLETE
;*******************************************************
;
;************************************************
IF SIG(-1721) THEN; IF WATER OFF, RESET WATER
CALL wtr_chk(1) ;SSW WATER CHECK 1
END
;
;PULLED TIP BYPASS OFF
WAIT SIG(-1240); WAIT PULLED TIP BYPASS OFF
;
;MAINT POSITION OFF
SIGNAL -5 ;ROBOT AT MAINTENANCE POSITION
;--------------------------------
;
;ADD MOVES TO TIP CHANGE COMMON
JOINT SPEED6 ACCU2 TIMER0 TOOL1 WORK0 CLAMP1 (OFF,0,1,1) OX= WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[53.402,-10.218,-45.395,-46.364,55.374,120.73,100] ;Common
;
;IF TIP DRESS REQUIRED OR NEW TIP STEPPER RESET 1
IF SIG(1243) OR SIG(1257) THEN;
;ADD MOVES TO GET TO TIP DRESS COMMON IF NEEDED
;
;TIP DRESS GUN 1
CALL td_gun1
;
;ADD MOVES TO BEGINNING OF PROCESS
JOINT SPEED6 ACCU2 TIMER0 TOOL1 WORK0 CLAMP1 (OFF,0,1,1) OX= WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[53.402,-10.218,-45.395,-46.364,55.374,120.73,100] ;Common
;
END
;
LINEAR SPEED3 ACCU2 TIMER0 TOOL1 WORK0 CLAMP1 (OFF,0,1,1) OX= WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[71.789,-40.985,4.1526,-96.753,58.903,181,115] ;
JOINT SPEED3 ACCU2 TIMER0 TOOL1 WORK0 CLAMP1 (OFF,0,1,1) OX= WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[65.381,-44.42,20,-111.11,55.004,202.24,115] ;
JOINT SPEED3 ACCU2 TIMER0 TOOL1 WORK0 CLAMP1 (OFF,0,1,1) OX= WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[65.381,-44.42,20,-18.67,55.004,202.24,115] ;

[68]
JOINT SPEED8 ACCU0 TIMER0 TOOL1 WORK0 CLAMP1 (OFF,0,1,1) OX= WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[5.9628,-31.154,19.509,-17.398,43.544,194.7,30];

6.11 r1t_proc1_sw1(); SINGLE CARRIED PROC 1 SSW 1


;************************************************
; COMPANY : RIVIAN
; PROGRAM : r1t_proc1_sw1, CARRIED SINGLE PROC 1 SSW1 EXAMPLE
; REVISED LAST: 08/22/2021
; Produced by : RIVIAN KAWASAKI ROBOTICS DEV
;************************************************
;
1;PULLED TIP BYPASS LBL
;
;ENTER ZONE 8 W/RRL_020_01 AND RRL_20_03 ZONE 8
CALL entzone(8);
;
;ENTER ZONE 1 W/RRL_020_03 ZONE 1
CALL entzone(1);
;
JOINT SPEED8 ACCU1 TIMER0 TOOL1 WORK0 CLAMP1 (OFF,0,1,1) OX= WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[2.0016,-31.154,19.509,-17.398,43.544,194.7,30] ;POUNCE
;
JOINT SPEED8 ACCU3 TIMER0 TOOL1 WORK0 CLAMP1 (OFF,0,1,1) OX= WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[-85,-22.77,20,-1.4115,49.8,100,30] ;
JOINT SPEED8 ACCU3 TIMER0 TOOL1 WORK0 CLAMP1 (OFF,0,1,1) OX= WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[-83.909,-29.732,0.62249,25.229,50.886,6.432,30] ;
LINEAR SPEED6 ACCU4 TIMER0 TOOL1 WORK0 CLAMP1 (OFF,0,1,1) OX= WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[-75.846,-16.789,-5.4488,36.564,41.28,23.424,30] ;
LINEAR SPEED5 ACCU3 TIMER0 TOOL1 WORK0 CLAMP1 (OFF,0,1,1) OX= WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[-66.752,-10.871,-16.244,55.988,38.574,36.022,30] ;
;
; ID# w-ay00013416-071 SCH# 1
LINEAR SPEED3 ACCU0 TIMER0 TOOL1 WORK0 CLAMP1 (ON,1,1,1) OX= WX=
CL1=2.667,20.0,10.0,20.0,10.0,20.0,10.0 #[-68.599,-11.443,-15.578,58.364,39.705,33.609,2.6005] ;w-
ay00013416-071
;
; ID# w-ay00013416-070 SCH# 2
LINEAR SPEED3 ACCU0 TIMER0 TOOL1 WORK0 CLAMP1 (ON,2,1,1) OX= WX=
CL1=2.667,20.0,10.0,20.0,10.0,20.0,10.0 #[-70.097,-6.1436,-15.573,60.568,40.405,30.627,2.6098] ;w-
ay00013416-070
;
LINEAR SPEED6 ACCU3 TIMER0 TOOL1 WORK0 CLAMP1 (OFF,0,1,1) OX= WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[-67.666,-4.1624,-16.323,57.672,38.783,33.517,25.847] ;
JOINT SPEED8 ACCU3 TIMER0 TOOL1 WORK0 CLAMP1 (OFF,0,1,1) OX= WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[-73.249,-16.221,3.6953,44.563,27.594,18.874,30] ;
JOINT SPEED8 ACCU3 TIMER0 TOOL1 WORK0 CLAMP1 (OFF,0,1,1) OX= WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[-103.24,-11.116,5.056,39.298,-52.231,-2.181,30] ;
LINEAR SPEED6 ACCU3 TIMER0 TOOL1 WORK0 CLAMP1 (OFF,0,1,1) OX= WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[-100.04,-0.116,-15.034,49.186,-47.179,-14.741,30] ;
JOINT SPEED6 ACCU3 TIMER0 TOOL1 WORK0 CLAMP1 (OFF,0,1,1) OX= WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[-99.803,15.012,-29.8,10.202,-50.221,1.29,30] ;

[69]
LINEAR SPEED6 ACCU3 TIMER0 TOOL1 WORK0 CLAMP1 (OFF,0,1,1) OX= WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[-91.92,7.9054,-29.792,13.137,-46.664,-12.573,30] ;
;
; ID# w-ay00013416-481 SCH# 3
LINEAR SPEED3 ACCU0 TIMER0 TOOL1 WORK0 CLAMP1 (ON,3,1,1) OX= WX=
CL1=3.556,20.0,10.0,20.0,10.0,20.0,10.0 #[-91.867,4.3612,-28.652,12.915,-47.784,-12.283,4.1544] ;w-
ay00013416-481
;
LINEAR SPEED5 ACCU3 TIMER0 TOOL1 WORK0 CLAMP1 (OFF,0,1,1) OX= WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[-91.681,4.1285,-28.757,12.992,-47.719,-12.53,26.591] ;
LINEAR SPEED5 ACCU3 TIMER0 TOOL1 WORK0 CLAMP1 (OFF,0,1,1) OX= WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[-91.818,9.4299,-28.262,12.852,-48.175,-12.222,26.592] ;
;
; ID# w-ay00013416-091 SCH# 4
LINEAR SPEED3 ACCU0 TIMER0 TOOL1 WORK0 CLAMP1 (ON,4,1,1) OX= WX=
CL1=2.667,20.0,10.0,20.0,10.0,20.0,10.0 #[-92.236,9.1584,-27.662,12.612,-48.678,-11.563,2.5947] ;w-
ay00013416-091
;
LINEAR SPEED5 ACCU3 TIMER0 TOOL1 WORK0 CLAMP1 (OFF,0,1,1) OX= WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[-92.094,10.054,-29.076,12.935,-47.327,-12.149,25.879] ;
LINEAR SPEED5 ACCU3 TIMER0 TOOL1 WORK0 CLAMP1 (OFF,0,1,1) OX= WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[-92.121,16.5,-28.008,12.712,-48.362,-11.797,25.879] ;
;
; ID# w-ay00013416-088 SCH# 5
LINEAR SPEED3 ACCU0 TIMER0 TOOL1 WORK0 CLAMP1 (ON,5,1,1) OX= WX=
CL1=2.667,20.0,10.0,20.0,10.0,20.0,10.0 #[-92.415,17.209,-26.287,12.304,-49.985,-10.967,2.7194] ;w-
ay00013416-088
;
LINEAR SPEED5 ACCU3 TIMER0 TOOL1 WORK0 CLAMP1 (OFF,0,1,1) OX= WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[-92.246,17.419,-26.376,12.368,-49.931,-11.184,26.042] ;
LINEAR SPEED5 ACCU3 TIMER0 TOOL1 WORK0 CLAMP1 (OFF,0,1,1) OX= WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[-92.15,19.807,-25.834,12.3,-50.479,-11.143,26.042] ;
;
; ID# w-ay00013416-087 SCH# 6
LINEAR SPEED3 ACCU0 TIMER0 TOOL1 WORK0 CLAMP1 (ON,6,1,1) OX= WX=
CL1=2.667,20.0,10.0,20.0,10.0,20.0,10.0 #[-92.437,19.62,-25.681,12.19,-50.572,-10.774,2.8003] ;w-
ay00013416-087
;
LINEAR SPEED5 ACCU3 TIMER0 TOOL1 WORK0 CLAMP1 (OFF,0,1,1) OX= WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[-92.3,19.889,-25.824,12.255,-50.458,-10.969,26.083] ;
LINEAR SPEED5 ACCU2 TIMER0 TOOL1 WORK0 CLAMP1 (OFF,0,1,1) OX= WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[-91.801,34.288,-21.005,9.8396,-54.189,-3.3196,26.083] ;
;
; ID# w-ay00013416-083 SCH# 7
LINEAR SPEED3 ACCU0 TIMER0 TOOL1 WORK0 CLAMP1 (ON,7,1,1) OX= WX=
CL1=3.556,20.0,10.0,20.0,10.0,20.0,10.0 #[-92.076,34.219,-20.986,9.7528,-54.164,-3.0035,2.6434] ;w-
ay00013416-083
;
LINEAR SPEED6 ACCU3 TIMER0 TOOL1 WORK0 CLAMP1 (OFF,0,1,1) OX= WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[-91.717,30.914,-25.075,10.422,-50.196,-4.3226,25.942] ;
JOINT SPEED8 ACCU3 TIMER0 TOOL1 WORK0 CLAMP1 (OFF,0,1,1) OX= WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[-98.82,26.546,-26.857,10,-53.27,0.863,30] ;
JOINT SPEED8 ACCU3 TIMER0 TOOL1 WORK0 CLAMP1 (OFF,0,1,1) OX= WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[-99.725,3.083,-14.977,49.248,-47.445,-14.952,30] ;

[70]
JOINT SPEED8 ACCU3 TIMER0 TOOL1 WORK0 CLAMP1 (OFF,0,1,1) OX= WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[-102.24,-4.286,4.416,40.283,-52.372,-3.658,30] ;
JOINT SPEED8 ACCU3 TIMER0 TOOL1 WORK0 CLAMP1 (OFF,0,1,1) OX= WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[-85,-22.77,11.22,-1.4113,49.8,100,30] ;
JOINT SPEED8 ACCU0 TIMER0 TOOL1 WORK0 CLAMP1 (OFF,0,1,1) OX= WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[-21.923,-39.12,18.104,-15.359,54.006,182.63,30] ;
;
;EXIT ZONE 1 W/RRL_020_03 ZONE 1
CALL extzone(1);
;
JOINT SPEED8 ACCU0 TIMER0 TOOL1 WORK0 CLAMP1 (OFF,0,1,1) OX= WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[5.9628,-31.154,19.509,-17.398,43.544,194.7,30] ;
;
;EXIT ZONE 8 W/RRL_020_01 AND RRL_20_03 ZONE 8
CALL extzone(8);Zone With S20_R03 Drop
;
;SSW PULLED TIP BYPASS MAINTENANCE FUNCTION
;END PROCESS IF NO PULLED TIP BYPASS CONDITION
IF SIG(1240) THEN
;
CALL r1t_proc1a_rfr;CALL RIVIAN FAULT RECOVERY PROGRAM
;
GOTO 1; RETURN TO LBL 1 AND RESTART PROCESS
;
END
;
SIGNAL (85); CLEAR OF TOOL 5
;************************************************
; PROCESS #1 COMPLETE
CALL proccomp(1)
;************************************************

6.12 seat_cap(.gunsc); PRESS ON NEW WELD CAPS (gun#)


;************************************************
; COMPANY : RIVIAN
; PROGRAM : seat_cap(.gunsc), PRESS ON NEW WELD CAPS (gun#)
; REVISED LAST: 11/03/2022 REV 01
; Produced by RIVIAN KAWASAKI ROBOTICS DEV
;************************************************
; SUBROUTINE CALLED OUT OF pg02(TIP DRESS) UNLESS
; TIPDRESS BYPASSED FROM PLC, THEN SUBROUTINE
; CALLED OUT OF PG01(MAINTENANCE)
;************************************************
; FORCE FOR SEAT CAP SHOULD BE INCLUDED IN THE CLAMP
; CODITION AND SHOULD BE 90 PERCENT OF MAX FORCE
;
CASE .gunsc OF
VALUE 1:
; SEAT CAPS ON GUN 1 PROGRAM
IF SIG(1257) THEN ;STEPPERS ARE RESET GROUP 1
SIGNAL 259 ;SEAT CAPS ENABLE
FOR i = 1 TO seatcount ;SEAT CAPS NUMBER OF TIMES PROGRAMMED
;FORCE FOR SEAT CAP SHOULD BE INCLUDED IN THE CLAMP

[71]
;CODITION AND SHOULD BE 90 PERCENT OF MAX FORCE
NOP SPEED6 ACCU1 TIMER0 TOOL1 WORK0 CLAMP1 (ON,0,1,1) OX= WX=
CL1=4.801,0.0,0.0,0.0,0.0,0.0,0.0 #[0,0,0,0,0,0,0] ;SEAT CAP 1
END ;FOR I = 1 TO SEATCOUNT
; GUN 1 OPEN TO 30 MM
NOP SPEED6 ACCU2 TIMER0 TOOL1 WORK0 CLAMP1 (OFF,0,1,1) OX= WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[0,0,0,0,0,0,30] ;OPEN GUN 1
SIGNAL -259 ;SEAT CAPS ENABLE OFF
BREAK
CALL tip_meas(1);TIP WEAR LOGGING, WARNING AND RATIO CHECKS
END ;IF SIG(1257) THEN
;
VALUE 2:
;SEAT CAPS ON GUN 2 PROGRAM
IF SIG(1264) THEN ;STEPPERS ARE RESET GROUP 2
SIGNAL 259 ;SEAT CAPS ENABLE
FOR i = 1 TO seatcount ;SEAT CAPS NUMBER OF TIMES PROGRAMMED
;FORCE FOR SEAT CAP SHOULD BE INCLUDED IN THE CLAMP
;CODITION AND SHOULD BE 90 PERCENT OF MAX FORCE
NOP SPEED6 ACCU1 TIMER0 TOOL2 WORK0 CLAMP1 (ON,0,2,1) OX= WX=
CL1=4.801,0.0,0.0,0.0,0.0,0.0,0.0 #[0,0,0,0,0,0,0] ;SEAT CAP 2
END ;FOR I = 1 TO SEATCOUNT
; GUN 2 OPEN TO 30 MM
NOP SPEED6 ACCU2 TIMER0 TOOL2 WORK0 CLAMP1 (OFF,0,2,1) OX= WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[0,0,0,0,0,0,30] ;OPEN GUN 2
SIGNAL -259 ;SEAT CAPS ENABLE OFF
BREAK
CALL tip_meas(2);TIP WEAR LOGGING, WARNING AND RATIO CHECKS
END ;IF SIG(1264) THEN STEPPERS ARE RESET GROUP 2
;
VALUE 3:
;SEAT CAPS ON GUN 3 PROGRAM
IF SIG(1706) THEN ;STEPPERS ARE RESET GROUP 3
SIGNAL 259 ;SEAT CAPS ENABLE
FOR i = 1 TO seatcount ;SEAT CAPS NUMBER OF TIMES PROGRAMMED
;FORCE FOR SEAT CAP SHOULD BE INCLUDED IN THE CLAMP
;CODITION AND SHOULD BE 90 PERCENT OF MAX FORCE
NOP SPEED5 ACCU1 TIMER0 TOOL3 WORK0 CLAMP1 (ON,0,3,1) OX= WX=
CL1=4.801,0.0,0.0,0.0,0.0,0.0,0.0 #[0,0,0,0,0,0,0] ;SEAT CAP 3
END ;FOR I = 1 TO SEATCOUNT
; GUN 3 OPEN TO 30 MM
NOP SPEED9 ACCU1 TIMER0 TOOL3 WORK0 CLAMP1 (OFF,0,3,1) OX= WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[0,0,0,0,0,0,30] ;OPEN GUN 3
SIGNAL -259 ;SEAT CAPS ENABLE OFF
BREAK
CALL tip_meas(3);TIP WEAR LOGGING, WARNING AND RATIO CHECKS
END ;IF SIG(1706) THEN STEPPERS ARE RESET GROUP 3
END ;CASE OF

6.13 td_cmp(.gunsc); WTC TIP DRESS COMPLETE (gun#)


;************************************************
; COMPANY : RIVIAN
; PROGRAM : td_cmp(.gun), WTC TIP DRESS COMPLETE (gun#)

[72]
; REVISED LAST: 02/22/2023 REV 02
; Produced by RIVIAN KAWASAKI ROBOTICS DEV
;************************************************
; SUBROUTINE CALLED OUT OF pg02(TIP DRESS) TO SEND
; TIP DRESS COMPLETE SIGNAL TO WTC AS LONG AS THE
; ROBOT IS NOT IN PULLED TIP BYPASS
;************************************************
;
; CHECK IF IN PULLED TIP BYPASS, DOES NOT SEND
; COMPLETE IF PULLED TIP BYPASS ON
IF SIG(1240) GOTO 99; IF PULLED TIP BYPASS ON
;
CASE .guntdc OF
VALUE 1:
group_1:; TIP DRESS COMPLETE TO WTC GROUP 1
PULSE 243,1 ;TIP DRESS COMPLETE GROUP 1
WAIT SIG(-1257) ;WAIT STEPPER RESET GROUP 1
IF SIG(1257) GOTO group_1
VALUE 2:
group_2:; TIP DRESS COMPLETE TO WTC GROUP 2
PULSE 262,1 ;TIP DRESS COMPLETE GROUP 2
WAIT SIG(-1264) ;WAIT STEPPER RESET GROUP 2
IF SIG(1264) GOTO group_2
VALUE 3:
group_3:; TIP DRESS COMPLETE TO WTC GROUP 3
PULSE 705,1 ;TIP DRESS COMPLETE GROUP 3
WAIT SIG(-1706) ;WAIT STEPPER RESET GROUP 3
IF SIG(1706) GOTO group_3
END ;CASE OF
;
99; END OF TIP DRESS COMPLETE
new_cap = 0; RESET NEW CAP FLAG

6.14 td_gun1(); CARRIED TIP DRESS SSW1 GUN 1


;************************************************
; COMPANY : RIVIAN
; PROGRAM : td_gun1, CARRIED TIP DRESS SSW1 GUN 1 EXAMPLE
; REVISED LAST: 02/22/2023 REV 5
; Produced by RIVIAN KAWASAKI ROBOTICS DEV
;************************************************
;
;(NEXT TWO LINES SHOULD BE REMOVED FOR SINGLE CARRIED GUNS)
; SHOULD MATCH ATC TOOL ID FOR PROPER GUN #
IF BITS(1531,4)<>1 GOTO 99; NOT TOOL 1 END PROGRAM
;
;************************************************
; IS THIS A NEW TIP? SKIP SEAT CAP AND TIP MEASURE
; IF STEPPER RESET GROUP 1 NOT ON
IF SIG(1257) THEN ; STEPPER RESET GROUP 1 NOT ON
CALL wtr_chk(1); WELD TIMER 1 WATER CHECK
CALL seat_cap(1); SEAT CAPS GUN 1
new_cap = 1; SET VARIABLE FOR WHICH TIP DRESS SCHED
END; IF NEW TIPS STEPPERS ARE RESET GROUP 1

[73]
;************************************************
;START TIPDRESS 1 PROCESS
;
; CHECK WATER SAVER 1
CALL wtr_chk(1); WELD TIMER 1
;
10; TIPDRESS
JOINT SPEED6 ACCU1 TIMER0 TOOL1 WORK0 CLAMP1 (OFF,0,1,1) OX= WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[-159.68,27.608,-71.548,-21.31,73.053,-84.173,125.22] ;COMMON
;
CALL tip_dress1; **** TIP DRESS 1 SUBROUTINE ****
;
JOINT SPEED6 ACCU1 TIMER0 TOOL1 WORK0 CLAMP1 (OFF,0,1,1) OX= WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[-159.68,27.608,-71.548,-21.31,73.053,-84.173,125.22] ;COMMON
;
CALL td_cmp(1); WTC TIP DRESS COMPLETE (GUN 1)
;
CALL tip_cal(1); **** TIP WEAR MEASUREMENT SUBROUTINE ****
;
IF SIG(248) GOTO 10; IF NOT SUFFICIANT CUT FAULT RE-DRESS
;
CALL tip_rischk_wtc1(1); WTC1 TIP RESISTANCE CHECK (GUN 1)
;
IF SIG(1242) GOTO 10; IF TIP RESISTANCE FAULT RE-DRESS
;
JOINT SPEED9 ACCU1 TIMER0 TOOL1 WORK0 CLAMP1 (OFF,0,1,1) OX= WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[-159.68,27.608,-71.548,-21.31,73.053,-84.173,125.22] ;COMMON
;
CALL tdp_comp(1);TIP DRESS PROCESS COMPLETE TO PLC
;
new_cap = 0; RESET NEW CAP VARABLE
;
99; NOT TOOL 2 END PROGRAM

6.15 td_gun2(); CARRIED TIP DRESS SSW1 GUN 2


;************************************************
; COMPANY : RIVIAN
; PROGRAM : td_gun2, CARRIED TIP DRESS SSW1 GUN 2 EXAMPLE
; REVISED LAST: 02/22/2023 REV 5
; Produced by RIVIAN KAWASAKI ROBOTICS DEV
;************************************************
;
; SHOULD MATCH ATC TOOL ID FOR PROPER GUN #
IF BITS(1531,4)<>2 GOTO 99; NOT TOOL 2 END PROGRAM
;
;************************************************
; IS THIS A NEW TIP? SKIP SEAT CAP AND TIP MEASURE
; IF STEPPER RESET GROUP 2 NOT ON
IF SIG(1264) THEN ; STEPPER RESET GROUP 2 NOT ON
CALL wtr_chk(1); WELD TIMER 1 WATER CHECK
CALL seat_cap(2); SEAT CAPS GUN 2
new_cap = 1; SET VARIABLE FOR WHICH TIP DRESS SCHED
END; IF NEW TIPS STEPPERS ARE RESET GROUP 2

[74]
;************************************************
;START TIPDRESS 2 PROCESS
;
; CHECK WATER SAVER 1
CALL wtr_chk(1); WELD TIMER 1
;
JOINT SPEED6 ACCU4 TIMER0 TOOL1 WORK0 CLAMP1 (OFF,0,2,1) OX= WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[-105.01,-37.462,34.856,-105.42,-110.84,-123.11,80,-500] ;
JOINT SPEED6 ACCU4 TIMER0 TOOL1 WORK0 CLAMP1 (OFF,0,2,1) OX= WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[-29.759,-37.462,34.856,-105.42,-110.84,-123.11,80,-500] ;
;
10;TIPDRESS
JOINT SPEED6 ACCU1 TIMER0 TOOL2 WORK0 CLAMP1 (OFF,0,2,1) OX= WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[-5.9563,-21.075,-16.029,-106.68,-99.846,-74.231,80,-500]
;COMMON
;
CALL tip_dress2; **** TIP DRESS 2 SUBROUTINE ****
;
JOINT SPEED6 ACCU0 TIMER0 TOOL2 WORK0 CLAMP1 (OFF,0,2,1) OX= WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[-5.9563,-21.075,-16.029,-106.68,-99.846,-74.231,80,-500]
;COMMON
;
CALL td_cmp(2); WTC TIP DRESS COMPLETE (GUN 2)
;
CALL tip_cal(2); **** TIP WEAR MEASUREMENT SUBROUTINE ****
;
IF SIG(248) GOTO 10; IF NOT SUFFICIANT CUT FAULT RE-DRESS
;
CALL tip_rischk_wtc1(2); WTC1 TIP RESISTANCE CHECK (GUN 2)
;
IF SIG(1242) GOTO 10; IF TIP RESISTANCE FAULT RE-DRESS
;
JOINT SPEED6 ACCU0 TIMER0 TOOL2 WORK0 CLAMP1 (OFF,0,2,1) OX= WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[-5.9558,-21.074,-16.028,-106.68,-99.846,-74.231,80,-500]
;COMMON
JOINT SPEED6 ACCU4 TIMER0 TOOL1 WORK0 CLAMP1 (OFF,0,2,1) OX= WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[-29.759,-37.462,34.856,-105.42,-110.84,-123.11,80,-500] ;
JOINT SPEED6 ACCU4 TIMER0 TOOL1 WORK0 CLAMP1 (OFF,0,2,1) OX= WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[-105.01,-37.462,34.856,-105.42,-110.84,-123.11,80,-500] ;
;
CALL tdp_comp(2);TIP DRESS PROCESS COMPLETE TO PLC
;
; RESET NEW CAP VARABLE
new_cap = 0
;
99; NOT TOOL 2 END PROGRAM

6.16 td_gun3(); CARRIED TIP DRESS SSW1 GUN 3


;************************************************
; COMPANY : RIVIAN
; PROGRAM : td_gun3, CARRIED TIP DRESS SSW1 GUN 3 EXAMPLE
; REVISED LAST: 02/22/2023 REV 5
; Produced by RIVIAN KAWASAKI ROBOTICS DEV

[75]
;************************************************
;
; SHOULD MATCH ATC TOOL ID FOR PROPER GUN #
IF BITS(1531,4)<>3 GOTO 99; NOT TOOL 3 END PROGRAM
;
;************************************************
; IS THIS A NEW TIP? SKIP SEAT CAP AND TIP MEASURE
; IF STEPPER RESET GROUP 3 NOT ON
IF SIG(1706) THEN ; STEPPER RESET GROUP 3 NOT ON
CALL wtr_chk(1); WELD TIMER 1 WATER CHECK
CALL seat_cap(3); SEAT CAPS GUN 3
new_cap = 1; SET VARIABLE FOR WHICH TIP DRESS SCHED
END; IF NEW TIPS STEPPERS ARE RESET GROUP 3
;************************************************
;START TIPDRESS 3 PROCESS
;
; CHECK WATER SAVER 1
CALL wtr_chk(1); WELD TIMER 1
;
JOINT SPEED9 ACCU4 TIMER0 TOOL3 WORK0 CLAMP1 (OFF,0,3,1) OX= WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[-90,-49,87.813,0,-90,-90,100,-1100] ;
JOINT SPEED9 ACCU4 TIMER0 TOOL3 WORK0 CLAMP1 (OFF,0,3,1) OX= WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[16.706,-57.332,42.459,-76.842,-67.019,-107.18,100,-1100] ;
;
10;TIPDRESS
JOINT SPEED6 ACCU1 TIMER0 TOOL3 WORK0 CLAMP1 (OFF,0,3,1) OX= WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[55.383,-5.5423,-48.061,-141.57,-71.612,-116.6,80,-1524]
;COMMON
;
CALL tip_dress3; **** TIP DRESS 3 SUBROUTINE ****
;
JOINT SPEED6 ACCU0 TIMER0 TOOL3 WORK0 CLAMP1 (OFF,0,3,1) OX= WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[55.383,-5.5424,-48.061,-141.57,-71.612,-116.6,80,-1524]
;COMMON
;
CALL td_cmp(3); WTC TIP DRESS COMPLETE (GUN 3)
;
CALL tip_cal(3); **** TIP WEAR MEASUREMENT SUBROUTINE ****
;
IF SIG(248) GOTO 10; IF NOT SUFFICIANT CUT FAULT RE-DRESS
;
CALL tip_rischk_wtc1(3); WTC1 TIP RESISTANCE CHECK (GUN 3)
;
IF SIG(1242) GOTO 10; IF TIP RESISTANCE FAULT RE-DRESS
;
JOINT SPEED6 ACCU4 TIMER0 TOOL3 WORK0 CLAMP1 (OFF,0,3,1) OX= WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[55.383,-5.5424,-48.061,-141.57,-71.612,-116.6,80,-1524]
;COMMON
JOINT SPEED9 ACCU4 TIMER0 TOOL3 WORK0 CLAMP1 (OFF,0,3,1) OX= WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[28.565,-36.05,19.139,-85.381,-64.465,-109.09,100,-1100] ;
JOINT SPEED9 ACCU4 TIMER0 TOOL3 WORK0 CLAMP1 (OFF,0,3,1) OX= WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[0.71679,-49,87.813,0,-90,-90,100,-1100] ;
JOINT SPEED9 ACCU1 TIMER0 TOOL3 WORK0 CLAMP1 (OFF,0,3,1) OX= WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[-89.871,-49,87.784,0.064497,-109.76,-90.004,100,-500] ;

[76]
;
CALL tdp_comp(3);TIP DRESS PROCESS COMPLETE TO PLC
;
; RESET NEW CAP VARABLE
new_cap = 0
;
99; NOT TOOL 3 END PROGRAM

6.17 tdp_comp(); PLC TIP DRESS PROCESS COMPLETE


;************************************************
; COMPANY : RIVIAN
; PROGRAM : tdp_comp, PLC TD PROCESS COMPLETE
; REVISED LAST: 11/13/2022 REV 02
; Produced by RIVIAN KAWASAKI ROBOTICS DEV
;************************************************
; SUBROUTINE CALLED OUT OF pg02(TIP dress) TO SEND
; TIP dress PROCESS COMPLETE SIGNAL TO PLC AS LONG
; AS THE ROBOT IS NOT IN PULLED TIP BYPASS
;************************************************
;
; CHECK IF IN PULLED TIP BYPASS, DOES NOT SEND
; COMPLETE IF PULLED TIP BYPASS ON
IF SIG (1240) GOTO 99; IF PULLED TIP BYPASS ON
;
CASE .guntdpc OF
VALUE 1:
1; GUN 1 TIP DRESS PROCESS COMPLETE TO PLC
SIGNAL 245 ; TD PROCESS COMPLETE TO PLC
WAIT SIG (1254) ;TIP DRESS POSITION CLR
IF SIG (-1254) GOTO 1 ;ANTI WAIT OVERRIDE
SIGNAL -245 ; RESET TD PROCESS COMPLETE TO PLC
VALUE 2:
2; GUN 2 TIP DRESS PROCESS COMPLETE TO PLC
SIGNAL 258 ; TD PROCESS COMPLETE TO PLC
WAIT SIG (1254) ;TIP DRESS POSITION CLR
IF SIG (-1254) GOTO 2 ;ANTI WAIT OVERRIDE
SIGNAL -258 ; RESET TD PROCESS COMPLETE TO PLC
VALUE 3:
3; GUN 3 TIP DRESS PROCESS COMPLETE TO PLC
SIGNAL 707 ; TD PROCESS COMPLETE TO PLC
WAIT SIG (1254) ;TIP DRESS POSITION CLR
IF SIG (-1254) GOTO 3 ;ANTI WAIT OVERRIDE
SIGNAL -707 ; RESET TD PROCESS COMPLETE TO PLC
END;
;
99; END OF TIP DRESS COMPLETE

6.18 tip_cal(.guntc); TIP ABRASION MEASURE (gun#)


;************************************************
; COMPANY : RIVIAN
; PROGRAM : tip_cal(.guntc), TIP ABRASION MEASURE (GUN #)

[77]
; REVISED LAST: 02/24/2023 REV 03
; Produced by RIVIAN KAWASAKI ROBOTICS DEV
;************************************************
; SUBROUTINE CALLED OUT OF pg02(TIP dress) UNLESS
; TIPDRESS BYPASSED FROM PLC, THEN SUBROUTINE
; CALLED OUT OF pg01(MAINTENANCE)
;************************************************
;
; CHECK IF IN PULLED TIP BYPASS, DOES NOT SEND
; COMPLETE IF PULLED TIP BYPASS ON
IF SIG(1240) GOTO 99; IF PULLED TIP BYPASS ON
;
CASE .guntc OF
VALUE 1:
; TIP CAL GUN 1 POSITION (SCHEDULE 0, GUN STAT 2/K)
NOP SPEED5 ACCU1 TIMER0 TOOL1 WORK0 CLAMP1 (ON,0,1,2) OX= WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[1.1985,-45.062,-6.2176,0.59067,-99.845,-0.94472,1.5776,0] ;TIP
CAL 1
BREAK
CALL tip_meas(1);TIP WEAR LOGGING, WARNING AND RATIO CHECKS
VALUE 2:
; TIP CAL GUN 2 POSITION (SCHEDULE 0, GUN STAT 2/K)
NOP SPEED5 ACCU1 TIMER0 TOOL2 WORK0 CLAMP1 (ON,0,2,2) OX= WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[1.1985,-45.062,-6.2176,0.59067,-99.845,-0.94472,0,0] ;TIP CAL 2
BREAK
CALL tip_meas(2);TIP WEAR LOGGING, WARNING AND RATIO CHECKS
VALUE 3:
; TIP CAL GUN 3 POSITION (SCHEDULE 0, GUN STAT 2/K)
NOP SPEED5 ACCU1 TIMER0 TOOL3 WORK0 CLAMP1 (ON,0,3,2) OX= WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[1.1985,-45.062,-6.2176,0.59067,-99.845,-0.94472,1.5776,0] ;TIP
CAL 3
BREAK
CALL tip_meas(3);TIP WEAR LOGGING, WARNING AND RATIO CHECKS
END;CASE OF
;
99 END

6.19 tip_dress1(); TIP DRESS SUBROUTINE SSW1 GUN 1


;************************************************
; COMPANY : RIVIAN
; PROGRAM : tip_dress1(), TIP DRESS SUBROUTINE SSW1 GUN 1 EXAMPLE
; REVISED LAST: 02/22/2023 REV 02
; Produced by RIVIAN KAWASAKI ROBOTICS DEV
;************************************************
;
; SKIP TIP DRESS 1 IF TIP DRESSER BYPASSED BY PLC
IF SIG(1245) GOTO skip_td ;TIP DRESSER BYPASSED BY PLC
;
JOINT SPEED4 ACCU2 TIMER0 TOOL1 WORK0 CLAMP1 (OFF,0,1,1) OX= WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[54.438,25.632,-63.14,-43.657,67.894,110.87,82.005] ;COMMON
;
SIGNAL 244 ; TIP DRESS MOTOR ON
;

[78]
WAIT SIG(1244) ; TIP DRESS MOTOR RUNNING
;
; BEFORE TIPDRESS
LINEAR SPEED4 ACCU2 TIMER0 TOOL1 WORK0 CLAMP1 (OFF,0,1,1) OX= WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[53.382,14.179,-66.827,-41.62,70.304,107.85,82.006] ;BEFORE
TIPDRESS
;
IF new_cap==1 THEN;
; AT TIPDRESS NEW CAPS(SCHEDULE 249)
LINEAR SPEED6 ACCU0 TIMER0 TOOL1 WORK0 CLAMP1 (ON,249,1,1) OX= WX=
CL1=0.000,90.0,10.0,0.0,0.0,0.0,0.0 #[53.41,11.87,-64.916,-42.124,68.889,109.22,5.209] ;TIPDRESSS
;
ELSE
; AT TIPDRESS (SCHEDULE 250)
LINEAR SPEED6 ACCU0 TIMER0 TOOL1 WORK0 CLAMP1 (ON,250,1,1) OX= WX=
CL1=0.000,90.0,10.0,0.0,0.0,0.0,0.0 #[53.41,11.87,-64.916,-42.124,68.889,109.22,5.209] ;TIPDRESSS
;
END; IF new_cap==1 THEN
;
; AFTER TIPDRESS
LINEAR SPEED4 ACCU2 TIMER0 TOOL1 WORK0 CLAMP1 (OFF,0,1,1) OX= WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[53.382,14.179,-66.827,-41.621,70.304,107.85,82.007] ;AFTER
TIPDRESS
;
DLYSIG -244,2 ; TIP DRESS MOTOR ON OFF
;
LINEAR SPEED6 ACCU2 TIMER0 TOOL1 WORK0 CLAMP1 (OFF,0,1,1) OX= WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[54.438,25.632,-63.14,-43.657,67.894,110.87,82.005] ;COMMON
;
skip_td:;TIP DRESSER BYPASSED AT PLC SKIP LABEL

6.20 tip_dress2(); TIP DRESS SUBROUTINE SSW1 GUN 2


;************************************************
; COMPANY : RIVIAN
; PROGRAM : tip_dress2(), TIP DRESS SUBROUTINE SSW1 GUN 2 EXAMPLE
; REVISED LAST: 02/22/2023 REV 02
; Produced by RIVIAN KAWASAKI ROBOTICS DEV
;************************************************
;
; SKIP TIP dress 2 IF TIP DRESSER BYPASSED BY PLC
IF SIG(1245) GOTO skip_td ;TIP DRESSER BYPASSED BY PLC
;
JOINT SPEED6 ACCU4 TIMER0 TOOL2 WORK0 CLAMP1 (OFF,0,2,1) OX= WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[-5.9558,-21.074,-16.028,-106.68,-99.846,-74.231,80,-500]
;COMMON
JOINT SPEED4 ACCU1 TIMER0 TOOL2 WORK0 CLAMP1 (OFF,0,2,1) OX= WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[-5.9444,3.4825,-50.722,-97.859,-107.79,-39.384,80,-500] ;
;
SIGNAL 244 ; TIP DRESS MOTOR ON
;
WAIT SIG(1244) ; TIP DRESS MOTOR RUNNING
;
; BEFORE TIPDRESS

[79]
LINEAR SPEED4 ACCU1 TIMER0 TOOL2 WORK0 CLAMP1 (OFF,0,2,1) OX= WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[-13.745,4.1337,-50.734,-91.968,-112.71,-39.822,80,-500] ;BEFORE
DRESS
;
IF new_cap==1 THEN;
; AT TIPDRESS NEW CAPS(SCHEDULE 249)
LINEAR SPEED2 ACCU0 TIMER0 TOOL2 WORK0 CLAMP1 (ON,249,2,1) OX= WX=
CL1=0.000,25.0,25.0,0.0,0.0,0.0,0.0 #[-13.388,5.8386,-50.456,-92.356,-112.47,-40.113,8.9995,-500]
;DRESS
;
ELSE
; AT TIPDRESS (SCHEDULE 250)
LINEAR SPEED2 ACCU0 TIMER0 TOOL2 WORK0 CLAMP1 (ON,250,2,1) OX= WX=
CL1=0.000,25.0,25.0,0.0,0.0,0.0,0.0 #[-13.388,5.8386,-50.456,-92.356,-112.47,-40.113,8.9995,-500]
;DRESS
;
END; IF new_cap==1 THEN
;
; AFTER TIPDRESS
LINEAR SPEED4 ACCU0 TIMER0 TOOL2 WORK0 CLAMP1 (OFF,0,2,1) OX= WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[-13.745,4.1337,-50.734,-91.968,-112.71,-39.822,80,-500] ;
;
DLYSIG -244,2 ; TIP DRESS MOTOR ON OFF
;
LINEAR SPEED6 ACCU2 TIMER0 TOOL2 WORK0 CLAMP1 (OFF,0,2,1) OX= WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[-5.9556,2.6627,-50.929,-98.085,-107.58,-39.136,80,-500] ;
JOINT SPEED6 ACCU2 TIMER0 TOOL2 WORK0 CLAMP1 (OFF,0,2,1) OX= WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[-5.9442,3.4825,-50.722,-97.859,-107.79,-39.384,80,-500] ;
JOINT SPEED6 ACCU4 TIMER0 TOOL2 WORK0 CLAMP1 (OFF,0,2,1) OX= WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[-5.9558,-21.074,-16.028,-106.68,-99.846,-74.231,80,-500]
;COMMON
;
skip_td:;TIP DRESSER BYPASSED AT PLC SKIP LABEL

6.12 tip_dress3(); TIP DRESS SUBROUTINE SSW1 GUN 3


;************************************************
; COMPANY : RIVIAN
; PROGRAM : tip_dress3(), TIP DRESS SUBROUTINE SSW1 GUN 3 EXAMPLE
; REVISED LAST: 02/22/2023 REV 02
; Produced by RIVIAN KAWASAKI ROBOTICS DEV
;************************************************
;
; SKIP TIP dress 3 IF TIP DRESSER BYPASSED BY PLC
IF SIG(1245) GOTO skip_td ;TIP DRESSER BYPASSED BY PLC
;
JOINT SPEED6 ACCU4 TIMER0 TOOL3 WORK0 CLAMP1 (OFF,0,3,1) OX= WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[55.383,-5.5423,-48.061,-141.57,-71.612,-116.6,80,-1524]
;COMMON
JOINT SPEED4 ACCU2 TIMER0 TOOL3 WORK0 CLAMP1 (OFF,0,3,1) OX= WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[53.599,39.662,-78.897,-149.71,-103.24,-98.696,80,-1524] ;
JOINT SPEED4 ACCU1 TIMER0 TOOL3 WORK0 CLAMP1 (OFF,0,3,1) OX= WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[56.122,62.568,-88.26,-151.6,-111.37,-94.524,80,-1524] ;
;

[80]
SIGNAL 244 ; TIP DRESS MOTOR ON
;
WAIT SIG(1244) ; TIP DRESS MOTOR RUNNING
;
; BEFORE TIPDRESS
LINEAR SPEED4 ACCU1 TIMER0 TOOL3 WORK0 CLAMP1 (OFF,0,3,1) OX= WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[50.894,62.877,-95.352,-144.61,-117.3,-90.264,80,-1524] ;BEFORE
DRESS
;
IF new_cap==1 THEN;
; AT TIPDRESS NEW CAPS(SCHEDULE 249)
LINEAR SPEED2 ACCU0 TIMER0 TOOL3 WORK0 CLAMP1 (ON,249,3,1) OX= WX=
CL1=0.000,25.0,20.0,0.0,0.0,0.0,0.0 #[52.205,62.879,-96.189,-145.72,-118.06,-89.846,7.9918,-1524]
;DRESS
;
ELSE
; AT TIPDRESS (SCHEDULE 250)
LINEAR SPEED2 ACCU0 TIMER0 TOOL3 WORK0 CLAMP1 (ON,250,3,1) OX= WX=
CL1=0.000,25.0,20.0,0.0,0.0,0.0,0.0 #[52.205,62.879,-96.189,-145.72,-118.06,-89.846,7.9918,-1524]
;DRESS
;
END; IF new_cap==1 THEN
;
; AFTER TIPDRESS
LINEAR SPEED4 ACCU1 TIMER0 TOOL3 WORK0 CLAMP1 (OFF,0,3,1) OX= WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[50.894,62.877,-95.352,-144.61,-117.3,-90.264,80,-1524] ;AFTER
DRESS
;
DLYSIG -244,2 ; TIP DRESS MOTOR ON OFF
;
LINEAR SPEED4 ACCU2 TIMER0 TOOL3 WORK0 CLAMP1 (OFF,0,3,1) OX= WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[56.122,62.568,-88.26,-151.6,-111.37,-94.524,80,-1524] ;
JOINT SPEED4 ACCU2 TIMER0 TOOL3 WORK0 CLAMP1 (OFF,0,3,1) OX= WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[53.599,39.662,-78.897,-149.71,-103.24,-98.696,80,-1524] ;
JOINT SPEED6 ACCU4 TIMER0 TOOL3 WORK0 CLAMP1 (OFF,0,3,1) OX= WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[55.383,-5.5423,-48.061,-141.57,-71.612,-116.6,80,-1524]
;COMMON
;
skip_td:;TIP DRESSER BYPASSED AT PLC SKIP LABEL

6.22 tip_meas(.guntm); TIP WEAR CALCULATIONS (gun#)


;************************************************
; COMPANY : RIVIAN
; PROGRAM : tip_meas(.gun), TIP WEAR CALCULATIONS (GUN #)
; REVISED LAST: 10/30/2022 REV 02
; Produced by RIVIAN KAWASAKI ROBOTICS DEV
;************************************************
; SUBROUTINE CALLED OUT OF pg02(TIP DRESS) UNLESS
; TIPDRESS BYPASSED FROM PLC, THEN SUBROUTINE
; CALLED OUT OF PG01(MAINTENANCE)
;************************************************
BREAK
;

[81]
CASE .guntm OF
VALUE 1:
;************************************************
; START MEASURE CALCULATIONS GUN 1
measure_count = measure_count+1 ;INCREMENT MEASURE COUNT
IF measure_count=>max_td_count THEN ;RESET measure_count VARIABLE AFTER max_td_count
REACHED
measure_count = 1
wear_m1[0] = wear_m1[max_td_count-1]
wear_f1[0] = wear_f1[max_td_count-1]
wear1[0] = wear1[max_td_count-1]
END
;
tipdresscnt1 = tipdresscnt1+1 ;INCREMENT TIP DRESS COUNT
IF SIG(1257) THEN ;NEW TIP STEPPER RESET GROUP 1 (NTSR)
tipdresscnt1 = 1 ;RESET TIP DRESS COUNT
END ;IF SIG(1257), NEW TIP STEPPER RESET GROUP 1 (NTSR)
;
; **************** GUN 1 TIP WEAR TO VARIABLES ****************
; READ AND LOG TIP WEAR VALUES
wear_m1[measure_count] = SGCHIP(1,0) ;WRITE ABRASION VALUE OF MOVING CAP TO
wear_m1[] ARRAY
tipwear_m1 = wear_m1[measure_count] ;INTERFACE SCREEN VARIABLE (MOVING CAP)
wear_f1[measure_count] = SGCHIP(1,1) ;WRITE ABRASION VALUE OF FIXED CAP TO wear_f1[]
ARRAY
tipwear_f1 = wear_f1[measure_count] ;INTERFACE SCREEN VARIABLE (FIXED CAP)
wear1[measure_count] = wear_m1[measure_count]+wear_f1[measure_count] ;WRITE ABRASION
VALUE OF TOTAL WEAR TO wear1[] ARRAY
wear_if1 = wear1[measure_count] ;INTERFACE SCREEN VARIABLE (TOTAL WEAR)
; STEEL SPOT WELDING TIP CUT WARNING LEVEL GUN 1 (MIN WEAR BETWEEN TIP DRESSES)
wear_flt1 = 0.05 ;STEEL SPOT WELDING (0.05)
;
wear_m1[measure_count+1] = 999 ;SET LEADING EDGE OF WEAR READINGS (MOVING CAP)
wear_f1[measure_count+1] = 999 ;SET LEADING EDGE OF WEAR READINGS (FIXED CAP)
wear1[measure_count+1] = 999 ;SET LEADING EDGE OF WEAR READINGS (TOTAL WEAR)
;
; **************** TIP DRESS CUTTER DULL WARNNIG GUN 1 ****************
; LAST 10 READINGS AVERAGE GREATER THAN 0.2mm WEAR
;
;MOVING CAP CALCULATIONS
IF SIG(1257) THEN ;NEW TIP STEPPER RESET GROUP 1 (NTSR)
cutter1_m_delta = wear_m1[measure_count]; TIP WEAR MEASURED ON A NEW MOVING WELD
CAP
ntsr_m_flag = TRUE ;SET NEW TIP STEPPER RESET FLAG
GOTO skip_m_wear_cal
END ;IF SIG(1257), NEW TIP STEPPER RESET GROUP 1 (NTSR)
;
IF ntsr_m_flag==TRUE THEN ;LAST MEASURE WAS ON NEW CAPS
cutter1_m[0] = wear_m1[measure_count]-cutter1_m_delta; TIP WEAR MEASURED ON A DRESSED
MOVING WELD CAP
ntsr_m_flag = FALSE ;RESET ntsr_flag TO OFF
END ;IF ntsr_m_flag == TRUE THEN ;LAST MEASURE WAS ON NEW CAPS
;
IF measure_count==1 THEN ;COUNT RESET

[82]
cutter1_m[0] = wear_m1[measure_count]-wear_m1[max_td_count]; TIP WEAR MEASURED ON A
DRESSED MOVING WELD CAP
GOTO 10
END
;
cutter1_m[0] = wear_m1[measure_count]-wear_m1[measure_count-1]; TIP WEAR MEASURED ON A
DRESSED MOVING WELD CAP
10
;
cutter1_m[11] = cutter1_mm[10] ;INCREMENT MEMORY BANK (MOVING)
cutter1_m[10] = cutter1_mm[9] ;INCREMENT MEMORY BANK (MOVING)
cutter1_m[9] = cutter1_mm[8] ;INCREMENT MEMORY BANK (MOVING)
cutter1_m[8] = cutter1_mm[7] ;INCREMENT MEMORY BANK (MOVING)
cutter1_m[7] = cutter1_mm[6] ;INCREMENT MEMORY BANK (MOVING)
cutter1_m[6] = cutter1_mm[5] ;INCREMENT MEMORY BANK (MOVING)
cutter1_m[5] = cutter1_mm[4] ;INCREMENT MEMORY BANK (MOVING)
cutter1_m[4] = cutter1_mm[3] ;INCREMENT MEMORY BANK (MOVING)
cutter1_m[3] = cutter1_mm[2] ;INCREMENT MEMORY BANK (MOVING)
cutter1_m[2] = cutter1_mm[1] ;INCREMENT MEMORY BANK (MOVING)
cutter1_m[1] = cutter1_m[0] ;INPUT NEW VALUE
;
FOR m = 1 TO 10 ;SET MOVING TIP WEAR MEMORY
cutter1_mm[m] = cutter1_m[m]
END
;
delta1_m = 0 ;RESET DELTA1_M FOR CALCULATION
FOR c = 2 TO 11
delta1_m = cutter1_m[c]+delta1_m ;ADD LAST 10 TIP CUTTER VALUES
END
avg_m1 = delta1_m/10 ;AVG OF LAST 10 READINGS
diff1_m1 = ABS(avg_m1) ;(MOVING)
PRINT "AVERAGE MOVING TIP WEAR ",diff1_m1
skip_m_wear_cal:
;
;FIXED CAP CALCULATIONS
IF SIG(1257) THEN ;NEW TIP STEPPER RESET GROUP 1 (NTSR)
cutter1_f_delta = wear_f1[measure_count]; TIP WEAR MEASURED ON A NEW FIXED WELD CAP
ntsr_f_flag = TRUE ;SET NEW TIP STEPPER RESET FLAG
GOTO skip_f_wear_cal
END ;IF SIG(1257), NEW TIP STEPPER RESET GROUP 1 (NTSR)
;
IF ntsr_f_flag==TRUE THEN ;LAST MEASURE WAS ON NEW CAPS
cutter1_m[0] = wear_m1[measure_count]-cutter1_m_delta; TIP WEAR MEASURED ON A DRESSED
MOVING WELD CAP
ntsr_f_flag = FALSE ;RESET ntsr_flag TO OFF
END ;IF ntsr_f_flag == TRUE THEN ;LAST MEASURE WAS ON NEW CAPS
;
IF measure_count==1 THEN ;COUNT RESET
cutter1_f[0] = wear_f1[measure_count]-wear_f1[max_td_count]; TIP WEAR MEASURED ON A
DRESSED FIXED WELD CAP
GOTO 20
END
;

[83]
cutter1_f[0] = wear_f1[measure_count]-wear_f1[measure_count-1]; TIP WEAR MEASURED ON A
DRESSED FIXED WELD CAP
;
20
cutter1_f[11] = cutter1_fm[10] ;INCREMENT MEMORY BANK (FIXED)
cutter1_f[10] = cutter1_fm[9] ;INCREMENT MEMORY BANK (FIXED)
cutter1_f[9] = cutter1_fm[8] ;INCREMENT MEMORY BANK (FIXED)
cutter1_f[8] = cutter1_fm[7] ;INCREMENT MEMORY BANK (FIXED)
cutter1_f[7] = cutter1_fm[6] ;INCREMENT MEMORY BANK (FIXED)
cutter1_f[6] = cutter1_fm[5] ;INCREMENT MEMORY BANK (FIXED)
cutter1_f[5] = cutter1_fm[4] ;INCREMENT MEMORY BANK (FIXED)
cutter1_f[4] = cutter1_fm[3] ;INCREMENT MEMORY BANK (FIXED)
cutter1_f[3] = cutter1_fm[2] ;INCREMENT MEMORY BANK (FIXED)
cutter1_f[2] = cutter1_fm[1] ;INCREMENT MEMORY BANK (FIXED)
cutter1_f[1] = cutter1_f[0] ;INPUT NEW VALUE
;
FOR m = 1 TO 10 ;SET MOVING TIP WEAR MEMORY
cutter1_fm[m] = cutter1_f[m]
END
;
delta1_f = 0 ;RESET DELTA1_f FOR CALCULATION
FOR c = 2 TO 11
delta1_f = cutter1_m[c]+delta1_f ;ADD LAST 10 TIP CUTTER VALUES
END
avg_f1 = delta1_f/10 ;AVG OF LAST 10 READINGS
diff1_f1 = ABS(avg_f1) ;(FIXED)
PRINT "AVERAGE FIXED TIP WEAR ",diff1_f1
skip_f_wear_cal:
;
; **************** TIP DRESS CUT WARNING GUN 1 ****************
;TIP DRESS CUT WARNING (NOT ENOUGH MATERIAL CUT FROM TIPS)
;
diff1 = wear_f1[measure_count]-wear_m1[measure_count] ;CALCULATE DIFFERENCE BETWEEN
MOVING AND FIXED CAPS
IF SIG(-1257) THEN ;NEW TIP STEPPER RESET GROUP 1 (NTSR)
IF (wear_m1[measure_count]<=(wear_m1[measure_count-1]+wear_flt1)) OR
(wear_f1[measure_count]<=(wear_f1[measure_count-1]+wear_flt1)) THEN
PRINT "WEAR MEASUREMENT FROM PREVIOUS CUT ",wear1[measure_count-1]
PRINT " "
PRINT "WEAR MEASUREMENT FROM CURRENT CUT ",wear1[measure_count]
alarm[18] = 1 ; TD CUT NOT SUFFICIENT
SIGNAL 248 ; TD FAULT TD CUT NOT SUFFICIENT
PULSE 2120,1 ; PULSE TIP DRESS REQUEST TO PLC
wearwarn = wearwarn+1 ; INCREMENT WEAR WARNING COUNT
IF wearwarn>1 THEN; IF WARNING MORE THAN ONCE
SIGNAL 248 ; TD FAULT TD CUT NOT SUFFICIENT
WAIT SIG(1238) OR SIG(1007); TD CUT NOT SUF ACK(PLC) AND RESET
PULSE 2120,1 ; PULSE TIP DRESS REQUEST TO PLC
alarm[18] = 0 ; TD CUT NOT SUFFICIENT RESET
END ; IF WARNING MORE THAN ONCE
ELSE
SIGNAL -248;RESET TD FAULT TD CUT NOT SUFFICIENT
alarm[18] = 0 ; TD CUT NOT SUFFICIENT RESET
wearwarn = 0; RESET TD CUT NOT SUFFICIENT

[84]
END
END
;
; **************** WRONG TIP GUN 1 ****************
;TIP WEAR ON 1ST MEASURE GREATER THAN 5mm
;
IF SIG(1257) THEN ;NEW TIP STEPPER RESET GROUP 1 (NTSR)
dress_cnt = 1 ;NTSR, RESET TIP DRESS COUNTER
IF wear_f1[measure_count]>=wrong_tip1 OR wear_f1[measure_count]<=(0-wrong_tip1) THEN
SIGNAL 261 ;GUN 1 WRONG TIP ON ROBOT (RESET IN init PROGRAM)
END
IF wear_m1[measure_count]>=wrong_tip1 OR wear_m1[measure_count]<=(0-wrong_tip1) THEN
SIGNAL 261 ;GUN 1 WRONG TIP ON ROBOT (RESET IN init PROGRAM)
END
END ;IF SIG(1257), NEW TIP STEPPER RESET GROUP 1 (NTSR)
;************************************************
; END GUN 1
;************************************************
;
VALUE 2:
;************************************************
; START MEASURE CALCULATIONS GUN 2
measure_count2 = measure_count2+1 ;INCREMENT MEASURE COUNT
IF measure_count2=>max_td_count THEN ;RESET measure_count2 VARIABLE AFTER max_td_count
REACHED
measure_count2 = 1
wear_m2[0] = wear_m2[max_td_count-1]
wear_f2[0] = wear_f2[max_td_count-1]
wear2[0] = wear2[max_td_count-1]
END
;
tipdresscnt2 = tipdresscnt2+1 ;INCREMENT TIP DRESS COUNT
IF SIG(1264) THEN ;NEW TIP STEPPER RESET GROUP 2 (NTSR)
tipdresscnt2 = 1 ;RESET TIP DRESS COUNT
END ;IF SIG(1264), NEW TIP STEPPER RESET GROUP 2 (NTSR)
;
; **************** GUN 2 TIP WEAR TO VARIABLES ****************
; READ AND LOG TIP WEAR VALUES
wear_m2[measure_count2] = SGCHIP(2,0) ;WRITE ABRASION VALUE OF MOVING CAP TO
wear_m2[] ARRAY
tipwear_m2 = wear_m2[measure_count2] ;INTERFACE SCREEN VARIABLE (MOVING CAP)
wear_f2[measure_count2] = SGCHIP(2,1) ;WRITE ABRASION VALUE OF FIXED CAP TO wear_f2[]
ARRAY
tipwear_f2 = wear_f2[measure_count2] ;INTERFACE SCREEN VARIABLE (FIXED CAP)
wear2[measure_count2] = wear_m2[measure_count2]+wear_f2[measure_count2] ;WRITE ABRASION
VALUE OF TOTAL WEAR TO wear2[] ARRAY
wear_if2 = wear2[measure_count2] ;INTERFACE SCREEN VARIABLE (TOTAL WEAR)
; STEEL SPOT WELDING TIP CUT WARNING LEVEL GUN 1 (MIN WEAR BETWEEN TIP DRESSES)
wear_flt1 = 0.05 ;STEEL SPOT WELDING (0.05)
;
wear_m2[measure_count2+1] = 999 ;SET LEADING EDGE OF WEAR READINGS (MOVING CAP)
wear_f2[measure_count2+1] = 999 ;SET LEADING EDGE OF WEAR READINGS (FIXED CAP)
wear2[measure_count2+1] = 999 ;SET LEADING EDGE OF WEAR READINGS (TOTAL WEAR)
;

[85]
; **************** TIP DRESS CUTTER DULL WARNNIG GUN 2 ****************
; LAST 10 READINGS AVERAGE GREATER THAN 0.2mm WEAR
;
;MOVING CAP CALCULATIONS
IF SIG(1264) THEN ;NEW TIP STEPPER RESET GROUP 2 (NTSR)
cutter2_m_delta = wear_m2[measure_count2]; TIP WEAR MEASURED ON A NEW MOVING WELD
CAP
ntsr_m_flag = TRUE ;SET NEW TIP STEPPER RESET FLAG
GOTO skip_m2_wear_ca
END ;IF SIG(1264), NEW TIP STEPPER RESET GROUP 2 (NTSR)
;
IF ntsr_m_flag==TRUE THEN ;LAST MEASURE WAS ON NEW CAPS
cutter2_m[0] = wear_m2[measure_count2]-cutter2_m_delta; TIP WEAR MEASURED ON A
DRESSED MOVING WELD CAP
ntsr_m_flag = FALSE ;RESET ntsr_flag TO OFF
END ;IF ntsr_m_flag == TRUE THEN ;LAST MEASURE WAS ON NEW CAPS
;
IF measure_count2==1 THEN ;COUNT RESET
cutter2_m[0] = wear_m2[measure_count2]-wear_m2[max_td_count]; TIP WEAR MEASURED ON A
DRESSED MOVING WELD CAP
GOTO 102
END
;
cutter2_m[0] = wear_m2[measure_count2]-wear_m2[measure_count2-1]; TIP WEAR MEASURED ON
A DRESSED MOVING WELD CAP
102
;
cutter2_m[11] = cutter2_mm[10] ;INCREMENT MEMORY BANK (MOVING)
cutter2_m[10] = cutter2_mm[9] ;INCREMENT MEMORY BANK (MOVING)
cutter2_m[9] = cutter2_mm[8] ;INCREMENT MEMORY BANK (MOVING)
cutter2_m[8] = cutter2_mm[7] ;INCREMENT MEMORY BANK (MOVING)
cutter2_m[7] = cutter2_mm[6] ;INCREMENT MEMORY BANK (MOVING)
cutter2_m[6] = cutter2_mm[5] ;INCREMENT MEMORY BANK (MOVING)
cutter2_m[5] = cutter2_mm[4] ;INCREMENT MEMORY BANK (MOVING)
cutter2_m[4] = cutter2_mm[3] ;INCREMENT MEMORY BANK (MOVING)
cutter2_m[3] = cutter2_mm[2] ;INCREMENT MEMORY BANK (MOVING)
cutter2_m[2] = cutter2_mm[1] ;INCREMENT MEMORY BANK (MOVING)
cutter2_m[1] = cutter2_m[0] ;INPUT NEW VALUE
;
FOR m = 1 TO 10 ;SET MOVING TIP WEAR MEMORY
cutter2_mm[m] = cutter2_m[m]
END
;
delta2_m = 0 ;RESET DELTA2_M FOR CALCULATION
FOR c = 2 TO 11
delta2_m = cutter2_m[c]+delta2_m ;ADD LAST 10 TIP CUTTER VALUES
END
avg_m2 = delta2_m/10 ;AVG OF LAST 10 READINGS
diff1_m2 = ABS(avg_m2) ;(MOVING)
PRINT "AVERAGE MOVING TIP WEAR ",diff1_m2
skip_m2_wear_ca:
;
;FIXED CAP CALCULATIONS
IF SIG(1264) THEN ;NEW TIP STEPPER RESET GROUP 2 (NTSR)

[86]
cutter2_f_delta = wear_f2[measure_count2]; TIP WEAR MEASURED ON A NEW FIXED WELD CAP
ntsr_f_flag = TRUE ;SET NEW TIP STEPPER RESET FLAG
GOTO skip_f2_wear_ca
END ;IF SIG(1264), NEW TIP STEPPER RESET GROUP 2 (NTSR)
;
IF ntsr_f_flag==TRUE THEN ;LAST MEASURE WAS ON NEW CAPS
cutter2_m[0] = wear_m2[measure_count2]-cutter2_m_delta; TIP WEAR MEASURED ON A
DRESSED MOVING WELD CAP
ntsr_f_flag = FALSE ;RESET ntsr_flag TO OFF
END ;IF ntsr_f_flag == TRUE THEN ;LAST MEASURE WAS ON NEW CAPS
;
IF measure_count2==1 THEN ;COUNT RESET
cutter2_f[0] = wear_f2[measure_count2]-wear_f2[max_td_count]; TIP WEAR MEASURED ON A
DRESSED FIXED WELD CAP
GOTO 202
END
;
cutter2_f[0] = wear_f2[measure_count2]-wear_f2[measure_count2-1]; TIP WEAR MEASURED ON A
DRESSED FIXED WELD CAP
;
202
cutter2_f[11] = cutter2_fm[10] ;INCREMENT MEMORY BANK (FIXED)
cutter2_f[10] = cutter2_fm[9] ;INCREMENT MEMORY BANK (FIXED)
cutter2_f[9] = cutter2_fm[8] ;INCREMENT MEMORY BANK (FIXED)
cutter2_f[8] = cutter2_fm[7] ;INCREMENT MEMORY BANK (FIXED)
cutter2_f[7] = cutter2_fm[6] ;INCREMENT MEMORY BANK (FIXED)
cutter2_f[6] = cutter2_fm[5] ;INCREMENT MEMORY BANK (FIXED)
cutter2_f[5] = cutter2_fm[4] ;INCREMENT MEMORY BANK (FIXED)
cutter2_f[4] = cutter2_fm[3] ;INCREMENT MEMORY BANK (FIXED)
cutter2_f[3] = cutter2_fm[2] ;INCREMENT MEMORY BANK (FIXED)
cutter2_f[2] = cutter2_fm[1] ;INCREMENT MEMORY BANK (FIXED)
cutter2_f[1] = cutter2_f[0] ;INPUT NEW VALUE
;
FOR m = 1 TO 10 ;SET MOVING TIP WEAR MEMORY
cutter2_fm[m] = cutter2_f[m]
END
;
delta2_f = 0 ;RESET DELTA2_f FOR CALCULATION
FOR c = 2 TO 11
delta2_f = cutter2_f[c]+delta2_f ;ADD LAST 10 TIP CUTTER VALUES
END
avg_f2 = delta2_f/10 ;AVG OF LAST 10 READINGS
diff1_f2 = ABS(avg_f2) ;(FIXED)
PRINT "AVERAGE FIXED TIP WEAR ",diff1_f2
skip_f2_wear_ca:
;
; **************** TIP DRESS CUT WARNING GUN 2 ****************
;TIP DRESS CUT WARNING (NOT ENOUGH MATERIAL CUT FROM TIPS)
;
diff2 = wear_f2[measure_count2]-wear_m2[measure_count2] ;CALCULATE DIFFERENCE BETWEEN
MOVING AND FIXED CAPS
IF SIG(-1264) THEN ;NEW TIP STEPPER RESET GROUP 2 (NTSR)
IF (wear_m2[measure_count2]<=(wear_m2[measure_count2-1]+wear_flt1)) OR
(wear_f2[measure_count2]<=(wear_f2[measure_count2-1]+wear_flt1)) THEN

[87]
PRINT "WEAR MEASUREMENT FROM PREVIOUS CUT ",wear2[measure_count2-1]
PRINT " "
PRINT "WEAR MEASUREMENT FROM CURRENT CUT ",wear2[measure_count2]
alarm[18] = 1 ; TD CUT NOT SUFFICIENT
SIGNAL 248 ; TD FAULT TD CUT NOT SUFFICIENT
PULSE 2121,1 ; PULSE TIP DRESS REQUEST TO PLC
wearwarn = wearwarn+1 ; INCREMENT WEAR WARNING COUNT
IF wearwarn>1 THEN; IF WARNING MORE THAN ONCE
SIGNAL 248 ; TD FAULT TD CUT NOT SUFFICIENT
WAIT SIG(1238) OR SIG(1007); TD CUT NOT SUF ACK(PLC) AND RESET
PULSE 2121,1 ; PULSE TIP DRESS REQUEST TO PLC
alarm[18] = 0 ; TD CUT NOT SUFFICIENT RESET
END ; IF WARNING MORE THAN ONCE
ELSE
SIGNAL -248;RESET TD FAULT TD CUT NOT SUFFICIENT
alarm[18] = 0 ; TD CUT NOT SUFFICIENT RESET
wearwarn = 0; RESET TD CUT NOT SUFFICIENT
END
END
;
; **************** WRONG TIP GUN 2 ****************
;TIP WEAR ON 1ST MEASURE GREATER THAN 5mm
;
IF SIG(1264) THEN ;NEW TIP STEPPER RESET GROUP 2 (NTSR)
dress_cnt2 = 1 ;NTSR, RESET TIP DRESS COUNTER
IF wear_f2[measure_count2]>=wrong_tip2 OR wear_f2[measure_count2]<=(0-wrong_tip2) THEN
SIGNAL 261 ;GUN 2 WRONG TIP ON ROBOT (RESET IN init PROGRAM)
END
IF wear_m2[measure_count2]>=wrong_tip2 OR wear_m2[measure_count2]<=(0-wrong_tip2) THEN
SIGNAL 261 ;GUN 2 WRONG TIP ON ROBOT (RESET IN init PROGRAM)
END
END ;IF SIG(1264), NEW TIP STEPPER RESET GROUP 2 (NTSR)
;************************************************
; END GUN 2
;************************************************
;
VALUE 3:
;************************************************
; START MEASURE CALCULATIONS GUN 3
measure_count3 = measure_count3+1 ;INCREMENT MEASURE COUNT
IF measure_count3=>max_td_count THEN ;RESET measure_count3 VARIABLE AFTER max_td_count
REACHED
measure_count3 = 1
wear_m3[0] = wear_m3[max_td_count-1]
wear_f3[0] = wear_f3[max_td_count-1]
wear3[0] = wear3[max_td_count-1]
END
;
tipdresscnt3 = tipdresscnt3+1 ;INCREMENT TIP DRESS COUNT
IF SIG(1706) THEN ;NEW TIP STEPPER RESET GROUP 3 (NTSR)
tipdresscnt3 = 1 ;RESET TIP DRESS COUNT
END ;IF SIG(1706), NEW TIP STEPPER RESET GROUP 3 (NTSR)
;
; **************** GUN 3 TIP WEAR TO VARIABLES ****************

[88]
; READ AND LOG TIP WEAR VALUES
wear_m3[measure_count3] = SGCHIP(3,0) ;WRITE ABRASION VALUE OF MOVING CAP TO
wear_m3[] ARRAY
tipwear_m3 = wear_m3[measure_count3] ;INTERFACE SCREEN VARIABLE (MOVING CAP)
wear_f3[measure_count3] = SGCHIP(3,1) ;WRITE ABRASION VALUE OF FIXED CAP TO wear_f3[]
ARRAY
tipwear_f3 = wear_f3[measure_count3] ;INTERFACE SCREEN VARIABLE (FIXED CAP)
wear3[measure_count3] = wear_m3[measure_count3]+wear_f3[measure_count3] ;WRITE ABRASION
VALUE OF TOTAL WEAR TO wear3[] ARRAY
wear_if3 = wear3[measure_count3] ;INTERFACE SCREEN VARIABLE (TOTAL WEAR)
; STEEL SPOT WELDING TIP CUT WARNING LEVEL GUN 1 (MIN WEAR BETWEEN TIP DRESSES)
wear_flt1 = 0.05 ;STEEL SPOT WELDING (0.05)
;
wear_m3[measure_count3+1] = 999 ;SET LEADING EDGE OF WEAR READINGS (MOVING CAP)
wear_f3[measure_count3+1] = 999 ;SET LEADING EDGE OF WEAR READINGS (FIXED CAP)
wear3[measure_count3+1] = 999 ;SET LEADING EDGE OF WEAR READINGS (TOTAL WEAR)
;
; **************** TIP DRESS CUTTER DULL WARNNIG GUN 3 ****************
; LAST 10 READINGS AVERAGE GREATER THAN 0.2mm WEAR
;
;MOVING CAP CALCULATIONS
IF SIG(1706) THEN ;NEW TIP STEPPER RESET GROUP 3 (NTSR)
cutter3_m_delta = wear_m3[measure_count3]; TIP WEAR MEASURED ON A NEW MOVING WELD
CAP
ntsr_m_flag = TRUE ;SET NEW TIP STEPPER RESET FLAG
GOTO skip_m3_wear_ca
END ;IF SIG(1706), NEW TIP STEPPER RESET GROUP 3 (NTSR)
;
IF ntsr_m_flag==TRUE THEN ;LAST MEASURE WAS ON NEW CAPS
cutter3_m[0] = wear_m3[measure_count3]-cutter3_m_delta; TIP WEAR MEASURED ON A
DRESSED MOVING WELD CAP
ntsr_m_flag = FALSE ;RESET ntsr_flag TO OFF
END ;IF ntsr_m_flag == TRUE THEN ;LAST MEASURE WAS ON NEW CAPS
;
IF measure_count3==1 THEN ;COUNT RESET
cutter3_m[0] = wear_m3[measure_count3]-wear_m3[max_td_count]; TIP WEAR MEASURED ON A
DRESSED MOVING WELD CAP
GOTO 103
END
;
cutter3_m[0] = wear_m3[measure_count3]-wear_m3[measure_count3-1]; TIP WEAR MEASURED ON
A DRESSED MOVING WELD CAP
103
;
cutter3_m[11] = cutter3_mm[10] ;INCREMENT MEMORY BANK (MOVING)
cutter3_m[10] = cutter3_mm[9] ;INCREMENT MEMORY BANK (MOVING)
cutter3_m[9] = cutter3_mm[8] ;INCREMENT MEMORY BANK (MOVING)
cutter3_m[8] = cutter3_mm[7] ;INCREMENT MEMORY BANK (MOVING)
cutter3_m[7] = cutter3_mm[6] ;INCREMENT MEMORY BANK (MOVING)
cutter3_m[6] = cutter3_mm[5] ;INCREMENT MEMORY BANK (MOVING)
cutter3_m[5] = cutter3_mm[4] ;INCREMENT MEMORY BANK (MOVING)
cutter3_m[4] = cutter3_mm[3] ;INCREMENT MEMORY BANK (MOVING)
cutter3_m[3] = cutter3_mm[2] ;INCREMENT MEMORY BANK (MOVING)
cutter3_m[2] = cutter3_mm[1] ;INCREMENT MEMORY BANK (MOVING)

[89]
cutter3_m[1] = cutter3_m[0] ;INPUT NEW VALUE
;
FOR m = 1 TO 10 ;SET MOVING TIP WEAR MEMORY
cutter3_mm[m] = cutter3_m[m]
END
;
delta3_m = 0 ;RESET DELTA3_M FOR CALCULATION
FOR c = 2 TO 11
delta3_m = cutter3_m[c]+delta3_m ;ADD LAST 10 TIP CUTTER VALUES
END
avg_m3 = delta3_m/10 ;AVG OF LAST 10 READINGS
diff1_m3 = ABS(avg_m3) ;(MOVING)
PRINT "AVERAGE MOVING TIP WEAR ",diff1_m3
skip_m3_wear_ca:
;
;FIXED CAP CALCULATIONS
IF SIG(1706) THEN ;NEW TIP STEPPER RESET GROUP 3 (NTSR)
cutter3_f_delta = wear_f3[measure_count3]; TIP WEAR MEASURED ON A NEW FIXED WELD CAP
ntsr_f_flag = TRUE ;SET NEW TIP STEPPER RESET FLAG
GOTO skip_f3_wear_ca
END ;IF SIG(1706), NEW TIP STEPPER RESET GROUP 3 (NTSR)
;
IF ntsr_f_flag==TRUE THEN ;LAST MEASURE WAS ON NEW CAPS
cutter3_m[0] = wear_m3[measure_count3]-cutter3_m_delta; TIP WEAR MEASURED ON A
DRESSED MOVING WELD CAP
ntsr_f_flag = FALSE ;RESET ntsr_flag TO OFF
END ;IF ntsr_f_flag == TRUE THEN ;LAST MEASURE WAS ON NEW CAPS
;
IF measure_count3==1 THEN ;COUNT RESET
cutter3_f[0] = wear_f3[measure_count3]-wear_f3[max_td_count]; TIP WEAR MEASURED ON A
DRESSED FIXED WELD CAP
GOTO 203
END
;
cutter3_f[0] = wear_f3[measure_count3]-wear_f3[measure_count3-1]; TIP WEAR MEASURED ON A
DRESSED FIXED WELD CAP
;
203
cutter3_f[11] = cutter3_fm[10] ;INCREMENT MEMORY BANK (FIXED)
cutter3_f[10] = cutter3_fm[9] ;INCREMENT MEMORY BANK (FIXED)
cutter3_f[9] = cutter3_fm[8] ;INCREMENT MEMORY BANK (FIXED)
cutter3_f[8] = cutter3_fm[7] ;INCREMENT MEMORY BANK (FIXED)
cutter3_f[7] = cutter3_fm[6] ;INCREMENT MEMORY BANK (FIXED)
cutter3_f[6] = cutter3_fm[5] ;INCREMENT MEMORY BANK (FIXED)
cutter3_f[5] = cutter3_fm[4] ;INCREMENT MEMORY BANK (FIXED)
cutter3_f[4] = cutter3_fm[3] ;INCREMENT MEMORY BANK (FIXED)
cutter3_f[3] = cutter3_fm[2] ;INCREMENT MEMORY BANK (FIXED)
cutter3_f[2] = cutter3_fm[1] ;INCREMENT MEMORY BANK (FIXED)
cutter3_f[1] = cutter3_f[0] ;INPUT NEW VALUE
;
FOR m = 1 TO 10 ;SET MOVING TIP WEAR MEMORY
cutter3_fm[m] = cutter3_f[m]
END
;

[90]
delta3_f = 0 ;RESET DELTA3_f FOR CALCULATION
FOR c = 2 TO 11
delta3_f = cutter3_f[c]+delta3_f ;ADD LAST 10 TIP CUTTER VALUES
END
avg_f3 = delta3_f/10 ;AVG OF LAST 10 READINGS
diff1_f3 = ABS(avg_f3) ;(FIXED)
PRINT "AVERAGE FIXED TIP WEAR ",diff1_f3
skip_f3_wear_ca:
;
; **************** TIP DRESS CUT WARNING GUN 3 ****************
;TIP DRESS CUT WARNING (NOT ENOUGH MATERIAL CUT FROM TIPS)
;
diff3 = wear_f3[measure_count3]-wear_m3[measure_count3] ;CALCULATE DIFFERENCE BETWEEN
MOVING AND FIXED CAPS
IF SIG(-1706) THEN ;NEW TIP STEPPER RESET GROUP 1 (NTSR)
IF (wear_m3[measure_count3]<=(wear_m3[measure_count3-1]+wear_flt1)) OR
(wear_f3[measure_count3]<=(wear_f3[measure_count3-1]+wear_flt1)) THEN
PRINT "WEAR MEASUREMENT FROM PREVIOUS CUT ",wear3[measure_count3-1]
PRINT " "
PRINT "WEAR MEASUREMENT FROM CURRENT CUT ",wear3[measure_count3]
alarm[18] = 1 ; TD CUT NOT SUFFICIENT
SIGNAL 248 ; TD FAULT TD CUT NOT SUFFICIENT
PULSE 2137,1 ; PULSE TIP DRESS REQUEST TO PLC
wearwarn = wearwarn+1 ; INCREMENT WEAR WARNING COUNT
IF wearwarn>1 THEN; IF WARNING MORE THAN ONCE
SIGNAL 248 ; TD FAULT TD CUT NOT SUFFICIENT
WAIT SIG(1238) OR SIG(1007); TD CUT NOT SUF ACK(PLC) AND RESET
PULSE 2137,1 ; PULSE TIP DRESS REQUEST TO PLC
alarm[18] = 0 ; TD CUT NOT SUFFICIENT RESET
END ; IF WARNING MORE THAN ONCE
ELSE
SIGNAL -248;RESET TD FAULT TD CUT NOT SUFFICIENT
alarm[18] = 0 ; TD CUT NOT SUFFICIENT RESET
wearwarn = 0; RESET TD CUT NOT SUFFICIENT
END
END
;
; **************** WRONG TIP GUN 3 ****************
;TIP WEAR ON 1ST MEASURE GREATER THAN 5mm
;
IF SIG(1706) THEN ;NEW TIP STEPPER RESET GROUP 3 (NTSR)
dress_cnt3 = 1 ;NTSR, RESET TIP DRESS COUNTER
IF wear_f3[measure_count3]>=wrong_tip3 OR wear_f3[measure_count3]<=(0-wrong_tip3) THEN
SIGNAL 261 ;GUN 2 WRONG TIP ON ROBOT (RESET IN init PROGRAM)
END
IF wear_m3[measure_count3]>=wrong_tip3 OR wear_m3[measure_count3]<=(0-wrong_tip3) THEN
SIGNAL 261 ;GUN 2 WRONG TIP ON ROBOT (RESET IN init PROGRAM)
END
END ;IF SIG(1706), NEW TIP STEPPER RESET GROUP 3 (NTSR)
;
END ; CASE OF

[91]
6.23 tip_rischk_wtc1(.sw_gunnum); WTC1 TIP RESISTANCE
CHECK (gun#)
;************************************************
; COMPANY : RIVIAN
; PROGRAM : tip_rischk_wtc1(), WTC1 TIP RESISTANCE CHECK (gun#)
; REVISED LAST: 10/29/2022 REV 01
; Produced by RIVIAN KAWASAKI ROBOTICS
;************************************************
;
SIGNAL 247; TIP RESISTANCE CHECK
;
CASE .sw_gunnum OF
VALUE 1:
; SSW1 GUN 1
; IF PULLED TIP BYPASS ON SKIP TIP RESISTANCE CHECK
IF SIG(-1240) THEN; IF PULLED TIP BYPASS ON
; TIP RESISTANCE CHECK POSITION GUN 1 (SCHEDULE 252)
NOP SPEED6 ACCU0 TIMER0 TOOL1 WORK0 CLAMP1 (ON,252,1,1) OX= WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[0,0,0,0,0,0,30] ;NOP
END; IF IN PULLED TIP
IF SIG(1242) THEN; IF TIP RESISTANCE CHECK FAULT
PULSE 2120,1 ; PULSE TIP DRESS REQUEST GRP1 TO PLC
END; IF TIP RESISTANCE CHECK FAULT
;
VALUE 2:
; SSW1 GUN 2
; IF PULLED TIP BYPASS ON SKIP TIP RESISTANCE CHECK
IF SIG(-1240) THEN; IF PULLED TIP BYPASS ON
; TIP RESISTANCE CHECK POSITION GUN 2 (SCHEDULE 253)
NOP SPEED6 ACCU0 TIMER0 TOOL1 WORK0 CLAMP1 (ON,253,2,1) OX= WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[0,0,0,0,0,0,30] ;NOP
END; IF IN PULLED TIP
IF SIG(1242) THEN; IF TIP RESISTANCE CHECK FAULT
PULSE 2121,1 ; PULSE TIP DRESS REQUEST GRP2 TO PLC
END; IF TIP RESISTANCE CHECK FAULT
;
VALUE 3:
; SSW1 GUN 3
; IF PULLED TIP BYPASS ON SKIP TIP RESISTANCE CHECK
IF SIG(-1240) THEN; IF PULLED TIP BYPASS ON
; TIP RESISTANCE CHECK POSITION GUN 3 (SCHEDULE 254)
NOP SPEED6 ACCU0 TIMER0 TOOL1 WORK0 CLAMP1 (ON,254,3,1) OX= WX=
CL1=0.000,0.0,0.0,0.0,0.0,0.0,0.0 #[0,0,0,0,0,0,30] ;NOP
END; IF IN PULLED TIP
IF SIG(1242) THEN; IF TIP RESISTANCE CHECK FAULT
PULSE 2137,1 ; PULSE TIP DRESS REQUEST GRP3 TO PLC
END; IF TIP RESISTANCE CHECK FAULT
END ; CASE .sw_gunnum OF
;
SIGNAL -247; TIP RESISTANCE CHECK OFF

[92]
6.24 wtr_chk(.sw); SSW WATER CHECK
;*******************************************************
; COMPANY : Rivian
; PROGRAM : wtr_chk(.sw_), SSW WATER CHECK
; REVISED LAST: 10/16/2022 REV 02
; Produced by KAWASAKI ROBOTICS RIVIAN DEV
;*******************************************************
; THIS ROUTINE CHECKS THAT ADEQUATE FLOW
; AND PULLED TIP BYPASS ARE OK, IF THEY ARE
; NOT OK ROUTINE WILL TRY AN RESET WATER
; AND PULLED TIP ONCE, IF NOT CLEARED
; MANUAL INTERVENTION REQUIRED
; (.sw_) = WATER SAVER SSW 1 OR SSW 2
;
CASE .sw_ OF
VALUE 1:
1; WELD TIMER 1
UTIMER @wtr_flt = 0 ; RESET WATER FAULT TIMER
WAIT SIG(1721) AND SIG(-1240) OR UTIMER(@wtr_flt)>4; WATER SAVER FLOW OK/NOT PULLED
TIP
IF UTIMER(@wtr_flt)>4 THEN ; IF WATER TIMER FAULT EXCEEDED
SIGNAL (-722); VALVE CLOSED OFF
PULSE 721,1; WATER SAVER RESET
TWAIT 1; WATER SAVER RESET DELAY
PULSE 2126,3.5; WATER SAVER RESET
TWAIT 3; PULLED TIP RESET DELAY
WAIT SIG(1721) AND SIG(-1240); WATER SAVER FLOW OK/NOT PULLED TIP
IF SIG(-1721) OR SIG(1240) GOTO 1; ANTI WAIT OVERRIDE
END ; IF WATER FLOW OR PULLED TIP NOT OK
;
VALUE 2:
2; WELD TIMER 2
UTIMER @wtr_flt = 0 ; RESET WATER FAULT TIMER
WAIT SIG(1753) AND SIG(-1280) OR UTIMER(@wtr_flt)>4; WATER SAVER FLOW OK/NOT PULLED
TIP
IF UTIMER(@wtr_flt)>4 THEN ; IF WATER TIMER FAULT EXCEEDED
SIGNAL (-754); VALVE CLOSED OFF
PULSE 753,1; WATER SAVER RESET
TWAIT 1; WATER SAVER RESET DELAY
PULSE 2174,3.5; WATER SAVER RESET
TWAIT 3; PULLED TIP RESET DELAY
WAIT SIG(1753) AND SIG(-1280); WATER SAVER FLOW OK/NOT PULLED TIP
IF SIG(-1753) OR SIG(1280) GOTO 2; ANTI WAIT OVERRIDE
END ; IF WATER FLOW OR PULLED TIP NOT OK
END ; CASE OF

6.25 autostart5.pc(); TIP DRESS REMAINING


;************************************************
; COMPANY : RIVIAN AUTOMOTIVE
; PROGRAM : autostart5.pc, TIPDRESS REMAINING
; REVISED LAST: 09/10/2021

[93]
; Produced by : RIVIAN KAWASAKI ROBOTICS DEV
;************************************************
1;ROUNTINE RUNS AS BACKROUND TASK
;TO TRACK AND REPORT TO PLC AND THE
;ROBOT INTERFACE PANEL, WHAT THE REMAINING
;TIP DRESS COUNT IS
;
TWAIT 0.5; PROGRAM CONTROL SCAN DELAY
;
;************************************************
; W/C SSW 1 GROUP 1 TIP DRESS REMAINING COUNTER
;************************************************
IF SIG(1257) THEN ; IF STEPPER GRP 1 RESET
td11_remain = 50 ;RESET REMAINIG DRESS COUNT
WAIT td11_remain==50 ; WAIT FOR VALUE SET
BITS 943,6 = td11_remain ; TAKE VALUE COUNT
END ; IF STEPPER RESET
IF SIG(1684) THEN ; LOWER DRESS REMAINING COUNT
IF BITS(943,6)==0 GOTO 11 ; COUNT ALREADY AT ZERO
td11_remain = (td11_remain-1) ; MOVE COUNT 1 LESS
WAIT td11_remain<>BITS(943,6) ; DELAY FOR COUNT TO CHANGE
BITS 943,6 = td11_remain ; SETS VALUE FOR CURRENT COUNT
WAIT SIG(-1684) ; WAIT TIP DRESS LOW BEFORE SCAN CONTINUE
11; CONTINUE FOR ALREADY ZERO
END ; IF TIP DRESSED GROUP 1
;************************************************
;
;
;************************************************
; W/C SSW 1 GROUP 2 TIP DRESS REMAINING COUNTER
;************************************************
IF SIG(1264) THEN ; IF STEPPER GRP 2 RESET
td12_remain = 50 ;RESET REMAINIG DRESS COUNT
WAIT td12_remain==50 ; WAIT FOR VALUE SET
BITS 949,6 = td12_remain ; TAKE VALUE COUNT
END ; IF STEPPER RESET
IF SIG(1685) THEN ; LOWER DRESS REMAINING COUNT
IF BITS(949,6)==0 GOTO 12 ; COUNT ALREADY AT ZERO
td12_remain = (td12_remain-1) ; MOVE COUNT 1 LESS
WAIT td12_remain<>BITS(949,6) ; DELAY FOR COUNT TO CHANGE
BITS 949,6 = td12_remain ; SETS VALUE FOR CURRENT COUNT
WAIT SIG(-1685) ; WAIT TIP DRESS LOW BEFORE SCAN CONTINUE
12; CONTINUE FOR ALREADY ZERO
END ; IF TIP DRESSED GROUP 2
;************************************************
;
;
;************************************************
; W/C SSW 1 GROUP 3 TIP DRESS REMAINING COUNTER
;************************************************
IF SIG(1706) THEN ; IF STEPPER GRP 3 RESET
td13_remain = 50 ;RESET REMAINIG DRESS COUNT
WAIT td13_remain==50 ; WAIT FOR VALUE SET
BITS 955,6 = td13_remain ; TAKE VALUE COUNT

[94]
END ; IF STEPPER RESET
IF SIG(1686) THEN ; LOWER DRESS REMAINING COUNT
IF BITS(955,6)==0 GOTO 13 ; COUNT ALREADY AT ZERO
td13_remain = (td13_remain-1) ; MOVE COUNT 1 LESS
WAIT td13_remain<>BITS(955,6) ; DELAY FOR COUNT TO CHANGE
BITS 955,6 = td13_remain ; SETS VALUE FOR CURRENT COUNT
WAIT SIG(-1686) ; WAIT TIP DRESS LOW BEFORE SCAN CONTINUE
13; CONTINUE FOR ALREADY ZERO
END ; IF TIP DRESSED GROUP 3
;************************************************
;
; CHECK FOR app_set SSW2 ENABLED
IF SIG(-2451) GOTO 1; Weld Timer 2
;
;************************************************
; W/C SSW 2 GROUP 1 TIP DRESS REMAINING COUNTER
;************************************************
IF SIG(1297) THEN ; IF STEPPER GRP 1 RESET
td21_remain = 50 ;RESET REMAINIG DRESS COUNT
WAIT td21_remain==50 ; WAIT FOR VALUE SET
BITS 773,6 = td21_remain ; TAKE VALUE COUNT
END ; IF STEPPER RESET
IF SIG(1687) THEN ; LOWER DRESS REMAINING COUNT
IF BITS(773,6)==0 GOTO 21 ; COUNT ALREADY AT ZERO
td21_remain = (td21_remain-1) ; MOVE COUNT 1 LESS
WAIT td21_remain<>BITS(773,6) ; DELAY FOR COUNT TO CHANGE
BITS 773,6 = td21_remain ; SETS VALUE FOR CURRENT COUNT
WAIT SIG(-1687) ; WAIT TIP DRESS LOW BEFORE SCAN CONTINUE
21; CONTINUE FOR ALREADY ZERO
END ; IF TIP DRESSED GROUP 1
;************************************************
;
;
;************************************************
; W/C SSW 2 GROUP 2 TIP DRESS REMAINING COUNTER
;************************************************
IF SIG(1304) THEN ; IF STEPPER GRP 2 RESET
td22_remain = 50 ;RESET REMAINIG DRESS COUNT
WAIT td22_remain==50 ; WAIT FOR VALUE SET
BITS 779,6 = td22_remain ; TAKE VALUE COUNT
END ; IF STEPPER RESET
IF SIG(1688) THEN ; LOWER DRESS REMAINING COUNT
IF BITS(779,6)==0 GOTO 22 ; COUNT ALREADY AT ZERO
td22_remain = (td22_remain-1) ; MOVE COUNT 1 LESS
WAIT td22_remain<>BITS(779,6) ; DELAY FOR COUNT TO CHANGE
BITS 779,6 = td22_remain ; SETS VALUE FOR CURRENT COUNT
WAIT SIG(-1688) ; WAIT TIP DRESS LOW BEFORE SCAN CONTINUE
22; CONTINUE FOR ALREADY ZERO
END ; IF TIP DRESSED GROUP 2
GOTO 1 ; START OF ROUTINE

Interface Panel
[95]
The Servo Spot Weld Interface Panel screens are shown below, followed by explanations of each button.

[96]
[97]
[98]
[99]
Robot Settings
8.1 Appset Routine – Application Setting Bit
The .appset() routine is used to set application enable which drives multiple different parts of the K
Logic. Appset run’s the very first cycle anytime autostart.pc is started. If the application setting is not turned
to a positive value multiple features and functions will not work. Depending on the robot applications there
may be multiple signals that need to have the negative state remove. Application programming guides call
out what should be set. For SSW 1 example: a single carried servo spot weld should match the screen shot
below, by only removing the negative state from the weld timer and water saver application signals.

8.2 Init Routine – Housekeeping I/O


The .init() routine runs every cycle once back in pg0 – Mainline. This routine resets all necessary
bits to be ready for the next cycle. Two sections could need to modification. The first section being under
the servo spot weld application. If the spot weld gun is a pedestal application you will need to remove the
“negative” state from signal 2142 or 2190, depending how many pedestal guns are used. The Second being
under the tool changer application. Which ever tool(s) are servo spot welders using tool change function

[100]
need to have the “negative” state removed. If a tool is anything other than a servo spot welder the “negative”
state should be left alone. See examples below.

Servo Spot Weld Application Example

Tool Changer Application Example

8.3 WTC I/O Communication Settings


Aux Setting 0608 – 9 – 4. I/O Communication setting

[101]
8.4 Weld Saver I/O Communication Settings
Aux Setting 0608 – 9 – 4. I/O Communication setting

[102]
8.5 Weld Saver Network Settings
On initial setup of the weld saver you will need to connect a laptop direct to the weld saver equipment and
enter the desired IP address. Shown below are the default IP settings, along with the html to access a

[103]
new factory default weld saver

8.6 Weld Saver User Interface

K Logic
[104]
The remainder of this document lists the Kawasaki K Logic that has been configured for the Servo Spot
Weld 1 application. This is only the SSW1 K Logic, common and other applications can be found in the
appropriate programming guides.

[105]
[106]
[107]
[108]
[109]
[110]
[111]
[112]
[113]
[114]
[115]
[116]
[117]
[118]
[119]
[120]
[121]
[122]
[123]
[124]
[125]
[126]
[127]
[128]
[129]
[130]
[131]
[132]
[133]
[134]
[135]
[136]

You might also like