You are on page 1of 203

Programmers

Manual
7002900-5060R
For GMT800

ABB Flexible Automation

The information in this document is subject to change without notice and should not be constructed
as a commitment by ABB Flexible Automation Inc. ABB Flexible Automation Inc. assumes no
responsibility for any errors that may appear in the document.
In no event shall ABB Flexible Automation Inc. be liable for incidental or consequential damages
arising from use of this document or the software and hardware described in this document.
This document and parts thereof must not be reproduced or copied without ABB Flexible
Automation Inc.s written permission, and contents thereof must not be imparted to a third party
nor be used for any unauthorized purpose. Contravention will be prosecuted.

Copyright 1996 ABB Flexible Automation Inc.


All rights reserved
Issue : 1.5

ABB Flexible Automation Inc.


Product Division
1250 Brown Road
Auburn Hills, MI 48326
USA

GMT800
Contents

1. Introduction
1.1
1.2
1.3
1.4

Other S4C and S4pc Manuals


How to Read this Manual
Typographic Conventions
Syntax Rules

2. The Basic Software


2.1
2.2
2.3
2.4
2.5
2.6

Motion Requests
Cycle Initiate
Path Routines
Style and option-specific path routines
Common Positions
Error Handling

3. Routines
3.1
3.2
3.3
3.4
3.5
3.6

General Routines
Process Routines
Common Routines
Style Routines
Typical Process Cycle Sequences
How to change the Process Cycle Sequence

4. Predefined Positions
4.1
4.2

General Positions
Process Positions

5. Instructions
AdvanceGun
ClearOfMachine
ClearOfMachineJ
ClearOfMachineL
ClearOfZone
ClearOfZoneJ
ClearOfZoneL
CloseRetract
DoAppOption

Reposition the gun to advanced position


Machine clear status
Machine clear status
Machine clear status
Clear of interference zone status
Clear of interference zone status
Clear of interference zone status
Closing the gun retract stroke
AppOption routine request

Version 1.3

Page 1(4)

Copyright (c) 1996 - ABB Flexible Automation Inc.

Contents

GMT800
DoAppStyle
DoDropOffStyle
DoFFRStyle
DoPickUpStyle
DressTip
DropOffTool
EnteringMachine
EnterZone
ExchangeTool
GasFlowOff
GasFlowOn
GlueL
GripPart
HingeWeld
MoveJ
MoveL
OpenRetract
PickUpTool
PrepareToGrip
ReleasePart
RepositionTool
ReturnGun
Spot
Stud
VerifyRelease
WaitForMachClr
WorkComplete

AppStyle routine request


DropOffStyle routine request
FFRStyle routine request
PickUpStyle routine request
Manual tip dressing for spot welding
Drop off a tool held by IRB
Machine not clear status
Interference zone entry request
Exchanging of tooling held by IRB
Turn shielding gas flow off
Turn shielding gas flow on
Gluing with linear motion
Grip part with IRB gripper
Plunge welding of hinges
Moves the robot by joint movement
Moves the robot linearly
Open the gun retract stroke
Pick-up tool from tool changer
Prepare to grip a part with IRB
Release part held by IRB gripper
Reposition tool request
Reposition the gun to return position
Spot welding with motion
Stud welding with motion
Verify release of part
Machine clearance request
Work clear status

6. Program Examples
6.1
6.2
6.3
6.4
6.5
6.6
6.7
6.8
6.9

Carried Spot welder, no style specific path


Carried Spot welder, styles and options
Carried Spot welder, styles with common path
Pure Material handling with no style specific path
Material handling wth one pedestal spot welder
Material handling with styles and options
Material handling with two applications
Material handling with multiple pick-up positions
Material handling with style based pick up positions

Page 2(4)

Version 1.3

Copyright (c) 1996 - ABB Flexible Automation Inc.

GMT800
Contents
7. Programming Features
8. Enable / Disable Features

Appendix
A
B
C
D

Programmer Modules
Predefined Path Routines
Glossary
Readers Comments

Version 1.3

Page 3(4)

Copyright (c) 1996 - ABB Flexible Automation Inc.

Contents

GMT800

Page 4(4)

Version 1.3

Copyright (c) 1996 - ABB Flexible Automation Inc.

GMT800

1.

Introduction

Introduction
This manual describes the S4c programming language, predefined routines and data
provided for the GMT800 program.

1.1

Other S4c and S4pc Manuals


The Basic Operation Manual gives an introduction to the operation of a standard
robot. Please note that all GMT800 robots are provided with customized interfaces
and error handling.
The Users Guide provides step by step instructions on how to perform various tasks,
such as how to move the robot manually, how to program, or how to start a program
when running production. It is essential that you read Chapter 3: Safety.
The Product Manual describes how to install, maintain and trouble shoot the IRB
(Robot). This manual contains the Product Specification, which provides an
overview of the characteristics and performance of the IRB.
The RAPID Reference Manual describes the standard programming language,
including detailed descriptions of all data types, instructions and functions provided
in a standard robot. For the GMT800 program, a customized instruction set and data
types are provided. The GMT800 Programmers Manual describes the complete
language to be used for the GMT800 program; there is normally no need to consult
the RAPID Reference Manual.
The S4pc Operations Manual describes the installation and setup of the S4pc and
how to use the TopHat.

Version 1.2

Page 1(4)

Copyright (c) 1996 - ABB Flexible Automation Inc.

Introduction

1.2

GMT800

How to Read this Manual


Chapter 2 : The Basic Software gives an overview of the GMT800 custom
software layer. It is not necessary to read this chapter to be able to program the
IRB.
Chapter 3: Path Routines describes the predefined routines available to the
application programmer.
Chapter 4 : Predefined Positions describes the predefined IRB positions such
as Home, Align and Repair.
Chapter 5: Instructions is a reference section describing all instructions and
data types. The instructions are grouped according to groupings made in the
instruction pick-lists. Data types are described in connection to the instruction
they are used by.
Chapter 6: Program Examples provide step by step examples on how programs
should be designed for different applications. Note that there is very limited
information on how to create, edit or test a program in this manual. This is
described in the Users Guide.
Chapter 7 : Programming features describe various features that may be used
during the programming phase.
Chapter 8 : Enabling / Disabling features describe how to permanently enable
and disable features like gun position monitoring.
Appendix A: Programmer Modules provides an overview of modules that can
be used for a spot welding and a material handling application.
Appendix B: Predefined Routines includes a print-out of all modules with predefined routines available to the application programmer. Note that the format
is not the same as that viewed on the teach pendant.
Appendix C: Glossery is a list of common term used.
A form to provide Readers comments is provided at the end of the document.

Page 2(4)

Version 1.2

Copyright (c) 1996 - ABB Flexible Automation Inc.

GMT800

1.3

Introduction

Typographic Conventions
The commands located under any of the five menu keys, at the top of the teach
pendant display, are written as Menu : Command. For example, to activate the
Print command in the file Menu, you choose File : Print.
The names on the function keys and in the entry fields are specified in bold italic
type face e.g. , Modpos. This is the same convention used in other S4 manuals. The
following conventions are unique for this manual:
Words belonging to the programming language, such as instruction names and
predefined positions, are written in italics, e.g., Home.
Routines are indicated by adding two brackets after the routine name, and are written
in italic type, e.g. Routine1(). When there are multiple routines with similar names a
x is used to indicate different names, i.e. Appx() stand for App1() and App2().
Examples of programs are always described as they are displayed on the TPU (Teach
Pendant Unit). Example of differences compared to a print-out are that certain
control words are masked on the teach pendant, such as words indicating the start
and stop of a routine or module. Data and routine declarations and instructions are
also not displayed on the TPU.

1.4

Syntax rules
Instructions are described using simplified syntax:

Example String [\ Gun] [\Weld] I [\Noweld]


Instruction name

Compulsory Optional
argument
argument

Mutually exclusive
arguments

Version 1.2

Page 3(4)

Copyright (c) 1996 - ABB Flexible Automation Inc.

Introduction

GMT800

Page 4(4)

Version 1.2

Copyright (c) 1996 - ABB Flexible Automation Inc.

GMT800

2.

Basic Software

The Basic Software


A software layer called the Basic Software ( or IPCS ) is provided to simplify
programming and troubleshooting, and to promote consistent behavior of all IRBs.
The correct IO mapping and configuration of the Basic Software is downloaded
using a configuration screen on the TopHat. See the TopHat Operation Manual for
the GMT800 program.
A set of instructions, data, and routines are provided to the application programmer.
The Basic Software simplifies the programming of the interaction between the IRB
and the PLC, process equipment, Tophat, and operator. All mode and error handling
is performed automatically, as needed, by the Basic Software.
To make a complete application program the application programmer only has to
define:
- common IRB positions, such as Home, Pounce and Repair
- paths between these positions
- the actual process path(s)
- an error recovery path (for pedestal applications)
If required, the programmer may also change the order in which the different steps or
tasks within a process, such as part pick-up and drop-off, and application, are
executed by the Basic Software.

2.1

Motion requests
The Basic Software keeps track of the current location of the IRB, and after positive
validation, responds to motion requests from the PLC or TopHat. Motion requests
include requests from the PLC or TopHat to go to Repair or Home, or requests from
the TopHat to go to TipDress (in spot welding applications) or Purge (in dispensing
applications).
When the IRB is at the ordered position (e.g. Repair) the Basic software can receive
and respond to a request to return to the Home position.
The routines used by the Basic Software to perform these motion requests are
described in Section General Routines and Process Routines in Chapter 3.
The path defined in each of these routines has to be defined by the programmer to
meet the requirements of each installation.

Version 1.5

Page 1(8)

Copyright (c) 1996 - ABB Flexible Automation Inc.

Basic Software

2.2

GMT800

Cycle initiate
The Basic Software coordinates the execution of the process cycle at the direction of
the PLC. When a Cycle Initiate request is received from the PLC, the Basic
Software indicates an in-cycle status to the PLC, retrieves and validates all of the
style and option information from the PLC, and then moves to Pounce, using the
HomeToPounce() routine.
The application programmer needs to define the path for the HomeToPounce()
routine.

2.3

Path routines
When the Basic Software receives a Proceed from Pounce request from the PLC, it
verifies that the IRB is in the Pounce position and then calls the correct path
routines, based on the content of the ProcessPath array. ProcessPath determines the
basic order in which steps within the process are executed. Its default content and
how to change it are described in detail in sections 3.5 and 3.6.
If the IRB is carrying the process equipment, one application is typically executed.
This is designated by the entry App1 in the ProcessPath, and requires the routine
App1() to be programmed. If the IRB is a material handler to pedestal-mounted
process equipment, a part pickup might typically be executed, followed by
application itself, followed by the dropoff of the part. This sequence is designated in
the ProcessPath with PickUp1, App1, and DropOff1 entries, and requires the
PickUp1(), App1(), and DropOff1() routines to be programmed.
If a second application is used, App2 is entered into the ProcessPath, and the App2()
routine programmed. A routine defining the path between the first and second
applications, App1ToApp2(), must also be programmed when a second application is
used, and the entry App1ToApp2 provided in the ProcessPath at the desired place in
the sequence.

Page 2(8)

Version 1.5

Copyright (c) 1996 - ABB Flexible Automation Inc.

GMT800

2.4

Basic Software

Style and option-specific path routines


A common process path, used for all styles, may be defined. It is also possible to
define a unique path for each style, and still have a common path used by more than
one style. Each unique style may be programmed in its own routine that is called by
the Basic Software. The programmer specifies when to call the specific style from
the common path routine App1() or App2() -- using the DoAppStyle instruction.
Style-specific paths may also be programmed for part pickup and dropoff sequences,
and fault recovery paths.
Options may be programmed in a similar way, using a set of option routines provided
to define unique option-based process paths, and DoAppOption instructions to
specify when they should be used.
All of these style and option-specific routines are optional; they must be used as
needed by the application programmer to meet the needs of the specific installation.

2.5

Common positions
Common positions are used by the Basic Software to validate requests made of the
Basic Software by the PLC and the PC.
Examples of common positions that must be defined by the programmer are Home
and Repair.
The predefined positions are further described in Chapter 4 : Predefined Positions.

2.6

Error handling
Process faults are automatically detected by the Basic Software. On detection of a
major fault, the following actions are typically taken:

the process is halted

a fault condition is indicated to the PLC

a fault condition and fault information are provided to the S4pc TopHat

a fault condition is logged in the error log on the TPU

After this, a dialog is displayed, and the operator is required to select the propper
action to take to recover from the fault. The selected action is then automatically
executed.

Version 1.5

Page 3(8)

Copyright (c) 1996 - ABB Flexible Automation Inc.

Basic Software

GMT800

If a new start request is provided from the PLC, before the operator have made the
selection, a default response is provided in most cases, and the program execution is
resumed. The typical default response can be best summarized as follows:
1. Major fault caused by feedback signal Recheck
2. Major fault caused by Spot weld process Retry
3. Major fault caused by stud, dispense, or hinge process fault Repost major
fault (human intervention required)

Figure 2.1 Major Fault Dialog. This dialog is displayed


when a spot weld gun fails to reposition

DF+C disables the gun position fault monitoring, clears the fault, and continues with
the cycle. The fault monitoring is typically reenabled at next cycle.
Rechk rechecks the condition causing the fault. If the fault condition is still present,
the fault is issued once again. If the condition has been resolved, the fault is cleared
and the robot continues its cycle.
Abort terminates the process cycle. It is the responsibility of the operator to jog the
IRB out of the job. The program pointer is reset to the Main routine.
FFR (Fast Fault Recovery) performs the necessary mode changes to allow the
execution of the remainder of the process path without performing the application
process. On completion of the path, a second dialog is displayed requesting the
operator to select a recovery option:

Page 4(8)

Version 1.5

Copyright (c) 1996 - ABB Flexible Automation Inc.

GMT800

Basic Software

Figure 2.2 FFR Recovery Dialog. After FFR is selected, the IRB
continues the application path to the last position in
the Appx() routine (or Repair position for carried
application) and a recovery dialog is displayed.

FFR is only provided for the applications during execution of the App1() and
App2() routines -- and is made for only one application at a time. No FFR is provided
for material handling pickup and dropoff sequences, or general path execution, such
as HomeToRepair().
All of this error handling is built into the Basic Software, and does not have to be
programmed by the application programmer, only the path routines used need to be
taught.

2.7

Pre and Post process routines


Pre and post process routines contain operations which are automatically performed
immediately before (pre-process) and immediately after (post-process) the execution
of the process path. They are internal defined routines and require no user
intervention. Listed below are the detailed operations per application:
Material handling
Pre process N/A
Post process N/A
Tool change
Pre process N/A
Post process N/A

Version 1.5

Page 5(8)

Copyright (c) 1996 - ABB Flexible Automation Inc.

Basic Software

GMT800

Spot welding
Pre-process
Carried:
Pedestal:
Post-process
Carried:
Pedestal:
Stud welding
Pre-process
Carried:
Initialize FFR and DF+C related memories
Update active head indices
Update Minor Fault statuses
Verify that no Weld control faults exist / generate major fault if
appropriate
Pedestal:
Initialize FFR and DF+C related memories
Update active head indexes
Update Minor Fault statuses
Verify that no Weld control faults exist / generate major fault if
appropriate
Start head retract monitoring on active head(s)
Post-process
Carried:
N/A
Pedestal:
Stop head retract monitoring on active head(s)
Clear DF+C memories and minor faults for: Turntable motor
overload, advance and retract copper backups.

Page 6(8)

Version 1.5

Copyright (c) 1996 - ABB Flexible Automation Inc.

GMT800

Basic Software

Hinge welding
Pre-process
Carried:
Arm/disarm weld control mode
Initialize FFR related memories
Post-process
Carried:
Initiate anti spatter sequence
Dispensing
Pre-process
Carried:
Pedestal:
Post-process
Carried:
Pedestal:

Version 1.5

Page 7(8)

Copyright (c) 1996 - ABB Flexible Automation Inc.

Basic Software

GMT800

Page 8(8)

Version 1.5

Copyright (c) 1996 - ABB Flexible Automation Inc.

GMT800

3.

Routines

Routines
Ready to use routines are provided to simplify application path programming. This
chapter describes these routines, and how to program them.

Routines Provided
Four types of routines are provided:
General Routines

General support paths between predefined general


positions such as Repair and Home.

Process Routines

Process specific support paths between Home and


predefined process positions as Purge and TipDress.

Common Routines

Common paths used for all styles.

Style Routines

Style specific paths.

Appendix A : Programmer Modules includes a figure describing routines and the


modules they are stored in for spot welding and material handling applications.
Appendix B : Predefined Routines provides a listing of all the modules provided.
To list the modules on the TPU (Teach Pendant Unit) use the View : Module
command in the Program Window. To open a routine select the routine and press
ENTER. All user routines are stored in modules that start with the letter P
(Programmer) and end in the letters PTH (PaTH).

How to Program the Routines


All routines are invoked automatically by the Basic software. They are not to be
called by the application program by direct calls made by the programmer.
General and Process routines are called by the Basic software when the PLC or the
TopHat makes a request.
Common routines are called by the Basic software after the PLC has given a cycle
initiate, based on the content of the ProcessPath (described later). A default
sequence is provided, but may be modified, if desired.
Using the provided Doxxx (i.e. DoAppStyle) instructions the programmer can define
when Style routines are to be called. The Basic Software will call the style routine if
the requested style is the current style.
The pickup (PickUp1(), PickUp2()) and dropoff (DropOff1(), DropOff2()) routines are
used in material handling applications and may also contain requests for style-based
pickup and dropoff.
The Process Cycle is the path from Pounce, via the application(s) (if used), back to Home.
Version 1.5

Page 1(18)

Copyright (c) 1996 - ABB Flexible Automation Inc.

Routines

GMT800

The routines listed below are used to define the Process Cycle. There are two types of
routines: Common routines, which are called from the Basic Software, and Style routines,
which are optionally invoked from the Common routines. The Common routines are
listed in the order they are generally called. The style routines are listed under the
Common routines from which they may be invoked.
Common Routines

Style Routines

PickUp1()

PickUp1Style1()
PickUp1Style2()
PickUp1Style3()

PickUp2()

PickUp2Style1()
PickUp2Style2()
PickUp2Style3()

App1()

App1Style1()
App1Style1Option1()
App1Style2()
App1Style2()Option1()
App1Style3()
App1Style3()Option1()

App2()

App2Style1()
App2Style1Option1()
App2Style2()
App2Style2()Option1()
App2Style3()
App2Style3()Option1()

DropOff 1()

DropOff1Style1()
DropOff1Style2()
DropOff1Style3()

DropOff2()

DropOff2Style1()
DropOff2Style2()
DropOff2Style3()

To view the routines loaded in the IRB select View : Routines in the programming
window. By selecting Routine : In System all routines in the system are listed.

Page 2(18)

Version 1.5

Copyright (c) 1996 - ABB Flexible Automation Inc.

GMT800

Routines

3.1 General Routines


General routines are used to move the robot between general purpose, pre-defined
positions, such as Home, Repair, and Pounce.

Routines Provided
The following pre-defined routines are provided in the PGENRPTH (Programmers
General PaTH) module:
HomeToRepair()

- Path from the Home position to the Repair position

RepairToHome()

- Path from the Repair position to the Home position

HomeToPounce()

- Path from the Home position to the Pounce position

PounceToHome()

- Path from the Pounce position to the Home position

How to Program the Routines


All General routines must be programmed.
Three predefined instructions are included in the routines: a MoveJ instruction for
the predefined start position, a Replace_Me warning instruction, and a MoveJ
instruction for the predefined end position. In order to run the program, the positions
in the MoveJ instructions must be redefined using the MODPOS function key. If
they are not modified, a run-time error will occur. When teaching these named
positions, the new value will become available to any instruction using that named
position. A default tool called ReplaceME is used in the MoveJ instructions. The
correct tool must be defined, including the load definition, and replaced into the
MoveJ instructions. See the Users Guide for tool definition techniques.
The Replace_Me instruction ensures that the routine is not executed without the
correct via positions defined. The instruction is to be replaced with the appropriate
MoveX instruction(s), or deleted if no via points are required.

MoveJ

Home,

v100,

fine,

ReplaceME

Replace_Me HomeToPounce
MoveJ

Pounce,

v100,

fine,

ReplaceME

Figure 3.1 Default HomeToPounce Instructions.

Version 1.5

Page 3(18)

Copyright (c) 1996 - ABB Flexible Automation Inc.

Routines

3.2

GMT800

Process Routines
Process routines are used to move the robot between process-specific, pre-defined
positions, such as Align, Purge, ToolChange, and TipDress.

Routines Provided
Hinge welding, PHINPTH
HomeToAlign()

- Path from Home to Align

AlignToHome()

- Path from Align to Home

Dispensing, PDISPTH
HomeToPurge()

- Path from Home to Purge

PurgeToHome()

- Path from Purge to Home

HomeToAlign()

- Path from Home to Align

AlignToHome()

- Path from Align to Home

Spot Welding, PSPOTPTH


HomeToTipDress()

- Path from Home to TipDress

TipDressToHome()

- Path from TipDress to Home

Stud Welding, PSTUDPTH


HomeToAlign()

- Path from Home to Align

AlignToHome()

- Path from Align to Home

Tool Changing, PTOOLPTH


HomeToTC1DropOff()

- Path from Home to ToolChange1 for DropOff

HomeToTC1PickUp()

- Path from Home to ToolChange1 for PickUp

HomeToTC2 DropOff()

- Path fromHome to ToolChange2 for DropOff

HomeToTC2PickUp()

- Path fromHome to ToolChange2 for PickUp

TC1DropOff ToHome()

- Path from ToolChange1 to Home for DropOff

TC1PickUpToHome()

- Path from ToolChange1 to Home for PickUp

TC2 DropOff ToHome()

- Path from ToolChange2 to Home for DropOff

TC2PickUpToHome()

- Path from ToolChange2 to Home for PickUp

TC1ToTC2()

- Path from ToolChange1 to ToolChange2

Page 4(18)

Version 1.5

Copyright (c) 1996 - ABB Flexible Automation Inc.

GMT800

Routines

TC2ToTC1()

- Path from ToolChange2 to Tool Change1

Carried Spot welding and Material handling, PSPMHPTH


HomeToTipDress()

- Path from Home to TipDress

TipDressToHome()

- Path from TipDress to Home

App1EndToRepair()

- Path from last position in App1() to Repair

RepairToApp1End()

- Path from Repair to last position in App1()

App2EndToRepair()

- Path from last position in App2() to Repair

RepairToApp2End()

- Path from Repair to last position in App2()

How to Program the Routines


Only the modules specific to the application(s) in use need to be programmed.
Depending on the application(s) selected when configuring the IRB from the
TopHat, the appropriate modules are loaded.
The Process routines are called by the Basic Software when the PLC or TopHat
makes a valid request. Fast Fault Recovery (FFR) is not provided for Process
routines.
Three predefined instructions are included in the routines: a MoveJ instruction for
the predefined start position, a Replace_Me warning instruction, and a MoveJ
instruction to the predefined end position. In order to run the program, the positions
in the MoveJ instructions must be re-taught using the MODPOS function key. If
they are not modified, a run-time error will occur. A default a tool called
ReplaceME is used. The correct tool must be defined, including the load definition.
See the Users Guide for methods available to define the tool. The six point method
is recommended.
The Replace_Me instruction ensures that the routine is not executed without correct
via positions defined. The instruction is to be replaced with the appropriate MoveX
instruction(s), or deleted if no via points are required.
MoveJ

Home,

v100,

z10,

ReplaceME

Replace_Me HomeToPurge
MoveJ

Purge,

v100,

z10,

ReplaceME

Figure 3.2 Default HomeToPurge Instructions. The program execution


will stop at the Replace_Me instruction.

Version 1.5

Page 5(18)

Copyright (c) 1996 - ABB Flexible Automation Inc.

Routines

3.3

GMT800

Common Routines
The Common routines collectively define the process cycle: the path from Pounce
and back to Home.

Routines Provided
If the IRB is configured for carried application, where the process equipment is held
by IRB, the following Common routine is provided in a module named PAPP1PTH
(Programmers App1 PaTH) :
App1()

- The common process path including move from Pounce to


Home.

If the IRB is configured for material handling, or using pedestal-mounted application


equipment, the following Common routines are provided in a module called
PAPP1PTH:
App1()

- The process path for the first application

PickUp1()
PickUp2()

- The pick-up path


- An additional, optional pick-up path

DropOff1()
DropOff2()

- The drop-off path


- An additional, optional drop-off path

