You are on page 1of 191

IRC5

Basic
Programming
IRC5 Programming Basic

Revised: 8-8-2011. REMAT L.L.C


IRC5 Programming Basic

Course Objectives

Course Objectives
Upon completion of this course the student will be able to
successfully:

 Practice safety as it pertains to the robot system.


 Identify and use the FlexPendant.
 Run the robot system in manual mode and automatic
mode.
 Interpret and respond to event messages.
IRC5 Programming Basic

Course Objectives

Course Objectives
Upon completion of this course the student will be able to
successfully:
 Load, create, save, delete, check and edit basic Routines using the
FlexPendant and Robot Studio Online software, based on the BMW
Body Shop Standard.
 Verify robot synchronization using a calibration checking routine.
 ***Understand the creation and Definition of a tool center point, using
the 4 point method. And then the 5 point method with the Z elongator
and the X and Z elongator.
 *** Understand the creation and use of a Work Object, and its use in the
programs. The correct selection of a Work Object for motion, and its
assignment in a motion point.
IRC5 Programming Basic

Course Objectives

Course Objectives
Upon completion of this course the student will be able to
successfully:

 Understand the use of different move instructions.


 Understand the differences with the BMW Body
Shop Move instructions and the ABB standard
motions.
 Use input and output instructions, and how to
interpret and react to them.
 Create routines, and the use routine instructions.
Modify these routines accordingly.
 Review the BMW ROBOT Standard.
IRC5 Programming Basic

Course Objectives

Course Objectives
Upon completion of this course the student will be able to
successfully:

 Use decision making instructions depending on


different conditions of the Routines
 Use registers and math instructions to successfully
track portions of your programs.
 Use teach pendant communication instructions.
IRC5 Programming Basic

Course Objectives

Course Objectives
Upon completion of this course the student will be able to
successfully:

 Use time instructions to help optimize your


routines.
 Use Offsets for movement instructions.
 Use work objects for position reference.
 Understand and update Revolution Counters.
Safety IRC5 Programming Basic
IRC5 Programming Basic

Introduction

 Students participating in courses


arranged by need to have
knowledge about safety
procedures from the Operator’s
Manual and Product Manual.
 In addition to instructor information,
students should study the
manuals. They must acknowledge
the understanding of safety
procedures and how to work with
robots on the training premises.
IRC5 Programming Basic

Accident Risks

 Fault tracing
 Repair
 Change of
program
 Test run

Always avoid Pinch POINTS


IRC5 Programming Basic

LOCK OUT
Use Lock out Devices.
IRC5 Programming Basic

Safety Solutions – an Overview

 Emergency stop
 Operating mode
 Auto
 Manual -< 250 mm/s
 Manual 100%
 Enabling device
(Dead mans grip)
 Safeguard stop
(Auto and Manual)
 Limiting the workspace
IRC5 Programming Basic

Law Demands

 The construct design for the robot is to comply with


requirements that are stated in i 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
IRC5 Programming Basic

Emergency Stop

 Built in emergency stop


pushbuttons are found both
on the FlexPendant and
Control module standard.
 Extra emergency stops can
be connected to the robot
systems safety chain.

Recover by resetting pushbutton and


pressing the Motors On button.
IRC5 Programming Basic

Operating Mode

 Automatic mode
 Production mode (no speed limit) max
7000 mm/s
 Manual mode
 < 250 mm/s – max velocity 250 mm/s
 100 % – Option, robot can be
jogged/tested with no speed limit.
IRC5 Programming Basic

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
IRC5 Programming Basic

Safeguard Stop

 The connection of safeguard stop enables inter-locking


of external safety equipment, such as: doors, photo-
electric trip device, photo cells or sensible mats
 There are two categories of Safeguard stop:
 Manual – the safeguard stop is active regardless of operating
modes (Emergency Stop, General Stop, Superior Stop) (full
time stop)
 Auto – the safeguard is active when automatic mode is selected
(Auto Stop) (Part time stop)
 It is possible 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. After approx. 1
second the power supplied to the motors shuts off.
IRC5 Programming Basic

Limiting the Workspace

 To avoid the risk of getting


caught between the robot and
the perimeter safety
equipment, e.g. a fence, the
robot’s workspace can be
limited:
 All axis can be software limited
 On some robots Axis 1–3 can be
limited by adjustable mechanical
stops and controlled by limit
switches
IRC5 Programming Basic

Safety Regarding Grip Device

 All grip devices should be designed so the work piece


will be held even on power failure and other
disturbances in the robot system
 There should be possibilities to release the work piece
manually
IRC5 Programming Basic

Electrical Safety

 Hazardous power in both the cabinet and the robot


 Control Module
 Power supply – 230 VAC
 Customer equipment – …
 Drive Module
 Power Source – 480 VAC
 Power supply – 230 VAC
 Power supply to robot motors – 370VDC up to 700 VDC
IRC5 Programming Basic

Safety Regarding Releasing the Brakes

 The brakes on the robot motors can be manually


