0% found this document useful (0 votes)
7 views

Teach Pendant Programming

Programming and trouble shooting guide for Fenuc Robotics

Uploaded by

tobeysteve.86
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
7 views

Teach Pendant Programming

Programming and trouble shooting guide for Fenuc Robotics

Uploaded by

tobeysteve.86
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 68

Programación con Teach Pendant

Guía Estudiante

Last Revised: 01-15-20


Table of Contents

TOPIC PAGE
Safety 3
Pre-Test 5
Teach Pendant Operators 12
Power up & Jogging in Joint 13
Coordinate Frames 15
World Frame (User Frame 0) 17
Tool Frame (Tool Center Point) 18
User Frames 19
Position Data (x,y,z,w,p,r) 20
TCP (Tool Center Point Offset) 3-Point & Direct Entry Methods 23
User Frame Offset (Origin, x-Direction, Y-Direction) 3-Point Method 24
Create, Teach & Test Run a Motion Program 33
Edit Commands 34
Motion Instructions (1: L P[7] 100mm/sec CNT100) 36
Circular Motion (Circles & Concentric Arcs) 39
Program Logic Instructions 41
Programming Tips 44
Program Adjust 46
User Frame Set Logic 49
Program Structure 51
File Utilities (Backups, Uploading, downloading files…) 52
Motion Group 2 (Table/Wall/Rail) Jogging & Programming 58
Program Shift (Duplicating Shapes) 65
Mirror Image Shift (Mirrored Duplicate Shapes) 65
Production Program Example 68
Post Test 69
Course Evaluation 72

P á g i n a 2 | 68
Safety
DRS is not and does not represent itself as an expert in safety systems, Safety
equipment, or the specific aspects of your company and / or its work force. It is
the responsibility of the owner, employer, or user to take all necessary steps to
guarantee the safety of all personnel in the workplace.
Additionally, as the owner, employer, or user of a robotic system, it is your
responsibility to arrange for the training of the operator of a robot system to
recognize and respond to known hazards Associated with your robot system and
be aware of the recommended operating procedures for your Particular
application and robot installation.
DRS therefore, recommends that all personnel who intend to operate, program,
repair, or otherwise use the robotic system be trained in an approved training
course and become familiar with the proper operation of the system. Persons
responsible for programming the system- including the design, implementation,
and debugging of application programs must be familiar with the recommended
programming procedures for your application and robot installation.

The following guidelines are provided to emphasize the importance of safety in


the workplace.

• Clearly identify the work envelope of each robot in the system with
floor marking, signs, and special barriers. The work envelope is the
area defined by the maximum motion range of the robot, including any
tooling attached to the wrist flange that extends this range.

• Position all controllers outside the robot work envelope.

• Never rely on software as the primary safety element.

• Mount an adequate number of EMERGENCY STOP buttons or


switches within easy reach of the operator and at critical points inside
and around the outside of the work cell.

• Whenever possible, install safety fences to protect against


unauthorized entry by personnel into the work envelope.

• Install special guarding that prevents the operator from reaching into
restricted areas of the work envelope.

• Use interlocks.

• Use presence or proximity sensing devices such as light curtains,


mats, and capacitance and vision systems to enhance safety.

• Make sure all external devices are properly fitted, grounded, shielded,

P á g i n a 3 | 68
and suppressed to prevent hazardous motion due to the effects of
electro- magnetic interference, radio frequency interference, and
electro-static discharge.

• Make provisions for power lockout and tag out at the controller.

• Eliminate pinch points. Pinch points are areas where personnel could
get trapped between a moving robot and other equipment.

• If materials are being applied at dangerously high pressure, provide


electrical interlocks for lockout of material flow and pressure.
• Advise all personnel who must teach the robot or otherwise manually
operate the robot to observe the following rules:

• Know whether or not you are using an intrinsically safe teach pendant
if you are working in a hazardous environment.

• Before teaching, visually inspect the robot and work envelope to make
sure that no potentially hazardous conditions exist.

• DRS recommends that no one enter the work envelope of a robot that
is on. However, if you must enter the work envelope, be sure all
safe guards are in place, and check the teach pendant DEADMAN
switch for proper operation. Take the teach pendant with you, turn it
on, and be prepared to release the DEADMAN switch. Only the person
with the teach pendant should be in the work envelope.

• Know the path that can be used to escape from a moving robot, make
sure the escape path is never blocked.

• Isolate the robot from all remote control signals that can cause motion
while teaching.

• Test any program being run for the first time.

Stay outside the robot envelope whenever a program is being run.

P á g i n a 4 | 68
Course Description

TEACH PENDANT This course covers the task and procedures that
PROGRAMMING an operator, technician or programmer needs to
AND OPERATIONS setup and program a robot using standard
software. In addition to presentations and
demonstrations, this course offers a series of
lab exercises for the student to complete. Lab
exercises relate directly to the classroom
presentations and are intended to reinforce
what the student has learned through actual
hands on experience.

COURSE GOAL Upon successful completion of this course, the


student will be able to perform start-up and
shutdown procedures, set-up the system to run
a program, and perform error recovery
procedures, as well as follow recommended
safety precautions.

AUDIENCES This course is intended for the person who must


set-up and record a program on a system R-J3
controller using basic controller software.

PRE REQUISITES None

COURSE TIME 3 Days/24 hours

P á g i n a 5 | 68
Course Task List

1. Jog the robot

2. Coordinate Frames

3. Create a Tool Center Point

4. Create a User Frame

5. Create/edit a motion program

6. Use non-motion program instructions

7. Use Position Registers

8. Adjust TP programs via Program Adjust, and teaching a new User


Frame

9. Create a complex TP program with sub-programs

10. Backup and restore controller files to an external device

P á g i n a 6 | 68
FANUC Robot Controller

Mode Select
Auto or T1

Power On
Disconnect

Copyright © 2014 Dynamic Robotic Solutions, Inc.


P á g i n a 7 | 68
FANUC Teach Pendant

E-Stop active with TP on or off

TP on or off

Current alarm or message


Current override
Status indicators speed

Current jog
system

Menu selection items


“TYPE” = Sub-menus

TP operators
Many are Deadman
shortcuts to
Switches
menus items.
See following
page for details.

Copyright © 2014 Dynamic Robotic Solutions, Inc.


P á g i n a 8 | 68
FANUC Teach Pendant Operators

Edit to take you to


active program “Function” keys for
menu item selection Data for registers, posn
registers, KAREL variables
Select/Create programs, program
detail, file management
Function items like abort
all, unsim I/O, cycle pwr…
Previous menu display
or selection Next menu display or
selection

Shift for manual motion


and key upper functions

Goup (robot or
Disply single, dual or turntable, aux axis…)
triplle menus

Cursor
Toggles step testing
mode
Jog Joint 1 or move the
TCP along the X plane

Item goes to specific


item in a numbered list Jog Joint 2 or move the
TCP along the Y plane
Test run forward and
backward
Jog Joint 3 or move the
TCP along the Z plane

Numerical entry keys Jog Joint 4 or rotate the