App1FFR()

- The return path from the last position in App1() to the


first position in App1(). Used by Basic Software when doing
Resume and Redo during FFR recovery.

If a second application is used, the following application routines are provided in a


module called PAPP2PTH (Programmers App1 PaTH) :
App2()

- The common process path for the second application

App2FFR()

- The return path from the last position in App2() to the


first position in App2(). Used by Basic Software when doing
Resume and Redo during FFR recovery.

App1ToApp2() - The path from the last position in App1() to the first position in
App2().
In addition to common motion and process instructions, all common routines may
also include requests for style-specific paths, using the Doxxx instructions.

Page 6(18)

Version 1.5

Copyright (c) 1996 - ABB Flexible Automation Inc.

GMT800

Routines

How to Program the Routines


The routines that need to be programmed depend on the IRB application. When
configuring the IRB from the TopHat, the appropriate modules are loaded.
The Process routines are called by the Basic Software, based on the content of
ProcessPath. The order can be changed; see section How to Change the Process
Cycle Sequence in section 3.6.
FFR (Fast Fault Recovery) is only provided during the execution of App1() and
App2() routines and any option or style routines they invoke in turn.
Note: the last position in the last executed routine in the process cycle must be the
Home position.
Appx()
The App1() routine describes the process to be performed, such as spot welding. The
App2() routine must be programmed if a second application is used. No more than
two applications can be handled by one IRB.
If no process is used, as with a pure material handler IRB, or no common process
path is used, no Appx() routine needs to be programmed.
Pick-up or drop-off routines can not be requested (i.e. DoPickUp()) from the Appx()
routine, nor should they be called directly. Use ProcessPath to indicate when a
pickup or dropoff sequence should be performed in the Process Cycle.
By default, the Appx() routines include requests to execute style specific routines:

DoAppStyle 1
DoAppStyle 2
DoAppStyle 3
Figure 3.3 Default App1() or App2() Instructions. Three different
AppxStyle routines are called from the Appx() routine by
default. If additional style routines are to be called they have to
be programmed. Use Copy and Paste and change the style
number.

If different paths are used for each style, with no common paths, the Appx() routines
do not need to be modified. Each style may be programmed by adding desired
instructions in the appropriate Style routine. If any common path instructions are
needed, they are added to the Appx() routines.

Version 1.5

Page 7(18)

Copyright (c) 1996 - ABB Flexible Automation Inc.

Routines

GMT800

If more than three style routines are used, the corresponding DoAppStyle instructions
need to be programmed (the same apply to Style Routines, see section 3.4 Style
routines)
MoveL p10, v250, Z30, toolgun1
Spot a2101, v300 \G1:=S1, toolgun1
MoveL p20, v250, Z30, toolgun1
Spot a2102, v300 \G1:=S1, toolgun1
MoveL p30, v250, Z30, toolgun1
Figure 3.4 If the process is the same for all styles, the application
programming can be done in the AppX routine. The DoStyle()
instructions are deleted and the actual path instructions are
added.

MoveL p10, v250, Z30, toolgun1


Spot a2101, v300 \G1:=S1, toolgun1
MoveL p20, v250, Z30, toolgun1
Spot a2102, v300 \G1:=S1, toolgun1
DoAppStyle 3
MoveL p30, v250, Z30, toolgun1
Figure 3.5 Requests for AppxStyle routines can be added anywhere in
the App1() or App2() routines.

Calling a Style routine


A request to call a Style routine has to be programmed. A set of DoXXXX
instructions is provided for the programmer to use.
For example, if the DoAppstyle X instruction is executed in the App1() and App2()
routines, the Basic software will call App1Stylex () and App2Stylex(), if X is the
current style specified by the PLC.
Option-specific paths can be programmed in a similar way. Option routines can be
invoked from the Style routines whenever there is a need to perform an option
specific task.
It is up to the programmer to insert a DoAppOption instruction in the appropriate
places. The Option routines will be called by the DoAppOption instruction, if the
corresponding option number has been requested by the PLC.

Page 8(18)

Version 1.5

Copyright (c) 1996 - ABB Flexible Automation Inc.

GMT800

Routines

The concept is the same for pickup and dropoff operations, If the DoPickUpStyle X
instruction is added to the PickUp1() or PickUp2() routines, the PickUp1StyleX() and
PickUp2StyleX() routines will be called if X is the current style.
The calling hierarchy is:
App1()
|
+- DoAppStyle 1
|
|
|
+- App1Style1()
|
|
|
+- DoAppOption 1
|
|
|
|
|
+-App1Style1Opt1()
|
|
|
+- DoAppOption 2
|
|
|
|
|
+- App1Style1Opt2()
|
|
|
+- DoAppOption 3
|
|
|
+- App1Style1Opt3()
...

App2()
|
+- DoAppStyle 1
|
|
|
+- App2Style1()
|
|
|
+- DoAppOption 1
|
|
|
|
|
+- App2Style1Opt1()
|
|
|
+- DoAppOption 2
|
|
|
|
|
+- App2Style1Opt2()
|
|
|
+- DoAppOption 3
|
|
|
+- App2Style1Opt3()
...

Figure 3.6 Calling hierarchy for Application style-based routines


FFR handling
For carried process equipment, FFR is performed by completing the application (i.e.
App1() or App2()) in NoProcess Mode, which brings the IRB back to the Home
position. The IRB then moves from Home to Repair, using the HomeToRepair()
routine. A Fault recovery dialogue, with recovery options, is displayed (see figure
2.2). Repair is to be made. When one of the fault recovery options is selected by the
operator, the IRB will move from Repair to Home, using the RepairToHome()
routine. The process path is executed to the requested restart position and the
process is resumed.
FFR for carried Stud welding normally means that the IRB goes to home and
automatically drops off the faulted head using the appropriate HomeToTCx()
routine. If the backup headset is available the IRB automatically, using the
appropriate Tool change routines, picks up a new head set and returns home.
If AutoFFR is selected for carried Stud welding, the exchange of the backup headset
is done automatically, with no need for intervention from the operator. See Chapter 8
Disable / Enable Features for description on how to enable AutoFFR.
For pedestal process equipment, FFR is done by completing the current application
in No process mode, and a Fault Recovery dialogue is displayed. After one of the
fault recovery options is selected the IRB follows the path defined in the AppxFFR()
routine back to the starting position of the application, then continues along the path
Version 1.5

Page 9(18)

Copyright (c) 1996 - ABB Flexible Automation Inc.

Routines

GMT800

defined in the Appx() routine to the requested restart position. It then resumes the
process.
For pedestal Stud welding the turn table is automatically rotated and the robot
automatically picks up the process without operator intervention. If the backup
headset is also in need of repair, a Major Fault dialogue will be displayed instead.
A detailed description is contained below for each application.
Material handling
FFR actions N/A
FFR recovery descriptions N/A
Tool change
FFR actions N/A
FFR recovery descriptions N/A
Spot welding
Stud welding
FFR actions:
Standard FFR (default) Store the current process position, place weld
controller in NoWeld mode, reset the weld control fault, ensure the head
is retracted, start head retract monitoring, proceed through the process
path, drop off faulted head and stop head retract monitoring, wait until an
unfaulted head is available, pickup unfaulted head and start head retract
monitoring, return to repair position, post FFR recovery selections.
AutoFFR Check to ensure that an unfaulted head is available, if not,
generate a major fault with user selections. If an unfaulted head is
available, store the current process position, place weld controller in
NoWeld mode, reset the weld control fault, ensure the head is retracted,
start head retract monitoring, proceed through the process path, drop off
faulted head and stop head retract monitoring, pickup unfaulted head and
start head retract monitoring, and automatically select ResNext (see
description below).
FFR recovery descriptions: Special note: if AutoFFR is enabled, the Resnext
recovery option will automatically be selected unless a fault occurred at the last
process position, in which case the would be presented with FFR recovery
options.
ResLast - Execute process path in no-weld mode until the faulted process
position is reached, change to weld mode, and continue the process path
as normal.
ResNext Generate an out of tolerance for the faulted position, execute
the process path in no-weld mode until the next process position is
reached (immediately following the faulted process position), change to
Page 10(18)

Version 1.5

Copyright (c) 1996 - ABB Flexible Automation Inc.

GMT800

Routines
weld mode, and continue the process path as normal. NOTE: this
recovery option will not be presented if a fault occurred at the last process
position.
Abandon The process is considered complete, work complete is sent,
current job is released, IRB waits for the next cycle initiate.

Hinge welding
FFR actions:
Store the current process position, update the weld complete memory for
the faulted process position, place weld controller in NoWeld mode, reset
the weld control fault, proceed through the process path, when the repair
position is reached, post FFR recovery selections.
FFR recovery descriptions:
ResLast - Execute process path in no-weld mode until the faulted process
position is reached, change to weld mode, begin weld process for all
torches which did not generate a weld complete, and continue the process
path as normal.
ResNext Execute process path in no-weld mode until the next process
position is reached (immediately following the faulted process position),
change to weld mode, and continue the process path as normal. NOTE:
this recovery option will not be presented if a fault occurred at the last
process position.
Redo Clear the weld complete memory and repeat the entire cycle
starting with first process position.
Abandon The process is considered complete, work complete is sent,
current job is released, IRB waits for the next cycle initiate.
ExchTool Tool is exchanged and the FFR recovery options are reposted.
Dispensing

PickUp()
The PickUp1() routine includes the path and instructions to pick-up parts. They can
also include other pre-process tasks not included in the application sequence.
If the IRB is not configured for material handling, no Pick-up routines are available.
When additional pick-up routines are required, the PickUp2() routine can be used,
and a PickUp3() routine can also be added. Note that the default cycle sequence
Version 1.5

Page 11(18)

Copyright (c) 1996 - ABB Flexible Automation Inc.

Routines

GMT800

defined in ProcessPath needs to be changed in these cases. See section 3.6 How to
change the Process Cycle Sequence .
By default, the PickUp() routines include the instructions to execute the stylespecific pickup routines.

DoPickUpStyle 1
DoPickUpStyle 2
DoPickUpStyle 3
Figure 3.7 Default PickUp Routine Instructions. If additional style
routines are to be called use Copy and Paste to add one more
instruction and change the style number. Note that the
corresponding Style routine need to be created or down
loaded.

If different pick-up paths are used for each style, with no common paths used, the
PickUpx() routines do not need to be modified. Each style can be programmed by
adding instructions in the appropriate Style routine.
Any common path instructions should be added to the PickUp() routine.

Page 12(18)

Version 1.5

Copyright (c) 1996 - ABB Flexible Automation Inc.

GMT800

Routines

DropOff()
The DropOffx() routines include the path and instructions to drop-off parts. They
can also include other post-process tasks not included in the application sequence.
The concept of the DropOff routines is the same as for the PickUp routines. See the
description for the PickUp routines for further description.
The following hierarchy of drop-off and pick-up routines is supported:
DropOff1()
|
+- DoDropOffStyle 1
|
|
|
+- DropOff1Style1()
|
+- DoDropOffStyle 2
|
|
|
+- DropOff1Style2()
|
+- DoDropOffStyle 3
|
|
|
+- DropOff1Style3()
...

PickUp3()
|
+- DoPickUpStyle 1
|
|
|
+- PickUp3Style1()
|
+- DoPickUpStyle 2
|
|
|
+- PickUp3Style2()
|
+- DoPickUpStyle 3
|
|
|
+- PickUp3Style3()
...

Figure 3.8 DropOff and PickUp Calling Hierarchy.

3.4

Style routines
Style routines define a unique path for a specific style or option.
For any of the Common routines, except App1ToApp2(), it is possible to have unique
style and option routines.

Routines Provided
The routines provided in the PA1S1PTH (Programmer App1 Style 1 PaTH) module
are all specific for Application 1 and Style 1:
App1Style1()

- Style 1 specific path

App1Style1Opt1()

- Style 1 and option 1 specific path

For Application 1 and Style 2 the same type of routines are provided:
Version 1.5

Page 13(18)

Copyright (c) 1996 - ABB Flexible Automation Inc.

Routines

GMT800

App1Style2()

- Style 2 specific path

App1Style2Opt1()

- Style 2 and option 1 specific path

The same apply to Application 2 and Style 1:


App2Style1()

- Style 1 specific path

App2Style1Opt1()

- Style 1 option 1 specific path

Style routines for styles 1-3 are pre-loaded. Modules with styles 4-7 can be downloaded from the S4pc.
For pedestal and material handling applications the following additional modules are
provided:
PickUp1Style1()

- Style specific pick-up path for part 1 (i.e for PickUp1())

PickUp2Style1()

- Style specific pick-up path for part 2 (i.e. for PickUp2() )

DropOff1Style1()

- Style specific drop-off path for part 1 (i.e. for DropOff1())

DropOff2Style2()

- Style specific drop-off path for part 2 (i.e. for DropOff2() )

App1FFRStyle1()

- Style specific FFR path for Application 1

Page 14(18)

Version 1.5

Copyright (c) 1996 - ABB Flexible Automation Inc.

GMT800

Routines

How to Program the Routines


Only the Style routines that will be used (i.e. requested by the PLC) have to be
programmed. The program execution will stop, and an error message will be
displayed if a routine that is not programmed is called.
The Style routines are called by the Basic software when requested by a
corresponding DoXXX instruction, and if the style or option is validated by the PLC.
All Style routines have a Replace_Me instruction. For further information on the
Replace_Me instruction, see section General Routines earlier in this chapter.
If additional routines are required they have to be defined by the programmer. The
easiest method is to duplicate one of the provided routines. This can be done by
selecting View : Routines , high-lighting the routine to be copied, and pressing the
function key called Dup. The names used have to follow the naming convention
used. i.e. :
App2Style1Opt3() - Process path for option 3, style 1 used at application 2.
PickUp2Style1()