released.
 Before the brakes are released, be sure the weight of
the robot arm is supported to avoid robot arm falling and
doing damage to equipment or people.
IRC5 Programming Basic

Safety Regarding Releasing the Brakes. TDC

 Here at the TDC: The Robots have a Collision protection


device at the Gripper; if the tooling is crashed, a
breakaway clutch will release the air; and an E-stop will
stop the Robot.
 In order to recover from the E-stop under a collision with
the Gripper is to re-locate the collision protection unit
back on its place. If it does not fit, the robot brakes must
be released in order to get the Gripper back in its place.
System Description IRC5 Basic Programming
IRC5 Programming Basic

Robot System

IRC5 Flexible Controller IRB 6600 Robot Manipulator


IRC5 Programming Basic

IRC 5 Controller

FlexPendant
Robot Studio Online

Main power switches


Control Module

Drive Module
IRC5 Programming Basic

Flexible Controller Outside


Main Disconnect

E-Stop

Motors On

Mode Selector

Run Chain Status


USB Port
Ethernet Service

Hour Meter

110 V Outlet
IRC5 Programming Basic

Six Axis Robot Movement


IRC5 Programming Basic

IRC5 – FlexPendant
Graphical color touch screen 4 Hard keys for fast access
Programmable

3-way joy stick

4 Hard keys for running programs


Start
Execute Backward/Forward
Stop program
IRC5 Programming Basic

IRC5 – FlexPendant
Menu Status bar
Main menu

Windows style
Quickset
“switch between
open windows/views” Note: No more than 6 windows open in the bottom.
IRC5 Programming Basic

Quickset button
IRC5 Programming Basic

Quickset button- cont.


IRC5 Programming Basic

Jogging the robot

Remember that the joystick assumes you are facing the front of the robot.
IRC5 Programming Basic

Quickset button Show Details


IRC5 Programming Basic

Jogging the robot


-3 +4
CCW
-5
+6
CCW

+2
+3 CW
CW

-4 +5 -6
-2
-5
-2
-1 +1
+4 -4
-1 +1
+6 -6
-3 +3
+5
+2

+Z Z
Y
+Y
-X
-X
X
-Y +Y
-Y +Y
+Z -Z
+Z -Z +X
+X
+X
IRC5 Programming Basic

Coordinate Systems
TCP Z
Y
X
Tool coordinates

Z Z
Y Y

X WorkObject
Base coordinates
X
Z
Y

X
World coordinates
IRC5 Programming Basic

IRC5 – FlexPendant

 Inputs and Outputs (I/O Window).

Output Output
Off On
IRC5 Programming Basic

IRC5 – FlexPendant

 Jogging window
Event Messages IRC5 Controller
Maintenance
IRC5 Programming Basic

Handling Events

 When a problem or possible problem occurs in the robot an Event


Message is displayed and saved in an event log.

 To Clear the Event press “Acknowledge”


 If an event is ignored a message will stay in the Status bar.
IRC5 Programming Basic

Introduction

I Event Messages are divided into.

 Information
 E.g: Hold to run must be pressed.
Information of how to proceed

 Warning
 E.g: Manual movement full speed is selected.
The operator is informed about a potential risk.

 Error
 E.g: Motor On when Emergency Stop is active.
The system cannot operate before a measure is
carried out.
IRC5 Programming Basic

Information

 E.g. Information at program start:


IRC5 Programming Basic

Warning

 When the computer detects a situation that can cause a problem or


is a safety risk
IRC5 Programming Basic

Error Message

 When the computer detects a problem or possible problem, it


generates an error message with description and action.
 Unacknowledged message is displayed in red on the status bar

Unacknowledged
message displayed
IRC5 Programming Basic

Event Message Content


 An Event Message consists of
 Description
 Consequences (optional)
 Probable causes (optional)
 Action (optional)

Tap arrow to scroll down


in message!
IRC5 Programming Basic

Reading Event Logs on the FlexPendant

 Via - Main menu


 Tap status bar – Short cut

Tap on Status Bar to see


Event log.

Or Tap then Event Log


to see Event log.
IRC5 Programming Basic

Event Log

Symbol Code Title Time stamp


IRC5 Programming Basic

Event Log

 Scroll the list with the yellow arrows


 Tap on a specific message to get more information
 The time stamp is not reliable on hundredth of seconds
IRC5 Programming Basic

Event Log

 Logs are stored under different topics


 Tap view and select the topic of interest
 Topic common consist of a mixture of the last created loggs
IRC5 Programming Basic

Event Categories
Category Error number Area__________________

Operational 10xxx Operational Status


System 20xxx Panel unit
Hardware 30xxx Board Failure
Program 40xxx Programming
Motion 50xxx Movement problem
Operation 60xxx Flex Pendant Handling
I/O communication 70xxx I/O board communication errors

ArcWeld 11xxx Process


SpotWeld 12xxx Process
Paint 13xxx Process

 Refer to the error number when support is


needed!
IRC5 Programming Basic