TCP about he X plane

JW or RW Jog Joint 5 or rotate the


Modules TCP about the Y plane

JW or RW Jog Joint 6 or roatate the


Adjust TCP about the Z plane

Setup frames, macros,


Error diagnostics and menu help collision guard…
screens
Override
Speed Toggles jog system or select
active frames
Position to display current position
of the robot or the TCP
I/O monitor, sim inputs,
fire outputs
Status of safety signals,
program timers, sw version

Copyright © 2014 Dynamic Robotic Solutions, Inc.


P á g i n a 9 | 68
Jogging in Joint

See the following pages for an overview of the teach pendant display and
operators.

Jogging in Joint is moving the robot axes manually using keys on the teach
pendant. Motions are rotations + and – relative to the mechanical zero position
for each axis.

1. Turn on the controller and wait for the software to boot


2. Turn the key switch on the operator panel to T1
3. Turn the teach pendant on
4. Hold in the dead man switch to the first click.
5. Clear any other faults (i.e. e-stop)
6. Press COORD until Joint is displayed in the upper right display
7. Select and jog/override speed with the % keys.
8. Press RESET
9. Hold a SHIFT key down
10. Press the J# and direction (+ or -) that you want to move
11. Press POSN to view robot current joint or “axis” positions in degrees.

To stop motion release the jog key, the SHIFT key, or the dead man switch.

Exercise
Jog the robot in JOINT to a desired location and watch your observe your JOINT
position data.

P á g i n a 13 | 68
P á g i n a 14 | 68
Jog Keys for Joint Motion

Rotates robot joint 1 in the positive direction

Self Quiz

1. What is the current JOINT position of J3 ?

2. What JOINT moves if you press the –Y key ?

P á g i n a 15 | 68
Coordinate Frames
A frame is a set of three planes at right angles to each other. The point where all
three planes intersect is the origin of the frame. This set of planes is called a
Cartesian coordinate system. In the robot system, the intersecting edges of the
planes are the x, y, and z axes of the frame.

The robot’s current position is measured as either:

• Angle measurements of each joint relative to it’s 0 (zero)

• A set of 6 numbers that define:

▪ The distance of the robot’s TCP from a base origin point

• Example: X=300 Y=425 Z=25 means the position is


300mm in the x direction, 425mm in the y direction,
and 25mm in the z direction from the origin.

▪ The orientation of the robot’s TCP – how many degrees the


TCP is rotated around the x, y, and z axes.

• Example, 0,-90,0 means that the position is rotated


negative 90 degrees about the y axis and is not
rotated about the x or z axes.

Motion of the TCP along the X,Y & Z planes

Rotation of the tool about the X,Y & Z planes

P á g i n a 16 | 68
Right Hand Rule for FANUC Robot
Coordinate Frames
The right-hand rule is used to determine the direction of TCP (tool center point)
motion relative to the x, y, and z planes of the specific jog system used.

The right hand rule says:

• +x direction is in the direction your index finger is pointing


• +y direction is in the direction your middle finger is pointing
• +z direction is in the direction your thumb is pointing.

This works for all the different frames the robot uses:

• World Frame (User Frame 0)


• User Frame (Relative to the programming target or fixture)
• Tool Frame (Relative to the tool tip)
• Jog Frame (Settable anywhere similar to a User Frame)

P á g i n a 17 | 68
Thumb Rule for FANUC Robot Coordinate Frames
The thumb rule is used to determine the direction of rotation about the X,Y & Z
planes. If you point your thumb in the positive direction of the plane the positive
rotation about that plane is in the direction that your fingers curl.

Example:

+Z plane

Right
Thumb

+ Rotation
about the Z
plane

P á g i n a 18 | 68
World frame (User Frame Zero) – a default frame that cannot be changed. The
origin of the world frame (0,0,0,0,0,0) is the reference position for user frame and
jog frame. The origin is located at a predefined position within the robot.

X
Y

Origin location of World Frame


(Same as User Frame 0)

P á g i n a 19 | 68
Tool frame -The default tool frame is a Cartesian coordinate system that has
the position of the tool center point (TCP) at its origin. When you set up a
UTOOL, you move the default UTOOL from the robot faceplate to the point on
the tool at which the application work is to be done. The TCP follows the tool
to allow you to align the tool frame and jog the TCP relative to surfaces that
are on an angle to the World Frame or the User Frame.

Nominal Tool Frame with


Z
origin (TCP) at the center of
Y the face plate

TCP

Offset
TCP

Offset TCP & Tool Frame to


Z where tool is doing work
X

P á g i n a 20 | 68
User Frame. A 3-dimensional plane of reference you can define for the fixture
or part (programming target) that you can jog the TCP relative to and all
program positions are taught relative to. i.e. a taught position represents the
location and orientation of the TCP relative to the User Frame and it’s origin
location.

Origin location of User Frame 1

The User Frame is an offset of, and relative to the World Frame (which is the
same as User Frame Zero)

Jog frame - The jog frame is a frame in which to jog easily. It allows you to align
the x, y, z coordinate system about a fixture or work piece that is rotated with
respect to the world frame of the robot. Like a User Frame but not used for
programming. Jog Frame is the same as World Frame unless offsets are
introduced as in the User Frame.

Practice jogging first in Joint, then World. Later you will define a new TCP and a
User Frame of reference.

Exercise
Practice moving the TCP in the WORLD frame of reference. Make sure you
practice changing the tool angle with the rotation keys as well as moving the
location of the TCP.

P á g i n a 21 | 68
Self Quiz

1. The TCP moves when the +Z key is pressed in WORLD Frame.

2. The tool rotates ‘about” the when the +X key is pressed in WORLD Frame.

P á g i n a 22 | 68
Position Data

Press POSN to display either the robot axis current position in degrees, or the
location and orientation of the Tool Center Point relative to the World Frame or
the User Frame.

All position data as it relates to the coordinate frames of reference is stored in the
same manner as a “location” and “orientation” of the item in question such as the
TCP (tool center point), the User Frame and program positions.

User Frame Zero and it’s origin are the basis or “master” frame for all other
offsets and positions. (User Frame Zero is the same as World Frame)

Position data is expressed as follows:


X
Y defines the “location” in mm
Z
W (rotation about X)
P (rotation about Y) defines the “orientation” or angle in degrees
R (rotation about Z)

User Frame Zero ex. User Frame 1


User Frame 0
X 0 X 1200 (Same as World)
Y 0 Y -500
Z 0 Z -200

W0 W 0
P 0 P 0
R 0 R 180

P á g i n a 23 | 68
Program Position Data

Program positions are defined by the location and orientation of the TCP relative
to the User Frame it was taught to.

Program Position
300mm above the
corner of the part Represents tool
location and angle
relative to the taught
position

Example Program Position data for a point taught 300 mm above the corner of
the box, relative to User Frame 1 and it’s origin.

