Line Tracking
Line Tracking
Line Tracking
OPERATOR'S MANUAL
B-83474EN/02
• Original Instructions
Before using the Robot, be sure to read the "FANUC Robot Safety Manual (B-80687EN)" and
understand the content.
The products in this manual are controlled based on Japan’s “Foreign Exchange and
Foreign Trade Law”. The export from Japan may be subject to an export license by the
government of Japan.
Further, re-export to another country may be subject to the license of the government of
the country from where the product is re-exported. Furthermore, the product may also be
controlled by re-export regulations of the United States government.
Should you wish to export or re-export these products, please contact FANUC for advice.
In this manual we have tried as much as possible to describe all the various matters.
However, we cannot describe all the matters which must not be done, or which cannot be
done, because there are so many possibilities.
Therefore, matters which are not especially described as possible in this manual should be
regarded as ”impossible”.
B-83474EN/02 SAFETY PRECAUTIONS
SAFETY PRECAUTIONS
Thank you for purchasing FANUC Robot.
This chapter describes the precautions which must be observed to ensure the safe use of the robot.
Before attempting to use the robot, be sure to read this chapter thoroughly.
Before using the functions related to robot operation, read the relevant operator's manual to become
familiar with those functions.
If any description in this chapter differs from that in the other part of this manual, the description given in
this chapter shall take precedence.
For the safety of the operator and the system, follow all safety precautions when operating a robot and its
peripheral devices installed in a work cell.
In addition, refer to the “FANUC Robot SAFETY HANDBOOK (B-80687EN)”.
1 WORKING PERSON
The personnel can be classified as follows.
Operator:
• Turns robot controller power ON/OFF
• Starts robot program from operator’s panel
Maintenance engineer:
• Operates the robot
• Teaches robot inside the safety fence
• Maintenance (adjustment, replacement)
During the operation, programming, and maintenance of your robotic system, the programmer, teaching
operator, and maintenance engineer should take additional care of their safety by using the following
safety precautions.
s-1
SAFETY PRECAUTIONS B-83474EN/02
WARNING
Applied when there is a danger of the user being injured or when there is a
danger of both the user being injured and the equipment being damaged if the
approved procedure is not observed.
CAUTION
Applied when there is a danger of the equipment being damaged, if the
approved procedure is not observed.
NOTE
Notes are used to indicate supplementary information other than Warnings and
Cautions.
(1) Have the robot system working persons attend the training courses held by FANUC.
FANUC provides various training courses. Contact our sales office for details.
(2) Even when the robot is stationary, it is possible that the robot is still in a ready to move state, and is
waiting for a signal. In this state, the robot is regarded as still in motion. To ensure working
person safety, provide the system with an alarm to indicate visually or aurally that the robot is in
motion.
(3) Install a safety fence with a gate so that no working person can enter the work area without passing
through the gate. Install an interlocking device, a safety plug, and so forth in the safety gate so that
the robot is stopped as the safety gate is opened.
The controller is designed to receive this interlocking signal of the door switch. When the gate
is opened and this signal received, the controller stops the robot (Please refer to "STOP
TYPE OF ROBOT" in SAFETY PRECAUTIONS for detail of stop type). For connection, see
Fig.3 (a) and Fig.3 (b).
(4) Provide the peripheral devices with appropriate grounding (Class A, Class B, Class C, and Class D).
s-2
B-83474EN/02 SAFETY PRECAUTIONS
(5) Try to install the peripheral devices outside the work area.
(6) Draw an outline on the floor, clearly indicating the range of the robot motion, including the tools
such as a hand.
(7) Install a mat switch or photoelectric switch on the floor with an interlock to a visual or aural alarm
that stops the robot when a working person enters the work area.
(8) If necessary, install a safety lock so that no one except the working person in charge can turn on the
power of the robot.
The circuit breaker installed in the controller is designed to disable anyone from turning it on
when it is locked with a padlock.
(9) When adjusting each peripheral device independently, be sure to turn off the power of the robot
(10) Operators should be ungloved while manipulating the operator’s panel or teach pendant. Operation
with gloved fingers could cause an operation error.
(11) Programs, system variables, and other information can be saved on memory card or USB memories.
Be sure to save the data periodically in case the data is lost in an accident.
(12) The robot should be transported and installed by accurately following the procedures recommended
by FANUC. Wrong transportation or installation may cause the robot to fall, resulting in severe
injury to workers.
(13) In the first operation of the robot after installation, the operation should be restricted to low speeds.
Then, the speed should be gradually increased to check the operation of the robot.
(14) Before the robot is started, it should be checked that no one is in the area of the safety fence. At the
same time, a check must be made to ensure that there is no risk of hazardous situations. If detected,
such a situation should be eliminated before the operation.
(15) When the robot is used, the following precautions should be taken. Otherwise, the robot and
peripheral equipment can be adversely affected, or workers can be severely injured.
- Avoid using the robot in a flammable environment.
- Avoid using the robot in an explosive environment.
- Avoid using the robot in an environment full of radiation.
- Avoid using the robot under water or at high humidity.
- Avoid using the robot to carry a person or animal.
- Avoid using the robot as a stepladder. (Never climb up on or hang from the robot.)
(16) When connecting the peripheral devices related to stop(safety fence etc.) and each signal (external
emergency , fence etc.) of robot. be sure to confirm the stop movement and do not take the wrong
connection.
(17) When preparing trestle, please consider security for installation and maintenance work in high place
according to Fig.3 (c). Please consider footstep and safety bolt mounting position.
s-3
SAFETY PRECAUTIONS B-83474EN/02
RP1
Pulsecoder
RI/RO,XHBK,XROT
RM1
Motor power/brake
EARTH
Safety fence
EAS1 In case
For of R-30iA
the R-30iB, the R-30iB Mate
TerminalsEAS1,EAS11,EAS2,EAS21
Terminals EAS1,EAS11,EAS2,EAS21 areorprovided
FENCE1,FENCE2
on the
EAS11 are provided
emergency onboard.
stop the operation box or on the terminal block
of the printed circuit boar d.
EAS2
Refer
In casetoof R-30iA
the ELECTRICAL
Mate CONNCETIONS Chapter of
EAS21 CONNECTION of
Terminals EAS1,EAS11,EAS2,EAS21 are provided
R-30iB controller maintenance
on the emergency stop board manual (B-83195EN)
or connector panel. or
(in caseMate
R-30iB of Open air type)
controller maintenance manual (B-83525EN)
for details.
Termianls FENCE1,FENCE2 ar e provided
on the emergency stop board.
Single chain
Panel board
Refer to controller maintenance manual for details.
FENCE1
FENCE2
s-4
B-83474EN/02 SAFETY PRECAUTIONS
Fence
Steps
Trestle
Footstep
for maintenance
(1) If you do not have to operate the robot, turn off the power of the robot controller or press the
EMERGENCY STOP button, and then proceed with necessary work.
(2) Operate the robot system at a location outside of the safety fence
(3) Install a safety fence with a safety gate to prevent any worker other than the operator from entering
the work area unexpectedly and to prevent the worker from entering a dangerous area.
(4) Install an EMERGENCY STOP button within the operator’s reach.
s-5
SAFETY PRECAUTIONS B-83474EN/02
(1) Unless it is specifically necessary to enter the robot work area, carry out all tasks outside the area.
(2) Before teaching the robot, check that the robot and its peripheral devices are all in the normal
operating condition.
(3) If it is inevitable to enter the robot work area to teach the robot, check the locations, settings, and
other conditions of the safety devices (such as the EMERGENCY STOP button, the DEADMAN
switch on the teach pendant) before entering the area.
(4) The programmer must be extremely careful not to let anyone else enter the robot work area.
(5) Programming should be done outside the area of the safety fence as far as possible. If programming
needs to be done in the area of the safety fence, the programmer should take the following
precautions:
- Before entering the area of the safety fence, ensure that there is no risk of dangerous situations
in the area.
- Be prepared to press the emergency stop button whenever necessary.
- Robot motions should be made at low speeds.
- Before starting programming, check the entire system status to ensure that no remote instruction
to the peripheral equipment or motion would be dangerous to the user.
Our operator panel is provided with an emergency stop button and a key switch (mode switch) for selecting the
automatic operation mode (AUTO) and the teach modes (T1 and T2). Before entering the inside of the safety
fence for the purpose of teaching, set the switch to a teach mode, remove the key from the mode switch to prevent
other people from changing the operation mode carelessly, then open the safety gate. If the safety gate is opened
with the automatic operation mode set, the robot stops (Please refer to "STOP TYPE OF ROBOT" in SAFETY
PRECAUTIONS for detail of stop type). After the switch is set to a teach mode, the safety gate is disabled. The
programmer should understand that the safety gate is disabled and is responsible for keeping other people from
entering the inside of the safety fence.
Our teach pendant is provided with a DEADMAN switch as well as an emergency stop button. These button and
switch function as follows:
(1) Emergency stop button: Causes an emergency stop (Please refer to "STOP TYPE OF ROBOT" in SAFETY
PRECAUTIONS for detail of stop type) when pressed.
(2) DEADMAN switch: Functions differently depending on the teach pendant enable/disable switch setting
status.
(a) Disable: The DEADMAN switch is disabled.
(b) Enable: Servo power is turned off when the operator releases the DEADMAN switch or when the
operator presses the switch strongly.
Note) The DEADMAN switch is provided to stop the robot when the operator releases the teach pendant or
presses the pendant strongly in case of emergency. The R-30iB/R-30iB Mate employs a 3-position
DEADMAN switch, which allows the robot to operate when the 3-position DEADMAN switch is pressed
to its intermediate point. When the operator releases the DEADMAN switch or presses the switch
strongly, the robot stops immediately.
The operator’s intention of starting teaching is determined by the controller through the dual operation of setting the
teach pendant enable/disable switch to the enable position and pressing the DEADMAN switch. The operator
should make sure that the robot could operate in such conditions and be responsible in carrying out tasks safely.
Based on the risk assessment by FANUC, number of operation of DEADMAN SW should not exceed about 10000
times per year.
s-6
B-83474EN/02 SAFETY PRECAUTIONS
The teach pendant, operator panel, and peripheral device interface send each robot start signal. However the
validity of each signal changes as follows depending on the mode switch and the DEADMAN switch of the operator
panel, the teach pendant enable switch and the remote condition on the software.
Software
Teach pendant
Mode remote Teach pendant Operator panel Peripheral device
enable switch
condition
Local Not allowed Not allowed Not allowed
On
AUTO Remote Not allowed Not allowed Not allowed
mode Local Not allowed Allowed to start Not allowed
Off
Remote Not allowed Not allowed Allowed to start
Local Allowed to start Not allowed Not allowed
On
T1, T2 Remote Allowed to start Not allowed Not allowed
mode Local Not allowed Not allowed Not allowed
Off
Remote Not allowed Not allowed Not allowed
T1,T2 mode: DEADMAN switch is effective.
(6) To start the system using the operator’s panel, make certain that nobody is the robot work area and
that there are no abnormal conditions in the robot work area.
(7) When a program is completed, be sure to carry out a test operation according to the procedure
below.
(a) Run the program for at least one operation cycle in the single step mode at low speed.
(b) Run the program for at least one operation cycle in the continuous operation mode at low
speed.
(c) Run the program for one operation cycle in the continuous operation mode at the intermediate
speed and check that no abnormalities occur due to a delay in timing.
(d) Run the program for one operation cycle in the continuous operation mode at the normal
operating speed and check that the system operates automatically without trouble.
(e) After checking the completeness of the program through the test operation above, execute it in
the automatic operation mode.
(8) While operating the system in the automatic operation mode, the teach pendant operator should
leave the robot work area.
s-7
SAFETY PRECAUTIONS B-83474EN/02
(6) Before the start of teaching, check that the robot and its peripheral devices are all in the normal
operating condition.
(7) Do not operate the robot in the automatic mode while anybody is in the robot work area.
(8) When you maintain the robot alongside a wall or instrument, or when multiple workers are working
nearby, make certain that their escape path is not obstructed.
(9) When a tool is mounted on the robot, or when any moving device other than the robot is installed,
such as belt conveyor, pay careful attention to its motion.
(10) If necessary, have a worker who is familiar with the robot system stand beside the operator panel
and observe the work being performed. If any danger arises, the worker should be ready to press
the EMERGENCY STOP button at any time.
(11) When replacing a part, please contact FANUC service center. If a wrong procedure is followed, an
accident may occur, causing damage to the robot and injury to the worker.
(12) When replacing or reinstalling components, take care to prevent foreign material from entering the
system.
(13) When handling each unit or printed circuit board in the controller during inspection, turn off the
circuit breaker to protect against electric shock.
If there are two cabinets, turn off the both circuit breaker.
(14) A part should be replaced with a part recommended by FANUC. If other parts are used, malfunction
or damage would occur. Especially, a fuse that is not recommended by FANUC should not be used.
Such a fuse may cause a fire.
(15) When restarting the robot system after completing maintenance work, make sure in advance that
there is no person in the work area and that the robot and the peripheral devices are not abnormal.
(16) When a motor or brake is removed, the robot arm should be supported with a crane or other
equipment beforehand so that the arm would not fall during the removal.
(17) Whenever grease is spilled on the floor, it should be removed as quickly as possible to prevent
dangerous falls.
(18) The following parts are heated. If a maintenance worker needs to touch such a part in the heated
state, the worker should wear heat-resistant gloves or use other protective tools.
- Servo motor
- Inside the controller
- Reducer
- Gearbox
- Wrist unit
(19) Maintenance should be done under suitable light. Care must be taken that the light would not cause
any danger.
(20) When a motor, reducer, or other heavy load is handled, a crane or other equipment should be used to
protect maintenance workers from excessive load. Otherwise, the maintenance workers would be
severely injured.
(21) The robot should not be stepped on or climbed up during maintenance. If it is attempted, the robot
would be adversely affected. In addition, a misstep can cause injury to the worker.
(22) When performing maintenance work in high place, secure a footstep and wear safety belt.
(23) After the maintenance is completed, spilled oil or water and metal chips should be removed from the
floor around the robot and within the safety fence.
(24) When a part is replaced, all bolts and other related components should put back into their original
places. A careful check must be given to ensure that no components are missing or left not mounted.
(25) In case robot motion is required during maintenance, the following precautions should be taken :
- Foresee an escape route. And during the maintenance motion itself, monitor continuously the
whole system so that your escape route will not become blocked by the robot, or by peripheral
equipment.
- Always pay attention to potentially dangerous situations, and be prepared to press the emergency
stop button whenever necessary.
(26) The robot should be periodically inspected. (Refer to the robot mechanical manual and controller
maintenance manual.) A failure to do the periodical inspection can adversely affect the performance
or service life of the robot and may cause an accident
s-8
B-83474EN/02 SAFETY PRECAUTIONS
(27) After a part is replaced, a test operation should be given for the robot according to a predetermined
method. (See TESTING section of “R-30iB/R-30iB Mate Controller operator’s manual (Basic
Operation)”.) During the test operation, the maintenance staff should work outside the safety fence.
s-10
B-83474EN/02 SAFETY PRECAUTIONS
WARNING
The stopping distance and stopping time of Controlled stop are longer than the
stopping distance and stopping time of Power-Off stop. A risk assessment for
the whole robot system, which takes into consideration the increased stopping
distance and stopping time, is necessary when Controlled stop is used.
When the emergency stop button is pressed or the FENCE is open, the stop type of robot is Power-Off
stop or Controlled stop. The configuration of stop type for each situation is called stop pattern. The stop
pattern is different according to the controller type or option configuration.
Emergency External
Stop Servo
Mode stop Emergency FENCE open SVOFF input
pattern disconnect
button stop
AUTO P-Stop P-Stop C-Stop C-Stop P-Stop
A T1 P-Stop P-Stop - C-Stop P-Stop
T2 P-Stop P-Stop - C-Stop P-Stop
AUTO P-Stop P-Stop P-Stop P-Stop P-Stop
B T1 P-Stop P-Stop - P-Stop P-Stop
T2 P-Stop P-Stop - P-Stop P-Stop
AUTO C-Stop C-Stop C-Stop C-Stop C-Stop
C T1 P-Stop P-Stop - C-Stop P-Stop
T2 P-Stop P-Stop - C-Stop P-Stop
P-Stop: Power-Off stop
C-Stop: Controlled stop
-: Disable
s-11
SAFETY PRECAUTIONS B-83474EN/02
The following table indicates the Stop pattern according to the controller type or option configuration.
Option R-30iB / R-30iB Mate
Standard A (*)
Controlled stop by E-Stop (A05B-2600-J570) C (*)
(*) R-30iB / R-30iB Mate does not have servo disconnect. / R-30iB Mate does not have SVOFF input.
The stop pattern of the controller is displayed in "Stop pattern" line in software version screen. Please
refer to "Software version" in operator's manual of controller for the detail of software version screen.
Alarm Condition
SRVO-001 Operator panel E-stop Operator panel emergency stop is pressed.
SRVO-002 Teach pendant E-stop Teach pendant emergency stop is pressed.
SRVO-007 External emergency stops External emergency stop input (EES1-EES11, EES2-EES21) is
open.
SRVO-408 DCS SSO Ext Emergency Stop In DCS Safe I/O connect function, SSO[3] is OFF.
SRVO-409 DCS SSO Servo Disconnect In DCS Safe I/O connect function, SSO[4] is OFF.
The stop type of DCS Position and Speed Check functions is not affected by the loading of this option.
WARNING
The stopping distance and stopping time of Controlled stop are longer than the
stopping distance and stopping time of Power-Off stop. A risk assessment for
the whole robot system, which takes into consideration the increased stopping
distance and stopping time, is necessary when this option is loaded.
131017
s-12
B-83474EN/02 TABLE OF CONTENTS
TABLE OF CONTENTS
SAFETY PRECAUTIONS............................................................................s-1
1 OVERVIEW ............................................................................................. 1
1.1 OVERVIEW ................................................................................................... 1
1.2 GENERAL TRACKING DESCRIPTIONS ...................................................... 1
1.3 SINGLE-AXIS (RAIL) TRACKING ................................................................. 1
1.4 CARTESIAN TRACKING............................................................................... 2
1.4.1 LINE Tracking .........................................................................................................2
1.4.2 CIRCULAR Tracking ..............................................................................................2
APPENDIX
A CONVEYOR LIMITS AND TRACKING ACCURACY ......................... 129
A.1 CONVEYOR SPEED LIMIT ....................................................................... 129
c-2
B-83474EN/02 TABLE OF CONTENTS
c-3
B-83474EN/02 1.OVERVIEW
1 OVERVIEW
1.1 OVERVIEW
Tracking is an optional feature that enables a robot to treat a moving workpiece as a stationary object. The
option is used in conveyor applications, where the robot must perform tasks on moving workpieces
without stopping the assembly line. See Figure 1.1.
This user guide provides information for the installation and operation of Line Tracking option. This
feature provides a complete stand-alone environment for all teach pendant-based line tracking, with teach
pendant SETUP screen access to tracking parameters and teach pendant instructions for tracking program
execution.
This single-axis tracking is known as rail tracking, since the typical application uses a rail or platform to
perform the tracking motion. With rail tracking, the robot arm configuration (excluding the tracking axis)
remains as programmed. All types of motion (Linear, Circular, and Joint) are allowed.
Rail tracking is a simple method of dealing with a constantly moving workpiece. Rail tracking is used in
large systems that can occupy a large amount of floor space. It is easy to teach and works with almost any
application. This option allows a large volume of work to be accomplished by one system.
NOTE
Program path planning and teaching is critical for Cartesian tracking. Inefficient
paths can restrict robot movement around the workpiece, possibly reducing the
workspace. In addition, the joint trajectories of the robot will rarely be the same
during program execution as during program teaching due to the motion of the
conveyor. Refer to Chapter 4 and Chapter 5 before you attempt to teach a
tracking path.
NOTE
Cartesian tracking only supports integrated extended axes.
NOTE
Only Linear program motion is supported for circular tracking. Circular and Joint
program motion is not permitted.
-2-
B-83474EN/02 2.HARDWARE AND SOFTWARE
2.1.1 Requirements
R-30iB / R-30iB Mate line tracking system requires the items shown below.
-3-
2.HARDWARE AND SOFTWARE B-83474EN/02
Line Tracking A20B-8101-0421 A20B-8101-0421 • The Line tracking interface board in the
Interface Board (wide-mini slot) (wide-mini slot) left column is included in the following
or or order specification.
A20B-8101-0601 A20B-8101-0601 A05B-2600-J035, A05B-2660-J035
(mini slot) (mini slot) (A/B-Cabinet, wide-mini slot)
A05B-2600-J036, A05B-2660-J036
(A-Cabinet, mini slot)
A05B-2600-J037 (B-Cabinet, mini slot)
• Separate Detector Unit (SDU) -
A02B-0323-C205 can be used in place
of Line tracking Interface board.
NOTE: SDU requires retrofit work to
mount in the container. (See Fig. 2.1.1
(f) to Fig. 2.1.1 (m).)
• A1000S Pulsecoder can be also
connected to Encoder terminal (JD17)
on Main CPU board. In this case, Line
tracking interface board is made
redundant, but Learning Vibration
Control function (A05B-2600-J573)
(option) cannot be used.
Fiber Optic A66L-6001-0023 A66L-6001-0023 • The Fiber Optic cable in the left column
(FSSB) Cable is included in the following order
specification.
A05B-2600-J035, A05B-2660-J035
(A/B-Cabinet, wide-mini slot)
A05B-2600-J036, A05B-2660-J036
(A-Cabinet, mini slot)
A05B-2600-J037 (B-Cabinet, mini slot)
-4-
B-83474EN/02 2.HARDWARE AND SOFTWARE
Refer to Fig. 2.1.1 (a) to Fig. 2.1.1 (c) for Pulsecoder signal information, and images containing the
dimensions of the encoders.
Refer to Fig. 2.1.1 (d) to Fig. 2.1.1 (n) for information on dimensions, connections, and installation of the
Detector Interface Units.
Line Tracking A20B-8101-0601 A20B-8101-0601 • The Line tracking interface board in the
Interface Board (mini slot) (mini slot) left column is included in the following
order specification.
A05B-2650-J035, A05B-2661-J035
(R-30iB Mate, mini slot)
A05B-2655-J035, A05B-2662-J035
(R-30iB Mate (Open Air), mini slot)
• αA1000S Pulsecoder can be also
connected to Encoder terminal
(CRS41) on Main CPU board. In this
case, Line tracking interface board is
made redundant, but Learning
Vibration Control function
(A05B-2660-J573) (option) cannot be
used.
Fiber Optic A66L-6001-0026 A66L-6001-0023 • The Line tracking interface board in the
(FSSB) Cable left column is included in the following
order specification.
A05B-2650-J035, A05B-2661-J035
(R-30iB Mate, mini slot)
A05B-2655-J035, A05B-2662-J035
(R-30iB Mate (Open Air), mini slot)
-5-
2.HARDWARE AND SOFTWARE B-83474EN/02
Refer to Fig. 2.1.1 (a) to Fig. 2.1.1 (c) for Pulsecoder signal information, and images containing the
dimensions of the encoders.
Refer to Fig. 2.1.1 (d) to Fig. 2.1.1 (n) for information on dimensions, connections, and installation of the
Detector Interface Units.
Table 2.1.1 (d) Requirements for R-30iB Mate Main CPU board (αA1000S Pulsecoder)
Connectable /
Main CPU board Board Specification Non-connectable for Comments
αA1000S Pulsecoder
Main CPU board A A20B-8200-0790 Non-connectable • The Main CPU board in the left column is
included in the following order
specification.
A05B-2650-H001, A05B-2661-H001
(R-30iB Mate)
A05B-2655-H001, A05B-2662-H001
(R-30iB Mate (Open Air))
-6-
B-83474EN/02 2.HARDWARE AND SOFTWARE
Connectable /
Main CPU board Board Specification Non-connectable for Comments
αA1000S Pulsecoder
Main CPU board B A20B-8200-0791 Connectable • The Main CPU board in the left column is
included in the following order
specification.
A05B-2650-H002, A05B-2661-H002
(R-30iB Mate)
A05B-2655-H002, A05B-2662-H002
(R-30iB Mate (Open Air))
Main CPU board C A20B-8200-0792 Connectable • The Main CPU board in the left column is
included in the following order
specification.
A05B-2650-H003, A05B-2661-H003
(R-30iB Mate)
A05B-2655-H003, A05B-2662-H003
(R-30iB Mate (Open Air))
Item Specification
Power voltage 5 [V]±5%
Current consumption Up to 0.3 [A]
Working temperature range 0 to +60 [℃]
1 000 000 [/rev.]
Resolution (NOTE: The resolution that is used in Line tracking
function is 65 536 [/rev.].)
Maximum speed of revolution 4000 [min-1]
-4 2
Input shaft inertia Up to 1×10 [kg m ]
Input shaft startup torque Up to 0.1 [N m]
Radial 98 [N]
Ratio loads
Axial 49 [N]
-3
Shaft diameter runout 0.02×10 [m]
Dust proof and drip-proof
Configuration
(equivalent to IP55: when using waterproof connector)
Vibration proof acceleration 5 [G] (50 to 2,000[Hz])
Weight Approx. 0.75 [kg]
Fig. 2.1.1 (b) αA1000S Pulsecoder (A860-0372-T001) specifications
-7-
2.HARDWARE AND SOFTWARE B-83474EN/02
COP10B
Line Tracking Interface board
(mini slot)
A-cabinet: A05B-2600-J036,
A05B-2660-J036
B-cabinet: A05B-2600-J037
COP10B
Line Tracking Interface board (wide-mini slot)
A05B-2600-J035, A05B-2660-J035
COP10A
COP10B
Fig. 2.1.1 (e) R-30iB Mate Controller with line tracking connections
NOTE
If the line tracking interface board and main CPU board cannot be used or is not
available, you can use the SDU shown in Fig. 2.1.1 (f) to Fig. 2.1.1 (n).
-9-
2.HARDWARE AND SOFTWARE B-83474EN/02
- 10 -
B-83474EN/02 2.HARDWARE AND SOFTWARE
Fig. 2.1.1 (g) Cable connection between basic unit and expansion unit
- 11 -
2.HARDWARE AND SOFTWARE B-83474EN/02
- 12 -
B-83474EN/02 2.HARDWARE AND SOFTWARE
CAUTION
To install or remove the unit, you must insert a screwdriver obliquely. Therefore,
you must have sufficient access clearance on both sides of the units. As a
general guideline, if the front of an adjacent unit appears flush with the unit or
slightly set back, allow a clearance of about 20 mm between the two units. If the
front of an adjacent unit protrudes beyond the front of the unit, allow a clearance
of about 70 mm between the two units. Also, when you are installing the unit
near the side of a cabinet, you must allow a clearance of about 70 mm between
the unit and the side of the cabinet.
CAUTION
When you are removing the unit, be careful not to damage the lock by applying
excessive force. When you are installing and removing the unit, hold the upper
and lower ends of the unit so that stress is not applied to the side of the unit (the
surface with slits).
- 13 -
2.HARDWARE AND SOFTWARE B-83474EN/02
- 14 -
B-83474EN/02 2.HARDWARE AND SOFTWARE
COP10A
COP10B
COP10A
COP10B
COP10A
COP10B
COP10A
COP10B
COP10A
2.1.2 Installation
A tracking encoder must be installed to monitor the speed of the line or conveyor. A part detect switch
must also be installed to detect the approach of a new part.
- 15 -
2.HARDWARE AND SOFTWARE B-83474EN/02
Tracking Encoder
Encoders (Pulsecoders) that can be used for R-30iB / R-30iB Mate robots are shown below.
• αA1000S Pulsecoder A860-0372-T001 (available as both incremental and absolute)
• Incremental Pulsecoder A860-0301-T001 to T004
Normally, use αA1000S Pulsecoder A860-0372-T001.
Make sure you use appropriate gear or reducer to get desirable resolution (typically 30-80 pulses per mm
for Line Tracking).
NOTE
You must be aware of the exact location along the conveyor, at which the part
will trigger the switch. This location will be used for tracking.
NOTE
Tracking accuracy depends on the precision of the trigger switch. A faster part
detect switch gives a more precise trigger value.
Pulse Multiplexer
When using multiple robots, input the value of the encoder to each robot controller via the pulse
multiplexer. Connect the line tracking cables and power cable to the pulse multiplexer as shown in
Appendix C. When the pulse multiplexer is used, αA1000S Pulsecoder A860-0372-T001 can not be used.
If you want to use multiple robots with αA1000S Pulsecoder, use Ethernet Encoder function
(A05B-2600-R762, A05B-2660-R762) (option).
- 16 -
B-83474EN/02 2.HARDWARE AND SOFTWARE
JF21
JF22
Pulsecoder cable
R-30iB / A-Cabinet :
COP10B
A05B-2601-J220 to J223
R-30iB / B-Cabinet :
A05B-2603-J220 to J223
COP10A
Fig. 2.1.2 (a) Connecting cables with Line tracking interface board A05B-2600-J035 or A05B-2660-J035
(one αA1000S Pulsecoder)
JRF3
Pulsecoder cable
R-30iB / A-Cabinet :
A05B-2601-J210 to J213 COP10B
R-30iB / B-Cabinet :
A05B-2603-J210 to J213
Fig. 2.1.2 (b) Connecting cables with Line tracking interface board A05B-2600-J036, A05B-2660-J036 or
A05B-2600-J037 (one αA1000S Pulsecoder)
JRF3
COP10B
Pulsecoder cable
R-30iB / A-Cabinet :
A05B-2601-J260 to J263
R-30iB / B-Cabinet :
A05B-2603-J260 to J263
Fig. 2.1.2 (c) Connecting cables with Line tracking interface board A05B-2600-J036, A05B-2660-J036 or
A05B-2600-J037 (two αA1000S Pulsecoders)
- 17 -
2.HARDWARE AND SOFTWARE B-83474EN/02
JD17
Pulsecoder cable
R-30iB / A-Cabinet :
A05B-2601-J270 to J273
R-30iB / B-Cabinet :
A05B-2603-J270 to J273
Fig. 2.1.2 (d) Connecting cables with R-30iB Main CPU board (one αA1000S Pulsecoder)
JRF3
Pulsecoder cable
R-30iB Mate : COP10B
A05B-2650-J205 to J207
A05B-2661-J205 to J207
R-30iB Mate (Open Air) :
A05B-2655-J205 to J207
A05B-2662-J205 to J207
Fig. 2.1.2 (e) Connecting cables with Line tracking interface board A05B-2650-J035, A05B-2655-J035,
A05B-2661-J035 or A05B-2662-J035 (one αA1000S Pulsecoder)
JRF3
COP10B
Pulsecoder cable
R-30iiB Mate :
A05B-2650-J215 to J217
A05B-2661-J215 to J217
R-30iB Mate (Open Air) :
A05B-2655-J215 to J217
A05B-2662-J215 to J217
Fig. 2.1.2 (f) Connecting cables with Line tracking interface board A05B-2650-J035, A05B-2655-J035,
A05B-2661-J035 or A05B-2662-J035 (two αA1000S Pulsecoders)
- 18 -
B-83474EN/02 2.HARDWARE AND SOFTWARE
Pulsecoder cable
R-30iB Mate :
A05B-2650-J220 to J222 CRS41
A05B-2661-J220 to J222
R-30iB Mate (Open Air) :
A05B-2655-J220 to J222
A05B-2662-J220 to J222
Fig. 2.1.2 (g) Connecting cables with R-30iB Mate Main CPU board (one αA1000S Pulsecoder)
2.2 SOFTWARE
Line tracking software is distributed as an option.
2.2.1 Restriction
NOTE
Restart position check function cannot be used with the Line Tracking function.
Therefore, please set $USERTOL_ENB=FALSE in system variable screen in
order to disable Restart position check function.
- 19 -
3.LINE TRACKING SETUP B-83474EN/02
NOTE
Encoders must be set up before tracking information is set up.
Encoder Axis This item allows you to select the Encoder $SCR. $ENC_AXIS[Encoder
Value: 0 – 32 Axis number to set up. number]
Default: 0 NOTE: There is no need to setup Encoder
Axis number when use αA1000S Pulsecoder
which is connected to Main CPU board.
Encoder Type This item specifies the type of tracking $SCR. $ENC_TYPE[Encoder
Value: See Table 3.1.1 (b). encoder to be used. See Table 3.1.1 (b). number]
Default: INCREMENTAL
Encoder Enable This item allows you to turn the specified $ENC_STAT[Encoder number].
Value: OFF (0) / ON (1) tracking encoder ON or OFF. $ENC_ENABLE
Default: OFF (0)
Current Count (cnts) This item displays the current value for the $ENC_STAT[Encoder number].
Value: Integer specified encoder. $ENC_COUNT
Multiplier (ITP/update) This item allows you to specify how often the $ENC_STAT[Encoder number].
Value: 1 - 100 multiplier looks at the conveyor, which can $ENC_MULTIPL
Default: 1 save processor time.
Average (updates) This item is a value that will help to smooth $ENC_STAT[Encoder number].
Value: 1 - 100 robot motion when tracking the conveyor. $ENC_AVERAGE
Default: 1
Stop Threshold (cnt/updt) This item is the number of encoder counts $ENC_STAT[Encoder number].
Value: Positive Integer per encoder update. If the encoder counts $ENC_THRESH
Default: 0 per update go below this number, the
system will consider the conveyor stopped.
Simulate Enable This item allows you to turn simulation of the $ENC_STAT[Encoder number].
Value: OFF (0) / ON (1) specified tracking encoder ON or OFF. $ENC_SIM_ON
Default: OFF (0)
- 20 -
B-83474EN/02 3.LINE TRACKING SETUP
Simulate Rate (cnt/updt) This item is the desired number of encoder $ENC_STAT[Encoder number].
Value: Integer counts per encoder update. This field is $ENC_SIM_SPD
Default: 0 used when encoder simulation is enabled.
SETUP Encoders
1/8
Encoder Number : 1
1 Encoder Axis : 0
2 Encoder Type : INCREMENTAL
3 Encoder Enable : OFF
Current Count (cnts) : 0
4 Multiplier (ITP/update) : 1
5 Average (updates) : 1
6 Stop Threshold (cnt/updt) : 0
7 Simulate : Enable : OFF
8 Rate (cnt/updt) : 0
5. To display the encoder information for another Encoder number, press F3 key “ENCODER”. This is
the schedule selection number of the encoder you are setting up. The default value is 1. For detail, see
Subsection 3.1.2 “Encoder Number Setup” which Encoder number you should set the encoder
information.
NOTE
There are two encoders available if you are using a line tracking interface board
(A20B-8101-0421, A20B-8101-0601). There is one encoder available if you are
using the Main CPU board (only αA1000S Pulsecoder). There are up to eight
encoders available if you are using Separate Detector Units, SDU1
(A02B-0323-C205) and SDU2 (A02B-0323-C204).
6. Select Encoder Axis. Type the servo axis number to be used for the tracking encoder. Valid values
for this field are 1 through 32.
For single axis tracking, this field is set to 1. For dual axis tracking, set the Encoder Axis number of
Encoder 1 to 1 and set the Encoder Axis number of Encoder 2 to 2.
NOTE: There is no need to setup Encoder Axis number when use αA1000S Pulsecoder which is
connected to Main CPU board.
NOTE
You must perform a COLD start for this change to take effect. Refer to Section
3.2 after you complete this procedure.
- 21 -
3.LINE TRACKING SETUP B-83474EN/02
7. Move the cursor to the Encoder Type. This specifies the type of tracking encoder that is to be used.
Press F4 key “[CHOICE]” and then the selection screen such as Fig.3.1.1 (b) is displayed. About
each Encoder Type selection, see Table.3.1.1 (b).
SETUP Encoders
1/8
Encoder1Number : 1
1 1 Encoder Axis :
INCREMENTAL 0
2 2 Encoder Type
Serial ABS: INCREMENTAL
3 3 Encoder Enable :
SERVOCONV OFF
4 Current Count (cnts) :
VIRTUAL 0
5 4 Multiplier (ITP/update) :
Serial INC 1
6 5Main
Average (updates)
Serial INC : 1
7 6Main
StopSerial
Threshold
ABS (cnt/updt) : 0
7 Simulate : Enable : OFF
8 Rate (cnt/updt) : 0
2 Serial ABS Select “Serial ABS” when αA1000S Pulsecoder (A860-0372-T001) is used as
absolute type encoder and connected to Line tracking interface board
(A20B-8101-0421 (wide-mini slot), A20B-8101-0601 (mini slot)) or Separate
Detector Unit (SDU).
3 SERVOCONV “SERVOCONV” is used when Servo Conveyer Line Tracking function. See
section 5.10 “SERVO CONVEYER LINE TRACKING FUNCTION” for detail.
4 VIRTUAL This mode allows you to run the line tracking motion with simulated encoder
without actual hardware (Line tracking interface board or Separate Detector Unit
(SDU)).
5 Serial INC Select “Serial INC” when αA1000S Pulsecoder (A860-0372-T001) is used as
incremental type encoder and connected to Line tracking interface board
(A20B-8101-0421 (wide-mini slot), A20B-8101-0601 (mini slot)) or Separate
Detector Unit (SDU).
6 Main Serial INC Select “Main Serial INC” when αA1000S Pulsecoder (A860-0372-T001) is used
as incremental type encoder and connected to Encoder terminal of Main CPU
board (R-30iB: JD17, R-30iB Mate: CRS41(*1)).
7 Main Serial ABS Select “Main Serial INC” when αA1000S Pulsecoder (A860-0372-T001) is used
as absolute type encoder and connected to Encoder terminal of Main CPU board
(R-30iB: JD17, R-30iB Mate: CRS41(*1)).
(*1) αA1000S Pulsecoder cannot be connected to Main CPU board A (A20B-8200-0790) for R-30iB
Mate. In such case, Line tracking interface board is required. About connectable Main CPU board of
R-30iB Mate for αA1000S Pulsecoder, see Table 3.1.1 (c).
- 22 -
B-83474EN/02 3.LINE TRACKING SETUP
NOTE
If “1 INCREMENTAL”, “2 Serial ABS”, or “5 Serial INC” is selected with the
controller has no Line tracking interface board (e.g. when connect αA1000S
Pulsecoder to Main CPU board), “SRVO-056 FSSB com error 2 (G: Group
number A: Axis number)” could occur. Set correct Encoder Type as directed in
Table 3.1.1 (b).
NOTE
If “1 INCREMENTAL” is selected but Pulsecoder is actually not connected (Line
tracking interface board is installed), “SRVO-082 DAL alarm (Track encoder:
Encoder number)” warning could occur. If the Encoder Axis number is set to an
axis number which is used for motor control, the controller might turn off servo
with SRVO-082 warning. If you do not connect Pulsecoder, clear the Encoder
Axis number to zero.
Table 3.1.1 (c) Requirements for R-30iB Mate Main CPU board (αA1000S Pulsecoder)
Connectable /
Main CPU board Board Specification Non-connectable for Comments
αA1000S Pulsecoder
Main CPU board A A20B-8200-0790 Non-connectable • The Main CPU board in the left column
is included in the following order
specification.
A05B-2650-H001, A05B-2661-H001
(R-30iB Mate)
A05B-2655-H001, A05B-2662-H001
(R-30iB Mate (Open Air))
Main CPU board B A20B-8200-0791 Connectable • The Main CPU board in the left column
is included in the following order
specification.
A05B-2650-H002, A05B-2661-H002
(R-30iB Mate)
A05B-2655-H002, A05B-2662-H002
(R-30iB Mate (Open Air))
Main CPU board C A20B-8200-0792 Connectable • The Main CPU board in the left column
is included in the following order
specification.
A05B-2650-H003, A05B-2661-H003
(R-30iB Mate)
A05B-2655-H003, A05B-2662-H003
(R-30iB Mate (Open Air))
NOTE
You must perform a COLD start for this change to take effect. Refer to Section
3.2 after you complete this procedure.
8. Move the cursor to Encoder Enable. This allows you to turn the specified tracking encoder ON or
OFF.
• To turn ON the encoder, press F4 key “ON”. When turned ON, the encoder will update the count
value. The encoder must be turned ON for use with both the actual encoder and under simulation.
• To turn OFF the encoder, press F5 key “OFF”.
• Current Count (cnts) displays the current value for the specified encoder. You cannot modify this
value.
- 23 -
3.LINE TRACKING SETUP B-83474EN/02
CAUTION
The Encoder Enable field will automatically reset to OFF after each COLD start.
Verify it is set correctly before you run production. Otherwise, your system will
not operate correctly.
NOTE
You can also turn the encoder ON or OFF from within a teach pendant program,
by using the LINE instruction. For more information about the LINE instruction,
refer to Section 4.5.
9. Select Multiplier (ITP/update). Enter a value for the encoder update multiplier. This field allows you
to specify how often the multiplier looks at the conveyor, which can save processor time. There will
be one encoder update for every interpolation time increment (ITP_TIME: Usually 8msec).
Multiplier × ITP_TIME (msec) = encoder 1 update (msec)
10. Select Average (updates). Enter a value that will help to smooth robot motion when tracking the
conveyor.
If you have a conveyor that does not move smoothly, set this field to a larger value to make robot
motion smooth. A typical encoder average value is 10.
11. Select Stop Threshold (cnt/updt). Type the number of encoder counts per encoder update. If the
encoder count per update goes below this number, the system will consider the conveyor stopped.
12. Move the cursor to Simulate Enable. This allows you to turn simulation of the specified tracking
encoder ON or OFF (Step 8). The default is OFF. This field is typically used for testing purposes.
NOTE
You do not have to plug in a real encoder to simulate. However, if you do not
have a real encoder connected, you might get a “SRVO-082 DAL alarm (Track
encoder: Encoder number)” error code. This error will not affect the operation of
the robot or the simulated line tracking. However, some line tracking instructions
(DEFENC, LINESIM, and LINE, for example) might function differently than
expected, if you simulate without a real encoder connected. For more
information about line tracking instructions, refer to Section 4.5.
• To simulate the tracking encoder, press F4 key “ON”. When turned ON, the encoder counts will
be generated based upon the simulation rate value.
• To use actual encoder counts, press F5 key “OFF”. When turned OFF, the encoder counts will be
read from the actual encoder when the conveyor is moved.
NOTE
The encoder itself must also be turned ON to allow encoder simulation.
13. Select Simulate Rate (cnt/updt). Type the desired number of encoder counts per encoder update.
This field is used when encoder simulation is enabled.
14. You must perform a COLD start if you changed Encoder Axis (Step 6) or Encoder Type (Step 7).
This must be done before you setup Tracking (Section 3.3).
15. Verify that you have set up the encoder correctly. Refer to Subsection 3.1.3. This must be done
before you set up Tracking (Section 3.3).
You have completed Encoder Setup.
• If you have modified Encoder Axis or Encoder Type, you must perform a COLD start before
setting up Tracking. Proceed to Section 3.2.
• If you have not modified Encoder Axis or Encoder Type, you can now proceed to Section 3.3,
Tracking Setup.
- 24 -
B-83474EN/02 3.LINE TRACKING SETUP
• When connecting to Line tracking interface board or Separate Detector Unit (SDU),
Make sure to set the encoder information to the Encoder number which is the same as the Encoder
terminal number. If the Encoder number differs from the Encoder terminal number, the controller
cannot read the encoder data. The following Table 3.1.2 (a) shows correct Encoder number and
Encoder terminal number.
Table 3.1.2 (a) Correct Encoder number and Encoder terminal number
Line tracking interface board Separate Detecor Unit (SDU)
Encoder
Number A20B-8101-0421 A20B-8101-0601 A02B-0323-C205 (Basic unit)
(wide-mini slot) (mini slot) A02B-0323-C204 (Expansion unit)
NOTE
Only αA1000S Pulsecoder (A860-0372-T001) can be connected to encoder
terminal on Main CPU board.
The following encoder configuration example described in Table 3.1.2 (b) is available for R-30iB /
R-30iB Mate Line tracking function.
- 25 -
3.LINE TRACKING SETUP B-83474EN/02
Table 3.1.2 (b) Available encoder configuration example (when use αA1000S Pulsecoder)
Total
Number
Encoder configuration example Comments
of
Encoders
3 • Encoder number 1, 2 : Connect αA1000S Pulsecoder • Make sure to set the Pulsecoder
to JF21-JF22 of Line tracking interface board. which is connected to Encoder
• Encoder number 3 : Connect αA1000S Pulsecoder to terminal of Main CPU board as the
Encoder terminal of Main CPU board (R-30iB: JD17, last Encoder number when composed
R-30iB Mate: CRS41(*1)). of a combination of Line tracking
interface board and Main CPU board.
In the left configuration example, set
the Pulsecoder which is connected to
the Line tracking interface board as
Encoder number 1, 2 and set the
Pulsecoder which is connected to the
Main CPU board as Encoder number
3.
4 • Encoder number 1-4 : Connect αA1000S Pulsecoder • SDU requires retrofit work to mount in
to JF101-JF104 of Separate Detector Unit (SDU) Basic the container. See Subsection 2.1.1
unit. “Requirements”.
5 • Encoder number 1-4 : Connect αA1000S Pulsecoder • Make sure to set the Pulsecoder
to JF101-JF104 of Separate Detector Unit (SDU) Basic which is connected to Encoder
unit. terminal of Main CPU board as the
• Encoder number 5 : Connect αA1000S Pulsecoder to last Encoder number when composed
Encoder terminal of Main CPU board (R-30iB: JD17, of a combination of Line tracking
R-30iB Mate: CRS41(*1)). interface board and Main CPU board.
In the left configuration example, set
the Pulsecoder which is connected to
the Separate Detector Unit (SDU) as
Encoder number 1-4 and set the
Pulsecoder which is connected to the
Main CPU board as Encoder number
5.
• SDU requires retrofit work to mount in
the container. See Subsection 2.1.1
“Requirements”.
6 • Encoder number 1-4 : Connect αA1000S Pulsecoder • SDU requires retrofit work to mount in
to JF101-JF104 of Separate Detector Unit (SDU) Basic the container. See Subsection 2.1.1
unit. “Requirements”.
• Encoder number 5, 6 : Connect αA1000S Pulsecoder
to JF105-JF106 of Separate Detector Unit (SDU)
Expansion unit.
7 • Encoder number 1-4 : Connect αA1000S Pulsecoder • SDU requires retrofit work to mount in
to JF101-JF104 of Separate Detector Unit (SDU) Basic the container. See Subsection 2.1.1
unit. “Requirements”.
• Encoder number 5-7 : Connect αA1000S Pulsecoder
to JF105-JF107 of Separate Detector Unit (SDU)
Expansion unit.
- 26 -
B-83474EN/02 3.LINE TRACKING SETUP
Total
Number
Encoder configuration example Comments
of
Encoders
8 • Encoder number 1-4 : Connect αA1000S Pulsecoder • SDU requires retrofit work to mount in
to JF101-JF104 of Separate Detector Unit (SDU) Basic the container. See Subsection 2.1.1
unit. “Requirements”.
• Encoder number 5-8 : Connect αA1000S Pulsecoder
to JF105-JF108 of Separate Detector Unit (SDU)
Expansion unit.
(*1) αA1000S Pulsecoder cannot be connected to Main CPU board A (A20B-8200-0790) for R-30iB
Mate. In such case, Line tracking interface board is required. About connectable Main CPU board of
R-30iB Mate for αA1000S Pulsecoder, see Table 3.1.1 (c).
WARNING
DO NOT turn on the robot if you discover any problems or potential hazards.
Report them immediately. Turning on a robot that does not pass inspection could
result in serious injury.
UTILITIES Hints
ApplicationTool
Vx.xxx XXXX/XX
By performing a COLD start, the data you modified in Encoder Axis or Encoder Type has been saved.
You can now precede Section 3.3, Tracking Setup.
5. Select COLD Start and press ENTER. When the COLD start is complete, you will see a screen
similar to the following.
UTILITIES Hints
ApplicationTool
Vx.xxx XXXX/XX
By performing a COLD start, the data you modified in Encoder Axis or Encoder Type has been saved.
You can now precede Section 3.3, Tracking Setup.
- 29 -
3.LINE TRACKING SETUP B-83474EN/02
Visual Tracking This item indicates whether the Only used when the vision
vision system will be used as the system is loaded.
trigger mechanism.
Use Vision Part Queue This item indicates whether the Only used when the vision
vision system will be used to set up system is loaded.
the part queue.
Nominal Tracking Frame This item allows you to specify the $LNSCH.$TRK_FRAME
Value: Position (status) nominal tracking frame used within
Default: Uninit. Cartesian tracking systems.
Track (Ext) Axis Num This item specifies the extended $LNSCH.$TRK_AXS_NUM
Value: 0 - 3 axis which will be used for tracking
Default: 0 the conveyor within RAIL tracking
systems.
Encoder Scale Factor(cnt/mm) or For line and rail tracking, this item $LNSCH.$SCALE
(cnt/deg) specifies the number of encoder
Value: -999999.0 to 999999.0 counts per millimeter (counts/mm)
Default: 1.0 of conveyor motion. For circular
Must not = 0.0 tracking, this item specifies the
number of encoder counts per
degree (counts/degree) of conveyor
motion.
Part Detect Dist./Degrees(mm) or (deg) This item allows you to enter the $LNSCH.$TEACH_DIST
Value: Integer distance (in millimeters for Line and
Default: 0 Rail tracking and in degrees for
Circular tracking) from the part
detect switch to a user-chosen
location relative to the robot world
frame.
- 30 -
B-83474EN/02 3.LINE TRACKING SETUP
Trigger Value (cnts) This item displays the value of the $LNSCH.$TRIG_VALUE
Value: Integer encoder count at the time of the last
Default: 0 (uninit) part detect (as stored by the teach
pendant SETTRIG instruction).
Encoder Count (cnts) This item displays the current count $ENC_STAT.$ENC_COUNT
Value: Integer value for the specified encoder.
NOTE
Encoders must be set up before tracking information is set up. Refer to Section
3.1 if you have not set the encoder items.
- 31 -
3.LINE TRACKING SETUP B-83474EN/02
SETUP Tracking
1/24
Track Schedule Number : 1
1 Robot Tracking Group : 1
2 Tracking Type : Line
3 Visual Tracking : NO
4 Use Vision part queue: NO
5 Use Tracking Uframe: NO
6 Nominal Track Frame: Stat: WORLD
7 Track (Ext) Axis Num: 0
8 Track Axis Direction: POSITIVE
9 Tracking Encoder Num: 1
10 Enc Scale Factor (cnt/mm): 500.0
[ TYPE ] SCHED
6. To display the tracking information for another track schedule number, press F3, SCHED. This
specifies which one of the six schedules is displayed. You can choose any one of six tracking
schedule numbers for a tracking program, by specifying the desired schedule number in the program
header data.
NOTE
Be sure to select the correct schedule number for the tracking program so that
the correct variables are set during production.
NOTE
Changing the tracking type changes the values of the Nominal Tracking Frame,
Track Axis Number, and Track Axis Direction. The previous values will be stored
until either another schedule number is selected, or this SETUP menu is exited.
If the Tracking Type is returned to its previous value, before you select another
schedule number or exit the SETUP menu, the previous values will be restored.
11. If you are using Tracking User frame, set Use Tracking Uframe to YES. Otherwise, set it to NO.
12. If you are using Line or Circular tracking, move the cursor to Nominal Track Frame.
CAUTION
Do not set the nominal tracking frame for any schedule that specifies RAIL
tracking. The nominal tracking frame is automatically set to the (0,0,0,0,0,0)
WORLD frame for RAIL tracking systems.
- 32 -
B-83474EN/02 3.LINE TRACKING SETUP
13. Press F2, DETAIL.
• If you are using Line tracking, you will see a screen similar to the following.
SETUP Frames
Track Frame Setup (Line) 4/5
Track Frame of Schedule: 1
X: 0.00 Y: 0.00 Z: 0.00
W: 0.00 P: 0.00 R: 0.00
Teach Data :
Origin:UINIT Enc_cnt: 0
X: 0.00 Y: 0.00 Z: 0.00
+X dir:UINIT Enc_cnt: 0
X: 0.00 Y: 0.00 Z: 0.00
+Y dir:UINIT
X: 0.00 Y: 0.00 Z: 0.00
Scale (cnt/mm): 500.00
• If you are using Circular tracking, you will see a screen similar to the following.
SETUP Frames
Track Frame Setup (Circ) 4/5
Track Frame of Schedule: 1
X: 0.00 Y: 0.00 Z: 0.00
W: 0.00 P: 0.00 R: 0.00
Teach Data :
+X dir:UINIT Enc_cnt: 0
X: 0.00 Y: 0.00 Z: 0.00
+Y dir:UINIT Enc_cnt: 0
X: 0.00 Y: 0.00 Z: 0.00
Assist:UINIT
X: 0.00 Y: 0.00 Z: 0.00
Scale (cnt/mm): 8.73
The Track Frame SETUP menu provides a means for you to specify the nominal tracking frame used
within Cartesian tracking systems. You can either enter a value for the nominal tracking frame
directly, or teach the frame using the three-point method
• Use Procedure 3-5 if you are using the three-point method to set the nominal tracking frame.
This is the method of choice.
• Use Procedure 3-7 if you are using the direct entry method to set the nominal tracking frame.
NOTE
Refer to Subsection 3.3.1 for more detailed information about setting the
Nominal Tracking Frame.
14. If you are using Rail tracking, select Track (Ext) Axis Num. Enter a number that specifies the
extended axis which will be used for tracking the conveyor within RAIL tracking systems. This
number will automatically be set to 0 for Line and Circular tracking systems. Valid values are 1-3.
15. If you are using Rail tracking, move the cursor to Track Axis Direction. This specifies the normal
forward motion of the conveyor, by comparing it to the motion of the extended axis.
• If motion is the same as the extended axis, press F4, POSITIVE.
• If motion is opposite the extended axis, press F5, NEGATIVE.
- 33 -
3.LINE TRACKING SETUP B-83474EN/02
NOTE
The extended axis is used for tracking the conveyor within RAIL tracking
systems. The Track Axis Direction is automatically set to POSITIVE for Line and
Circular tracking systems.
16. When you have finished setting the Nominal Track Frame (Subsection 3.3.1), select Tracking
Encoder Num. Enter a number that specifies the encoder which will be used for all tracking
programs that use the current Tracking Schedule Number.
17. Move the cursor to Encoder Scale Factor.
• For Line and Rail tracking, this specifies the number of encoder counts per millimeter
(counts/mm) of conveyor motion.
• For Circular tracking, this specifies the number of encoder counts per degree (counts/degree) of
conveyor motion.
This number can be any real number except (0.0).
18. Press F2, TEACH. You will be taken to the Scale Factor Setup screen. Refer to Subsection 3.3.2 for
detailed information about teaching the Scale Factor.
19. After you have taught the Scale Factor (Procedure 3-8), select Part Detect Dist. Enter the distance (in
millimeters for Line and Rail tracking and in degrees for Circular tracking) from the part detect
switch to a user-chosen location relative to the robot world frame. This is usually the world X-axis,
which is perpendicular to the tracking conveyor when the robot is at its home position.
This number creates a reference between the nominal tracking frame and the part detect switch. The
program paths can then be copied from one robot to another, as long as the individual part detect
distances are correctly specified for each robot. This compensates for varying part detect switch
positions within a multi-robot application.
NOTE
This parameter relies on a correct value for the Encoder Scale Factor Step 17.
Refer to Fig. 3.3(a).
20. If you are using Tracking User frame instruction, VISUFRAME, set Vision Uframe Dist. to a proper
value.
- 34 -
B-83474EN/02 3.LINE TRACKING SETUP
21. Move the cursor to Trigger INPUT Number. Type a number to specify the digital input (DI[n] where
"n" is a number), which is to be used for the part detect switch input signal. This input is monitored
during conveyor synchronization for programs which specify the current Tracking Schedule Number.
Valid values range from 0-4096.
Trigger Value displays the value of the encoder count at the time of the last part detect (as stored by
the teach pendant SETTRIG instruction). You cannot modify this value.
Encoder Count displays the current count value for the specified encoder. You cannot modify this
value.
22. Select Selected Boundary Set. Enter a number to specify which of the boundary window sets (pairs
of $LNSCH.$BOUND1[n] and $LNSCH.$BOUND2[n]) are used for all position boundary checking,
within programs using the current Tracking Schedule Number. Refer to Fig. 3.3(b).
This number is used as an index into each of the two arrays. The index values are used in line
tracking programs, to determine when the robot should begin and end work on a part.
NOTE
The teach pendant SETBOUND instruction can be used to change this value
from within a teach pendant program. Refer to Section 4.5 for more information.
For Circular tracking the Selected Boundary Set fields should not be set.
23. Move the cursor to Boundary Set Up. This specifies the up-stream (IN-BOUND) location of a
boundary window set, where the number (n) is a number from 1 through 10 used to index which
boundary is being set or selected. Refer to Fig. 3.3(b).
• Conveyor positions further up-stream of this position is considered IN-BOUND. The robot
cannot work on the part.
• Conveyor positions further down-stream of this position are either IN-WINDOW or GONE.
The Selected Boundary Set number (entered in Step 22) is an index into this array. This value
must be further up-stream than the value of the corresponding down-stream boundary,
otherwise a warning message will be displayed.
• To record the current position of the robot TCP (relative to the nominal tracking frame), press
SHIFT and F2, RECORD simultaneously. The appropriate boundary value will be extracted
and stored as the selected boundary.
• To initialize the currently selected boundary value to 0.0 (regardless of the value of the
corresponding down-stream boundary value), press F4, INIT-BND. Refer to Fig. 3.3(b).
24. Move the cursor to Boundary Set Down. This specifies the down-stream (OUT-BOUND) location of
a boundary window set, where the location is a position along the direction of the conveyor relative
to the nominal tracking frame. Refer to Fig. 3.3(b).
• Conveyor positions further up-stream of this position is considered either IN-WINDOW or
IN-BOUND.
• Conveyor positions further down-stream of this position is considered GONE. The robot cannot
work on the part.
The Selected Boundary Set number is an index into this array. This value must be further
down-stream than the value of the corresponding up-stream boundary, otherwise a warning
message will appear.
• To record the current position of the robot TCP (relative to the nominal tracking frame), press
SHIFT and F2, RECORD simultaneously. The appropriate boundary value will be extracted
and stored as the selected boundary.
• To initialize the currently selected boundary value to 0.0 (regardless of the value of the
corresponding up-stream boundary value), press F4, INIT-BND. Refer to Fig. 3.3(b).
25. Verify that you have set up tracking correctly. Refer to Subsection 3.3.3. This should be done before
you run production.
During production, the system will wait until the part travels past the up-stream boundary before the robot
will start processing the part. If the part travels past the down-stream boundary, an alarm "TRAK-005
Track destination gone error" will be displayed and the robot will stop.
- 35 -
3.LINE TRACKING SETUP B-83474EN/02
The following lists some example values for a line tracking system. All Down bounds values are greater
than their corresponding Up bounds values:
Upbounds #1 -1500 mm Downbounds #1 - 100 mm
Upbounds #2 - 500 mm Downbounds #2 - 500 mm
Upbounds #3 - 100 mm Downbounds #3 - 1200 mm
• Use Procedure 3-5 if you are using the three-point method to set the nominal tracking frame for
line tracking. This is the method of choice.
• Use Procedure 3-7 if you are using the direct entry method to set the nominal tracking frame for
line tracking. This method is used when copying from another schedule.
• Use Procedure 3-6 if you are using the three-point method to set the nominal tracking frame for
circular tracking. This is the method of choice.
• Use Procedure 3-7 if you are using the direct entry method to set the nominal tracking frame for
circular tracking. This method is used when copying from another schedule.
For rail tracking applications the system automatically sets this value to be the WORLD (0,0,0,0,0,0)
frame.
CAUTION
Do not set any USER frame (UFRAME) values for tracking programs. Setting a
UFRAME could cause unexpected motion during tracking. If you try to set a
UFRAME, you will receive an error message when you try to record a tracking
position. The Tracking frame is used (instead of the UFRAME) for all tracking
motions.
- 36 -
B-83474EN/02 3.LINE TRACKING SETUP
each of these positions, and will be one of three values:
• UNINIT - indicates that the position is un-initialized
• RECORDED - indicates that the position has been recorded but not yet used during processing
• PROCESSED - indicates that the position has been recorded and already used to compute a new
nominal tracking frame
When any of these positions is selected, the word RECORD appears above the F2 function key. Pressing
SHIFT and RECORD simultaneously will record the current robot TCP position (to be used during later
processing) and will update the position status to RECORDED.
WARNING
Be sure the robot UTOOL is properly defined before performing this procedure.
Otherwise, you could injure personnel or damage equipment. Refer to “Setting a
Tool Coordinate System” in R-30iB / R-30iB Mate CONTROLLER
OPERATOR’S MANUAL (Basic Operation) (B-83284EN) for more information.
- 37 -
3.LINE TRACKING SETUP B-83474EN/02
Procedure 3-5 Three Point Method to Teach the Nominal Tracking Frame for Line
Tracking
Conditions
• You have selected Nominal Track Frame from the Tracking Setup Screen. Refer to Procedure
3-4, Step 12.
• You are currently at the Track Frame Screen.
Steps
1. Move the cursor to the ORIGIN Teach Method Data position. See the following screen for an
example.
SETUP Frames
Track Frame Setup (Line) 4/5
Track Frame of Schedule: 1
X: 0.00 Y: 0.00 Z: 0.00
W: 0.00 P: 0.00 R: 0.00
Teach Data :
Origin:RECORDED Enc_cnt: 2356
X: 2241.80 Y: 754.09 Z: 30.00
+X dir:RECORDED Enc_cnt: 2356
X: 2241.80 Y: 954.09 Z: 30.00
+Y dir:UINIT
X: 0.00 Y: 0.00 Z: 0.00
Scale (cnt/mm): 500.00
2. Move the robot TCP to a convenient position along the conveyor. (This position should be an easily
distinguishable location either on the conveyor or on a part riding on the conveyor.)
3. Record this position by pressing SHIFT and TEACH simultaneously. The status of the ORIGIN
position should change to RECORDED. The screen will also update X, Y, Z and Enc_cnt data with
current robot TCP position and encoder count value.
4. Move the cursor to select the +X Direction Teach Method Data position.
5. Move the robot away from the part so that the conveyor (and the part) can be moved without running
into the robot.
6. Move the conveyor FORWARD (in the direction of normal part flow) for a distance of at least
several hundred millimeters (the farther, as long as the robot will still be able to reach the new
location of the part.)
7. Stop the conveyor.
8. Move the robot to the same location relative to the conveyor (or part) that was used for the ORIGIN
position.
9. Record this position by pressing SHIFT and TEACH. (The status of the +X Direction position
should change to RECORDED.) The screen will also update X, Y, Z and Enc_cnt data with current
robot TCP position and encoder count value.
10. Move the cursor to select the +Y Direction Teach Method Data position.
11. Without moving the conveyor (or the part), move the robot at least 50mm in the direction
perpendicular to the conveyor.
Typically this is toward the left side of the conveyor, when viewing along the direction of forward
conveyor flow such that the resulting z-axis of the nominal tracking frame will point upward from
the conveyor.
12. Record this position by pressing SHIFT and TEACH simultaneously. (The status of the +Y
Direction position should change to RECORDED.)
13. To process all of the data positions and compute a new nominal tracking frame, press F3,
COMPUTE. When the processing is complete, the status of the three Teach method Data positions
will be set to PROCESSED, and the Frame Components data values will be updated to display the
new nominal tracking frame. See the following screen for an example.
- 38 -
B-83474EN/02 3.LINE TRACKING SETUP
SETUP Frames
Track Frame Setup (Line) 4/5
Track Frame of Schedule: 1
X: 2241.80 Y: 754.09 Z: 30.00
W: 0.00 P: 0.00 R: 0.00
Teach Data :
Origin:RECORDED Enc_cnt: 2356
X: 2241.80 Y: 754.09 Z: 30.00
+X dir:RECORDED Enc_cnt: 2356
X: 2241.80 Y: 954.09 Z: 30.00
+Y dir:RECORDED
X: 2241.80 Y: 954.09 Z: 30.00
Scale (cnt/mm): 500.00
14. You can setup the encoder scale for this line tracking schedule here or at scale item in the Tracking
Setup main menu. If you do not want to setup the encoder scales at this time, refer to Subsection
3.3.2, and set it at next time. If you want to setup it at this time, follow the steps here: Move the
cursor to Origin or +X dir. The SCALE function will be display. Calculate the encoder scale by
pressing SHIFT and SCALE. The scale value will be updated.
You have completed setup of the nominal tracking frame using the three point method. You can now go
back to Tracking Setup at Procedure 3-4, Step 16.
• The three points are used to compute the CENTER of the circular conveyor, which is then used as
the origin of the Nominal Tracking Frame for Circular tracking.
• The +y position relative to the +x position, must point in the direction of forward conveyor motion.
This establishes the orientation of the Nominal Tracking Frame.
• The Assistant position of the nominal tracking frame is arbitrary, but should be located as shown in
Fig. 3.3.1(b) or Fig. 3.3.1(c).
• For counter clockwise conveyor motion, the z-axis of the Nominal Tracking frame must point up.
Refer to Fig. 3.3.1(b).
• For clockwise conveyor motion, the z-axis must point down. Refer to Fig. 3.3.1(c).
• The x-axis of the Nominal Tracking Frame always points to the +x position used to teach the frame.
• All tracking positions are automatically recorded relative to this frame.
• Circular tracking boundary values should not be used.
- 39 -
3.LINE TRACKING SETUP B-83474EN/02
Assistant Position
Procedure 3-6 Three Point Method to Teach the Nominal Tracking Frame for Circular
Tracking
Conditions
• You have selected Nominal Track Frame from the Tracking Setup Screen. Refer to Procedure
3-4, Step 12.
• You are currently at the Track Frame Screen.
Steps
1. Move the cursor to select the +X Direction Teach Method Data position. Refer to Fig. 3.3.1(b) or
Fig. 3.3.1(c) for an illustration showing how to teach the nominal tracking frame for circular
tracking.
- 40 -
B-83474EN/02 3.LINE TRACKING SETUP
SETUP Frames
Track Frame Setup (Circ) 4/5
Track Frame of Schedule: 1
X: 0.00 Y: 0.00 Z: 0.00
W: 0.00 P: 0.00 R: 0.00
Teach Data :
+X dir:RECORDED Enc_cnt: 2356
X: 2241.80 Y: 754.09 Z: 30.00
+Y dir:RECORDED Enc_cnt: 2356
X: 2241.80 Y: 954.09 Z: 30.00
Assist:UINIT
X: 0.00 Y: 0.00 Z: 0.00
Scale (cnt/deg): 8.73
2. Move the robot TCP to a convenient position along the conveyor. (This position should be an easily
distinguishable location either on the conveyor or on a part riding on the conveyor.)
3. Record this position by pressing SHIFT and TEACH simultaneously. The status of the +X Direction
position should change to RECORDED.
4. Move the cursor to select the +Y Direction Teach Method Data position.
5. Move the robot away from the part so that the conveyor (and the part) can be moved without running
into the robot.
6. Move the conveyor FORWARD (in the direction of normal part flow) for a distance of at least 30 to
40 degrees (the farther the better, as long as the robot will still be able to reach the new location of
the part.)
7. Stop the conveyor.
8. Move the robot to the same location relative to the conveyor (or part) that was used for the +X
Direction position.
9. Record this position by pressing SHIFT and TEACH. The status of the +Y Direction position should
change to RECORDED.
10. Move the cursor to select the Assistant position.
11. Move the conveyor FORWARD (in the direction of normal part flow) for a distance of at least 30 to
40degrees. (The farther the better, as long as the robot will still be able to reach the new location of
the part.)
12. Record this position by pressing SHIFT and TEACH simultaneously. The status of the Assistant
position should change to RECORDED.
13. To process all of the data positions and compute a new nominal tracking frame, press F4,
COMPUTE. When the processing is complete, the status of the three Teach method Data positions
will be set to PROCESSED, and the Frame Components data values will be updated to display the
new nominal tracking frame. See the following screen for an example.
SETUP Frames
Track Frame Setup (Circ) 4/5
Track Frame of Schedule: 1
X: 1541.80 Y: 564.09 Z: 30.00
W: 0.00 P: 0.00 R: 0.00
Teach Data :
+X dir:RECORDED Enc_cnt: 2356
X: 2241.80 Y: 754.09 Z: 30.00
+Y dir:RECORDED Enc_cnt: 2356
X: 2241.80 Y: 954.09 Z: 30.00
Assist:RECORDED
X: 2241.80 Y: 1035.09 Z: 30.00
Scale (cnt/deg): 8.73
- 41 -
3.LINE TRACKING SETUP B-83474EN/02
14. You can setup the encoder scale for this line tracking schedule here or at scale item in the Tracking
Setup main menu. If you want to setup the encoder scale at this time follow the next steps.
15. Move the cursor to Origin or +X dir. The SCALE function will be display. Calculate the encoder
scale by pressing SHIFT and SCALE. The scale value will be updated.
You have completed setup of the nominal tracking frame using the three point method. You can now go
back to Tracking Setup at Procedure 3-4, Step 16.
Direct Entry
This method allows you to modify any of the frame component values (x, y, z, w, p, r) directly. This
method is usually used when you copy data from another schedule.
This value is a real number (in units of encoder counts per millimeter or degrees) representing
FORWARD conveyor motion. The sign (+/-) of this value is EXTREMELY important, since the encoder
might be wired into the controller in such a way as to provide either increasing or decreasing count values
for conveyor FORWARD motion. The sign of this value should not be confused with the value of the
Track Axis Direction used for RAIL tracking systems.
The encoder scale factor can be taught instead of computed manually. Use Procedure 3-8 to teach the
encoder scale factor.
WARNING
Be sure that the robot’s tool frame is properly defined before performing this
procedure. Otherwise, you could injure personnel or damage equipment.
Refer to “Setting a Tool Coordinate System” in R-30iB / R-30iB Mate
CONTROLLER OPERATOR’S MANUAL (Basic Operation) (B-83284EN) for
more information.
Teaching Hints
During this procedure, the two robot positions (the same position relative to the conveyor or part at two
different conveyor positions) and the two corresponding conveyor positions, are recorded internally. The
following equation is computed by the controller to determine the encoder scale factor value.
- 42 -
B-83474EN/02 3.LINE TRACKING SETUP
Both conveyor distance and robot positioning accuracy are very important in the above computation. The
conveyor should begin at the farthest up-stream end of the robot workspace, positioned so that the robot
can still reach the part or marked location on the conveyor, and move to the farthest down-stream end of
the robot workspace which meets the same constraints.
You should be very careful to position the robot TCP at the marked position on the part or conveyor, and
should be equally precise when repositioning the robot at the second conveyor location. This will provide
the highest possible resolution and accuracy for the encoder scale factor computation.
NOTE
For rail tracking systems that use a non-integrated external axis (rail), only the
rail position should be changed during this procedure. Otherwise, the result will
be inaccurate.
WARNING
Move the robot or the robot so as not to interfere with each other, when the
conveyor or the robot is moved. Otherwise, you could injure personnel or
damage equipment.
• You have selected Scale Factor then F2, TEACH and are currently at the Scale Factor screen.
See the following screen (for line/rail tracking) for an example.
TEACH COMPUTE
Steps
1. Move cursor to Start Point. Jog the robot TCP to a marked location on the part. Press SHIFT and
TEACH simultaneously. The status of the Start Point will change from UNIINT to RECORDED.
The TCP location and Encoder Count will be updated.
2. Move the TCP out of way so that conveyor can be moved without interference.
3. Move the conveyor FORWARD to position that part at the DOWN-STREAM end of the robot
workspace.
- 43 -
3.LINE TRACKING SETUP B-83474EN/02
4. Move cursor to End point. Jog the robot TCP to a marked location on the part. Press SHIFT and
TEACH simultaneously. The status of the End Point will change from UNIINT to RECORDED.
The TCP location and Encoder Count will be updated.
5. Press SHIFT and COMPUTE simultaneously. The Encoder Scale will be calculated and updated.
6. Move the TCP out of way so that conveyor can be moved without interference. You have finished
teaching the scale factor. You can now go back to Tracking Setup at Procedure 3-4, Step 19.
- 44 -
B-83474EN/02 3.LINE TRACKING SETUP
NOTE
For more detailed information on planning, writing, or modifying a program, refer
to Chapter 4.
You can use this program to check basic line tracking functions. Three positions must be defined:
1. A safe home position for the robot.
2. A safe approach point for the robot to use when tracking the part
3. A point on the part for the robot to track.
- 45 -
3.LINE TRACKING SETUP B-83474EN/02
CAUTION
Do not use a PAUSE instruction in your TRACK program or in a subprogram that
is called by the TRACK program. Doing so could result in unexpected motion
when the TRACK program resumes.
- 46 -
B-83474EN/02 3.LINE TRACKING SETUP
SETUP Encoders
1/8
Encoder Number : 1
1 Encoder Axis : 0
2 Encoder Type : INCREMENTAL
3 Encoder Enable : OFF
Current Count (cnts) : 0
4 Multiplier (ITP/update) : 1
5 Average (updates) : 1
6 Stop Threshold (cnt/updt) : 0
7 Simulate : Enable : OFF
8 Rate (cnt/updt) : 0
- 47 -
4.PLANNING AND CREATING A PROGRAM B-83474EN/02
Planning a Program
Before you write a program, you should plan the program. Planning involves considering the best way
possible to perform a specific task before programming the robot to complete that task. Planning before
creating a program will help you choose the appropriate instructions to use when writing the program.
Writing a Program
You write a program using a series of menus on the teach pendant that allow you to select and add each
instruction to your program. If the program sequence requires you to define the current location of the
robot, you jog, or move the robot to the desired location and execute the appropriate instruction.
Modifying a Program
After you create a program, you can modify the program. You can use a series of teach pendant screens to
change or remove an instruction, add a new instruction, move instructions from one location in the
program to another, or find specific sections of the program.
If the instruction requires defining the current location of the robot, you jog, or move the robot to the
desired location and add the appropriate instruction.
- 48 -
B-83474EN/02 4.PLANNING AND CREATING A PROGRAM
NOTE
Be sure to set all detail program header information before you begin
programming.
Steps
1. To begin programming, you should create a main non-tracking program (also referred to as a "job").
The line track program header data should have the line track schedule number set to 0 for all
non-tracking programs. Refer to Section 4.3 for more information on creating and modifying a
program.
This job/program will complete the following steps:
a. Turn "ON" the tracking encoder.
b. Call or run a (non-tracking) program to move the robot to a home or rest position.
c. Monitor the part detect switch for the approach of a part.
d. Record the conveyor count at the time of the part detects.
NOTE
Step 1.d must be done immediately after detection of the change in state of the
part detect switch to ensure proper synchronization between the robot and the
moving part.
NOTE
Be sure that all of the lines tracking instructions used within this program specify
the desired line track schedule number that you set up in the program header,
wherever appropriate. This is the number that will be used in the detail program
header data for all corresponding tracking motion programs. This is critical to all
tracking program motions.
2. Move the robot to a rest position to create the program for use in Step 1. This also moves the robot
out of the way to prepare for the next step of creating one or more tracking programs to carry out the
processing task.
3. Display the Encoders SETUP menu to make sure that the tracking encoder has been enabled (turned
"ON"). The encoder must be enabled in order for the system to properly perform the robot-conveyor
synchronization, prior to recording path positions.
This step should be repeated each time before creating a tracking program. If the encoder is "OFF" at
the time of a tracking program creation, you will be instructed to exit the edit session to enable the
encoder.
- 49 -
4.PLANNING AND CREATING A PROGRAM B-83474EN/02
4. You should now create a sub tracking program (also referred to as a "process"), to perform tracking
motions.
The line track program header data (for the sub program) should have the line track schedule number
set to the number of the schedule whose parameters were set up prior to programming, and whose
number was specified within the main program.
5. Upon entering the program edit session for any tracking program, you will be prompted to
synchronize the conveyor with the robot. This generally consists of moving the conveyor so that a
part passes the part detect switch and then enters the robot workspace.
NOTE
For more information on synchronizing the robot and conveyor, refer to
Subsection 4.2.2.
The line tracking system will take care of monitoring the part detect switch and recording and
storing the encoder count/trigger value (provided you have properly set up the Encoders and
Tracking SETUP menu parameters) to be used during the path teaching session.
6. After the part is reachable by the robot, the conveyor can be stopped and path positions can be
taught. The conveyor can be moved in either direction to reposition the part anywhere within the
robot workspace during the programming session.
Each time a position is recorded (or touched-up) the tracking system automatically determines the
conveyor location and adjusts the recorded positions accordingly. You can also play back or
single-step through the program to test for desired robot motion.
NOTE
Boundary position checking is enforced during program execution or
single-stepping, as determined by the value of $LNSCH[1].$SEL_BOUND within
the line track schedule associated with the program. This might cause the robot
to pause motionless if a position is not within the selected boundary window.
However setting $LNSCH[1].$SEL_BOUND = -1 will disable the boundary
checking and facilitate program editing.
WARNING
Make sure you have set the value of SELECT BOUND properly before you run
production. Otherwise, you could injure personnel or damage equipment.
You have completed planning a typical tracking program. For information on creating or modifying
a program, refer to Section 4.3. For details about specific tracking instructions, refer to Section 4.5.
- 50 -
B-83474EN/02 4.PLANNING AND CREATING A PROGRAM
Example 4.2.2 (a) Main (Job) Program Example
/PROG MO250020
/MN
1: ! Turn on Encoder ;
2: LINE[1] ON ;
3: !
4: ! Move to rest pos (non-tracking)
5: LBL[1] ;
6: CALL MO250021 ;
7: !
8: !
9: ! Wait for a part detect trigger
10: LBL[2] ;
11: WAIT DI[32]=ON ;
12: !
13: ! Read the line count and rate
14: LINECOUNT[1] R[1] ;
15: LINERATE[1] R[2] ;
16: !
17: ! Make sure the conveyor moves fwd
18: IF R[2]<0, JMP LBL[2] ;
19: !
20: ! Store the trigger value
21: SETTRIG LNSCH[1] R[1] ;
22: !
23: ! Select a boundary set
24: SELBOUND LNSCH[1] BOUND[1] ;
25: !
26: ! Move to track the conveyor
27: CALL MO250022 ;
28: !
29: ! Loop back for a next part
30: JMP LBL[1]
/POS
/END
Example 4.2.2 (c) moves the robot to a number of locations while the robot also tracks the moving
conveyor.
- 51 -
4.PLANNING AND CREATING A PROGRAM B-83474EN/02
- 52 -
B-83474EN/02 4.PLANNING AND CREATING A PROGRAM
NOTE
Do not use only under line _ symbol and do not use at mark @ symbol and
asterisk * symbol in program names.
- 53 -
4.PLANNING AND CREATING A PROGRAM B-83474EN/02
Adding Instructions
You can also add other instructions not included in the default motion instruction to your program. To
add these instructions, select the kind of instruction you want to add to the program and use the
information on the screen to enter specific instruction information.
You add all instructions using the same general procedure. Motion instructions, however, require some
specific information. Refer to “MOTION INSTRUCTION” in R-30iB / R-30iB Mate CONTROLLER
OPERATOR’S MANUAL (Basic Operation) (B-83284EN) for information on adding motion and other
kinds of instructions.
1 Words
2 Upper Case
3 Lower Case
4 Options -- Insert --
Select
--- Create Teach Pendant Program ---
Program Name [PROC742 ]
-- End --
Select function
4. To display program header information, press F2, DETAIL. You will see a screen similar to the
following.
- 54 -
B-83474EN/02 4.PLANNING AND CREATING A PROGRAM
Program Detail
Creation date: ##-xxx-##
Modification Date: ##-xxx-##
Copy source: [ ]
Positions: 10 Size 17 Byte
1 Program Name [ PROC742]
2 Sub Type: [PROCESS ]
3 Comment: [ ]
4 Group mask: [1,*,*,*,* ]
5 Write protect: [ON ]
6 Ignore Pause: [OFF ]
To skip setting program header information and begin editing the program, press F1, END, and skip
to Defining Default Motion Instructions in this procedure.
NOTE
You must set all DETAIL information when you create a PaintTool program.
5. To set or rename the program, move the cursor to the program name and press ENTER.
a. Move the cursor to select a method of naming the program: Words, Upper Case, or Lower
Case.
b. Press the function keys whose labels correspond to the name you want to give to the program.
These labels vary depending on the naming method you chose in Step 5.a. To delete a character,
press BACK SPACE.
6. To select a sub type, move the cursor to the sub type and press F4, [CHOICE]. You will see a screen
similar to the following.
Sub Type
1 None
2 Job
3 Process
4 Macro
Program Detail
1 Program Name [ PROC742]
2 Sub Type: [PROCESS ]
3 Comment: [ ]
4 Group mask: [1,*,*,*,* ]
5 Write protect: [ON ]
- 55 -
4.PLANNING AND CREATING A PROGRAM B-83474EN/02
NOTE
If your system is not set up for multiple groups, you will only be able to select a
1, for the first group, or a *, for no group.
NOTE
After the group mask has been set, and motion instructions have been added to
the program, the group mask cannot be changed for that program.
NOTE
A line tracking schedule number of 0 indicates a non-tracking path.
NOTE
If this item is set FALSE, CNT term type of the end of line tracking sub program
behaves as if FINE term type when robot returns from line tracking sub program
to main program.
14. Selected Boundary indicates the current boundary in the line tracking schedule. The current
boundary value is automatically updated when you execute a program.
• If Selected Boundary is set to zero (which is the default), the boundary value will not be
updated when the program is executed.
• If Selected Boundary is greater than zero, the boundary value will be automatically updated.
When the program finishes, the current selected boundary value in the line tracking schedule
will be reset.
For example, if the current value of $LNSCH[1].$SEL_BOUND = 1, and a line tracking program is
executed with Selected Boundary = 6, $LNSCH[1].$SEL_BOUND will be set to 6. When the
program is finished, the current boundary will be set back to 1.
NOTE
If the system variable $LNCFG.$RSTR_BNDS = FALSE, the boundary will not
be restored when the program finishes.
15. To return to the detail screen or display more header information, press F3, NEXT, (or F2, PREV)
until F1, END is displayed.
16. Press F1, END. You must now synchronize the robot and conveyor before you begin adding motion
instructions. Refer to Subsection 4.3.2.
- 56 -
B-83474EN/02 4.PLANNING AND CREATING A PROGRAM
NOTE
If the instructions listed are the ones you want to use, do not modify them.
CAUTION
Do not use UFRAMES when recording positions in a line tracking program. If
you do, the point will remain uninitialized and an error will occur.
19. To record the position using one of the other three default motion positions
a. Jog the robot to the location in the workcell where you want to record the motion instruction.
b. Press F1, POINT.
c. Use the cursor to select new default positions.
d. Press ENTER. This records the position and selects the motion instruction as the default motion
instruction.
20. To add other instructions, press F2, [INST]. Select the kind of instruction you want and use the
appropriate selections on the screen to build the instruction.
Refer to the previous sections in this chapter for details about each instruction.
21. Turn the teach pendant ON/OFF switch to OFF and release the DEADMAN switch.
- 57 -
4.PLANNING AND CREATING A PROGRAM B-83474EN/02
NOTE
The synchronization process is automatically entered any time you enter a teach
pendant program for editing. You will see a screen similar to the following.
2. Move the conveyor, with the part on it, to the desired position.
3. When the conveyor is in the desired teach position, press ENTER. You will see a screen similar to
the following.
EDIT
[END]
4. You can now begin adding motion instructions to the program. Refer to Subsection 4.3.3.
- 58 -
B-83474EN/02 4.PLANNING AND CREATING A PROGRAM
Selecting a Program
Selecting a program is choosing the program name from a list of existing programs in controller memory.
Refer to “Selecting a Program” in R-30iB / R-30iB Mate CONTROLLER OPERATOR’S MANUAL
(Basic Operation) (B-83284EN) for more information on loading programs.
Inserting Instructions
Inserting instructions places a specified number of new instructions between existing instructions. When
you insert an instruction, the instructions that follow the new instruction are automatically renumbered.
Deleting Instructions
Deleting instructions removes them from the program permanently. When you remove an instruction the
remaining instructions are automatically renumbered.
Renumbering Positions
Renumbering allows you to renumber positions in the program. When you add positions to a program, the
first available position number is assigned to the position, regardless of its place in the program. When
you delete motion instructions, all remaining positions keep their current numbers. Renumbering
reassigns all position numbers in the program so that they are in sequential order.
Use Procedure 4-4 to modify a program.
• The program has been created and all detail information has been set correctly. (Procedure 4-2)
Steps
1. Press SELECT.
2. Display the appropriate list of programs:
a. Press F1, [TYPE].
b. Select the list you want:
• All display all programs.
• Jobs display all job programs.
• Processes display all process programs.
• TP Programs display all teach pendant programs.
• KAREL Progs display all KAREL programs.
• Macro displays all macro programs.
3. Move the cursor to the name of the program you want to modify.
4. Press ENTER.
5. Continuously press the DEADMAN switch and turn the teach pendant ON/OFF switch to ON.
6. You will be prompted to synchronize the conveyor. Refer to Subsection 4.3.5 for information on
how to re-synchronize the conveyor and robot.
7. To touch up and modify motion instructions
a. Move the cursor to the line number of the motion instruction you want to modify.
b. To change only the position component of the motion instruction, jog the robot to the new
position, press and hold in the SHIFT key and press F5, TOUCHUP.
WARNING
Changing the motion type of a positional instruction from linear to joint can cause
the speed value to change from mm/sec to a default value as high as 100%. Be
sure to check the speed value before you execute the instruction; otherwise, you
could injure personnel or damage equipment.
c. To change other motion instruction components, move the cursor to the component using the
arrow keys, and press the appropriate function keys to modify the component:
• If function key labels are available, press the appropriate one.
• If no function key labels are available, press F4, [CHOICE], and select a value.
• To change the position value, move the cursor to the position number and press F5,
POSITION. The position screen will be displayed showing the Cartesian coordinates or
joint angles of the selected position. Move the cursor to the component you want to
change and enter the new value using the number keys. To make other changes, use the
function keys described in the list below.
• To change the motion group number, press F1, GROUP. This applies only to systems that
have been set up for multiple groups.
• To display components for extended axes, press F2, PAGE. This only applies to systems
that include extended axes.
• To change the configuration between flip (F) and no-flip or normal (N), press F3,
CONFIG, and then use the up and down arrow keys to change F to N and N to F.
• To change the format of the position from Cartesian coordinates to joint angles or from
joint angles to Cartesian coordinates, press F5, [REPRE] and select the coordinate system.
The position is converted automatically.
• When you are finished, press F4, DONE.
d. Repeat Step 7.a through Step 7.c for each motion instruction you want to modify.
8. To modify other instructions
a. Move the cursor to the line number of the instruction you want to modify.
b. Move the cursor to the component you want to modify and press the appropriate key:
• If function key labels are available, press the appropriate one.
• If no function key labels are available, press F4, [CHOICE], and select a value.
c. Repeat Step 8.a and Step 8.b for each instruction you want to modify.
- 60 -
B-83474EN/02 4.PLANNING AND CREATING A PROGRAM
9. To insert instructions
a. Decide where you want to insert the instruction. Move the cursor to the line following that
point. The cursor must be on the line number. For example, if you want to insert between lines
5 and 6 place the cursor on line 6.
b. Press NEXT, >, until F5, [EDCMD] is displayed. The function key labels for F1 through F4
might vary depending on your application.
c. Press F5, [EDCMD].
d. Select 1, Insert.
e. Type the number of lines to insert and press ENTER. A blank line will be inserted into the
program for each line you want inserted. All lines in the program will be renumbered
automatically.
f. Move the cursor to the line number of any inserted line and add any instruction.
10. To delete instructions
a. Move the cursor to the line number of the instruction you want to delete. If you want to delete
several instructions in consecutive order, move the cursor to the first line to be deleted.
CAUTION
Deleting an instruction permanently removes the instruction from the program.
Be sure you want to remove an instruction before you continue; otherwise, you
could lose valuable information.
b. Press NEXT, >, until F5, [EDCMD] is displayed. The function key labels for F1 through F4
might vary depending on your application.
c. Press F5, [EDCMD].
d. Select 2, Delete.
e. To delete a range of lines, move the cursor to select the lines to be deleted. The line number of
each line to be deleted will be highlighted as you move the cursor.
f. Delete the line or lines:
• If you do not want to delete the selected line(s), press F5, NO.
• To delete the selected line(s) press F4, YES.
NOTE
You can copy instructions from one program and paste them within that program
or into another program.
- 61 -
4.PLANNING AND CREATING A PROGRAM B-83474EN/02
• POSITION (F4) - adds the lines exactly as they were and renumbers the copied positions
with the next available position numbers. All positional data is transferred.
• CANCEL (F5) - cancels the paste, but the copied lines are retained so you can paste them
elsewhere.
• R-LOGIC (NEXT+F2) - adds the lines in reverse order, does not record the positions, and
leaves the position numbers blank.
• R-POS-ID (NEXT+F3) - adds the lines in reverse order and retains their original position
numbers.
• R-POSITION (NEXT+F4) - adds the lines in reverse order and renumbers the copied
positions with the next available position numbers.
k. Repeat Step 11.a through Step 11.j to paste the same set of instructions as many times as you
want.
l. When you are finished copying and pasting instructions, press PREV.
- 63 -
4.PLANNING AND CREATING A PROGRAM B-83474EN/02
8. You will see the second confirmation. Press ENTER. "<<BACKGROUND>" will be displayed at
the beginning of the program.
9. Modify the program. Refer to Procedure 4-4.
10. When you are finished writing in the background, end the background editing session:
a. Press NEXT, >.
b. Press F5, [EDCMD].
c. Select End_edit. "<<BACKGROUND>" will no longer be displayed at the beginning of the
program.
NOTE
The re-synchronization procedure is automatically entered any time you enter a
teach pendant program for editing and your part trigger value is invalid. You will
see a screen similar to the following.
[END]
| |
| The current part detect |
| trigger value MAY NOT
|
be valid.
| |
Resynchronize the
| |
tracking system?
| |
| YES NO |
| |
- 64 -
B-83474EN/02 4.PLANNING AND CREATING A PROGRAM
[END]
| |
| Move a new part past the |
| part detect switch and |
| into the robot workspace. |
| |
| |
| OK |
| |
2. Follow the instructions on the above screen, by moving the conveyor with the part on it
3. Select OK. You will see a screen similar to the following.
[END]
| |
| Stop the part when it is |
| at a convenient location |
| in the robot workspace. |
| |
Press <ENTER> when done.
| |
| |
| |
4. Follow the instructions on the above screen, by stopping the conveyor when the part is at a
convenient location.
5. Press ENTER. You will see a screen similar to the following.
EDIT
[END]
[INST] STAT TOUCHUP [EDCMD]
NOTE
If re-synchronization fails for any reason, you will receive an error message. You
will then be prompted to press ENTER. The program editing session will abort
and you will be returned to the Select screen. This will prevent the recording of
invalid positions. Any of the errors listed in this procedure will cause this.
[END]
| |
| Tracking simulation is |
| currently enabled.
|
| |
Press <ENTER> to
| |
simulate a new part
| |
detect trigger value.
| |
| OK |
- 65 -
4.PLANNING AND CREATING A PROGRAM B-83474EN/02
1. Follow the instructions on the screen above by pressing ENTER to simulate a new part detect trigger
value, since the actual conveyor is not being used.
WARNING
Program positions should never be taught when using a simulated conveyor.
Otherwise, you could injure personnel or damage equipment.
The above can occur during programming, if you had backed up the conveyor to perform the
synchronization.
• If the encoder associated with the specified line tracking schedule is not enabled you will see a
screen similar to the following.
[END]
| |
| WARNING: The selected |
| encoder is currently
|
turned OFF!
| |
| |
Enable the encoder then
| |
return and re-sync!
| |
| OK |
The above is important because the encoder count values are used during position recording and
playback.
• If one or more of the parameters in the specified line tracking schedule are not set properly (for
example, Encoder Number, Scale Factor, Digital Input Number), you will see a screen similar to the
following.
- 66 -
B-83474EN/02 4.PLANNING AND CREATING A PROGRAM
[END]
| |
| WARNING: Selected tracking |
| schedule has not been
|
properly initialized.
| |
| |
Initialize the schedule
| |
then return and re-sync!
| |
| OK |
[END]
| |
| PART DETECT TIMEOUT!!! |
| A part detect was not
|
observed within the time-
| |
out period (120 seconds).
| |
| Exit the program and
|
| re-enter it to re-sync! |
| OK |
The above error can occur due to a stopped or slow-moving conveyor, or because the digital input is not
functioning properly. In such cases, this time-out prevents the system from waiting indefinitely for the
part detect trigger to occur.
- 67 -
4.PLANNING AND CREATING A PROGRAM B-83474EN/02
7. If you want to modify the program name or comment, press F2, NO. Select 4, Options to modify the
program name or comment Press ENTER when you are finished modifying the program name or
comment.
• OVRWRT - Replaces existing characters with ones you enter.
• INSERT - Add new characters to existing characters, at the current cursor position.
• CLEAR - Removes the entire program name or comment from the field.
NOTE
If, at any time, you want to return to the first SELECT menu, press PREV until
this menu is displayed.
8. Add motion instructions to the program to move the robot to the desired position. Keep motion
speed slow to ensure the safety of personnel and equipment any time the position is reached.
- 68 -
B-83474EN/02 4.PLANNING AND CREATING A PROGRAM
DEFENC
The DEFENC instruction defines the current tracking encoder number. It copies the contents of the
specified $LNSNRSCH structure, into the specified $ENC_STAT structure, to configure the encoder
parameters.
When the GONE_TIME instruction is executed, register x returns the number of seconds before which
the position in position register z will be exiting out of the boundary specified in line tracking schedule y
with the trigger value stored in register u. When this instruction is called, the conveyor speed at the time
will be used for the calculation. If the conveyor speeds up afterward, GONE_TIME might not be
accurately estimated. When the conveyor is stopped, GONE_TIME will return a large value instead of an
infinite value.
This instruction can be used to monitor whether or not the part will be out of bounds when it is to be
picked up. For example,
1 GONE_TIME[10] LNSCH[1] PR[1] TRIG[20]
2 IF R[10]<R[12] JUMP LBL[2]
3 CALL PICK_PART
4 LBL[2]:
Register 12 stores the average time for the “PICK_PART” program. The trigger value for the part is
stored in register 20. This can also be used to determine whether or not the main program has time to
pre-rotate the robot tool while waiting for the part to be in the window (if this is a VISI-Track
application). That way no time needs to be used to pre-rotate the tool.
- 69 -
4.PLANNING AND CREATING A PROGRAM B-83474EN/02
LINE
The LINE enable instruction enables the encoder for tracking.
LINECOUNT
The LINECOUNT instruction reports the current tracking encoder count. This instruction must be used
immediately after detecting a part trigger, to record the position of the conveyor.
LINERATE
The LINERATE instruction reports the tracking encoder rate, in units of encoder counts per encoder
update.
- 70 -
B-83474EN/02 4.PLANNING AND CREATING A PROGRAM
LINESTOP
The LINESTOP instruction reports the tracking encoder stopped status, based on the current line rate and
encoder stop threshold.
SETTRIG
The SETTRIG instruction sets the tracking schedule trigger value. Refer to the “Line Tracking Setup”
chapter in the FANUC Robotics Line Tracking Setup and Operations Manual for more information on
schedules. The LINECOUNT value is typically stored in the register through use of the LINECOUNT
instruction defined above.
SETBOUND
The SETBOUND instruction sets the tracking schedule boundary values, based on the WORLD frame
positions stored in the two position registers. Refer to the “Line Tracking Setup” chapter in the FANUC
Robotics Line Tracking Setup and Operations Manual for more information on schedules.
SELBOUND
The SELBOUND instruction selects the tracking schedule boundary pair. Refer to the “Line Tracking
Setup” chapter in the FANUC Robotics Line Tracking Setup and Operations Manual for more
information on schedules.
- 71 -
4.PLANNING AND CREATING A PROGRAM B-83474EN/02
After the tracking schedules have been set up, they can be used in a job or process program. Each process
program uses a specific tracking schedule for the entire program. The schedule number is selected when
the program is created or in the program DETAIL screen. The SELBOUND instruction is then used in the
job program to determine the specific boundary used. See the following screen for an example.
In this example, PROC1002 must have the line tracking schedule number set to 2 and the other programs
have a schedule number set to 1.
STOP_TRACKING
The STOP_TRACKING instruction is used inside a tracking program to end tracking motion temporarily.
The robot will remain stopped until the program execution reaches the next tracking motion and the
destination of that motion enters the boundary.
NOTE
The STOP_TRACKING feature is not available for use with Circular tracking.
When the STOP_TRACKING instruction is specified in a Circular tracking
program, the instruction will do nothing as if the instruction is not there.
For example:
1:L P[1] 1000mm/sec CNT100
2:WAIT DI[10] = ON
3:L P[2] 1000mm/sec CNT100
In the above program, once the robot reaches P[1] it will continue to follow P[1] as it moves with the
conveyor until the WAIT condition is satisfied and P[2] enters the boundary. After P[2] enters the
boundary, the robot will begin moving to P[2]. If this program is modified as follows:
In this version of the program, once the robot reaches P[1] it will stop and remained stopped. The robot
will not begin moving again until after the WAIT condition is satisfied and P[2] enters the boundary.
Only then will the robot begin moving towards P[2].
- 72 -
B-83474EN/02 4.PLANNING AND CREATING A PROGRAM
ACCUTRIG LNSCH
The ACCUTRIG LNSCH instruction activates an interrupt routine to set a system tick when I/O is
triggered. The LINECOUNT instruction uses this system tick to retrieve the encoder count at the system
tick.
The ACCUTRIG LNSCH instruction should be used in the program before the program waits for the
digital input. For example,
1:ACCUTRIG LNSCH[1]
2:WAIT DI[1]=OFF
3:WAIT DI[1]=ON
4:LINECOUNT[1] R[1]
5:SETTRIG LNSCH[1] R[1]
In order to use the ACCUTRIG instruction, the following system variable must be set:
$LNCFG.$SLC_PT_TRIG=TRUE
You must turn the controller off then on again for this variable to take effect. If ACCUTRIG is not being
used, then this variable should be set to FALSE.
VISUFRAME
The VISUFRAME instruction sets the tracking user frame according to the value in the position register.
The position value in the position register is the tracking user frame with respect to the robot world frame.
5 ADVANCED TECHNIQUES
5.1 MULTIPLE BOUNDARY POSITIONS EXAMPLE
This example examines the task of painting a car body. The task will be broken down into three zones or
windows within the robot workspace. In this context a boundary set or pair describes the edges of each
workspace zone. Refer to Fig. 5.1.
In this example, the issue of continuous tracking must also be taken into consideration. The tracking
motion programs CAR_FRNT and CAR_TOP should have their associated program header data values
set for CONTINUOUS TRACKING = TRUE, while CAR_BACK should have CONTINUOUS
TRACKING = FALSE.
This allows the robot to continue to track the conveyor between the various tracking motion programs,
but will stop the robot from tracking the conveyor upon completion of the last tracking program, before it
returns to the rest position.
- 75 -
5.ADVANCED TECHNIQUES B-83474EN/02
20 Part enters the robot work window and the robot begins processing.
35 The robot completes processing and returns to monitor the part detect switch.
Since the parts are spaced at 40 second intervals, a single task can be used to monitor the part detect
switch, and then issue the robot motion associated with the processing. It will still have 5 seconds to spare
while it waits for the next part to arrive. As each part passes the part detect switch, the task records the
conveyor position using the LINECOUNT instruction and copies this directly into the appropriate line
track schedule variable using the SETTRIG instruction.
- 76 -
B-83474EN/02 5.ADVANCED TECHNIQUES
NOTE
The group mask of Monitor Program is set=0, since it will never control robot
motion, but must run concurrently with robot motion tasks.
- 77 -
5.ADVANCED TECHNIQUES B-83474EN/02
- 78 -
B-83474EN/02 5.ADVANCED TECHNIQUES
Monitor Program
This program continuously monitors the trigger signals of both conveyors. This program allows up to 10
parts to be queued, by storing each part detect signal received in a register. When a part detect signal from
a conveyor is received, Monitor Program reads the pulse counts of the signal and stores it in one of ten
registers (one for each conveyor) in order. For example, if last part was stored in R[10], next part will be
stored in R[11] for processing. Process Program (refer to Example 5.3.2 (c)) will use these pulse count
values for processing the respective parts.
NOTE
The following conditions apply when you run this program:
• This is a concurrent task run from the main program.
• This program attribute should be set to NOPAUSE.
• The group mask of this program should be set to `*'.
Process Program
The program in Example 5.3.2 (c) looks for a part in either conveyor 1 or conveyor 2. Parts are processed
on first come, first served basis. This program does not alternate processing between conveyors. However,
it does alternate between conveyors to look for parts.
- 79 -
5.ADVANCED TECHNIQUES B-83474EN/02
NOTE
Tracking must be enabled for this program.
Example 5.3.2 (d) CONV_1 and CONV_2 Verify Robot Tracking Programs
1: L P[1:NEAR PART] CNT75;
2: L P[2:TARGET POS] FINE;
3: WAIT 2.00(sec); --delay is to test tracking
4: L P[1:NEAR PART] CNT100;
/POS
/END
- 80 -
B-83474EN/02 5.ADVANCED TECHNIQUES
Example 5.3.2 (e) CLEAR_1 and CLEAR_2 Switch Part Processing Programs
1: L P[1:SAFE POS] CNT75;
2: L P[2:CLEAR CONV] FINE;
/POS
/END
Line 17 (CALL_PROG CLEAR_1) and line 23 (CALL_PROG CLEAR_2) of example 5.3.2(b) Part
Processing Program can be exchanged for STOP_TRACKING.
STOP_TRACKING;
Main Program
The program in Example 5.3.2 (f) runs Monitor Program (Example 5.3.2 (a), (b)) concurrently with
Process Program (Example 5.3.2 (c)).
Example 5.3.2 (f) Main Program Runs Monitor and Process Programs
1: RUN_PROG MONITOR1
2: RUN_PROG MONITOR2
3: CALL_PROG PART
/POS
/END
NOTE
Record P [1] past the part detect at a slow speed.
- 81 -
5.ADVANCED TECHNIQUES B-83474EN/02
If the robot stops in this area If the robot stops in this area
when the conveyor stops then when the conveyor stops then
increase $.IO_DELAY decrease $.IO_DELAY
For example, if the robot is off by 3 mm and the conveyor speed is 500 mm/sec then,
≅ 6(ms)
Therefore, adjust $IO_DELAY by 6 ms.
5. Repeat Steps 2 through 4 until the robot lines up with P [1].
NOTE
Although the variable $IO_DELAY is part of $LNCFG_GRP[], it is only group
based when the ACCUTRIG instruction is used. When the ACCUTRIG
instruction is used, the $IO_DELAY value will be taken from $LNCFG_GRP[g],
where g is the group number from the tracking schedule. If ACCUTRIG is not
used, then $LNCFG_GRP[1].$IO_DELAY is the value that will be used.
Also, when the ACCUTRIG instruction is used, the amount of adjustment in
$LNCFG_GRP[g].$IO_DELAY is limited to 1 ITP in the negative direction, and 5
ITP in the positive direction, where ITP is the controller ITP time, and it is stored
in the read-only system variable $SCR.$ITP_TIME. Larger adjustments will not
be performed. If the ACCUTRIG instruction is not used, then there is no
limitation on $LNCFG_GRP[1].$IO_DELAY.
NOTE
Adjust static tune variable by $IO_DELAY in case of line tracking, then adjust
static tune variable by reference points in case of visual tracking. Refer to 4.6.1
in iRVision visual tracking manual B-83304EN-4 for details.
- 82 -
B-83474EN/02 5.ADVANCED TECHNIQUES
2. Verify that the robot is lined up at the correct position while the conveyor is moving and the
program is running. If the robot is not lined up perfectly with P [1] then modify
$LNCFG_GRP.$SRVO_DELAY and $LNCFG_GRP.$SOFT_DELAY as shown in Fig. 5.4.2 .
If the robot stops in this area If the robot stops in this area
when the conveyor stops then when the conveyor stops then
increase $.SRVO_DELAY decrease $.SRVO_DELAY
and $.SOFT_DELAY. and $.SOFT_DELAY.
3. Observe the movement to the position while the WAIT is executed. If it is not accurate enough,
repeat Steps 1 and 2.
5.5.1 Overview
A Tracking User frame is used to compensate for part location or orientation changes which is detected
by one-dimensional or two-dimensional position sensor.
In general,
- Use one-dimensional position sensor to detect and compensate the translational offset (ΔY) in the
direction perpendicular to the conveyor.
- Use two-dimensional position sensor (camera) to detect and compensate the translational offset (ΔX and
ΔY) and rotational offset (ΔR).
NOTE
If you have FANUC vision sensor, don’t use Tracking User Frame feature
described in this section, but use iRVision Visual Tracking feature.
If you use one-dimensional position sensor to compensate an offset in one
direction, you can use Offset instruction or Tool Offset instruction as a substitute
for Tracking User Frame.
If Tracking User Frame is used, position data is taught on User/Part Frame which is on the tracked object
(part). You only need to shift User/Part Frame according to the offset value of each part so that the robot
can approach to the same position of the part.
Use can choose one from the following two types of User/Part Frame definition.
• TRKUFRAME
User/Part Frame is defined with respect to Nominal Frame.
Choose this one if you use one or two dimensional position sensor to detect position offset of
the part (relative to the “standard part”).
In a TP program, use TRKUFRAME instruction.
• VISUFRAME
User/Part Frame is defined with respect to World Frame.
Choose this one if you use two dimensional position sensor to detect the position of the part
with respect to World Frame.
- 83 -
5.ADVANCED TECHNIQUES B-83474EN/02
To use the Tracking User Frame functions, in addition to setting up Line Tracking, you must also set up
two other items in Tracking Schedule Setup.
• Set Use Tracking Uframe to YES (default is NO).
• Set Vision Uframe Dist to a proper value (default is zero) in order to use VISUFRAME.
For more information about Tracking Setup, refer to the Tracking Setup section of this manual.
NOTE
Only one of the two Tracking User frame types, TRKUFRAME or VISUFRAME,
can be used in a single tracking schedule.
World Frame
Fig. 5.5.2 User/Part frame and frame relationship in typical line tracking system
- 84 -
B-83474EN/02 5.ADVANCED TECHNIQUES
Table 5.5.2 Terminology of Tracking User Frame
Terminology Description
Tracking Frame A nominal tracking frame defined in Tracking Schedule Setup. It is stationary during the line
tracking motion. Refer to the Line Tracking Setup and Operations Manual for more
information.
Nominal Frame A runtime nominal tracking frame. It is parallel to the tracking frame and moves with the
conveyor while tracking. (If Tracking User Frame is disabled, the position data in tracking
program is recorded with respect to this frame.)
User/Part Frame A frame on the tracked object (part) defined by the user. If compensate rotational offset, you
must set the origin of this frame to the sensor target position on the part.
PRTRK A user/part frame with respect to the Nominal frame in position form. This value varies for
each part. A position register is used to store this data.
PRVIS A user/part frame with respect to the robot world frame in position form. This value varies for
each part. A position register is used to store this data. This frame is used only for
VISUFRAME.
L1 Part DetectDist.(mm) in the Line Tracking Schedule Setup. If you set this parameter to the
distance from the robot to the part detect switch, L1 is as depicted in Fig. 5.5.2.
L2 Travel distance in which the part is past the part detect switch. It can be calculated using the
following formula:
- 85 -
5.ADVANCED TECHNIQUES B-83474EN/02
condition that the orientation of the tracking frame is the same as rotating the world frame by 90
degrees around the z axis. If this condition is not met, modify this calculation properly.)
The resulting frame is the Nominal frame at the current part location (note that conveyor is stopped
now).
6. Choose a User frame on the object (part). If you will compensate only the translational offset (ΔY),
you can choose the origin of User frame at anywhere you like. On the other hand, if you will
compensate also the rotational offset (ΔR), you must choose the origin of User frame at the same
position of the sensor target on the part.
Move robot tool center point (TCP) to the origin of the User frame you have chosen. Then memorize
(write down) the position of TCP in robot world coordinates.
7. Subtract the nominal frame's corresponding component from the User frame's to get PRTRK
(User/part frame with respect to the Nominal frame). PRTRK can be calculated by the following
expression. User frame= u and nominal frame= n
PRTRK(X,Y,Z,W,P,R) = {Yu - Yn, -(Xu - Xn), Zu - Zn, 0, 0, 0 }
NOTE:
• The calculation of X and Y is based on the condition that the conveyor direction is parallel to
World +Y. If this condition is not met, modify this calculation properly.
• That W and P are both zero is based on the condition that the conveyor surface is vertical to
World +Z. In this case, R can be chosen arbitrarily so zero is chosen in the expression above.
NOTE
If the conveyor surface is not vertical to World +Z, we cannot calculate PRTRK by
simple subtraction as described above. In this case, calculate PRTRK by matrix
computation using KAREL etc.
8. Now PRTRK of the standard part is calculated. Type this value in a position register.
In this example, PR[1], [2] and [3] are used in the following purpose;
PR[1]: PRTRK. This is updated per part during program execution.
PR[2]: PRTRK for the standard part. This is NOT updated during program execution.
PR[3]: Offset from the standard part (sensor output). This is updated per part during program execution.
OFFSET1 is a program in which the sensor detects the offset from the standard part then put the value
into X, Y and R of PR[3]. This program is created by user based on the sensor specification.
- 86 -
B-83474EN/02 5.ADVANCED TECHNIQUES
Example 5.5.5 (a) Sample TRKUFRAME Program
1: Line[1] ON; --turn on encoder2:LBL[1];
2: LABEL[1];
3: CALL HOME1; --home the robot
4: WAIT DI[27]=ON; --wait for part detect switch is triggered
5: LINECOUNT[1] R[1]; --put the encoder count into the register
6: SETTRIG LNSCH[1] R[1]; --set the trigger count
7: SELBOUND LNSCH[1] BOUND[1]; --select a boundary set
8:
9: !set the tracking uframe
10: CALL OFFSET1; --sensor to get offset and put it into PR[3]
11: PR[1]=PR[2]+PR[3]; --calculate PRTRK and set it into PR[1]
12: TRKUFRAME LNSCH[1] PR[1]; --set the tracking uframe
13:
14: CALL LNTK1; --call a tracking program
15: JMP LBL[1] --restart the process
VOFFSET1 is a program in which the sensor detects PRVIS (position of the part) then pass it into PR[1].
This program is created by user based on the sensor specification.
NOTE
For one tracking schedule, you can use only one of the two instructions,
TRKUFRAME and VISUFRAME.
In Example 5.5.5 (a) and Example 5.5.5 (b), HOME1 is not a tracking program, and LNTK1 is a tracking
program like below;
Example 5.5.5 (c) Sample Sub Program (LNTK1)
1: L P[1] 1000mm/sec FINE; --move to above of the part
2: L P[2] 1000mm/sec FINE; --move to P2
3: WAIT 1.00(sec); --wait for one second
4: L P[3] 1000mm/sec FINE; --move to P3
5: L P[4] 1000mm/sec FINE; --move to P4
6: L P[5] 1000mm/sec FINE; --move to P5
7: L P[2] 1000mm/sec FINE; --move to P2
8: L P[1] 1000mm/sec FINE; --move to above of the part
- 87 -
5.ADVANCED TECHNIQUES B-83474EN/02
Example path compensations are illustrated in the following figures. The translational compensation (ΔY)
is in Fig. 5.5.6 (a) and the rotational compensation (ΔR) is in Fig. 5.5.6 (b). The dashed line represents the
original path, and the solid line represents the path with compensation.
ΔY
- 88 -
B-83474EN/02 5.ADVANCED TECHNIQUES
ΔR
PRTRK
Nominal Frame
PRVIS
Fig. 5.5.7 User/Part frame and frame relationship in rail tracking system
- 89 -
5.ADVANCED TECHNIQUES B-83474EN/02
5.6.1 Overview
The HDI for Line Tracking feature (J831) ensures an accurate part detection process when the conveyor
operates at very fast speeds. This function uses HDI (High speed DI for application) in place of the
standard digital input normally used for part detection.
To use HDI for Line Tracking, you must
• Enable the High Speed Scanning system variable
• Modify your line tracking program
NOTE
In R-30iB Mate controller, HDI interface is not available with Main CPU board A
(A20B-8200-0790) or Main CPU board B (A20B-8200-0791). Main CPU board C
(A20B-8200-0792) is required to enable HDI for Line Tracking feature with R-30iB
Mate controller. See Table 5.6.2 (a) for detail.
Table 5.6.2 (a) Requirements for R-30iB Mate Main CPU board (HDI interface)
Available /
Main CPU board Board Specification Unavailable for HDI Comments
interface
Main CPU board A A20B-8200-0790 Unavailable • The Main CPU board in the left column is
included in the following order
specification.
A05B-2650-H001, A05B-2661-H001
(R-30iB Mate)
A05B-2655-H001, A05B-2662-H001
(R-30iB Mate (Open Air))
- 90 -
B-83474EN/02 5.ADVANCED TECHNIQUES
Available /
Main CPU board Board Specification Unavailable for HDI Comments
interface
Main CPU board B A20B-8200-0791 Unavailable • The Main CPU board in the left column is
included in the following order
specification.
A05B-2650-H002, A05B-2661-H002
(R-30iB Mate)
A05B-2655-H002, A05B-2662-H002
(R-30iB Mate (Open Air))
Main CPU board C A20B-8200-0792 Available • The Main CPU board in the left column is
included in the following order
specification.
A05B-2650-H003, A05B-2661-H003
(R-30iB Mate)
A05B-2655-H003, A05B-2662-H003
(R-30iB Mate (Open Air))
Steps
1. Press MENU key.
2. Press NEXT.
3. Select SYSTEM.
4. Press F1, [TYPE].
5. Select Variables.
6. Move the cursor to the following variables and set their values accordingly,
• $HSLTENBL = TRUE
• $LNCFG.$HSDI_ENABLE = TRUE
7. Turn off the controller, and then turn it on again to accept the new setting.
8. Use the Encoder Setup Menu to input used HDI port id to HDI port id.
9. Turn off the controller, and then turn it on again to accept the new setting.
SETUP Encoders
9/9
Encoder Number : 1
1 Encoder Axis : 1
2 Encoder Type : Serial INC
3 Encoder Enable : OFF
Current Count (cnts) : 0
4 Multiplier (ITP/update) : 1
5 Average (updates) : 1
6 Stop Threshold (cnt/updt) : 0
7 Simulate : Enable : OFF
8 Rate (cnt/updt) : 0
9 HDI port Id : 1
[ TYPE ] ENCODER
NOTE
When HDI for Line Tracking (J831) is ordered and tracking sub program is taught
by using normal DI input, set $LNCFG.$HSDI_ENABLE to FALSE. Otherwise, it is
possible that tracking program can be not edited.
- 91 -
5.ADVANCED TECHNIQUES B-83474EN/02
Example 5.6.3 (b) shows the same program but includes instructions for using the high speed scanning
feature. The part of the program that has changed is shown between the dashed lines.
Example 5.6.3 (b) Main Program (Job) with High Speed Scanning Instructions
1: J P[1] 50% FINE -- MOVE TO HOME
2: LINE[1] ON -- ENABLE THE ENCODER
3: ! ------------------------------
4: $HDI_FLAG[1] = 1 -- ENABLE THE HDI port 1
5: WAIT $ENC_STAT[1].$ENC_HSDI = 1 -- WAIT FOR PART DETECT
6: ! ------------------------------
7: LINECOUNT[1] R[1] -- GET TRIGGER VALUE
8: SETTRIG LNSCH[1] R[1] -- SET TRIGGER VALUE
9: SELBOUND LNSCH[1] BOUND[1] -- SELECT A BOUNDARY
10: CALL TRACK -- CALL TRACKING PROGRAM
11: J P[1] 50% FINE -- MOVE TO HOME
NOTE
When you are editing tracking programs, conveyor resynchronization
automatically uses the HDI #1 hardware input for part detection. Therefore, you
do not need to modify $HDI_FLAG[port].
Limitations
The High Speed Scanning option has the following limitations:
• The ACCUTRIG instruction can not be used simultaneously with High Speed Scanning.
• The static accuracy tuning adjustment $LNCFG_GRP[1].$IO_DELAY is available with High Speed
Scanning (refer to Subsection 5.4.1 ); however, only the group 1 value is used, i.e.
$LNCFG_GRP[2].$IO_DELAY, $LNCFG_GRP[3].$IO_DELAY, and so forth, will be ignored.
There is no limitation on the amount of adjustment available through
$LNCFG_GRP[1].$IO_DELAY.
- 92 -
B-83474EN/02 5.ADVANCED TECHNIQUES
• You can adjust static tune variable by $ENC_IODELAY[encoder number] instead of
$LNCFG_GRP[g].$IO_DELAY. Before adjusting, make the following settings.
• Set $ENC_IOD_ENB[encoder number] to TRUE.
• Set $ENC_IODELAY[encoder number] to 0.
Adjust it referring to 5.4.1 Static Tune Variable.
• R-30iB supports up to 5 High Speed Digital Input (HDI) #1 to #5, located on the JRL8 connector of
the controller.
• R-30iB Mate supports up to 2 High Speed Digital Input (HDI) #1 to #2, located on the CRL3
connector of the controller.
- 93 -
5.ADVANCED TECHNIQUES B-83474EN/02
NOTE
Limit checking is worked in case of following tracking motion.
• Motion from reference point of tracking motion program to reference point of
tracking motion program
• Motion from reference point of normal motion program to reference point of
tracking motion program
5.9.1 Overview
A typical line tracking system uses conveyor/conveyors to transfer a work piece for robot/robots to
process. When there are multiple robots working on the same conveyor, each robot needs to know the
part’s location on the conveyor. The Pulse Multiplexer is used to supply the encoder information to each
robot on the same conveyor.
The Ethernet Encoder software option uses the Ethernet connection between robots instead of Pulse
Multiplexer to supply the encoder information to each robot on the same conveyor. The Ethernet Encoder
consists of both master and slave controllers where the master is the controller with the encoder(s)
connect to it. The master controller transmits the encoder information to other slave controller/controllers
over the Ethernet Network connection.
R-30iB Controller
R-30iB Controller
Ethernet
Encoder #1
R-30iB Controller
R-30iB Controller
When the Ethernet Encoder option is used, the master encoder needs not to be connected with the master
controller. However, it is recommended that the master encoder is connected directly with the master
controller for decreasing the communication traffic.
- 95 -
5.ADVANCED TECHNIQUES B-83474EN/02
5.9.3 Limitations
• Each controller can support up to four master encoders.
• The Ethernet Encoder in one RIPE network can support up to four controllers.
• A controller supports only one RIPE network.
• In case that the software version is 7DC2/06 or older version, 7DC1 series, or 7DD0 series, all
controllers on RIPE network need the Ethernet Encoder function. In case of 7DC2/07 or later, the
only controller that uses Ethernet Encoder needs this function.
• When you use RIPE, software versions of all robot controllers that participate in the communication
must be the same.
• The $SCR.$ITP_TIME for all the controllers should be set to the same value. Please set the
maximum value among all controllers on RIPE network.
• Encoders using servo conveyor line tracking function should not be used as the Ethernet Encoder.
• The communication causes the difference between the master encoder's pulse count and the slave
encoder's pulse count. The difference is converted into time is about plus or minus 2ms as compared
with using Pulse Multiplexer.
ローカルのネットワーク
Local network
(ポート2で接続)
(Connected to port 2)
Factory network
工場のネットワーク
(Connected to port 1)
(ポート1で接続)
When port 1 is used, connect the Ethernet cable to the CD38A connecter on the MAIN board. When port
2 is used, connect the Ethernet cable to the CD38B connecter on the MAIN board.
NOTE
If a robot controller is not connected to an external network, you can use
whichever port you prefer.
- 96 -
B-83474EN/02 5.ADVANCED TECHNIQUES
• According to “5.9.4.1 Connecting a Network Cable to the robot”, there are two ports in one
controller. Set the IP address and the subnet mask of the port used in “5.9.4.3 Setting IP Address”.
• When the IP address is set, each robot controller needs to be named differently.
• When the IP address is set, the IP address of the port used in the communication of robots needs to
be continuous number. For example, if there are four robot controllers and port 2 is used, the IP
address of port 2 of each robot controller is set as 172.16.0.1, 172.16.0.2, 172.16.0.3, and
172.16.0.4.
• If Ethernet Encoder is used, the IP address of the robot controller connected with the encoder is set
as first number. For the previous example, the IP address of port 2 of the robot controller connected
with the encoder is set as 172.16.0.1.
• A system with only two controllers: You have a choice to use switch or not. Without a switch, you
need to use a crossover Ethernet Cable instead of a regular Ethernet Cable. In this case, plug one end
of the Ethernet cable into the Ethernet port of one controller and the other end to the other controller.
With a switch, do as method below.
• A system m with more than two controllers: Each controller needs an Ethernet Cable. Connect one
end of the Ethernet Cable to the Ethernet Port of controller and the other end of the Ethernet Cable
to the Ethernet Port of the switch.
CAUTION
Only alphabet, number, and minus sign are used for robot name. Only alphabet
is used for first character. Minus sign is not used for last character. You should
not insert wasted space.
CAUTION
You should not insert wasted space or 0 to IP address. If there are wasted
spaces or 0 in IP address, the communication becomes wrong.
CAUTION
If you don’t cycle power of the robot controller, following setup is not performed
correctly. Cycle power of the robot controller necessarily.
- 97 -
5.ADVANCED TECHNIQUES B-83474EN/02
CAUTION
If you use both port 1 and port 2, they need to be set to the different network
address. For example, when subnet mask is 255.255.0.0 and IP address is
172.16.0.1, network address is 172.16 and host address is 0.1. If port 1 and port
2 are set to the IP address whose network address is same, the alarm
“HOST-179 IP Address mis-configuration” is posted when the controller is turned
on. Then, only port 1 becomes valid and port 2 becomes invalid.
At first, set the slave controller when robot ring is set. Set the master controller after all the slave
controllers are set. After you finish setting the master controller, the power of all the controllers is cycled
automatically, and the setup is finished. The following is the detail procedure.
5. Press F2, [SLAVE], and display the screen “ROS Ethernet Packet (Slave)” as the following. When
the screen of the slave controller is open and F2 button is [MASTER], this procedure is not
necessary.
6. Set “Master IP address” to the IP address of the master controller in the port used in the robot ring.
7. Set [Member Index]. Set the IP address of the port used in the robot ring in “5.9.4.3 Setting IP
Address” to the continuous number whose first number is the master controller. Input the order from
this IP address. As a function of this setting, [Slave IP addr] is set automatically and verify that the
displayed IP address and the IP address which is set this controller to are same.
8. Finish the above procedure, and press F3, [AUTO]. The following screen is displayed. You are asked
whether this controller is cycled after receiving data, then press F3, [YES].
- 99 -
5.ADVANCED TECHNIQUES B-83474EN/02
9. Perform the above procedure in all the slave controllers. All the slave controllers are allowed to wait
to receive data from the master controller.
6. Set “Master IP addr” to the IP address of the master controller in the port used in the robot ring. This
is the IP address of this controller.
- 100 -
B-83474EN/02 5.ADVANCED TECHNIQUES
7. Set “Number of Members” to the number of controllers which join the robot ring.
8. Set “Update Interval” as necessary. This is the interval to check whether the robot is online.
9. Finish the above procedure, and press F3, [AUTO]. The following screen is displayed.
10. The massage, “Put all SLAVES in AUTO mode.” is displayed. According to the previous Slave
Controller Setup, all the slave controllers are allowed to wait to receive data from the master
controller, and so press F4, [CONTINUE]. The following screen is displayed.
11. The robot names and IP addresses of all controllers join the robot ring are displayed on [Host Name].
You are asked to cycle the power of the controller in order to reflect the setting, and so press F4,
[CONTINUE]. Then, all the controllers are cycled, and the setup is finished.
CAUTION
Don’t change the robot name and the host name after you finish setting the robot
ring. The robot name and the host name need to be same. If you want to change
them, restart the setting of robot ring from the beginning.
- 101 -
5.ADVANCED TECHNIQUES B-83474EN/02
CAUTION
It is recommended that Encoder used as Ethernet Encoder is connected into
RIPE Master Controller for decreasing the communication traffic.
CAUTION
“Ethernet Master RIPE Id” is RIPE id of the controller connected with the master
encoder.
For example, you want to set the encoder 1 of RIPE 1 controller (with $PH_ROSIP.$MY_INDEX = 1) as
Master encoder, you set “Ethernet Master RIPE Id” to 1 and “Ethernet Master Encoder” to 1. The master
controller screen is displayed. Encoder Set up menu is displayed as below.
SETUP Encoders
10/10
Encoder Number : 1
1 Encoder Axis : 1
2 Encoder Type : Serial INC
3 Encoder Enable : ON
Current Count (cnts) : 0
4 Multiplier (ITP/update) : 1
5 Average (updates) : 1
6 Stop Threshold (cnt/updt) : 0
7 Simulate : Enable : OFF
8 Rate (cnt/updt) : 0
9 Ethernet Master RIPE Id : 1
10 Ethernet Master Encoder : 1
[ TYPE ] ENCODER
- 102 -
B-83474EN/02 5.ADVANCED TECHNIQUES
For example, when the master encoder was set as the Ethernet Master Encoder procedure example in the
same RIPE network, you get into Encoder setup menu and set 1 to “Ethernet Master RIPE Id” and 1 to
“Ethernet Master Encoder”.
SETUP Encoders
10/10
Encoder Number : 1
1 Encoder Axis : 0
2 Encoder Type : Serial INC
3 Encoder Enable : ON
Current Count (cnts) : 0
4 Multiplier (ITP/update) : 1
5 Average (updates) : 1
6 Stop Threshold (cnt/updt) : 0
7 Simulate : Enable : OFF
8 Rate (cnt/updt) : 0
9 Ethernet Master RIPE Id : 1
10 Ethernet Master Encoder : 1
[ TYPE ] ENCODER
1. Go to the encoder set up menu of the master encoder on the controller where the master encoder was
set.
2. Move the conveyor physically and verify “current count” change. When you want to verify it with
the conveyor stopped, use “Simulate”. Set “Simulate: Enable:” to ON and “Rate” to 10, and verify
“current count” change.
- 103 -
5.ADVANCED TECHNIQUES B-83474EN/02
SETUP Encoders
8/10
Encoder Number : 1
1 Encoder Axis : 1
2 Encoder Type : Serial INC
3 Encoder Enable : ON
Current Count (cnts) : 4560
4 Multiplier (ITP/update) : 1
5 Average (updates) : 1
6 Stop Threshold (cnt/updt) : 0
7 Simulate : Enable : ON
8 Rate (cnt/updt) : 10
9 Ethernet Master RIPE Id : 1
10 Ethernet Master Encoder : 1
[ TYPE ] ENCODER
3. Go to the encoder set up menu of the slave encoder. The value of “current count” of the slave
encoder should be continuously changing as a function of the value of “current count” of the master
encoder. If it is not changed, check the Ethernet Encoder Setup.
SETUP Encoders
1/10
Encoder Number : 1
1 Encoder Axis : 0
2 Encoder Type : Serial INC
3 Encoder Enable : ON
Current Count (cnts) : 4560
4 Multiplier (ITP/update) : 1
5 Average (updates) : 1
6 Stop Threshold (cnt/updt) : 0
7 Simulate : Enable : OFF
8 Rate (cnt/updt) : 0
9 Ethernet Master RIPE Id : 1
10 Ethernet Master Encoder : 1
[ TYPE ] ENCODER
4. Stop the conveyor, and verify that the change of “current count” is stopped. If Simulate is enable, set
“Simulate: Enable” to OFF, and verify that the change of “current count” is stopped.
SETUP Encoders
7/10
Encoder Number : 1
1 Encoder Axis : 1
2 Encoder Type : Serial INC
3 Encoder Enable : ON
Current Count (cnts) : 7560
4 Multiplier (ITP/update) : 1
5 Average (updates) : 1
6 Stop Threshold (cnt/updt) : 0
7 Simulate : Enable : OFF
8 Rate (cnt/updt) : 10
9 Ethernet Master RIPE Id : 1
10 Ethernet Master Encoder : 1
[ TYPE ] ENCODER
5. Go to the encoder set up menu of the slave encoder, and verify that the change of “current count” is
stopped. Verify that “current count” of the master encoder and “current count” of the slave encoders
- 104 -
B-83474EN/02 5.ADVANCED TECHNIQUES
are same. If they are same, the setup is correct. If they are not same, check the Ethernet Encoder
Setup.
SETUP Encoders
1/10
Encoder Number : 1
1 Encoder Axis : 0
2 Encoder Type : Serial INC
3 Encoder Enable : ON
Current Count (cnts) : 7560
4 Multiplier (ITP/update) : 1
5 Average (updates) : 1
6 Stop Threshold (cnt/updt) : 0
7 Simulate : Enable : OFF
8 Rate (cnt/updt) : 0
9 Ethernet Master RIPE Id : 1
10 Ethernet Master Encoder : 1
[ TYPE ] ENCODER
5.10.1 Overview
Servo Conveyer Line Tracking function is the function for using an extended axis as a conveyer.
Therefore, the robot can track the conveyer that is indexed with high accuracy. This function requires
Line Tracking option and Servo Conveyer Line Tracking option.
Servo Conveyer Line Tracking option includes Multi Motion Group option and Continuous Turn option.
These are used for keeping on moving an extended axis as a conveyer. In addition, Independent Auxiliary
Axis option is necessary to control extended axis.
5.10.2 Setup
Please set up Servo Conveyer Line Tracking system by the following step.
5.10.2.1 Independent Extended Axis Setup
5.10.2.2 Servo Conveyer Setup
5.10.2.3 TP Program for Servo Conveyer
5.10.2.4 Tracking Schedule Setup
5.10.2.5 Example of TP Program
- 105 -
5.ADVANCED TECHNIQUES B-83474EN/02
1. Hot start
2. Cold start
3. Controlled Start
4. Maintenance
Select >3
2. Select “3. Controlled Start” and push the ENTER key. After a while a Control Start Menu appears.
ROBOT MAINTENANCE
1/10
Setup Robot System Variables
3. “Independent Axes Setup Menu” appears. If you add axis, please select “2: Add Axis”. Push “2” key
and the ENTER key and then “MOTOR SELECTION” appears. When axis setup is finished, you
return to “Independent Axes Setup Menu”. If you finish the axis setup, please select “4 EXIT”.
- 106 -
B-83474EN/02 5.ADVANCED TECHNIQUES
NOTE
Please refer to the mechanical specification for the following procedure.
4. Select a servo motor which is used as Independent Axis. Select “1 Standard Method” and then select
MOTOR SIZE and MOTOR TYPE.
-- MOTOR SELECTION
1: Standard Method
2: Enhanced Method
3: Direct Entry Method
Select ==> 1
For example, if you want to select βiS2/4000i, please select 85 and 11.
5. Select a current limit for amplifier. If current limit for amplifier is 20A, please select 10.
2. 4A 10. 20A
5. 40A 12. 160A
80A
Select==> 10
Select? 2
- 107 -
5.ADVANCED TECHNIQUES B-83474EN/02
7. Enter the number of revolution of the motor which corresponds to one pitch of the conveyer. By this
setting, a conveyer moves one pitch when Independent Axis moves 360 degrees.
Pitch: The distance of conveyer when move conveyer to one bucket of conveyer
Bucket: A part of a conveyer is divided by a constant distance.
1Pitch
Conveyer
Bucket
-- GEAR RATIO --
Enter Gear Ratio?
If a conveyer rotates “N” times and a motor of it rotates “M” times, the gear ratio can be calculated
by the following. Please enter the calculated value.
M
GearRatio =
N × Number of Buckets
- It is also possible to calculate the gear ratio from the set value (Motor Gear teeth and so on) of
Servo Conveyer Setup. In this case, the gear ratio can be calculated by the following.
8. Select “2:NO Change” for setting a suggested speed as a max joint speed.
-- MOTOR DIRECTION
INDEPENDENT AXES 1 Motion Sign = TRUE
Enter (1:TRUE, 2:FALSE)?
If you look at a motor from the front of the flange, a counter clockwise rotation is plus direction of a
motor.
- 108 -
B-83474EN/02 5.ADVANCED TECHNIQUES
Positive
rotation
shaft
10. Enter the limit of the axis. Please enter 180[deg] as an upper limit and –180[deg] as a lower limit.
-- UPPER LIMIT --
Enter Upper Limit ( deg)? 180
--LOWER LIMIIT--
Enter Lower Limit ( deg)? -180
11. Enter the mastering position of the axis. Please enter the position where it is possible to carry out
mastering within the motion range. Normally, the position is “0”.
--MASTER POSITION –
Enter Master Position (deg)?
-- ACC/DEC TIME--
Default Value of acc_time1 = 384(ms)
Enter (1:Change, 2:No Change)?
If you want to change the value, choose “1:Change” and enter the new value. If you don’t want to
change the value, choose “2:No Change”.
Next, enter the 2nd ACC/DEC time (acc_time2). Default value of acc_time2” is the default value.
Please set half the value of acc_time1.
If you want to change the value, choose “1:Change” and enter the new value. If you don’t need to
change the value, choose “2:No Change”.
13. Enter Minimum Accel Time. When doing motion, if the calculated acceleration/deceleration time is
smaller than the specified time, the acceleration/deceleration time will be clamped to the specified
time.
- 109 -
5.ADVANCED TECHNIQUES B-83474EN/02
-- MIN_ACCEL TIME --
Default Value of min_acctime = 384(ms)
Enter (1:Change, 2:No Change)?
min_acctime should be the sum of acc_time1 and acc_time2. Please choose “1:Change” and enter it.
14. Enter Load Ratio. This value is the ratio of all load inertia to the rotor inertia. The valid range of
Load Ratio is from 1.0 to 5.0. If you don’t set this value, enter “0”.
-- LOAD RATIO --
Load Inertia + Motor Inertia
Load Ratio =
Motor Inertia
Select?
--BRAKE SETTING --
Enter Brake Number (0~16)?
18. Select the type of brake control (Servo Timeout). The brake control function put on a brake
automatically when an axis does not move for a given length of time.
--SERVO TIMEOUT --
Servo off is Disable
Enter (1:Enable, 2:Disable)?
If you choose “1:Enable”, then enter the delay time of brake control (Servo Off Time). The valid
range of Servo Off Time is from 0 to 30(sec).
- 110 -
B-83474EN/02 5.ADVANCED TECHNIQUES
19. After the above setting, “Independent Axes Setup Menu” appears. Please select “4 EXIT” and finish
the axis setup.
20. After axis setup is finished, Press the FCTN key to display the function menu. Select “1 START
(COLD)” and push the ENTER key and then Cold Start is executed.
ROBOT MAINTENANCE
1/10
FUNCTION
Setup Robot System Variables
1 START(COLD)
2 RESTORE/BACKUP
Group Robot Library/Option Ext Axes
1 M-3iA/6S3 PRINT SCREEN0
4 UNSIM ALL I/O
2 Independent Axes 0
NOTE
Servo conveyer line tracking function uses flags from 131 to 138. You must not
use these flags. A flag is an internal I/O port that can be read and set.
- 111 -
5.ADVANCED TECHNIQUES B-83474EN/02
SETUP Indexers
1/7
Indexer Number: 1
1 Encoder Number: 0
2 Indexer Type FANUC
3 Index Advance Trigger DI: 1
4 Delay move after trig (ms): 0
5 Indexer Ready DO: 1
6 Tracking Schedule: 1
7 Create Index program: Detail
5. Move the cursor to “Encoder Number” and enter the number of the encoder that is used as servo
conveyer.
6. Move the cursor to “Indexer Type” and select “FANUC”.
7. Move the cursor to “Index Advance Trigger DI” and enter the index of DI is used for moving the
servo conveyer.
8. Move the cursor to “Delay move after trig (ms)” and enter the value of delay time until the servo
conveyer starts after trigger.
9. Move the cursor to “Indexer Ready DO”. If you want to output DO at start of TP program for the
servo conveyer, enter the index of DO. Please refer to TP program for Servo Conveyer
(INDXG*.TP).
10. Move the cursor to “Tracking Schedule” and enter the value of the tracking schedule that is used for
servo conveyer.
11. Move the cursor to “Indexer Type” and push “F2: DETAIL” key or Enter Key. You will see a screen
as following. Because there is no [TYPE] in this menu, you can not select any other setup menu. To
return back to previous menu with [TYPE] press PREV key.
EXEC
12. Move the cursor to “Robot Group” and enter the group number of the extended axis that is used as
the servo conveyer.
13. Move the cursor to “Motor Gear teeth”, “Rotor input Gear teeth”, “Rotor output Gear teeth” and
“Conveyer belt teeth” and enter each value. The following figure shows the relationship between
these values.
- 112 -
B-83474EN/02 5.ADVANCED TECHNIQUES
Conveyer
It is also possible to set up from the relation between the number of revolution of motor and the
number of revolution of the conveyer. If a conveyer rotates “N” times and a motor of it rotates “M”
times, please setup as following. “M” and “N” must be an integer.
a. Enter the value of “N” in Continuous Rotation to “Motor Gear teeth”
b. Enter the value of “M” in Continuous Rotation to “Rotor input Gear teeth”
c. Enter “1” to “Rotor output Gear teeth” and “Conveyer belt teeth”
14. Move the cursor to “Number of Flight” and enter the number of bucket on the servo conveyer.
15. Move the cursor to “Index Distance” and the distance a one pitch on the servo conveyer.
16. After the above setup, push “F2: EXEC” and be sure to Power off/on.
NOTE
By the above setting, Continuous Rotation setup of the conveyer and Encoder
setup of the specified encoder are also done.
- 113 -
5.ADVANCED TECHNIQUES B-83474EN/02
NOTE
Before generating indexer program, please set max payload which is used in an
indexer tracking motion on MOTION/PAYLOAD SET display.
1. Move the cursor to “Create Index program” in “SETUP Indexers” and push “F2: DETAIL” key or
ENTER key. You will see a screen as following. Because there is no [TYPE] in this menu, you can
not select any other setup menu. To return back to previous menu with [TYPE] press PREV key.
2. Move the cursor to “Index Speed (part/min)” and enter the value of Index Speed of the servo
conveyer. Please set the number of pitches per minute.
3. Move the cursor to “Index Dwell” and enter the value of the time to stop the servo conveyer. The
speed pattern of the servo conveyer is different according to the value. Please refer to following
figures.
If you want to use a conveyer as Index Conveyer, it is necessary to “0” and over as Index Dwell. If
you want to move a conveyer at constant speed, it is necessary to set “-1” as Index Dwell.
Movement Time of Conveyer per Pitch is calculated from Index Speed.
Index Dwell is ”0” and over:
Movement Time of Conveyer per Pitch [ms] = (60*1000/Index Speed) – Index Dwell
Index Advance
Trigger DI
Time
Velocity
Index Dwell
Time
Movement Time of Conveyer per Pitch
- 114 -
B-83474EN/02 5.ADVANCED TECHNIQUES
Index Advance
Trigger DI
Time
Velocity
Time
Movement Time of Conveyer per Pitch
4. Move the cursor to “Indexer Resister start” and enter the start index of Register is used in TP
program for the servo conveyer. Two registers are used in TP program.
For example, R[60] and R[61] are used when “Indexer Resister start” is “60”. R[60] is used for
setting the number of DO. The specified DO by R[60] is used for checking whether the conveyer
finishes moving to initial position. R[61] is used for counting the number of pitches of the conveyer.
Please refer to example of INDXG*.TP.
5. After the above setting move the cursor to “Generate Index program” and push “F2: Create” key. If
there is no problem in the setting, “Done” is displayed and INDXG*.TP (* is group number of the
servo conveyer) is created.
SETUP Indexer Motn
4/4
FANUC Indexer: 1
1 Index Speed (part/min) 100
2 Index Dwell (ms): 0
3 Indexer Register start 60
4 Generate Index program
Create Replace
NOTE
- Do not change INDXG*.TP directly because it is default program in the system. Please rename
INDXG*.TP and use it.
- “Part Rate exceeds allowable value” might be displayed by the setting. This message shows that the
calculated conveyer acceleration from the setting for TP exceeds allowable acceleration of the servo
conveyer or robot. In this case, INDX*.TP is not created. Please adjust the setting (Index Speed,
Index Dwell) so that the acceleration decreases.
- If there is INDXG*.TP and you push “F2: Create” key, “Index Program already exist” is displayed.
In this case, INDXG*.TP is not created. If you want to create TP program, please push “SHIFT” key
and “F3: Replace” key. If there is no problem in the setting, existing INDXG*.TP is overwritten by
the created TP program from current setting.
- If you push only “F3 Replace” key, “Hold Shift & Replace to replace program” is displayed. In
this case, INDXG*.TP is not overwritten.
- If INDXG*.TP is currently open in editor, the system will not be able to update the program. In
this case the error message will displayed and “done” will not be displayed.
- “Part Rate exceed allowable value” might be displayed by the setting when you push “SHIFT”
key and “F3: Replace” key. Please adjust the setting so that the acceleration decreases.
Sample Program
The following is an example of INDXG*.TP.
- 115 -
5.ADVANCED TECHNIQUES B-83474EN/02
Example of INDXG*.TP
1:J P[1] 50% CNT0 ; Movement to P[1] as an initial position.
2: IF R[60:G2 Ready DO]=0,JMP LBL[3] ;
3: DO[R[60]]=ON ; Specified DO by R[60] become on
4: LBL[3] ;
5: R[61:G2 cur slot ID]=0 ; Reset R[61]
6: LBL[1] ;
7: $INDEXER[1].$INDEX_MV=1 ; Setting for waiting for DI trigger
8:J P[2] 180msec CNT100 INC ACC66 ; One pitch movement
9: $INDEXER[1].$INDEX_MV=0 ; Setting for waiting for DI trigger
10: R[61:G2 cur slot ID]=R[61:G2 cur slot ID]+1; Count the number of pitches
11: IF R[61:G2 cur slot ID]=32,JMP LBL[2] ; If conveyer is turned once, Jump to LBL[2].
12: JMP LBL[1] ;
13: LBL[2] ;
14:J P[1] 100% CNT100 ; Movement to P[1] to correct iteration error
15: R[61:G2 cur slot ID]=0 ; Reset R[61]
16: JMP LBL[1] ;
/POS
P[1:""]{
GP2:
UF : 0, UT : 1,
J1= 0.000 deg
};
P[2:""]{
GP2:
UF : 0, UT : 1,
J1= 360.000 deg
};
NOTE
If you want to enable this function, it is necessary to set Index Dwell to 0 and over
and generate TP program for Servo Conveyer again. If there is no time the
conveyer stops, it is not possible to start/end a tracking motion.
The flag for switching the setting of this function is bit 1 and bit 2 of $INDX_TRACK[schedule number].
If you want to enable this function, please set these flag by the following procedure.
- 117 -
5.ADVANCED TECHNIQUES B-83474EN/02
NOTE
If the setting of this function is changed, please create TP program for the servo
conveyer again.
- SLTKINIT
- SLTKREST
- SLTKPSHQ
- SLTKPOPQ
- SLTKDELQ
- SLTKRSTQ
- SLTKGTPP
This subsection explains these KAREL programs and Discard Line, Stop Conveyer and Distribution Line.
NOTE
It is necessary to set $KAREL_ENB=1 to use KAREL program.
NOTE
Distribution Line function and SLTKGTPP is available from 7DC1/19, 7DC2/15.
- 118 -
B-83474EN/02 5.ADVANCED TECHNIQUES
SLTKINIT
This program clears information about trigger values. Normally, this program is called once when the
system is started.
Argument1: Specify the number of tracking schedule which Servo Conveyer Line Tracking uses.
Argument2: Specify the position register number that is saved an initial position of the conveyer.
Argument3: Specify the position register number.
The specified position register by argument 3 is set to the distance between the current conveyer position
and an initial position of the conveyer. The value within 1 pitch (from 0 to 360 degrees) is set. This is
available for adjusting the conveyer position at the start.
SLTKREST
Because the distance of one pitch of Servo Conveyer is constant, an encoder value can be got as a trigger
value every a constant distance. This program is used for setting a reference value of the trigger. When
SLTKREST is called, the encoder value is saved as a reference value of the trigger. It is necessary to call
this program once just after the servo conveyer moves to an initial position.
Argument1: Specify the number of tracking schedule which Servo Conveyer Line Tracking uses.
In the following case, PR[2] is set to the distance between the current conveyer position and an initial
position of the conveyer by SLTKINIT at line 1. Next, the conveyer moves to an initial position by the
motion instruction and Reference position for trigger is saved by SLTKREST.
Conveyer
Conveyer moves to Initial Pos.
Moving distance is within one pitch.
SLTKPSHQ
This is used for saving trigger value after the conveyer moves the number of pitch.
Argument1: Specify a number of tracking schedule which Servo Conveyer Line Tracking uses.
Argument2: Specify a number of pitch
If you want to change the save-able number of trigger values, please change the value of the following
system variable and power off/on.
$SLTKSCH[n].$QUE_SIZE: Default value is 20 and max value is 100.
“n” is the number of tracking schedule which Servo Conveyer Line Tracking uses.
- 119 -
5.ADVANCED TECHNIQUES B-83474EN/02
NOTE
When the saved number of trigger values become the specified value by
$SLTKSCH[n].$QUE_SIZE, the oldest saved trigger value is removed.
It is necessary call this program after the conveyer moves the specified number of pitch. When this
program is called, a trigger value is calculated from the reference trigger value and the specified number
of pitch and it is saved. At the first, the reference trigger value is saved as a trigger value.
For example, if the conveyer moves 1 pitch and the trigger value is saved once, Argument2 should be set
“1”. If the conveyer moves 2 pitches and the trigger value is saved once, Argument2 should be set “2”.
The following shows the case that trigger values are saved during the conveyer moves four pitches.
Conveyer
Reference Pos. for Trigger
Conveyer
Reference Pos. for Trigger
SLTKPOPQ
This program is used for getting the saved trigger value. When this program is called, it is possible to get
the oldest saved trigger value. If you succeed in getting the trigger value, the trigger value is removed and
it is impossible to get it again.
Argument1: Specify a number of tracking schedule which Servo Conveyer Line Tracking uses.
Argument2: Specify a register number for getting a trigger value.
Argument3: Specify a register number for getting a status. If SLTKPOPQ fails to get a trigger value
the value of status become nonzero.
The following shows the case that there are four saved trigger values.
Moving Direction of Conveyer
SLTKPOPQ(1,1,2): Get the oldest trigger value “4”.
1 2 3 4 “4” is the oldest.
Conveyer
Reference Pos. for Trigger
- 120 -
B-83474EN/02 5.ADVANCED TECHNIQUES
SLTKDELQ
This program is used for deleting the specified the saved trigger value. It is not possible to get the deleted
trigger value by SLTKPOPQ.
Argument1: Specify a number of tracking schedule which Servo Conveyer Line Tracking uses.
Argument2: Specify a number of trigger to delete.
For example, if argument2 is “2”, SLTKDELQ deletes the second trigger value “2” from the newest
trigger value.
1 2 3 4
Conveyer
SLTKDELQ(1,2)
Delete the specified trigger value
Fig. 5.10.3.3(d) SLTKDELQ
SLTKRSTQ
This program turns off the specified DO for Stop Conveyer. Please refer to STOP CONVEYER below.
Argument1: Specify a number of tracking schedule which Servo Conveyer Line Tracking uses.
SLTKGTPP
This program is used for calculating a distance along X axis of tracking frame from the origin of tracking
frame to the corresponding position to the oldest available trigger value.
Argument1: Specify a number of tracking schedule which Servo Conveyer Line Tracking uses.
Argument2: Specify a register number for getting a distance from the origin of tracking frame.
Argument3: Specify a register number for getting a status. If SLTKGTPP succeeds, the value of the
status becomes “0”. If SLTKGTPP fails to calculate a distance, the value of the status
becomes nonzero and the value of the register specified by argument 2 is not updated.
The following shows the case that there are four saved trigger values.
For example, if the oldest available trigger value is “4”, the corresponding distance to the trigger value
“4” is calculated.
Tracking Frame 1 2 3 4
Conveyer
$SENS_X
Reference Pos. for Trigger
If “4” is deleted by SLTKDELQ, “3” becomes the oldest available trigger value. Therefore, the
corresponding distance to the trigger value “3” is calculated by SLTKGTPP.
- 121 -
5.ADVANCED TECHNIQUES B-83474EN/02
Tracking Frame 1 2 3 4
Conveyer
$SENS_X
Reference Pos. for Trigger
If Discard Line is set and “4” passes the discard line, it is not possible to get the trigger value “4”. In this
case, the corresponding distance to the trigger value “3” is calculated by SLTKGTPP.
Tracking Frame 1 2 3 4
Conveyer
$SENS_X Discard Line
Reference Pos. for Trigger
If Stop Conveyer is set and “4” passes the discard line, DO is out put in order to call upon to stop the
conveyer. Even if “4” passes the discard line in Stop Conveyer case, it is possible to get the trigger value
“4”. The corresponding distance to the trigger value “4” is calculated by SLTKGTPP.
Tracking Frame 1 2 3 4
Conveyer
$SENS_X
Discard Line
Reference Pos. for Trigger
DISCARD LINE
If a corresponding position to the trigger value passes the discard line, it is possible to discard the trigger
value. It is necessary to set Discard Line on the basis of downstream boundary of the tracking area.
- 122 -
B-83474EN/02 5.ADVANCED TECHNIQUES
$SLTKSCH[n].$SENS_X: Specify the distance from the origin of Tracking frame to
Reference Pos. along X axis of Tracking frame. The unit is
[mm]
“n” is the number of tracking schedule which Servo Conveyer Line Tracking uses.
If $DISCARD_BND is negative, Discard Line is set up Down-stream boundary. Normally, you should set
$DISCARD_BND to the negative value. If a corresponding position to the trigger value passes the
discard line, it is not possible to get the trigger value by SLTKPOPQ. The oldest saved trigger value is
used for checking whether this function discard the trigger value.
In the following case, because the corresponding position to the trigger value “4” passes the discard line,
“4” is discarded. After that, the corresponding position to the trigger value “3” is checked whether this
function discard the trigger value.
STOP CONVEYER
If a corresponding position to the trigger value passes Discard Line, the specified DO become ON. While
the Specified DO is ON, you should not set “Index Advance Trigger DI” to ON in order to stop the
conveyer.
It is necessary to set Discard Line so that the desired tracking motion can be done at the conveyer stop
position.
When Stop Conveyer function is enabled and the corresponding position to the trigger value passes
Discard Line, the trigger value is kept. While the Specified DO is ON, it is possible to get the trigger
value by SLTKPOPQ. If you want to change the specified DO from ON to OFF, it is necessary to use
SLTKRSTQ. The next trigger value is used for checking the Stop Conveyer after SLTKRSTQ is
executed.
In the following case, because the corresponding position to the trigger value “4” passes the discard line,
the specified DO becomes ON. According the DO, it is necessary to stop the conveyer. The trigger value
“4” can be got by SLTKPOPQ. After a tracking motion is done at the corresponding position to the
trigger value “4”, the DO becomes OFF by executing SLTKRSTQ. According the DO, it is necessary to
resume the conveyer. When SLTKRSTQ is executed, the corresponding position to the trigger value “3”
will be checked whether this function discard the trigger value.
- 123 -
5.ADVANCED TECHNIQUES B-83474EN/02
Tracking Frame
1 2 3 4
NOTE
It is impossible to use both Discard Line and Stop Conveyer on the same Servo
Conveyer.
DISTRIBUTION LINE
Until a corresponding position to a trigger value passes the distribution line, it is not possible to get the
trigger value with SLTKPOPQ. It is necessary to set the distribution line on the basis of upstream
boundary of the tracking area.
If $ALLOC_BND is negative, the distribution line is set up upstream boundary. Usually, you should set
$ALLOC_BND to the negative value. Until a corresponding position to a trigger value passes the
distribution line, it is not possible to get the trigger value with SLTKPOPQ.
In the following case, because the corresponding position to the trigger value “4” passes the distribution
line, you can get the trigger value “4” with SLTKPOPQ.
Tracking Frame 1 2 3 4
$SENS_X $ALLOC_BND<0
Reference Pos. for Trigger Distribution Line
- 124 -
B-83474EN/02 5.ADVANCED TECHNIQUES
Sample Program
The following are sample programs (Main Program and CNVY.TP for moving Servo Conveyer) in case
of using Stop Conveyer.
In Main Program, the information about the trigger value is initialized by SLTKINIT at first. After that,
TP program (CNVY.TP) for moving Servo Conveyer is executed by the other task.
- At line 3, the information about the trigger value is initialized by SLTKINIT and PR[2] is set to
the distance from current position to the position of PR[1].
- At line 4, RUN CNVY.TP in order to execute the program for moving Servo Conveyer by the
other task.
- At line from 5 to 8, a trigger value is got by SLTKPOPQ every 100[msec]. At line 8, whether
getting a trigger value succeed is checked by R[2]. If it is impossible to get a trigger value,
jump to LBL[1] at line 5.
- At line 11, if DO for Stop Conveyer is ON, turn off the DO by SLTKRSTQ.
In TP program for moving Servo Conveyer, a trigger value is got every 2 pitches by SLTKPSHQ. R[3] is
used for counting the number of pitches and SLTKPSHQ is executed according to the value of R[3].
Example of CNVY.TP
1:J PR[2] 50% CNT0 INC ; Movement to the initial position.
2: CALL SLTKREST(1) ; Setting of Reference Pos. for Trigger.
3: IF R[60:G2 Ready DO]=0,JMP LBL[3] ;
4: DO[R[60]]=ON ; Specified DO by R[60] become ON.
5: LBL[3] ;
6: R[61:G2 cur slot ID]=0 ; Reset R[61].
7: R[3]=0 ; R[3] is the counter for SLTKPSHQ.
8: LBL[1] ;
9: $INDEXER[1].$INDEX_MV=1 ; Setting for waiting for DI trigger.
10:J P[2] 180msec CNT100 INC ACC66 ; One pitch movement.
11: $INDEXER[1].$INDEX_MV=0 ; Setting for waiting for DI trigger.
12: R[61:G2 cur slot ID]=R[61:G2 cur slot ID]+1; Count the number of pitches.
13: R[3]=R[3]+1 ; Count the number of pitches.
14: IF R[61:G2 cur slot ID]=32,JMP LBL[2] ;
15: JMP LBL[4] ; Jump to LBL[4] at line 19.
16: LBL[2] ;
17:J PR[1] 100% CNT100 ; Movement to PR[1] to correct iteration error.
- 125 -
5.ADVANCED TECHNIQUES B-83474EN/02
- Because PR[2] is set to the distance from current position to the position of PR[1], at line 1, the
conveyer moves from the current position to the position of PR[1].
- At line 2, Reference position for Trigger is set by SLTKREST.
- R[3] is the counter for SLTKPSHQ. At line 7, 13, 22, R[3] is initialized, counted and reset.
- At line 17, the conveyer moves to PR[1] to correct iteration error. Every time the conveyer
makes one revolution this line is executed.
- At line 20, the number of pitches is checked. When the conveyer moves 2 pitches, SLTKPSHQ
is executed to save to a trigger value.
- If you wan to change the number of pitches per trigger. Please change “2” at line 20, 21 to the
desired number.
- 126 -
APPENDIX
B-83474EN/02 APPENDIX A.CONVEYOR LIMITS AND TRACKING ACCURACY
For example, to obtain a tracking error of less than ±4 mm on a robot with an ITP time of 8 msec, the
maximum conveyor speed would be:
500(mm/sec) = 4mm/8msec
A conveyor speed of 12 m/min or 200 mm/sec is approaching the maximum speed for many processes.
However, there are some processes which can successfully use faster conveyor speeds.
When you use ACCUTRIG, the tracking error is ± one system tick (2 ms) so the conveyor can be much
faster. However, this is bound by the process speed. Refer to Section 4.5.
- 129 -
A.CONVEYOR LIMITS AND TRACKING ACCURACY APPENDIX B-83474EN/02
Therefore, there can be synchronization delays of up to 2 ITP times for this operation; and more if the
encoder update time multiplier is set larger than 1. The maximum error can be computed using the
following equation.
For example:
3.2mm = 200mm/sec *2 * 8msec
When ACCUTRIG is used, the system tick would be recorded when the part detect switch is triggered.
The system then finds the encoder value at that system tick. Therefore, the formula is
For example:
0.8mm = 200mm/sec *2 * 2msec
However, since the relative tracking position can be changed by adjusting the prediction times, the
accuracy can be expressed as ±1 ms. The tracking accuracy can be computed using the following
equation.
NOTE
The larger ErrorDist value will always be used.
NOTE
PaintTool disables the ACCUTRIG tracking accuracy feature.
The tracking accuracy can also be limited by the resolution of the encoder being used, and any gear ratio
associated with it. The resolution is a combination of the encoder scale factor and the conveyor speed.
The resolution can be computed using the following equation.
Resolution pulses/update = ScaleFactor pulses/mm * Conv.Speed mm/sec * UpdateTime sec/update
For example, in a system with an encoder scale factor of 10 pulses/mm and an ITP time (update time) of
20 msec, the resolution for a conveyor speed of 200 msec/update is:
In a system that uses high speed line tracking, an encoder scale factor of 10 pulses/mm and an update time
of 4 msecs , the resolution for a conveyor speed of 200 sec/update is:
4 pulses/update =10 pulses/mm * 200 mm/sec * 0.002 sec/update
NOTE
Keep the encoder resolution above 10 pulses/update. Values around 40 or 50
are more desirable.
- 130 -
B-83474EN/02 APPENDIX A.CONVEYOR LIMITS AND TRACKING ACCURACY
• Use software solution: Enable the software gear by turning on bit 3 of $LNCFG.$COMP_SW ( Add
value 8 if it was not turned on before). Then cycle the power. After that because the gear ratio would
not be the same any more, you need to re-teach the scale of the tracking schedule using F2, TEACH
on the SETUP Tracking menu. Refer to Section 3 for more information. Or re-enter the scale
( cnt/mm or cnt/deg ) in the tracking schedule that uses the encoder by multiplying the previous
value of the teach scale by the value of $ENC_SCALE[x] where x is the encoder number in the
tracking schedule.
- 131 -
B.SCHEMATICS APPENDIX B-83474EN/02
B SCHEMATICS
B.1 OVERVIEW
This section contains the schematic drawings of cables used for the HDI interface and line tracking
encoders.
The HDI signals are used in combination with special application software. The HDI signals cannot be
used as general-purpose DIs.
R-30iB
JRL8
R-30iB
Main board
JRL8
1 Reserved 11 HDI0
2 Reserved 12 0V
3 Reserved 13 HDI1
4 Reserved 14 0V
5 Reserved 15 HDI2
6 Reserved 16 0V
7 Reserved 17 HDI3
8 Reserved 18 0V
9 Reserved 19 HDI4
10 Reserved 20 0V
- 132 -
B-83474EN/02 APPENDIX B.SCHEMATICS
JRL8
11
HDI0
12
0V
13
HDI1
14
0V
15
HDI2
16
0V
17
HDI3
18
0V
19
HDI4
20
0V
1-10
Shield
Ground plate
R-30iB Mate
CRL3
R-30iB Mate
Main board
CRL3
1 HDI0 2 HDI1
3 0V 4 0V
CRL3
1
HDI0
3
0V
2
HDI1
4
0V
Shield
Ground plate
R-30iB
VH/VL
SHIELD
NOTE
1 The plus (+) sign of IiH/IiL represents the direction of flow into the receiver. The minus
(-) sign of IiH/IiL represents the direction of flow out of the receiver.
2 The high-speed skip signal is assumed to be 1 when the input voltage is at the low level
and 0 when it is at the high level.
Fig. B.1 (e) Input signal rules for the high-speed skip (HDI)
NOTE
In R-30iB Mate controller, HDI interface is not available with Main CPU board A
(A20B-8200-0790) or Main CPU board B (A20B-8200-0791). Main CPU board C
(A20B-8200-0792) is required to enable HDI for Line Tracking feature with R-30iB Mate
controller. See Table 5.6.2 (a) for detail.
- 134 -
B-83474EN/02 APPENDIX C.PULSECODER A860-0301-T001~T004
C PULSECODER A860-0301-T001~T004
C.1 REQUIREMENTS
Table C.1 (a) Requirements (R-30iB: Incremental Pulsecoder A860-0301-T001 to T004)
Required R-30iB Controller R-30iB Controller
Components A-Cabinet B-Cabinet Comments
Hardware
Line Tracking A20B-8101-0421 A20B-8101-0421 • The Line tracking interface board in the
Interface Board (wide-mini slot) (wide-mini slot) left column is included in the following
or or order specification.
A20B-8101-0601 A20B-8101-0601 A05B-2600-J035, A05B-2660-J035
(mini slot) (mini slot) (A/B-Cabinet, wide-mini slot)
A05B-2600-J036, A05B-2660-J036
(A-Cabinet, mini slot)
A05B-2600-J037 (B-Cabinet, mini slot)
Fiber Optic A66L-6001-0023 A66L-6001-0023 • The Fiber Optic cable in the left column
(FSSB) Cable is included in the following order
specification.
A05B-2600-J035, A05B-2660-J035
(A/B-Cabinet, wide-mini slot)
A05B-2600-J036, A05B-2660-J036
(A-Cabinet, mini slot)
A05B-2600-J037 (B-Cabinet, mini slot)
- 135 -
C.PULSECODER A860-0301-T001~T004 APPENDIX B-83474EN/02
Multiplexer for A20B-8101-0421 for A20B-8101-0421 • When using multiple robots to track
cable (wide-mini slot) : (wide-mini slot) : parts on the conveyor, use a Multiplexer
A05B-2601-J385 (7M) A05B-2603-J385 (7M) to Controller cable, or use Ethernet
A05B-2601-J386 (14M) A05B-2603-J386 (14M) encoder function (A05B-2600-R762)
A05B-2601-J387 (20M) A05B-2603-J387 (20M) (option).
A05B-2601-J388 (30M) A05B-2603-J388 (30M)
A05B-2660-J385 (7M)
A05B-2660-J386 (14M)
A05B-2660-J387 (20M)
A05B-2660-J388 (30M)
Refer to Fig. C.2 (a) to Fig. C.2 (c) for Pulsecoder signal information, and images containing the
dimensions of the encoders.
Refer to Fig. C.3 (a) to Fig. C.3 (f) for information on dimensions, connections, and installation of the
Detector Interface Units.
- 136 -
B-83474EN/02 APPENDIX C.PULSECODER A860-0301-T001~T004
Table C.1 (b) Requirements (R-30iB Mate: Incremental Pulsecoder A860-0301-T001 to T004)
Required R-30iB Mate Controller
R-30iB Mate Controller
Components (Open Air) Comments
Hardware
Line Tracking A20B-8101-0601 A20B-8101-0601 • The Line tracking interface board in the
Interface Board (mini slot) (mini slot) left column is included in the following
order specification.
A05B-2650-J035, A05B-2661-J035
(R-30iB Mate, mini slot)
A05B-2655-J035, A05B-2662-J035
(R-30iB Mate (Open Air), mini slot)
Fiber Optic A66L-6001-0026 A66L-6001-0023 • The Fiber Optic cable in the left column is
(FSSB) Cable included in the following order
specification.
A05B-2650-J035, A05B-2661-J035
(R-30iB Mate, mini slot)
A05B-2655-J035, A05B-2662-J035
(R-30iB Mate (Open Air), mini slot)
Refer to Fig. C.2 (a) to Fig. C.2 (c) for Pulsecoder signal information, and images containing the
dimensions of the encoders.
Refer to Fig. C.3 (a) to Fig. C.3 (f) for information on dimensions, connections, and installation of the
Detector Interface Units.
- 137 -
C.PULSECODER A860-0301-T001~T004 APPENDIX B-83474EN/02
C.2 FIGURES
Pin No.
Signal Name
310A20-29P
A A
*A D
B B
*B E
Z F
*Z G
C1 -
C2 -
C4 -
C8 -
+5V C,J,K
0V N,P,T
Shield H
OH1
OH2
REQ
+6VA
0VA
Fig. C.2 (a) Incremental Pulsecoder (A860-0301-T001) connection signal information
- 138 -
B-83474EN/02 APPENDIX C.PULSECODER A860-0301-T001~T004
JF21
JF22
Pulsecoder cable
R-30iB / A-Cabinet : COP10B
A05B-2601-J380 to J383
A05B-2660-J380 to J383
R-30iB / B-Cabinet :
A05B-2603-J380 to J383 COP10A
Fig. C.3 (a) Connecting cables with Line tracking interface board A05B-2600-J035, A05B-2660-J035
(one Pulsecoder)
- 139 -
C.PULSECODER A860-0301-T001~T004 APPENDIX B-83474EN/02
JRF3
Pulsecoder cable
R-30iB / A-Cabinet : COP10B
A05B-2601-J370 to J373
A05B-2660-J370 to J373
R-30iB / B-Cabinet :
A05B-2603-J370 to J373
Fig. C.3 (b) Connecting cables with Line tracking interface board A05B-2600-J036, A05B-2660-J036 or
A05B-2600-J037 (one Pulsecoder)
JRF3
Pulsecoder cable
R-30iB Mate : COP10B
A05B-2650-J200 to J202
A05B-2661-J200 to J202
R-30iB Mate (Open Air) :
A05B-2655-J200 to J202
A05B-2662-J200 to J202
Fig. C.3 (c) Connecting cables with Line tracking interface board A05B-2650-J035, A05B-2655-J035,
A05B-2661-J035 or A05B-2662-J035 (one Pulsecoder)
- 140 -
B-83474EN/02 APPENDIX C.PULSECODER A860-0301-T001~T004
JRF3
COP10B
Pulsecoder cable
R-30iB Mate :
A05B-2650-J210 to J212
A05B-2661-J210 to J212
R-30iB Mate (Open Air) :
A05B-2655-J210 to J212
A05B-2662-J210 to J212
Fig. C.3 (d) Connecting cables with Line tracking interface board A05B-2650-J035, A05B-2655-J035,
A05B-2661-J035 or A05B-2662-J035 (two Pulsecoders)
Pulse multiplexer
Pulsecoder A16B-1212-0290 Line tracking interface board
A8600-0301-T001 to T004 A20B-8101-0421
JF21
JF22
Pulsecoder to Multiplexer cable Multiplexer cable
A05B-2451-K102, -K103 R-30iB / A-cabinet: COP10B
A05B-2601-J385 to J388
R-30iB / B-cabinet: COP10A
A05B-2603-J385 to J388
JRF3
Fig. C.3 (e) Pulse multiplexer and connecting cables 1 (Pulsecoder, A860-0301-T001 to T004)
NOTE
If the line tracking interface board cannot be used or is not available, you can
use the SDU shown in Fig. 2.1.1 (f) to Fig. 2.1.1 (n).
- 141 -
C.PULSECODER A860-0301-T001~T004 APPENDIX B-83474EN/02
Pulsecoder
A860-0301-T001
to T004
Fig. C.3 (f) Connecting cables to the multiplexer 2 (Pulsecoder, A860-0301-T001 to T004)
NOTE
You can connect up to four cables (pulse multiplexer to/from controller) to one
pulse multiplexer.
- 142 -
ADDITIONAL INFORMATION
Change of FANUC Robot series R-30iB/R-30iB Mate CONTROLLER
Line Tracking OPERATOR’S MANUAL
Spec.No./Ed. B-83474EN/02
2.Summary of Change
New, Add,
Applicable
Group Name/Outline Correct,
Date
Delete
Basic
Unit
Maintenance
Parts
Notice
Correction
Another
Draw B-83474EN/02-01
No.
01 2014.07.18 Sugio Initial Release
Ed. Date Design Description Sheet 1/47
Date 2014.07.18 Desig. Sugio Check Apprv.
4 PLANNING AND CREATING A PROGRAM
4.1 OVERVIEW
TP program includes a series of commands, called instructions, which tell the robot and other equipment how to
move and what to do to perform a specific task. For example, a program directs the robot and controller to:
1. Move the robot in an appropriate way to required locations in the workcell.
2. Perform an operation, such as spot weld, paint, or arc weld.
3. Send output signals to other equipment in the workcell.
4. Recognize and respond to input signals from other equipment in the workcell.
5. Keep track of time, part count, or job number.
This chapter describes how to perform each of the following, as related to line tracking.
• Plan a program, Section 4.2
• Write and modify a program, Section 4.3
• Synchronize the conveyor, Subsection 4.3.2
• Re-synchronize the conveyor, Subsection 4.3.5
• Set up and use predefined positions in a program, Subsection 4.3.6
• Use line tracking program instructions, Section 4.5
Planning a Program
Before you write a program, you should plan the program. Planning involves considering the best way possible
to perform a specific task before programming the robot to complete that task. Planning before creating a
program will help you choose the appropriate instructions to use when writing the program.
Writing a Program
You write a program using a series of menus on the teach pendant that allow you to select and add each
instruction to your program. If the program sequence requires you to define the current location of the robot, you
jog, or move the robot to the desired location and execute the appropriate instruction.
NOTE
You have to teach a position in Cartesian format as a taught position in Tracking
program.
Modifying a Program
After you create a program, you can modify the program. You can use a series of teach pendant screens to
change or remove an instruction, add a new instruction, move instructions from one location in the program to
another, or find specific sections of the program.
If the instruction requires defining the current location of the robot, you jog, or move the robot to the desired
location and add the appropriate instruction.
Draw B-83474EN/02-01
No.
01 2014.07.18 Sugio Initial Release
Ed. Date Design Description Sheet 2/47
Date 2014.07.18 Desig. Sugio Check Apprv.
5 ADVANCED TECHNIQUES
5.6 HIGH SPEED SCANNING
Example 5.6.3 (a) Main program (job) without high speed scanning instructions
1: J P[1] 50% FINE -- MOVE TO HOME
2: LINE[1] ON -- ENABLE THE ENCODER
3: WAIT DI[1] ON -- WAIT FOR PART DETECT
4: LINECOUNT[1] R[1] -- GET TRIGGER VALUE
5: SETTRIG LNSCH[1] R[1] -- SET TRIGGER VALUE
6: SELBOUND LNSCH[1] BOUND[1] -- SELECT A BOUNDARY
7: CALL TRACK -- CALL TRACKING PROGRAM
8: J P[1] 50% FINE -- MOVE TO HOME
Example 5.6.3 (b) shows the same program but includes instructions for using the high speed scanning feature.
The part of the program that has changed is shown between the dashed lines.
Example 5.6.3 (b) Main Program (Job) with High Speed Scanning Instructions
1: J P[1] 50% FINE -- MOVE TO HOME
2: LINE[1] ON -- ENABLE THE ENCODER
3: ! ------------------------------
4: $HDI_FLAG[1] = 1 -- ENABLE THE HDI port 1
5: WAIT $ENC_STAT[1].$ENC_HSDI = 1 -- WAIT FOR PART DETECT
6: ! ------------------------------
7: LINECOUNT[1] R[1] -- GET TRIGGER VALUE
8: SETTRIG LNSCH[1] R[1] -- SET TRIGGER VALUE
9: SELBOUND LNSCH[1] BOUND[1] -- SELECT A BOUNDARY
10: CALL TRACK -- CALL TRACKING PROGRAM
11: J P[1] 50% FINE -- MOVE TO HOME
Draw B-83474EN/02-01
No.
01 2014.07.18 Sugio Initial Release
Ed. Date Design Description Sheet 3/47
Date 2014.07.18 Desig. Sugio Check Apprv.
NOTE
When you are editing tracking programs, conveyor resynchronization
automatically uses the HDI hardware input for part detection. Therefore, you do
not need to modify $HDI_FLAG[port].
Limitations
The High Speed Scanning option has the following limitations:
• The ACCUTRIG instruction can not be used simultaneously with High Speed Scanning.
• The static accuracy tuning adjustment $LNCFG_GRP[1].$IO_DELAY is available with High Speed
Scanning (refer to Subsection 5.4.1 ); however, only the group 1 value is used, i.e.
$LNCFG_GRP[2].$IO_DELAY, $LNCFG_GRP[3].$IO_DELAY, and so forth, will be ignored. There is
no limitation on the amount of adjustment available through $LNCFG_GRP[1].$IO_DELAY.
• You can adjust static tune variable by $ENC_IODELAY[encoder number] instead of
$LNCFG_GRP[g].$IO_DELAY. Before adjusting, make the following settings.
• Set $ENC_IOD_ENB[encoder number] to TRUE.
• Set $ENC_IODELAY[encoder number] to 0.
Adjust it referring to 5.4.1 Static Tune Variable.
• R-30iB supports up to 5 High Speed Digital Input (HDI) #1 to #5, located on the JRL8 connector of the
controller.
• R-30iB Mate supports up to 2 High Speed Digital Input (HDI) #1 to #2, located on the CRL3 connector of
the controller.
Draw B-83474EN/02-01
No.
01 2014.07.18 Sugio Initial Release
Ed. Date Design Description Sheet 4/47
Date 2014.07.18 Desig. Sugio Check Apprv.
5.7 SKIP OUTBOUND MOVE
Skip Outbound Move allows a part to travel out of the boundary window without stopping production. This
speeds up production and eliminates the need for you to manage an error condition when this occurs. This
feature is enabled using the following system variables:
When the feature is enabled, the system skips the motion instruction that causes the robot to go out of the down
stream boundary. Typically a tracking program that picks up a part on the conveyor would have three tracking
motion instructions: above pick (P1), pick (P2), and above pick (P3). Depending on the timing there are four
possible conditions that could occur if the Skip Outbound Move feature is enabled:
P[1],P[3]
P[2]
1. When the program starts, P1, P2 and P3 might already be out of bounds. In this case the system will
skip all three positions.
2. When the program starts, P1 is still inbounds, but P2 and P3 will be out of bounds when robot starts to
move P2 and P3. In this case the system will reach P1 and skip P2 and P3.
3. When the program starts, P1 and P2 are inbounds. But when the robot reaches P1 and P2 but before
the robot starts to move to P3, P3 becomes out of bounds. In this case the system will skip P3.
4. The system can reach all three positions while they are inside the boundary.
For a single pick program, the system will drop the part after picking up the part, so when the system skips the
outbound move the robot will directly move to the non-tracking drop position. In this case there is no problem.
For a multiple pick program, the system will wait or execute the pick up for next part when current part is done.
With the skip outbound move feature, the robot could be at P1 (condition 2) or P2 (condition 3) location when
the skip condition was satisfied.
This feature only skips the outbound move. It does not guarantee the “TRAK-005 destination gone error” would
never occur. If the previous motion is a tracking move, the robot might still track out of bounds while waiting for
next part to be inbound when user did not specify to stop tracking.
The robot should not stay at the P2 position because it will hold the part at the conveyor position too long and
cause the robot to block the part flow on the conveyor.
Draw B-83474EN/02-01
No.
01 2014.07.18 Sugio Initial Release
Ed. Date Design Description Sheet 5/47
Date 2014.07.18 Desig. Sugio Check Apprv.
To overcome this problem, you must set up a system variable $LNCFG_GRP[].$SKP_ADJ_MS to specify the
time margin that would prevent this condition. This should be derived from the user program. The value should
be the distance between P2 and P3 divided by the program speed of P3.
When the system determines whether or not P2 is out of bounds, the system uses this value to determine whether
or not it has time to reach P3. If it does not have time to reach P3 then the system will skip P2 also. The system
will adjust the time internally for a low override condition.
When you specify $LNCFG_GRP[].$SKP_FLG_NO to a valid flag port the system will turn on the flag you
specified when the skip condition occurred. Your application program can set this flag to determine whether or
not to use the same tool to pick up the next part. Also, your program can request that the next robot picks up the
skipped part. Because the system only sets the flag, you need to reset the flag before using it.
Because the motion is skipped, all the local conditions associated with the motion will be skipped.
Draw B-83474EN/02-01
No.
01 2014.07.18 Sugio Initial Release
Ed. Date Design Description Sheet 6/47
Date 2014.07.18 Desig. Sugio Check Apprv.
5.9 ETHERNET ENCODER
5.9.3 Limitations
• Each controller can support up to four master encoders.
• The Ethernet Encoder in one Ripe network can Support up to four controllers.
• The $SCR.$ITP_TIME for all the controllers should be set to the same value.
• Encoders using servo conveyor line tracking function is not allowed to be used as the Ethernet Encoder.
• The communication causes the difference between the master encoder's pulse count and the slave encoder's
pulse count. The difference is converted into time is about plus or minus 2ms as compared with using Pulse
Multiplexer.
Draw B-83474EN/02-01
No.
01 2014.07.18 Sugio Initial Release
Ed. Date Design Description Sheet 7/47
Date 2014.07.18 Desig. Sugio Check Apprv.
5.9.4 Create a Network
• According to “5.9.4.1 Connecting a Network Cable to the robot”, there are two ports in one
controller. Set the IP address and the subnet mask of the port used in “5.9.4.3 Setting IP Address”.
• When the IP address is set, each robot controller needs to be named differently.
• When the IP address is set, the IP address of the port used in the communication of robots needs to
be continuous number. For example, if there are four robot controllers and port 2 is used, the IP address
of port 2 of each robot controller is set as 172.16.0.1, 172.16.0.2, 172.16.0.3, and 172.16.0.4.
• If Ethernet Encoder is used, the IP address of the robot controller connected with the encoder is set
as first number. For the previous example, the IP address of port 2 of the robot controller connected
with the encoder is set as 172.16.0.1.
Draw B-83474EN/02-01
No.
01 2014.07.18 Sugio Initial Release
Ed. Date Design Description Sheet 8/47
Date 2014.07.18 Desig. Sugio Check Apprv.
5.9.5 Ethernet Encoder Setup
Ethernet Encoder is set on Encoder setup menu.
CAUTION
In case that set up Pulsecoder A which are connected to the encoder terminal on
own Main CPU board (Encoder Type : Main Serial INC) and Pulsecoder B which
are connected to the encoder terminal on another Main CPU board (Encoder
Type : Main Serial INC) using Ethernet Encoder function on one controller,
Pulsecoder A must be set up to the smaller encoder number than the encoder
number that Pulsecoder B is set up. This limitation is also true in the case of 3 or
more Pulsecoders. Refer to Fig.5.9.5 (a).
Draw B-83474EN/02-01
No.
01 2014.07.18 Sugio Initial Release
Ed. Date Design Description Sheet 9/47
Date 2014.07.18 Desig. Sugio Check Apprv.
Pulsecoder A (αA1000S)
Conveyor 1
Ethernet
Robot 1 Robot 2
Conveyor 2
Pulsecoder B (αA1000S)
Fig. 5.9.5 (a) Example of encoder configuration in case that set up Pulsecoder A which is connected to own Main
CPU board and Pulsecoder B which is connected to another Main CPU board on one controller.
Draw B-83474EN/02-01
No.
01 2014.07.18 Sugio Initial Release
Ed. Date Design Description Sheet 10/47
Date 2014.07.18 Desig. Sugio Check Apprv.
CAUTION
It is recommended that Encoder used as Ethernet Encoder is connected into
RIPE Master Controller for decreasing the communication traffic.
CAUTION
“Ethernet Master RIPE Id” is RIPE id of the controller connected with the master
encoder.
For example, if you set the encoder 1 of RIPE 1 controller (with $PH_ROSIP.$MY_INDEX = 1) as Master
encoder, you set “Ethernet Master RIPE Id” to 1 and “Ethernet Master Encoder” to 1. The master controller
screen is displayed. Encoder Set up menu is displayed as below.
SETUP Encoders
10/10
Encoder Number : 1
1 Encoder Axis : 1
2 Encoder Type : Serial INC
3 Encoder Enable : ON
Current Count (cnts) : 0
4 Multiplier (ITP/update) : 1
5 Average (updates) : 1
6 Stop Threshold (cnt/updt) : 0
7 Simulate : Enable : OFF
8 Rate (cnt/updt) : 0
9 Ethernet Master RIPE Id : 1
10 Ethernet Master Encoder : 1
[ TYPE ] ENCODER
Draw B-83474EN/02-01
No.
01 2014.07.18 Sugio Initial Release
Ed. Date Design Description Sheet 11/47
Date 2014.07.18 Desig. Sugio Check Apprv.
4. Set “Ethernet Master RIPE Id” and “Ethernet Master Encoder” to the value set in Set up the Ethernet Master
Encoder.
5. You should cycle power right away once you finish entering items. However, if you have more than one
encoder need to setup as Ethernet Encoder, you can wait until all of them was set up then cycle power.
For example, when the master encoder was set as the Ethernet Master Encoder procedure example in the same
RIPE network, you get into Encoder setup menu and set 1 to “Ethernet Master RIPE Id” and 1 to “Ethernet
Master Encoder”.
SETUP Encoders
10/10
Encoder Number : 1
1 Encoder Axis : 0
2 Encoder Type : Serial INC
3 Encoder Enable : ON
Current Count (cnts) : 0
4 Multiplier (ITP/update) : 1
5 Average (updates) : 1
6 Stop Threshold (cnt/updt) : 0
7 Simulate : Enable : OFF
8 Rate (cnt/updt) : 0
9 Ethernet Master RIPE Id : 1
10 Ethernet Master Encoder : 1
[ TYPE ] ENCODER
Draw B-83474EN/02-01
No.
01 2014.07.18 Sugio Initial Release
Ed. Date Design Description Sheet 12/47
Date 2014.07.18 Desig. Sugio Check Apprv.
5.10 SERVO CONVEYOR LINE TRACKING FUNCTION
5.10.1 Overview
Servo Conveyor Line Tracking function is the function for using an extended axis as a conveyor. Therefore, the
robot can track the conveyor with high accuracy.
This function requires Line Tracking option and Servo Conveyor Line Tracking option. In addition, Independent
Auxiliary Axis option is necessary to control extended axis.
Servo Conveyor Line Tracking option includes Multi Motion Group option and Continuous Turn option. These
are used for keeping on moving an extended axis as a conveyor.
NOTE
From 7DC3 and later, “Continuous” has been added to Servo Conveyor type. It is
possible to use it for moving a conveyor at constant speed.
If you would like to move and stop a conveyor every constant distance again and
again, please select “Index”.
5.10.2 Setup
Please set up Servo Conveyor Line Tracking system by the following step.
5.10.2.1 Independent Extended Axis Setup
5.10.2.2 Servo Conveyor Setup
5.10.2.3 TP Program for Servo Conveyor
5.10.2.4 Tracking Schedule Setup
5.10.2.5 Example of TP Program
Draw B-83474EN/02-01
No.
01 2014.07.18 Sugio Initial Release
Ed. Date Design Description Sheet 13/47
Date 2014.07.18 Desig. Sugio Check Apprv.
------- CONFIGURATION MENU -------
1. Hot start
2. Cold start
3. Controlled Start
4. Maintenance
Select >3
2. Select “3. Controlled Start” and press the ENTER key. After a while a Control Start Menu appears.
ROBOT MAINTENANCE
1/10
Setup Robot System Variables
Draw B-83474EN/02-01
No.
01 2014.07.18 Sugio Initial Release
Ed. Date Design Description Sheet 14/47
Date 2014.07.18 Desig. Sugio Check Apprv.
3. “Independent Axes Setup Menu” appears. If you add axis, please select “2: Add Axis”. Press “2” key and
the ENTER key and then “MOTOR SELECTION” appears. When axis setup is finished, you return to
“Independent Axes Setup Menu”. If you finish the axis setup, please select “4 EXIT”.
NOTE
Please refer to the mechanical specification for the following procedure.
4. Select a servo motor which is used as Independent Axis. Select “1 Standard Method” and then select
MOTOR SIZE and MOTOR TYPE.
-- MOTOR SELECTION
1: Standard Method
2: Enhanced Method
3: Direct Entry Method
Select ==> 1
For example, if you would like to select βiS2/4000i, please select 85 and 11.
5. Select a current limit for amplifier. If current limit for amplifier is 20A, please select 10.
2. 4A 10. 20A
5. 40A 12. 160A
80A
Select==> 10
Draw B-83474EN/02-01
No.
01 2014.07.18 Sugio Initial Release
Ed. Date Design Description Sheet 15/47
Date 2014.07.18 Desig. Sugio Check Apprv.
-- INDEPENDENT AXES TYPE –
1. Linear Axis
2. Rotary Axis
Select? 2
-- GEAR RATIO --
Enter Gear Ratio?
(a) In the case of setting a servo conveyor on 7DC1, 7DC2 and 7DD0 or in the case of setting a servo
conveyer as “Index” on 7DC3 and later
Enter the number of revolution of the motor which corresponds to one pitch of the conveyor. By this
setting, a conveyor moves one pitch when Independent Axis moves 360 degrees.
Pitch: The distance of conveyor when move conveyor to one bucket of conveyor
Bucket: A part of a conveyor is divided by a constant distance.
1Pitch
Conveyer
Bucket
If a conveyor rotates “N” times and the motor of it rotates “M” times, the gear ratio can be calculated
by the following. Please enter the calculated value.
M
GearRatio =
N × Number of Buckets
- It is also possible to calculate the gear ratio from the set value (Motor Gear teeth and so on) of
Servo Conveyor Setup. In this case, the gear ratio can be calculated by the following.
(b) In the case of setting a servo conveyor as “Continuous” on 7DC3 and later
Draw B-83474EN/02-01
No.
01 2014.07.18 Sugio Initial Release
Ed. Date Design Description Sheet 16/47
Date 2014.07.18 Desig. Sugio Check Apprv.
Enter the number of revolution of the motor which corresponds to a belt length of section of the
conveyor. By this setting, a conveyor moves the belt length of section when Independent Axis moves
360 degrees.
If a conveyor rotates “N” times and the motor of it rotates “M” times, the gear ratio can be calculated
by the following. Please enter the calculated value.
- It is also possible to calculate the gear ratio from the set value (Motor Gear teeth and so on) of
Servo Conveyor Setup. In this case, the gear ratio can be calculated by the following.
8. Select “2:NO Change” for setting a suggested speed as a max joint speed.
-- MOTOR DIRECTION
INDEPENDENT AXES 1 Motion Sign = TRUE
Enter (1:TRUE, 2:FALSE)?
If you look at a motor from the front of the flange, a counter clockwise rotation is plus direction of a motor.
Positive
rotation
shaft
10. Enter the limit of the axis. Please enter 180[deg] as an upper limit and –180[deg] as a lower limit.
Draw B-83474EN/02-01
No.
01 2014.07.18 Sugio Initial Release
Ed. Date Design Description Sheet 17/47
Date 2014.07.18 Desig. Sugio Check Apprv.
-- UPPER LIMIT --
Enter Upper Limit ( deg)? 180
--LOWER LIMIIT--
Enter Lower Limit ( deg)? -180
11. Enter the mastering position of the axis. Please enter the position where it is possible to carry out mastering
within the motion range. Normally, the position is “0”.
--MASTER POSITION –
Enter Master Position (deg)?
-- ACC/DEC TIME--
Default Value of acc_time1 = 384(ms)
Enter (1:Change, 2:No Change)?
If you would like to change the value, choose “1:Change” and enter the new value. If you don’t change the
value, choose “2:No Change”.
Next, enter the 2nd ACC/DEC time (acc_time2). Default value of acc_time2” is the default value. Please
set half the value of acc_time1.
If you would like to change the value, choose “1:Change” and enter the new value. If you don’t need to
change the value, choose “2:No Change”.
13. Enter Minimum Accel Time. When doing motion, if the calculated acceleration/deceleration time is
smaller than the specified time, the acceleration/deceleration time will be clamped to the specified time.
-- MIN_ACCEL TIME --
Default Value of min_acctime = 384(ms)
Enter (1:Change, 2:No Change)?
Draw B-83474EN/02-01
No.
01 2014.07.18 Sugio Initial Release
Ed. Date Design Description Sheet 18/47
Date 2014.07.18 Desig. Sugio Check Apprv.
min_acctime should be the sum of acc_time1 and acc_time2. Please choose “1:Change” and enter it.
14. Enter Load Ratio. This value is the ratio of all load inertia to the rotor inertia. The valid range of Load Ratio
is from 1.0 to 5.0. If you don’t set this value, enter “0”.
-- LOAD RATIO --
Load Inertia + Motor Inertia
Load Ratio =
Motor Inertia
Select?
--BRAKE SETTING --
Enter Brake Number (0~16)?
18. Select the type of brake control (Servo Timeout). The brake control function put on a brake automatically
when an axis does not move for a given length of time.
--SERVO TIMEOUT --
Servo off is Disable
Enter (1:Enable, 2:Disable)?
If you choose “1:Enable”, then enter the delay time of brake control (Servo Off Time). The valid range of
Servo Off Time is from 0 to 30(sec).
Draw B-83474EN/02-01
No.
01 2014.07.18 Sugio Initial Release
Ed. Date Design Description Sheet 19/47
Date 2014.07.18 Desig. Sugio Check Apprv.
-- SERVO TIMEOUT VALUE --
Enter Servo Off Time? (0.0~30.0)
19. After the above setting, “Independent Axes Setup Menu” appears. Please select “4 EXIT” and finish the
axis setup.
20. After axis setup is finished, press the FCTN key to display the function menu. Select “1 START (COLD)”
and press the ENTER key and then Cold Start is executed.
ROBOT MAINTENANCE
1/10
Setup Robot SystemFUNCTION
Variables
1 START(COLD)
2 RESTORE/BACKUP
Group Robot Library/Option Ext Axes
3 PRINT SCREEN
1 M-3iA/6S 4 UNSIM 0 ALL I/O
2 Independent Axes 0
NOTE
On 7DC1, 7DC2 and 7DD0, Servo conveyor line tracking function uses flags from
131 to 138. You must not use these flags. A flag is an internal I/O port that can be
read and set.
On 7DC3 and later, it is possible to specify a flag to use on Servo Conveyor Setup
display.
Draw B-83474EN/02-01
No.
01 2014.07.18 Sugio Initial Release
Ed. Date Design Description Sheet 20/47
Date 2014.07.18 Desig. Sugio Check Apprv.
SETUP Indexers
2/7
Indexer Number: 1
1 Encoder Number: 1
2 Indexer type FANUC
3 Index Advance Trigger DI: 1
4 Delay move after trig(ms): 0
5 Indexer Ready DO: 2
6 Tracking Schedule: 1
7 Create Index program: Detail
Encoder Scale (cnt/mm): 524288
5. Move the cursor to “Encoder Number” and enter the number of the encoder that is used as servo conveyor.
6. Move the cursor to “Indexer Type” and select “FANUC”.
7. Move the cursor to “Index Advance Trigger DI” and enter the index of DI is used for moving the servo
conveyor.
8. Move the cursor to “Delay move after trig (ms)” and enter the value of delay time until the servo conveyor
starts after trigger.
9. Move the cursor to “Indexer Ready DO”. If you would like to output DO at start of TP program for the
servo conveyor, enter the index of DO. Please refer to TP program for Servo Conveyor (INDXG*.TP).
10. Move the cursor to “Tracking Schedule” and enter the value of the tracking schedule that is used for servo
conveyor.
11. Move the cursor to “Indexer Type” and press “F2: DETAIL” key or Enter Key. You will see a screen as
following. Because there is no [TYPE] in this menu, you can not select any other setup menu. To return
back to previous menu with [TYPE] press PREV key.
EXEC
12. Move the cursor to “Robot Group” and enter the group number of the extended axis for the servo conveyor
and then move the cursor to “Axis” and enter the axis number.
13. Move the cursor to “Motor Gear teeth”, “Rotor input Gear teeth”, “Rotor output Gear teeth” and
“Conveyor belt teeth” and enter each value in the positive integer. Move the cursor to “Number of Flight”
and enter the number of bucket on the servo conveyor. The following figure shows the relationship
between these values. The gear ratio of the servo conveyor is calculated from these value.
Draw B-83474EN/02-01
No.
01 2014.07.18 Sugio Initial Release
Ed. Date Design Description Sheet 21/47
Date 2014.07.18 Desig. Sugio Check Apprv.
Index Distance
Number of Flight
- It is also possible to set up from the relation between the number of revolution of motor and the
number of revolution of the conveyor. If a conveyor rotates “N” times and a motor of it rotates “M”
times, please setup as following. “M” and “N” must be an integer.
a. Enter the value of “N” to “Motor Gear teeth”
b. Enter the value of “M” to “Rotor input Gear teeth”
c. Enter “1” to “Rotor output Gear teeth” and “Conveyor belt teeth”
14. Move the cursor to “Index Distance” and the distance a one pitch on the servo conveyor.
15. After the above setup, press “F2: EXEC” and be sure to Power off/on.
NOTE
By the above setting, Continuous Rotation setup of the conveyor and Encoder
setup of the specified encoder are also done.
FANUC Conveyor:
1/4
FANUC Conveyor: 1
1 Encoder Number: 1
2 Conveyor Type: Index
3 Tracking Schedule: 1
Encoder Scale (cnt/mm): 524288
4 program and speed control: Detail
[ TYPE ] CNVY
5. Move the cursor to “Encoder Number” and enter the number of the encoder that is used as servo conveyor.
Draw B-83474EN/02-01
No.
01 2014.07.18 Sugio Initial Release
Ed. Date Design Description Sheet 22/47
Date 2014.07.18 Desig. Sugio Check Apprv.
6. Move the cursor to “Conveyor Type” and select “Index” or “Continuous”.
Index: If you would like to move and stop a conveyor every constant distance again and again,
please select “Index”.
Continuous: If you would like to move a conveyor continuously at constant speed, please select
“Continuous”.
FANUC Conveyor:
2/4
FANUC Conveyor: 1
1
1 Encoder Number: 1
1 2 Index
Conveyor Type: Index
2 Continuous
3 Tracking Schedule: 1
3 Encoder Scale (cnt/mm): 524288
4 4 program and speed control: Detail
5
7. Move the cursor to “Tracking Schedule” and enter the value of the tracking schedule that is used for servo
conveyor.
8. Move the cursor to “Conveyor Type” and press “F2: DETAIL” key or Enter Key. You will see a screen for
setting up axis. The screen for setting up axis is different to conveyor type.
EXEC
10. Move the cursor to “Robot Group” and enter the group number of the extended axis for the servo conveyor
and then move the cursor to “Axis” and enter the axis number.
11. Move the cursor to “Motor Gear teeth”, “Rotor input Gear teeth”, “Rotor output Gear teeth” and
“Conveyor belt teeth” and enter each value in the positive integer. Move the cursor to “Number of Flight”
and enter the number of bucket on the servo conveyor. The following figure shows the relationship
between these values. The gear ratio of the servo conveyor is calculated from these value.
Draw B-83474EN/02-01
No.
01 2014.07.18 Sugio Initial Release
Ed. Date Design Description Sheet 23/47
Date 2014.07.18 Desig. Sugio Check Apprv.
Index Distance
Number of Flight
- It is also possible to set up from the relation between the number of revolution of motor and the
number of revolution of the conveyor. If a conveyor rotates “N” times and a motor of it rotates “M”
times, please setup as following. “M” and “N” must be an integer.
a. Enter the value of “N” to “Motor Gear teeth”
b. Enter the value of “M” to “Rotor input Gear teeth”
c. Enter “1” to “Rotor output Gear teeth” and “Conveyor belt teeth”
12. Move the cursor to “Index Distance” and the distance a one pitch on the servo conveyor.
13. Move the cursor to “Index Advance Trigger DI” and enter the index of DI is used for moving the servo
conveyor.
14. Move the cursor to “Delay move after trig (ms)” and enter the value of delay time until the servo conveyor
starts after trigger.
15. Move the cursor to “Indexer Ready DO”. If you would like to output DO at start of TP program for the
servo conveyor, enter the index of DO. Please refer to TP program for Servo Conveyor (INDXG*.TP).
16. Move the cursor to “Flag for internal use” and enter the index of Flag is used for the servo conveyor. Please
confirm that the specified Flag is not used for another use.
17. Move the cursor to “Flag 2 for internal use” and enter the index of Flag is used for the servo conveyor.
Please confirm that the specified Flag is not used for another use.
18. After the above setup, press “F2: EXEC” and be sure to Power off/on.
NOTE
By the above setting, Continuous Rotation setup of the conveyor and Encoder
setup of the specified encoder are also done.
Draw B-83474EN/02-01
No.
01 2014.07.18 Sugio Initial Release
Ed. Date Design Description Sheet 24/47
Date 2014.07.18 Desig. Sugio Check Apprv.
SETUP Conveyor axis
1/8
Conveyor 1: motor DONE
Encoder Number: 1
1 Robot Group: 2
Axis: 1
2 Motor Gear teeth 1
3 Rotor input Gear teeth l
4 Rotor output Gear teeth 1
5 Belt Section teeth 1
6 Belt Section length (mm) 10.000
7 Conveyor ON DI: 1
8 Flag for internal use: 133
EXEC
10. Move the cursor to “Robot Group” and enter the group number of the extended axis for the servo conveyor
and then move the cursor to “Axis” and enter the axis number.
11. Move the cursor to “Motor Gear teeth”, “Rotor input Gear teeth”, “Rotor output Gear teeth” and “Belt
Section teeth” and enter each value in the positive integer. Move the cursor to “Belt Section length (mm)”
and enter the belt length corresponding to “Belt section teeth”.
The following figure shows the relationship between these values. The gear ratio of the servo conveyor is
calculated from these values.
- It is also possible to set up from the relation between the number of revolution of motor and the
number of revolution of the conveyor. If a conveyor rotates “N” times and a motor of it rotates “M”
times, please setup as following. “M” and “N” must be an integer.
a. Enter the value of “N” to “Motor Gear teeth”.
b. Enter the value of “M” to “Rotor input Gear teeth”.
c. Enter the number of teeth of the conveyor belt to “Rotor output Gear teeth”.
d. Enter the number of teeth corresponding to “Belt section length” and “Belt section teeth”.
12. Move the cursor to “Conveyor ON DI” and enter the index of DI is used for moving the servo conveyor.
13. Move the cursor to “Flag for internal use” and enter the index of Flag is used for the servo conveyor. Please
confirm that the specified Flag is not used for another use.
14. After the above setup, press “F2: EXEC” and be sure to Power off/on.
Draw B-83474EN/02-01
No.
01 2014.07.18 Sugio Initial Release
Ed. Date Design Description Sheet 25/47
Date 2014.07.18 Desig. Sugio Check Apprv.
NOTE
By the above setting, Continuous Rotation setup of the conveyor and Encoder
setup of the specified encoder are also done.
Procedure: How to create TP program for Servo Conveyor (7DC1, 7DC2 and 7DD0)
Step
NOTE
Before generating indexer program, please set max payload which is used in an
indexer tracking motion on MOTION/PAYLOAD SET display.
1. Move the cursor to “Create Index program” in “SETUP Indexers” and press “F2: DETAIL” key or ENTER
key.
SETUP Indexers
7/7
Indexer Number: 1
1 Encoder Number: 1
2 Indexer type FANUC
3 Index Advance Trigger DI: 1
4 Delay move after trig(ms): 0
5 Indexer Ready DO: 2
6 Tracking Schedule: 1
7 Create Index program: Detail
Encoder Scale (cnt/mm): 524288
You will see a screen as following. Because there is no [TYPE] in this menu, you can not select any other
setup menu. To return back to previous menu with [TYPE] press PREV key.
2. Move the cursor to “Index Speed (part/min)” and enter the value of Index Speed of the servo conveyor.
Please set the number of pitches per minute.
3. Move the cursor to “Index Dwell” and enter the value of the time to stop the servo conveyor. The speed
pattern of the servo conveyor is different according to the value. Please refer to following figures.
Draw B-83474EN/02-01
No.
01 2014.07.18 Sugio Initial Release
Ed. Date Design Description Sheet 26/47
Date 2014.07.18 Desig. Sugio Check Apprv.
If you would like to use a conveyor as Index Conveyor, it is necessary to “0” and over as Index Dwell. If
you would like to move a conveyor at constant speed, it is necessary to set “-1” as Index Dwell.
Movement Time of Conveyor per Pitch is calculated from Index Speed.
- Index Dwell is ”0” and over:
Movement Time of Conveyor per Pitch [ms] = (60*1000/Index Speed) – Index Dwell
Index Advance
Trigger DI
Time
Velocity
Index Dwell
Time
Movement Time of Conveyer per Pitch
Index Advance
Trigger DI
Time
Velocity
Time
Movement Time of Conveyer per Pitch
4. Move the cursor to “Indexer Resister start” and enter the start index of Register is used in TP program for
the servo conveyor. Two registers are used in TP program.
For example, R[60] and R[61] are used when “Indexer Resister start” is “60”. R[60] is used for setting the
number of DO. The specified DO by R[60] is used for checking whether the conveyor finishes moving to
initial position. R[61] is used for counting the number of pitches of the conveyor. Please refer to example of
INDXG*.TP.
5. After the above setting move the cursor to “Generate Index program” and press “F2: Create” key. If there is
no problem in the setting, “Done” is displayed and INDXG*.TP (* is group number of the servo conveyor)
is created.
Draw B-83474EN/02-01
No.
01 2014.07.18 Sugio Initial Release
Ed. Date Design Description Sheet 27/47
Date 2014.07.18 Desig. Sugio Check Apprv.
NOTE
- Do not change INDXG*.TP directly because it is default program in the system. Please rename
INDXG*.TP and use it.
- “Part Rate exceeds allowable value” might be displayed by the setting. This message shows that the
calculated conveyor acceleration from the setting for TP exceeds allowable acceleration of the servo
conveyor or robot. In this case, INDX*.TP is not created. Please adjust the setting (Index Speed, Index
Dwell) so that the acceleration decreases.
- If there is INDXG*.TP and you press “F2: Create” key, “Index Program already exist” is displayed. In this
case, INDXG*.TP is not created. If you would like to create TP program, please press “SHIFT” key and
“F3: Replace” key. If there is no problem in the setting, existing INDXG*.TP is overwritten by the created
TP program from current setting.
- If you press only “F3 Replace” key, “Hold Shift & Replace to replace program” is displayed. In this
case, INDXG*.TP is not overwritten.
- If INDXG*.TP is currently open in editor, the system will not be able to update the program. In this
case the error message will displayed and “done” will not be displayed.
- “Part Rate exceed allowable value” might be displayed by the setting when you press “SHIFT” key
and “F3: Replace” key. Please adjust the setting so that the acceleration decreases.
Sample Program
The following is an example of INDXG*.TP.
Example of INDXG*.TP
1: J P[1] 50% CNT0 ; Movement to P[1] as an initial position.
2: IF R[60:G2 Ready DO]=0,JMP LBL[3] ;
3: DO[R[60]]=ON ; Specified DO by R[60] become on
4: LBL[3] ;
5: R[61:G2 cur slot ID]=0 ; Reset R[61]
6: LBL[1] ;
7: $INDEXER[1].$INDEX_MV=1 ; Setting for waiting for DI trigger
8: J P[2] 180msec CNT100 INC ACC66 ; One pitch movement
9: $INDEXER[1].$INDEX_MV=0 ; Setting for waiting for DI trigger
10: R[61:G2 cur slot ID]=R[61:G2 cur slot ID]+1; Count the number of pitches
11: IF R[61:G2 cur slot ID]=32,JMP LBL[2] ; If conveyor is turned once, Jump to LBL[2].
12: JMP LBL[1] ;
13: LBL[2] ;
14: J P[1] 100% CNT100 ; Movement to P[1] to correct iteration error
15: R[61:G2 cur slot ID]=0 ; Reset R[61]
16: JMP LBL[1] ;
/POS
P[1:""]{
GP2:
UF : 0, UT : 1,
J1= 0.000 deg
};
P[2:""]{
GP2:
UF : 0, UT : 1,
J1= 360.000 deg
};
Draw B-83474EN/02-01
No.
01 2014.07.18 Sugio Initial Release
Ed. Date Design Description Sheet 28/47
Date 2014.07.18 Desig. Sugio Check Apprv.
- DO is output to check whether the conveyor finishes moving to the initial position by instructions
from line 2 to line 4.
- At line 8, the conveyor moves 1 pitch. In other words, the extended axis that is used as the conveyor
moves 360 degrees.
- ”$INDEXER[*].$INDEX_MV=1” at line 7 and “$INDEXER[*].$INDEX_MV=0” at line 9 are
setting for watching input of Index Advance Trigger DI (* is number of Servo Conveyor). Motion
instruction at line 8 is not executed until the DI changes from OFF to ON.
- IF instruction at line11 checks whether the conveyor makes one revolution. In this example case, the
conveyor makes one revolution per 32 pitches.
- At line 14, the conveyor moves to P[1] to correct iteration error. Every time the conveyor makes one
revolution this line is executed.
- R[60] and R[61] are set by specifying “Indexer Register start”. R[60] is used for setting the number of
DO. The specified DO by R[60] is used for checking whether the conveyor finishes moving to initial
position. R[61] is used for counting the number of pitches of the conveyor.
Procedure: How to create TP program for “Index” Conveyor (7DC3 and later)
Step
NOTE
Before generating indexer program, please set max payload which is used in an
indexer tracking motion on MOTION/PAYLOAD SET display.
1. Move the cursor to “Create Index program” in “SETUP Indexers” and press “F2: DETAIL” key or ENTER
key.
FANUC Conveyor:
4/4
FANUC Conveyor: 1
1 Encoder Number: 1
2 Conveyor Type: Index
3 Tracking Schedule: 1
Encoder Scale (cnt/mm): 524288
4 program and speed control: Detail
You will see a screen as following. Because there is no [TYPE] in this menu, you can not select any other
setup menu. To return back to previous menu with [TYPE] press PREV key.
2. Move the cursor to “Index Speed (part/min)” and enter the value of Index Speed of the servo conveyor.
Please set the number of pitches per minute.
Draw B-83474EN/02-01
No.
01 2014.07.18 Sugio Initial Release
Ed. Date Design Description Sheet 29/47
Date 2014.07.18 Desig. Sugio Check Apprv.
3. Move the cursor to “Index Dwell” and enter the value of the time to stop the servo conveyor. The speed
pattern of the servo conveyor is different according to the value. Please refer to following figures.
If you would like to use a conveyor as Index Conveyor, it is necessary to “0” and over as Index Dwell. If
you would like to move a conveyor at constant speed, it is necessary to set “-1” as Index Dwell.
Movement Time of Conveyor per Pitch is calculated from Index Speed.
- Index Dwell is ”0” and over:
Movement Time of Conveyor per Pitch [ms] = (60*1000/Index Speed) – Index Dwell
Index Advance
Trigger DI
Time
Velocity
Index Dwell
Time
Movement Time of Conveyer per Pitch
Index Advance
Trigger DI
Time
Velocity
Time
Movement Time of Conveyer per Pitch
4. Move the cursor to “Indexer Register start” and enter the start index of Register is used in TP program for
the servo conveyor. Two registers are used in TP program.
For example, R[60] and R[61] are used when “Indexer Resister start” is “60”. R[60] is used for setting the
number of DO. The specified DO by R[60] is used for checking whether the conveyor finishes moving to
initial position. R[61] is used for counting the number of pitches of the conveyor. Please refer to example of
INDXG*.TP.
Draw B-83474EN/02-01
No.
01 2014.07.18 Sugio Initial Release
Ed. Date Design Description Sheet 30/47
Date 2014.07.18 Desig. Sugio Check Apprv.
5. After the above setting move the cursor to “Generate Index program” and press “F2: Create” key. If there is
no problem in the setting, “Done” is displayed and INDXG*.TP (* is group number of the servo conveyor)
is created.
NOTE
- Do not change INDXG*.TP directly because it is default program in the system. Please rename
INDXG*.TP and use it.
- “Part Rate exceeds allowable value” might be displayed by the setting. This message shows that the
calculated conveyor acceleration from the setting for TP exceeds allowable acceleration of the servo
conveyor or robot. In this case, INDX*.TP is not created. Please adjust the setting (Index Speed, Index
Dwell) so that the acceleration decreases.
- If there is INDXG*.TP and you would like to change TP program, please press “SHIFT” key and “F3:
Replace” key. If there is no problem in the setting, existing INDXG*.TP is overwritten by the created TP
program from current setting.
- If you press only “F3 Replace” key, “Hold Shift & Replace to replace program” is displayed. In this
case, INDXG*.TP is not overwritten.
- If INDXG*.TP is currently open in editor, the system will not be able to update the program. In this
case the error message will displayed and “done” will not be displayed.
- “Part Rate exceed allowable value” might be displayed by the setting when you press “SHIFT” key
and “F3: Replace” key. Please adjust the setting so that the acceleration decreases.
Sample Program
The following is an example of INDXG*.TP.
Example of INDXG*.TP
1: J P[1] 50% CNT0 ; Movement to P[1] as an initial position.
2: IF R[60:G2 Ready DO]=0,JMP LBL[3] ;
3: DO[R[60]]=ON ; Specified DO by R[60] become on
4: LBL[3] ;
5: R[61:G2 cur slot ID]=0 ; Reset R[61]
6: LBL[1] ;
7: $INDEXER[1].$INDEX_MV=1 ; Setting for waiting for DI trigger
8: J P[2] 180msec CNT100 INC ACC66 ; One pitch movement
9: $INDEXER[1].$INDEX_MV=0 ; Setting for waiting for DI trigger
10: R[61:G2 cur slot ID]=R[61:G2 cur slot ID]+1; Count the number of pitches
11: IF R[61:G2 cur slot ID]=32,JMP LBL[2] ; If conveyor is turned once, Jump to LBL[2].
12: JMP LBL[1] ;
13: LBL[2] ;
14: J P[1] 100% CNT100 ; Movement to P[1] to correct iteration error
15: R[61:G2 cur slot ID]=0 ; Reset R[61]
16: JMP LBL[1] ;
/POS
P[1:""]{
GP2:
UF : 0, UT : 1,
J1= 0.000 deg
};
P[2:""]{
GP2:
UF : 0, UT : 1,
J1= 360.000 deg
Draw B-83474EN/02-01
No.
01 2014.07.18 Sugio Initial Release
Ed. Date Design Description Sheet 31/47
Date 2014.07.18 Desig. Sugio Check Apprv.
};
Procedure: How to create TP program for “Continuous” Conveyor (7DC3 and later)
Step
1. Move the cursor to “Create Index program” in “SETUP Indexers” and press “F2: DETAIL” key or ENTER
key.
FANUC Conveyor:
4/4
FANUC Conveyor: 1
1 Encoder Number: 1
2 Conveyor Type: Continuous
3 Tracking Schedule: 1
Encoder Scale (cnt/mm): 524288
4 program and speed control: Detail
You will see a screen as following. Because there is no [TYPE] in this menu, you can not select any other
setup menu. To return back to previous menu with [TYPE] press PREV key.
2. Move the cursor to “Conveyor Speed (mm/sec)” and enter a value of the servo conveyor speed in the
positive integer.
Draw B-83474EN/02-01
No.
01 2014.07.18 Sugio Initial Release
Ed. Date Design Description Sheet 32/47
Date 2014.07.18 Desig. Sugio Check Apprv.
NOTE
The value of “Conveyor Speed (mm/sec)” is used for moving a servo conveyor with
TP program. If you would like to change the conveyor speed, please change this
value instead of editing TP program.
3. After the above setting move the cursor to “Generate Conveyor program” and press “F2: Create” key. If
there is no problem in the setting, “Done” is displayed and CNVYG*.TP (* is group number of the servo
conveyor) is created.
NOTE
- Do not change CNVYG*.TP directly because it is default program in the system. Please rename
CNVYG*.TP and use it.
- If there is CNVYG*.TP, “F3: Replace” key is displayed instead of “F2: Create” key. If you would like to
create TP program, please press “SHIFT” key and “F3: Replace” key. If there is no problem in the setting,
existing CNVYG*.TP is overwritten by the created TP program from current setting.
- If you press only “F3 Replace” key, “Hold Shift & Replace to replace program” is displayed. In this
case, CNVYG*.TP is not overwritten.
- If INDXG*.TP is currently open in editor, the system will not be able to update the program.
- If you would like to change the servo conveyor speed, please change the value of “Conveyor Speed
(mm/sec)”. It is not necessary to edit TP program for changing a conveyor speed. The specified value
is used for moving a conveyor. The conveyor speed is updated even if TP program is running.
If the specified value is bigger than the conveyor capability, “Speed exceed conveyor capability” is
displayed and the value is not updated.
Sample Program
The following is an example of CNVYG*.TP.
Example of CNVYG*.TP
1: LBL[1] ;
2: $INDEXER[1].$INDEX_MV=1 ; Setting for waiting for DI trigger
3: J P[2] 48msec CNT100 INC ACC100 ; One pitch movement
4: $INDEXER[1].$INDEX_MV=0 ; Setting for waiting for DI trigger
5: JMP LBL[1] ;
Draw B-83474EN/02-01
No.
01 2014.07.18 Sugio Initial Release
Ed. Date Design Description Sheet 33/47
Date 2014.07.18 Desig. Sugio Check Apprv.
CNVEYOR.TP for moving a servo conveyor is run at line 3 in the following Sample Program. It is possible to
create TP program for moving a servo conveyor (INDXG*.TP, CNVYG*.TP) by the procedure of “5.10.2.3
How to Create TP Program for Servo Conveyor”.
NOTE
If you enable this function and there is no time the conveyor stops, it is not possible
to start or end a tracking motion.
The flag for switching the setting of this function is bit 1 and bit 2 of $INDX_TRACK[schedule number]. If you
would like to enable this function, please set these flag by the following procedure.
Draw B-83474EN/02-01
No.
01 2014.07.18 Sugio Initial Release
Ed. Date Design Description Sheet 34/47
Date 2014.07.18 Desig. Sugio Check Apprv.
- If bit 1 of $INDX_TRACK[schedule number], Robot starts a tracking motion while a servo conveyor
stops.
- If bit 2 of $INDX_TRACK[schedule number], Robot ends a tracking motion while a servo conveyor
stops.
NOTE
If the setting of this function is changed, please create TP program for the servo
conveyor again.
- SLTKINIT
- SLTKREST
- SLTKPSHQ
- SLTKPOPQ
- SLTKDELQ
- SLTKRSTQ
- SLTKGTPP
Draw B-83474EN/02-01
No.
01 2014.07.18 Sugio Initial Release
Ed. Date Design Description Sheet 35/47
Date 2014.07.18 Desig. Sugio Check Apprv.
This subsection explains these KAREL programs and Discard Line, Stop Conveyor and Distribution Line.
NOTE
If you set “FANUC” as “Indexer type” on 7DC1, 7DC2 and 7DD0 or select “Index”
as “Conveyor Type” on 7DC3, it is possible to use these KAREL programs for
servo conveyor line tracking.
NOTE
It is necessary to set $KAREL_ENB=1 to use KAREL program.
NOTE
Distribution Line function and SLTKGTPP is available from 7DC1/19, 7DD0/12,
7DC2/15.
SLTKINIT
This program clears information about trigger values. Normally, this program is called once when the system is
started.
Argument1: Specify the number of tracking schedule which Servo Conveyor Line Tracking uses.
Argument2: Specify the position register number that is saved an initial position of the conveyor.
Argument3: Specify the position register number.
The specified position register by argument 3 is set to the distance between the current conveyor position and an
initial position of the conveyor. The value within 1 pitch (from 0 to 360 degrees) is set. This is available for
adjusting the conveyor position at the start.
SLTKREST
Because the distance of one pitch of Servo Conveyor is constant, an encoder value can be got as a trigger value
every a constant distance. This program is used for setting a reference value of the trigger. When SLTKREST is
called, the encoder value is saved as a reference value of the trigger. It is necessary to call this program once just
after the servo conveyor moves to an initial position.
Argument1: Specify the number of tracking schedule which Servo Conveyor Line Tracking uses.
In the following case, PR[2] is set to the distance between the current conveyor position and an initial position of
the conveyor by SLTKINIT at line 1. Next, the conveyor moves to an initial position by the motion instruction
and Reference position for trigger is saved by SLTKREST.
Draw B-83474EN/02-01
No.
01 2014.07.18 Sugio Initial Release
Ed. Date Design Description Sheet 36/47
Date 2014.07.18 Desig. Sugio Check Apprv.
Moving Direction of Conveyor
SLTKINIT: Init. Information about Trigger value.
and Set Position Register.
Conveyor
Conveyor moves to Initial Pos.
Moving distance is within one pitch.
SLTKPSHQ
This is used for saving trigger value after the conveyor moves the number of pitch.
Argument1: Specify a number of tracking schedule which Servo Conveyor Line Tracking uses.
Argument2: Specify a number of pitch
If you would like to change the save-able number of trigger values, please change the value of the following
system variable and power off/on.
$SLTKSCH[n].$QUE_SIZE: Default value is 20 and max value is 100.
“n” is the number of tracking schedule which Servo Conveyor Line Tracking uses.
NOTE
When the saved number of trigger values become the specified value by
$SLTKSCH[n].$QUE_SIZE, the oldest saved trigger value is removed.
It is necessary call this program after the conveyor moves the specified number of pitch. When this program is
called, a trigger value is calculated from the reference trigger value and the specified number of pitch and it is
saved. At the first, the reference trigger value is saved as a trigger value.
For example, if the conveyor moves 1 pitch and the trigger value is saved once, Argument2 should be set “1”. If
the conveyor moves 2 pitches and the trigger value is saved once, Argument2 should be set “2”. The following
shows the case that trigger values are saved during the conveyor moves four pitches.
Draw B-83474EN/02-01
No.
01 2014.07.18 Sugio Initial Release
Ed. Date Design Description Sheet 37/47
Date 2014.07.18 Desig. Sugio Check Apprv.
Moving Direction of Conveyor
SLTKPSHQ(1,1): Save trigger value every one pitch.
1 pitch
1 2 3 4
Four trigger values are saved
Conveyor
Reference Pos. for Trigger
Conveyor
Reference Pos. for Trigger
SLTKPOPQ
This program is used for getting the saved trigger value. When this program is called, it is possible to get the
oldest saved trigger value. If you succeed in getting the trigger value, the trigger value is removed and it is
impossible to get it again.
Argument1: Specify a number of tracking schedule which Servo Conveyor Line Tracking uses.
Argument2: Specify a register number for getting a trigger value.
Argument3: Specify a register number for getting a status. If SLTKPOPQ fails to get a trigger value the
value of status become nonzero.
The following shows the case that there are four saved trigger values.
Moving Direction of Conveyor
SLTKPOPQ(1,1,2): Get the oldest trigger value “4”.
1 2 3 4 “4” is the oldest.
Conveyor
Reference Pos. for Trigger
SLTKDELQ
This program is used for deleting the specified the saved trigger value. It is not possible to get the deleted trigger
value by SLTKPOPQ.
Argument1: Specify a number of tracking schedule which Servo Conveyor Line Tracking uses.
Argument2: Specify a number of trigger to delete.
Draw B-83474EN/02-01
No.
01 2014.07.18 Sugio Initial Release
Ed. Date Design Description Sheet 38/47
Date 2014.07.18 Desig. Sugio Check Apprv.
For example, if argument2 is “2”, SLTKDELQ deletes the second trigger value “2” from the newest trigger
value.
1 2 3 4
Conveyor
SLTKDELQ(1,2)
Delete the specified trigger value
Fig. 5.10.3.3(d) SLTKDELQ
SLTKRSTQ
This program turns off the specified DO for Stop Conveyor. Please refer to STOP CONVEYOR below.
Argument1: Specify a number of tracking schedule which Servo Conveyor Line Tracking uses.
SLTKGTPP
This program is used for calculating a distance along X axis of tracking frame from the origin of tracking frame
to the corresponding position to the oldest available trigger value.
Argument1: Specify a number of tracking schedule which Servo Conveyor Line Tracking uses.
Argument2: Specify a register number for getting a distance from the origin of tracking frame.
Argument3: Specify a register number for getting a status. If SLTKGTPP succeeds, the value of the status
becomes “0”. If SLTKGTPP fails to calculate a distance, the value of the status becomes
nonzero and the value of the register specified by argument 2 is not updated.
The following shows the case that there are four saved trigger values.
For example, if the oldest available trigger value is “4”, the corresponding distance to the trigger value “4” is
calculated.
Tracking Frame 1 2 3 4
Conveyor
$SENS_X
Reference Pos. for Trigger
If “4” is deleted by SLTKDELQ, “3” becomes the oldest available trigger value. Therefore, the corresponding
distance to the trigger value “3” is calculated by SLTKGTPP.
Draw B-83474EN/02-01
No.
01 2014.07.18 Sugio Initial Release
Ed. Date Design Description Sheet 39/47
Date 2014.07.18 Desig. Sugio Check Apprv.
Moving Direction of Conveyor
The position along X axis of tracking frame
Tracking Frame 1 2 3 4
Conveyor
$SENS_X
Reference Pos. for Trigger
If Discard Line is set and “4” passes the discard line, it is not possible to get the trigger value “4”. In this case, the
corresponding distance to the trigger value “3” is calculated by SLTKGTPP.
Tracking Frame 1 2 3 4
Conveyor
$SENS_X Discard Line
Reference Pos. for Trigger
If Stop Conveyor is set and “4” passes the discard line, DO is out put in order to call upon to stop the conveyor.
Even if “4” passes the discard line in Stop Conveyor case, it is possible to get the trigger value “4”. The
corresponding distance to the trigger value “4” is calculated by SLTKGTPP.
Tracking Frame 1 2 3 4
Conveyor
$SENS_X
Discard Line
Reference Pos. for Trigger
Draw B-83474EN/02-01
No.
01 2014.07.18 Sugio Initial Release
Ed. Date Design Description Sheet 40/47
Date 2014.07.18 Desig. Sugio Check Apprv.
DISCARD LINE
If a corresponding position to the trigger value passes the discard line, it is possible to discard the trigger value.
It is necessary to set Discard Line on the basis of downstream boundary of the tracking area.
If $DISCARD_BND is negative, Discard Line is set up Down-stream boundary. Normally, you should set
$DISCARD_BND to the negative value. If a corresponding position to the trigger value passes the discard line,
it is not possible to get the trigger value by SLTKPOPQ. The oldest saved trigger value is used for checking
whether this function discard the trigger value.
In the following case, because the corresponding position to the trigger value “4” passes the discard line, “4” is
discarded. After that, the corresponding position to the trigger value “3” is checked whether this function
discard the trigger value.
STOP CONVEYOR
If a corresponding position to the trigger value passes Discard Line, the specified DO become ON. While the
Specified DO is ON, you should not set “Index Advance Trigger DI” to ON in order to stop the conveyor.
It is necessary to set Discard Line so that the desired tracking motion can be done at the conveyor stop position.
When Stop Conveyor function is enabled and the corresponding position to the trigger value passes Discard
Line, the trigger value is kept. While the Specified DO is ON, it is possible to get the trigger value by
Draw B-83474EN/02-01
No.
01 2014.07.18 Sugio Initial Release
Ed. Date Design Description Sheet 41/47
Date 2014.07.18 Desig. Sugio Check Apprv.
SLTKPOPQ. If you would like to change the specified DO from ON to OFF, it is necessary to use SLTKRSTQ.
The next trigger value is used for checking the Stop Conveyor after SLTKRSTQ is executed.
In the following case, because the corresponding position to the trigger value “4” passes the discard line, the
specified DO becomes ON. According the DO, it is necessary to stop the conveyor. The trigger value “4” can be
got by SLTKPOPQ. After a tracking motion is done at the corresponding position to the trigger value “4”, the
DO becomes OFF by executing SLTKRSTQ. According the DO, it is necessary to resume the conveyor. When
SLTKRSTQ is executed, the corresponding position to the trigger value “3” will be checked whether this
function discard the trigger value.
Tracking Frame
1 2 3 4
NOTE
It is impossible to use both Discard Line and Stop Conveyor on the same Servo
Conveyor.
DISTRIBUTION LINE
Until a corresponding position to a trigger value passes the distribution line, it is not possible to get the trigger
value with SLTKPOPQ. It is necessary to set the distribution line on the basis of upstream boundary of the
tracking area.
If $ALLOC_BND is negative, the distribution line is set up upstream boundary. Usually, you should set
$ALLOC_BND to the negative value. Until a corresponding position to a trigger value passes the distribution
line, it is not possible to get the trigger value with SLTKPOPQ.
In the following case, because the corresponding position to the trigger value “4” passes the distribution line,
you can get the trigger value “4” with SLTKPOPQ.
Draw B-83474EN/02-01
No.
01 2014.07.18 Sugio Initial Release
Ed. Date Design Description Sheet 42/47
Date 2014.07.18 Desig. Sugio Check Apprv.
Moving Direction of Conveyor Corresponding Position. to “4”
Tracking Frame 1 2 3 4
$SENS_X $ALLOC_BND<0
Reference Pos. for Trigger Distribution Line
Sample Program
The following are sample programs (Main Program and CONVEYOR.TP for moving Servo Conveyor) in case
of using Stop Conveyor.
In Main Program, the information about the trigger value is initialized by SLTKINIT at first. After that, TP
program (CONVEYOR.TP) for moving Servo Conveyor is executed by the other task.
- At line 3, the information about the trigger value is initialized by SLTKINIT and PR[2] is set to the
distance from current position to the position of PR[1].
- At line 4, RUN CONVEYOR.TP in order to execute the program for moving Servo Conveyor by the
other task.
- At line from 5 to 8, a trigger value is got by SLTKPOPQ every 100[msec]. At line 8, whether getting
a trigger value succeed is checked by R[2]. If it is impossible to get a trigger value, jump to LBL[1] at
line 5.
- At line 11, if DO for Stop Conveyor is ON, turn off the DO by SLTKRSTQ.
In TP program for moving Servo Conveyor, a trigger value is got every 2 pitches by SLTKPSHQ. R[3] is used
for counting the number of pitches and SLTKPSHQ is executed according to the value of R[3].
Draw B-83474EN/02-01
No.
01 2014.07.18 Sugio Initial Release
Ed. Date Design Description Sheet 43/47
Date 2014.07.18 Desig. Sugio Check Apprv.
Example of CONVEYOR.TP
1: J PR[2] 50% CNT0 INC ; Movement to the initial position.
2: CALL SLTKREST(1) ; Setting of Reference Pos. for Trigger.
3: IF R[60:G2 Ready DO]=0,JMP LBL[3] ;
4: DO[R[60]]=ON ; Specified DO by R[60] become ON.
5: LBL[3] ;
6: R[61:G2 cur slot ID]=0 ; Reset R[61].
7: R[3]=0 ; R[3] is the counter for SLTKPSHQ.
8: LBL[1] ;
9: $INDEXER[1].$INDEX_MV=1 ; Setting for waiting for DI trigger.
10: J P[2] 180msec CNT100 INC ACC66 ; One pitch movement.
11: $INDEXER[1].$INDEX_MV=0 ; Setting for waiting for DI trigger.
12: R[61:G2 cur slot ID]=R[61:G2 cur slot ID]+1; Count the number of pitches.
13: R[3]=R[3]+1 ; Count the number of pitches.
14: IF R[61:G2 cur slot ID]=32,JMP LBL[2] ;
15: JMP LBL[4] ; Jump to LBL[4] at line 19.
16: LBL[2] ;
17: J PR[1] 100% CNT100 ; Movement to PR[1] to correct iteration error.
18: R[61:G2 cur slot ID]=0 ; Reset R[61]
19: LBL[4] ;
20: IF R[3]<2,JMP LBL[1] ; Check whether conveyor moves 2 pitches.
21: CALL SLTKPSHQ(1,2) ; When conveyor moves 2 pitches, the trigger value
is saved by SLTKPSHQ.
22: R[3]=0 ; Reset R[3].
23: JMP LBL[1] ;
/POS
P[2:""]{
GP2:
UF : 0, UT : 1,
J1= 360.000 deg
};
- Because PR[2] is set to the distance from current position to the position of PR[1], at line 1, the
conveyor moves from the current position to the position of PR[1].
- At line 2, Reference position for Trigger is set by SLTKREST.
- R[3] is the counter for SLTKPSHQ. At line 7, 13, 22, R[3] is initialized, counted and reset.
- At line 17, the conveyor moves to PR[1] to correct iteration error. Every time the conveyor makes one
revolution this line is executed.
- At line 20, the number of pitches is checked. When the conveyor moves 2 pitches, SLTKPSHQ is
executed to save to a trigger value.
- If you would like to change the number of pitches per trigger. Please change “2” at line 20, 21 to the
desired number.
Draw B-83474EN/02-01
No.
01 2014.07.18 Sugio Initial Release
Ed. Date Design Description Sheet 44/47
Date 2014.07.18 Desig. Sugio Check Apprv.
is necessary to execute a normal motion once before next tracking motion starts after a tracking motion of
a different schedule.
- Servo Conveyor Line Tracking function supports HDI and ACCUTRIG instruction.
- It is not possible to use Visual Tracking on Servo conveyor. (It is possible to use Visual Tracking on
traditional encoder conveyor.)
- The tracking robot can not use Continuous Turn function.
- Original Path Resume feature is disabled.
- It is not possible to execute TP program of which a motion mask has the tracking robot group and Servo
conveyor group.
- In a tracking program, Please add the wrist joint motion instruction (Wjnt) to all motion instruction or don’t
add Wjnt to motion instruction. If there are a motion instruction with Wjnt and a motion instruction without
Wjnt, TCP might be deviated from a destination at tracking motion.
- Servo conveyor line tracking function on 7DC1, 7DC2 and 7DD0 uses flags from 131 to 138. You must not
use these flags for another use. (A flag is an internal I/O port that can be read and set.)
It is possible to specify flags on setup display from 7DC3 and later
Draw B-83474EN/02-01
No.
01 2014.07.18 Sugio Initial Release
Ed. Date Design Description Sheet 45/47
Date 2014.07.18 Desig. Sugio Check Apprv.
6 TROUBLE SHOOTING
6.1 VIBRATION OF THE ROBOT DURING TRACKING MOTION
When the robot seems to move too aggressively during tracking, one possible reason is low encoder resolution.
The other possible reason is unstable conveyor speed or short tracking filter length.
Enable the software gear by turning on bit 3 of $LNCFG.$COMP_SW (When original value is
divided by 8, if integer part is even, please add 8 to original value. If integer part is odd, please do not
change the value). Then cycle the power.
Encoder count is multiplied by the value of $ENC_SCALE[encoder number]. The result of
calculation is used for tracking function.
After that because the gear ratio would not be the same any more, you need to re-teach the scale of the
tracking schedule using F2, TEACH on the SETUP Tracking menu. Refer to Section 3.3.2 Scale
Factor Setup for more information. Or re-enter the scale ( cnt/mm or cnt/deg ) in the tracking schedule
that uses the encoder by multiplying the previous value of the teach scale by the value of
$ENC_SCALE[encoder number].
Draw B-83474EN/02-01
No.
01 2014.07.18 Sugio Initial Release
Ed. Date Design Description Sheet 46/47
Date 2014.07.18 Desig. Sugio Check Apprv.
A CONVEYOR LIMITS AND TRACKING
ACCURACY
A.4 RESOLUTION OF THE ENCODER
When the robot seems to move too aggressively during tracking, one possible reason is low encoder resolution.
The other possible reason is short tracking filter length.
• Use a hardware solution: add a gear between the motor and the encoder to boost encoder resolution to a
desirable range. A higher encoder resolution would be 40-50 pulses/update.
• Use software solution: Enable the software gear by turning on bit 3 of $LNCFG.$COMP_SW ( Add value
8 if it was not turned on before). Then cycle the power. After that because the gear ratio would not be the
same any more, you need to re-teach the scale of the tracking schedule using F2, TEACH on the SETUP
Tracking menu. Refer to Section 3 for more information. Or re-enter the scale ( cnt/mm or cnt/deg ) in the
tracking schedule that uses the encoder by multiplying the previous value of the teach scale by the value of
$ENC_SCALE[x] where x is the encoder number in the tracking schedule.
Draw B-83474EN/02-01
No.
01 2014.07.18 Sugio Initial Release
Ed. Date Design Description Sheet 47/47
Date 2014.07.18 Desig. Sugio Check Apprv.
B-83474EN/02 INDEX
INDEX
Limitations .....................................................................96
<A> Limitations on Servo Conveyer Line Tracking ............126
ADVANCED TECHNIQUES........................................74 LINE Tracking .................................................................2
LINE TRACKING SETUP............................................20
<C>
CARTESIAN TRACKING..............................................2 <M>
Caution on create a network...........................................97 MAIN Program Example ...............................................45
CIRCULAR Tracking ......................................................2 Modifying a Program .....................................................59
COLD START ...............................................................28 Modifying a Program in the Background (Background
Connecting a network cable to the robot........................96 Editing).......................................................................63
CONVEYOR ACCELERATION LIMIT ....................129 Modifying Your Line Tracking Program to Use High
CONVEYOR LIMITS AND TRACKING Speed Scanning ..........................................................92
ACCURACY............................................................129 MULTIPLE BOUNDARY POSITIONS EXAMPLE....74
CONVEYOR SPEED LIMIT ......................................129 MULTIPLE CONVEYORS (DUAL LINE
Create a Network ...........................................................96 TRACKING)..............................................................78
<D> <N>
Dual Line Tracking Setup ..............................................78 Nominal Tracking Frame Setup .....................................36
Dynamic error tune variable.........................................117
Dynamic Tune Variable .................................................82 <O>
OVERVIEW ................................ 1,48, 83,90,94,105, 132
<E>
Enabling High Speed Scanning......................................90 <P>
Encoder Number Setup ..................................................25 PLANNING A PROGRAM...........................................48
ENCODER SETUP........................................................20 PLANNING AND CREATING A PROGRAM ............48
Encoder Setup Overview................................................20 Program Examples .........................................................50
ETHERNET ENCODER ...............................................94 Programming a Typical Line Tracking System .............48
Ethernet Encoder Setup................................................102 PULSECODER A860-0301-T001~T004.....................135
Example of main program............................................116
Example Programs .........................................................78 <R>
Explanation of Terms.....................................................95 Requirements ...........................................................3, 135
RESOLUTION OF THE ENCODER ..........................131
<F> Restriction ......................................................................19
FIGURES .....................................................................138 Re-synchronizing the Robot and Conveyor ...................64
FINE TUNING HIGH SPEED ACCURACY................81 RUNNING A TRACKING PROGRAM IN T1 MODE 68
Function for Servo Conveyer Line Tracking................117
<S>
<G> SAFETY PRECAUTIONS ........................................... s-1
GENERAL TRACKING DESCRIPTIONS.....................1 Sample Tracking Uframe Program and Execution.........86
Scale Factor Setup..........................................................42
<H> SCHEMATICS ............................................................132
HARDWARE...................................................................3 SERVO CONVEYER LINE TRACKING FUNCTION105
HARDWARE AND SOFTWARE...................................3 Servo conveyer setup ...................................................111
HIGH SPEED SCANNING ...........................................90 Set Up and Use Predefined Positions in a Program........67
HOW TO CONNECT ..................................................139 Setting IP address...........................................................97
How to create TP program for servo conveyer.............113 Setting of the robot ring .................................................98
Setup ............................................................................105
<I> Setup for TRKUFRAME ...............................................85
Independent extended axis setup..................................105 Setup for VISUFRAME .................................................86
Installation......................................................................15 SINGLE-AXIS (RAIL) TRACKING...............................1
SKIP OUTBOUND MOVE ...........................................93
<K> SOFTWARE ..................................................................19
KAREL program for servo conveyer line tracking ......118 Static Tune Variable ......................................................81
Synchronizing the Robot and Conveyor ........................58
<L>
LIMIT CHECKING .......................................................94
i-1
INDEX B-83474EN/02
<T>
Teaching and Executing the Tracking Uframe Program 88
TRACK Sub Program Example .....................................45
TRACKING ACCURACY ..........................................129
Tracking Frame Terminology ........................................84
TRACKING INSTRUCTIONS......................................69
TRACKING PART QUEUES .......................................75
Tracking schedule setup ...............................................116
TRACKING SETUP ......................................................29
TRACKING USER FRAME .........................................83
<U>
Using One Task..............................................................75
Using TRKUFRAME and VISUFRAME in Rail
Tracking .....................................................................89
Using Two Tasks............................................................76
<V>
Verify Encoder Setup is Correct ....................................27
Verify Sample Program Execution is Correct ................46
Verify Setup .................................................................103
Verify Tracking Setup is Correct ...................................44
VERIFY TRACKING SETUP SAMPLE PROGRAMS45
<W>
Wait indexer stop function ...........................................117
Writing a New Program .................................................53
WRITING AND MODIFYING A PROGRAM .............52
i-2
B-83474EN/02 REVISION RECORD
REVISION RECORD
Edition Date Contents
• Addition of R-30iB Mate.
• Addition of αA1000S Pulsecoder.
02 Oct., 2013 • 3.1.2 Encoder Number Setup has been added.
• Specification has been modified in some functions.
• Some errors in writing have been corrected.
01 Oct., 2012
r-1
B-83474EN/02
* B- 8 3 4 7 4 EN/ 0 2 . 0 1 *