Logs - Events in R.S.O

 The logs or events are avalible in R.S.O


 Refered to as Events in your RobotView
IRC5 Programming Basic

Exercise 1

 BMW_EXERCISES.ppt
The Fundamentals in IRC5 Basic Programming
Robot Programming
IRC5 Programming Basic

Topics

 Create and edit a ROUTINE


 Program Move instructions
 Use velocity and zones
 Execute step-by-step
 Running in Manual mode
IRC5 Programming Basic

Sample Routine

Sample Routine
IRC5 Programming Basic

IRC5 Program File structure


Tap ABB
Tap Program Editor
Tap Debug
Tap PP to main
Or choose the pp to the
routine desired.

Notice that all the Jobs


are created under the
F25_XXX_XX module,
which will be called from
“MAIN” using the
JOBDATA
Configuration to talk to
the PLC.
 NOTE: At BMW, the MODULE with motion routines is usually
under the ROBOT’s name. The routines use F25 in front: E.g.
F25_FX10_WELD1
IRC5 Programming Basic

IRC5 Program File structure, EXAMPLE


Tasks found in backup example Module Routine
T_FAULT    
T_GRIPPER    
T_ROB1    
  UBG_20R3  
    DROP_GRIP1, DROP_GUN1
    F25_ST20_BC2_DROP
    F25_ST20_BC2_PICK
    F25_ST20_FX20_WELD
    F25_ST20_FX20_WELD
    GET_GRIP1, GET_GUN1
  UID_DATA  
  UIP_SPOT  
    DRESS_GUN1
    MAINT_GUN1
    MV000_HOME1EqSetup_FS1, ETC
    TIP_CHANGE
    TIPChangeALL
    WELD_TEST_GUN1
  UIP_TECH  
    HOME1, HOME2, HOME3
    MAINT_GRIP1
    MV_CALIB
    MV_HOME1_HOME2, ETC

    MvSynchSwitch
IRC5 Programming Basic

Creating a Module or a Routine

 To Create a new Routine: (BMW Standard)


-Tap ABB
-Tap Program Editor
Main or another
Routine is selected
-Tap Module
Find the module you
want to work on, and Show it
-Tap File/ New,
And type the correct name.
IRC5 Programming Basic

MoveJ or MoveL? And MoveJP or MoveLP?

MoveJP

Joint interpolation is often the fastest way to move between two points as
the robot axes follow the closest path between the start point and the
destination point (from the perspective of the axis angles). Use when in
open spaces such as moving from one fixture to another.

MoveLP

LINEAR interpolation is the most accurate motion between two points.


The robot will maintain a straight line of the TCP from the starting point to
the end point. If this is not possible an event will be generated. Use
when robot is moving close to other objects such as fixtures or
parts.
IRC5 Programming Basic

Ex. Move Instructions with BMW Standard

MoveJP p10, Job01, Seg01, v500, z5, tGripper\Wobj:= Fx10;


MoveLP *, Job01, Seg01, v500, z5, tGripper\Wobj:= Fx10;

In the 1st instruction above; fill in the blank:


The robot is moving to:___________in:________
P10 Joint

Which is Job #:______________________


01
And Segment #:______________________
01
At a speed of: ______________________
500 mm/sec
With a zone of: _____________________
5 mm
TCP: ______________________ tGripper
And a Work Object: ______________________
FX10

To change any part of an instruction double tap that part.


IRC5 Programming Basic

Changing a Program

Select item to
change by double
Tapping.

Then choose new


value and press
OK.
IRC5 Programming Basic

Move Instructions

Notice the differences


between the motion
points.

Note to the body shop:


Always use the
BMW Instructions,
unless they are not
Available.
IRC5 Programming Basic

Velocity and Zones

z
MoveLP p40, v1000, z40, tool0;

MoveLP p40, v1000, Fine, tool0; will


get you exactly to the point.

MoveLP p30, v300, z30, tool0;


IRC5 Programming Basic

Modifying a Position

Step to the move


to be modified.

Jog the robot to


the new position.

Tap
Modify Position
IRC5 Programming Basic

Debug option

Program
Pointer
(PP)
IRC5 Programming Basic

Checking Robot Calibration

 MoveAbsJP
 Create a new routine (GotoCalib)
 Insert MoveAbsJP instruction
 Choose star position, Debug / View Value, put all 6 axis to zero
IRC5 Programming Basic

Move Instructions

o position in air
x position on paper
ROBOT

o pHome

o p60
p40 x x p10

x p50

p30 x x p20
IRC5 Programming Basic

Inserting Move Instructions


 To add instructions to your program:
Tap Add Instruction
Jog robot into the desired position
Tap MoveJP or MoveLP
(Used at BMW)
To name the Position

Double tap the * and press new


Change the name by pressing

the … Box
Jog robot to next position
Repeat
IRC5 Programming Basic

Inserting Move Instructions


 To add instructions to your program:
Tap Add Instruction
Jog robot into position
Tap MoveJP or MoveLP
To name the Position