X 530.389 TCP is 530.389 mm in the +X direction relative to the User Frame Origin
Y 921.774 TCP is 921.774 mm in the +Y direction relative to the User Frame Origin
Z 300.000 TCP is 300.000 mm in the +Z direction relative to the User Frame Origin
W -44.773 The tool is rotated -44.773 degrees about the X plane of User Frame 1
P 2.286 The tool is rotated 2.286 degrees about the Y plane of User Frame 1
R 92.382 The tool is rotated 92.382 degrees about the Z plane of User Frame 1

Self Quiz

1. The “location” of the TCO is stored in what engineering units of measure ?

2. The “orientation” or angle of the tool is stored in what engineering units of measure ?

P á g i n a 24 | 68
Defining a new TCP (Tool Center Point)
By default, the origin of the tool frame is on the faceplate of the robot. You must
move the origin of the tool frame to the position, both location and orientation,
where the work is to be done. This position is called the tool center point (TCP) .

The default Tool Frame is at the center of the face plate. Think of the faceplate
as an analog clock The default +X direction points up at 12:00, +Y points out at
9:00, and +Z comes straight out the center.

Nominal Tool Frame with


Z
origin (TCP) at the center of
Y the face plate

TCP

Teaching a Tool Center Point basically means relocating the XYZ of the Tool
Frame out to the tip of your end-of-arm tooling.

P á g i n a 25 | 68
Here is an example of a tool frame taught on a water jet nozzle. Note that +Z
now follows the direction that the tooling is pointing:

Here is an example of a tool frame taught on a router. Again, note that +Z now
follows the direction that the tooling is pointing:

P á g i n a 26 | 68
You can use the following methods to define the tool frame:
• Three point method
• Six point method (determines orientation/angles for offset tools)
• Direct entry method

DRS recommends using the three point method. This method teaches three
points relative to a reference point forming the corner of a cube.

See the photos on the next page for references of how to teach the 3 required
positions.

1. Press SETUP
2. Select Frames
3. Press Other and select TOOL
4. Press Detail for TOOL Frame 1
5. Press Method and select 3-Point Method
6. Cursor down to Approach Point 1
7. Move the TCP to the first approach point, press SHIFT + Record
8. Repeat for Approach Points 2 and 3
9. Press Method and select Direct Entry Method
10. Cursor to the “P” variable (for rotation about Y) enter – 70 for – 70
degrees.

***It is imperative that these positions be taught as accurately as possible***

P á g i n a 27 | 68
Teaching the 3 Approach Points for the Three Point
Method

APPROACH POSITION 1 APPROACH POSITION 2

APPROACH POSITION 3

Test your new TCP by changing the coordinate system to TOOL and setting the
current tool number to 1. Use the rotation keys to jog the robot. If done correctly
the robot will re-orientate around the pointer of the teach stand while maintaining
the robot’s TCP on the teach stand pointer.

Exercise
Use the 3-Point and Direct Entry methods to define your TCP offset and tool
angle.

P á g i n a 28 | 68
Record your new TCP offset data
X mm

Y mm TCP “Location”

Z mm

W degrees about X

P degrees about Y TCP “Orientation”

R degrees about Z

Self Quiz

1. Where is the TCP located if no TCP offsets are defined?

2. What coordinate plane is the tool pointing in relative to the TOOL Frame?

P á g i n a 29 | 68
User Frames
The user frame is the reference frame for all recorded positional data in a
program. You can define this frame anywhere. When teaching positions, the
number (e.g. index) of the current user frame is stored in the positional data.
Note that the actual user frame positional data is not saved with the program.

The system allows you to have ten user frames. User Frame #0 is read-only; it is
equivalent to the WORLD coordinate system.

DRS uses only User Frame #1. The value of user frame #1 will change, but all
positional data in all program is always taught with User Frame #1.

You can use the following methods to define the user frame:
• Three point method
• Direct entry method

DRS recommends using the three point method. This method teaches three
points on a plane to calculate the user frame. The three points taught are:

• The origin position


• An x-direction position
• A y-direction position

X DIRECTION POSITION

ORIGIN

Y DIRECTION POSITION

P á g i n a 30 | 68
When teaching a frame it’s recommended to walk straight up to the fixture and
apply the right-hand rule to the fixture and use this as the basis for your user
frame. It’s simpler to jog the robot in the frame of the fixture especially if the
robot is mounted upside down.

Robot

X-direction point

+x
+y
Y-Direction point

Origin Position point

Before creating a program:

• Check what User Frame is active


o Pressing SHIFT and COORD to display the Coordinate system pop-up
window
o Enter the correct USER FRAME number using the numeric keypad on
the teach pendant.

• Verify that this User Frame is defined correctly


o Jog the robot in the User Frame you created by pressing COORD until
you see “USER” in the upper right hand corner of the pendant. Make
sure the robot moves in the proper directions for X, Y, and Z,
depending on where you taught your frame. You should be able to
apply your right hand rule to your User Frame

P á g i n a 31 | 68
Define a User Frame 1

To setup User Frame #1:


*** Press SHIFT+COORD and ensure User Frame 0 is active***

1. Press MENUS, then SETUP.


2. Press [TYPE], press FRAMES.
3. Press [OTHER], then ‘User Frame’.
4. Move the cursor to ‘User Frame #1’.
5. If there is non-zero data in User Frame #1 press the CLEAR function key,
and then press YES to confirm.
6. Press DETAIL, then METHOD, and then select ‘Three Point’.
7. Put the cursor on ‘Orient Origin Point’.
8. Jog the robot to the desired position.
9. Press SHIFT and RECORD.
10. Move the cursor down to ‘X-Direction point’.
11. Jog the robot to the desired position
12. Press SHIFT and RECORD.
13. Move the cursor down to ‘Y-Direction point’.
14. Jog robot to the designated position.
15. Press SHIFT and RECORD.

Verify that this User Frame is defined correctly:

• Change to the USER coordinate system.


• Verify that User Frame #1 is the active frame by pressing SHIFT and
COORD to display the Coordinate system pop-up window
• Make sure the robot jogs in the proper directions for X, Y, and Z, based on
where you taught your frame.
• You should be able to apply your right hand rule to your User Frame.
• Move the robot to the origin position by moving the cursor to the ‘Orient
Origin Point’ row and then pressing SHIFT and MOVE_TO.
• Press POSN, and then USER to display the coordinates of the current
position in the User Frame. The values displayed for x, y, and z should be
close to 0.

Exercise
Use the 3-Point method to define USER Frame 1

P á g i n a 32 | 68
Record your new User Frame 1 offset
X mm

Y mm User Frame 1 “Location”


(relative to User Frame Zero)
Z mm

W degrees about X

P degrees about Y User Frame 1 “Orientation”


(relative to User Frame Zero)
R degrees about Z

Self Quiz

1. Where is the origin of USER Frame 1 if no offsets are defined?

2. What direction is +Y of your new USER Frame 1?

P á g i n a 33 | 68
Creating, Teaching and Test Running a Teach Pendant
Program
Create a new Teach Pendant Program
1. Enable the teach pendant.
2. Press SELECT, then CREATE.
3. Use the arrow keys to select the option to enter the name
of the program.
4. Use the arrow and function keys to enter the name of the
program.
5. Press ENTER when satisfied with the name of the
program.
6. Press DETAIL and make sure the Group Mask variables
are as follows: 1,*,*,*,*,* for motion group 1 only.

