IRC5
ABB Limited - Robotics
PROGRAMMING AND OPERATION
Facilities Guide
Workshop Area
Must be accompanied by a member of ABB staff
Health & Safety / Customer confidentiality
Please ask if you would like a guided tour
Phones, Faxes and Internet access
Outgoing calls - Phones available in training rooms and reception
Incoming calls and urgent messages Please ask reception to
relay
Internet access - via terminal in main training area
Password: Trainme2day11
Contacting ABB personnel
Please ask instructor if you would like to contact or meet up with
friends or acquaintances at ABB
Smoking area
Access via main entrance
Site Map
Fire Assembly point
Visitors
Parking
Smoking
Area
Employee parking
Auriga House Ground Floor Plan
Fire Exit
Fire Exit
Mech
Training
Area
Office
Room
3
Workshop gangways
Training Suite
Workshop
Room 2
Room 1
Paint
Training
rooms
Solutions
Centre
Weld Training
rooms
Reception
Technical
Help desk
Main Entrance
Robot Spare Parts
Smoking shelter
Please use main entrance
Fire Exit
IRC5 Training course scheme
Programming
&
Operation
Operator
5 day
2day
RobotStudio 5
Certified User
Electrical
4 day
Mechanical
4 day
Programming &
Operation for
Mig / Mag
MultiMove
Programming
Advanced
Stage1
5 day
WebWare
2 day
Mig Mag
Process
Appreciation
3 day
3 day
3 day
PickMaster
5 day
Rotary
External Axis
Programming
2 day
5 day
Advanced
Stage2
3 day
SmarTac
2 day
Course Objectives
Safety requirements for basic programming and operation
System warm start up, shut down and error recovery
Basic program operation
Basic production programming techniques
Editing program instructions to maximise efficiency
Create and use routines
Use input output instructions
Flexpendant communication instructions
Numerical data instructions
Saving and opening programs
Safety
Potential Accident Risks
Modifying program within robot cell
Test run
Fault tracing
Repair
Process hazards
ABB Safety Solutions an Overview
Emergency stop
Operating mode
Auto
Manual < 250 mm/s
Manual 100%
Enabling device
(Dead mans grip)
Hold-to-run
Safeguard stop
(Auto and Manual)
Limiting the workspace
Lockouts and Interlocks
Law Demands
The construction design for the robot is to comply with
requirements that are stated in ISO 10218, Jan 1992,
industrial robot safety. Robot also comply with
requirements for ANSI/RIA 15.06-1999.
Definition of safety function / regulations:
Emergency stop IEC 204-1, 10.7
Enabling device ISO 11161, 3.4
Safeguard ISO 10218 (EN 775), 6.4.3
Reduced speed ISO 10218 (EN 775), 3.2.17
Interlock ISO 10218 (EN 775), 3.2.8
Hold to run ISO 10218 (EN 775), 3.2.7
ANSI: American National Standards Institute
RIA: Robotics Industries Association
ISO: International Standards Organisation
IEC: International Electrotechnical Commission
EN: European Normalisation
Emergency Stop
Built in emergency stop
pushbuttons are found both
on the FlexPendant and
Controller-X-module as
default.
Extra emergency stops can
be connected to the robot
systems safety chain.
Operating Mode
Automatic mode
Production mode (no speed limit)
Manual mode
< 250 mm/s max velocity 250 mm/s
100 % Option, robot can be
jogged/tested with no speed limit.
Enabling Device (Dead Mans Grip)
The enabling device is a press switch with three
positions
The switch must be in the middle positions in order to
activate the motors
All robot movement will immediately stop if the switch is
released or pressed to the bottom
Enabling device
Hold-to-Run (Manual 100 %)
Only found on Version 1 FlexPendants
Hold-to-run buttons removed on Version 2 FlexPendant
Option (this function can be selected in the parameters)
The enabling device and one of the hold-to-run buttons
must be pressed simultaneously to start the motors
Enabling device
Hold-to-run buttons
(for left or right hand)
Version 2 FlexPendant Hold-to-Run
Hold-to-Run buttons and
prompt message removed
Hold down the play key, to run the program
Hold down the FWD or BWD key to step through program
Release the pressed key to stop execution
Safeguard Stop
The connection of safeguard stop enables inter-locking
of external safety equipment, such as: doors, photoelectric trip device, photo cells or pressure mats.
Safeguard stop can be connected in two ways:
Always active regardless of operating modes
Only active when automatic mode is selected
Possibility to activate Delayed Safeguard Stop.
A delayed stop gives a smooth stop. The robot stops in
the same way as at a normal program stop with no
deviation from the programmed path.
Limiting the Workspace
To avoid the risk of getting
caught between the robot and
the outer safe equipment, e.g.
a fence, the robots workspace
can be limited:
All axis can be software controlled
Axis 13 can be limited by
adjustable mechanical stops and
controlled by limit switches
Safety Regarding Grip Device
All grip devices must be designed so the work piece will
be held on power failure and other disturbances in the
robot system
Make yourself familiar with the output used to activate
the gripper
Mind your fingers when manually operating gripper from
FlexPendant
Electrical Safety
Hazardous power in both the cabinet and the robot
Net power 400 VAC
Transformer 260 VAC
Rectifier 260 VAC and 370 VDC
Power supply 370 VDC
Power supply to robot motors up to 370 VDC
Customer equipment
Safety Regarding Releasing the Breaks
The breaks on the robot motors can be manually
released.
Before the breaks are released, be sure that the weight
of the robot arm is supported and wont cause damage to
individual or equipment
Operational Exercise
Execute program
Manual reduced speed
Enabling device
Manual Full speed
Enabling device and Hold-to-run
Automatic
Stepwise Operation
Fwd Bwd and limitations
E-Stop and recovery
Debug menu
Starting program from cursors position
Program Reset
Jogging the robot
Robot Axis
Axis 3
Axis 4
Axis 2
Axis 1
Jogging The Robot
Motion Types
Robot
Major Axes 1,2,3
Minor Axes 4,5,6
Linear / Reorientation
Base
World
Tool
Workobject
Can Jog the Robot in Incremental steps.
QuickSet menu
With the QuickSet menu you can access some often
used settings
Mechanical unit
Jogging mode
(1-3, 4-6, linear or reorient)
Coordinate system
Increment
Running Mode
Step Mode
Override Speed
The Jogging Window
Exercise 1
Programming movements
Programming with the FlexPendant
ABB Main Menu
Creating a new Program File
Creating a new Program File
Programming Positions
Positional Movements Instructions
MoveJ - moves the TCP in a way which is
easiest for the robot and not in a straight line
Speed Data
ToolData
MoveJ *, v1000, z50, tool0;
Robot Position
Zone Data
Zone
Zone data describes how close to the destination
position the axes must be before the next instruction
can be executed.
Robot path in automatic mode.
Programmed
position.
Zone size.
MoveL p2, v100, z10, tool0;
Joint & Linear Move
P1
Joint Move
Linear Move
P2
Positional Movements Instructions
MoveL - moves the TCP in a Linear direction
or straight line
Speed Data
ToolData
MoveL *, v1000, z50, tool0;
Robot Position
Zone Data
ModPos
Modifying the position in a positioning instructions
Move robot to desired position
Select the instruction or target to be changed
Press Modify position
Program Edit Menu
Tool Centre Point
Tool Mounting
Flange
+Y
+X
Relative Directions X, Y & Z.
+Z
Tool Centre Point
Position & movement of robot always related to TCP.
Defined as being somewhere at the end of the tool.
Many can be defined but only one active at any one time.
Can be programmed manually but only if accurate data.
Normally use robot to define TCP.
If tool is damaged or replaced, dont change program just
redefine the tool.
Tool Centre Point Definition Methods
Default Orientation (same direction as tool0)
TCP & Z Just Z direction defined (X stays in same plane as tool0)
TCP & Z, X both Z and X defined
From 3 to 9 approach points
TCP Default Orientation
No rotation about X, Y or Z
Z
X
TCP & Z
Z direction defined
TCP Z & X Mag welding and Water cutting
.
Both X and Z directions defined
TCP Definition Default Orient
1
4
2
3
2
Plan view
TCP Definition Z & X
Tool orientations are defined by the direction the tool is
positioned away from the datum point.
5
Z Elongator point
Jog robot so the tools intended Z and X
directions, visually align to the base
coordinates Z and X axis.
Jog along Base coordinate Z Axis to define
tools Z direction
2
Jog along Base coordinate X Axis to define
tools X direction
X Elongator point
Tool Centre Point Definition Method
Menu
Program data
Select tooldata
Show data
New
Name tool
Initial value or OK and select tool in list and Edit Value
Mass:= type in kg
Press OK
For RW5.06 Press and hold on tool in list to get context menu
For RW5.07 Press Edit
Select Define
Select Method and number of Points
Select Point 1, jog robot to calibration position and press Modify Position
Repeat for remaining points
Press OK
You will need to activate your TCP in the jog window
Exercise 2
Create a Tool Centre Point
Logical
Set - turns ON a Digital Output.
Set doGripper;
Reset - turns OFF a Digital Output.
Reset doGripper;
Logical
SetDO - changes the value of a Digital Output.
SetDO do15, 1;
or
SetDO \SDelay := 0.2, do15, 1;
SetDO \Sync do15, 1;
Routines and program flow example
main
PickPen
PutPen
Main
PickPen;
MoveJ ,v200,
MoveL v200,
MoveL v100,
MoveL v300,
MoveL v200,
MoveL v200,
MoveJ ,v200,
PutPen;
Main routine
PickPen
MoveJ ,v200,
MoveL v1000
Set doGripper;
MoveL v200,
PutPen
MoveJ ,v200,
MoveL v1000
Reset doGripper;
MoveL v200,
Sub routines
Routines
Repetitive instruction sequences, that occur frequently in the program,
should form their own routines.
Routines separate the program into smaller more easily understood
parts, these can then be called anywhere in the program using the
ProcCall instruction.
A Max of 16 characters are allowed for naming routines, meaningful
names such as PickBlock, CutSquare and Put_Part etc will make
the program easier to follow and operate.
Routines can be tested by moving the Program Pointer to a routine.
Routines Exercise
Create a new routine called PickPen
Activate your TCP
Program the robot to pick up the pen using the minimum amount of instructions
Test this routine
Duplicate this routine and edit the output instruction to put the pen down
Call these routines in your main routine
Test your Main Routine
Exercise 3
Create Routine to pick and place
Pen
Work Object Coordinate System
All program positions are attached to a work object
Wobj0 is the default coordinate system
It is advisable to use custom work objects
p10
y
Base
Wobj0
(0,0,0)
(900, 60, 500)
Work Objects
Custom Work Object
X1
Object
frame
User
frame
World
Work Objects contain both User and Object Frames
Work Object Frames
p10
(200, 0, 450)
(400, 0, 50)
World
User
(300, 60, 0)
Object
Work Objects and External Axis
Workobject disconnected from robot world
and attached to mechanical unit
Object frame may be transposed
from its User frame
Defining a Work Object frames
World
World
User and Object Coordinate Systems are usually both defined
at the same position.
Work Object Definition Methods
User and Object Coordinate Systems are usually both defined
at the same position.
Jogging along axis Work Objects
X
Y
X
Work Objects Summary
WObjData is used to describe the area that the robot welds, processes,
moves within etc.
If position Data is entered manually, the values can be taken from a
drawing.
Programs can be reused quickly following changes in the robot installation
e.g. if a fixture is moved, just redefine user coordinate system.
Variations in how the work object is attached can be compensated for. For
this, however, some sort of sensor will be required to position the work
object.
Robot can be jogged along the axes of the work object.
Work Object Definition Method
In the jogging window activate the TCP that you will use to define Workobject
Menu
Program data
Select wobjdata and tap Show Data
Select New
Name work object
Press OK
For RW5.06 Press and hold on the Workobject in list to get context menu
For RW5.07 Press Edit
Select Define
Select 3 points for user frame and No Change for Object frame definition
Jog the tool to the User X1 point select and Modify Position
Repeat for User X2 and User Y1
Press OK and view the calculated result
Press OK to close
You will need to activate your workobject in the Jogging window
in order to program or jog relative to it.
Exercise 4
Create a Work Object
Positional
MoveC - moves the TCP in a Circular
direction using the mid & end point of a semicircle
Speed Data
ToolData
MoveC *, *, v1000, z10, tool0;
Robot Positions
Zone Data
Circular Move
p1
Pick MoveC here
p2
p4
p3
ModPos MoveC here
MoveL p1, v100, fine, tool0;
MoveC p2, p3, v100, z1, tool0;
MoveC p4, p1, v100, fine, tool0;
Path Following Exercise
Start / Finish
Start / Finish
Path Following Exercise
Start / Finish
Direction
Path Following Exercise
Example of main routine
Exercise 5
Programming with Routines
What is a module
The Internal Structure of Modules
%%%
VERSION:1
LANGUAGE:ENGLISH
%%%
MODULE EX1
CONST robtarget p3:=[[1266.11,-44.68,379.91],[0.567059,0.054467,0.821577,0.022118],[0,0,CONST robtarget p2:=[[1270.77,-93.78,386.13],[0.567071,0.054457,0.82157,0.02211],[-1,0,CONST robtarget p1:=[[1312.4,-132.16,381.39],[0.567077,0.054431,0.821568,0.02209],[-1,0,PROC main()
MoveL p1,v1000,fine,tool0;
MoveL p2,v1000,fine,tool0;
MoveL p3,v1000,fine,tool0;
ENDPROC
ENDMODULE
IRC5 Task Structure
Robot Task
Program File.pgf
<?xml version="1.0" encoding="ISO-8859-1" ?>
<Program>
<Module>MainModule.mod</Module>
</Program>
MainModule.mod
System Modules.sys
Program Data
Program Data
Main
Routine
Routines
Routines
IRC5 Task Structure
Robot Task
Program File.pgf
<?xml version="1.0" encoding="ISO-8859-1" ?>
<Program>
<Module>ModuleA.mod</Module>
<Module>ModuleB.mod</Module>
<Module>MainModule.mod</Module>
</Program>
Program Modules.mod
Program Data
Main
Routine
Routines
Program Data
Routines
System Modules.sys
Program Data
Routines
What are Modules
A module is a group of routines and data.
The module that contains the main routine is the MainModule
System modules are always present in memory and can be used to save
your default data
Filename extensions are
XXXXX.mod
Module
XXXXX.sys
System Module
XXXXX.cfg
Parameter File
XXXXX.pgf
Program File
Creating a new program in IRC5
A new program file is created (.pgf)
A MainModule with main routine is created
Saving program in IRC5
A folder with the same name as the program is created
This folder contains the MainModule, Sub modules and the
program file
The program file (.pgf),is an extensible mark-up language,
XML, file that lists all program modules in the task
System Modules are NOT saved
Folder created with
same name
Saving Individual Modules
Individual, Program or System modules can be saved
Select in Program Editor and Save Module As from File menu
Loading Programs
Loading whole programs will overwrite existing programs
Each task will have its own program
Loading Modules
Loading Program and System modules from the Program Editor
1
IRC5 System backup
Backup_20050117
BACK INFO
HOME
System ID
Text information,
programme.id,
key.id,
keystr.txt,
system.guid,
template.guid
Most files off
Flash disk from
Active system
RAPID
SYSPAR
System.xml
System parameters
TASK 0
PROGMOD
SYSMOD
Empty
Empty
Used by system only!
Multitasking
TASK
1
TASK
11
TASK
TASK 1
PROGMOD
SYSMOD
PROGMOD
SYSMOD
PROGMOD
PROGMOD SYSMOD
SYSMOD
Program modules
Backed up regularly !!!
System modules
Exercise 6
Backup and Restore
Logical
WaitDI - Waits until a Digital Input is set to either
high or low.
WaitDI di1, 1;
Logical
WaitUntil - Waits until 1 or several Inputs have
been set.
WaitUntil di1=1;
WaitUntil di1=1 AND di2=1;
AND, OR
Logical
WaitTime - Waits a set amount of time.
WaitTime 0.5;
(Waits 0.5 seconds)
WaitTime \ InPos, 0.5 ;
(Optional Argument wait in position)
Logical
Stop - is used to stop program execution.
Move J pTCPcheck, v100,fine,tGun;
Stop;
Exercise 7
Waiting for Inputs and Time
TPWrite
TPWrite - writes Text/Data to FlexPendant.
TPWrite Execution Started;
TPWrite Num of produced parts= \Num:=reg1;
TPWrite String [\Num] | [\Bool] | [\Pos] | [\Orient]
TPErase
TPErase - is used to clear the display of the FlexPendant.
TPErase;
TPWrite Execution Started;
TPShow
TPShow - is used to switch the window on the FlexPendant.
TPShow TP_PROGRAM;
The Production Window will be active if the system is in AUTO mode.
Or
The Program Editor will be active if the system is in MAN mode.
TPShow TP_LATEST;
Show the previous FlexPendant Window before the current one.
Exercise 8
Operators Log Messages
Comment
Comment - Inserts a line of text so as to make it easier to understand
the program.
Comment / Uncomment Row
Comment Row Disabling Instructions, sometimes better than delete!
CompactIF
Compact IF - where a single instruction is executed
depending on whether a condition is met or not.
IF di1 = HIGH WaitTime 0.5;
or
IF di1 = HIGH PickPart;
The instruction may be a ProcCall which calls a
routine
IF
IF - where different instructions are executed
depending on whether a condition is met or not.
IF di1 = HIGH THEN
Circle;
Oval;
ENDIF
IF di1 = HIGH THEN
Circle;
ELSEIF di2 = HIGH THEN
Outside;
ELSE
Oval;
ENDIF
Exercise 9
Decision making with IF
TPReadNum
TPReadNum - writes Text on FlexPendant and records
which Numbers are pressed.
TPReadNum reg1, How many Outsides should be produced?;
While
While - is used when a number of instructions are to be
repeated as long as a given condition is met.
WHILE reg1> 0 DO
Outside;
Decr reg1;
ENDWHILE
Repeats the instructions in the WHILE loop as long as
reg1 > 0
WHILE Condition DO... ENDWHILE
Exercise 10
Loops
Cycle Timing Instructions
ClkReset - is used to reset a clock that functions as a stop
watch, it sets it to 0.
ClkReset clock1;
ClkStart - is used to start a clock that functions as a stop
watch.
ClkStart clock1;
ClkStop - is used to stop a clock that functions as a stop
watch.
ClkStop clock1;
ClkRead()
ClkRead() - is a function that reads a timing clock and
returns its value.
ClkReset clock1;
ClkStart clock1;
MoveJ *, v1000, fine, tool0;
ClkStop clock1;
TPWrite Cycle Time=\Num:=ClkRead(clock1);
TPReadFK
TPReadFK - writes text on the FlexPendant and records a number.
TPReadFK nPress, Choose?, Outside, Circle, Oval ,,;
TEST
TEST - where different instructions are executed
depending on the value of an expression or data.
TEST nPress
CASE 1:
Outside;
CASE 2:
Circle;
CASE 3:
Oval;
DEFAULT:
TPWrite Illegal choice;
Stop;
ENDTEST
Programming
Practice
Course Objectives
Safety requirements for basic programming and operation
System warm start up, shut down and error recovery
Basic program operation
Basic production programming techniques
Editing program instructions to maximise efficiency
Create and use routines
Use input output instructions
Flexpendant communication instructions
Numerical data instructions
Saving and opening programs