Double tap the * and press new


Change the name by pressing

the … Box
Jog robot to next position
Repeat
IRC5 Programming Basic

Inserting Move Instructions


 To add instructions to your program:
Tap Add Instruction
Jog robot into position
Tap MoveJP or MoveLP
To name the Position

Double tap the *and press new


Change the name by pressing

the … Box
Jog robot to next position
Repeat
IRC5 Programming Basic

Inserting Move Instructions


 To add instructions to your program:
Tap Add Instruction
Jog robot into position
Tap MoveJ or MoveL

Name the Position “*”

Tap the * and press new


Change the name by pressing

the … Box
Jog robot to next position
Repeat
IRC5 Programming Basic

Running Programs in Manual Mode


 Procedure

Step Action Info/Illustration

1 Switch the robot to Manual Mode. How can I see if the system is in
manual mode?
Switch from automatic to manual
mode.

xx

DANGER!
Before running the robot, please observe the safety
information in section DANGER – moving manipulators
are potentially lethal!
IRC5 Programming Basic

Running Programs in Manual Mode


 Procedure

Step Action Info/Illustration

3 Select the “program Editor” from the start menu.

4 Tap on Debug.

5 Choose the desired option. .


-PP to Main
-PP to Routine
-PP to Cursor
-Cursor to PP
-Or Call Routine
6 -In order to move, remember to press the “dead Start
man”, and then the desired start Key
Execute Backward/Forward
Stop program
IRC5 Programming Basic

Stepping Instruction by Instruction


 In Manual Mode, the program may be executed step-by-step Line
by Line forwards or backwards.
 There are number of dedicated hardware buttons on the FlexPendant

Programmable button 1. How to define it's function is


detailed in section Hardware buttons and buttons in
Operator's manual – IRC5 with FlexPendant.

Programmable button 2. How to define it's function is


detailed in section Hardware buttons and buttons in
Operator's manual – IRC5 with FlexPendant.

Programmable button 3. How to define it's function is


detailed in section Hardware buttons and buttons in
Operator's manual – IRC5 with FlexPendant.

Programmable button 4. How to define it's function is


detailed in section Hardware buttons and buttons in
Operator's manual – IRC5 with FlexPendant.

RUN button. Starts program execution.

STEP BACKWARDS button. Steps the program one


instruction backwards.
STEP FORWARDS button. Steps the program one
instruction forwards.
STOP button. Stops the program execution.
IRC5 Programming Basic

Stepping Instruction by Instruction (2)


 Select stepping mode
Step Action Info/Illustration
1 Selection of step mode. Described in Make run mode
properties selection.

 Stepping forward
Step Action Info/Illustration
1 Press the FWD button on the FlexPendant as
shown in the illustration on earlier page.

 Stepping backward
Step Action Info/Illustration
1 Press the BWD button on the FlexPendant as
shown in the illustration on earlier page.
IRC5 Programming Basic

Stopping Execution
 Procedure

Step Action Info/Illustration

2 During operation without hold-to-run control:


Press the STOP button on the FlexPendant unit.

3 When running in step-by-step mode, the robot will


stop after executing each instruction.
IRC5 Programming Basic

Program Select, Job Select

From the “Program Editor”,


After having selected PP to
Main, if running the program
with the DEAD MAN and the
Start key, there will be
several choices to select:

Start
Execute Backward/Forward
Stop program
IRC5 Programming Basic

Exercise 2

 BMW_EXERCISES.ppt
Backup & Restore IRC5
IRC5 Programming
Basic Programming
Basic
IRC5 Programming Basic

Topics

 Backup
 Why?
 When?
 How?
 Precautions
 What is stored
IRC5 Programming Basic

Backup
 Having a valid backup is necessary for fast recovery:
 If the system behaves differently. (Other than normal)
 After software upgrades
or replacement

 Tap ABB
 Tap Backup and Restore
 Tap Backup Current
System
IRC5 Programming Basic

Backup
 What does a backup contain?
 All of the files/folders stored under Home directory in your
system on your flash drive.
 The system parameters (e.g naming of I/O signals)
 All current programs, modules, and tasks currently in memory.
 A backup contains the info that allows your system to go back to
behave as it did when the backup was taken.
IRC5 Programming Basic

Backup
 Always
 Give your backup a good name.

 Pay attention to the Path/ Location. …


 Store the finished Backup in a safe place. Like a Backup folder.
IRC5 Programming Basic

Backup and Restore – Backup the System


Use the green arrow up folder to go up a level till you get to the hdoa, or bd0.
IRC5 Programming Basic

Backup and Restore – Backup the System


Use the green arrow up folder to go up a level till you get to the hdoa, or bd0.
Then Pick what location you want.

To create a
new folder
IRC5 Programming Basic

Backup and Restore – Backup the System


IRC5 Programming Basic

Restore

 Remember
 Always check if you are restoring the correct Backup Folder.
IRC5 Programming Basic