Teach your positions


1. Check active User Frame number (SHIFT + COORD)
make sure it is USER 1.
2. Clear all faults.
3. Jog the robot to the desired position.
4. Press POINT.
5. Use the arrow keys to highlight the desired motion
statement.
6. Press ENTER or use the numeric keypad to select the
motion statement.
7. Repeat steps 2-5 for each point in the program.
8. Note: Pressing SHIFT and POINT together will insert a
motion statement that is the same as the last motion
statement inserted.

Test your program


1. Use the arrow keys to cursor to line 1 of the program, or
press ITEM and enter a 1, then press ENTER.
2. Set the general override speed to a slow speed (10%)
3. Clear any faults.
4. Turn STEP mode on. Note: If Step Mode is active the
LED next to STEP will be lit.
5. Press and hold SHIFT.
6. Press and release FWD.
7. If satisfied with the taught program, turn STEP mode off
and run again. Gradually increase the override speed.

P á g i n a 34 | 68
Exercise
Create, teach and test run a simple rectangle program

Self Quiz

1. When you teach a point with a joint motion type the position data is stored in

2. You test run a program by holding SHIFT and pressing the key.

P á g i n a 35 | 68
Edit Commands (ED_CMD)

In the program editor, press NEXT then F5 “ED_CMD”

Insert - Inserts a line or lines above the line the cursor is on

Delete – Deletes the line or range of lines the cursor is highlighting

Copy – Copies the line or range of lines the cursor is highlighting

Paste Logic – Pastes logic & motion instructions with empty position data.

Paste Position – Pastes logic, motion instructions and position data with new
position number(s)

Paste Position ID – Pastes logic, motion instructions and position data with
the original position number(s)

Renumber – Renumbers positions in numerical sequence. This will not


renumber special positions that are being used more than once.

Undo – Will undo the last entry or taught position only.

Find/Replace – For program logic statements only i.e. I/O instructions.

For motion instructions cursor to the instruction and press CHOICE for
options.

Self Quiz

1. When you paste “Logic” what position data is stored?

2. To copy a line of a program you have to press the copy selection times.

P á g i n a 36 | 68
Motion Instructions
A motion instruction directs the robot to move in a specified way to a specific
location in the work cell using a specified speed.

• Motion type - How the TCP (Tool Center Point) moves to the position
“J” Joint moves the “robot” axis to degree position
“L” Linear moves the “TCP” to or through taught positions
“C” Circular moves the TCP in concentric arcs or circles

• Speed - How fast the TCP will move to the position


Joint uses “degrees per second”
Linear & Circular use mm/sec

• Position Data
J= J1 through J6 “degrees” relative to mechanical zero
L= X,Y,Z “location” and W,P,R “orientation” of the TCP

• Termination type - How the robot behaves relative to the position


FINE the robot or TCP “stops” at the position before proceeding
CNT the TCP moves continuously through or about the position
(The numerical value determines rounding prior to the position)

• Motion options - Additional commands that perform specific tasks


during robot motion
Example: OFFSET, PR [ ] offsets the position relative to values stored
in a Position Register

24: J P [ 7 ] 50% FINE

Program Line# Position Termination


Type
Motion Type Speed

33: L P [ 8 ] 100 mm/sec CNT 100

Circular VIA position


10: C P[5]
: P [ 6 ] 80 mm/sec CNT 100
Circular END position

When teaching points, the path that the robot takes is not always what you may
P á g i n a 37 | 68
expect. Termination types determine how closely the robot moves to the taught

P á g i n a 38 | 68
point. A FINE termination type means that the robot moves to that exact
position. A CNT100 termination type means the robot moves through the taught
position and interpolates its path based on the next position.

P[2]

The higher the CNT value,


the more rounding will
occur at the corner. Use
FINE when you need to
cut to a corner.

P[1]
P[3]

***To change a motion instruction, cursor to that variable and press Choice***

• Most “cut” or “trim” programs will use a Linear Motion Type and CNT or
Continuous Termination Type except where you need to cut or trim into a
sharp corner or make a concentric arc or circle.

• Speed will also effect the behavior of the TCP along CNT Motion Types

Self Quiz

1. A J motion type moves the

2. A L motion type moves the

3. With a FINE termination type the TCP completely at the taught position.

