Teach Pendant Programming
Teach Pendant Programming
Guía Estudiante
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.
• 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.
• Install special guarding that prevents the operator from reaching into
restricted areas of the work envelope.
• Use interlocks.
• 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.
• 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.
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.
P á g i n a 5 | 68
Course Task List
2. Coordinate Frames
P á g i n a 6 | 68
FANUC Robot Controller
Mode Select
Auto or T1
Power On
Disconnect
TP on or off
Current jog
system
TP operators
Many are Deadman
shortcuts to
Switches
menus items.
See following
page for details.
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
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.
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
Self Quiz
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.
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.
This works for all the different frames the robot uses:
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
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.
TCP
Offset
TCP
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.
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
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)
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
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.
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.
P á g i n a 27 | 68
Teaching the 3 Approach Points for the Three Point
Method
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
R degrees about Z
Self Quiz
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:
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
P á g i n a 31 | 68
Define a User Frame 1
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
W degrees about X
Self Quiz
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.
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)
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)
For motion instructions cursor to the instruction and press CHOICE for
options.
Self Quiz
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
• Position Data
J= J1 through J6 “degrees” relative to mechanical zero
L= X,Y,Z “location” and W,P,R “orientation” of the TCP
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]
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
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:
P á g i n a 40 | 68
Self Quiz
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
Call - Calls other programs to run from the current program i.e. calling cut
programs from a main program
I/O > Type > then select the I/O type you wish to observe or effect.
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).
Position Registers – Store position data i.e. HOME and NEAR HOME
(DATA KEY)
J PR [80: HOME] 25% CNT 100
Note that instructions are often assignment statements. For example, the
statement:
R[1] = R[1] + 1
read it as:
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:
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
P á g i n a 45 | 68
Teaching Programs on 3-Dimensional Targets
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.
Exercise
Create, teach and test run the suggested features on the fixture or part provided.
P á g i n a 46 | 68
Self Quiz
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”.
• 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
2. If you enable 10mm +Z relative to USER Frame one the position will shift 10mm.
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.
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.
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.
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.
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:
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.
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)’.
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
P á g i n a 59 | 68
Jogging Motion Group 2
(Rotating Wall, Table, Linear Track)
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:
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:
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.
6. If the value shown for J1 is not 0 then change it to 0 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.
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.
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.
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
P á g i n a 68 | 68
ADDITIONAL PROGRAM LOGIC INSTRUCTIONS
Skip – Skip lines based on a condition handler i.e. input status
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
P á g i n a 70 | 68
P á g i n a 71 | 68