Backup and Restore – Backup the System

 recommends performing a backup:


 Before installing new RobotWare
 Before making any major changes to instructions and/or
parameters to facilitate the previous setting
 After making any changes to instructions and/or parameters and
testing the new settings to retain the new successful settings
IRC5 Programming Basic

Backup
 Procedure

Step Action Info/Illustration

1 Tap .

2 Tap Backup and Restore.

xx0300000469
IRC5 Programming Basic

Backup
 Procedure

Step Action Info/Illustration

3 Tap Backup.

Xx0300000440

The set backup directory is displayed.


IRC5 Programming Basic

Backup
 Procedure
Info/
Step Action Illustration
4 Is the displayed directory the correct one?
If YES: Tap Backup at the bottom of the screen to perform
the backup to the selected directory.
If NO: Tap … to the right of the directory and proceed below.

xx0300000441

A backup file named according to the current date is created.


IRC5 Programming Basic

Backup
 Procedure
Info/
Step Action
Illustration
5 Select the desired directory.

6 When the desired directory is shown, tap OK.

xx0300000443
IRC5 Programming Basic

Backup and Restore – Restore the System

 recommends performing a restore:


 If, for any reason you suspect the program is corrupt
 If any changes made to the instructions’ and/or parameters’
settings did not prove successful, and the previous settings is
desired
 During the restore, all system parameters are replaced
and all modules from the backup directory are loaded
 The Home directory is copied back to the new systems
HOME directory during the warm start
IRC5 Programming Basic

Restore
 Procedure

Step Action Info/Illustration

1 Tap .

2 Tap Backup and Restore.

xx0300000439
IRC5 Programming Basic

Restore
 Procedure

Step Action Info/Illustration

3 Tap Restore.

Xx0300000440

The set backup directory is displayed.


IRC5 Programming Basic

Restore
 Procedure
Info/
Step Action Illustration
4 Is the displayed directory the correct one?
If YES: Tap Restore at the bottom of the screen to perform
the backup to the selected directory.
If NO: Tap … to the right of the directory and proceed below.

xx0300000441
IRC5 Programming Basic

Restore
 Procedure
Info/
Step Action Illustration
5 Select the desired directory.

6 When the desired directory is shown, select the


correct backup file and tap OK. Then tap Restore.

xx0300000444

The Restore is performed, and the system is warm


started automatically.
IRC5 Programming Basic

Exercise 3

 BMW_EXERCISES.ppt
Rev.Count update IRC5
IRC5 Programming
Basic Programming
Basic
IRC5 Programming Basic

Topics

 Revolution counters
 Fine calibration
IRC5 Programming Basic

Calibration – IRC5

 Fine Calibrate or Rev.Count update?


 Rev.Count update can easily be made with no special tools.
 Fine calibration needs special tools.
IRC5 Programming Basic

Rev. Counters

 Rev.Counter
 Tells how many turns the motor has rotated in the gearbox.
 If value is lost the robot cannot run any programs.
 A message notifies that the Rev.Counters need to be updated.
(e.g. If battery in SMB is drained)
IRC5 Programming Basic

Updating Rev. Counters

1. Use the Joy stick and


Move the Robot to
the Calibration
Position and align
the witness marks.
IRC5 Programming Basic

Updating Rev. Counter Procedure


1. Jog the robot to the witness marks / Calibration
position.
2. Tap : Calibration
3. Select the robot to be calibrated.
4. Tap Update Revolution Counter
5. Tap YES to confirm this is what you want to do.
6. If needed select the axes to be updated.
7. Tap Update and Update again.
IRC5 Programming Basic

Checking Robot Calibration

 MoveAbsJ
 Create a new routine (GotoCalib)
 Insert MoveAbsJ instruction
 Choose star position, Debug / View Value, put all 6 axis to zero
IRC5 Programming Basic

Fine Calibration

 Fine Calibration
 Tells the current angle of motor shaft when robot is in sync
position
 Is tuned in by or on site with special equipment
 Only needs to be retuned if a motor / gearbox is replaced

Requires special tools!


Cannot be made correctly
by eye Measurement.
IRC5 Programming Basic

Edit Motor Calibration Offsets

 Type in the fine calibration values manually


 Use moc.cfg values from Backup, Silver label in back of
manipulator with 6 values, or original Motor Calibration
values on floppy shipped with system.
IRC5 Programming Basic

Exercise 4

 BMW_EXERCISES.ppt
Tool Center Points IRC5
IRC5 Programming
Basic Programming
Basic
IRC5 Programming Basic

Tool Coordinate System

 Tool coordinate system

Tool coordinates
Y
Tool0

X Z
 Benefits using Tool:
 Jogging
 Re-orientation
 Easy to change
Z
Y  Control Speed
 Follow Path
Base coordinates

X
IRC5 Programming Basic

Coordinate System

 Different examples of tools and TCPs.

TCP
TCP

TCP

TOOL0
TCP

Tool0 is always the


ref.point for the other tools
IRC5 Programming Basic

Defining and Using a Tool