P á g i n a 39 | 68
Circular Motion Type
Circular motion is taught as follows:
• Teach a start position
• Teach a VIA or midpoint
• Teach a Circular END point`

Enter the following logic by teaching a point and then modifying the motion
instructions as follows:

1: J P[1] 25% CNT100 neutral position


2: L P[2] 200mm/SEC FINE start position for circular motion
3: C P[3] 1st circle VIA position
: P[4] 200 mm/SEC CNT 100 1st circle END position (1st 180 deg.)
4: C P[5] 2nd circle VIA position
: P[6] 200mm/SEC FINE 2nd circle END position (2nd 180 deg.)
5: J P[1] 25% CNT 100 neutral position

Use SHIFT + TOUCHUP to teach the position data.

P á g i n a 40 | 68
Self Quiz

1. The VIA position should be a termination type.

2. The first C motion type position is the position.

P á g i n a 41 | 68
Program Instructions
A program instruction is a non-motion programming statement. Program
instructions allow you to insert logic statements into your program such as:

• Control structures
• Conditional Statements
• I/O statements
• Data statements

Common program instructions:

Call - Calls other programs to run from the current program i.e. calling cut
programs from a main program

LBL/JMP LBL - Allows looping or jumping elsewhere in a program based on a


given condition.

WAIT - Wait seconds or for example until an input is received.

IF - A conditional handling statement.


IF DI [1] = ON, JMP LBL [2]

I/O - Monitor inputs/fire outputs


DO [7] = ON

FANUC I/O includes:


• Digital
• Robot
• Analog
• Cell Interface
And others that may or may not relate to your system.

To access the I/O menu:

I/O > Type > then select the I/O type you wish to observe or effect.

Press IN/OUT to toggle between inputs and outputs

To force and output cursor to the desired output number and press ON

To simulate and input cursor to the desired input number, cursor to the SIM
column, and press SIMULATE, cursor to the STATUS column and turn it on

P á g i n a 42 | 68
***do not leave inputs in simulation condition or they will not function properly in
production***

All I/O assignments in your production system will be labeled for function
including spares for possible additional requirements.

Override - Lets you set an override % of the program speed value to be run.
Good for testing new program motion and position data.

Remark - Allows you to enter text on program lines to describe program actions
(nothing is executed).

Registers - Store numerical data for math functions (DATA KEY)


R [1] = 1

Position Registers – Store position data i.e. HOME and NEAR HOME
(DATA KEY)
J PR [80: HOME] 25% CNT 100

TIMER [n] – Program timer instructions for tracking cycle time


STATUS > TYPE > Program Timer to view results

Note that instructions are often assignment statements. For example, the
statement:

R[1] = R[1] + 1

may not make sense mathematically. Instead of reading it as:

“Register one is equal to Register One plus one”

read it as:

“Register One becomes Register One plus one”

The data on the right-hand side of the equal sign will be stored in the contents of
the left-hand side of the equation. The contents of the right-hand side of the
equation is not changed. The statement PR[1] = UFRAME[1] is very different
than the statement UFRAME[1] = PR[1].

The list of instruction that are available on your controller are dependent upon
which software options you have installed. To view the instructions available:

1. Place the cursor on a blank line.


2. Press NEXT.
P á g i n a 43 | 68
3. Press [INST] to bring up a list of all the instructions.
4. Highlight the desired instruction and press ENTER.

Exercise
Create a logic program that calls your previous programs as sub-routines. Input
logic instructions to control and monitor your program execution.

P á g i n a 44 | 68
Main Program Example

1: Uframe_Num=0
Press I/O then Type, and select the I/O
2: J PR[81] 25% FINE you want to monitor, simulate an input or
3: Timer [1] Reset force an output.
4: Timer [1] = On
5: Override = 100%
6: Uframe_Num=1
7: DO[1] = On
8: IF RI [1] = On JMP LBL [1]
9: Call Rectangle
10: Call Circle
11: WAIT 2 Sec. Press DATA then Type, Position
12: Call Shape Registers to view or re-teach the Home
or Near Home positions.
13: DO[1] = Off
14: LBL [1]
15: Uframe_Num =0
16: J PR[81] 25% FINE
17: J PR[80] 25% FINE
18: Timer [1] = Off
19: ! press STATUS, Type, Prog Timer

Self Quiz

1. What should happen upon execution of program line #7?

2. What does line # 14 represent?

3. What does line # 10 do?

P á g i n a 45 | 68
Teaching Programs on 3-Dimensional Targets

In teaching programs relative to a 3-Dimensinal target you must now consider


and change the tool orientation or angle along the planes to be processed.

Some things to consider as you teach these new programs:

1. Press SHIFT and COORD and make sure User is 1.

2. Ensure joints 4 and 6 are not wound up before you begin teaching. Press
POSN and select Joint to view current Joint position data. You can run
the Zero program to zero out the joints, then jog in joint to the relative tool
position you want before selecting the coordinate frame you want to teach
in.

3. Press COORD until you are in the coordinate jogging system you want.
Do not teach in Joint. User, World or Tool (whatever works best for you).

4. Make sure when you start that the wrist is not in singularity (anytime Joint
5 is lined up with Joint 4) and avoid singularity throughout your taught
path.

5. Teach your reorientation about planes in such a way that you are moving
as few joints as possible and as little as possible for smoother robot
motion and TCP tracking.

6. Save your intermediate and repositioning moves for your main program
that will call these as sub-routines.

7. It is worth the time to do at least a cursory reach study around the target to
see what limitations you might run into in reaching certain positions or the
tooling and/or robot castings crowding into each other.

8. When transitioning planes with the tool - by keeping J6 (faceplate) 90


degrees to the part almost all of the motion will occur at J6 reducing
excessive wrist motion and dramatically smoothing out the path of the
TCP.

9. Changing the path speed to DEG/SEC (degrees per second) through


points when transitioning planes can dramatically smooth motion of the
tool. Try ex. 20 DEG/SEC and adjust up or down as required.

Exercise
Create, teach and test run the suggested features on the fixture or part provided.
P á g i n a 46 | 68
Self Quiz

1. It is important to prevent Joint from coming into alignment with Joint

2. It is important to avoid winding into robot axis

P á g i n a 47 | 68
Program Adjust
Program Adjust is a utility that allows you to adjust all or part of a program
without editing each line of the program. You can perform a Program Adjust
while the program is running, e.g. perform a “hot edit”.

To Access the Program Adjust Schedule List:


1. Press MENUS, then UTILITIES.
2. Press [TYPE] and select ‘Prog Adjust’.
3. If you don’t see a list of schedules Press PREV (you may already be in a
schedule).

To Put a Program Into a Schedule:


1. Put the cursor on a blank schedule
2. Press DETAIL.
3. Move the cursor on ‘Program Name’ and press [CHOICE].
4. Select the program you want to adjust from the list.

To Shift a Program Using Program Adjust:


1. Move the cursor to the ‘Starting line number’ row and enter the number of
the first line you want adjusted in the program.
2. Move the cursor to the ‘Ending line number row’ and enter the number of
the last line you want adjusted in the program. Note: enter a large number
like 500 and the Program Adjust utility will automatically reset this value to
the last line number of the program.
3. Move the cursor to the offset relative to row and choose USER or TOOL.
4. Move the cursor to each of the XYZWPR adjustment rows and type in the
distance you want to move the program or line number(s). Note the
maximum distance you can adjust is 26 mm.
5. Move the cursor to each of the speed adjustment rows and type in a value
that would coincide with the type of motion you selected in your program.
6. Press ENABLE to apply the changes to the program.
7. Select the program and test run it to see if the changes you made were
sufficient.

• Return to the Prog Adjust menu, cursor down to the variables and press
the NEXT key and press CLR_ADJ to make the changes permanent.

• Return to the Prog Adjust menu, cursor down to the variables and press
DISABLE to remove the adjustment

P á g i n a 48 | 68
Exercise
Practice adjusting a program relative to the USER Frame and the TOOL Frame

Self Quiz

1. You adjust a position by selecting the number.

2. If you enable 10mm +Z relative to USER Frame one the position will shift 10mm.

3. Pressing CLR_ADJ takes the adjustment out of the program: T or F

P á g i n a 49 | 68
Using Multiple User Frames

Every fixture will have it’s own unique user frame. But there is only one User
Frame Setup menu on the controller. The values in User Frame #1 at the time
you run may not be the values that were in User Frame #1 at the time you taught
User Frame #1. Therefore, the main job for each fixture should set the user
frame dynamically at run time.

Storing the User Frame 1 offsets in P[1]


• Allows unlimited number of User Frame offsets
• Ensures the correct User Frame 1 values are set for that program
• Allows extraction of User Frame offset data for reference
• Allows other programs like Frame Shift (CellCal or CellFinder) to assign
adjusted offsets to User Frame 1.

When you copy and paste a production program for a new fixture you must:

1. Define a new User Frame 1 for the new fixture with the 3-Point Method
SETUP > Type > Frames > Other > User > Detail > Method > 3 -Point
Method, cursor to Orient Origin Point, Move the TCP to the reference
for the Origin and Press SHIFT+Record. Repeat for X and Y.

2. Write down the values for the new User Frame 1 offset
Method > Direct Entry then record the values for X,Y,Z,W,P,R

3. Cursor to P[1] of your new program, press F5 “Position” then enter the
new User Frame 1 offsets for the new fixture.

4. See the procedures on the next page for Touchup of the O,X and Y
position for P[2], P[3] and P[4]. These are your reference positions for this
program for this fixture so if you suspect the User Frame 1 values are no
longer valid, you can step test to these reference positions. If the TCP
does not go to the exact physical reference on the fixture you will know the
current User Frame is no longer valid (fixture may be in different location).

P á g i n a 50 | 68
Storing User Frame Data in a Position
Create a new main program and enter the following logic. Record your current
User Frame 1 values and type them into the P[1] position variable. After line 17
call your new programs.

1: JMP LBL[1]
2: UFRAME_NUM=0
3: ! Put XYZWPR of UFRAME #1 in P[1]
4:J P[1:UFRAME DATA] 1% FINE
5: ! Touchup next three points with User Frame=0
6:J P[2:ORIGIN] 10% FINE
7:J P[3:X DIR] 10% FINE
8:J P[4:Y DIR] 10% FINE
9: LBL[1]
12:
13: UFRAME_NUM=0
14:J PR[81:Near Home] 100% CNT100
15: PR[8] = P[1]
16: UFRAME [1] = PR[8]
17: UFRAME_NUM=1
17:
18:
19:

To store reference positions for the program’s O,X and Y do the following
1. Go to the User Frame SETUP ‘Three Point’ menu.
2. Make sure that User frame number 0 is active (SHIFT COORD).
3. Press SHIFT and MOVE_TO to move to the ‘Orient Origin Point’.
4. Press EDIT and cursor to line 6. Press SHIFT and TOUCHUP.
5. Press SETUP and do a MOVE TO the ‘X-Direction Point’
6. Press EDIT and cursor to line 7. Press SHIFT and TOUCHUP.
7. Press SETUP and do a MOVE TO the ‘Y-Direction Point’
8. Press EDIT and cursor to line 8. Press SHIFT and TOUCHUP.
9. Cursor up to line 4 and put the cursor over P[1]. Press F5 POSITION and
enter your User Frame’s XYZWPR values in P[1]’s XYZWPR fields.
10. Press DONE

Exercise
Select a production program template (ex: PNS0000T). Enter your USER Frame
1 offset data, call your feature programs and then test run.

P á g i n a 51 | 68
Self Quiz

1. The P[1] position variable stores the offsets for a specific fixture.

2. PR[8] stores the

3. What does program line # 11 do?

P á g i n a 52 | 68
Program Structure
When creating a teach pendant program you want to break it up into a main
program that calls subroutines, where each subroutine is a feature to be cut.
This simplifies program maintenance.

ANS00001 (Main Program)


1: JMP LBL[1]
2: UFRAME_NUM=0
3: ! Put XYZWPR of UFRAME #1 in P[1]
4:J P[1:UFRAME DATA] 1% FINE
5: ! Touchup next three points with User Frame=0
6:J P[2:ORIGIN] 10% FINE
7:J P[3:X DIR] 10% FINE
8:J P[4:Y DIR] 10% FINE
9: LBL[1]
10: PR[8:UFRAME BUFFER]=P[1:UFRAME DATA]
11: UFRAME[1]=PR[8:UFRAME BUFFER]
12:
13: UFRAME_NUM=0
14:J PR[81:Near Home] 100% CNT100
15:
16: ! Working path follows...
17: UFRAME_NUM=1
18: CALL CUT_1
19: CALL CUT_2
20: UFRAME-NUM=0
21. J PR[81:Near Home] 100% CNT100
22. J PR[80:Home] 100% CNT100

Cut Programs (JetWare program example)


1: L P[1] 200mm/SEC FINE
2: CALL AAJET_ON
3: L P[2] 200mm/SEC CNT70
4: L P[3] 200mm/SEC CNT70
5: L P[4] 200mm/SEC CNT70
6: L P[5] 200mm/SEC CNT70
7: L P[6] 200mm/SEC CNT70
8: L P[7] 200mm/SEC CNT70
9: L P[8] 200mm/SEC FINE
10: CALL AAJET_OFF

P á g i n a 53 | 68
Backup and Restore Files
Just like a PC, you should backup all the files on your controller on a regular
basis. The R30iA controller has a USB port on the front of the controller. All
controllers also have a PCMCIA slot to use with a Compact Flash card and a
PCMCIA adapter.

Files are backed up and loaded in the File menu.

1. Press MENU then File. Select ‘File’ if the fly-out menu is displayed.
2. If the current device listed on the upper left hand corner doesn’t match the
device you intend to save to, then press F5 [UTIL] and then select ‘Set
Device’.

P á g i n a 54 | 68
The screen that is initially displayed when you navigate to the FILE menu lists the
various file types supported by the FANUC robot controller. The file types you
are most likely interested in are:

File Type Purpose


*.TP Teach pendant programs created in the
SELECT menu and edited in the EDIT menu.

*.VR Variable files. Files that contain user values:


• POSREG.VR: position registers
• NUMREG.VR; data registers

*.SV System variable files. These are files that


contain system variable values:
• SYSMAST.SV: mastering information
• SYSSERVO.SV: servo parameters
• SYSTEM.SV: Most menu settings/values
• SYSFRAME.SV: User Frame and Tool
Frame values

*.IO I/O configuration files.


*.LS Listing files: ASCII version of teach pendant
programs; can be viewed on a PC using
NotePad/WordPad.

To Back-Up Files:
1. Insert the device you want to copy the files to and make sure the current
device listed on the upper left hand corner of the FILE menu is set
correctly to the device you are using:
• ‘MC’ for Memory Card
• ‘UD1’ for a USB Flash Drive.
2. Press F2 [DIR] to view the files on the current device. You can also
navigate to a subfolder if desired.
3. Press F4 [BACKUP] and select the type of files you want to back up. DRS
recommends you select ‘All of above’.
4. The device and path that the files will be saved to are listed on the upper
left of the FILE menu.
5. The message “Delete <device>:\*.* and backup all files?” will be
displayed. Press YES to continue. Note that all files on the memory card
will be deleted

P á g i n a 55 | 68
To View Files on the Current Device:
1. Press F2 [DIR].
2. A window that lists different file types will be displayed. Select ‘*.*’ to list
all files. If you are looking for a specific type of file like all teach pendant
programs then select ‘*.TP’ to get a filtered list.

To Load Files
1. Generate a directory listing of the type of file you want to load (see above).
2. Put the cursor on the type of the file you want to load. ‘*.*’ will not work;
however ‘*.TP’ will.
3. Press F3 LOAD.
4. The file(s) will be loaded onto the controller.

You can save one individual file from the SELECT menu.
1. Press SELECT
2. Cursor to the name of the program you want to save.
3. Press the NEXT hardkey until SAVE AS is listed on F4.
4. Press F4 ‘SAVE AS’.
5. The file name that will be saved is listed, along with the device and path it
wil be saved to.
6. If you need to change anything cursor to the line to change and press F4
[CHOICE]. Once everything looks good, press F1 DO_SAVE to save the
selected file to the specified device.

You can create an ASCII printable version of a teach pendant program from the
SELECT menu:
1. Press SELECT
2. Cursor to the name of the program you want to create an ASCII version of.
3. Press the NEXT hardkey until PRINT is listed on F5.
4. Press F5 ‘PRINT’.
5. The selected file will be saved to the current device (as listed in the FILE
menu) as <file_name.LS>.
6. You can then copy the LS file to your PC and view it in WordPad or
NotePad, as well as print out a hardcopy.
7. You can edit the LS file and load it on the controller but you must either:
• Have the ASCII to Binary option installed on your controller which
allows you to load a .LS file from the FILE menu. The controller will
automatically convert the LS file to a TP file.
• Use OLPCPro to convert the LS file to a TP file on your PC, and then
load the TP file.
.

P á g i n a 56 | 68
So far we have only discussed backing up user files;, but nothing yet about the
controller’s operating system software. You can backup the entire controller
using an Image Backup.

To make an Image Backup on the R30iA controller (formerly called RJ3iC)


and the R30iB:
1. Press MENU then File.
2. Insert a Memory Card thumb drive with at least 36MB free.
3. Set the current device to MC by press F5 [UTIL] and selecting ‘Set
Device’.
4. Press F4 [BACKUP] and select ‘Image Backup’.
5. Select “Current File”.
6. A message at the bottom of the teach pendant screen will read ‘Cycle
Power?’. Press F4 OK. The controller will cycle power and perform the
image backup.
7. If the Image Backup was successfully completed a message will be
displayed at the bottom of the teach pendant screen indicating this. Press
OK.
8. Your controller is now up and ready to run.
9. On your memory card will be server FROM*.IMG files and some
SRAM*.IMG files. These are 1MB snapshots of your controller’s memory.
They cannot be viewed offline by any application software. They can only
be used on a FANUC controller using the ‘Restore Controller Images’
option at the BMON menu.

P á g i n a 57 | 68
To make an Image Backup on an RJ3iB controller:
1. Press and hold F1 and F5 and cycle controller power. Continue holding
F1 and F5 until the BMON MENU is displayed.
2. At the BMON MENU, select ‘Controller Backup/Restore’.
3. Select ‘Backup Controller as Images’.
4. Select the device you want (typically MC for Mem Card). Enter a 1 when
ready.
5. You will be notified of the amount of free space needed. The card will not
be formatted and the card’s contents will not be deleted.
6. The controller will be backed up to the selected device. If there is not
enough room on the card you will be informed of this and will be able to
remove the card, free up some space using a PC or another robot
controller, and then resume the Image Backup.
7. When done press ENTER.
8. Press 0 to return to the Main Menu.
9. Select ‘Configuration Menu’.
10. Select ‘Cold start’.
11. When Controlled Start completes press FCTN and select ‘START
(COLD)’.

To restore a controller from an Image Backup (both RJ3iB and R30iA):


*** Press and hold F1 and F5 and cycle controller power. Continue
holding F1 and F5 until the BMON MENU is displayed.

1. Insert the Memory Card that contains the Image Backup into the
controller’s PCMCIA slot.
2. At the BMON MENU, select option 4, ‘Controller backup/restore’ by
pressing the number 4 on the teach pendant keypad and pressing
ENTER.
3. At the BACKUP/RESTORE MENU, select option 3, ‘Restore Controller
Images’ by pressing the number 3 on the teach pendant keypad and
pressing ENTER.
4. At the ‘Device Select Menu’ enter a 1 for Memory Card.
5. Enter a 1 and press ENTER if ready to start.
6. When the restore is complete, enter a 1 for ‘Configuration Menu’.
7. At the ‘CONFIGURATION MENU’ enter a 2 for ‘Cold Start’
8. The controller will power up.
9. A Pulse Coder alarm may occur. This happens when the robot is not
currently at the same physical position that it was at the time the backup
was performed—hence a pulse coder mismatch. To clear this fault:
a. Go to the Master/Cal menu under SYSTEM. Set
$MASTER_ENB=1. if this menu is not displayed.
b. Press the RES_PCA function key. Press YES to confirm.
c. Set $DMR_GRP[1].$MASTER_DONE=TRUE
d. Return to the Master/Cal menu and calibrate the robot.
P á g i n a 58 | 68
Exercise
Use the FILE utilities to create an Image Backup. Use the Select menu to SAVE
a .TP program. Upload a program from the FILE menu.

Self Quiz

1. The quickest and safest method of a total backup is with an .

2. You can backup individual teach pendant programs in the menu.

3. You can back up to a or storage device.

P á g i n a 59 | 68
Jogging Motion Group 2
(Rotating Wall, Table, Linear Track)

A FANUC robotic system can consist of up to five motion groups. A motion


group is a collection of up to nine axes. Important things to know about motion
groups:

• The robot is always Group 1.


• The rotating wall/table is always Group 2.
• You can only jog one group at a time.
• The rotating wall/table can only be jogged in JOINT mode.
• In the case of robotic systems with multiple robots and a rotating
wall/table:
o The rotating wall/table is always a part of the A Robot.
o Any other robots in the workcell (B Robot, C Robot, D Robot) are
considered single robot systems. Therefore, you can only jog the
rotating wall/table from the A Robot in multi-robot systems.

On robots with a second motion group, you will have an additional item in the
SHIFT COORD pop-up called “Group”. This tells the system which motion group
the jog keys will move. It also affects the POSN menu as to which Motion
Group’s current position will be displayed.

P á g i n a 60 | 68
To jog the servo table:

1. Press the SHIFT and COORD keys together.


2. Cursor down to the ‘Group’ line and enter the numeral ‘2’.
3. Bring up the current position menu by pressing the POSN key on the
bottom row of the teach pendant.
4. Turn the TP on; hold the DEADMAN switch and reset all faults.
5. Make sure the JOINT jog system is active.
6. Press the SHIFT key and either the J1+ key or the J1- key.

Note you can only jog in JOINT mode, and you can only use the J1 keys.

P á g i n a 61 | 68
Appendix B: Creating Programs with a Servo Table
When creating TP programs it is critical to specify which motion group you want
the program to control. You need to set the Group Mask of the program in the
DETAIL screen of the SELECT menu every time you create a new program. On
robots with more than one motion group, the system forces you to go into the
DETAIL menu before you can edit the program.

P á g i n a 62 | 68
In Line #4 ‘Group Mask’ there are five fields, one for each potential motion group.
The groups are numbered from left to right. A “1” in the group’s field means it’s
enabled for this program. A “*” means the group is disabled for this program.

Examples:

1. A group mask of [1,1,*,*,*] means the program will record the current
position of both the robot and the servo table, and when executed will
move both the robot and the servo table.
2. A group mask of [1,*,*,*,*] means the program will record only the current
position of the robot, and when executed will move only the robot.
3. A group mask of [*,1,*,*,*] means the program will record only the current
position of the servo table, and when executed will move only the servo
table.

A mask of [1,1,*,*,*] will rarely if ever be used unless you have the Coordinated
Motion option which is not standard. You need to mask off Group 2 for your cut
programs. If you create a program on the A robot and leave the mask as
[1,1,*,*,*] you will not be able to transfer and run this program on the B robot,
because the B robot only has one group, and the system will flag this as an error.

Once a program has been created and positions have been taught in the
program, there is no way on the controller to edit the group mask. The only way
to strip out a motion group is to use OLPCPro to edit your ASCII listing file and
convert it back to binary.

P á g i n a 63 | 68
To change the Group Mask:

1. In the DETAIL menu, cursor to the ‘Group Mask’ field.


2. Use the RIGHT ARROW key to place the cursor over the field you want to
change. For example, if you want to mask out Group 2 then move the
cursor to the second field:

3. Press F5 ‘*’ to disable the current Motion Group. In the example above,
the cursor is on the second field, so by pressing F5 we have disabled
Group 2. Therefore program MAIN0001 will only move Group 1 which is
the robot.
4. Press F1 END when done editing. Note that once you press END you
cannot go back and edit the ‘Group Mask’ field

P á g i n a 64 | 68
Let’s say we are creating a program to rotate the wall/table to the “A Side”, which
is usually at 0 degrees.

1. Go to the SELECT menu and create a new program called ROT_A


2. Press F2 DETAIL to edit the group mask.
3. Set the group mask to [*,1,*,*,*] so that only Group 2 is enabled.
4. Insert a Joint Fine point.
5. Cursor over to the P[1] field and press F5 POSITION.

6. If the value shown for J1 is not 0 then change it to 0 using the numeric
keypad.
7. Press F4 DONE.

To create a program to rotate the wall/table to the ‘B Side’:


1. Go to the SELECT menu and create a new program called ROT_B
2. Press F2 DETAIL to edit the group mask.
3. Set the group mask to [*,1,*,*,*] so that only Group 2 is enabled.
4. Insert a Joint Fine point.
5. Cursor over to the P[1] field and press F5 POSITION
6. If the value shown for J1 is not 180 then change it to 180 using the
numeric keypad.
7. Press F4 DONE.

When you run ROT_A or ROT_B only the wall/table will move. The robot will
remain stationery unless you didn’t set the Group Mask correctly.

P á g i n a 65 | 68
Note that it doesn’t matter which Group is active in the SHIFT COORD pop-up
window when you run these programs; the SHIFT COORD pop-up window only
affects jogging.

P á g i n a 66 | 68
Advanced Functions

PROGRAM SHIFT
MENU>Program shift>ENTER

1. Press ENTER on the program name and enter the original program
name
2. Select “WHOLE” or “PART”
3. Enter Start Line if shifting “PART”
4. Enter End Line if shifting “PART”
5. Enter the new program name to be shifted
6. Only enter and Insert Line if asked to do so
7. Press SHIFT + ARROW DOWN
8. Leave Rotation OFF
9. Teach the Source Position “P1”
10. Teach the Destination Position “Q1”
11. Press EXECUTE and answer YES
* The shift is only applied to the duplicate program.

MIRROR IMAGE SHIFT


MENU>Mirror Image Shift>ENTER

1. Press ENTER on the program name and enter the original program
name
2. Select “WHOLE” or “PART”
3. Enter Start Line if shifting “PART”
4. Enter End Line if shifting “PART”
5. Enter the new program name to be shifted
6. Only enter and Insert Line if asked to do so
7. Press SHIFT + ARROW DOWN
8. Leave Rotation OFF
9. Teach the Source Position “P1”
10. Teach the Destination Position “Q1”
11. Press EXECUTE and answer YES
* The shift is only applied to the duplicate program.

P á g i n a 67 | 68
ADDITIONAL MOTION OPTIONS

WRIST JOINT – Allows the robot to move through a singularity but may
adversely effect TCP path and speed.

ACC - Controls the acceleration ramp up from start and ramp down to stop/slow
down.

Skip,LBL[ ] - Skip to a label based on I/O status i.e. skip portion of program given
a defined condition.

Offset/Frames – Allows you to offset a taught position i.e. by value(s) stored in a


position register.

PSPD - Allows TCP motion at greater than CNT100. Reduces cycle time but
may alter path motion.

Offset, PR[ ]
Allows you to offset a taught position relative to values stored or input into
XYZWPR of a position register.

Incremental - The incremental motion option specifies that the destination


position is an incremental motion amount from the previous position

Tool_Offset – Use with a TOOL_OFFSET_CONDITION instruction to alter the


TCP and Tool Frame by values stored or input into a position register.

Tool_offset,PR[ ] – Allows you to directly offset the TCP and Tool Frame relative
to a selected position register.

PTH – Allows you to accelerate faster through taught positions of a path. May
improve cycle time where many positions are taught close together along a path.

TIME BEFORE – Allows you to define a pause in seconds before the next task

TIME AFTER – Allows you to define a pause in seconds after the last task

DISTANCE BEFORE - The Distance Before (DB) function calls a program or


outputs a signal when the Tool Center Point (TCP) goes into a region that is
within a specified distance from the destination point

P á g i n a 68 | 68
ADDITIONAL PROGRAM LOGIC INSTRUCTIONS
Skip – Skip lines based on a condition handler i.e. input status

Payload – Define when using multiple tools of different masses

Message – Allows you to report a user defined message to the display screen

P á g i n a 69 | 68
EXAMPLE PRODUCTION PROGRAM
1: TIMER[1]=RESET resets cycle timer
2: TIMER[1]=START starts cycle timer
3: OVERRIDE=100% programs will run at this percentage of program speed
4: UFRAME_NUM=0 sets the active USER frame to 0
5:
6:J PR[81:NEARHOME] 75% CNT100 robot moves NEAR HOME position
7:
8:
9: JMP LBL[1] ***Program execution begins after label 1
10: UFRAME_NUM=0
11:J P[1:UFRAME DATA] 10% FINE stores the XYZWPR of UFRAME 1
12:
13:J P[2:ORIGIN] 10% FINE stores UFRAME 1 origin as position
14:J P[3:X DIR] 10% FINE stores UFRAME 1 X direction as position
15:J P[4:Y DIR] 10% FINE stores UFRAME 1 Y direction as position
16: LBL[1] program execution begins after LBL[1]
17:
18: PR[8:UFRAME BUFFER]=P[1:UFRAME DATA]
19: makes PR[8] = XYZWPR
20: UFRAME[1]=PR[8:UFRAME BUFFER] stored in P[1]
21:
22: UFRAME_NUM=0
makes UFRAME 1 = WXZWPR
23: stored in PR[8]

24: R[31]=3
Sets R[31] for tool #3
25: CALL SEL_TOOL runs the tool select program for
26: tool #3
27:UFRAME_NUM=1

28:
sets active UFRAME to 1 that
29: CALL AA_ON(20000)
cut program was relative to
30:
31:
turns spindle on at 20,000 rpm
32:J P[5] 100% CNT100
33: CALL PROG1
34: repositioning move
35: CALL AA_OFF
36: runs the cut program
37:UFRAME_NUM=0
38:J PR[81:NEARHOME] 75% CNT100 turns spindle off
39:J PR[80:HOME] 50% CNT100
40: TIMER[1]=STOP moves robot NEAR HOME then HOME

turns cycle timer off

P á g i n a 70 | 68
P á g i n a 71 | 68

You might also like