- Pick-up path for style 1 used by PickUp2() (i.e. to pick-up


part #2)

The following calling hierarchy is supported:


App1()
App1Style1()
App1Style1Opt1()
App1Style1Opt2()
...
App1Style2()
App1Style2Opt1()
App1Style2Opt2()
...
DropOff1()
DropOff1Style1()
DropOff1Style2()
DropOff1Style3()
...

App2()
App2Style1()
App2Style1Opt1()
App2Style1Opt2()
...
App2Style2()
App2Style2Opt1()
App2Style2Opt2()
...
PickUp3()
PickUp3Style1()
PickUp3Style2()
PickUp3Style3()
...

Figure 3.9 Calling hierarchy for DropOff and PickUp based style routines. Up to 7
styles are supported.

Version 1.5

Page 15(18)

Copyright (c) 1996 - ABB Flexible Automation Inc.

Routines

3.5

GMT800

Typical Process Cycle Sequence


The Process cycle is the series of steps required to perform the application, the valueadded paths, including App1() for carried and pedestal applications, PickUp() and
DropOff() for material handlers, and optional Style routines.
The Process cycle always starts at Pounce. The path must be taught so it is always
possible for the IRB to move from Pounce to the first position in the Process Cycle.
The Basic Software expects that the last position in the Process Cycle is Home. The
scope of all other routines is up to the programmer, but there must be a safe path
between each routine. The last position in a pedestal application will be used as the
service position for FFR, and should therefore be easily accessible.
The order in which the Common routines are called by the Basic Software depends
on how the ProcessPath is set up. Within the steps themselves, the programmer
defines when Style and Option-specific paths are executed. The following are
typical sequences used:
Carried application (process equipment held by IRB):

App1()

> move from Pounce to Home

Pure material handling

PickUp1()

> move from the Pounce position to the pick up location for part one
> pick up part one

DropOff1()

> move to part one drop-off position, drop-off part 1


> return to the Home position.

Material handler with one pedestal application

PickUp1()

> move from the Pounce position to the pick-up location for part one
> pick-up part one

App1()

> move the part through the first pedestal application

DropOff1()

> move to part one drop-off position, drop off part one
> return to the Home position.

Material handler with two pedestal application

PickUp1()

> move from the Pounce position to the pick-up location for part one
> pick-up part one

App1()

> move the part through the first pedestal application

App1ToApp2()

> move from end of application 1 to start of application 2

App2()

> move the part through the second pedestal application

DropOff1()

> move to part one drop-off position, drop off part one
> return to the Home position

Page 16(18)

Version 1.5

Copyright (c) 1996 - ABB Flexible Automation Inc.

GMT800

3.6

Routines

How to change the Process Cycle Sequence


The order the Process Cycle is executed (and in which the Common routines are
called by the Basic Software), can be modified. Additional PickUp() and DropOff()
routines can be added, or the order in which they are executed may be rearranged,
by changing the default sequence for the Process Cycle. The order and content of
these steps is defined in an array called ProcessPath.
The following elements can be used in ProcessPath to define the Process Cycle
sequence:
App1

PickUp1

DropOff1

App2

PickUp2

DropOff2

PickUp3

DropOff3

App1ToApp2

There can only be one instance of each step in the ProcessPath Cycle sequence.
In addition, the following elements can be used to define the Process Cycle
sequence:
NoOperation

- tells the Basic Software to do nothing in this step (optional)

EndOfCycle

- tells the Basic Software that this is the last step (mandatory)

The ProcessPath is found in the module PGENRDAT (Programmers (GENeRal


DATa) with the following default value (typical for a carried application):
VAR string ProcessPath{20} :=
["App1","EndOfCycle","","","","","","","","","","","", "","","","","","",""];

By adding a step into one of the step positions, or moving elements around, the order
of the Process Cycle sequence can be changed. The size of the array (the number of
elements in it) cannot be changed. The Basic Software will call the appropriate
routines based on the steps it sees in ProcessPath.
For material handling and one pedestal application, the ProcessPath would look like:
VAR string ProcessPath{20} := ["PickUp1","App1","DropOff1","EndOfCycle",
"","","","","", "","","","", "","","","","","",""];

Version 1.5

Page 17(18)

Copyright (c) 1996 - ABB Flexible Automation Inc.

Routines

GMT800

The ProcessPath for a typical pedestal application with two applications would look
like:
VAR string ProcessPath{20} := ["PickUp1","App1"," App1ToApp2","App2",
"DropOff1", "EndOfCycle","","","","","", "","", "","","","","","",""];

Page 18(18)

Version 1.5

Copyright (c) 1996 - ABB Flexible Automation Inc.

GMT800

4.

Positions

Predefined Positions
After configuring the IRB, a set of pre-defined positions will be available. These
positions have to be re-defined by the programmer. This can be done by jogging the
robot to the correct position, marking the instruction, and pressing the MODPOS
functions key in the Program Window.
Note that these positions are global and can be used by many routines. When the
position is modified in one routine, it does not need to be modified in the other
routines.

4.1

General Positions
General positions are defined in the Module named PGENRDAT (Programmer
GENeral DATa). These positions are used by the General Routines, and have to be
redefined for all IRB.
Note : General positions have to be defined with Wobj0 active ( this is the default
setting). The digital output PLC signals that are connected to these positions
( AtHome etc.) will be updated at Motors On, so if the robot has been moved
during Motors Off, the outputs will be updated first at Motors On.

Positions provided
Three General positions are provided:
Home

Repair

Pounce

How to use the positions


The Home position:
is only defined once, i.e. there is exactly one Home position for any IRB
must be the last position programmed in the Process Cycle, i.e. App1() for
carried application and typically DropOff1() for material handling.
is where the IRB has to be in order to respond to the Cycle initiation
request from the PLC

Version 1.3

Page 1(4)

Copyright (c) 1996 - ABB Flexible Automation Inc.

Positions

GMT800

The Repair position :


is only defined once, i.e. there is exactly one Repair position for any IRB
is used by HomeToRepair() and RepairToHome() routines
is used by FFR recovery for non material handling applications
The Pounce position :
may not be assumed to be clear of the job, transfer, or other fixturing
could be located at the Home position, or elsewhere
when the IRB leaves the Home position it passes Pounce before the first
Common routine is called.
is only defined once, i.e. there is exactly one Pounce position for any IRB

Page 2(4)

Version 1.3

Copyright (c) 1996 - ABB Flexible Automation Inc.

GMT800

4.2

Positions

Process Positions
Process positions are defined in modules named PxxxxPTH, where xxx is the
process name ( i.e. SPOT) . These positions are used by the Process Routines.

Positions provided
Five Process positions are provided :
Align

ToolChng1

Purge

ToolChng2

TipDress

How to use the positions


The Align position:
is where tool alignment can be checked and corrected.
is used by the HomeToAlign() and AlignToHome() routines.
is used by Plunge welding, MIG welding, Dispensing and Stud
applications.
The TipDress position:
is where the tip weld gun dressing is performed
is used by the HomeToTipDress() and TipDressToHome() routines.
The Purge position :
is where dispense nozzle purging is performed
is used by HomeToPurge() and PurgeToHome() routines
is used for automatic purging in dispensing applications
The ToolChng1 and ToolChng2 positions:
is where the tooling is changed
ToolChng1 is typically used by application 1
ToolChng2 is typically used by application 2

Version 1.3

Page 3(4)

Copyright (c) 1996 - ABB Flexible Automation Inc.

Positions

GMT800

Page 4(4)

Version 1.3

Copyright (c) 1996 - ABB Flexible Automation Inc.

GMT800

Instructions

5. Instructions
In this chapter the customized instruction set and related data is described.
Below the predefined most common instruction pick lists (IPL) are described. The
instructions are listed as they occur on the IPL of the TPU (Teach Pendant Unit).
A reference section is provided that describes all instructions in detail. In this
section the instructions are provided in alphabetic order.

Most common IPL


The following customized IPLs are provided:
# 1 IRB motion and Process instructions
# 2 PLC instructions
# 3 Material handling instructions
To select an IPL in the Program Instruction window use the command IPL2 : Most
common x, where x is the Pick-list you want to display.

Pick list 1 : IRB motion and Process instructions


The following instructions are provided in the Most Common Pick List # 1 (M.C.1).
MoveL

Moves the robot linearly

MoveJ

Moves the robot by joint movement

Depending on the application used the appropriate application instructions are


loaded. If the controller is defined for more than one application the instruction(s) for
the second application are added to IPL2 : Most common 1. This also applies to
instructions used for changing a tool. Material handling instructions can be found in
IPL2 : Most common 3.
Spot welding
Spot

Spot welding with motion

OpenRetract

Open the gun retract stroke

CloseRetract

Close the gun retract stroke

AdvanceGun

Reposition the gun to advanced position

ReturnGun

Reposition the gun to returned position

Version 1.3

Page 1(4)

Copyright (c) 1996 - ABB Flexible Automation Inc

Instructions

GMT800
Tool Changer
ExchangeTool

Exchange of tooling held by the IRB

PickUpTool

Pickup a tool from a tool changer

DropOffTool

Drop off a tool held by the IRB

Gluing
GlueL/On

Start of gluing on with linear motion

GlueL

Gluing with linear motion

GlueL/Off

Stop of gluing with linear motion

Stud welding
Stud

Stud welding with motion

Hinge Welding
HingeWeld

Plunge welding of hinges

GasFlowOn

Turn shielding gas flow on

GasFlowOff

Turn shielding gas flow off

Pick list 2 : PLC communication


The following instructions are provided in the Most Common Pick List # 2
(M.C.2). The list has two pages. To toggle between the pages, press key 9.
WorkComplete

Work clear status

RepositionTool

Reposition tool request

EnterZone

Interference zone entry request

ClearOfZone

Clear of interference zone status

EnteringMachine

Machine not clear status

ClearOfMache

Machine clear status

WaitForMachClr

Machine clearance request

DoAppStyle

AppStyle routine request

DoAppOption

AppOption routine request

DoDropOffStyle

DropOffStyle routine request

DoPickUpStyle

PickUpStyle routine request

DoFFRStyle

FFRStyle routine request

Page 2(4)

Version 1.3

Copyright (c) 1996 - ABB Flexible Automation Inc

GMT800

Instructions

Pick list 3 : Material handling


If the IRB is configured for Material handling or pedestal application(s) the
following instructions are provided in the Most Common Pick-list # 3 (M.C.3)
MoveL

Moves the robot linearly

MoveJ

Moves the robot by joint movement

PrepareToGrip

Prepare to grip a part with IRB

GripPart

Grip part with IRB gripper

ReleasePart

Release part held by IRB gripper

VerifyRelease

Verify release of part

Version 1.3

Page 3(4)

Copyright (c) 1996 - ABB Flexible Automation Inc

Instructions

GMT800

Alphabetic listing
AdvanceGun
ClearOfMachine
ClearOfMachineJ
ClearOfMachineL
ClearOfZone
ClearOfZoneJ
ClearOfZoneL
CloseRetract
DoAppOption
DoAppStyle
DoDropOffStyle
DoFFRStyle
DoPickUpStyle
DressTip
DropOffTool
EnteringMachine
EnterZone
ExchangeTool
GasFlowOff
GasFlowOn
GlueL
GripPart
HingeWeld
MoveJ
MoveL
OpenRetract
PickUpTool
PrepareToGrip
ReleasePart
RepositionTool
ReturnGun
Spot
Stud
VerifyRelease
WaitForMachClr

Reposition the gun to advanced position


Machine clear status
Machine clear status ( not on pick list )
Machine clear status ( not on pick list )
Clear of interference zone status
Clear of interference zone status ( not on pick list )
Clear of interference zone status ( not on pick list )
Close the gun retract stroke
AppOption routine request
AppStyle routine request
DropOffStyle routine request
FFRStyle routine request
PickUpStyle routine request
Manual tip dressing for spot welding
Drop off a tool held by IRB
Machine not clear status
Interference zone entry request
Exchange of tooling held by IRB
Turn shielding gas flow off
Turn shielding gas flow on
Gluing with linear motion
Grip part with IRB gripper
Plunge welding of hinges
Moves the robot by joint movement
Moves the robot linearly
Open the gun retract stroke
Pick-up tool from tool changer
Prepare to grip a part with IRB
Release part held by IRB gripper
Reposition tool request
Reposition the gun to returned position
Spot welding with motion
Stud welding with motion
Verify release of part
Machine clearance request

WorkComplete Work clear status

Page 4(4)

Version 1.3

Copyright (c) 1996 - ABB Flexible Automation Inc

GMT800

AdvanceGun

AdvanceGun

Reposition the Gun to Advanced Position

AdvanceGun is used with a reposition mechanism to order a spot welding gun to its
advanced position.

Example
AdvanceGun 2
AdvanceGun order the gun number 2 to the advanced position.

Arguments
AdvanceGun GunNumber

GunNumber
Identification of the gun to advance (i.e. Gun 1-4).

Data type : num

Program execution
The AdvanceGun instruction has the following internal sequence:
Order the gun to the advanced position

Timing diagram
Notes:
Time

Tophat tuning name

Range / units

Default time

T1

GunPivotTime

0-8388608 seconds

1.0 seconds

Version 1.2

Page 1(2)

Copyright (c) 1996 - ABB Flexible Automation Inc

AdvanceGun

GMT800

Return gun pivot


is reset
Advance gun pivot
is set
T1

Gun pivot returned


feedback
Gun pivot advanced
feedback
Next instruction
begins

Instruction by instruction execution


Forward
Normal program execution
Backward
No operation

Limitations
Only to be used for pedestal spot welding guns with pivot mechanism.

Related information
Described in :
Reposition the gun to returned position

Instructions - ReturnGun

Page 2(2)

Version 1.2

Copyright (c) 1996 - ABB Flexible Automation Inc

GMT800

ClearOfMachine

ClearOfMachine

Machine Clear Status

ClearOfMachine is used to report to the PLC that the IRB is clear of a machine.
See the ClearOfMachineL and ClearOfMachineJ instructions for a more accurate
setting of the output to the PLC.

Example
ClearOfMachine 5
ClearOfMachine 5 indicates to the PLC that the IRB is clear of Machine 5.

Arguments
ClearOfMachine MachineNo
Machine
The machine the IRB is clear of (i.e Machine 1-5).

Data type : num

Program execution
The ClearOfMachine instruction has the following internal sequence:
Clear of machine status is sent to the PLC.

Instruction by instruction execution


Forward
Normal program execution.
Backward
Not clear of machine status is sent to the PLC.

Page 1(2)

Version 1.3

Copyright (c) 1996 - ABB Flexible Automation Inc

ClearOfMachine

GMT800

Limitations
All machines are indicated to be clear (signal MachineClearX is set) whenever:
the program is started from main() AND the IRB is at Home
at the end of a cycle (when the robot has reached Home at the end of a
cycle)
Machine X is indicated to be clear (signal MachineClearX is set) whenever:
the ClearOfMachine instruction is placed in any programmer routine
Machine 5 is indicated to be clear (signal MachineClear5 is set) whenever:
the ReleasePart instruction is used with the optional \NotifyPLC switch
Machine X is indicated to be not clear (signal MachineClearX is dropped)
whenever:
the EnteringMachine instruction is placed in any programmer routine
Machine 5 is indicated to be not clear (signal MachineClear5 is dropped) whenever:
the GripPart instruction is used with the optional \NotifyPLC switch

Related information
Described in :
Work clear status

Instructions - WorkComplete

Reposition tool Request

Instructions - RepositionTool

Interference Zone Entry Request

Instructions - EnterZone

Clear of Interference Zone Status

Instructions - ClearOfZone

Clear of Interference Zone Status

Instructions - ClearOfZoneL

Machine Not Clear Status

Instructions - EnteringMachine

Machine Clear Status

Instructions - ClearOfMachine

Machine Clear Status

Instructions - ClearOfMachineL

Machine Clearance Request

Instructions - WaitForMachClr

Page 2(2)

Version 1.3

Copyright (c) 1996 - ABB Flexible Automation Inc

GMT800

ClearOfMachineJ

ClearOfMachineJ

Machine Clear Status

ClearOfMachineJ is used to report to the PLC that the IRB is clear of a machine.
The ClearOfMachine instruction does not include motion, and provides a less
accurate setting of the output to the PLC.

Example
ClearOfMachineJ 5, p32, v1000, z30, tool2
The TCP of the tool, tool2, is moved along a non-linear path to the position
p32, with speed data v1000 and zone data z30.
In the middle of the corner path at p32 the PLC will be informed that the IRB is
clear of Machine 5.

Arguments
ClearOfMachineJ MachineNo ToPoint Speed Zone Tool [ \WObj]
MachineNo
The machine the IRB is clear of (i.e Machine 1-5).

Data type : num

ToPoint
Data type : robtarget
The destination point of the robot and external axes. It is defined as a named
position or stored directly in the instruction (marked with an * in the
instruction).
Speed
Data type : speeddata
The speed data that applies to movements. Speed data defines the
velocity of the tool center point, the tool reorientation and external axes.
Zone

Data type : zonedata


Zone data for the movement. Zone data describes the size of the
generated corner path.

Tool

Date type : tooldata

Version 1.0

Page 1(4)

Copyright (c) 1996 - ABB Flexible Automation Inc

ClearOfMachineJ

GMT800

The tool in use when the robot moves. The tool center point is the point
moved to the specified destination point.
[ \WObj ]
(Work Object)
Data type : wobjdata
The work object (coordinate system) to which the robot position in the
instruction is related.
This argument can be omitted, and if it is, the position is related to the
world coordinate system. If, on the other hand, a stationary tool or
coordinated external axes are used, this argument must be specified in
order to perform a linear movement relative to the work object.

Program execution
The ClearOfMachineJ instruction has the following internal sequence:
Clear of machine status is sent to the PLC.

Instruction by instruction execution


Forward
Normal program execution.
Backward
The motion is performed backward.
Not clear of machine status is sent to the PLC.

Page 2(4)

Version 1.0

Copyright (c) 1996 - ABB Flexible Automation Inc

GMT800

ClearOfMachineJ

Limitations
This instruction is not included in the pre-defined pick-list.
All machines are indicated to be clear (signal MachineClearX is set) whenever:
the program is started from main() AND the IRB is at Home
at the end of a cycle (when the robot has reached Home at the end of a
cycle)
Machine X is indicated to be clear (signal MachineClearX is set) whenever:
the ClearOfMachine instruction is placed in any programmer routine
Machine 5 is indicated to be clear (signal MachineClear5 is set) whenever:
the ReleasePart instruction is used with the optional \NotifyPLC switch
Machine X is indicated to be not clear (signal MachineClearX is dropped)
whenever:
the EnteringMachine instruction is placed in any programmer routine
Machine 5 is indicated to be not clear (signal MachineClear5 is dropped) whenever:
the GripPart instruction is used with the optional \NotifyPLC switch

Version 1.0

Page 3(4)

Copyright (c) 1996 - ABB Flexible Automation Inc

ClearOfMachineJ

GMT800

Related information
Described in :
Work clear status

Instructions - WorkComplete

Reposition tool Request

Instructions - RepositionTool

Interference Zone Entry Request

Instructions - EnterZone

Clear of Interference Zone Status

Instructions - ClearOfZone

Clear of Interference Zone Status

Instructions - ClearOfZoneJ

Clear of Interference Zone Status

Instructions - ClearOfZoneL

Machine Not Clear Status

Instructions - EnteringMachine

Machine Clear Status

Instructions - ClearOfMachine

Machine Clear Status

Instructions - ClearOfMachineJ

Machine Clear Status

Instructions - ClearOfMachineL

Machine Clearance Request

Instructions - WaitForMachClr

Page 4(4)

Version 1.0

Copyright (c) 1996 - ABB Flexible Automation Inc

GMT800

ClearOfMachineL

ClearOfMachineL

Machine Clear Status

ClearOfMachineL is used to report to the PLC that the IRB is clear of a machine.
The ClearOfMachine instruction does not include motion, and provides a less
accurate setting of the output to the PLC.

Example
ClearOfMachineL 5, p32, v1000, z30, tool2
The TCP of the tool, tool2, is moved linearly to the position p32, with speed
data v1000 and zone data z30.
In the middle of the corner path at p32 the PLC will be informed that the IRB is
clear of Machine 5.

Arguments
ClearOfMachineL MachineNo ToPoint Speed Zone Tool [ \WObj]
MachineNo
The machine the IRB is clear of (i.e Machine 1-5).

Data type : num

ToPoint
Data type : robtarget
The destination point of the robot and external axes. It is defined as a named
position or stored directly in the instruction (marked with an * in the
instruction).
Speed
Data type : speeddata
The speed data that applies to movements. Speed data defines the
velocity of the tool center point, the tool reorientation and external axes.
Zone

Data type : zonedata


Zone data for the movement. Zone data describes the size of the
generated corner path.

Tool

Date type : tooldata

Version 1.0

Page 1(4)

Copyright (c) 1996 - ABB Flexible Automation Inc

ClearOfMachineL

GMT800

The tool in use when the robot moves. The tool center point is the point
moved to the specified destination point.
[ \WObj ]
(Work Object)
Data type : wobjdata
The work object (coordinate system) to which the robot position in the
instruction is related.
This argument can be omitted, and if it is, the position is related to the
world coordinate system. If, on the other hand, a stationary tool or
coordinated external axes are used, this argument must be specified in
order to perform a linear movement relative to the work object.

Program execution
The ClearOfMachineL instruction has the following internal sequence:
Clear of machine status is sent to the PLC.

Instruction by instruction execution


Forward
Normal program execution.
Backward
The motion is performed backward.
Not clear of machine status is sent to the PLC.

Page 2(4)

Version 1.0

Copyright (c) 1996 - ABB Flexible Automation Inc

GMT800

ClearOfMachineL

Limitations
This instruction is not included in the pre-defined pick-list.
All machines are indicated to be clear (signal MachineClearX is set) whenever:
the program is started from main() AND the IRB is at Home
at the end of a cycle (when the robot has reached Home at the end of a
cycle)
Machine X is indicated to be clear (signal MachineClearX is set) whenever:
the ClearOfMachine instruction is placed in any programmer routine
Machine 5 is indicated to be clear (signal MachineClear5 is set) whenever:
the ReleasePart instruction is used with the optional \NotifyPLC switch
Machine X is indicated to be not clear (signal MachineClearX is dropped)
whenever:
the EnteringMachine instruction is placed in any programmer routine
Machine 5 is indicated to be not clear (signal MachineClear5 is dropped) whenever:
the GripPart instruction is used with the optional \NotifyPLC switch

Version 1.0

Page 3(4)

Copyright (c) 1996 - ABB Flexible Automation Inc

ClearOfMachineL

GMT800

Related information
Described in :
Work clear status

Instructions - WorkComplete

Reposition tool Request

Instructions - RepositionTool

Interference Zone Entry Request

Instructions - EnterZone

Clear of Interference Zone Status

Instructions - ClearOfZone

Clear of Interference Zone Status

Instructions - ClearOfZoneJ

Clear of Interference Zone Status

Instructions - ClearOfZoneL

Machine Not Clear Status

Instructions - EnteringMachine

Machine Clear Status

Instructions - ClearOfMachine

Machine Clear Status

Instructions - ClearOfMachineJ

Machine Clear Status

Instructions - ClearOfMachineL

Machine Clearance Request

Instructions - WaitForMachClr

Page 4(4)

Version 1.0

Copyright (c) 1996 - ABB Flexible Automation Inc

GMT800

ClearOfZone

ClearOfZone

Clear of Interference Zone Status

ClearOfZone is used whenever the IRB leaves a workspace that is used by another
IRB. The instruction allows the PLC to coordinate entry of the other IRB into the
zone.
See the ClearOfZoneL and ClearOfZoneJ instructions for a more accurate
coordination of setting the PLC signal.

Example
ClearOfZone Left
ClearOfZone Left indicates to the PLC that the IRB has exited the left
interference zone.

Arguments
ClearOfZone Zone
Zone

Data type : zonetype


The zone the IRB is leaving ( i.e, RIGHT, LEFT OR CENTER)

Program execution
The ClearOfZone instruction has the following internal sequence:
Indicate to the PLC that the IRB has exited the specified interference zone.
Display operator status message.

Version 1.1

Page 1(2)

Copyright (c) 1996 - ABB Flexible Automation Inc

ClearOfZone

GMT800

Instruction by instruction execution


Forward
Normal program execution.
Backward
Indicate to the PLC that the IRB has approached the specified interference
zone.
Display an operator status message
Wait for PLC acknowledgment to proceed into the interference zone
Display an operator status message.

Related information
Described in :
Work clear status

Instructions - WorkComplete

Reposition tool Request

Instructions - Repositiontool

Interference Zone Entry Request

Instructions - EnterZone

Clear of Interference Zone Status

Instructions - ClearOfZone

Machine Not Clear Status

Instructions - EnteringMachine

Machine Clear Status

Instructions - ClearOfMachine

Machine Clearance Request

Instructions - WaitForMachiClr

Page 2(2)

Version 1.0

(c) 1996 - ABB Flexible Automation Inc

GMT800

ClearOfZoneJ

ClearOfZoneJ

Clear of Interference Zone Status

ClearOfZoneJ is used whenever the IRB leaves a workspace that is used by another
IRB. The instruction allows the PLC to coordinate entry of the other IRB into the
zone.
The ClearOfZone instruction does not include motion, and provide a less accurate
setting of the PLC signal.

Example
ClearOfZoneJ Left p30, v1000, z30, tool2
The TCP of the tool, tool2, is moved along a non-linear path to the position
p30, with speed data v1000 and zone data z30.
In the middle of the corner path at p30 the PLC will be informed that the IRB
has exited the left interference zone.

Arguments
ClearOfZoneJ Zone ToPoint Speed Zone Tool [ \WObj]
Zone

Data type : zonetype


The zone the IRB is leaving (i.e, RIGHT, LEFT OR CENTER)

ToPoint
Data type : robtarget
The destination point of the robot and external axes. It is defined as a named
position or stored directly in the instruction (marked with an * in the
instruction).
Speed
Data type : speeddata
The speed data that applies to movements. Speed data defines the
velocity of the tool center point, the tool reorientation and external axes.
Zone

Data type : zonedata


Zone data for the movement. Zone data describes the size of the
generated corner path.

Version 1.0

Page 1(4)

Copyright (c) 1996 - ABB Flexible Automation Inc

ClearOfZoneJ
Tool

GMT800

Date type : tooldata


The tool in use when the robot moves. The tool center point is the point
moved to the specified destination point.

[ \WObj ]
(Work Object)
Data type : wobjdata
The work object (coordinate system) to which the robot position in the
instruction is related.
This argument can be omitted, and if it is, the position is related to the
world coordinate system. If, on the other hand, a stationary tool or
coordinated external axes are used, this argument must be specified in
order to perform a linear movement relative to the work object.

Program execution
The ClearOfZoneJ instruction has the following internal sequence:
Indicate to the PLC that the IRB has exited the specified interference zone.
Display operator status message.

Instruction by instruction execution


Forward
Normal program execution.
Backward
The motion is performed backward.
Indicate to the PLC that the IRB has approached the specified interference
zone.
Display an operator status message
Wait for PLC acknowledgment to proceed into the interference zone
Display an operator status message.

Page 2(4)

Version 1.0

(c) 1996 - ABB Flexible Automation Inc

GMT800

ClearOfZoneJ

Limitations
This instruction is not included in the pre-defined pick-list.

Related information
Described in :
Work clear status

Instructions - WorkComplete

Reposition tool Request

Instructions - Repositiontool

Interference Zone Entry Request

Instructions - EnterZone

Clear of Interference Zone Status

Instructions - ClearOfZone

Clear of Interference Zone Status

Instructions - ClearOfZoneL

Clear of Interference Zone Status

Instructions - ClearOfZoneJ

Machine Not Clear Status

Instructions - EnteringMachine

Machine Clear Status

Instructions - ClearOfMachine

Machine Clear Status

Instructions - ClearOfMachineL

Machine Clear Status

Instructions - ClearOfMachineJ

Machine Clearance Request

Instructions - WaitForMachiClr

Version 1.0

Page 3(4)

Copyright (c) 1996 - ABB Flexible Automation Inc

ClearOfZoneJ

GMT800

Page 4(4)

Version 1.0

(c) 1996 - ABB Flexible Automation Inc

GMT800

ClearOfZoneL

ClearOfZoneL

Clear of Interference Zone Status

ClearOfZoneL is used whenever the IRB leaves a workspace that is used by another
IRB. The instruction allows the PLC to coordinate entry of the other IRB into the
zone.
The ClearOfZone instruction does not include motion, and provide a less accurate
setting of the PLC signal.

Example
ClearOfZoneL Left p30, v1000, z30, tool2
The TCP of the tool, tool2, is moved along a linear path to the position p30,
with speed data v1000 and zone data z30.
In the middle of the corner path at p30 the PLC will be informed that the IRB
has exited the left interference zone.

Arguments
ClearOfZoneL Zone ToPoint Speed Zone Tool [ \WObj]
Zone

Data type : zonetype


The zone the IRB is leaving (i.e, RIGHT, LEFT OR CENTER)

MachineNo
The machine the IRB is clear of (i.e Machine 1-5).

Data type : num

ToPoint
Data type : robtarget
The destination point of the robot and external axes. It is defined as a named
position or stored directly in the instruction (marked with an * in the
instruction).
Speed
Data type : speeddata
The speed data that applies to movements. Speed data defines the
velocity of the tool center point, the tool reorientation and external axes.
Zone

Data type : zonedata


Zone data for the movement. Zone data describes the size of the
generated corner path.

Version 1.0

Page 1(4)

Copyright (c) 1996 - ABB Flexible Automation Inc

ClearOfZoneL

Tool

GMT800

Date type : tooldata


The tool in use when the robot moves. The tool center point is the point
moved to the specified destination point.

[ \WObj ]
(Work Object)
Data type : wobjdata
The work object (coordinate system) to which the robot position in the
instruction is related.
This argument can be omitted, and if it is, the position is related to the
world coordinate system. If, on the other hand, a stationary tool or
coordinated external axes are used, this argument must be specified in
order to perform a linear movement relative to the work object.

Program execution
The ClearOfZoneL instruction has the following internal sequence:
Indicate to the PLC that the IRB has exited the specified interference zone.
Display operator status message.

Instruction by instruction execution


Forward
Normal program execution.
Backward
The motion is performed backward.
Indicate to the PLC that the IRB has approached the specified interference
zone.
Display an operator status message
Wait for PLC acknowledgment to proceed into the interference zone
Display an operator status message.
Page 2(4)

Version 1.0

(c) 1996 - ABB Flexible Automation Inc

GMT800

ClearOfZoneL

Limitations
This instruction is not included in the pre-defined pick-list.

Related information
Described in :
Work clear status

Instructions - WorkComplete

Reposition tool Request

Instructions - Repositiontool

Interference Zone Entry Request

Instructions - EnterZone

Clear of Interference Zone Status

Instructions - ClearOfZone

Clear of Interference Zone Status

Instructions - ClearOfZoneL

Clear of Interference Zone Status

Instructions - ClearOfZoneJ

Machine Not Clear Status

Instructions - EnteringMachine

Machine Clear Status

Instructions - ClearOfMachine

Machine Clear Status

Instructions - ClearOfMachineL

Machine Clear Status

Instructions - ClearOfMachineJ

Machine Clearance Request

Instructions - WaitForMachiClr

Version 1.0

Page 3(4)

Copyright (c) 1996 - ABB Flexible Automation Inc

ClearOfZoneL

GMT800

Page 4(4)

Version 1.0

(c) 1996 - ABB Flexible Automation Inc

GMT800

CloseRetract

CloseRetract

Close the Gun Retract Stroke

CloseRetract orders the gun retract stroke to close.

Example
CloseRetract 4
CloseRetract orders gun number 4 to close its retract stroke.
CloseRetract Gun 3
CloseRetract orders the retract of gun number 3 to close.

Arguments
CloseRetract GunNumber

GunNumber
Data type : num
Identification of the gun retract to close ( retract 1-4 ).

Program execution
The CloseRetract instruction has the following internal sequence:
Order the retract stroke to close

Timing diagram
Notes:
Time

Tophat tuning name

Range / units

Default time

T1

RetractClsTime

0-8388608 seconds

0.8 seconds

Version 1.0

Page 1(2)

Copyright (c) 1996 - ABB Flexible Automation Inc

CloseRetract

GMT800

Open retract is
reset
Close retract is
set
T1

Retract open
feedback
Next instruction
begins

Instruction by instruction execution


Forward
See program execution.
Backward
No operation.

Limitations
Available only if the IRB is configured for spot welding.

Related information
Described in :
Open the gun retract stroke

Instructions - OpenRetract

Close retract with welding

Instructions - Spot

Page 2(2)

Company Confidential

Version 0.2

File : 15 Closeret.doc

4/11/2001 9:47:00 AM

Copyright (c) 1996 - ABB Flexible Automation Inc

GMT800

DoAppOption

DoAppOption

AppOption Routine Request

DoAppOption requests execution of a specified option routine within the current


Style routine.

Example
DoAppOption 1
DoAppOption 1 calls a style based option routine (i.e. AppxStylexOption1() ),
if option 1 is the valid option.
If the DoAppOption 1 instruction is called from the App2Style2() routine, the
App2Style2Opt1() routine will be executed if option 1 is the valid option, i.e.
the calling hierarchy is:
App1Style2()
|
+- DoAppOption 1
|
|
|
+-App1Style2Opt1()
|
+- DoAppOption 2
|
|
|
+- App1Style2Opt2()
|
+- DoAppOption 3
|
+- App1Style2Opt3()

App2Style1()
|
+- DoAppOption 1
|
|
|
+- App2Style1Opt1()
|
+- DoAppOption 2
|
|
|
+- App2Style1Opt2()
|
+- DoAppOption 3
|
+- App2Style1Opt3()

Arguments
DoAppOption Option
Option
Option number for the Option routine to call.

Data type : num

Program execution
The DoAppOption instruction has the following internal sequence:
Version 1.1

Page 1(2)

Copyright (c) 1996 - ABB Flexible Automation Inc.

DoAppOption

GMT800

check with the PLC if the requested option, as given in the instruction
argument, is the valid option for this job
if valid, execute the Appx1Stylex2Optionx3() routine, where x1 and x2
comes from the Appx1Stylex2() routine where the instruction is called, and
x3 is the option number given in the argument.

Instruction by instruction execution


Forward
Normal program execution
Backward
No operation

Limitations
The DoAppOption instruction can only be used in the AppStyle() routines.
If more than one option routine ( i.e.AppxStylexOption1() ) is to be used the
routine has to be defined by the programmer. The Basic Software supports up
to three Option routines per style.

Related information
Described in :
How to use the Doxxx instructions

Routines - Styles Routines

Page 2(2)

Version 1.0

Copyright (c) 1996 - ABB Flexible Automation Inc.

GMT800

DoAppStyle

DoAppStyle

AppStyle Routine Request

DoAppStyle requests execution of a specific Style routine.

Example
DoAppStyle 3
DoAppStyle 3 calls a Style routine (i.e. AppxStyle3() ), if style 3 is the valid
style.
If the DoAppStyle 3 instruction is called from the App2() routine, the
App2Style3() routine will be executed if Style 3 is the valid style. An example
of the calling hierarcy is illustrated below:
App1()
|
+- DoAppStyle 1
|
|
|
+- App1Style1()
|
+- DoAppStyle 2
|
|
|
+- App1Style2()
|
+- DoAppStyle 3
|
|
|
+- App1Style3()
...

App2()
|
+- DoAppStyle 1
|
|
|
+- App2Style1()
|
|
|
+- DoAppOption 1
|
|
|
+-App2Style1Opt1()
|
+- DoAppStyle 2
|
|
|
+- App2Style2()
|
|
|
+- DoAppOption 1
|
|
|
+- App2Style2Opt1()
...

Arguments
DoAppStyle Style
Style

Data type : num


Style number for the Style routine to call.

Version 1.2

Page 1(2)

Copyright (c) 1996 - ABB Flexible Automation Inc.

DoAppStyle

GMT800

Program execution
The DoAppStyle instruction has the following internal sequence:
check with the PLC if the requested style, as given in the instruction
argument, is the valid style for this job.
if valid, execute the Appx1Stylex2() routine, where x1 comes from the
Appx1() routine where the instruction is called, and x2 is the style number
given in the argument.

Instruction by instruction execution


Forward
Normal program execution.
Backward
No operation

Limitations
The DoAppStyle instruction can only be used in the App1() or App2() routines.
Three style routines per App ( i.e.AppxStylex() ) are provided by default. The
Basic software supports up to 7 style routines.

Related information
Described in :
How to use the Doxxx instructions

Routines - Styles Routines

Page 2(2)

Version 1.2

Copyright (c) 1996 - ABB Flexible Automation Inc.

GMT800

DoDropOffStyle

DoDropOffStyle

DropOffStyle Routine Request

DoDropOffStyle requests execution of a style specific drop-off routine.

Example
DoDropOffStyle 2
DoDropOffStyle calls a style based drop-off routine if style 2 is the valid style.
If the DoDropOffStyle 2 instruction is executed in the Dropoff1() routine the
DropOff1Style2() routine will be called, if style 2 is the valid style as specified
by the PLC. I.e. the calling hierarchy for DropOff1() is:
DropOff1()
|
+- DoDropOffStyle 1
|
|
|
+- DropOff1Style1()
|
+- DoDropOffStyle 2
|
|
|
+- DropOff1Style2()
|
+- DoDropOffStyle 3
|
|
|
+- DropOff1Style3()
...

The same calling hierarchy is used for DropOff2() and DropOff3().

Arguments
DoDropOffStyle Style
Style

Data type : num


Style number for the Style routine to call.

Version 1.2

Page 1(2)

Copyright (c) 1996 - ABB Flexible Automation Inc.

DoDropOffStyle

GMT800

Program execution
The DoDropOffStyle instruction has the following internal sequence:
verify if the requested style, as given in the argument, is the valid style for
this job.
if valid, execute the DropOffx1Stylex2() routine ,where x1 comes from the
DropOff x1() routine where the instruction is called, and x2 is the style
number given in the argument.

Instruction by instruction execution


Forward
As normal program execution
Backward
No operation

Limitations
The DoDropOffStyle instruction can only be used in the DropOff() routines.
If a DropOff3Style() routine is to be used, it has to be defined by the
programmer. The Basic Software supports up to three drop-off routines.

Related information
Described in :
How to use the Doxxx instructions

Routines - Styles Routines

Page 2(2)

Version 1.2

Copyright (c) 1996 - ABB Flexible Automation Inc.

GMT800

DoFFRStyle

DoFFRStyle

AppFFRStyle Routine Request

DoFFRStyle requests execution of a style specific FFR routine.

Example
DoFFRStyle 3
DoFFRStyle3 calls a style based FFR routine if style 3 is the valid style.
If the DoFFRStyle 3 instruction is executed in the App1FFR() routine the
App1FFRStyle3() routine will be called, if style 3 is the valid style as specified
by the PLC. The calling hierarchy for App1FRR() is:
App1FFR()
|
+- DoFFRStyle 1
|
|
|
+- App1FFRStyle1()
|
+- DoFFRStyle 2
|
|
|
+- App1FFRStyle2()
|
+- DoFFFRStyle 3
|
|
|
+- App1FFRStyle3()
...

Arguments
DoFFRStyle Style
Style

Data type : num


Style number for the Style routine to call.

Version 1.2

Page 1(2)

Copyright (c) 1996 - ABB Flexible Automation Inc.

DoFFRStyle

GMT800

Program execution
The DoFFRStyle instruction has the following internal sequence:
verify if the requested style, as given in the argument, is the valid style for
this job.
if valid, execute the Appx1FFRStylex2() routine ,where x1 is the Appx1()
routine from where the instruction is called, and x2 is the style number
given in the argument.

Instruction by instruction execution


Forward
As normal program execution
Backward
No operation

Limitations
The DoFFRStyle instruction can only be used in the AppxFFR() routines.
Up to seven style number are supported by the Basic software. FFRStyle routines are
provided by default for style 1-3. If routines are required for style 4-7 they have to be
defined by the programmer.

Related information
Described in :
How to use the Doxxx instructions

Routines - Styles Routines

Page 2(2)

Version 1.2

Copyright (c) 1996 - ABB Flexible Automation Inc.

GMT800

DoPickUpStyle

DoPickUpStyle

PickUpStyle Routine Request

DoPickUpStyle requests execution of a style specific drop-off routine.

Example
DoPickUpStyle 1
DoPickUpStyle calls a style based pick-up routine if style 1 is the valid style.
If the DoPickUpStyle 1 instruction is executed in the PickUp2() routine the
PickUp2Style1() routine will be called, if style 1 is the valid style as specified
by the PLC.
The calling hierarchy for PickUp2() is:
PickUp2()
|
+- DoPickUpStyle 1
|
|
|
+- PickUp2Style1()
|
+- DoPickUpStyle 2
|
|
|
+- PickUp2Style2()
|
+- DoPickUpStyle 3
|
|
|
+- PickUp2Style3()
...

The same calling hierarchy is used for PickUp1() and PickUp3().

Arguments
DoPickUpStyle Style
Style

Data type : num


Style number for the Style routine to call.

Version 1.2

Page 1(2)

Copyright (c) 1996 - ABB Flexible Automation Inc.

DoPickUpStyle

GMT800

Program execution
The DoPickUpStyle instruction has the following internal sequence:
verify if the requested style, as given in the argument, is the valid style for
this job.
if valid, execute the PickUpx1Stylex2() routine ,where x1 comes from the
PickUpx1() routine where the instruction is called, and x2 is the style
number given in the argument.

Instruction by instruction execution


Forward
As normal program execution
Backward
No operation

Limitations
The DoPickUpStyle instruction can only be used in the PickUp() routines.
If a PickUp3Stylex() routines is to be used, it has to be defined by the
programmer.

Related information
Described in :
How to use the Doxxx instructions

Routines - Styles Routines

Page 2(2)

Version 1.2

Copyright (c) 1996 - ABB Flexible Automation Inc.

GMT800

DressTip

DressTip

Manual Tip Dressing for Spot Welding

DressTip is used in spot welding to programmatically dress a carried spot weld gun.
The dressing occurs at the current position of the IRB, on the specified weld gun.
Tip dressing is typically executed automatically, by the basic software. In some
special cases, however, such as for multiple carried guns, only the first gun will be
dressed automatically. This instruction provides a means to dress the other carried
gun(s). This instruction should only be used in one of these special cases, according
to the example below.

Example
DressTip 2;
DressTip is the only instruction needed to perform a manual tip dress: a
dress performed at a time selected by the programmer. In this example, gun 2
will be dressed if the associated SCR or the S4pc is requesting a tip dress. This
instruction could be used in the HomeToTipDress() routine, after positioning
the second gun at the tip dresser.
HomeToTipDress() should be constructed as follows for two carried guns:
! move the second gun into position at the tip dresser
MoveL TipDress2, v200, fine, tool2;
DressTip 2;
! now move the first gun into position at the tip dresser
MoveL *, v200, z20, tool2;
MoveL TipDress, v200, fine, tool2;
! dressing of gun 1 will take place automatically here

Arguments
DressTip GunNumber
GunNumber
Data type : num
The number of the carried gun to be dressed, i.e. gun 1 - 4.

Program execution
The DressTip instruction has the following internal sequences:
Version 1.2

Page 1(4)

Copyright (c) 1997 - ABB Flexible Automation Inc

DressTip

GMT800

Normal Process Cycle, NoWeld & DryCycle Process Cycle


Send close retract signal (if applicable)
Send gun close signal
Wait for configured tip dressing time
Send gun open signal
Send open retract signal (if applicable)

Program stop and start


Stop during dressing and restart
When the dressing is finished the gun is opened. The program pointer is
pointing at the next instruction.
On restart, the robot continues with the next programmed position.

Emergency stop and start


On re-start the dressing process continues.

Instruction by instruction execution


Forward
The tip dressing is performed
Backward
No operation.

Limitations
Available only if the IRB is configured for carried spot welding. Instruction
will not be available from the instruction pick list; use ProcCall to insert the
instruction.

Page 2(4)

Version 1.2

Copyright (c) 1996 - ABB Flexible Automation Inc

GMT800

DressTip

Related information
Described in :
Spot

Instructions - Spot

Open Retract

Instructions - OpenRetract

Close Retract

Instructions - CloseRetract

Advance Gun

Instructions - AdvanceGun

Return Gun

Instructions - ReturnGun

Version 1.2

Page 3(4)

Copyright (c) 1997 - ABB Flexible Automation Inc

DressTip

GMT800

Page 4(4)

Version 1.2

Copyright (c) 1996 - ABB Flexible Automation Inc

GMT800

DropOffTool

DropOffTool

Drop off a tool held by the IRB

ToolDropOff requests the current carried tool to be dropped off at its tool changer
station. The robot must be in the Home position when using this instruction. The
path has to be defined. See section Process Routines in Chapter 3: Path Routines.

Example
DropOffTool 2
A request to drop off the tool in station 2 is performed.

Arguments
DropOff Tool

StationNumber

StationNumber
The station number (1 or 2).

Data type : num

Program execution
The DropOffTool instruction has the following internal sequences:
Verify that the tool the IRB is holding corresponds to the StationNumber
provided in the instruction argument.
Verify that there is no tool present in the drop off station
Send open cover signal
Call routine HomeToTCxDropOff, where x is the StationNumber, to move
into the station
Send open latch signal
Call routine TCxDropOfftoHome routine, where x is the StationNumber, to
return to the Home position
Send close cover signal

Version 1.0

Page 1(4)

Copyright (c) 1996 - ABB Flexible Automation Inc.

DropOffTool

GMT800

Timing diagram
Notes:
Time
T1
T2
T3

Path
segment
PS1
PS2

Tophat tuning
name
CoverOpenTime
CoverCloseTime
LatchOpenTime

Range / units

Default time

0-8388608 seconds
0-8388608 seconds
0-8388608 seconds

2.0 seconds
2.0 seconds
2.0 seconds

Path description
Home to Dropoff
Dropoff to Home

Example: The timing for a tool dropoff sequence.

Close Cover
T2

Open Cover
T1

Covers opened
feedback
Robot Motion
PS1

PS2

Close Latch

Page 2(4)

Version 1.0

Copyright (c) 1996 - ABB Flexible Automation Inc.

GMT800

DropOffTool

Open Latch
T3

Latch opened
feedback
Tool present
feedback

Instruction by instruction execution


Forward
Normal program execution.
Backward
No operation

Limitations
Available only when the IRB is configured for using a tool changer.

Related information
Described in :
Pick up a tool from tool changer

Instructions - PickUpTool

Exchange tool

Instructions - ExchangeTool

Routine HomeToTCxDropOff, etc.

Routines - Process routines

Version 1.0

Page 3(4)

Copyright (c) 1996 - ABB Flexible Automation Inc.

DropOffTool

GMT800

Page 4(4)

Version 1.0

Copyright (c) 1996 - ABB Flexible Automation Inc.

GMT800

EnteringMachine

EnteringMachine

Machine Not Clear Status

EnteringMachine is used to report to the PLC that the IRB is not clear with respect to
a machine.

Example
EnteringMachine 5
EnteringMachine 5 indicates to the PLC that the IRB is not clear of Machine
5.

Arguments
EnteringMachine MachineNo
MachineNo
Data type : num
The machine the IRB is entering in to (i.e Machine 1-5).

Program execution
The EnteringMachine instruction has the following internal sequence:
Not clear of machine x status is sent to the PLC

Instruction by instruction execution


Forward
Normal program execution.
Backward
No operation

Version 1.0

Page 1(2)

Copyright (c) 1996 - ABB Flexible Automation Inc

EnteringMachine

GMT800

Related information
Described in :
Work clear status

Instructions - WorkComplete

Reposition tool Request

Instructions - Reposition tool

Interference Zone Entry Request

Instructions - EnterZone

Clear of Interference Zone Status

Instructions - ClearOfZone

Machine Not Clear Status

Instructions - EnteringMachine

Machine Clear Status

Instructions - ClearOfMachine

Machine Clearance Request

Instructions - WaitForMachClr

Page 2(2)

Version 1.0

Copyright (c) 1996 - ABB Flexible Automation Inc

GMT800

EnterZone

EnterZone

Interference Zone Entry Request

The EnterZone instructions are used whenever the IRB needs to enter a workspace
that is used by another IRB.

Example
EnterZone Left
EnterZone Left indicates to the PLC that the IRB has approached the left
interference zone, and allows the PLC to coordinate the IRB entry into the
zone.

Arguments
EnterZone Zone
Zone

Data type : zonetype


The zone the IRB is entering ( i.e, RIGHT, LEFT or CENTER)

Program execution
The EnterZone instruction has the following internal sequence:
Indicate to the PLC that the IRB has approached the specified interference
zone.
Display an operator status message
Wait for PLC acknowledgment to proceed into the interference zone
Display an operator status message.

Version 1.1

Page 1(2)

Copyright (c) 1996 - ABB Flexible Automation Inc

EnterZone

GMT800

Instruction by instruction execution


Forward
Normal program execution.
Backward
No operation is performed.

Related information
Described in :
Work clear status

Instructions - WorkComplete

Reposition tool Request

Instructions - Reposition tool

Interference Zone Entry Request

Instructions - EnterZone

Clear of Interference Zone Status

Instructions - ClearOfZone

Machine Not Clear Status

Instructions - EnteringMachine

Machine Clear Status

Instructions - ClearOfMachine

Machine Clearance Request

Instructions - WaitForMachClr

Page 2(2)

Version 1.0

Copyright (c) 1996 - ABB Flexible Automation Inc

GMT800

ExchangeTool

ExchangeTool

Exchange of tooling held by the IRB

ExchangeTool requests exchange of carried tooling. The IRB must be in the Home
position when using this instruction.
The path to and from the tool changer has to be defined in pre-defined routines. See
section Process Routines in Chapter 3 : Path Routines.

Example
ExchangeTool 2, 1
A request to drop off the tool in station 2 and to pick up the tool in station 1 is
made.

Arguments
ExchangeTool DropOffStation PickUpStation
DropOffStation
The station number to drop off the tool (1 or 2).

Data type : num

PickUpStation
The station number to pick off the tool (1 or 2).

Data type : num

Program execution
The ExchangeTool instruction has the following internal sequences:
Verify that the DropOffStation and the PickUpStation are not the same
Verify that the tool the IRB is holding corresponds to the DropOffStation
Verify that there is no tool present in the DropOffStation
Send open covers signal
Verify that covers are open
Call routine HomeToTCxDropOff(), where x is the DropOffStation
Send open latch signal
Version 1.0

Page 1(4)

Copyright (c) 1996 - ABB Flexible Automation Inc.

ExchangeTool

GMT800

Verify that the latch is open


Verify that the tool is no longer present (optional)
Verify that there is a tool present in the PickUpStation
Call routine TCXToTCY() routine, where X is DropOffstation and Y is
PickUpStation
Send close latches signal
Call appropriate TCxPickUpToHome() routine
Send close cover signal for PickUpStation

Timing diagram
Notes:
Time
T1
T2
T3
T4

Path
segment
PS1
PS2
PS3

Tophat tuning
name
CoverOpenTime
CoverCloseTime
LatchOpenTime
LatchCloseTime

Range / units

Default time

0-8388608 seconds
0-8388608 seconds
0-8388608 seconds
0-8388608 seconds

2.0 seconds
2.0 seconds
2.0 seconds
2.0 seconds

Path description
Home to Dropoff
Dropoff to Pickup
Pickup to Home

Page 2(4)

Version 1.0

Copyright (c) 1996 - ABB Flexible Automation Inc.

GMT800

ExchangeTool

Example of the timing sequence for a normal tool exchange.

Close Cover
T2

Open Cover
T1

Covers opened
feedback
Robot Motion
PS1

PS2

PS3

Close Latch
T4

Open Latch
T3

Latch opened
feedback
Tool present
feedback

Version 1.0

Page 3(4)

Copyright (c) 1996 - ABB Flexible Automation Inc.

ExchangeTool

GMT800

Instruction by instruction execution


Forward
Normal program execution
Backward
No operation

Related information
Described in :
Pick up a tool from tool changer

Instructions - PickupTool

Exchange tool

Instructions - ExchangeTool

Path Routine used for Tool changer.

Routines - Process Routines

Page 4(4)

Version 1.0

Copyright (c) 1996 - ABB Flexible Automation Inc.

GMT800

GasFlowOff

GasFlowOff

Turn Shielding Gas Flow Off

GasFlowOff requests shielding gas to be turned off when hinge welding.


It is the programmers responsibility to ensure that enough shielding gas is provided
to protect the welding process. The shielding gas has to be turned on prior to the
initiation of the plunge, and the gas has to be turn off when not needed.

Example
GasFlowOff \T1\T3
Request the shielding gas to be turned off for torch 1 and 3.

Arguments
GasFlowOff [\T1] [\T2] [\T3] [\T4]
\T1...\T4
Data type : switch
The torch(es) requiring shielding gas to be turned off.

Program execution
The GasFlowOff instruction has the following internal sequence:
Request the gas to be turned off for the requested torch(es)

Instruction by instruction execution


Forward
Normal program execution
Backward
No operation.

Version 1.1

Page 1(2)

Copyright (c) 1996 - ABB Flexible Automation Inc

GasFlowOff

GMT800

Limitations
Available only if the IRB is configured for hinge welding

Related information
Described in :
Turn shielding gas on

Instructions - GasFlowOn

Plunge welding of hinges

Instructions - HingeWeld

Page 2(2)

Version 1.0

Copyright (c) 1996 - ABB Flexible Automation Inc

GMT800

GasFlowOn

GasFlowOn

Turn Shielding Gas On

GasFlowOn requests shielding gas to be turned on when hinge welding.


It is the programmers responsibility to ensure that enough shielding gas is provided
to protect the welding process. The shielding gas has to be turned on prior to the
initiation of the weld, and the gas has to be turn off when not needed.

Example
GasFlowOn \T1\T3
Request the shielding gas to be turned on for torch 1 and 3.

Arguments
GasFlowOn [\T1] [\T2] [\T3] [\T4]
\T1...\T4
Data type : switch
The torch(es) which require shielding gas to be turned on.

Program execution
The GasFlowOn instruction has the following internal sequence:
Request the gas to be turned on for requested torch(es).

Instruction by instruction execution


Forward
Normal program execution
Backward
Request the specified gas to be turned off for requested torch(es).

Version 1.1

Page 1(2)

Copyright (c) 1996 - ABB Flexible Automation Inc

GasFlowOn

GMT800

Limitations
Available only if the IRB is configured for hinge welding

Related information
Described in :
Turn shielding gas off

Instructions - GasFlowOff

Plunge welding of hinges

Instructions - HingeWeld

Page 2(2)

Copyright (c) 1996 - ABB Flexible Automation Inc

GMT800

GlueL

GlueL

Gluing with linear motion


GlueL is used in gluing applications to control the IRB motion, and the glue gun.
GlueL moves the TCP linearly to the end position.

Example
GlueL\On, p1, v250, ggun1 \F1:=scaleA, z30, tooldisp1
GlueL p2, v250, ggun1 \F1:=scaleB, z30, tooldisp1
GlueL\Off, p3, v250, ggun1, z30, tooldisp1
The TCP for tooldisp1 is moved on a linear path to position p1 with the speed
given by v250. The \On argument trigger the gun and the flow to start during
the motion in to position p1. The actual timing is determined by the glue gun
data provided ( i.e. glgun1 in this example). The glue flow for gun 1 ( i.e. F1) is
ordered using a TCP proportional analog output signal from the IRB. This
signal is scaled using scaleA.
The TCP then is moved from p1 towards p2 with the flow values given by the
preceding glue instruction. Before p2 is reached, the flow values are changed
to scaleB. The time when that is performed is specified in the glgun1 data.
The TCP then is moved from p2 towards p3 with the flow values given by the
preceding glue instruction. Due to the \Off argument the outputs will be reset
according to the times given in ggun1 before p3 is reached :
GlueL

GlueL\On
p1*

p3*
p1

p3
GlueL\Off

S1

Direction of movement

p2

S2

Movement without gluing


Gluing
Pre-action ( start/stop of process)

S1: F1= scaleA, i.e. the glue flow values given by the first instruction are active.
S2: F1 = scaleB, i.e. the glue flow values given by the second instruction are active.

Figure 1 The three glue instructions provided in the example


A second gun is not used in this example. If a second gun is used the appropriate
parameters have to be given for the second gun using the F2 argument and ggundata
for gun2 has to be used ( i.e. glgun2).
Version 1.3

Page 1(6)

Copyright (c) 1996 - ABB Flexible Automation Inc

GlueL

GMT800

Arguments
GlueL [\On]|[\Off] [\Conc] ToPoint Speed GlueGun [\F1] [\F2]
[\D] Zone Tool [\WObj]
[\On]
Data type : switch
The argument \On is used in the first Glue instruction to start the glue
process.
The gun opening and the analog flow signal are performed as pre-action
during the motion to the programmed position. The timing of the preaction is determined by the ggundata.
As the instruction cannot contain the arguments \On and \Off together, the
gluing path must have at least 2 instructions, one containing the \On and
one containing the \Off argument. Executing two consecutive instructions
with \On argument will result in an error message.
[\Off]
Data type : switch
The argument \Off is used in the last gluing instruction to terminate the
gluing. On the way to the end position the gun opening as well as the flow
outputs will be reset according to the given time within the specified
ggundata.
[\Conc]
(Concurrent)
Data type : switch
The robot is looking ahead and subsequent instructions are executed while
the robot is moving. This argument is used in the same situations as
corresponding argument in other Move instructions, but for gluing it is
also useful to permit higher speeds when consecutive glue instructions are
close to each other.
Using the argument \Conc, the number of movement instructions in
succession is limited to 5. In a program section that includes StorePathRestoPath, movement instructions with the argument \Conc are not
permitted.
If this argument is omitted, the subsequent logical instructions are
executed some time before reaching the programmed zone. ( See RAPID
Reference manual chapter 3.2 : Sequential program execution at fly by
points )
Page 2(6)

Version 1.3

Copyright (c) 1996 - ABB Flexible Automation Inc

GMT800

GlueL

ToPoint
Data type : robtarget
The destination point of the robot and the external axes. It is defined as a
named position or stored directly in the instruction (if marked with an * in
the instruction).
Speed
Data type : speeddata
The speed data that applies to movements. Speed data defines the
velocity for the tool center point, the tool reorientation and external axes.
GlueGun
Data type : ggundata
Gun specific data, e.g. the reaction time for setting a flow etc., for the gun
in use (see next section : GlueL - ggundata).
[\F1]

(Scaling of the flow 1 signal)


Data type : switch
The optional argument \F1 gives a value in percent to adjust the flow1 for
the next section of the path. If no value is programmed the same value as
in previous glue instruction is used. If no value is programmed in a glue
instruction with \On argument the value 0 is used.

[\F2]
(Scaling of the flow 2 signal)
Data type : switch
The optional argument \F2 gives a value in percent to adjust the flow2 for
the next section of the path. If no value is programmed the same value as
in previous glue instruction is used. If no value is programmed in a glue
instruction with \On argument the value 0 is used.
[\D]

(Anticipate of all pre-actions)


Date type : switch
The optional argument \D provide the possibility to perform all preactions in advance ( in mm) of the programmed position.

Zone

Date type : zonedata


Zone data for the movement. Zone data describes the size of the
generated corner path.

Tool

Date type : tooldata


The tool in use when the robot moves. The tool center point moves to the
specified destination position, and should be the position of the tip when
the gun is open.

Version 1.3

Page 3(6)

Copyright (c) 1996 - ABB Flexible Automation Inc

GlueL

GMT800
[\WObj]
( Work Object )
Date type : switch
The work object (coordinate system) to which the robot position in the
instruction is related.
This argument can be omitted, and if it is, the position is related to the
world coordinate system. If, on the other hand, a stationary TCP or
coordinated external axes are used, this argument must be specified in
order to perform a linear movement relative to the work object.

Program execution
Internal sequence in a GlueL instruction:
The gun starts to move towards the position.
If the argument \On is used the gun opening output DO_Ggun1 or
DO_Ggun2 is set at the specified time before the position is reached. If the
argument \D is used the output is set at the specified distance plus the
specified times before the position is reached.
The values for flow1 or flow2 are set at the specified time before the
position is reached. If the argument \D is used the outputs are set at the
specified distance plus the specified times before the position is reached.
When the programmed position is reached, the program execution
continues with the next instruction.

Program stop and restart


Stop during the glue process
If a stop occurs when the glue process is active, the gluing outputs are cleared
and an error message is displayed. When the restart is ordered, the remaining
instructions in the current set of glue instructions are performed as normal
positioning instructions.
The gluing is restarted with the next glue instruction with an \On argument.

Page 4(6)

Version 1.3

Copyright (c) 1996 - ABB Flexible Automation Inc

GMT800

GlueL

Instruction by instruction execution


Forwards
The gun is closed and motion is performed forward without gluing.
Backwards
The gun is closed and the motion is performed backwards without gluing.

Tuning
It is very important that the ggundata is set up properly before any tuning is done, see
next section : GlueL - ggundata.
The bead size can easily be tuned using different values for the F1 argument for gun
1 and the F2 argument for Gun 2.
To allow easy tuning during production the following predefined scales are provided.
The default values is 100%, and should be changed to a higher or lower number as
required :
Name
scaleA
scaleB
scaleC
scaleD
scaleE
scaleF

Data type
Num
Num
Num
Num
Num
Num

Default value
100
100
100
100
100
100

Limitations
It is not possible to restart the current glue sequence after a stop. The gluing is
restarted with the next glue instruction with an \On argument.

Error handling
Error situations
The following error situations are handled:
Version 1.3

Page 5(6)

Copyright (c) 1996 - ABB Flexible Automation Inc

GlueL

GMT800
Instruction argument error.
Wrong ggundata values.
Start without \On argument.
Start with two instructions with \On argument.
End with \Off argument without having started with \On argument.
Stop during execution of glue instructions.
The faulty instruction or data must be changed and the current set of glue
instructions must be restarted from the beginning.

Related information
Described in :
Other positioning instructions

RAPID Reference manual

Summary - Motion

Definition of velocity

RAPID Reference manual

Data types - speeddata

Definition of zone data

RAPID Reference manual

Data types - zonedata

Definition of tool

RAPID Reference manual

Data types - tooldata

Definition of work objects

RAPID Reference manual

Data types - wobjdata

Page 6(6)

Version 1.3

Copyright (c) 1996 - ABB Flexible Automation Inc

GMT800

ggundata

GlueL-ggundata

Glue gun data

ggundata is used to define glue gun specific data, which is to be used to control the
gun during the gluing process.
The ggundata data should be defined before the programming start, and specially
before any tuning is done using the optional arguments \D and \F in the GlueL
instruction.
Normally there is no need to modify the ggundata after the gun have been calibrated
properly.
Please note that the TCP and weight of the gluing gun are defined in tooldata and not
in ggundata.

Description
ggundata is used in the glue instruction and has the following structure :
- Which gun to be used ( 1 or 2 )
- Time for preopening and preclosing the gun
- Type of flow ( fixed of TCP proportional)
- Times for anticipate of flow on
- Times for anticipate of flow changes
- Times for anticipate of flow off
- Times for lag compensation in glue gun during speed dips
- Reference speed
Note : To facilitate future needs Flow1 is only used for dispense control for gun1 and
Flow2 is only used for dispense control for gun2.

Components
References made to p1, p2 etc. below refer to the example provided in the
description of the GlueL instruction.
ggun-no
( gun to use )
Number to define if this ggun data is for gun 1 or gun 2.

Data type : num

gl_on_time
(anticipate of digital gun open signal)
Time in seconds needed for the gun to open.

Data type : num

Version 1.0

Page 1(4)

Copyright (c) 1996 - ABB Flexible Automation Inc

GlueL-ggundata

GMT800

If gl_on_time is set to 0 the IRB will order the glue gun to open at p1. A
value given to glue_on_time will anticipate the gun open signal, i.e. the
IRB will order the glue gun to open at p1*, i.e. p1- gl_on_time.
gl_off_time
(anticipate of digital gun close signal)
Time in seconds needed for the gun to close.

Data type : num

If gl_off_time is set to 0 the IRB will order the glue gun to close at p3. A
value given to glue_off_time will anticipate the gun close signal, i.e. the
IRB will order the glue gun to close at p3*, i.e p3 - the gl_off_time.
-------------------------------------------Flow 1 ------------------------------------------------------fl1_type
(type of flow1)
Data type : num
Type of flow 1 signal, set to none, fixed or speed proportional, where none
=0, fixed =1 and TCP speed proportional = 2.
fl1_on_time (anticipate establishing of the analog flow1 signal)
Data type :
num
Time in seconds to establish flow in the gun at the start of the gluing.
If fl_on_time is set to 0 the IRB will issue the analog flow signal to the
gluing equipment at p1. A value given to fl_on_time will anticipate the
time when the analog flow signals is given. The flow signal will be given
at p1*, i.e. p1- fl1_on_time.
fl1_time
(anticipate scaling of the analog flow1 signal )
Data type : num
Time in seconds needed to change flow in the gun during on-going
gluing.
If fl_time is set to 0 the analog flow signal will change at the programmed
position when a new \F argument is provided in a glue instruction that are
not using \On of \Off arguments. A value given to fl_time will anticipate
the time when the new scaling of the analog flow signals is used.
fl1_off_time
(anticipate reset of the analog flow1 signal)
Data type : num
fl_off_time is used to compensate for time required to reset the flow in
the gun at the end of the gluing.
If fl_off_time is set to 0 the the analog flow signal will be reset in the
programed ToPoint. A value given to fl_off_time will anticipate the time
when the analog flow signals is reset.

Page 2(4)

Version 1.0

Copyright (c) 1996 - ABB Flexible Automation Inc

GMT800

GlueL-ggundata

fl1_delay
( anticipate of the analog flow1 signal)
Data type : num
Time in seconds to compensate for lag in the response of glue equipment
to continuos changes the analog flow signal provided by the IRB.
If fl_delay is set to 0 there is not time shifting of the analog flow signals.
A value given will shift the signal with the given time, i.e. the signal will
be provided ahead of time. The predicted TCP at t+fl1_delay will be used
to calculate the flow signal, where t is the current time.
fl1_refspeed
( glue reference speed)
Data type : num
Glue reference speed in mm/s. Normally the max. Used glue speed for
this gun. This value used to calculate the flow value for speed
proportional signals. This value must be > 0 also when flow type is =
fixed.
-------------------------------------------Flow 2 ------------------------------------------------------fl2_type
(type of flow2)
Data type : num
Type of flow 1 signal, set to none, fixed or speed proportional, where none
=0, fixed =1 and TCP speed proportional = 2.
fl2_on_time (anticipate establishing of the analog flow2 signal)
Data type :
num
Time in seconds to establish flow in the gun at the start of the gluing.
fl2_time
(anticipate scaling of the analog flow2 signal )
Data type : num
Time in seconds needed to change flow in the gun during on-going
gluing.
fl2_off_time
(anticipate reset of the analog flow2 signal)
Data type : num
fl_off_time is used to compensate for time required to reset the flow in
the gun at the end of the gluing.
fl2_delay
( anticipate of the analog flow2 signal)
Data type : num
Time in seconds to compensate for lag in the response of glue equipment
to continuos changes the analog flow signal provided by the IRB.
fl2_refspeed
( glue reference speed)
Data type : num
Glue reference speed in mm/s. Normally the max. Used glue speed for
this gun. This value used to calculate the flow value for speed

Version 1.0

Page 3(4)

Copyright (c) 1996 - ABB Flexible Automation Inc

GlueL-ggundata

GMT800

proportional signals. This value must be > 0 also when flow type is =
fixed.

Limitations
Maximum number of guns : 2
Maximum real lag compensation ( fl1_delay and fl2_delay) : 48-80 ms depending
on IRB type.
The values for the different times within the data sets must be between 0 to 1
seconds.
The value for the reference speed has to be > 0.

Page 4(4)

Version 1.0

Copyright (c) 1996 - ABB Flexible Automation Inc

GMT800

GripPart

GripPart

Grip part with IRB

GripPart engages a part with clamps and/or vacuum gripper(s) held by the IRB. The
IRB should be in the pick-up position when this instruction is used. Part present
monitoring is activated as the last action of the instruction.

Example
GripPart \V1
Closes clamps and / or applies vacuum to vacuum cups connected to valve 1.
GripPart \V1\V3\V5
Closes clamps and / or applies vacuum to vacuum cups connected to valves 1,
3 and 5.

Arguments
GripPart [\V1] [\V2] [\V3] [\V4] [\V5] [NotifyPLC]

\V1 ... \V5


The valve to be used.

Data type : switch

\NotifyPLC
Data type : switch
The PLC is informed when the instruction is executed.

Program execution
The GripPart instruction has the following internal sequence (only applicable steps
are performed ) :
Deactivate the clamp open output(s)
Activate the clamp closed output(s)
Apply vacuum output(s)
Wait for vacuum to build up (tunable time - GripMotionDly)
Verify clamps are closed
Verify clamps are not open
Turn on part present monitoring
If \NotifyPLC is used, the MachineClear5 RIO signal will be set low

Version 1.5

Page 1(4)

Copyright (c) 1996 - ABB Flexible Automation Inc.

GripPart

GMT800

Timing diagram
Notes:
The T1 time applies if one or more of the following conditions applies:
1. A valve supplied with the GripPart instruction is configured as vacuum.
2. A valve supplied with the GripPart instruction is configured as clamp and
feedback is not configured.
If multiple valves are supplied with the GripPart instruction, the highest instance of
motion delay is used.
Robot motion is not illustrated in the timing diagram as motion does not occur during
execution of the GripPart instruction.
Time

Tophat tuning name

Range / units

Default time

T1

Grippers motion delay

0.1 10 seconds

1.0 seconds

1. Deactivate clamp open output(s)


2. Activate clamp closed output(s)
3. Apply vacuum output(s)
Tunable time

T1

Wait for vacuum to build up

Verify clamps are closed

Verify clamps are not open

1. Turn on part present monitoring


2. If \NotifyPLC is used, the
MachineClear5 RIO signal will be
set low

Page 2(4)

Version 1.5

Copyright (c) 1996 - ABB Flexible Automation Inc

GMT800

GripPart

Instruction by instruction execution


Forward
Normal program execution
Backward
Not allowed

Limitations
Available only if the IRB is configured for material handling.

Related information
Described in :
Prepare to grip part with IRB

Instructions - PrepareToGrip

Release part held by IRB gripper

Instructions - ReleasePart

Verify that a part is release by IRB gripper

Instructions - VerifyRelease

Version 1.5

Page 3(4)

Copyright (c) 1996 - ABB Flexible Automation Inc.

GripPart

GMT800

Page 4(4)

Version 1.5

Copyright (c) 1996 - ABB Flexible Automation Inc

GMT800

HingeWeld

HingeWeld

Plunge welding of hinges

HingeWeld is used when plunge welding hinges. The instruction initiates the weld
process. A normal Move instruction using fine point, is used to move the IRB into
the weld position.
The shielding gas has to be turned on prior to the initiation of the weld process by
using the GasOn instruction, and the gas has to be turned off when not needed by
using the GasOff instruction. It is also the programmers responsibility to ensure that
enough shielding gas is provided to protect the weld process.

Example
HingeWeld 2\T1:=Td3\T4:=Td2
Hinge number 2 is welded using torch number 1 with tacking data 3, and torch
number 4 with tacking data 2 on the active set of torches.

Arguments
HingeWeld Hinge

[\T1] [\T2] [\T3] [\T4]

Hinge
Data type : num
Hinge number to weld, i.e 1,2,3, or 4. ( Hinge number is used to validate
that the weld(s) to be made are ordered by the PLC. )
\T1...\T4
Data type : tackdata
The torch (es) and the tack data ( i.e weld schedule) to be used.

Program execution
The HingeWeld instruction has the following internal sequences:
Normal Process Cycle
Verify that the weld(s) requested also are requested by the PLC.
Weld the requested welds.

Version 1.5

Page 1(2)

Copyright (c) 1996 - ABB Flexible Automation Inc

HingeWeld

GMT800
Wait until all weld complete(s) are issued from the appropriate weld
controller(s).

Timing diagram
Not applicable robot motion cannot occur during execution of this instruction.

Instruction by instruction execution


Forward
Normal program execution
Backward
No operation

Limitations
Available only if the IRB is configured for hinge welding.

Related information
Described in :
Turn shielding gas on

Instructions - GasFlowOn

Turn shielding gas off

Instructions - GasFlowOff

Page 2(2)

Version 1.5

Copyright (c) 1996 - ABB Flexible Automation Inc

GMT800

HingeWeld - tackdata

tackdata

Tack data type

The data tackdata defines the parameters used to control the plunge welding process.

Description
tackdata is used in the HingeWeld instruction and contains data which controls the
welding parameters in the specific tack

Components
Schedule
The schedule number to be used by the weld controller

Data type : num

SpareA
For future use.

Data type : num

SpareB
For future use.

Data type : num

SpareC
For future use.

Data type : bool

SpareD
For future use.

Data type : bool

Predefined data
The following data is predefined, and can easily be modified to suit the actual
application ( use DATA:TYPES tackdata ) :
PERS tackdata Td1 := [0,0,0,FALSE,FALSE]
PERS tackdata Td2 := [1,0,0,FALSE,FALSE]
PERS tackdata Td3 := [2,0,0,FALSE,FALSE]
PERS tackdata Td4 := [3,0,0,FALSE,FALSE]
PERS tackdata Td5 := [4,0,0,FALSE,FALSE]
The default data is stored in module PHINGDAT.MOD. If additional instances of
tackdata are created they should be stored in this module.

Version 1.1

Page 1(2)

Copyright (c) 1996 - ABB Flexible Automation Inc

HingeWeld - tackdata

Page 2(2)

GMT800

Version 1.1

Copyright (c) 1996 - ABB Flexible Automation Inc

GMT800

MoveJ

MoveJ

Moves the robot by joint movement


MoveJ is used to move the robot quickly from one point to another when that
movement does not have to be in a straight line.

Examples
MoveJ p1, vmax, z30, toolgun1
The tool center point (TCP) of the tool, toolgun1, is moved along a non-linear path
to the position, p1, with speed data vmax and zone data z30.
MoveJ *, vmax \T:=5, fine, toolgun1
The TCP of the tool, toolgun1, is moved along a non-linear path to a stop point
stored in the instruction (marked with an *). The entire movement takes 5 seconds.

Arguments
MoveJ [ \Conc ] ToPoint Speed [ \V ] | [ \T ] Zone [ \Z ] Tool
[ \WObj ]
[ \Conc ]
(Concurrent)
Data type: switch
Subsequent logical instructions are executed while the robot is moving. The
argument is used to shorten the cycle time when, for example,
communicating with external equipment, if synchronization is not required.
Using the argument \Conc, the number of movement instructions in
succession is limited to 5. In a program section that includes StorePathRestoPath, movement instructions with the argument \Conc are not
permitted.
If this argument is omitted and the ToPoint is not a stop point,( i.e. fine), the
subsequent instruction logical instruction are executed some time before
reaching the programmed zone (for further description see RAPID Reference
manual chapter 3.2 : Sequential program execution at fly by points).

Version 1.2

Page 1(4)

Copyright (c) 1996 - ABB Flexible Automation Inc

MoveJ

GMT800

ToPoint
Data type : robtarget
The destination point of the robot and external axes. It is defined as a named
position or stored directly in the instruction (marked with an * in the
instruction).
Speed
Data type : speeddata
The speed data that applies to movements. Speed data defines the velocity
of the tool center point, the tool reorientation and external axes.
[ \V ]

(Velocity)
Data type : num
This argument is used to specify the velocity of the TCP in mm/s directly in
the instruction. It is then substituted for the corresponding velocity
specified in the speed data.

[ \T ]

(Time)
Data type : num
This argument is used to specify the total time in seconds during which the
robot moves. It is then substituted for the corresponding speed data.

Zone

Data type : zonedata


Zone data for the movement. Zone data describes the size of the generated
corner path.

[ \Z ]

(Zone)
Data type : num
This argument is used to specify the position accuracy of the robot TCP
directly in the instruction. The length of the corner path is given in mm,
which is substituted for the corresponding zone specified in the zone data.

Tool

Date type : tooldata


The tool in use when the robot moves. The tool center point is the point
moved to the specified destination point.

[ \WObj ]
(Work Object)
Data type : wobjdata
The work object (coordinate system) to which the robot position in the
instruction is related.
This argument can be omitted, and if it is, the position is related to the world
coordinate system. If, on the other hand, a stationary TCP or coordinated
external axes are used, this argument must be specified.

Page 2(4)

Version 1.2

Copyright (c) 1996 - ABB Flexible Automation Inc

GMT800

MoveJ

Program execution
The tool center point is moved to the destination point with interpolation of the
axis angles. This means that each axis is moved with constant axis velocity and
that all axes reach the destination point at the same time, which results in a nonlinear path.
Generally speaking, the TCP is moved at the approximate programmed velocity
(regardless of whether or not the external axes are coordinated). The tool is
reoriented and the external axes are moved at the same time as the TCP moves. If
the programmed velocity for reorientation, or for the external axes, cannot be
attained, the velocity of the TCP will be reduced.
A corner path is usually generated when movement is transferred to the next
section of the path. If a stop point is specified in the zone data, program
execution only continues when the robot and external axes have reached the
appropriate position.

Example
MoveJ *, v2000\V:=2200, z40 \Z:=45, toolgun1
The TCP of the tool, toolgun1, is moved along a non-linear path to a position stored
in the instruction. The movement is carried out with data set to v2000 and z40;
the velocity and zone size of the TCP are 2200 mm/s and 45 mm respectively.
MoveJ \Conc, *, v2000, z40, toolgun1
The TCP of the tool, toolgun1, is moved along a non-linear path to a position stored
in the instruction. Subsequent logical instructions are executed while the robot
moves.
MoveJ start, v2000, z40, toolgun1\WObj:=fixture
The TCP of the tool, toolgun1, is moved along a non-linear path to a position, start.
This position is specified in the object coordinate system for fixture.

Version 1.2

Page 3(4)

Copyright (c) 1996 - ABB Flexible Automation Inc

MoveJ

GMT800

Related information
Described in :
Other positioning instructions

RAPID Reference manual Summary - Motion

Definition of velocity

Data Types - speeddata

Definition of zone data

Data Types - zonedata

Definition of tools

Data Types - tooldata

Definition of work objects

Data Types - wobjdata

Motion in general

Motion and I/O Principles

Coordinate systems

Motion and I/O Principles Coordinate Systems

Concurrent program execution

Motion and I/O Principles Synchronisation

Page 4(4)

Version 1.2

Copyright (c) 1996 - ABB Flexible Automation Inc

GMT800

MoveL

MoveL

Moves the robot linearly

MoveL is used to move the tool centre point (TCP) linearly to a given destination.
When the TCP is to remain stationary, this instruction can also be used to reorient the
tool.

Example
MoveL p1, v1000, z30, toolgun1
The TCP of the tool, toolgun1, is moved linearly to the position p1, with speed
data v1000 and zone data z30.
MoveL *, v1000\T:=5, fine, toolgun1
The TCP of the tool, toolgun1, is moved linearly to a fine point stored in the
instruction (marked with an *). The complete movement takes 5 seconds.

Arguments
MoveL [ \Conc ] ToPoint Speed [ \V ] | [ \T ] Zone [ \Z ] Tool
[ \WObj ]

[ \Conc ]
(Concurrent)
Data type: switch
Subsequent logical instructions are executed while the robot is moving. The
argument is used to shorten the cycle time when, for example, communicating
with external equipment, if synchronization is not required.
Using the argument \Conc, the number of movement instructions in succession is
limited to 5. In a program section that includes StorePath-RestoPath, movement
instructions with the argument \Conc are not permitted.
If this argument is omitted and the ToPoint is not a stop point,( i.e. fine), the
subsequent instruction logical instruction are executed some time before
reaching the programmed zone (for further description see RAPID Reference
manual chapter 3.2 : Sequential program execution at fly by points).

Version 1.2

Page 1(4)

Copyright (c) 1996 - ABB Flexible Automation Inc

MoveL

GMT800
ToPoint
Data type : robtarget
The destination point of the robot and external axes. It is defined as a named
position or stored directly in the instruction (marked with an * in the instruction).
Speed
Data type : speeddata
The speed data that applies to movements. Speed data defines the velocity
of the tool center point, the tool reorientation and external axes.
[ \V ]

(Velocity)
Data type : num
This argument is used to specify the velocity of the TCP in mm/s directly in
the instruction. It is then substituted for the corresponding velocity
specified in the speed data.

[ \T ]

(Time)
Data type : num
This argument is used to specify the total time in seconds during which the
robot moves. It is then substituted for the corresponding speed data.

Zone

Data type : zonedata


Zone data for the movement. Zone data describes the size of the generated
corner path.

[ \Z ]

(Zone)
Data type : num
This argument is used to specify the position accuracy of the robot TCP
directly in the instruction. The length of the corner path is given in mm,
which is substituted for the corresponding zone specified in the zone data.

Tool

Date type : tooldata


The tool in use when the robot moves. The tool center point is the point
moved to the specified destination point.

[ \WObj ]
(Work Object)
Data type : wobjdata
The work object (coordinate system) to which the robot position in the
instruction is related.
This argument can be omitted, and if it is, the position is related to the world
coordinate system. If, on the other hand, a stationary tool or coordinated
external axes are used, this argument must be specified in order to perform a
linear movement relative to the work object.

Program execution
The robot and external units are moved to the destination position as follows:

Page 2(4)

Version 1.2

Copyright (c) 1996 - ABB Flexible Automation Inc

GMT800

MoveL
The TCP of the tool is moved linearly at constant programmed velocity.
The tool is reoriented at equal intervals along the path.

Uncoordinated external axes are executed at a constant velocity in order for them to
arrive at the destination point at the same time as the robot axes.
If it is not possible to attain the programmed velocity for the reorientation or for the
external axes, the velocity of the TCP will be reduced.
A corner path is usually generated when movement is transferred to the next section of
a path. If a stop point is specified in the zone data, program execution only continues
when the robot and external axes have reached the appropriate position.

Example
MoveL *, v2000 \V:=2200, z40 \Z:=45, toolgun1
The TCP of the tool, toolgun1, is moved linearly to a position stored in the
instruction. The movement is carried out with data set to v2000 and z40; the
velocity and zone size of the TCP are 2200 mm/s and 45 mm respectively.
MoveL \Conc, *, v2000, z40, toolgun1
The TCP of the tool, toolgun1, is moved linearly to a position stored in the
instruction. Subsequent logical instructions are executed while the robot moves.
MoveL start, v2000, z40, toolgun1\Wobj:=fixture
The TCP of the tool, toolgun1, is moved linearly to a position, start. This position
is specified in the object coordinate system for fixture.

Version 1.2

Page 3(4)

Copyright (c) 1996 - ABB Flexible Automation Inc

MoveL

GMT800

Related information
Described in :
Other positioning instructions

RAPID Reference manual Summary - Motion

Definition of velocity

Data Types - speeddata

Definition of zone data

Data Types - zonedata

Definition of tools

Data Types - tooldata

Definition of work objects

Data Types - wobjdata

Motion in general

Motion and I/O Principles

Coordinate systems

Motion and I/O Principles Coordinate Systems

Concurrent program execution

Page 4(4)

Motion and I/O Principles Synchronisation

Version 1.2

Copyright (c) 1996 - ABB Flexible Automation Inc

GMT800

OpenRetract

OpenRetract

Open the Gun Retract Stroke

OpenRetract orders the gun retract to open.

Example
OpenRetract 4
OpenRetract orders gun number 4 to open its retract stroke.

Arguments
OpenRetract GunNumber

GunNumber
Identification of the gun to retract (gun 1-4).

Data type : num

Program execution
The OpenRetract instruction has the following internal sequence:
Order the retract to open

Timing diagram
Notes:
Time

Tophat tuning name

Range / units

Default time

T1

RetractOpnTime

0-8388608 seconds

0.8 seconds

Version 1.0

Page 1(2)

Copyright (c) 1996 - ABB Flexible Automation Inc

OpenRetract

GMT800

Close retract is
reset
Open retract is set
T1

Retract open
feedback
Next instruction
begins

Instruction by instruction execution


Forward
See program execution.
Backward
No operation.

Limitations
Available only if the IRB is configured for spot welding.

Related information
Described in :
CloseRetract

Instructions - CloseRetract

Open retract with welding

Instructions - Spot

Page 2(2)

Version 1.0

Copyright (c) 1996 - ABB Flexible Automation Inc

GMT800

PickUpTool

PickUpTool

Pickup a tool from a Tool Changer

PickUpTool requests a tool to be picked up from a tool changer. The robot must be
in the Home position when using this instruction. The path to and from the tool
changer has to be defined in the Process routine. See section Process Routines in
Chapter 3 : Routines.

Example
PickUpTool 1
A request to pickup the tool in station 1 is made.

Arguments
PickUpTool

StationNumber

StationNumber
The station number (1 or 2).

Data type : num

Program execution
The PickUpTool instruction has the following internal sequences:
Verify that the IRB is in the Home position
Verify that there is no active tool
Verify that there is a tool present in the requested tool station
Send open cover signal
Call routine HomeToTCxDropOff, where x is the requested station, to
move into the station
Send close latches signal
Call routine TCxDropOffToHome routine, where x is the requested station,
to return to the Home position
Send close cover signal

Version 1.0

Page 1(4)

Copyright (c) 1996 - ABB Flexible Automation Inc.

PickUpTool

GMT800

Timing diagram
Notes:
Time
T1
T2
T3

Path
segment
PS1
PS2

Tophat tuning
name
CoverOpenTime
CoverCloseTime
LatchCloseTime

Range / units

Default time

0-8388608 seconds
0-8388608 seconds
0-8388608 seconds

2.0 seconds
2.0 seconds
2.0 seconds

Path description
Home to Pickup
Pickup to Home

Example: The timing for a tool pickup sequence.

Close Cover
T2

Open Cover
T1

Covers opened
feedback
Robot Motion
PS1

PS2

Open Latch

Page 2(4)

Version 1.0

Copyright (c) 1996 - ABB Flexible Automation Inc.

GMT800

PickUpTool

Close Latch
T3

Latch opened
feedback
Tool present
feedback

Instruction by instruction execution


Forward
Normal program execution.
Backward
No operation

Limitations
Available only when the IRB has been configured for using tool changer.

Related information
Described in :
Drop off tool at tool changer

Instructions - DropOffTool

Exchange tool

Instructions - ExchangeTool

Routine HomeToTCxDropOff, etc.

Routines - Process routines

Version 1.0

Page 3(4)

Copyright (c) 1996 - ABB Flexible Automation Inc.

PickUpTool

GMT800

Page 4(4)

Version 1.0

Copyright (c) 1996 - ABB Flexible Automation Inc.

GMT800

PrepareToGrip

PrepareToGrip

Prepare To Grip a Part with IRB

PrepareToGrip checks conditions to be met before picking up a part with the IRB.

Example 1
PrepareToGrip\V1
Verification that valid pick-up conditions exist for clamp(s) or part present
signal(s) connected to valve 1.
PrepareToGrip\V1\V3\V5
Verification that valid pick-up conditions exist for clamp(s) or part present
signal(s) connected to valve 1, 3 and 5.

Arguments
PrepareToGrip [\V1] [\V2] [\V3] [\V4] [\V5]
\V1 ... \V5
The valve(s) to be used.

Data type : switch

Program execution
The PrepareToGrip instruction has the following internal sequence :
For valve(s) controlling clamp(s), check that clamps(s) are opened and that
clamps(s) are not closed.
Check for no part present on the specified valve(s).

Timing diagram
Not applicable robot motion cannot occur during execution of this instruction.

Version 1.5

Page 1(2)

Copyright (c) 1996 - ABB Flexible Automation Inc.

PrepareToGrip

GMT800

Instruction by instruction execution


Forward
Normal program execution
Backward
No operation

Example 2
The PrepareToGrip instruction is used together with the GripPart instruction
to check that clamps are open and not closed and no part is held before
gripping a part.
MoveL Above_PickUp, v100, z1, toolgrip1
PrepareToGrip\V2\V5
MoveL PickUp, v50, fine, toolgrip1
GripPart\V2\V5
MoveL Away, v50, Z10, toolgrip1

Limitations
Available only if the IRB is configured for material handling.

Related information
Described in :
Release part held by IRB

Instructions - ReleasePart

Grip part held by IRB

Instructions - GripPart

Verify release of part

Instructions - VerifyRelease

Page 2(2)

Version 1.5

Copyright (c) 1996 - ABB Flexible Automation Inc

GMT800

ReleasePart

ReleasePart

Release part with IRB

ReleasePart releases a part with clamps and/or vacuum cup(s) held by the IRB. The
IRB should be in the drop-off position when this instruction is used.

Example
ReleasePart\V1
Open clamps and / or turns off vacuum to vacuum cups connected to valve 1.
RelesePart\V1\V3\V5
Open clamps and / or turns off vacuum to vacuum cups connected to valve
1, 3, and 5.

Arguments
ReleasePart [\V1] [\V2] [\V3] [\V4] [\V5] [\NotifyPLC]
\V1 ... \V5
The valve(s) to be used.

Data type : switch

\NotifyPLC
Data type : switch
The PLC is informed when the instruction is executed.

Program execution
The ReleasePart instruction has the following internal sequence ( only applicable
steps are performed ):
Turn off part present monitoring
Deactivate clamp close output(s)
Activate clamp open output(s)
Deactivate vacuum output(s)
Pulse vacuum blow off output(s)
Wait until Release motion delay time has expired
Verify that clamp(s) are open
Verify that clamp(s) are not closed
If \NotifyPLC is used the MachineClear5 RIO signal will be set

Version 1.5

Page 1(4)

Copyright (c) 1996 - ABB Flexible Automation Inc.

ReleasePart

GMT800

Timing diagram
Notes:
The T2 time applies if one or more of the following conditions applies:
1. A valve supplied with the ReleasePart instruction is configured as vacuum.
2. A valve supplied with the ReleasePart instruction is configured as clamp and
feedback is not configured.
If multiple valves are supplied with the ReleasePart instruction, the highest instance of
that tuning time is used.
Time

Tophat tuning name

Range / units

Default time

T1
T2

Vacuum Blow Off Time


Release Motion Delay

0.1 10 seconds
0.1 10 seconds

3.0 seconds
1.0 seconds

1. Turn off part present monitoring


2. Deactivate clamp close output(s)
3. Activate clamp open output(s)
4. Deactivate vacuum output(s)
Tunable time

T1

Pulse vacuum blow off output(s)

Tunable time

T2

Wait until Release motion delay time


has expired

1. Verify that clamp(s) are open


2. Verify that clamp(s) are not closed
3. If \NotifyPLC is used the
MachineClear5 RIO signal will be
set
Return control back to calling program
(i.e. - Robot motion can begin at this
point)

Page 2(4)

Version 1.5

Copyright (c) 1996 - ABB Flexible Automation Inc

GMT800

ReleasePart

Instruction by instruction execution


Forward
Normal program execution
Backward
Not allowed

Limitations
Available only if the IRB is configured for material handling.

Related information
Described in :
Prepare to grip a part with IRB

Instructions - PrepareToGrip

Grip part with IRB

Instructions - GripPart

Release part held by IRB gripper

Instructions - ReleasePart

Verify that a part is released by IRB gripper

Instructions - VerifyRelease

Version 1.5

Page 3(4)

Copyright (c) 1996 - ABB Flexible Automation Inc.

ReleasePart

GMT800

Page 4(4)

Version 1.5

Copyright (c) 1996 - ABB Flexible Automation Inc

GMT800

RepositionTool

RepositionTool

Reposition Tool Request

RepositionTool request tooling to be repositioned before IRB proceeds.


Even if the repositioning of the tool is already done by the PLC, this instruction can
be used to verify that the tooling is repositioned before proceeding.

Example
RepositionTool 2
RepositionTool 2 indicate to the PLC that the IRB requires a specific tooling
repositioned, and waits for acknowledgment from the PLC.

Arguments
RepositionTool Tooling
Tooling
The tooling to reposition (i.e. tooling 1-2).

Data type : num

Program execution
The RepositionTool instruction has the following internal sequence:
Indicate to the PLC that the IRB requires a specific tooling repositioned.
Display an operator status message.
Wait for PLC acknowledgment to proceed.
Clear the request bit to the PLC.
Display an operator status message.

Version 1.1

Page 1(2)

Copyright (c) 1996 - ABB Flexible Automation Inc

RepositionTool

GMT800

Instruction by instruction execution


Forward
Normal program execution
Backward
No operation.

Related information
Described in :
Work in progress status

Instructions - WorkInProgress

Work clear status

Instructions - WorkComplete

Reposition tool Request

Instructions - Reposition tool

Interference Zone Entry Request

Instructions - EnterZone

Clear of Interference Zone Status

Instructions - ClearOfZone

Machine Not Clear Status

Instructions - EnteringMachine

Machine Clear Status

Instructions - ClearOfMachine

Machine Clearance Request

Instructions - WaitForMachClr

Page 2(2)

Version 1.1

Copyright (c) 1996 - ABB Flexible Automation Inc

GMT800

ReturnGun

ReturnGun

Reposition the Gun to Returned Position

ReturnGun is used with a pivot mechanism to order a spot welding gun to the
returned position.

Example
ReturnGun 3
ReturnGun order gun number 3 to the return position.

Arguments
ReturnGun GunNumber
GunNumber
The gun to return, i.e. gun 1-4

Data type : num

Program execution
The ReturnGun instruction has the following internal sequence:
Order the gun to the return position

Timing diagram
Notes:
Time

Tophat tuning name

Range / units

Default time

T1

GunPivotTime

0-8388608 seconds

1.0 seconds

Advance gun pivot


is reset
Version 1.0

Page 1(2)

Copyright (c) 1996 - ABB Flexible Automation Inc

ReturnGun

GMT800

Return gun pivot


is set
T1

Gun pivot advanced


feedback
Gun pivot returned
feedback
Next instruction
begins

Instruction by instruction execution


Forward
Normal program execution.
Backward
No operation

Limitations
Only to be used for pedestal spot welding guns with a pivot mechanism.

Related information
Described in :
Reposition the gun to advanced position

Instructions - AdvanceGun

Page 2(2)

Version 1.0

Copyright (c) 1996 - ABB Flexible Automation Inc

GMT800

Spot

Spot

Spot Welding with motion


Spot is used in spot welding to control the robot motion, gun closure / opening and
the welding process. Spot moves the TCP linearly to the programmed position.

Example
Spot a2101, v1000\G1:=S1, toolgun1
Spot a2102, v1000\ClsRet\G3:=S6, toolgun1
Spot is the only instruction needed to implement a spot welding sequence.
The TCP for toolgun1is moved on a linear path to the position a2101 with the
speed given in v1000.
The weld position is always a stop position. The gun, and optionally the retract
stroke, can start closing at the anticipate time prior to arrival at the
programmed position. The welding is done with Gun 1 using S1 weld data.
By default the robot executes subsequent logical instructions while the robot is
moving or waiting for a process ready signal. This might be inhibited by the
switch \UntilDone (see below).

Arguments
Spot ToPoint Speed [\ClsRet] [\G1] [\G2] [\G3] [\G4]
[\UntilDone] [\NoAntic] [\OpnRet] Tool [ WObj]
ToPoint
Data type : robtarget
The destination point of the robot and external axes.
Speed
Data type : speeddata
The speed that applies to the movement to the destination point. Defines
the velocity for the tool center point, tool reorientation, and external axes.
[\ClsRet]
( Close Retract )
Data type : switch
The optional argument \ ClsRet closes the retract stoke of the specified
gun(s) before the weld. If the argument is omitted and the retract is open
the robot will stop and a Major fault will be issued.

Version 1.1

Page 1(6)

Copyright (c) 1996 - ABB Flexible Automation Inc

Spot

GMT800
\G1 ... \G4
Data type : spottype
The gun(s) to be used and the characteristics specific to the spot to be
welded.
[\UntilDone]
( Until done )
Data type : switch
The optional argument \UntilDone prevents the program from continuing
execution until the spot welding process is completed. It should be used
when the next instruction is a logical instruction that depends on the
completion of the spot weld process.
[\NoAnticipate]
( No Anticipate )
Data type : switch
The optional argument \NoAntic prevents the anticipate time(s) defined in
the equipment data from being used.
[\OpnRet]
( Open Retract )
Data type : switch
The optional argument \ OpenRetract opens the specified gun(s) to there
Retract stroke (large gap) after the weld. If the argument is omitted the
gun(s) will open to there work stroke (small gap) after the weld.
Tool

Data type : tooldata


The tool in use, including tool center point.

[\Wobj]
( Work Object )
Date type : wobjdata
If a pedestal tool or coordinated external axes are used, this optional
argument must be specified in order to perform a linear movement
relative to the work object.

Program execution
The Spot instruction has the following internal sequences:
Normal Process Cycle, NoWeld & DryCycle Process Cycle
Receive ready to weld signal
Start motion to position
Send weld schedule signal
Send weld pressure signal
Send close retract signal (if applicable)
Send gun close signal
Send initiate weld signal
Page 2(6)

Version 1.1

Copyright (c) 1996 - ABB Flexible Automation Inc

GMT800

Spot
Wait for weld complete signal
Send gun open signal
Send open retract signal (if applicable)

NoStroke Process Cycle


Receive ready to weld signal
Start motion to position
Send close retract signal (if applicable)
Send open retract signal (if applicable)

Timing diagram

Notes:
Anticipate time always applies to the spot instruction except when the \NoAnticipate
switch is on the spot instruction.
Time

Tophat tuning name

Range / units

Default time

T1
T2
T3
T4
T5
T6

WeldAncptRetrct
WeldAnticipate
RetractClsTime
GunClsTime
RetractOpnTime
GunOpnTime

0-0.5 * seconds
0-0.5* seconds
0-8388608 seconds
0-8388608 seconds
0-8388608 seconds
0-8388608 seconds

0.2 seconds
0.2 seconds
0.8 seconds
0.0 seconds
1.0 seconds
0.0 seconds

Weld anticipation has an upper limit that corresponds to the robots braking time. This
time will differ among robot models due to the range in payload and speed capabilities.

Example of a normal timing sequence for a spot weld interface with a weld gun that has
a retract stroke

Version 1.1

Page 3(6)

Copyright (c) 1996 - ABB Flexible Automation Inc

Spot

GMT800

Robot motion

Weld schedule
is set
Weld pressure
is set
T1

Close retract is
set
T3

Retract open
feedback
Close gun is
set
T4

T6

Start weld is
set
Weld complete
received
T5

Open retract is
set

Program stop and start


Stop during the IRB motion and restart
The robot stops on the path. If the signal to close the gun has already been sent
the gun reopens at the stop.

Page 4(6)

Version 1.1

Copyright (c) 1996 - ABB Flexible Automation Inc

GMT800

Spot

On restart, the robot continues towards the programmed position, closes the
gun when the robot is in position, and performs the normal weld sequence.
Stop during welding and restart
When the welding is finished the gun is opened and the weld is validated. The
program pointer is pointing at the next instruction.
On restart, the robot continues towards the next programmed position.

Emergency stop and start


The mechanical brakes are applied immediately and the robot might deviate
from its path.
On re-start the robot moves slowly back to the programmed path.

Instruction by instruction execution


Forward
The IRB motion and the welding is performed
Backward
The work or retract stroke is set to original state depending on the
\OpenRetract and \CloseRetract switches.
The motion is performed backwards. No welding is performed.

ModPos of Spot instructions


To gain cycle time in Continuous Execution Mode the controller are by default
looking ahead to the next motion instruction. This makes it possible to perform the
next instruction immediately on a release order. It also mean that if the program
execution is stopped during welding, the program pointer is normally moved to the
next Spot or MoveX instruction because of this.
When positions are to be modified using the ModPos function, it is recommended to
execute the program in step-by step mode. In this mode the program pointer is
always in agreement with the robot position.

Version 1.1

Page 5(6)

Copyright (c) 1996 - ABB Flexible Automation Inc

Spot

GMT800
If a strictly sequential execution is desired also in the continuous mode the
/UntilDone switch need to be set on the Spot instructions.

Power failure handling


At system restart after power failure:
All spot weld output signals are set to the prior status, as well as gun close and
weld start signals
At program start after power failure
The robot returns to the path, and the program execution, which was interrupted,
is continued.
If a power failure occurred when a weld process was active, the current spot is
automatically re-welded.

Limitations
Available only if the IRB is configured for spot welding

Related information
Described in :
Open Retract

Instructions - OpenRetract

Close Retract

Instructions - CloseRetract

Advance Gun

Instructions - AdvanceGun

Return Gun

Instructions - ReturnGun

Exchanging of tooling held by IRB

Instructions - ExchangeTool

Pickup tool from tool changer

Instructions - PickUpTool

Drop off a tool held by IRB

Instructions - DropOffTool

Page 6(6)

Version 1.1

Copyright (c) 1996 - ABB Flexible Automation Inc

GMT800

spottype

Spot - spottype

Spot data type

The data spottype defines the parameters used to control the weld timer and weld gun
for welding in a certain spot.

Description
spottype is used in the spot instruction and contains data which controls the welding
parameters in the specific spot.

Components
Schedule
The schedule number to be used by the weld timer

Data type : num

LowPressure
Defines if low gun pressure is to be used.

Data type : bool

SpareA
For future use.

Data type : bool

SpareB
For future use.

Data type : bool

SpareC
For future use.

Data type : num

SpareD
For future use.

Data type : num

Version 1.0

Page 1(2)

Copyright (c) 1996 - ABB Flexible Automation Inc

Spot - spottype

GMT800

Predefined data
The following data is predefined, and can easily be modified to suite the actual
application ( use DATA:TYPES spottype ):
PERS spottype S1 := [1, FALSE, FALSE, FALSE, 0, 0]
PERS spottype S2 := [2, FALSE, FALSE, FALSE, 0, 0]
PERS spottype S3 := [3, FALSE, FALSE, FALSE, 0, 0]
PERS spottype S4 := [4, FALSE, FALSE, FALSE, 0, 0]
PERS spottype S5 := [5, FALSE, FALSE, FALSE, 0, 0]
When the spot instruction is executed with the S1 data :
- Weld schedule 1 is selected
- High gun pressure is used
When the spot instruction is executed with the S2 data :
- Weld schedule 2 is selected
- High gun pressure is used
The default data is stored in module PSPOTDAT.MOD. Additional spottype data
created should be stored in this module.

Page 2(2)

Version 1.0

Copyright (c) 1996 - ABB Flexible Automation Inc

GMT800

Stud

Stud

Stud Welding with motion


Stud is used in stud welding to control the robot motion, copper backup (Ped only)
and the welding process.

Example
Stud p10, vmax\H1:=Sd1, toolstud1
Stud p20, vmax\H1:=Sd1\H2:=Sd3, toolstud1
The TCP for toolstud1 is moved on a linear path to the weld position p10 with
the speed given in vmax. The weld position is always a stop position.
The weld cycle starts at the anticipate time prior to arrival at the weld position
(pedestal stud only). In the first example the welding is done with head 1 using
sd1 stud data. In the second example head 1 with sd1 stud data and head 2 with
stud data sd3 are used.
By default the robot executes subsequent logical instructions while the robot is
moving or waiting for a process ready signal. This will be inhibited by the
switch \UntilDone (see below).

Arguments
Stud ToPoint Speed [\H1] [\H2] [\UntilDone] [\NoAntic] Tool
[\WObj]
ToPoint
Data type : robtarget
The destination point of the robot and external axes.
Speed
Data type : speeddata
The speed that applies to the movement to the ToPoint. Defines the
velocity for the tool center point, tool reorientation, and external axes.
\H1 , \H2
Data type : studdata
The head(s) to be used and the stud data for the stud to be welded.
[\UntilDone]

Until Done

Version 1.5

Data type : switch

Page 1(4)

Copyright (c) 1996 - ABB Flexible Automation Inc

Stud

GMT800
The optional argument \UntilDone prevents the program from continuing
execution until the stud welding process is completed. It should be used
when the next instruction is a logical instruction that depends on the
completion of the stud weld process.
[\NoAnticipate]
No Anticipate
Data type : switch
The optional argument \NoAntic prevents the anticipate time, defined in
the stud data, from being used.
Tool

Data type : tooldata


The tool in use, including tool center point.

[\Wobj]
Work Object
Date type : wobjdata
If a pedestal tool or coordinated external axes are used, this optional
argument must be specified in order to perform a linear movement
relative to the work object.

Program execution
The Stud instruction has the following internal sequences:
Normal Process Cycle
Start motion to position
Receive armed status signal
Advance copper backup ( Pedestal only )
For each active head the following will happen :
Send weld schedule signal
Send initiate signal(s)
Wait for weld complete signal(s)
Receive head fault signal(s)
Retract copper retract (Pedestal only)

Timing diagram
Notes:
Page 2(4)

Version 1.5

Copyright (c) 1996 - ABB Flexible Automation Inc

GMT800

Stud

Anticipate time only applies to pedestal stud and the absence of the \NoAnticipate switch
on the stud instruction.
Time

Tophat tuning name

Range / units

Default time

T1

Anticipate time

0.1 10 seconds

0.2 seconds

Robot motion to process position

Tunable time

T1

Advance copper backup (pedestal only)

1. Send weld schedule to weld control


2. Verify copper backup is advanced
(pedestal only)
3. Initiate weld process

Wait for weld complete signal

Retract copper backup (pedestal only)

1. Generate out of tolerance if


necessary
2. Wait for head to retract
3. Wait for copper backup to retract
(pedestal only)

Instruction by instruction execution


Forwards
Normal program execution.

Version 1.5

Page 3(4)

Copyright (c) 1996 - ABB Flexible Automation Inc

Stud

GMT800
Backwards
The motion is performed backwards, no process is performed.

Limitations
Available only if the IRB is configured for stud welding.

Page 4(4)

Version 1.5

Copyright (c) 1996 - ABB Flexible Automation Inc

GMT800

Stud - studdata

studdata

Stud data type

The data studdata defines the parameters used to control the stud welding process.

Description
Studdata is used in the stud weld instruction and contains data which controls the
welding parameters.

Components
ProgramNum
The schedule number to be used by the weld controller

Data type : num

Spare1
For future use.

Data type : num

Spare2
For future use.

Data type : num

Spare3
For future use.

Data type : bool

Spare4
For future use.

Data type : bool

Predefined data
The following data is predefined, and can easily be modified to suit the actual
application ( use DATA:TYPES studdata ) :
PERS studdata Sd1 := [1,1,1,FALSE,FALSE]
PERS studdata Sd2 := [2,1,1,FALSE,FALSE]
PERS studdata Sd3 := [3,1,1,FALSE,FALSE]
PERS studdata Sd4 := [4,1,1,FALSE,FALSE]
PERS studdata Sd5 := [5,1,1,FALSE,FALSE]
The default data is stored in module PSTUDDAT.MOD. If additional instances of
studdata are created they should be stored in this module.

Version 1.3

Page 1(2)

Copyright (c) 1996 - ABB Flexible Automation Inc

Stud - studdata

GMT800

Page 2(2)

Version 1.3

Copyright (c) 1996 - ABB Flexible Automation Inc

GMT800

VerifyRelease

VerifyRelease

Verify release of part

VerifyRelease verifies that no part is held by the IRB gripper.

Example
VerifyRelease\V1
Verification that the part controlled by valve 1 has been dropped off
successfully.
VerifyRelease\V1\V3\V5
Verification that the part controlled by valves 1, 3, and 5 has been dropped off
successfully.

Arguments
VerifyRelease [\V1] [\V2] [\V3] [\V4] [\V5]
\V1 ... \V5
The valve(s) to be used.

Data type : switch

Program execution
The VerifyRelease instruction has the following internal sequence:
Check for no part present on the specified valve(s)

Timing diagram
Not applicable robot motion cannot occur during execution of this instruction.

Version 1.5

Page 1(2)

Copyright (c) 1996 - ABB Flexible Automation Inc.

VerifyRelease

GMT800

Instruction by instruction execution


Forward
Normal program execution
Backward
No operation

Example
The VerifyRelease instruction is used together with the ReleasePart instruction
to verify that a part has been released successfully:
MoveL Drop_off, v100, z1, toolgrip1
ReleasePart\V2\V5
MoveL Clear_of, v50, fine, toolgrip1
VerifyRelease\V2\V5
MoveL Away, v50, Z10, toolgrip1

Note: The gripper has to be moved away from the drop off position, in order to
lose the part present signal, before the VerifyRelease instruction can be
used.

Limitations
Available only when the IRB is configured for material handling.

Related information
Described in :
Release part held by IRB

Instructions - ReleasePart

Grip part held by IRB

Instructions - GripPart

Check conditions before gripping part with IRB

Instructions - PrepareToGrip

Page 2(2)

Version 1.5

Copyright (c) 1996 - ABB Flexible Automation Inc

GMT800

WaitForMachClr

WaitForMachClr

Machine Clearance Request

WaitForMachClr is used whenever the IRB needs to wait for a machine clearance
from the PLC before it proceeds.

Example
WaitForMachClr 5
WaitForMachClr 5 indicate to the PLC that the IRB requires a machine
clearance before proceeding.

Arguments
WaitForMachClr MachineNo
MachineNo
Data type : num
The machine the IRB is entering into (i.e Machine 1-5).

Program execution
The WaitForMachClr instruction has the following internal sequence:
Check the machine clearance status
Display an operator message.
Wait for PLC machine clearance response
Display an operator message

Version 1.0

Page 1(2)

Copyright (c) 1996 - ABB Flexible Automation Inc

WaitForMachClr

GMT800

Instruction by instruction execution


Forward
Normal program execution
Backward
No operation

Related information
Described in :
Work clear status

Instructions - WorkComplete

Reposition tool Request

Instructions - RepositionTool

Interference Zone Entry Request

Instructions - EnterZone

Clear of Interference Zone Status

Instructions - ClearOfZone

Machine Not Clear Status

Instructions - EnteringMachine

Machine Clear Status

Instructions - ClearOfMachine

Page 2(2)

Version 1.0

Copyright (c) 1996 - ABB Flexible Automation Inc

GMT800

WorkComplete

WorkComplete

Work Clear Status

WorkComplete reports IRB clear status, with respect to the work being completed.
The command may be used when the IRB is clear enough from a fixture so that it can
start unclamping prior to the IRB being clear of the transfer.

Example
WorkComplete
WorkComplete indicates to the PLC that the IRB is clear of the transfer.

Program execution
The WorkComplete instruction has the following internal sequence:
Indicate to the PLC that the IRB is clear of the work

Limitations
Work complete is not sent if :
an FFR is in progress
any application have been abandoned.
NoAppController is TRUE for one or more apps ( see chapter 7 )
NoStroke mode is entered in a spot welding application
NoProcess mode is entered when not in DryCycle
NoPart mode is entered in a Stud application when not in DryCycle.

Version 1.2

Page 1(2)

Copyright (c) 1996 - ABB Flexible Automation Inc

WorkComplete

GMT800

Instruction by instruction execution


Forward
Normal program execution.
Backward
No Operation

Related information
Described in :
Work clear status

Instructions - WorkComplete

Reposition tool Request

Instructions - RepositionTool

Interference Zone Entry Request

Instructions - EnterZone

Clear of Interference Zone Status

Instructions - ClearOfZone

Machine Not Clear Status

Instructions - EnteringMachine

Machine Clear Status

Instructions - ClearOfMachine

Machine Clearance Request

Instructions - WaitForMachClr

Page 2(2)

Version 1.2

Copyright (c) 1996 - ABB Flexible Automation Inc

GMT800

6.

Program Examples

Program Examples
The following examples on how to program the IRB are provided:
One carried application
6.1 - Spot welding

- no style used

6.2 - Spot welding

- three different styles and two options used


for one of the styles

6.3 - Spot welding

- two styles with a common path

Material handling
6.4 - No pedestal application
6.5 - One spot welding pedestal
6.6 - One spot welding pedestal
6.7 - One dispensing pedestal.
One spot welding pedestal

- three different styles and two options used


for one of the styles
- three different styles and two options used
for one of the styles

6.8 - One spot welding pedestal

- multiple pick up positions

6.9 - One spot welding pedestal

- style based pick up positions

In this chapter RAPID program examples are presented like this:


HomeToRepair()
MoveJ Home, v100, z10, toolgun1
MoveJ p10, v100, z10, toolgun1
MoveJ p20, v100, z10, toolgun1
MoveJ Repair, v100, z10, toolgun1

Bold text type indicates predefined instructions. Normal text type shows examples of
instructions and arguments added by the programmer

Version 1.1

Page 1(26)

Copyright (c) 1996 - ABB Flexible Automation Inc.

Program Examples

GMT800

In order to describe some basic concepts figure 3.1 is used. On a proceed from a
pounce request from the PLC, the IRB, carrying the process equipment:
moves from the Pounce position to the stationary part
applies the process to the part
returns to the Home position.

Application 1

C
X

B
X

A
X

Pounce
X

Home
X

IRB

Repair
X

Figure 6.1

IRB-Carried Application

On a request from the PLC, or the Operator the IRB can go to the Repair position.
If a process error occurs during the process, i.e. App1() or App2(), the operator will
be informed by the Basic software, and the operator can select FFR (Fast Fault
Recovery). The basic software will, by following the programmed path, take the
robot to back to Home then to Repair. If pedestal application is used the IRB will go
to the last position in the application instead of the Repair position. No process is
applied during FFR-recovery.
The Process Cycle is the path from Pounce to Home. The Common routines included
in the path are defined in a Process Path Array.
An application is the value added process that the robot applies to the vehicle. There
can be up to two applications per robot. For example:
a carried welder is an application
a material handler is not an application
a material handling IRB with a pedestal welder has one application
a material handling IRB with a pedestal welder and a pedestal sealer has
two applications
a material handler / welder with a pedestal sealer has two applications
FFR ( Fast Fault Recovery) applies only to applications (not to material handling
functions), and is done for one application at a time.
Page 2(26)

Version 1.1

Copyright (c) 1996 - ABB Flexible Automation Inc

GMT800

6.1

Program Examples

Carried spot welder, no style specific path


An IRB must be programmed as a carried Spot welder, no style programs are used.
Routines that need to be programmed with the actual path, as defined by the
installation, are shown in figure 6.2.
BASIC
SOFTWARE

HomeToPounce()
PounceToHome()
HomeToRepair()
RepairToHome()

General
Routines

App1()

HomeToTipdress()
TipdressToHome()

Process
Routines

Common
Routines

Figure 6.2 Routines called by the Basic software for a carried spot
weld application

The provided Process Cycle definition includes the following Common Routine. No
modification is necessary in this example.

App1()

> move from Pounce to Home

The HomeToPounce() routine is used by the Basic Software to move the robot from
Home to the Pounce position. The App1() routine includes the actual process cycle.
The HomeToTipdress() routine etc. is only used if a tip dresser is used.
To view the routines select View : Modules in the Programming window. Select the
Module and press Enter. Select the Routine and press ENTER. See Appendix A :
Programmer Modules for a description of module name used. The box indicates the
Module where the routines are stored.
An example of a programmed path is shown in Figure 6.3.

Home
Pounce
Repair

Legend
App1()
HomeToPounce()
HomeToRepair()
HomeToTipdress()
Via position
Process position
Predefined position
Tip Dress

Figure 6.3 Programmed path for an IRB-carried application with no


style path or options.

Version 1.1

Page 3(26)

Copyright (c) 1996 - ABB Flexible Automation Inc.

Program Examples

Step 1:

GMT800

Define General Routines


Four routines defining the paths between the common positions ( Repair and Home),
need to be defined. The routines are stored in a Module called PGENRPTH
(Programmer GENeral PaTH). After programming, the routines might look like this
(portions in bold are provided in the templates):
HomeToRepair()
MoveJ Home, v100, z10, toolgun1
MoveJ *, v100, z10, toolgun1
MoveJ *, v100, z10, toolgun1
MoveJ Repair, v100, z10, toolgun1
RepairToHome()
MoveJ Repair, v100, z10, toolgun1
MoveJ *, v100, z10, toolgun1
MoveJ *, v100, z10, toolgun1
MoveJ Home, v100, z10, toolgun1
HomeToPounce()
MoveJ Home, v100, z10, toolgun1
MoveJ Pounce, v100, z10, toolgun1
PounceToHome()
MoveJ Pounce, v100, z10, toolgun1
MoveJ Home, v100, z10, toolgun1

A tool (i.e. TCP) ReplaceME is used as the default tool. The correct tool has to be
defined, including the load definition. See Users guide for methods to define the
tool.
The default definition of the Home, Repair and Pounce positions is not a valid
definition. Execution without redefinition of the positions will case an execution
error. To define the positions, jog the robot to the correct position, mark the
instruction and press the MODPOS function key. Note that it is only necessary to
define positions as Home once since the same position is used in all routines.
In this example no intermediate positions are added for the HomeToPounce routine
since the IRB in this example is able to go directly in a straight line between Home
and Pounce.

Page 4(26)

Version 1.1

Copyright (c) 1996 - ABB Flexible Automation Inc

GMT800

Program Examples

MoveJ

Home,

v100,

z10,

ReplaceME

Replace_Me HomeToPounce
MoveJ

Puonce,

v100,

z10,

ReplaceME

Figure 6.4 General routines has predefined instructions for the from
position (i.e. Home) and for the to position (i.e. Pounce). The
program execution will stop at the Replace_Me instruction.

All General and Process routines include a Replace_Me instruction. The instruction
ensures that the routine will not be executed without correct via positions defined.
The instruction is replaced with the appropriate MoveX instruction(s), or deleted if
no via points are required.
Step 2:

Define Process Routines


The Process routines need to be defined. For example if a tip dresser is used the
following routines need to be defined:
HomeToTipDress()
MoveJ Home, v100, Z10, toolgun1
MoveJ *, v100, z10, toolgun1
MoveJ *, v100, z10, toolgun1
MoveJ, TipDress, FINE, toolgun1
TipDressToHome()
MoveJ TipDress, v100, Z10, toolgun1
MoveJ *, v100, z10, toolgun1
MoveJ *, v100, z10, toolgun1
MoveJ, Home, Z10, toolgun1

Note that the predefined instructions use a tool called ReplaceME, that has to be
changed to the tool used, in this example toolgun1. The provided ReplaceME tool
hase an invalid tool definition and will cause an error if executed.
The Home position should already be defined, and there is no need to define it again.

Version 1.1

Page 5(26)

Copyright (c) 1996 - ABB Flexible Automation Inc.

Program Examples

Step 3:

GMT800

Define Common Routines


When the Basic Software receives a Proceed from Pounce request from the PLC, it
verifies that the IRB is in the Home position, and then executes the App1() routine.
The App1() routine might look like this after the process path has been added:
App1()
MoveL p30, v100, z10, toolgun1
MoveL p40, v100, z10, toolgun1
Spot a2101, v100\G1:=s1, toolgun1
Spot a2102, v100\G1:=s1, toolgun1
Spot a2103, v100\G1:=s1, toolgun1
Spot a2104, v100\G1:=s1, toolgun1
MoveL P50, v100, z10, toolgun1
DoAppStyle 1
DoAppStyle 2
DoAppStyle 3

The predefined DoAppStyle instructions are provided to support style specific paths.
Since they are not used in this example they can be deleted.
It is the programmers responsibility to ensure that the IRB can safely move from
Pounce to the first position in App1() and from the last position in App1() to Home().
With these positions and routines defined, the robot program is now ready for
testing.

Page 6(26)

Version 1.1

Copyright (c) 1996 - ABB Flexible Automation Inc

GMT800

6.2

Program Examples

Carried spot welder, styles and options


When programming an application with a carried tool, three different styles, and two
options, the following method should be used. A spot welder with options for only
style 2 is described in this example.

Common
Routine
App1Style1()

BASIC
SOFTWARE

HomeToPounce()
PounceToHome()
HomeToRepair()
RepairToHome()

General
Routines

App1()

HomeToTipdress()
TipdressToHome()

Process
Routines

App1Style2()

App1Style3()

Style
Routines
App1Style2Opt3()

App1Style2Opt1()

Figure 6.5 Routines used for carried tool with style specific paths.

The provided Process Cycle definition includes the following Common Routine. No
modification is necessary in this example.

App1()

> move from Pounce to Home

An example of the programmed path with only one style and one option is shown in
figure 6.6.

Legend
App1Style1()
App1Style2()
App1Style2Opt1()
Via position
Process position
Predefined position
Pounce

Figure 6.6 The optional path is added to the Style2 path if


requested by the PLC.

Step 1:

Define General Routines

Version 1.1

Page 7(26)

Copyright (c) 1996 - ABB Flexible Automation Inc.

Program Examples

GMT800

See Example 6.1, step 1


Step 2:

Define Process Routines


See Example 6.1, step 2.

Step 3:

Define Common Routines


The App1() routine includes the following instructions:
App1()
DoAppStyle 1
DoAppStyle 2
DoAppStyle 3

It is assumed that there is no common path between the different styles. Since there
is no common path, no path instructions need to be added to App1().
When style 2 is the current style, the DoAppStyle 2 instruction will call the
App1Style2 routine. While style 2 is the valid style DoAppStyle 1, DoAppStyle 3,
DoAppStyle 4, etc. will not call a style routine.
The style routines for styles 1, 2, and 3 must be defined:
App1Style1()
MoveL p10, v100, z10, toolgun1
MoveL p20, v100, z10, toolgun1
Spot a2101, v100\G1:=S1, toolgun1
Spot a2102, v100\G1:=S1, toolgun1
Spot a2103, v100\G1:=S1, toolgun1
Spot a2104, v100\G1:=S1, toolgun1
MoveL p30, v100, z10, toolgun1
App1Style2()
MoveL p10, v100, z10, toolgun1
Spot a2101, v100\G1:=S1, toolgun1
Spot a2102, v100\G1:=S1, toolgun1
MoveL p20, v100, z10, toolgun1
App1Style3()
MoveL p10, v100, z10, toolgun1
Spot a2101, v100\G1:=S1, toolgun1
Spot a2102, v100\G1:=S1, toolgun1

Page 8(26)

Version 1.1

Copyright (c) 1996 - ABB Flexible Automation Inc

GMT800

Program Examples

To support the two different options that could occur with style 2, the App1Style2()
routine would be changed to look like this:
App1Style2()
MoveL p10, v100, z10, toolgun1
DoAppOption 3
Spot a2101, v100\G1:=Sd1, toolgun1
Spot a2102, v100\G1:=Sd1, toolgun1
DoAppOption 1
MoveL p20, v100, z10, toolgun1

When option 1 is the reqired option, the DoAppOption 1 instruction will, in this
example, call the App1Style2Opt1() routine. When option 3 is the required option,
the DoAppOption 3() instruction will call the App1Style2Opt3() routine. This
requires the option routines for options 1, and 3 (for style 2) to be defined as well:
App1Style2Opt1()
Spot a2105, v100\G1:=Sd3, toolgun1
Spot a2106, v100\G1:=Sd3, toolgun1
App1Style2Opt3()
Spot a2107, v100\G1:=spot1, toolgun1
Spot a2108, v100\G1:=spot1, toolgun1

With these positions and routines defined, the robot program is now ready for
testing.
Note:

It is up to the programmer to ensure that:

The IRB can safely move from the last position in the calling routine (
i.e App1Style2 ) to the called routine (i.e App1Style3Opt1() and
App1Style3Opt3() ).

The IRB can safely move from Pounce to the first position in App1() or
first position in App1Style1(), which ever comes first, as well as from
the last position in App1(), the style or option routine that include the
last path position to Home.

The Replace_Me instruction in used Style routines is deleted.

Version 1.1

Page 9(26)

Copyright (c) 1996 - ABB Flexible Automation Inc.

Program Examples

6.3

GMT800

Carried spot welder, styles with common path


When programming an application with a carried tool, and two styles that share a
path, the following method should be used. A spot welder is used in this example.

Application
Routine

BASIC
SOFTWARE

HomeToPounce()
PounceToHome()
HomeToRepair()
RepairToHome()

General
Routines

App1()

HomeToTipdress()
TipdressToHome()

Process
Routines

App1Style2()

Style
Routines

If style 1 is
the valid style

App1Style1()

If style 2 is
the valid style

Figure 6.7 Routines called by the Basic Software when spot


welding with common style paths.

The provided Process Cycle definition includes the following Common Routine. No
modification is necessary in this example.

App1()

> move from Pounce to Home

An example of the programmed path is shown in figure 6.8.

Legend
App1()
App1Style1()
App1Style2()
Via position
Process position
Predefined position
Pounce

Figure 6.8 App1() include two Via positions and four Spot positions.
One of he two Style routines are called, and the App1()
ends the cycle path by providing one common Via
position.

Page 10(26)

Version 1.1

Copyright (c) 1996 - ABB Flexible Automation Inc

GMT800

Step 1:

Program Examples

Define General Routines


See Example 6.1, step 1

Step 2:

Define Process Routines


Since this application supports two styles, with a common process path, the App1()
routine is used for the common part and two style routines need to be programmed
for the style specific paths. The App1() routine is modified to accomidate the
common path and the different path routines are called at the appropriate places.
App1()
MoveL p10, v100, z10, toolgun1
MoveL p20, v100, z10, toolgun1
Spot a2101, v100\G1:=S1, toolgun1
Spot a2102, v100\G1:=S1, toolgun1
Spot a2103, v100\G1:=S1, toolgun1
Spot a2104, v100\G1:=S1, toolgun1
Spot a2105, v100\G1:=S1, toolgun1
Spot a2106, v100\G1:=S1, toolgun1
DoAppStyle 1
DoAppStyle 2
DoAppStyle 3
MoveJ p30, v100, z10, toolgun1

When Style 2 is the selected style, the DoAppStyle 2 instruction will execute the
App1Style2() routine after the common path is executed. DoAppStyle 1 and
DoAppStyle 3 will not call a style routine as long as Style 2 is the current style. The
DoAppStyle() routine can be included once and only once for each style, but it can be
called anywhere in the common path.
The used styles must also be defined:
App1Style1()
Spot a2107, v100\G1:=S1, toolgun1
App1Style2()
Spot a2108, v100\G1:=S1, toolgun1
Spot a2109, v100\G1:=S1, toolgun1
MoveL *, v100, z10, toolgun1

An instruction Replace_me xxxxxx is included in the routines. It will stop program


execution, and has to be deleted.
With these positions and routines defined, the robot program is now ready for
testing.

Version 1.1

Page 11(26)

Copyright (c) 1996 - ABB Flexible Automation Inc.

Program Examples

6.4

GMT800

Pure Material handler, no style specific path


An IRB must be programmed as a pure material handler, not servicing any pedestal
application. Figure 6.9 shows the routines that need to be programmed.
BASIC
SOFTWARE

HomeToPounce()
PounceToHome()
HomeToRepair()
RepairToHome()

PickUp1()

DropOff1()

Figure 6.9

General
Routines

Common
Routines

For a pure material handler only pick-up and drop-off


routines are required in addition to the General
Routines.

The order the process cycle is executed need to be modified to :

PickUp1()

DropOff1()

> move from the Pounce position to the pick up


position for part one
> pick up part one
> move to part one drop-off position, drop-off part 1
> return to the Home position.

For description on how to do this see Chapter 3.6 : How to change the Process Cycle
Sequence.
Step 1:

Define General Routines


See Example 6.1, step 1.

Page 12(26)

Version 1.1

Copyright (c) 1996 - ABB Flexible Automation Inc

GMT800

Step 2:

Program Examples

Define Common Routines for Material Handling


Since this is a pure material handler with no application the PickUp1() and
DropOff1() routines are used instead of the App1() routine. The routines might look
like this after they have been programmed :
Pickup1()
MoveL p10, v100, z10, toolgrip1
MoveL Above_PickUp, v100, z1, toolgrip1
PrepareToGrip\V2\V5
MoveL PickUp, v50, fine, toolgrip1
GripPart\V2\V5
MoveL Away, v50, Z10, toolgrip1
DropOff1()
MoveL p10, v100, z10, toolgrip1
MoveL Drop_off, v100, z1, toolgrip1
ReleasePart\V2\V5
MoveL Clear_of, v50, fine, toolgrip1
VerifyRelease\V2\V5
MoveL Away, v50, Z10, toolgrip1
MoveL p20, v100, z10, toolgrip1

With these routines defined the robot program is now ready for testing.
Note :

It is the programmers responsibility to ensure that the IRB can safely move
from Pounce to the first position in PickUp1(), ,from PickUp1() to
DropOff1(), as well as from the last position in DropOff1() to Home.

Version 1.1

Page 13(26)

Copyright (c) 1996 - ABB Flexible Automation Inc.

Program Examples

6.5

GMT800

Material handler with one spot welding pedestal


An IRB must be programmed as a material handler, servicing one spot welding
pedestal.
HomeToTipdress()
TipdressToHome()

BASIC
SOFTWARE

HomeToPounce()
PounceToHome()
HomeToRepair()
RepairToHome()

App1()

DropOff1()

App1FFR()

PickUp1()

General
Routines
Common
Routines

Figure 6.10 The default structure of the routines used by a material handler with
one application and no style routines.

The order the process cycle is executed need to be modified to :

PickUp1()

App1()

DropOff1()

> move from the Pounce position to the pick-up position


for part one
> pick-up part one
> move the part through the first pedestal application
> move to part one drop-off position, drop off part one
> return to the Home position.

For description on how to do this see Chapter 3.6 : How to change the Process Cycle
Sequence.

1
al
t
s
de
e
P

Legend
PickUp1()
App1()
App1FFR()
DropOff1()
Via position
Process position
Predefined position

Pounce

IRB
Pick-up

Drop-Off

Figure 6.11 The different paths are used in this example.

Page 14(26)

Version 1.1

Copyright (c) 1996 - ABB Flexible Automation Inc

GMT800
Step 1:

Program Examples

Define General Routines


See Example 6.1, step 1 (i.e. HomeToPounce() etc. ).

Step 2 :

Define Process Routines for Spot Welding


See Example 6.1, step 2 (i.e. HomeToPounce() etc.).

Step 3:

Define Common Routines for Material Handling


See Example 6.4, step 2. (i.e. PickUp1() and DropOff1() )

Step 4:

Define Common Routine for Process (i.e. Spot Welding)


The App1() routine as defined in Chapter 3.2, step 3 need to be programmed.
The path back to the application start, when doing FFR (Fast Fault Recovery) has to
be programmed :
App1FFR()
MoveL p10, v100, z10, toolped1
MoveL p20, v100, z10, toolped1
MoveL p30, v100, z10, toolped1

App1FFR() provides the Basic Software with a safe path between the first position
in App1() and the last position in App1(). App1FFR() is used when the operator select
the Resume option when doing FFR ( Fast Fault Recovery)
It is the programmers responsibility to ensure that the IRB can safely move from
Pounce to the first position in PickUp1(), as well as from the last position in
DropOff1() to Home.
With these positions and routines defined, the robot program is now ready for
testing.

Version 1.1

Page 15(26)

Copyright (c) 1996 - ABB Flexible Automation Inc.

Program Examples

6.6

GMT800

Material handling with styles and options


An IRB must be programmed as a material handler, servicing one spot welding
pedestal. Three different styles will be used; the first style include two options.

HomeToTipdress()
TipdressToHome()

BASIC
SOFTWARE

HomeToPounce()
PounceToHome()
HomeToRepair()
RepairToHome()

Pickup1()

App1()

DropOff1()

Common
Routines

App1Style1()

App1Style2()

App1Style3()

Style
Routines

App1Style1Opt1()

App1Style1Opt2()

App1FFR()

General
Routines

Figure 6.12 The structure of the routines used by a material handler with one
application using three style and two option routines. One of App1Style
routines are called. One of App1StyleOpt() routines are called

The order the process cycle is executed need to be modified to :

PickUp1()

App1()

DropOff1()

> move from the Pounce position to the pick-up


position for part one
> pick-up part one
> move the part through the first pedestal application

> move to part one drop-off position, drop off part one
> return to the Home position.
For description on how to do this see Chapter 3.6 : How to change the Process Cycle
Sequence.

Page 16(26)

Version 1.1

Copyright (c) 1996 - ABB Flexible Automation Inc

GMT800

Step 1 :

Program Examples

Define General, Common and Process Routines for Material Handling


See Example 6.5, step 1-4. The same routines can be used.

Step 2 :

Define Common Routine


Since this application supports three styles, three different style routines need to be
programmed.
The following App1() default routine is provided :
App1()
DoAppStyle 1
DoAppStyle 2
DoAppStyle 3

When style 2 is the current style, the DoAppStyle 2 instruction will call the
App1Style2() routine. DoAppStyle 1, DoAppStyle 3, DoAppStyle 4, etc. will not call
a style routine as long as style 2 is the current style. Since no common path is used
in this example, the App1() routine does not need to be modified.
Step 3 :

Define Style Routines


Style routines defining the unique style paths must be defined:
App1Style1()
Spot a2101, v100\G1:=S1, toolped1
MoveL p10, v100, z10, toolped1
Spot a2102, v100\G1:=S1, toolped1
MoveL p20, v100, z10, toolped1
App1Style2()
Spot a2101, v100\G1:=S1, toolped1
MoveL p10, v100, z10, toolped1
MoveL p20, v100, z10, toolped1
Spot a2102, v100\G1:=S1, toolped1
Spot a2103, v100\G1:=S1, toolped1
Spot a2104, v100\G1:=S1, toolped1
MoveL p20, v100, z10, toolped1
App1Style3()
MoveL p10, v100, z10, toolped1
Spot a2101, v100\G1:=S1, toolped1
MoveL p20, v100, z10, toolped1
Spot a2102, v100\G1:=S1, toolped1

Version 1.1

Page 17(26)

Copyright (c) 1996 - ABB Flexible Automation Inc.

Program Examples

GMT800

To support the two different options that could occur with style 1, the App1Style1()
routine would be changed to look like this:
App1Style1()
MoveL p10, v100, z10, toolped1
DoAppOption 3
Spot a2101, v100\G1:=S1, toolped1
DoAppOption 1
MoveL p20, v100, z10, toolped1
Spot a2102, v100\G1:=S1, toolped1

When option 1 is the current style, the DoAppOption 1 instruction will call the
App1Style1Opt1() routine. When option 3 is the current option, the DoAppOption 3
instruction will call the App1Style1Opt3() routine. This requires the option routines
for options 1, and 3 (for style 1) to be defined as well:
App1Style1Opt1()
Spot a2108, v100\G1:=S1, toolped1
Spot a2109, v100\G1:=S1, toolped1
App1Style1Opt3()
Spot a2111, v100\G1:=S4, toolped1
Spot a2112, v100\G1:=S4, toolped1
Spot a2113, v100\G1:=S4, toolped1
Spot a2114, v100\G1:=S4, toolped1

With these positions and routines defined, the robot program is now ready for
testing.
Note : If common path can be found they should be added tot he App1() routine to
make maintenance easier.
The DoFFRstyle instructions should be added to the App1FFR routine if there
is a need for a styled based FFR path. In those cases the corresponding
App1FFRStyle() routine need to be programmed.
It is the programmers responsibility to ensure that the IRB can safely move
from Pounce to the first position in PickUp1(), as well as from the last
position in DropOff1() to Home.

Page 18(26)

Version 1.1

Copyright (c) 1996 - ABB Flexible Automation Inc

GMT800

6.7

Program Examples

Material Handling with two applications


An IRB must be programmed as a material handler, servicing one spot welding
pedestal and one dispensing pedestal. Three different styles will be used for the
welding, with the third style using one of two different options. The dispensing path
is the same regardless of style or option.

App1FFR()
App2FFR()

Pickup1()

App1()

App1Style1()

App1ToAp2()

App1Style2()

App2()

DropOff1()

App1Style3()

App1Style3Opt1()

Figure 6.13

HomeToPounce()
PounceToHome()
HomeToRepair()
RepairToHome()

BASIC
SOFTWARE

General
Routines

Common
Routines
Style
Routines

App1Style3Opt2()

Routines used in this example. Application one is using style and option
routines. Process routines are not indicated

The order the process cycle is executed need to be modified to :

PickUp1()

App1()

App1ToApp2() > move from end of application 1 to start of application 2

App2()

> move the part through the second pedestal application

DropOff1()

> move to part one drop-off position, drop off part one
> return to the Home position

> move from the Pounce position to the pick-up position


for part one
> pick-up part one
> move the part through the first pedestal application

For description on how to do this see Chapter 3.6 : How to change the Process Cycle
Sequence.

Version 1.1

Page 19(26)

Copyright (c) 1996 - ABB Flexible Automation Inc.

Program Examples

GMT800

The programmed path is shown in figure 6.14.

de
e
P

Pe
de
st
al
2

1
al
t
s

Pounce

IRB
Pick-up

Drop-Off

Legend
PickUp1()
App1()
App1FFR()
App1ToApp2()
App2()
App2FFR()
DropOff1()

Figure 6.14 Fault recovery path for each application is used to make it
possible to do FFR for one application at a time. No style
Path is shown.

Step 1:

Define General, Process and Common Routines for the first application
See Example 6.5, step 1-4

Step 2:

Define Process Routines for second application


In addition to the Process routines defined for Spot Welding in Example 2.1 step 2,
paths between the Purge position and Home need to be defined (default instructions
in bold):
HomeToPurge()
MoveJ Home,v100,z10,tooldisp1
MoveL p10, v100, z10, tooldisp1
MoveL p20, v100, z10, tooldisp1
MoveJ Purge, v100, z10, tooldisp1
PurgeToHome()
MoveJ Purge, v100, z10, tooldisp1
MoveL p20, v100, z10, tooldisp1
MoveL p10, v100, z10, tooldisp1
MoveJ Home,v100,z10, tooldisp1

The Purge position has to be defined. To do this jog the robot to the correct position,
mark the instruction and press the MODPOS function key. Change Tool used.
Page 20(26)

Version 1.1

Copyright (c) 1996 - ABB Flexible Automation Inc

GMT800

Step 3:

Program Examples

Define Common Routines for second application


The process path for the dispensing application must be defined:
App2()
MoveL p10, v100, z10,
GlueL \On, p1, v100,
GlueL
p2, v100,
GlueL
p3, v100,
GlueL \Off, p4, v100,

tooldisp1
ggun1 \F1:= scaleA, z10, tooldisp1
ggun1 \F1:= ScaleB, z10, tooldisp1
ggun1 \F1:= ScaleA, z10, tooldisp1
ggun1 z10, tooldisp1

Finally the FFR recovery path for the second application and the path from the first
application to the second application need to be defined:
App2FFR()
MoveL p10, v100, z20, tooldisp1
MoveL p20, v100, z20, tooldisp1
App1ToApp2()
MoveL p10,
MoveL p20,
MoveL p30,
MoveL p40,

v100,
v100,
v100,
v100,

z20,
z20,
z20,
z20,

tooldisp1
tooldisp1
tooldisp1
tooldisp1

With these positions and routines defined, the robot program is now ready for
testing.
Note : If common path can be found they should be added to the App1() routine to
make maintenance easier.
DoFFRstyle instructions should be added to the App1FFR routine if there is a
need for a styled based FFR path. In those cases the corresponding
App1FFRStyle() routine need to be programmed.
It is the programmers responsibility to ensure that the IRB can safely move
from Pounce to the first position in PickUp1(), as well as from the last
position in DropOff1() to Home.
It must be possible to move from last position in App1xxx to App1ToApp2 and
to first position in App2xxx.

Version 1.1

Page 21(26)

Copyright (c) 1996 - ABB Flexible Automation Inc.

Program Examples

6.8

GMT800

Material Handling with multiple pick-up positions


An IRB must be programmed as a material handler, servicing one spot welding
pedestal. Multiple pick up positions are required.
HomeToTipdress()
TipdressToHome()

BASIC
SOFTWARE

App1FFR()

Pickup1()

Figure 6.15

App1()

Pickup2()

HomeToPounce()
PounceToHome()
HomeToRepair()
RepairToHome()

DropOff1()

General
Routines

Common
Routines

Multiple pick-up can be used if additional parts need to be picked


up at different places in the process cycle.

The order the process cycle is executed need to be modified to :

PickUp1()

App1()

> move the part through the first pedestal application

PickUp2()

> move from last position in App1() to the second pick-up


position

> move from the Pounce position to the pick-up position


for part one
> pick-up part one

> pick-up part two

DropOff1()
> move to part one drop-off position, drop off part one
> return to the Home position.

For description on how to do this see Chapter 3.6 : How to change the Process Cycle
Sequence.

Step 1:

Define General, Process and Common Routines


See Example 6.5, step 1-4

Page 22(26)

Version 1.1

Copyright (c) 1996 - ABB Flexible Automation Inc

GMT800

Step 2 :

Program Examples

Define Common Routines for multiple pick up positions


The Pickup2() routine needs to be defined:
Pickup2()
MoveL p10, v100, z10, toolgrip1
MoveL Above_PickUp, v100, z1, toolgrip1
PrepareToGrip\V2\V5
MoveL PickUp, v50, fine, toolgrip1
GripPart\V2\V5
MoveL Away, v50, Z10, toolgrip1

With these positions and routines defined, the robot program is now ready for
testing.

Version 1.1

Page 23(26)

Copyright (c) 1996 - ABB Flexible Automation Inc.

Program Examples

6.9

GMT800

Material Handling with style based pick up positions


An IRB must be programmed as a material handler, servicing one spot welding
pedestal. Multiple style based pick up positions are required.

HomeToTipdress()
TipdressToHome()

BASIC
SOFTWARE

App1FFR()

App1()

Pickup1()

PickUp1Style1()

Figure 6.16

HomeToPounce()
PounceToHome()
HomeToRepair()
RepairToHome()

General
Routines

DropOff1()

Common
Routines

PickUpStyle2()

Style
Routines

Two different pick-up positions are provide, one for style 1, and
one for style 2.

The order the process cycle is executed need to be modified to :

PickUp1()

App1()

DropOff1()

> move from the Pounce position to the pick-up position


for part one
> pick-up part one
> move the part through the first pedestal application

> move to part one drop-off position, drop off part one
> return to the Home position.
For description on how to do this see Chapter 3.6 : How to change the Process Cycle
Sequence.
Step 1:

Define General Routines


See Example 6.8, step 1-5

Page 24(26)

Version 1.1

Copyright (c) 1996 - ABB Flexible Automation Inc

GMT800

Step 2 :

Program Examples

Define Style routines, using multiple style based pick up positions


The style based pick-up routines have to be defined.
PickUp1Style1()
MoveL p10, v100, z10, toolgrip1
MoveL p20, v100, z1, toolgrip1
PrepareToGrip\V2\V5
MoveL p30, v50, fine, toolgrip1
GripPart\V2\V5
MoveL p40, v50, Z10, toolgrip1
PickUp1Style2()
MoveL p10, v100, z10, toolgrip1
PrepareToGrip\V2\V5
MoveL p50, v50, fine, toolgrip1
GripPart\V2\V5
MoveL p60, v50, Z10, toolgrip1

With these routines defined, the robot program is now ready for testing.
Note : It is the programmers responsibility to ensure that the IRB can safely move
from Pounce to the first position in the Process Cycle (i.e PickUp1(), or
PickUp1Style1 which ever comes first) as well as from the last position in
DropOff1() to Home.

Version 1.1

Page 25(26)

Copyright (c) 1996 - ABB Flexible Automation Inc.

Program Examples

Page 26(26)

GMT800

Version 1.1

Copyright (c) 1996 - ABB Flexible Automation Inc

GMT800

Programming Features

7. Programming Features
This chapter describes various features that may be used during the programming
phase.

Simulate unavailable IO boards


After the IRB is configured via the S4 Configuration Editor, the IO system is ready
to be used, no further configuration or IO mapping has to be done. If one or several
IO boards are not available, they can be simulated.
To simulate a board :
Choose the Misc. Window
Choose Topics: IO signals
Choose Types : IO boards
All predefined boards will be then be displayed.
Select the appropriate I/O board to be simulated and press Enter.
Select the board type, press Enter, Select eip000 type, press OK
Select the bus, press Enter, Select SIM, press OK.
Restart the system by choosing File: Restart
To activate the boards, change back or save the RAPID program and reload the
configuration from the S4pc configuration editor.
The following ABB IO units are used:
Digital I/O

DSQC328

Combi I/O DSQC327


Relay I/O

DSQC332

Remote I/O DSQC350

Version 1.3

Page 1(4)

Copyright (c) 1996 - ABB Flexible Automation Inc.

Programming Features

GMT800

Move IRB to the Calibration position


A routine that move the IRB to the calibration pose is provided. This routine can be
used to verify that the revolution counters have been updated properly.
To execute the routine in the Program Test window, select Special : Routines, select
the GoToCalib() routine and press ENTER. Press the Start function key.
The IRB should be jogged close to the position since it will take the shortest way to
the calibration position.
To update the revolution counters see chapter 3.4 : Updating revolution counters in
S4c Users Guide.

Test run without PLC


A test routine is provided making it possible to run the complete cycle path without
Initiate, Proceed, Style and Option data from the PLC.
The routine can only be executed in MANUAL mode. It automatically prompt for
required data at the TPU. The routine will execute HomeToPounce() path, then the
complete path as defined in the ProcessPath array.
To execute the routine in the Program Test window, select Special : Routines, select
the TestProcessPath() routine and press ENTER. Press the Start function key.
Since the Basic software automatically handles activities as pre-process and error
handling, cycle testing is not to be done by calling the actual path routines directly
from RAPID.

Test run without process controller


It is possible to turn off all interaction with an application controller, a weld
controller for example, if that controller has not been installed or is not yet
functional.
Two global, boolean variables have been provided to control interaction with an
application controller:
NoApp1Controller
NoApp2Controller
By default, the value of these variables is FALSE, meaning a controller is present
and functional.

Page 2(4)

Version 1.3

Copyright (c) 1996 - ABB Flexible Automation Inc.

GMT800

Programming Features

To change the value of either of these variables: from the Programming Window,
select View:Data : Types. Cursor down to bool, then press the Data function key.
Cursor down to the NoApp1Controller or NoApp2Controller item and press the
Enter key.
To disable all interaction with the controller, change the value of the variable to
TRUE. To re-enable the interaction with the controller, change the value of the
variable to FALSE. The next time the program is started from main, the new value
will take effect.

Manual control of guns


For IRBs configured for spot welding and stud welding the following application
keys are provided.
The application keys toggle between states, i.e. if the gun is closed pressing the key
will open the gun, if the gun is closed pressing the key will open the gun.
The keys are active only in Manual Mode.

Spot Gun 1
Retract
open / close

Gun
open / close

Stud
Head
Advance /
Retract

Spot Gun 2
Retract open / close
Gun open / close
Figure 7.1

Application keys provided

Version 1.3

Page 3(4)

Copyright (c) 1996 - ABB Flexible Automation Inc.

Programming Features

Page 4(4)

GMT800

Version 1.3

Copyright (c) 1996 - ABB Flexible Automation Inc.

GMT800

Disable / Enable Features

8. Disable / Enable Features


It is possible to enable and disable, or deactivate and activate, various features
provided in the IPCS. These capabilities have been provided to alleviate certain
production situations, such as a repeatedly faulting water circuit which may not be
immediately repairable, or to tailor the product to some degree for a certain hardware
configuration.
Be aware that disabling critical monitoring features, such as water monitoring for
spot welding, will generate a minor fault condition that will not be removed until the
feature is re-enabled.
If critical monitoring features, such as water monitoring for spot welding, is
disabled it could result in equipment failure or crashes if not managed properly.

General
To turn off all interaction with an application controller, a weld or dispense
controller, or example, if that controller has not been installed or is not yet
functional, use bool variables NoApp1Controller and NoApp2Controller. By
default, the value of these variables is FALSE, meaning a controller IS present and
functional.
To change the value of either of these variables: from the Programming Window,
select View:Data:Types. Cursor down to bool and press Enter. Cursor down to the
NoApp1Controller or NoApp2Controller item and press Enter.
To disable all interaction with the controller, change the value of the variable to
TRUE. To reenable the interaction with the controller, change the value of the
variable to FALSE. The next time the program is started from main, the new value
will take effect.

Spot Welding
Water Monitoring
To disable water monitoring for a spot welding application, set the digital output
ExtDisWater1 to a value of 1. If a second water circuit is in use, then
ExtDisWater2 could also be set. The water monitoring will be disabled
immediately on setting these signals.
To re-enable the monitoring, simply turn the signals off again. When the next cycle
is executed, the water monitoring will be re-enabled.
Version 1.3

Page 1(6)

Copyright (c) 1996 - ABB Flexible Automation Inc

Disable / Enable Features

GMT800

Gun and Retract Monitoring


To disable the gun or retract monitoring, set the num variable ActiveGun to the
value of the gun to be disabled. ActiveGun can be accessed by selecting View:Data
(num) in the Programming Window. Once ActiveGun is assigned a gun number, set
the output ExtDisRetractMnt to disable the retract, or the output
ExtDisableGunMnt to disable the gun. These signals can be accessed from the IO
window, by selecting View:Boards, and highlighting and selecting the SPOTSIM
board. After setting the output signal(s), you will notice that the signals did not
maintain their changed state; they are automatically reset once monitoring is
disabled.
To re-enable the gun or retract monitoring, set the num ActiveGun to the value of
the gun to be enabled. Then, set the output ExtEnbRetractMnt to enable the
retract, or ExtEnableGunMnt to enable the gun. These signals can be accessed from
the IO window, by selecting View:Boards, and highlighting and selecting the
SPOTSIM board. After setting the output signal(s) you will notice that the signals
did not maintain their changed state; they are automatically reset once monitoring is
enabled. When the next cycle is executed, the gun or retract monitoring will be reenabled.

Hinge Welding
No enable/disable features.

Dispensing
No enable/disable features.

Stud Welding
Auto FFR
Set boolean variable AutoFFRModeSel to TRUE to enable automatic FFR, to
FALSE to disable it. This variable can be accessed using View:Data:Types and
selecting bool.

Page 2(6)

Version 1.3

Copyright (c) 1996 - ABB Flexible Automation Inc

GMT800

Disable / Enable Features

Head Retract Monitoring


Enable (Default)
From the I/O menu, select View: Boards, highlight and select the board named
STUDSIM and set the digital output ExtEnableHRMon to a value of 1.
After setting this output, a menu will be presented on the teach pendant which
will allow the user to:
select a specific head
prompt for more head selections
cancel the operation
The digital output ExtEnableHRMon will automatically be set to a value of 0.
If a head is selected, an acknowledgment window will be displayed to indicate
that the desired action has been performed and will prompt the user to press OK
to continue.
Disable
From the I/O menu, select View: Boards, highlight and select the board named
STUDSIM and set the digital output ExtDisableHRMon to a value of 1.
After setting this output, a menu will be presented on the teach pendant which
will allow the user to:
select a specific head
prompt for more head selections
cancel the operation
The digital output ExtDisableHRMon will automatically be set to a value of 0.
If a head is selected, an acknowledgment window will be displayed to indicate
that the desired action has been performed and will prompt the user to press OK
to continue.

Version 1.3

Page 3(6)

Copyright (c) 1996 - ABB Flexible Automation Inc

Disable / Enable Features

GMT800

Material Handling
Part Present Monitoring
Enable (Default)
From the I/O menu, select View: Boards, highlight and select the board named
MTHDSIM and set the digital output ExtEnablePPMon to a value of 1.
After setting this output, a menu will be presented on the teach pendant which
will allow the user to:
select a specific part present switch
prompt for more part present switch selections
cancel the operation
The digital output ExtEnablePPMon will automatically be set to a value of 0.
If a part present switch is selected, an acknowledgment window will be displayed
to indicate that the desired action has been performed and will prompt the user to
press OK to continue.
Disable
From the I/O menu, select View: Boards, highlight and select the board named
MTHDSIM and set the digital output ExtDisablePPMon to a value of 1.
After setting this output, a menu will be presented on the teach pendant which
will allow the user to:
select a specific part present switch
prompt for more part present switch selections
cancel the operation
The digital output ExtDisablePPMon will automatically be set to a value of 0.
If a part present switch is selected, an acknowledgment window will be displayed
to indicate that the desired action has been performed and will prompt the user to
press OK to continue.

Tool Change
Cover Feedback
If a tool change station is not fitted with a cover, execute routine DisableToolCover
to disable all fault handling for the cover of a specified station. If a cover is installed
Page 4(6)

Version 1.3

Copyright (c) 1996 - ABB Flexible Automation Inc

GMT800

Disable / Enable Features

at a later time, execute routine EnableToolCover. This will re-activate all the fault
handling for the cover on the specified station. Each of these routines requires the
tool change station number to be specified.

Version 1.3

Page 5(6)

Copyright (c) 1996 - ABB Flexible Automation Inc

Disable / Enable Features

Page 6(6)

GMT800

Version 1.3

Copyright (c) 1996 - ABB Flexible Automation Inc

Appendix

Appendix A
Programmer Modules

An overview of modules used for programming spot welding and material


handling applications is provided.
Based on selections made during configuration the required modules is
downloaded from S4pc.

Version 1.0

Copyright (c) 1996 - ABB Flexible Automation Inc.

Programmer Modules
Carried Applications

Material Handler + Optional Application(s)

Second Application
PA2S3PTH
PA2S2PTH
PA2S1PTH

PAPP2PTH
App2()
App2FFR()
App1ToApp2()

First Application

Process
Routine

PSPOTPTH
TipDress
HomeToTipDress()
TipDressToHome()

PAPP1PTH
App1()

PA1S3PTH
PA1S2PTH
PA1S1PTH
App1Style1()
App1Style1Opt1()
App1Style1Opt2()
App1Style1Opt3()

All Configurations

PAPP1PTH
App1()
App1FFR()
PickUp1()
PickUp2()
DropOff1()
DropOff2()
PA1S3PTH
PA1S2PTH
PA1S1PTH
App1Style1()
App1Style1Opt1()

Common
Routines

Style
Routines

PickUp1Style1()
PickUp2Style1()
DropOff1Style1()
DropOff2Style1()
App1FFRStyle1()
PGENRDAT
Home
Pounce
Repair

PGENRPTH
HomeToPounce()
HomeToRepair()
RepairToHome()
PounceToHome()

General
Routines

ProcessPath{}

PROGMODL.DOC 1/30/2006

Module Name

: Optional Module
: Mandatory Module

Appendix

Appendix B
Predefined Routines

Print-out of selected modules including pre-defined routines available to the


application programmer is provided. Note that the format is not the same as that
viewed on the teach pendant.

Version 1.0

Copyright (c) 1996 - ABB Flexible Automation Inc.

GMT800

Appendix C.
Anticipate
time

Glossary

Glossary
The amount of time before a particular event, condition or
action should be initiated.

Application Type of process that is performed by the IRB. For example, spot
welding or gluing. Material handling is no application.
Delay time Amount of time to wait after initiating some action for that action to
be completed.
FFR

Fast Fault Recovery. Recovery option from a Major process fault.


The IRB will continue its process path without process performed.

General
Routines

General support paths between predefined general positions such


as Repair and home

Home

IRB position from which a PLC signal to initiate a cycle is acted


upon. There is exactly one Home position per IRB.

IRB

Industrial Robot.

Major fault Error issued by the IRB, based on a condition in the process
(e.g., a bad weld) or peripheral equipment. This fault requires
operator intervention; the process is halted until an operator
response is received.
Minor fault Warning issued by the IRB, based on a condition in the process
or the peripheral equipment. IRB program is not stopped;
operator intervention is not required.
Part

The item to which the application process is being applied or


performed, e.g., sealing a windshield, drilling a door panel, spot
welding a b-pillar.

Pounce

The robot position in closest proximity to the first process position


within the job. There is exactly one Pounce position per IRB.

Process
Routines

Process specific support paths between Home and predefined


process positions as Purge and Tipdress

Version 1.0

Page 1(2)

Copyright (c) 1996 - ABB Flexible Automation Inc

Glossary

GMT800

Process
Cycle

One complete execution of the series of steps required to


perform the application. I.e. the value added path including
Appx() for carried application, PickUp() and DropOff() for material
handling, and optional Common routines and Style
routines.

Process

The method used to process the part. i.e Spot welding,


Sealing or Plunge welding.

RAPID

The programming language used to program ABB robots.

Style
Routines

Style specific part (i.e section) of the process cycle

TPU

Teach Pendant unit. The hand held unit used to program the IRB.

Page 2(2)

Version 1.0

Copyright (c) 1996 - ABB Flexible Automation Inc