YFlange

ZFlange X Tool
XFlange

YTool
TCP with
tool calibration

Z Tool
IRC5 Programming Basic

Defining a Tool
 Create a Tooldata on FlexPendant
 Tap on ABB : Program Data : ToolData : Show Data : New

 Give tool a name.


 Tap Initial Value.
IRC5 Programming Basic

Define a Tool Center point, 4-point Method

 Tap the new tool name then press


Edit.
 Tap Define.
 Choose Method.
 No. of points if applicable.
 Choose Point1.
 Jog robot to
reference pointer.
 Tap Modify Position.
 Reposition robot.
 Tap Modify Position.
 Repeat for all four Points.
 Tap OK.
IRC5 Programming Basic

Define a Tool Center point, 4-point Method

 Tap the new tool name then press


Edit.
 Tap Define.
 Choose Point1.
 Jog robot to
reference pointer.
 Tap Modify Position.
 Reposition robot.
 Tap Modify Position.
 Repeat for all four Points.
 Tap OK.
IRC5 Programming Basic

How to Define the working direction of a tool


IRC5 Programming Basic

How to Define the working direction of a tool

Choose 4 Point & Z method. To


4 3 create the fifth point for the z-
elongator move the tool so that it
2
is in perfect alignment with the
1 forth point of the 4 point method,
with a raised z value. You may
lock the joystick to allow
movement only in Z.
IRC5 Programming Basic

Define a Tool, 3-point Method, then the elongator


 tPen calibration example
IRC5 Programming Basic

Exercise 5

 BMW_EXERCISES.ppt
IRC5 Programming Basic

Defining a Tool Load

Every IRC5 has a service routine called LoadIdentify. It is


used to define the mass and center of gravity of a tool
and/or a part that the tool picks up (Payload or Loaddata).

Arm Load

PayLoad

Tool Load

ManLoadIdentify is used to define external axis loads.


_________________
IRC5 Programming Basic

Defining a Tool Load


Activate the tool and in the jog window, then. To go to the
LoadIdentify routine tap Debug : Call Routine. Select
LoadIdentify then tap “Go to”. Then hold the enable device
and start the program. In auto, press the “Drives On”
Then follow the directions as they appear on the screen.
IRC5 Programming Basic

Things to Remember

Before using Load Identification (LoadID) make sure the following


conditions are met:

Tool is correctly mounted.


Remember:
Axis 6 is not near limits. Should be “0” Create Tooldata before
Tool Load.

Axis 4 is at 0. Create LoadData before


Payload.
Arm load defined. (If it is used)

Speed override set to 100%.


IRC5 Programming Basic

Responses and Results


When asked to run in slow speed respond NO because nothing is
calculated at slow speed. However, if unsure about tool cable length
then slow speed can be used. Follow all instructions as requested.

When asked about the mass for known or unknown choose unknown
and the system will do a fine tune of the tool weight.

When asked about the angle that axis 6 is to move while performing
the test it is best to select +90 or -90 degrees. This will give the best
results. If the tooling is unable to make this amount of rotation choose
other. A minimum of 30 degrees must be specified.
 
At the end of the procedure the following information is given:
 
Mass (kg)= 2.3 Kg
Centrer of Gravity(mm) X= -87.5
Centrer of Gravity(mm) Y= 2.6
Centrer of Gravity(mm) Z= 89.1
Measurement Accuracy = (Should be greater than 80%)
(If not then run again)
IRC5 Programming Basic

Exercise 6

 BMW_EXERCISES.ppt
IRC5 Programming Basic

Create a Work Object

Figure drawn in a work object


IRC5 Programming Basic

Work Object Coordinate System

 User Coordinate System


 Object Coordinate System
Z
Y

TCP Z WorkObject
Y
X X
Tool coordinates

Z
Y
X
Base coordinates
IRC5 Programming Basic

Work Object Coordinate System

 Define coordinate systems

Object
User User
IRC5 Programming Basic

Create a Work Object

 Activate the measuring tool


(tPen)
 Create the work object
 Define the coordinates

Origin y1

x1 Work object axis Y

x2
wobjA4

Work object axis X


IRC5 Programming Basic

Activating a Work Object


IRC5 Programming Basic

Activating a Work Object


IRC5 Programming Basic

Activating a Work Object


IRC5 Programming Basic

Activating a Work Object


IRC5 Programming Basic

Activating a Work Object


IRC5 Programming Basic

Using a Work Object

MoveAbsJp pHome, v1000 , z50 , tPen;


MoveJ pTri10, v1000, z50, tPen \ WObj := wobjA4;
.... ;

o pHome
o position in air
x position on paper

Origin o pTri10 y1
/
work object axis Y
x1 --
x pTri20

pTri40 x
x pTri30
x2 --

work object

work object axis X


IRC5 Programming Basic

Exercise 7

 BMW_EXERCISES.ppt
Structured Programming IRC5
IRC5 Programming
Basic Programming
Basic
IRC5 Programming Basic

Topics

 Program I/O instructions


 Create structurized Routines
 Test your Routines
IRC5 Programming Basic

Basic I/O Instruction Choices.


To Turn Outputs on or off:
Set _____________________________
Turns output on and leaves it on
Reset ______________________________
Turns output off and leaves it off
SetDo Turns
__________________________________________
output on or off plus the optional argument
of a delay
To just change the status of an output use
_______________.
InvertDO

To turn an output on for a short time, then off again


use _____________.
PulseDo
To change the amount of Pulse time go into
____________.
Opt. Arg.
IRC5 Programming Basic

Basic I/O Instructions

The ______________
WaitDI instruction is used for waiting
for a single input.

The ______________
WaitUntil instruction is used to wait for a
complicated condition.

The ______________
Waittime instruction is used for waiting
for an amount of time.
IRC5 Programming Basic

I/O Instructions
IRC5 Programming Basic

I/O Timing

P50 p10

P20
P40
DT
P30

DT is a time dependant on processor load.


IRC5 Programming Basic

I/O Timing

p10
P50

P40
P20

P30
IRC5 Programming Basic

Structured Programming
 Structured
 Well defined routines
- easy to test TDC Example Module Routine
T_FAULT    
- easy to re-use T_GRIPPER    
- easy to trace faults T_ROB1    
  TDC_F25_R01  
 Easy to read  
 
 
 
F25_AIR
F25_PICK_CUBE
    F25_DROP_CUBE
    F25_TABLE_SIM1 AND 2
    F25_DROP_CUBE_ON_TABLE
  UID_DATA  
  UIP_TECH  
    HOME1, HOME2, HOME3
    MV_CALIB
    MV_HOME1_HOME2, ETC
    MvSynchSwitch
IRC5 Programming Basic

Creating Routines
 How to create and program routines.
 Must be in the Program Editor.
 Tap Routines : File
 New Routine : Tap “ABC…”
to change the name.
 Tap OK.
 Select the routine.
 Tap Show routine.
IRC5 Programming Basic

Exercise 9

 BMW_EXERCISES.ppt
Program Flow IRC5
IRC5Basic Programming
Programming
Basic
IRC5 Programming Basic

Control with I/O Signals

 House keeping routine.


 Check Calibration Routine.
 Run the Table Routines depending on the decision
asked.
IRC5 Programming Basic

Program Flow – Decision Making Instructions


 In previous exercises we have been programming using
line by line execution. This is extremely limiting when
creating bigger programs.

IF Class_input6=1 THEN
Get_cube ;
ELSE
return ;
ENDIF
IF
THEN Class_input6=1
ELSE

Get_cube Return_cube
ENDIF
IRC5 Programming Basic

More Complicated Decision Making


IF Class_input1=1 THEN
Table1 ;
Optional Argument ELSEIF Class_input2=1 THEN
Table2 ;
ELSE
return ;
ENDIF IF
THEN ELSE
Class_input1=1

Table1
THEN ELSE
Class_input2=1

Table2 Return

ENDIF
IRC5 Programming Basic

Program flow IF
 To add Else and Elseif Double tap just the word IF.
IRC5 Programming Basic

Program flow IF
 The screen changes to this
IRC5 Programming Basic

Program flow IF
 And now your ready to plug in the data
IRC5 Programming Basic

Program flow IF
 Double tap the EXP
IRC5 Programming Basic

Program flow IF
 Select change data type Select Signaldi

Select the signal to use and add the expression Pick the appropriate Expression
IRC5 Programming Basic

Program flow IF
 Select Edit, Only selected for just the Highlighted cursor
IRC5 Programming Basic

Program flow IF
 Then type a 1 or 0 for on and off
IRC5 Programming Basic

WaitUntil
 To get the optional arguments Double tap the instruction
IRC5 Programming Basic

Program flow IF
 Then optional argument
IRC5 Programming Basic

Program flow IF
 Select the argument and touch use
IRC5 Programming Basic

Program flow IF
 Select the argument to use. Then close
IRC5 Programming Basic

Program flow IF
 OK
IRC5 Programming Basic

Program flow IF
 Now enter the data to use with the arguments
IRC5 Programming Basic

Exercise 10

 BMW_EXERCISES.ppt
Working with Numbers IRC5
IRC5Basic Programming
Programming
Basic
IRC5 Programming Basic

Working with Numbers


When working with numbers use the data type ________.
num

It will usually be a ______________


Variable type of data.

This data type is designated by the letter ____


n or the letters _____
reg before
the name.
Example: nCount, reg1, reg2, nCycles, nParts

The robot has the following instructions that can be used when
working with numbers:
:= (Assign) _______________________
ADD, Clear, r, Decr Remember to create
the data you need
Example: nCounter := nCounter+1;
before you start or
r nCount;
with the instruction.
nCount:=0;
Clear nCount;
Add nCount, 1;
IRC5 Programming Basic

More Numbers
The Assign (:=)instruction can also do other mathematics such as:
___________________
ADD
___________________
Subtract
___________________
Multiply and more

IF
To make decisions using a number, use the ___________ or
Compact IF instructions.
__________

Example: IF nCount>=10 rTipClean;


or
IF nCount>=10 THEN
rTipClean
ENDIF;
IRC5 Programming Basic

Inspect every third part

 Inspect every third part


F25_TDC_R01

Get_cube Return_cube
nCount=3

di1=1 di2=1 Inspect

Table1 Table2
Good Part Bad Part

Return_cube Reject_On_table
GotoCalib
IRC5 Programming Basic

Exercise 11

 BMW_EXERCISES.ppt
Operator IRC5
IRC5Basic Programming
Programming
Communications Basic
IRC5 Programming Basic

Communicate with Operator


Messages can be written to the screen to make a robot
program more operator friendly.
IRC5 Programming Basic

Communicate with Operator


 TPWrite instruction is used to write messages to the screen.
Certain data values can also be written.
 TPErase instruction is used to clear the message from the screen.
IRC5 Programming Basic

Communicate with Operator

The decision is made by the operator/inspector.


IRC5 Programming Basic

Communicate with Operator

 TPReadFK

TPReadFK nFKey, “Is this a GOOD or BAD part?”, stEmpty, “GOOD”, stEmpty, “BAD”, stEmpty;

(1) 2 (3) 4 (5)

The TEST instruction can be used to make decisions.


IRC5 Programming Basic

Communicate with Operator

 Select num data by Tapping “Insert Expression”


IRC5 Programming Basic

Communicate with Operator


The TEST instruction is quite similar to an IF instruction.

Double Tap
the
instruction
IRC5 Programming Basic

Communicate with Operator


Choose the DEFAULT and how many CASE segments you
need.
IRC5 Programming Basic

Communicate with Operator


Now just tap the EXP and enter the expression
Then tap SMT and select instruction (PROCALL).
IRC5 Programming Basic

Communicate with Operator

 TPReadNum TPReadNum nfigures, “How many figures do you want?


IRC5 Programming Basic

Exercise 12

 BMW_EXERCISES.ppt
Work object and More IRC5
IRC5 Programming
Basic Programming
Basic
IRC5 Programming Basic

Topics

 Clock instructions.
 Repeating a section of a program
 Understand the “For Endfor” loop.
IRC5 Programming Basic

Clock Instructions

 Clock Instructions
When using a clock as a stop watch:

ClkReset - used to set clock value to 0

ClkStart - used to begin a clock functioning as a


stopwatch

ClkStop - used to stop a clock functioning as a


stopwatch
IRC5 Programming Basic

Clock Functions

 Clock Functions
ClkRead - reads clock stopwatch value

Cdate - reads current system date

Ctime - reads current system time

 Example:
IRC5 Programming Basic

Repeat Routine/Instruction

 FOR is used when something (instruction/routine) needs


to be repeated a number of times. Either with a fixed
value or with a variable value.
 For, makes it easier to change the number of times
something needs to be repeated.
IRC5 Programming Basic

Repeat Routine/Instruction

 FOR FOR i FROM 1 TO 5 DO


5 rutin1;
ENDFOR

FOR i FROM 1 TO nReps DO


MoveJ ..... ;
MoveJ ..... ;
nReps WaitTime..... ;
MoveJ ..... ;
... ;
ENDFOR
Programming with Offsets IRC5
IRC5 Programming
Basic Programming
Basic
IRC5 Programming Basic

Circular Movement

 MoveC

pStart

p10

p20
IRC5 Programming Basic

Circular Movement

 Circle with MoveC’s

pStart

This robtarget can be copied and pasted

p30 p10

p20
Press Modify pos
IRC5 Programming Basic

Function Offset

Function Offset
In the Move command position definition, choosing
function will enable move with offset (Offs). A
displacement of the robot position.
Example
Used to displace a position
Move type Speed
from original position
C, J, L Accuracy

Move_ Offs(pStart,-100,0,0), v500, fine, toolx;


Z Offset
Position data to
Y Offset
be displaced
X Offset
IRC5 Programming Basic

Making a Perfect Circle

To Make a Perfect Circle


MoveL pStart, v500, fine, toolx;
MoveC Offs(pStart,-100,-100,0),Offs(pStart,-200,0,0),v500,z1,toolx;
MoveC Offs(pStart,-100,100,0), pStart,v500,z1,toolx;

Which direction will


the circle be drawn?

CW or CCW
IRC5 Programming Basic

Offset Example

Example
IRC5 Programming Basic

Square with Offsets

MM X
Example 100
Which quadrant will
the square be drawn?
75
1 2
50 1 2 3 4
25
100 75 50 25 -25 -50 -75 -100
Y MM
-25
pSTART
-50
3 -75 4
-100

From the previous example program:


_____________is
pSTART the FIRST point of drawing a square
and also the ____________point
LAST of the square.
IRC5 Programming Basic

Exercise 13

 BMW_EXERCISES.ppt

You might also like