Manual Cobot
Manual Cobot
RB SERIES
USER MANUAL
English
V 3.9.1
Update : 2022/07
RAINBOW ROBOTICS
RB SERIES _ USER MANUAL
INDEX
PREFACE .......................................................................................................................... 7
PREFACE
Before installing this product, please read the user manual thoroughly. Please follow the
instructions in the manual describing the installation steps in detail. The contents of this
manual are based on the version of the manual when it was written, and the information
about the product may have changed without prior notice to the user. If you are unsure about
the requirements, recommendations or safety procedures described in this manual, please
contact Rainbow Robotics. Some illustrations in this manual are intended to help you
understand the concepts and installation of the system and may differ from actual products.
Rainbow Robotics Inc. owns the copyright and intellectual property rights on all
contents and designs of this manual. Therefore, the use, duplication, and re-distribution
of Rainbow Robotics Inc. properties and materials without prior written permission is
strictly prohibited and constitutes an infringement of Rainbow Robotics' intellectual
property rights.
User is solely liable for any misuse or alteration of the patent rights of this equipment.
The information contained in this manual is accurate and reliable.
The information provided in this manual is the property of Rainbow Robotics, Inc. and
may not be duplicated or reproduced in whole or in part without its consent. The
information contained herein is subject to change without notice, and the manual is an
original instruction. For more information on revising the manual, please visit the
website (www.rainbow-robotics.com).
CHAPTER 1. INTRODUCTION
1.1 RAINBOW ROBOTICS’ COLLABORATIVE ROBOTS
The RB product line from Rainbow Robotics is a series of collaborative robots. The RB series
is designed to be easily accessible and usable to anyone, such as laymen or enthusiasts.
The RB series is specialized to perform regular, continuous, and repetitive tasks in small and
dense human environments across various fields without any additional safety devices. The
RB series provide robotic solutions to increase productivity for your business.
Intuitive usability: It is easy to set up and operate an RB robot unit. Experts and non-
experts alike can use it effectively through the intuitive visual User Interface (UI)
configuration.
Convenience and safety: The RB series has external and self-collision detection
systems, which minimize accidents and injuries while providing a safe work
environment for the operator.
Space efficiency: An RB unit can be applied to all types of production lines
regardless of space. It may be used in many different environments due to versatile
configurations that allow it to be installed on a variety of surfaces.
Robot Arm: The Robot Arm is an industrial collaborative robot that can be used for
repetitive routine tasks, carrying small objects, or assembling parts. It can be used
with various third-party robotic grippers as well as various types of tools.
Control Box: The Control Box controls the movement of the robot arm based on user
programs contained on the Teach pendant/tablet PC. Digital and analog
input/output ports are available for connecting various devices and tools.
Estop/Jog Interface (for stand-type control box): With the emergency stop switch, the
robot operation can be stopped. It comes with simple program flow control buttons
such as Play/Stop.
The components of the provided system and the quantity of each component are as follows.
� �
※ The tool dedicated to the NSF model is exclusively for the NSF model components.
2 3 4
5 6 7
1 EA
1 Control box
1 EA
2 Power cable
Robot arm-control box 1 EA
3
connection cable
1 EA
System components 4 Emergency stop/ jog interface
1 set
5 Control box key
10 EA
6 Terminal blocks
1 set
7 Fuse
※ It is recommended to use the 5-meter cable provided by the manufacturer for the power cable,
emergency stop/ jog interface cable, and robot arm-control box connection cable. It is
recommended to use a cable shorter than 3 meters for the shielded LAN, I/O port connecting, and
USB cables, as well as the outside cables for use with the wire box and model.
1 Tablet PC 1 EA
No. Name
① Base
② Base Joint
③ Shoulder Joint
④ Elbow Joint
⑤ Wrist 1 Joint
⑥ Wrist 2 Joint
⑦ Wrist 3 Joint
⑧ Tool Flange
Dimensions
[ RB5-850E/EN ] [ RB5-850EA1/A2 ]
[ RB3-1200E/EN ] [ RB3-1200EA1/A2 ]
Dimensions
[ RB10-1300E/EN ] [ RB10-1300EA1/A2 ]
[ RB10-1300EA3 ] [ RB16-900E]
[ RB16-900EA1 ] [ RB16-900EA2]
[ RB5-850EA2, RB3-1200EA2 ]
[ RB10-1300EA1, RB16-900EA2 ]
[ RB10-1300EA2 ]
* The number of pneumatic lines needs to be adjusted after checking the driving range.
Warning
Warning:
1) For pneumatic / electric wire passing models, if passing air or power over the
defined standard, hardware may be damaged.
No. Name
① AC Power Socket (AC POWER)
② AC Power Switch (AC SWITCH)
③ Connector for Robot Arm cable (ROBOT)
Connector for E-STOP/JOG
④
(E-STOP/JOG)
⑤ LCD
⑥ Main Switch
⑦ USB/LAN connectors
⑧ I/O ports
※ Purchasing the tablet PC is not required. The App to operate the RB series can be
downloaded from the Rainbow Robotics website.
※ Tablet setup is required for use with RB products. See the Appendix.
Joint Range
J1 ± 360 °
J2 ± 360 °
J3 ± 165 °
J4 ± 360 °
J5 ± 360 °
J6 ± 360 °
1.7 WORKSPACE
The maximum radius is an 850mm workspace for the RB5-850E Series. The maximum
radius is 1300mm for the RB10-1300E Series and is 1200mm for the RB3-1200E Series and
is 900mm for the RB16-900E Series. The area A in the figure below represents the kinematic
singular area. This means that any motion programmed in the inertial coordinate system
(e.g. programming a motion using the Move L command) may not work properly. The robot
may stop itself or move faster than designated. Programing the motion in the joint
coordinate system (e.g. Move J) is recommended in this particular area.
A. The kinematic singular area. Limits some motion programmed in the inertial
coordinate system (e.g. Move L).
Danger
Danger :
Failure to follow instructions marked with this symbol may result in severe harm, which
could result in serious injury or death.
Warning
Warning :
Failure to follow the instructions with this symbol may result in an accident, which could
result in serious injury to the user.
Caution
Caution :
Failure to follow directions marked with this symbol may result in damage to the product
or injury to users.
Danger
Danger:
Warning
Warning:
1) Robot users and robot application system manufacturers should be familiar with the
contents of this manual. In addition, they should complete operational training.
2) Make sure enough space is provided for the robot arm to move freely.
3) When using the robot, do not wear loose clothes or jewelry. Long hair should be tied
so that it does not get caught in the joints of the robot.
4) Never operate a broken or faulty robot.
5) If a fatal error occurs in the software, immediately hit the emergency switch to stop
the robot, and then contact your supplier or Rainbow Robotics.
6) Check that the robot installation angle, tool setting, safety setting, etc. are entered
correctly.
7) Do not connect safety equipment to the general use I / O ports in the back of the
control box. Safety equipment should only be used with safety-related I / O ports.
8) Watch out for the movement of the robot when using the teaching pendant.
9) During the operation of the robot, do not enter the operating range of the robot, and
do not touch the robot while it is operating.
10) Never modify the robot without the support of Rainbow Robotics. Rainbow Robotics
(hereinafter "the manufacturer") bears no responsibility/liability for any problems
caused by user's modification or modification of the product.
11) Both the robot arm and the control box generate heat when used for a long time. Do
not touch the robot after long use. If the user needs to touch the robot, make sure to
turn off the controller and allow the robot to cool down before touching.
12) When the robot collides with an external object, a considerable amount of kinetic
energy is generated. This kinetic energy is proportional to the speed of the robot and
the payload.
13) Confirm that you are using the recommended installation settings for the robot. The
teaching or collision detection functions may not work properly if the robot arm's
mounting configuration, tool weight, tool center of gravity, length, safety
configuration, etc. are not entered correctly.
14) The teaching function should only be used in a safe environment. Do not use this
function when there are hazards nearby.
15) Before using the teaching function, input the relevant information (tool length,
weight, center of gravity, etc.) accurately. Not entering the accurate relevant
specifications will cause malfunctions when using the direct teaching function.
16) If the robot joints move at an unsafe speed when using the direct teaching function,
the user can force the robot to stop with the emergency switch for their safety.
17) Robotic arm and control box generate heat during operation. Do not touch the robot
arm during operation or immediately after operation as continuous contact with the
robot arm may cause it to malfunction. Before manipulating or touching the robot
arm, make sure to check the temperature reading on the UI screen or turn off the
robot arm. Please wait at least 1 hour to cool it down before touching.
Caution
Caution:
1) When using with a machine or another robot that can damage the robot arm, it is
recommended to test all functions separately before use. The manufacturer is not
liable for any programming errors, damage to the RB, or damage to other machines
due to robot malfunctions.
2) Do not expose the robot to strong magnetic fields as the robot may be damaged.
Warning
Warning:
1) Attach a warning label to the spot where there is a danger of electric shock from the
electric device.
2) Do not tear, damage, or remove the cover. Be careful when handling parts or devices
with a label attached, as well as surrounding components.
3) To avoid electric shock, do not touch the internal electric parts.
Injury (stenosis), which may occur when a finger is caught between the gears, etc.,
Injury (puncture, deep cuts) by sharp edges or edges of the tool.
Injury (puncture, deep cuts, falling object) caused by objects located near the robot.
Injury that can occur when working with toxic and harmful substances (skin damage,
dyspnea)
Injury caused by collision with the robot (bruises, fracture)
Injury that may occur due to not fully fastening objects
Injury from an object that has detached or dropped from the tool mount
※ The characteristics of potential risks may vary depending on the final system.
The operator or installer of the final system containing the robot arm is responsible for:
※ Peripherals are not limited to the above items. Compliance with the safety instructions in
this manual does not infer that all potential risks are fully avoidable.
Warning
Warning:
The section below describes how the Emergency Stop button for stand-type control box
works.
Emergency Stop
Users can stop the robot arm immediately by pressing the EMERGENCY STOP
button.
Caution
Caution:
1) If excessive force is applied to the joints in the non-powered state, beware that the
driving part may get overloaded. The manufacturer is not liable for any damage
caused by excessive force.
Refer to the guidelines of ISO 12100 and ISO 10218-2, as well as the technical specifications
of ISO / TS 15066 in order to carry out the risk assessment of robots.
A risk assessment must be performed immediately after robot arm installation. This
assessment is designed to determine and configure safety settings. Determining the need
for additional emergency stop buttons, as well as adding protective measures for the
surrounding environment, are the key tasks of risk assessment.
The safety-related functions of the collaborative robot can be configured in the safety
configuration menu. The menu provides the following functions.
■ I / O settings: The control box can be set to output safety information through the
output terminal.
■ Speed control: Enables the user to control the moving speed of the robot arm.
■ Collision detection sensitivity adjustment: When the robot collides with a nearby
object, it will automatically stop. However, the user can control the sensitivity at
which the arm detects the collision.
If the above safety-related functions do not sufficiently reduce the risk, or if any risks cannot
be eliminated, make sure to add an additional safeguard to eliminate the risks. The
manufacturer is not liable for accidents caused by risks that do not comply with the
requirements based on international standards, risks that do not comply with such
requirements based on national laws and regulations, and any risk that is not reviewed in the
above risk assessment.
RB series can protect users and devices by providing various safety functions and safety
device interfaces. Safety functions and interfaces meet Category 3, Performance Level d (PL
d) as described in ISO 13849-1 and Hardware Fault Tolerance 1, Safety Integrity Level 2 (SIL
2) as described in IEC 62061.
Caution
Caution:
1) Depending on the case of the robot installation, the system integrator must perform
a risk assessment, and accordingly, the workspace must be configured using safety
monitoring functions and interfaces.
2) If a fault is found in the robot's safety function or interface, Stop Category 0 is
initiated.
3) Examples of defects include broken cables in the emergency stop circuit, incorrect
wiring of additional safety devices, and non-overlapping wiring of additional safety
devices (refer to Section 5 of this chapter).
4) System integrators and operators must be informed that there is a safety monitoring
function that the robot performs internally, and the safety detection doesn’t involve
only the operation of the emergency stop switch and the operation of the protective
stop device, but also the position of the robot arm during task execution. The robot
can be stopped in the designated Stop mode even for movements above the
physical limit, such as speed, momentum, etc. (See Section 3 of this chapter for the
safety monitoring function).
5) System integrators and operators should be careful to mark the time and stopping
distance between the robot stopping due to the operation of the error and safety
monitoring functions described above. The system integrator must conduct a risk
assessment considering the stopping distance and time (see Section 4 of this
chapter).
6) System integrators and operators must be aware of the fact that there is a safety
monitoring function to limit the movement of the robot's joints and the robot/TCP,
and must select the range of motion of the robot. TCP refers to the position to
which the offset is added from the center point of the end of the robot arm.
Danger
Danger :
1) The system integrator must conduct a risk assessment before applying power to the
robot, and if it is used differently from that determined by the risk assessment or if
different parameters are used, a risk that is not sufficiently reduced may occur.
2) When connecting additional safety devices, the power of both the robot and the
control panel must be shut off.
3) When installing an additional safety device, measures must be taken to ensure that
there is no problem when using it mechanically. For example, when using a light
curtain, it must be firmly fixed to the floor/fixture, and movement and vibration must
not occur during robot operation.
4) All safety function interfaces are set to 24V. Be careful when connecting devices
with different voltages as it may cause equipment damage and fire.
5) The signal from the device mounted on the Tool Flange is not included in the safety
function. Do not connect the safety device to the Tool Flange cable.
Stop
Description
Category
Caution
Caution:
The parameters of the safety function are set at the factory, and the system integrator can
change some items based on the risk assessment. The base of the robot has the controls
for position and speed items/features.
- STO(Safe Torque Off): This function prevents force-producing power from being provided
to the motor. Power that can cause rotation is not applied to the motor. This safety sub-
function corresponds to an uncontrolled stop, according to stop category 0 of IEC 60204-1.
- SS1(Safe Stop 1): This function is specified as either a.) SS1-d (Safe-Stop 1 deceleration
controlled) initiates and controls the motor deceleration rate within selected limits to stop
the motor and performs the STO function when the motor speed is below a specified limit; or
b.) SS1-r (Safe-Stop 1 ramp monitored) initiates and monitors the motor deceleration rate
within selected limits to stop the motor and performs the STO function when the motor
speed is below a specified limit; or c.) SS1-t (Safe Stop 1 time controlled) initiates the motor
deceleration and performs the STO function after an application specific time delay. This
safety sub-function corresponds to a controlled stop according to stop category 1 of IEC
60204-1. Above three candidates, our system uses SS1-t.
- SS2(Safe Stop 2): This function is specified as either a.) SS2-d (Safe Stop 2 deceleration
controlled) initiates and controls the motor deceleration rate within selected limits to stop
the motor and performs the safe operating stop function when the motor speed is below a
specified limit; or b.) SS2-r (Safe Stop 2 ramp monitored) initiates and monitors the motor
deceleration rate within selected limits to stop the motor and performs the safe operating
stop function when the motor speed is below a specified limit; or c.) SS2-t (Safe Stop 2 time
controlled) initiates the motor deceleration and performs the safe operating stop function
after an application specific time delay. This safety sub-function SS2 corresponds to a
controlled stop according to stop category 2 of IEC 60204-1. Among the above three
candidates, our system uses SS2-t.
- SOS(Safe Operating Stop): This function prevents the motor from deviating more than a
defined amount from the stopped position. The PDS (SR) provides energy to the motor to
enable it to resist external forces. This description of an operational stop function is based on
implementation by means of a PDS (SR) without external (i.e. mechanical) brakes.
- SLP(Safely Limited Position): This function prevents the motor shaft (or mover, when a
linear motor is used) from exceeding the specified position limit(s).
- SLS(Safely Limited Speed): This function prevents the motor from exceeding the specified
speed limit.
- SLA(Safely-Limited Acceleration): This function prevents the motor from exceeding the
specified acceleration and/or deceleration limit.
- SLI(Safely Limited Increment): This function prevents the motor shaft from exceeding the
specified limit of position increment within specified time.
- SLT(Safely Limited Torque): This function prevents the motor from exceeding the specified
torque limit (or force limit when a linear motor is used).
- RPL(Robot Position Limit): This function prevents the robot arm’s TCP (tool center point) or
body frame from exceeding the specified spatial region.
- TSL(TCP Speed Limit): This function prevents the robot arm’s TCP speed from exceeding
the specified speed.
- CBPL(Control Box Power Limit): This function prevents the Control Box’s power
consumption from exceeding the specified limit.
- EMS1(Emergency Stop1): This function activates the stop mode when the emergency stop
switch of the Teaching Pendant Unit is activated. The stop mode is the SF.2.
- EMS2(Emergency Stop2): This function activates the stop mode when the special I/O
ports of the Control Box are activated. Those ports are provided for users to connect their
own switch devices. The stop mode is the SF.2.
- PRS(Protective Stop): This function activates the stop mode when the special I/O ports of
the Control Box are activated. Those ports are provided for users to connect their own
protective devices. The stop mode is the SF.2.
- HSS(Hard Safeguard Stop): This function activates the stop mode when the special I/O
ports of the Control Box are activated. Those ports are provided for users to connect their
own protective devices. The stop mode is the SF.1.
- SSS(Soft Safeguard Stop): This function activates the stop mode when the special I/O
ports of the Control Box are activated. Those ports are provided for users to connect their
own protective devices. The stop mode is SF.3.
The additional ports can be equipped with 4 equipment. The robot is delivered with a default
configuration, which enables operation without any additional safety equipment.
When using without connecting to an external safety device, be sure to connect and use the
basic contact input as shown below.
EMO
This port is used when it is necessary to install an extra emergency stop switch through
risk assessment.
The emergency stop switch should be used as a product conforming to IEC 60947-5-5.
Emergency stops generated through EMO are designated as stop category 1.
PRS
This port is used to connect one or more protective stop devices through risk assessment.
Protective stop devices must be used according to 5.3.8.3 of ISO 10218-2.
Protection stops occurring through PRS are designated as stop category 1.
HSS
This port is used to connect one or more protective stop devices through risk assessment.
Protective stop devices must be used according to 5.3.8.3 of ISO 10218-2.
Protection stops occurring through HSS are designated as stop category 0.
SSS
This port is used to connect one or more protective stop devices through risk assessment.
Protective stop devices must be used according to 5.3.8.3 of ISO 10218-2.
Protective stops that occur through SSS are designated as stop category 2.
In the event of an emergency, the robot must be stopped immediately by pressing the
emergency stop switch on the top of the pendant.
Caution
Caution:
Initialize Mode
[Set-up]
Caution
Caution:
1) The password for entering automatic mode is not set at the time of shipment. Set
up and use a password so that no one else can access it.
2) Before entering Auto Mode, the user must remove the dangerous situation and
check the status of the emergency stop switch and the protective stop device.
3) In all case, the user must correctly grasp the installation state of the robot and
complete the setting before operating the robot.
Cautions
Caution:
Safety inspection managers need periodic inspections for the following items. If during the
inspection you find a problem that cannot be solved by yourself, contact the manufacturer.
Inspection
Check List Period
target
Check whether the emergency
Safety
stop switch mounted on the 1 Month
Function
pendant is working properly.
Pendant
Check the condition of the
Cable connection cable between the 1 Month
pendant and the control box.
The information of the LED indicating the operation status of the board is as follows.
48V LED
12V LED
A, B : Communication Status
C, D : SFU-MCU 1 Status
E, F : SFU-MCU 2 Status
OS : Watch-dog
Standard Title
Functional safety of
electrical/electronic/programmable electronic
IEC 61508-1:2010
safety-related systems – Part 1: General
requirements
Functional safety of
electrical/electronic/programmable electronic
IEC 61508-2:2010 safety-related systems – Part 2: Requirements
for electrical/electronic/programmable
electronic safetyrelated systems
Functional safety of
electrical/electronic/programmable electronic
IEC 61508-3:2010
safety-related systems – Part 3: Software
requirements
Functional safety of
electrical/electronic/programmable electronic
IEC 61508-4:2010
safety-related systems – Part 4: Definitions and
abbreviations
Functional safety of
electrical/electronic/programmable electronic
IEC 61508-5:2010 safety-related system – Part 5: Examples of
methods for the determination of safety
integrity levels
Functional safety of
electrical/electronic/programmable electronic
IEC 61508-6:2010
safety-related systems – Part 6: Guidelines on
the application of IEC 61508-2 and IEC 61508-3
Functional safety of
electrical/electronic/programmable electronic
IEC 61508-7:2010
safety-related systems – Part 7: Overview of
techniques and measures
CHAPTER 4. INSTALLATION
4.1 INSTALLATION PRECAUTION
Robot installers must install and operate the robots following the guidelines of ISO 12100
and ISO 10218-2, and installers must comply with the relevant requirements of international
standards such as ISO / TS 15066 and national laws. The manufacturer is not liable for any
accidents caused by risks that do not comply with the requirements based on international
standards, risks that do not comply with the requirements based on national laws and
regulations or those caused by failure to review the risk assessment in the previous chapter.
Caution
Caution:
1) If the system is not installed in a location that matches the recommendations, the
performance and lifespan of the robot may be reduced.
Warning
Warning:
1) When attaching the robot, fix it firmly so that the bolts do not come loose.
2) Install the robot on a sturdy base that can withstand the combined weight of the
robot and the load generated by the robot.
3) Make sure that the contacting surface on the robot arm is completely in contact
with the surface that it is mounted upon.
4) Never disassemble the bolts that are assembled in the robot. Ensure that all bolts
are securely fastened before operating the robot arm.
5) If the product is used with the bolts disassembled, or if a bracket etc. is installed
incorrectly, the product may become damaged, or the safety of the user may be
seriously affected.
After fixing the tool to the Tool flange, connect the necessary cables to the I/O ports
on either the tool I/O or the Control box I/O.
Specifications of the ports located on the tool flange are divided into the non-E and
E versions as follows.
[Robot]
Pin Signal Signal
Port Layout
No. (non-E version) (E version)
1 Digital output A Digital output A
9 RS485+ RS485+
10 RS485- RS485-
11 Common ground Digital input E
12 Common ground Digital input F
We provide outside cables that can be connected to the tool flange. The
specifications are listed as follows.
[Outside cable]
Pin
Port Layout Color (thickness)
No.
1 Brown (AWG22)
3 Red (AWG22)
4 Black (AWG22)
5 White (AWG26)
Tool 6 Blue (AWG26)
outside
cable 7 White (AWG26)
8 Yellow (AWG26)
1 9
2 10 8
9 Gray (AWG26)
3 11 12 7
4 5 6
10 Purple (AWG26)
11 Black (AWG26)
12 Green (AWG26)
The internal power supply can be set to 0V, 12V, or 24V on the I/O tab of the GUI.
The tool connector uses NPN (‘sinking’) for the digital output. When the digital
output is enabled, the corresponding port is connected to GND (ground). When the
output is deactivated, the corresponding port becomes ‘open’ (open-collector /
open-drain). The electrical specifications are as follows.
The image shown below illustrates how to turn on/off a load with 12V or 24V. The
voltage level can be specified in the Tool Out (TO0) block.
※ It is strongly recommended to use a diode to protect the tool using an inductive load.
The tools digital inputs use PNP and pull-down resistors. Therefore, when the input
port is not connected (floating), the corresponding input port is read as low (0).
Electrical specifications are as follows.
The figure shown below illustrates how to use the digital input for a simple switch.
The tool analog input measures the voltage in a non-differential manner. The
measurement categories are as follows.
Input Voltage 0 - 10 V
Resolution - 12 - bit
The figure below illustrates how to connect an analog sensor with non-differential
voltage output characteristics to the Tool flange.
The figure below shows how to connect an analog sensor with differential voltage
output characteristics to the tool flange. Connecting the negative output of the
sensor to GND (ground) works the same as the non-differential light sensor.
Caution
Caution:
1) For further details regarding technical specification and wire connection, refer to
Appendix D.
2) The cross-sectional view related to the tool flange is illustrated in Appendix C.
The tool flange supports RS485 serial communication and supports the following
serial communication standard.
Connecting the robot arm to the robot control box using the robot arm cable.
Connect the female connector to the robot arm and the male connector to the
control box. Be sure to check whether pins in the connector are bent or not.
Caution
Caution:
1) Do not unplug the robot cable, power cable, or teaching pendant while the robot is
activated.
2) For using AC power, the peripherals should share a common ground.
The specifications of the power and digital I / O of the control box are as follows. All digital
I/O are compliant with the IEC 61131-2 standard.
Caution
Caution:
1) When tightening the I/O wiring, make sure to turn off the power to the control box in
advance. Any damage to the product caused by the user's carelessness (24V power
shorts, incorrect wiring, etc.) is not covered by the product warranty.
Danger
Danger:
1) Never connect a safety signal to a PLC other than a safety PLC. Failure to follow
these warnings could result in unsafe operation, resulting in serious injury or
casualty. The safety signal and general I/O signal must be separated.
Warning
Warning:
1) Inputs and outputs of all forms of safety features have redundancies. It is necessary
to isolate the channel so that the safety function is not activated due to signal
failure. The safety functionality must be confirmed before installing the robot. The
safety functionality should also be checked periodically for abnormalities.
Warning
Warning:
1) For the details in the technical specifications and wire connection, refer to Appendix D.
AIx - AG Voltage 0 - 10 V
AOx – AG Voltage 0 - 10 V
Analog output
The analog output can be used to control the speed of conveyor. The figure below
illustrates a simple demonstration.
Analog input
The figure shown below illustrates a simple connection to an analog sensor. The
output value of the analog sensor can be used by the control box as analog input.
To turn off the power, press the main power switch for a few seconds.
Caution
Caution:
Caution
Caution:
1) Make sure that the teaching pendant is connected to the control box before running
the application installed in the Rainbow Robotics. Do not perform unnecessary
operations while the system is booting, as it may cause problems with the system.
In the main screen, users can create programs for the robot (Make), move the robot (Play),
or set settings (Setup) through each relevant menu.
Power Off
When the power button (bottom right) is pressed, the power off dialog will pop up. If
the user presses the UI Shutdown button, the application closes. If the robot is
activated and Tablet is connected to the tablet PC, the power of the robot will stay
turned off as well.
6.4 MAKE
Make
The Make screen is the interactive menu to program the robot. Programming the
collaborative robot will also be referred to as “teaching.” Teaching the robot requires
the use of the icons at the top of the screen. Moving the robot requires the use of
icons at the right. Moving the robot by one of these icons will also be referred to as
“jogging.” Editing the teaching program requires the use of icons at the left.
Left Icons: Copy & Paste, Save, Delete, Add Comment, etc.
Right Icons: Jog/Jogging, Move Left/Right/Forward/Backward, etc.
Middle Icons: Program Functions, etc.
Bottom Icons: Save/Load, Play, Motion Speed Adjustment, etc.
6.5 PLAY
Play
The Play screen allows the user to load and run a teaching program. The Play screen
only allows for physical movement of the robot (unlike Make, that allows for
simulation). A program loaded into the Play screen will repeat the number of times
specified in Setup-Interface. The operating time at the bottom left of the screen
shows the elapsed time.
6.6 SETUP
Setup
The Setup screen allows the user to see/change the robot’s default values, such as
sensitivity for collision detection, configuration of the robot installation, range of
workspace, tool settings, system log, I/O, coordinate system, etc.
No. Description
① Show the program list in tree form.
Shows the angle of each joint of the robot arm and the Cartesian
②
coordinate position of the TCP.
[ Program-only Mode ]
Icon Description
This icon sets the motion property of the robot. The core
algorithms for seven types of motion properties are pre-
programmed.
In MoveJ, each joint moves independently to reach a given
target joint angle in a given time.
In MoveL, the TCP linearly moves to reach a given target
position and configuration in a given time. In this motion,
each joint angle to move is calculated by built-in
algorithms. MoveJB, MoveLB, MovePB, MoveJL, and
MoveITPL are advanced motions using MoveJ or MoveL.
This icon enables the robot to pause shortly. The robot will
pause for a given time set by a user. With a conditional
statement like IF, a user can have the robot pause or
terminate pause when a condition is true.
This icon sends data to the port located in the Tool flange
or Control box via RS485/RS232. Refer to Setup-serial for
protocols.
This icon sets up a task after the program ends. Note that
motion commands cannot be included in here.
This is a feature for force control. The user can select the
desired direction of force action and coordinate system.
The actions included in the lower force control are
automatically given the force control function.
The G code feature is a feature that you can use if you have
placed the G code file in the specified folder. The robot will
implement the path to that G code.
This function operates the robot joint and the external axis
at the same time.
Icon Description
Icon Description
Icon Description
This icon is used to power off the UI. When the tablet PC is
connected to the robot, the robot will also be turned off. It is
located in the bottom right.
Screen Lock function is included in here.
This icon is in the bottom left of each screen. The robot control box and tablet
PC must be connected before teaching. When this icon is pressed, the following
screen is displayed.
Press the “Connect” button to link the tablet PC to the robot control box.
“Connect” button: Will connects the tablet PC to the robot control box.
Caution
Caution:
1) Make sure that the control box is turned on and that the emergency stop switch is
turned off. If the control box is not on, the indicator light beneath “Device Off” will
turn red.
The figure below shows a display when the tablet PC and control box are being
connected.
“Network Connecting” flashes yellow when the tablet PC is trying to connect to the
control box.
“Network Connected” becomes blue when the table PC and control box are
connected properly. The “Control” button is also activated once more.
After “Network Connected”, press the “Control” button to activate the robot control
system.
During initialization, the mechanical joint brake is released. Unlocking the joints will
generate a clicking sound.
※ When “Robot Operation On” is still in red, follow the instructions contained within the
message pop-up.
The default name of a new project is “default”. Type in a name for the new project
and press the “Save” button in the dialog. Note that the new project is not created if
the “Save” button is not clicked.
Direct-teaching
The ‘gravity compensation’ algorithm allows the robot to keep its pose when set by a
user. For ‘Direct-teaching’, a user must press and hold the mechanical button
located on the Tool flange. Pressing this button allows each joint to move freely.
The red circle in the diagram above indicates the location of the button.
Warning
Warning:
1) ‘Direct-teaching’ can be used only when the robot is initialized and started up.
2) The load value in ‘Setup-Tool’ should be set prior to using ‘Direct-teaching’ when a
tool is installed at the Tool flange. Without a proper value of the load, ‘Direct-
teaching’ may not work properly.
Jogging
Smooth: Use for continuous motion of the robot. When the ‘+’ or the ‘-‘ button
is pressed and held, the robot moves continuously until the button is
released.
Tick: Use for discontinuous motion of the robot. The robot will move a
specific amount as defined by the user each button click.
※ The control method for jogging can be selected via a toggle button located in the
top right in the Make screen.
※ In ‘Setup-Interface’, a user can specify the amount of movement for each press of
the “Tick” button. Or it can be directly changed in the pop-up window as below.
Warning
Warning:
1) Make sure that there are no obstacles or people in the robot’s workspace before
using jogging.
2) It is highly recommended to use the ‘Safety Slider’ feature in ‘Setup-Interface’.
This feature is activated as a factory default.
● Simulation Mode:
Enables the user to virtually move the robot arm on the UI screen without
moving the actual robot.
It is recommended to run simulation mode first for safety reasons before
teaching a new motion.
● Real Robot Mode:
Drives the real robot as displayed on the UI screen.
Warning
Warning:
1) Real Robot mode is only available when the robot is connected and activated.
2) Simulation mode only requires the provided tablet and the control box. It does not
require the robot arm.
3) When using Real Robot mode, make sure that the nearby environment is clear & safe
before operating, as the robot will move.
The basic robot teaching functions are Move and Point. Both icons are on
the top bar when using the Make screen.
After using the Move and Point functions in an empty program, the script field in the
UI will look as follows.
motion property
1st destination
2nd destination
Details on each of the Move and Point functions are on the following pages below.
Move Function
Move sets the robot arm's motion properties. The two primary types of movements
are Joint and Linear. These types are further broken down into commands, as
shown in the figure above.
Sets each joint angle to the values contained within the target Point. Note: The
movement speeds for all joints are slowed relative to the joint that requires the
most movement time.
Starting from the initial arm configuration, the arm will move smoothly between
each Point without stopping by using the Move J method.
Moves the TCP linearly (using x, y, and z) from the current position to the
position contained within the target Point (in mm) and will also rotate the TCP
(using Rx, Ry, and Rz) based on the configuration contained within the target
Point (in degrees).
Starting from the initial arm configuration, the arm will move smoothly between
each Point without stopping by using the Move L method. This method will
generate an arc-shaped path.
For each Point, the user must specify a Blend Radius. This Blend Radius
determines how far away the TCP will be from the Point when moving along the
path.
If the Blend Radius is set to 0, the path will be the same as only using the Move
L method.
The Blend Radius has a maximum value, which is half of the distance between
the initial Point and the destination Point. This ensures that the arm will
maintain a blended movement.
● Constant mode maintains the first Point’s TCP configuration (Rx, Ry, and Rz)
during movement, only changing the tool’s position (x, y, and z) through the
movements.
● Intended mode changes both the configuration and position of the TCP as
the arm moves.
Like MoveL, the Cartesian value of the target point is used as input. However,
instead of going straight to the point, it uses MoveJ's method. When the
Cartesian coordinate system input is received, it is converted into the target
joint angle through inverse kinematics and inputted again to MoveJ.
Starting from the starting point (the current position), move smoothly between
the points without any stops using the Move L method.
MoveITPL has two modes. Constant mode is to move the tool orientation while
maintaining the starting point value. Intended mode is to change the orientation
of each tool.
MoveJ does not consider the movement trajectory of the terminal (TCP). It is an
operation that only uses the joint angle information of the starting point and the joint
angle of the target point. The driving speed of other joints is adjusted to the joints
that require the most driving time.
MoveL is a mode that uses inverse kinematics to move the trajectory of the terminal
(TCP) linearly from the starting point to the target point. 6 Cartesian coordinate
values (x, y, z, Rx, Ry, Rz) are the inputs for the target point value.
MoveL moves in a straight, linear path between the start and destination points. The
arm will arrive at each sequential arrival Point, stop, and then continue to the next
Point.
MoveLB/PB starts at the initial Point, uses each intermediate Point as a waypoint,
and then stops at the final Point. The arm will not stop at the specified waypoints,
but instead it will arc around each point according to the blend distance, and then
continue without stopping.
MoveITPL, the points other than the arrival point move to the waypoint, creating a
trajectory that passes exactly through the waypoint. The trajectory is created
without stopping and a separate speed setting is possible for each waypoint.
Warning
Warning:
1) The five linear motion commands (MoveL, MoveLB, MovePB, MoveJL, MoveITPL)
move the robot using inverse kinematics calculations. Therefore, movement may be
limited in singularity positions where inverse kinematics calculations are not
possible.
2) Certain joints may move faster or be restricted in motion while in the dead zone of
the robot. For more information about dead zones, refer to Section 1.7.
Click MoveJ in order to change the Move command type. A pop-up will appear as
shown below.
Select the desired movement type and click the “Close” button to change movement
type.
MoveJ, MoveJB
※ Since the robot arm consists of six joints, the MoveJ and
MoveJB functions will move all six joints based on the
configuration contained within each Point.
Point Function
Motion property
1st Destination
2nd Destination
As explained earlier, the Point function is a sub-function of the Move function. Move
specifies the properties of the motion, whereas Point is responsible for setting the
target position.
Note: For the Point function, the target value will vary depending on the command
type of the Move function.
When a user taps on a Point in the program tree, the Point function pop-up window
will appear. The window contains the following fields:
Section Description
Depending on the Point type (Section 2), the “Get” button may
or may not supported.
● Must hold down the button to move the arm to the saved
position. Note: the movement is a joint movement type.
⑤ ● When the movement is completed, a pop-up message will
appear.
Depending on the Point type (Section 2), button may or may not
supported.
● Must hold down the button to move the arm to the saved
position. Note: the movement is a linear movement type.
⑥ ● When the movement is completed, a pop-up message will
appear.
Depending on the Point type (Section 2), button may or may not
supported.
Closes the Settings window and will not save user input without
⑨
pressing the “Set” button (Section 7).
※ An example using the Finish at/Stopping time option (Section 6) is shown below.
The following setting options exist for each type of Move function.
>> continue
Warning
Warning:
1) A user coordinate system can be set through the Coordinate menu in the Setup
screen or by using the Setting function in the Make screen.
2) Up to 3 user coordinate systems can be set and used.
3) The factory default user coordinate system is the same coordinate system as the
robot base coordinate system.
[Step 1]
Create a new project. In this case, the name of the project is ‘Test’.
[Step 2]
Click the Move function to add a Move command to the program tree. The
default command will be MoveJ. A Point function will also be added to the tree as
shown below.
[Step 3]
Using the Jog button, move the robot to its intended position. In this example, the
robot was moved to the following joint angle: [Base:0’, Shoulder:0’, Elbow:90’,
Wrist1:-90’, Wrist2:90’, Wrist3:0’].
Click on a Point in the program tree to display the Point setting pop-up window as
shown below.
[Step 4]
In the Point pop-up window, click the “Get” button to update the fields with the
current robot posture/angles. Press the “Set” button to save this Point.
[Step 5]
After saving the point, the UI will look as follows.
[Step 6]
Repeat steps 1 - 4 several times to teach the robot the desired motion. The
completed example program will look as follows.
[Step 7]
After the program is finished, run it on the work screen by pressing the “Play” (▷)
button. To run the movements using the simulation arm, use the Simulation mode.
To run the movements using the real robot arm, use Real Robot mode.
After clicking the “Play” button (▷), the robot will move to its initial position as
shown below.
By holding down the “Approach” button, the robot arm will move to the initial
position for the program. Once the robot reaches its starting position, a pop-up
message will confirm to the user that the robot has reached its starting position.
[Step 8]
After receiving the pop-up in Step 7, the program is ready to run. Click the “Play"
button at the bottom again to run the program.
Warning
Warning:
1) The Point that the robot is current moving towards will be displayed as yellow in the
program tree.
1. Move the robot to the desired starting position using either the Jog or Teaching
button
2. Click Begin in the Program Tree to open the Begin menu
3. Click the “Get” button to record the current posture, and then click the “Set” button
to save the position
Warning
Warning:
1) When the program is first created, all default starting angles will be set to ‘0’.
If the robot arm detects an external collision while in real mode, the following pop-up
will appear.
Alternatively, tap (hit) on the robot arm twice to continue the operation. This will
perform the same function as the ‘Resume’ button.
The image below shows a situation where the user caused the robot to crash into
itself. Just before colliding into itself, the robot will stop, prompting the UI to display
a warning in red.
The image below shows a situation where the robot is about to leave the user-
defined workspace. Just before leaving the workspace, the robot will stop,
prompting the UI to display a warning in red.
The image below shows a situation where the virtual collision box set up by the user
detects / predicts a collision. The robot will stop, prompting the UI to display a
warning in red.
If the robot stops during operation in real mode, please move the robot arm to a safe
position with direct teaching function before continuing work.
■ Circle Function :
● The Three Point method allows a user to draw an arc between 3 Points. The method
requires the user to provide 2 Points: the middle Point and the end Point. The initial
Point will be the most recent position that the robot is in.
● The Axis/Center method allows the user to draw a circle around a center Point. The
method requires the user to provide the center Point and the axis around which the
robot will draw the circle. The radius of the Axis/Center method is determined by
distance between the robot’s most recent position and the center Point.
The Circle function offers 4 Orientation Options: Constant, Intended, Smooth, and Radial.
■ Constant: Maintains the initial TCP orientation (Rx, Ry, and Rz) of the TCP through the.
movements.
■ Radial: Rotates the TCP orientation with respect to the center point of rotation.
■ Smooth: The turn changes immediately from the start point to the destination point. The
rotation information of the waypoint is ignored.
■ Wait Function :
1) Time Condition
Ex) After a specified amount of time (i.e. 3.0 seconds), the next command is
executed.
When using ‘sync speed control bar’ function in Sync, the wait time is adjusted in
inverse proportion to the speed control bar value.
2) Holding Condition
The Time Out function prevents the condition from continuing to wait until it becomes
False in a situation where it cannot be false. Escape the wait after the written time
has elapsed.
3) Exit Condition
Ex.) If the condition is true, the process exits the ‘Wait’ function and then executes the
next task.
The Time Out function prevents the condition from continuing to wait until it becomes
True in a situation where it cannot be true. Escape the wait after the written time has
elapsed.
■ If Function :
Depending on the conditions, branches can be set up so that the robot can perform
different commands. Users can set the If/ Else if/ Else statement.
After adding the If function to the program tree and clicking the added If function, the
following pop-up window appears. Users can enter the conditional statement they would
like to use in the If statement.
Else if (+ Add else if) or Else functionality (+ Add else) can be created along with branch of
conditional statements.
■ Switch Function :
Switch statement. Depending on the conditions, branches can be set up so that the robot
can perform different commands. Switch / case statements are available.
The following pop-up window appears by clicking the added Switch function in the
program tree. Users then can enter the criteria arguments for the Switch statement to
work.
When first creating a Switch statement, ‘default’ will be automatically created. Additional
case statements can then be added using the ‘+ Add case’ button.
After clicking the ‘+ Add case’ button, the following window will appear. Enter the
conditional argument in the field, and then press the ‘Set’ button to save.
■ Repeat Function :
Repeats the nested program by the specified condition. There are 3 modes – these modes
look similar to those within the Wait function:
1) Time Condition
2) Holding Condition
Ex.) While ANALOG_IN_0 and DIGITAL_IN_1 both evaluate to 1, the subprogram will
repeat. The subprogram will continue to repeat until at least one of the two value
changes.
3) Exit Condition
Ex.) The subprogram will repeat until both ANALOG_IN_0 and DIGITAL_IN_1 evaluate.
To.1. The subprogram will continue to repeat until both values become 1.
■ Break Function :
This function forcibly terminates the Repeat (break) or moves to the top of the Repeat
(continue). Even if the Repeat condition determines that the subprogram should continue,
the ‘Break’ function can be used to escape the Repeat. The ‘Continue’ function is used into
the ‘Repeat’ function, and when used, it moves to the top of the Repeat without executing
the subprogram.
It can only be used as a sub-item of the ‘Repeat’ function – it cannot affect any other part
of the program.
If the Repeat Break and Continue are used, it will behave as shown in the figure above.
■ Halt Function :
Halt is divided into Halt and Sub.P Halt. The ‘Halt’ function terminates the main program
regardless of whether it is executed in the main program or sub-program. Sub.P Halt must
be used within the sub program, and the moment it is executed, the sub program ends and
returns to the main program. Please refer to the diagram below.
In the example below, the program will check the If function and call the Halt function if
the condition is true. If the condition is true, the program will terminate and will not
execute the next commands.
Warning
Warning:
1) When the Halt function is executed, the main program will terminate – this includes
any additional Thread functions.
■ Assign Function :
Declare and designate the value of a variable. Variables can be changed through the
program to provide greater flexibility with conditionals.
When the ‘Assign’ function is added to the program tree, it will look as shown below.
To assign a variable, click on Assign and a pop-up will appear. Then, the variable can then
be assigned within the pop-up. Multiple variables can be declared by clicking the ‘Add’
button. To save the variable, click on the Set button.
If a declaration is made, the variable name and initial value will be displayed on the tree as
shown below
If multiple declarations are made, the program tree will show how many variables of each
type were declared.
An example pop-up window of the Assign function is shown below. Note, the below
window shows 4 declarations.
Each part of the pop-up encircled in green dotted lines are explained below:
■ Script Function :
This function is used to write custom scripts, which are used for custom operations/
calculations. The ‘Script’ function also enables other functions such as variable
substitution and assignment.
Add the ‘Script’ function to the program tree and click the ‘Added Script’ function. The
following pop-up window will appear.
From here, the user can enter a custom script. If the user wants to execute multiple lines,
click the ‘Add’ button at the bottom of the pop-up window.
The following example is a program that uses the ‘Repeat’ function to repeat once every
second. After each second, the ‘Script’ function increases the variable called counter by 1.
This will continuously repeat, as the loop is set to continue an infinite number of times.
In the example below, the variable delta_z is set to 50. The MoveJ function is used to
move to a specific pose named start_point (using the Point naming feature).
Once MoveJ moves to start_point, the ‘Repeat’ function is set to repeat its sub-items 4
times.
MoveL uses the Relative Point function to move vertically in the z direction by
delta_z (50 mm) from start_point. (refer to the relative point function of the linear
movement series of the point function.)
At the end of the loop, delta_z is increased by 50 using the ‘Script’ function.
To summarize, the robot moves to the first position with MoveJ, saves the position as
start_point, and then executes the ‘Repeat’ function 4 times and moves up each loop by
50mm using the MoveL function.
Warning
Warning:
1) The script function is an area where the user can freely write and execute a script.
2) If the users write a script that doesn't match the syntax, the program may
malfunction or stop. Be careful and use the proper syntax when using this feature.
■ Text Function :
The ‘Text’ function enables users to make notes/comments in the program list tree.
The text function is displayed as green text in the program tree and does not affect the
functionality of the program. Click the Text icon to add it to the Program Tree.
Users can add messages by clicking on the new Text line in the program tree. Notes can
be added by adding text to the pop-up. Press Set to save.
■ Folder Function :
The Folder function allows commands to be organized and managed as modules. Each
folder can contain commands as sub-items, facilitating with the flow of the program. Each
folder can then be renamed to provide details to the flow of the program.
By clicking the Folder icon, it will be added to the program tree. Commands can then be
added, as shown below.
To rename the folder, click on the new Folder in the program tree. A pop-up will appear for
the user to change the name. Press Set to save the new name.
The program tree will now show the folder with its new name.
Like the ‘Text’ function, it does not affect the function of the program. This function only
enables the flow of the program to be managed by enabling module creation.
Through this, the user can insert other program files into the current project. These other
program files are made in advance and accessed through the File Explorer window.
If you click the Sub.P icon in the program, the following pop-up window appears, and at
this time, click on ‘Sub.P’.
If you click ‘Sub.P’, a pop-up window with file explorer function appears as shown below.
Through the file explorer window, a user can view other projects created on the tablet PC.
To add another file as a sub program, select the desired project and click the Open button.
In the above example, a subprogram named cocktail has been inserted into this project.
To see the contents of the subprogram, expand the program tree viewer (shown below in
the green dotted lines) and click on the loaded subprogram. The current project is
displayed on the left side, and the loaded project contents are displayed on the right side.
Warning
Warning:
1) The contents of a subprogram called by the Sub.P function can be seen by the user,
but they cannot be modified. If modifications are required, the project must be
opened separately.
2) The Sub.P function can be called up to 10 levels deep. It is not recommended to use
recursion with the Sub.P function.
The Pre-Program function is a dedicated Folder placed at the beginning of the program.
The Pre-Program folder will execute its contents only once.
● Pre-Program will not have an effect on a program in Make mode, since the
program will exit when it finishes executing.
● Pre-Program will have an effect on a program in Play mode, since the program is
on repeat.
The figure below shows the general command flow when the Pre.P function is not used.
The left column shows the flow of a program being executed in the Make screen, whereas
the right column shows the same program being executed in the Play screen. In Make, the
program between Begin and End runs once. In Play, the program between Begin and End
runs indefinitely.
The figure below shows the program instruction execution flow when the Pre.P function is
used.
In the Make screen, commands between Begin and End are executed in sequence,
regardless of using the ‘Pre.P’ function.
In the Play screen, the program repeats between Begin and End, but the commands
contained within the Pre-Program folder are executed only once.
‘Pre.P’ function is useful for running functions that need to be performed once, such as
variable declarations, and communication connections.
The figure below shows the Pre.P (Pre-Program) function used in an actual project. The
‘Pre.P’ function must be directly after the Begin line, as it runs before the rest of the
program. Users cannot copy the Pre.P Folder and paste it elsewhere.
Warning
Warning:
1) If the ‘Pre.P’ function is used in a project called through the ‘Sub.P’ function in the
main program, the ‘Pre.P’ function applies only to the main program.
■ Thread Function :
This creates a separate program tree called “Thread.” This program will run in parallel (at
the same time) with the main program. However, the thread program tree is limited to
using functions that do NOT control robot operation. In other words, the user cannot put a
Move, Point, or Circle function in the thread program tree.
As shown above, the Thread Function is configured in parallel with the main program
Threads do not repeat automatically and will end when the main program ends –
even if the thread has not completed. To implement the Repeat Function, highlight
a command within the Thread program tree and press the Repeat icon.
To implement a thread that repeats every second, first use the Thread icon, use
the Repeat Function within that thread, and then place a one second Wait Function
within the Repeat.
The Thread Function will support only up to 3 different threads
Thread functionality works only in the current running program. If a subprogram
called through a Sub.P function uses a thread, it will not work properly.
Thread types are as follows:
General Thread : It stops with the user's intentional pause, alarm, collision detection,
etc.
Non-Stop Thread : It does not stop except for collision detection.
Non-Stop Thread2 : It doesn't stop until the program Halt.
Event General Thread : This is a General thread executed by the event thread call
function in the main program.
Event Non-Stop Thread : It is a non-stop thread that is executed by the event thread
call function in the main program.
The figure below is an example of how the Thread function can be inserted into an actual
project. In the example below, 2 threads are inserted.
As shown in the figure above, the event thread starts running when the event thread call
function is used in the main program.
Warning
Warning:
1) For the stability of the program, the use of threads is not recommended within any
program called as Sub.P.
2) Commands such as Move or Circle Functions cannot be placed within a thread.
3) When using Pause or Alarm function, both main program and thread are paused.
4) When the main program exits, the thread will also exit – even if the thread has not
yet finished executing.
■ Alarm Function :
This places a pop-up message within the flow of the program. The message will disrupt
the execution of the program, prompting user confirmation to continue or stop the
program.
After clicking the Alarm icon, an Alarm will be placed within the program tree. Click the
new Alarm to display the setting window as shown below.
Enter the title and content of the alarm window. The title will appear at the top of the pop-
up, and the content will provide more in-depth information about the alarm. The below
image is an example of a user-made Alarm.
To better control the flow of the program, the user can either Resume or Halt the program’s
execution from the pop-up.
Pressing the Resume button in the pop-up window will resume the program, whereas
pressing the Halt button will stop program at this point.
When using the alarm function, both the main program and thread programs are paused and
at the same time.
■ Debug Function :
This function is used to debug internal values and can make a pop-up display the value of
a variable or internal parameter, similar to an alert.
‘Debug’ is for observing internal variables and mainly used to check the value of variables
used in the program during program teaching/ development.
After adding the debug function to the program tree, click ‘Debug’ to see the pop-up
window as above. Enter the variable name in the Name field to view how variables change.
To observe several variables within the same pop-up, press the ‘Add’ button to add
another variable.
Add a Debug Function below it. Set the variables in the Debug window to observe the two
previously declared variables as shown below.
Once the setting is complete, run the program (the tablet PC and the control box must be
connected before execution), and the following pop-up window will enable when the
Debug command is executed. The pop-up will allow the user to observe the specified
variable values.
■ Set Function :
The Set function enables users to temporarily change parameter settings, regardless of
the default values contained within the Setup menu. While the settings in the Setup menu
are applied as defaults to all projects, the Set function enables users to temporarily
override these parameters.
The various parameters that you change on the Setup screen are applied as default values
for all projects that use that control box. If you need to use certain parameters separately
for a particular project, you can manage parameter settings by project by adding the Set
function to the top of the project (for example, Pre.P. sub).
The Set function is a temporary setting, not a permanent setting. When a new Set function
is called for the same parameter setting, the parameter is reflected based on the new Set
function.
When the program ends, the parameter settings will return to the default values as defined
within the Setup menu.
The parameters that can be changed via the Set function are as follows:
Time
Collision Threshold
Tool Payload
Linear Move Offset
Inbox check mode
TCP Position
Tool Collision Box
Global Workspace
Inbox size
Collision Check On/off
Overall speed multiplier
Overall acceleration multiplier
Warning
Warning:
1) The value set in the Set function is a temporary value. When the program exits, it
automatically returns to the default values set from the Setup Menu.
2) The functions provided by the Set function enable you to change the setting value to
another value in the middle of the program flow.
For example, you can use its ‘Collision On / Off’ feature to selectively turn on/off
collision detection in the middle of a program flow.
Starts the timer and sets the initial value. Starting with the value entered, the value of the
timer increases.
Temporarily sets the collision detection sensitivity. The lower the value, the more sensitive
the robot is to collision. This has the same functionality as the Collision Threshold option
within the Setup Menu.
Temporarily set the tool's weight and center of gravity. This has the same functionality as
the Payload option within the Setup Menu.
This function enables a slight offset relative to the base coordinate system. This function
is used to temporarily set an offset of up to 20 mm.
The Inbox Check mode feature enables the user to check whether a certain part of the
robot is in a predefined area (either in the Setup screen or the using the ‘Set’ function). The
parts of the robot that can be checked are as follows.
The size and position of the box can be set in the Inbox screen using Setup mode (or
through the Set function). After enabling the Inbox Check feature, the user can use the
value via Script, If, or some similar function. Under the “Type” box, choose “Shared Data.”
Then under the “List” box, use either the SD_INBOX_TRAP_FLAG_0 (not in the box) or
SD_INBOX_TRAP_FLAG_1 (in the box) variables.
Temporarily set a relative offset of the tool's TCP position. Note: This will change the X, Y,
and Z used for Global TCP calculations. It has the same functionality as the End Effector
menu in Setup-Tool.
Temporarily set the size and position of a virtual box surrounding the gripper for self-
collision prevention. The size and position of the virtual box will be relative to the TCP
Position. It has the same functionality as Tool Setting for Collision Check in Setup-Tool.
Temporarily set the limits of the workspace for collision prevention. It has the same
functionality as the Workspace Limits menu in Setup-Cobot.
Temporarily set the position and size of the Inbox. It has the same functionality as the
Inbox settings in Setup-Inbox.
The ‘Set’ function temporarily activates external Collision Detection mode. It has the same
functionality as the ‘Enable Collision’ box in Setup-Cobot.
Through this, the user can temporarily change the base scaled speed used by the Move and
Point functions. Users can either enter a value between 0 and 2.0, or a predefined variable.
In the example above, the base speed for Move J is overwritten to be 1.5 times the normal
speed, whereas the base speed for Move L is overwritten to be 0.71 times the normal
speed.
Through this, the user can temporarily change the base scaled acceleration used by the
Move and Point functions. Users can either enter a value between 0 and 2.0, or a
predefined variable.
Through the code below, you can see how the speed and acceleration change when Speed
Override and Acceleration Override are used.
The baud rate and stop bit / parity of the serial communication are temporarily set. It has
the same meaning as set in Setup-Serial.
This function enables the use of a fixed value, ignoring the set speed / acceleration for
each Move point. There are 2 sub-options: Joint Movement and Linear Movement.
The velocity (deg / s) and acceleration (deg / s ^ 2) set in the Joint Movement affect the
movement speed and acceleration of the Joint movement types MoveJ and MoveJB.
The velocity (mm / s) and acceleration (mm / s ^ 2) set in Linear Movement affect the
movement speed and acceleration of the linear movement types MoveL, MoveLB, MovePB,
MoveJL, MoveITPL and Circle.
If you do not want to force speed / acceleration through this function, clear the check box.
In this case, it follows the speed / acceleration value set for each point during operation.
Ex.) If you need to keep a certain speed and acceleration during operation, you can use
this Set function as in the code below.
This function is used to change the circular motion into spiral motion. Draw a circle / arc
when using the Circle function. If Set-Spiral mode is used over the Circle function, the
existing circle / arc will be changed to spiral motion. Therefore, to implement spiral motion,
this function should be inserted above the Circle function.
The speed control bar (bottom right) of the UI can be adjusted with the program. The user
can change the UI speed control bar by using this function in the desired section.
Select the robot's motion type when after detecting an external collision. There are two
options.
General Stop: After the collision is detected, the trajectory movement is paused on the
spot.
Evasion Stop: After the collision is detected, the robot moves a small amount away from
the external force and then pauses the trajectory movement.
This function temporarily moves the origin of user coordinate system. The user can set
the desired user coordinate system number and shift distance to shift and choose which
coordinate system to shift the shift distance.
Our default setting is to pause the program after detecting an external collision. After
detecting a collision, a collision detection alert pops up and the program and threads are
paused.
If you want to terminate the program after collision detection, you can use this function to
select the option as Stop state.
This function temporarily disables the digital output of the control box.
Even if the digital output command inserted in the program is not erased, this set command
can be used to ignore the digital output command in a specific section.
It can be used for development testing, etc., and by selecting an option, the output can be
deactivated/activated according to the program section.
This function fixes the target position coordinate value of L series movement (eg MoveL.
MovePB, Circle etc). If the user selects the value to be fixed and the reference coordinate
system, the position coordinate value of the target point or set point is fixed to the value of
the selected axis of the selected coordinate system.
For example, if the base coordinate system (Global) is selected as the coordinate system
and Z Projection 100mm is selected/written, the Z height of all moving target values/set
coordinate values is applied collectively as 100mm.
This is a sub-function of the ‘Set’ function, which can be activated/deactivated for each
section of the program. If the user wants to disable it, select None in the coordinate system.
This function fixes the target rotation coordinate value of L series movement (eg MoveL.
MovePB, Circle etc).
Fix the rotation of L series motions with the rotation value of the selected Point.
As a sub-function of the Set function, this function can be turned on or off depending on the
program section. This function is used to uniformly rotate the TCP rotation at a time.
This function is used to temporarily change the user coordinate system settings.
By selecting three points in the middle of the program flow, the user coordinate system
setting can be arbitrarily changed in the middle of the program.
Since it is a sub-function of Set, the user coordinate system setting returns to the default
value when the program ends.
User can select a base/tool/user coordinate Config and enter shift values from the target
point.
At this time, select whether to apply this shift only to L type or to both L type and J type.
As a sub-function of the ‘Set’ function, the setting returns to the default value when the
program ends.
User can select a base/tool/user coordinate Config and enter shift values from the target
point.
At this point, this shift is only applicable to L series operation, and both the XYZ position
value and the rotation value can be entered.
At this time, select whether to apply this shift only to L type or to both L type and J type.
As a sub-function of the ‘Set’ function, the setting returns to the default value when the
program ends.
This function is used you to temporarily exclude collision detection by vibration during
collision detection.
As a sub-function of the ‘Set’ function, the setting returns to the default value when the
program ends.
Create the desired input by setting the state of the port to which you want to input.
As a sub-function of the ‘Set’ function, the setting returns to the default value when the
program ends.
This function is used to pause and restart a program that is running, without using alarms
and I/O.
As a sub-function of the ‘Set’ function, the setting returns to the default value when the
program ends.
High acceleration mode reduces the time the robot's operating speed reaches the desired
operating speed through changes in the reduction/acceleration profile.
This function is used to pause and restart a program that is running, without using alarms
and I/O.
Motion Time Constraint function constrains the time taken to move from point to point in
the time entered. At this time, it is possible to increase the time but not to reduce it.
This function is used to pause and restart a program that is running, without using alarms
and I/O.
High Sensitivity Coll.Detect allows the detection of collision to be 30% more sensitive than
the existing sensitivity. In Setup, the sensitivity that made collision detection the most
sensitive is also 30% more sensitive than 0%.
This function is used to pause and restart a program that is running, without using alarms
and I/O.
User can give a slight offset based on the desired coordinate system. This function
enables temporary offset settings of up to 20 mm.
This function is used to pause and restart a program that is running, without using alarms
and I/O.
This function is used to temporarily shift the user coordinate, or to temporarily change the
position and rotation of the user's coordinate.
This function is used to pause and restart a program that is running, without using alarms
and I/O.
This function allows the user to change the user coordinate to the last TCP frame. It is
also possible to return to the default user coordinate.
This function is used to pause and restart a program that is running, without using alarms
and I/O.
User can select the timer their want to use and set the initial value of the timer. The timer
starts from the initial value set by the user.
This function is used to pause and restart a program that is running, without using alarms
and I/O.
This is used to set the move speed of the robot in the no-arc state where welding is not
performed.
This function is used to pause and restart a program that is running, without using alarms
and I/O.
The Digital Output of the control box enables the user to select the digital output signal of
whichever port (0 ~ 15) of choice. Each port has 3 possible settings: high signal, low
signal, and bypass.
After adding the D.Out function to the program, click on D.Out in the program tree to have
the following pop-up window appear.
③ Enables the user to select their desired setting for a port (0 ~ 15). The 3 setting
toggles are Bypass, Low and High.
Bypass: Maintains the previous output signal state (gray).
Low: Sets the output signal to the low (0) level (red).
High: Sets the output signal to the high (1) level (green).
④ Enables the user to review the settings selected within the target signal menu. A
further explanation is shown below.
⑤ Saves the settings specified within target signal menu.
-Digital Out : General output
With the control box connected to the teaching pendant, set the Target Signal menu as
shown above (to the right). Then, press the Preview button.
As shown above, the Current Signal menu will change to match the settings that the user
has put in the Target Signal menu.
With the control box connected to the teaching pendant, set the Target Signal menu as
shown above (to the right). Then, press the Preview button.
As shown above, the Current Signal menu will change to match the settings that the user
has put in the Target Signal menu.
With the control box connected to the teaching pendant, set the Target Signal(the toggle
signal represent blue) menu as shown above (to the right). Then, press the Preview button.
As shown above, the Current Signal menu will change to match the settings that the user
has put in the Target Signal menu.
With the control box connected to the teaching pendant, set the Target Signal menu as
shown above (to the right). Then, press the Preview button.
As shown above, the Current Signal menu will change to match the settings that the user
has put in the Target Signal menu.
With the control box connected to the teaching pendant, set the Target Signal menu as
shown above (to the right). Then, press the Preview button.
As shown above, the Current Signal menu will change to match the settings that the user
has put in the Target Signal menu.
The PWM (Pulse Width Modulation) function is used to set the frequency and duty ratio of
a PWM pulse, and then send that signal through digital output port.
Example 1)
Example 2)
In addition to using the D.out function, users can create a command to export digital
output using the Script function as shown below.
Warning
Warning:
The Analog Out Function controls the analog output of the control box. Outputs the
selected voltage through the target (0 ~ 3) analog ports. Each port can output a voltage
range of 0 ~ 10V.
After adding An.Out to the program, click on An.out in the program tree to open the
following pop-up window.
① Shows the status of the current Analog Out output from the control box.
② Enables the user to enter their desired voltage setting. If the check box is empty, it is.
set to maintain the existing voltage output. To set the output, check the box and then
enter the desired voltage (0 ~ 10V).
③ Enables the user to preview the settings selected within the target signal menu. A.
further explanation is shown below.
④ Saves the settings specified within target signal menu.
With the control box connected to the teaching pendant, set the Target Signal menu as
shown above (to the right). Then, press the Preview button.
As shown above, the Current Signal menu will change to match the settings that the user
has put in the Target Signal menu.
In addition to using the An.out function, users can create a command to export analog
output using the Script function as shown below.
Warning
Warning:
1) If you want to leave a comment about the An.out function you set, you can use the
memo function at the top right of the pop-up window.
2) Before using the analog output, please fully understand the electrical properties of
the analog output port provided by the manufacturer.
The tool flange has two digital outputs. Signals from two digital outputs can be specified.
In addition, the level of voltage to be output from the tool flange (0V or 12V or 24V) can be
adjusted together.
Click the Tool Icon to add it to the program. Click on Tool in the program tree to have the
following pop-up window appear.
① Shows the current status of the tool flange output at the end of the robot.
② Sets desired voltage and digital output.
● The output voltage can be selected between 0V, 12V, and 24V. There is also
an option to Bypass.
● The digital output can be toggled between Bypass, Low, and High.
③ Enables the user to preview the settings selected within the target signal menu. A
further explanation is shown below.
④ Saves the settings specified within target signal menu.
With the control box connected to the teaching pendant, and after activating the robot, set
the Target Signal menu as shown above. Then press the Preview button to preview the
tool flange output signal.
As shown above, the Current Signal menu will change to match the settings that the user
has put in the Target Signal menu.
Warning
Warning:
1) The user can add a comment about the Tool.out function by using the memo
function at the top right of the pop-up window.
2) Before using the tool flange output, please fully understand the electrical properties
of the port provided by the manufacturer.
■ Gripper Function :
This function for the gripper is dedicated to cooperative robots and can be used to
conveniently test and be inserted into the program, enabling cooperative robot grippers
from various companies to be used, including Robotiq's grippers. It is not a simple I/O
method, but a function to enable users to use a gripper that is difficult to write by using
serial communication such as RS485 or using CRC.
Add the gripper function to the program tree and click the added Gripper as below.
Warning
Warning:
The product list provided in the gripper function will be updated through user request.
■ RS485 Function :
This function is used to set the RS485/232 output for the tool flange or the control Box.
Users can output in ASCII mode, or in HEX mode.
The configuration can be previewed through the Preview button on the right side of the
pop-up window.
[ ASCII mode ]
[ HEX mode ]
Baud rate and other protocols (Parity bit, Stop bit) for use in Serial-Communication can be
set in Setup-serial menu. Alternatively, the user can use the Set-Serial_Configuration
option at the top of the project.
To use serial communication on the box side, plug a commercially available USB-Serial
(RS232 / 422/485) device into the USB port.
■ Socket Function :
The Socket Function allows for socket communication. It provides the user the ability to
open sockets to connect, send request messages, and retrieve data to/from specific
server. Socket communication can be connected to at most 5 separate servers.
The Socket Function uses the IP settings as defined in the Setup screen. A user that would
like to change the IP settings can go to the Setup-System screen.
Read ASCII Array: Reads an array sent from the server and puts it into an array
type.
Read String: Reads a string from the server and puts it into a string type.
Send String: Send the specified string to the server.
This opens the selected socket (0 ~ 4) and connects to the partner server. This option
requires the user to set the IP address and port number of the server they would like to
connect to.
Through this, the user can select one predefined variable (from the ‘Assign’ function) and
overwrite the value of that variable with a value received from the server.
(Note: specific rules apply. These rules can be found at the end of the ‘Socket’ function
section.)
Allows the user to select one predefined array (from the Assign Function) and overwrite
the values contained within that array with the values of an array sent by the server.
(Note: specific rules apply. These rules can be found at the end of the Socket Function
section.)
This is the function to put the ASCII string received through Socket communication into
the selected string variable.
(Note: specific rules apply. These rules can be found at the end of the Socket Function
section.)
Through this, the user can send a specific string to the server by either entering a string
directly in the field, or sending a predefined string type variable.
Warning
Warning:
This function provides the ability to request and receive data from a specific IP / address.
Data request frequency and format can be specified.
The port number for Modbus TCP is fixed at 502 (Modbus standard).
The protocols and formats associated with Modbus TCP servers are listed in the Appendix.
Note: The Modbus TCP client function must be added at the top of the program under.
Pre.P.
② Select the signal type (Read bit (1bit), Read word (16bit), Write bit (1bit), Write
word (16bit)).
③ Input the address of the endpoint connection on the server.
④ Select the frequency of read / write requests per minute (Hz).
⑤ If using a Read method, contains the variable name to save the read value. If
using a Write method, set to the variable name to output.
⑥ Initial value of the variable set in step 5.
⑦ Button to add the signal.
Example 1 Interpretation)
This reads a word of information (16 bits) at address 123 from the server (IP: 1.2.3.4).
Stores the data in a variable named mod_return_value. Will read information at a rate of 5
times per second (5 Hz).
Example 2 Interpretation)
This writes the bit value (1 bit) stored in the variable mod_write_bit to address 456 on the
server (IP: 1.2.3.4) and will write the data at a rate of 50 times per second (50 Hz).
■ Conveyor Function :
Through this, the user can use the robot as a conveyor by generating movement at a
consistent speed in a specified direction. The user can also place their own desired
movement into the conveyor flow by using the MoveL, MoveLB, or ‘Circle’ functions.
Note: Joint movement (MoveJ, MoveJB, etc.) cannot be used as a sub-item of Conveyor.
Only MoveL, MoveLB, MovePB, MoveITPL, Circle are supported.
Add the conveyor function to the program tree and click on the function to see the options.
② Set the direction for the conveyor movement (x, y, z value is based on robot arm
base coordinate system). The robot will move at the specified speed in the
specified direction until the conveyor movement ends.
An example program tree using the Conveyor Function will look as follows:
The Post.P Function allows the user to insert a command that will be executed after the
program has completed.
The instructions declared within the Post.P function are sequentially executed after the
program terminates.
Example 1)
At the beginning of the program the D.out function sends a High signal to port 1. However,
the program did not send a Low signal before the end of the program. By using the PostP.
function, when the program terminates, port 1 will automatically send a Low signal.
As in the above example, the Post.P function can be used for safety functions.
Example 2)
In the below example, the PostP. function is used to test whether the program terminates
as normal. If the program terminates as normal, the warning lamp (connected to D.out No.
0) will not be turned on. If the program terminates abnormally, the warning lamp will turn
on.
Any intended End signal by the user, such as pressing the UI ‘End’ button, receiving an I/O
stop signal, ending by another communication, etc., will be determined to be a normal
termination. (SD_IS_INTENDED_STOP = true)
If the program exits due to singularity access or exits due to command syntax problems,
the shutdown is recognized to be not as user intended. (SD_IS_INTENDED_STOP = false)
The functions defined in the Post Program will be performed even if the program
did not terminate as normal (e.g. when users press Halt in an Alarm pop-up).
Commands related to the movement of the robot arm, such as MoveJ and MoveL,
cannot be used within Post.P
Post.P works only within a top-level program. If a subprogram invokes the Post.P
function, the Post.P portion of the subprogram will not be executed.
■ Template Function :
This function inserts another pre-made program file (teaching file) into the current
document in a modifiable form.
The Template function is similar to the Sub.P function. However, any file that is loaded by
the Template function can be modified in the current program.
If you click the Sub.P icon in the program, the following pop-up window appears. At this
time, click ‘Template’.
Assume that a project named “sample_prog” has been created as shown below.
If the file is loaded into Sub.P as shown in Ex.1), the project will execute, but it is
impossible to modify the file in the current program. In addition, when the loaded
subproject is changed, the operation of the parent program is also changed.
If the file is imported by the Template function as shown in Ex.2), it is loaded in a form that
can be modified in the current program. Once copied to the template, the contents of the
copied subprogram are not changed even if the original is modified.
■ Monitor Function :
This function is used to select variables (single variables, arrays, point variables, etc.) that
the user wants to observe in real time while the program is running.
Variables declared in the Monitor function can be viewed by clicking the monitor icon on
the right side of the Make / Play page.
In the program example above, a variable named ‘my_count’ is declared. The Repeat
function increments ‘my_count’ by 1 every second.
By using the Monitor function, the user can select the ‘my_count’ variable as the object to
observe.
As shown in the above image, in the Monitoring window, the user can enter the name of
the variable to be observed.
If the user wants to observe the value of the monitored variable, they can click the Monitor
icon on the right side of the screen.
After that, if the user presses the play (▷) button, they can observe the value of ‘my_count’
increasing every second.
■ Pattern Function :
By defining information about the operation space, and by defining which actions to be
performed at each location, the user can set the robot to perform the same action at every
point in space.
Pattern Property:
Define the target space for the repetitive motion.
The property supports various shapes such as straight line, plane, 3D cube,
and arbitrary point.
Pattern Anchor:
The Reference point of the action defined in the Pattern Action.
Pattern Action:
This setting defines the motion relative to the reference point set in the
Pattern Anchor. The defined relative behavior is repeated at every pattern
point set in the Pattern Property.
With the above settings, the following repeat points are formed in space.
Step 2) Using the Pattern Anchor and the Pattern Action, define the relative movement as
below.
■ Pinpoint Function :
This is a special function for storing posture information only. This function is used to
save information of a specific posture/position as a Point variable. If you create a PinPoint
while teaching a specific posture and give it a PinPoint name, the posture information is
converted into a Point variable.
■ Jump Function :
This function allows you to discontinuously control the program flow. You can change the
program flow through several sub-options.
■ Replay Function :
This function is to play the recorded teaching motion. Motion recording is performed in the
settings of the Make page. If you select the name and motion speed/property of the
recorded motion, the recorded motion is played again.
■ Weaving Function :
It is a special function for welding weaving. TCP trajectories are automatically changed to
set the weaving actions included under the weaving function. Simply select and enter the
desired weaving shape and weaving options.
The left side of the figure below is for normal operation only. If this motion is put as a sub-
item of weaving, TCP trajectory reflecting the weaving trajectory is drawn (in the example
on the right, in the case of triangle wave weaving).
■ Force Function :
This function is used for force control. The movements below the Force Control function
automatically change the trajectory to give the set force.
Select and input the desired force control mode, the sensor to be used for force control,
and the force control target value.
The left side of the figure below is for normal operation only. The motion starts in the air
above the plane and ends in the air. If you put this action as a sub-item of force control as
it is, it will change to the action of pressing the ground with a certain force (when setting
the force control to the ground).
■ Arcweld Function :
This is a special function for arc welding. A special macro function designed to quickly
enable implementable functions, such as Wait / D.out.
To use this function, the Device field on the Setup page must precede setting the parameters
and connection information for the welder.
As illustrated above, this feature enables quick and easy insertion of weld speed/weld
current / voltage settings / safety signal processing options into the program to be used for
welding.
This enables the ability to change the TCP value during program execution with the TCP
value pre-saved in Setup' Tool List. It does not change again until the TCP value is
replaced or the program is shut down.
This feature enables direct teaching during program execution. For ‘Mode On’, the
program pauses when the manual direct teaching command is executed and a pop-up
window appears on the screen as shown below.
■ G Code Function :
This function allows the robot to move to the path stored in the G code. The G code
file must be stored in a folder at the specified path
(\Tablet\Android\data\com.rainbow.cobot\files\work) in advance to be available.
Enter the name of the G code file that user saved in File Name. The plane in which the
robot moves can then specify the xy, yz, and zx planes of the user-specified coordinate
system as the starting planes.
■ Interface Function :
The interface function is for connecting external devices such as PLC, HMI, and PC with
the control box. The list of external devices that can be used using the interface is as
follows.
Because each external device has different detailed features available, you should refer to
the following information.
This function connects communications between the HMI and the RB system. The user
will enter the socket number, IP address, and port. The user can also decide whether to
turn on or ignore alarm pop-up in the event of a connection failure or communication error
and set a communication timeout time.
This enables the ability to enter values for one address of HMI. Enter a number or variable
name for the transfer value.
This enables the ability to read values from one address in HMI. The read values are
stored in the variable you specify (Variable).
This enables the ability to enter numbers from the starting address of the HMI to the
specified number of addresses. The pre-declared array must be written to Array Name and
should not exceed the maximum length of the array, 20.
This enables the ability to read data from the starting address of HMI to the specified
number of addresses. The pre-declared array must be written to Array Name and should
not exceed the maximum length of the array, 20.
This function connects communications between the Mitsubishi PLC and the RB system.
The user will enter the socket number, IP address, port, and protocol type. The user can
also decide whether to turn on or ignore alarm pop-up in the event of a connection failure
or communication error and set a communication timeout time.
This enables the ability to enter values for one address of PLC. Enter a number or variable
name for the transfer value.
The ability to read values from one address in PLC. The read values are stored in the
variable you specify (Variable).
This enables the ability to enter numbers from the starting address of the PLC to the
specified number of addresses. The pre-declared array must be written to Array Name and
should not exceed the maximum length of the array, 20.
This enables the ability to read data from the starting address of PLC to the specified
number of addresses. The pre-declared array must be written to Array Name and should
not exceed the maximum length of the array, 20.
Music Player
This function plays an mp3 file while the program is running. The Music driver must be
installed through the RB Driver, and the mp3 file you want to play must exist in the
specified path.
This function connects communications between the LS Electric PLC and the RB system.
The user will enter the socket number, IP address, port, and protocol type. The user can
also decide whether to turn on or ignore alarm pop-up in the event of a connection failure
or communication error and set a communication timeout time.
This enables the ability to enter values for one address of PLC. Enter a number or variable
name for the transfer value.
This enables the ability to read values from one address in PLC. The read values are
stored in the variable you specify (Variable).
This enables the ability to enter numbers from the starting address of the PLC to the
specified number of addresses. The pre-declared array must be written to Array Name and
should not exceed the maximum length of the array, 20.
This enables the ability to read data from the starting address of PLC to the specified
number of addresses. The pre-declared array must be written to Array Name and should
not exceed the maximum length of the array, 20.
This function reads a string from a CSV file. The CSV file must be saved within the
specified path.
This function reads a single number from a CSV file. The CSV file must be saved within
the specified path.
This function connects communications between the Pickit and the RB system. The user
will enter the socket number, IP address, and port. The user can also decide whether to
turn on or ignore alarm pop-up in the event of a connection failure or communication error.
Set the command to be sent to Pickit and the data according to the command.
This function connects the RB system as a client in Modbus communication. The user will
enter the socket number, IP address, and port. The user can also decide whether to turn
on or ignore alarm pop-up in the event of a connection failure or communication error and
set a communication timeout time.
This function is used to input word type data to one address through Modbus
communication. At this time, enter the name of a number or variable for the transfer value.
This function is used to input word type data to one address through Modbus
communication. At this time, enter the name of a number or variable for the transfer value.
This function is used to input word data from the start address to the specified number of
addresses through Modbus communication. At this time, the previously declared array
should be written in ‘Array Name’ and the length should not exceed 20, the maximum
length of the array.
This function reads data from the start address to the specified number of addresses
through Modbus communication. At this time, the previously declared array should be
written in ‘Array Name’ and the length should not exceed 20, the maximum length of the
array.
This feature controls digital/analog output when purchasing and using an extended I/O
module. The method of use is the same as the existing D.output and An.output.
This feature is used when a user wants to randomly change the value of a specific variable
while the program is running. Available for Variable/Array/Point/String/Global/ROM
variables.
Touch sensing is intended to utilize welding applications and detects the movement of the
base material and reflects the direction of movement of the base material and is used for
welding.
A detailed description of this feature is provided in a separate manual.
■ Home :
Home function is used to move the robot with Project Home Posture or Joint Zero Posture.
At this time, the user can select the movement type. When going to the Project Home
Posture, the user can select Project Home Posture of the main program and Project Home
Posture of the subprogram.
The diagram below shows the difference between the case of going to the Project Home
Posture of the main project and the case of going to the Project Home Posture of the
subproject when using the home function within the subprogram.
■ D.Weld :
This function enables the use of the digital weld machine. After selecting the weld machine
to be used, user can proceed with ‘Weld Start’, ‘Weld Off’, and ‘Weld Setting’.
This function is used to run the event thread in the main program. The event thread is
executed only when the event thread call is executed in the main program. In this case, the
number of the event thread to be executed can be selected.
■ Convert :
This function is used to convert the main program. Unlike the existing Sub.P and Template,
this function changes the main program itself, so the program displayed on the UI will also
change.
If you click the Sub.P icon in the program, the following pop-up window appears. At this
time, press ‘Call by program switching method’.
If you select the program you want to switch to in the file explorer pop-up that appears
after clicking, the command is created as shown below.
Please refer to section 6.1 for the description of the edit icon. The example explains how to
edit the program.
■ Cut/ Paste
Step1) Select the command to cut. The selected command will be shown in blue. In
below the example, the MoveL line is selected.
Step2) Press the Cut button. Once Cut is clicked, the line disappears from the program
tree.
Step3) Click the location to paste and click the Paste button. In the example, the MoveL
command is pasted inside the Folder.
■ Copy/ Paste.
Step1) Select the item to copy. The selected command will be shown in blue. In the
below example, the MoveJ line is selected.
Step3) Click desired location and click the Paste button. In the example, the MoveJ
command is pasted under the Folder.
■ Delete
Step1) Select the command to delete. The selected command will be shown in blue. In
this example, the Wait command is selected.
Step2) Click the Del button. The command has been removed as shown below.
■ Move
Step1) Select the command to move. The selected command is shown in blue. In this
example, MoveJ at the top is selected.
Step2) Click the Down button to move MoveJ down as shown below.
■ Pass
Step1) Select a function to temporarily hold / block its execution. The selected
command is shown in blue. In this example, the MoveL command is selected.
Step2) Click the Pass icon. The command turns dark as shown below and will not be
executed. To undo it, simply select the command again and press the Pass button again.
Save Project
To save the current project, click the save icon on the bottom left side of the
UI work screen. If there is no change from the existing saved contents, it is shown
as below.
Load File
To load a saved project, click the File button at the bottom of the UI to display a list
(shown below). If a user selects a file from the list, it will be loaded in as the current
program. If there are unsaved changes to the current project, a prompt will request
the user to save.
To open a file, users can click the Load option. Clicking Other Program button will
open the File Explorer, which allows the user to look through saved files.
Save As
To save a program with a different name, click the Save As option in the File list. The
following pop-up window will appear. Using this window, users can save their
current file with the desired program name. The program name cannot bet set to
“default,” as it is already in use by the system.
■ Utility sub-functions
[Utility-Posture]
Press the Get button to get the current position information and press the Set button to
save it.
Input signal monitoring window for control box and tool flange.
Output signal monitoring window for control box and tool flange.
[Utility-Status]
This window allows the user to see the robot arm’s current and temperature. It also shows
the user coordinate system settings.
[Utility-Snap]
Snap mode selection window to be applied when using direct teaching mode.
This window allows you to test the output of the control box.
There is a Tool List Select setup feature that sets up TCP to use in a pre-saved TCP list.
[Setting-Joystick]
The Joystick setting allows the user to control the robot using a joystick connection.
[Setting-User Coordinate]
Allows the user to set their own coordinate system using the 3-point setting mode. For
more explanation, see the Coordinate page on the Setup Screen.
[Setting-Auto TCP]
This function allows the user to find the position of the TCP automatically.
If the user enters 4 different postures that maintain TCP to be set as the same point on
three-dimensional space, the function automatically calculates the position of the TCP.
[Setting-External F/T]
This window allows you to check and calibrate the external F/T sensor (e.g. Robotiq F/T
sensor).
This function finds the weight and center of gravity attached to the tool using the internal /
external F/T sensor.
[Setting-Motion Recording]
[Setting-I/O Logging]
This function sets one digital input/output, records the change in the value of that
input/output, and graphically shows it.
The rotation direction of the default TCP coordinate system is set based on the current
robot pose to match the selected coordinate system.
■ Monitor Function
This function is used in conjunction with the Monitor command in Section 6. This window
allows the user to observe the system and user variables in real time.
By pressing the recording function on the upper right, the TCP trace of the robot tool is
recorded in the 3D viewer in the 3D viewer. (Yellow solid line)
■ 3D View Function
Before using, please check the connection between tablet PC and control box.
Check the Icon to view the connection with the robot. Please refer to Chapter
6.2 for connection.
Open the desired project. Please refer to Chapter 6.6 for more detail about how to
open a project.
Press the play (▷) button located at the bottom of the screen to run the robot.
A dialog pops up when the current robot position is different from the initial
position specified. Press and hold the ‘approach’ button to move the robot to the
initial position.
In ‘Play’, the program loaded will repeat indefinitely if the ‘number of repeat’ is not
specified. Press ‘Count’ at the top of the screen to set the ‘number of repeat’.
The motion speed of the robot can be adjusted while the robot is in operation.
Warning
Warning:
1) The risk assessment of the robot must be done, and all safety requirements must be
satisfied before the robot operation.
2) The initialization of the robot may fail when the robot is not properly installed, the
payload is not set accurately, or an issue occurs in the initialization process.
3) In ‘Play’, the robot physically moves immediately when the ‘Play’ button is clicked.
Please read carefully all sections related to the robot operation.
4) To move to the ‘Make’ or ‘Setup’ screen, the program running must be terminated.
5) The USB cable between Tablet PC and control box can be unplugged during the
robot operation.
Description
① Program flow tree
② 3D viewer
③ 3D view angle changer
④ System information, system variable monitor
⑤ Play / Pause / Stop / Velocity slide bar
1. External Collision
In order to resolve, please remove the object that collided with the robot. Press
‘Resume’ to resume the current program or ‘Halt’ to terminate.
2. Self Collision
The robot automatically stops when it approaches a configuration where it will run
into itself.
To recover from this situation, press the ‘Teaching Button’ at the tool flange and
manually change the current pose of the robot. Then, please edit the command in the
current program that caused the self-collision.
When the situation arises in ‘Simulation’ mode on the ‘Make’ screen, any of the
following instructions will recover the robot.
3. Alarm Message
When an ‘Alarm’ is set in the current program, the robot will pause once the ‘Alarm’
command is reached. A dialog will then pop up.
This message will occur when the Tablet PC is physically disconnected from the
control box.
To recover, please plug the Tablet PC’s USB cable to the control box.
If the Tablet PC’s USB cable is plugged into both the Tablet PC and the control box, it
may be damaged. Please replace the cable with new one.
This error will appear when the robot is not receiving enough power. It may appear
when the Emergency Stop button is pressed. If the button is not pressed, however,
the AC or DC power line may be damaged.
CHAPTER 9. SETUP
9.1 SET-UP(COBOT)
This setting sets the default settings for the robot arm.
Select the stop mode after the collision detection. Two stop
④
modes (General Stop / Evasion Stop) are available.
9.2 SET-UP(TOOL)
This setting sets the installed tools.
9.3 SET-UP(SYSTEM)
Set the display unit, date and time, UI password, system update, and more.
② Language setup.
9.4 SET-UP(LOG)
Check the system log status of the robot arm.
Copy a log file from the control box to the Tablet PC. Depending
①
on the size of file, it may take few seconds.
9.5 SET-UP(UTILITY)
Provides functionality for packaging and emergency recovery of robots.
Warning
Warning:
1) Before using the ‘Emergency Joint Recovery’, please fully understand all related
usages of the robot.
2) If shipping the robot, it should be packed within its original box.
9.6 SET-UP(SERIAL)
This setting sets serial communication between the robot tool and the control box.
9.7 SET-UP(I/O 1)
This function activates the GPIO port on the control box.
③ Save changes.
⑥ Save changes.
0. Default (GPIO)
1. Run Program Once (Rising Edge)
2. Stop/Halt Program (Rising Edge)
3. Pause Program (Rising Edge)
4. R = On direct-teaching / F = Off direct-teaching
5. R = speed 100% / F = speed 0%
6. R = Convert to REAL mode / F = Convert to SIMULATION mode
7. R = Robot arm initialization (activate servo drive)
8. H = Collision detection off
9. H = Auto-Initialization Key
10. R = Resume the operation from pause state caused by external collision
11. Add Point in UI (Rising Edge)
12. Run Program Repeat (Rising Edge)
13. R=go to Begin posture / F=stop moving
14. R = Program Resume
15. H = Quick Freedrive Change
16. R = Pause / F = Resume Program
17. F = Pause / R = Resume Program
18. H = Speed 100% / L = 0%
19. R = Load Default Program
20. F = Robot Arm PowerDown
21. R = Touch Sensing
22. F = Touch Sensing
23. H = No Arc
24. H = Program Start Block
25. R = Ext.Joint0 Plus/F=stop
26. R = Ext.Joint0 Minus/F=stop
27. R = Ext.Joint1 Plus/F=stop
28. R = Ext.Joint1 Minus/F=stop
29. R = Ext.Joint2 Plus/F=stop
30. R = Ext.Joint2 Minus/F=stop
31. H = Safety Speed
Warning
Warning:
1) Before using digital input, please fully understand electrical characteristics and
all related manuals about digital input port.
All ports specified as one of the types except for ‘Default (0)’ mode cannot be used in
‘Teaching’
0. Default (GPIO)
1. H = Program/Robot is running / L = Idle
2. L = Program/Robot is running / H = Idle
3. H = External collision is detected
4. H = Direct teaching is running
5. Bypass the Digital input signal (same number Din port)
6. Bypass Tool Flange input 0
7. Bypass Tool Flange input 1
8. H = Robot’s arm is in active status (servo on) / L = non-active
9. H = Real mode status / L = Simulation mode status
10. H = Robot is moving / L = Idle
11. L = Robot is moving / H = Idle
12. H = Robot activation (Servo-on) fail
13. H = Arm electric power is On / L = Power is Off
14. H = Collision detection is running / L = not-running
15. H = Pause state
16. H = Trap status in Inbox 0
17. H = Trap status in Inbox 1
18. PWM module
19. H = Teaching Pendant is connected
20. H = Program is running by MAKE page
21. H = Program is running by PLAY page
22. H = Is Conveyor mode
23. H = Control Box Boot
24. H = Force Control mode
25. PC Alive Pulse
26. H = Speed Bar 100%
27. H = Last Program Load Success
28. H = TCP is in InBox 0
Warning
Warning:
1) Before using digital output, please fully understand electrical characteristics and all
related manuals about digital output port.
9.8 SET-UP(I/O 2)
Set I / O value to always perform before / after program operation.
After the control box boots for the first time, select the digital
⑤
output option for the control box.
9.9 SET-UP(INBOX)
This setting sets the Inbox size and location information for using Inbox features.
Input panel to specify center of mass and size for Inboxes 0 and
① 1. The coordinate system matches the manufacture’s (robot
base) coordinate system.
② Save changes.
9.10 SET-UP(INTERFACE )
Performs the settings required for the user to operate the robot and UI.
⑥ Limit the upper limit value of the speed bar on the UI.
9.11 SET-UP(COORDINATE)
Contains information regarding user coordinate settings.
9.12 SET-UP(DEVICES)
Set up additional equipment associated with the robot.
Select the TCP number you want to modify. Set the name, TCP
②
location, and center of gravity, and then save.
Select the function the user wants to use. The function is divided
③
into Load, Load + Play(Once), and Load + Play(Repeat)..
The Start Program function used as the 'Control Box Digital In Function Definition' of the
existing 'Setup > I/O1' can use only one digital input, and the program can run only the main
program currently uploaded to the control box. ‘Setup > Program Table’ can load different
programs to different digital inputs. You can run additionally loaded programs.
The picture below shows the difference between the two features.
Check
Check Point Period
Item
Every
Check that all screws on the body are
Screws 3
tightened months
Warning
Warning:
1) During maintenance, cut off the power to the system (Control Box and Robot Arm)
and perform work.
2) For pneumatic/electric line passing models, remove the connected energy source
(pneumatic/electric power) and perform the work.
■ Maintenance Instruction
1. Move the robot to the ‘Home’ position.
2. Turn off the control box.
3. Check the following list.
① Robot-Control Box Cable: Is it cut or pierced?
② Screws: Are any loose?
③ Mechanical Parts (Motor, Brake, Reduction Gear): Are any louder than normal?
4. Remove stains, dust, and any other foreign objects.
■ Maintenance Period
The control box requires an inspection and clean-up at least once per 6 months.
Depending on the environmental condition around the robot, the period may differ.
■ Maintenance Instructions
1. Turn off the control box.
2. Remove the cover of the control box.
3. Remove dust in the control box with a vacuum cleaner.
4. Check that all wires are connected properly.
Specification
RB5-850E Series: 5 kg / 11 lbs
RB3-1200E Series: 3kg / 6.6 lbs
Payload
RB10-1300E Series: 10 kg / 22 lbs
RB16-900E Series: 16 kg / 35.2 lbs
RB5-850E Series: 22 kg / 48.5 lbs
RB3-1200E Series: 22.4 kg / 49.4 lbs
Weight
RB10-1300E Series: 37.1 kg / 81.8 lbs
RB16-900E Series: 32 kg / 70.5 lbs
RB5-850E Series: 850 mm / 33.5 in
RB3-1200E Series: 1200 mm / 47.2 in
Arm Reach
RB10-1300E Series: 1300 mm / 51.1 in
RB16-900E Series: 900 mm / 35.4 in
Degree of freedom 6 axis
Joint Range ± 360°(Elbow: ± 165°)
Repeatability ±0.1 mm
Specification
Weight CB04, CB05: 17 kg / 37.5 lbs
Size (W x H x D) 454 x 240 x 416.2 mm
6. Testing environment
Digital input device test was conducted using Toggle switch, and the following configuration
was tested.
The initial factory condition is as above, and it is possible to install the operation.
Source : https://www.motionsolutions.com
This applies to Enabling Device in accordance with ISO 10218, IEC 60204-1.
Load
Single channel 1A is possible, but the total current of all channels must be less than 2A
4. Test environment
Digital output device test was conducted using 24Vdc LED and the following configuration
was tested.
This is a specification that applies only to Tool Flange Digital input (At this time, only DIA and
DIB for Non-E version Robot are applied.)
3. Test environment
Digital input device test was conducted using power supply, and the following configuration
was tested.
PNP sensor can be used in the same way as the above connection.
This applies equally to the Control Box Digital input.
3. Test Environment
Digital output device test was conducted using 24V dc LED and the following configuration
was tested.
If users MUST operate as above diagram, digital input stage resistance ratio adjustment is
necessary.
The user can control the robot with teaching pendant (tablet UI), but it provides a way to
control the robot from any external controller for user convenience or operation.
The RB series receives script commands by default and executes those commands. The
task of writing a motion using the teaching pendant (tablet UI) and executing the script of
the file in order is a general operation method. The following method described in this
document is an alternative method of receiving a command script from another external
device to control a robot of the RB series.
The control syntax provided in the teaching pendant / tablet UI can be implemented by the
user directly from the external control device, and the robot operation commands / IO
control commands are sent according to the user’s use case.
The following document describes an example of driving a robot with the above concepts.
For example, suppose there are Point functions in the Move command function.
1)
move joint {
point ( ) absolute 0.4, 0.1, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0
point ( ) absolute 0.4, 0.1, 5.0, 5.0, 5.0, 5.0, 5.0, 5.0
}
2)
move joint {
point ( ) absolute 0.4, 0.1, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0
point ( ) absolute 0.4, 0.1, 5.0, 5.0, 5.0, 5.0, 5.0, 5.0
The difference between 1) and 2) is the presence or absence of “}” at the end. In both cases,
the point statement is complete. However, unlike 1), 2) is a syntax that cannot operate
because the move statement, which is the parent of point, is not completed, and the parser
will wait for the statement to complete.
3)
folder( ) {
move joint {
point ( ) absolute 0.4, 0.1, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0
point ( ) absolute 0.4, 0.1, 5.0, 5.0, 5.0, 5.0, 5.0, 5.0
}
In the same logic as above, the parser does not run because it waits for the folder statement
to complete.
However, the above method is not suitable for external control method. The user expects the
robot to operate by parsing the command the moment it sends it through external control. It
does not send multiple commands and complete those lines of text like example 3).
So external control must be organized so that each command is sent separately as a string.
External control does not provide any features that control the flow. Commands such as
‘repeat’, ‘if-else’, ‘break’, or ‘wait’ in the work document will not be available externally and
must be replaced by the same structure and logic within the external control.
The following commands are actual motion commands to move the robot. Each one
contains an example string that matches how a user would control the robot from an
external application.
1) jointall
2) movetcp
3) movecircle
4) blend_jnt
5) blend_tcp
1) jointall
Command Jointall
Script jointall spd, acc, joint1, joint2, joint3, joint4, joint5, joint6
Descript. The input values for spd and acc are used to define velocity
and acceleration respectively. The spd and acc should be a
number between 0 and 1. Smaller number represents slower.
When the input value is -1, the joint moves with the default
value.
Example “jointall 0.4, 0.1, 10.0, 10.0, 10.0, 10.0, 10.0, 10.0”
2) movetcp
Command Movetcp
Script movetcp spd, acc, x, y, z, rx, ry, rz
This command moves TCP in Cartesian Space.
The input values for rx, ry, rz are used to define the desired
orientation to go. It is represented as roll, pitch and yaw in
Euler angle, respectively. The values should be a number in
degree.
Descript.
The input values for spd and acc are used to define velocity
and acceleration respectively. The spd and acc should be a
number between 0 and 1. Smaller number represents slower.
When the input value is -1, the joint moves with the default
value.
Example “movetcp 0.4, 0.1, 100.0, 100.0, 300.0, 0.0, 90.0, 0.0”
3) movecircle
The input values for x1, y1, z1 are used to define the relative
position of TCP at mid-point from the center of the circle. It is
a number in mm.
The input values for rx1, ry1, rz1 are used to define the
relative orientation of TCP at mid-point in Euler angle in
respect to the center of the circle. It is a number in degree.
The input values for x2, y2, z2 are used to define the relative
position of TCP at end-point from the center of the circle. It is
a number in mm.
The input values for rx1, ry1, rz1 are used to define the
relative orientation of TCP at end-point in Euler angle in
respect to the center of the circle. It is a number in degree.
The input values for spd and acc are used to define velocity
and acceleration respectively. The spd and acc should be a
number between 0 and 1. Smaller number represents slower.
When the input value is -1, the joint moves with the default
value.
The input values for cx, cy, cz are used to define the position
of axes of rotation (the center position of the circle). It is a
number in mm.
Descript.
The values for ax, ay, az are used to define the orientation of
axes of rotation. It represents an unit vector.
The input values for spd and acc are used to define velocity
and acceleration respctively. The spd and acc should be a
number between 0 and 1. Smaller number represents slower.
When the input value is -1, the joint moves with the default
value.
4) blend_jnt
Command blend_jnt
Script blend_jnt clear_pt
This command deletes all desired joint values previously
defined in the joint blending sequence.
Descript.
This command should be used at the beginning of blend_jnt
programming.
Example “blend_jnt clear_pt”
Command blend_jnt
blend_jnt add_pt spd, acc, joint1, joint2, joint3, joint4, joint5,
Script
joint6
Example “blend_jnt add_pt 0.4, 0.1, 10.0, 10.0, 10.0, 10.0, 10.0, 10.0”
Command blend_jnt
Script blend_jnt move_pt
5) blend_tcp
Command blend_tcp
Script blend_tcp clear_pt
Command blend_tcp
Script blend_tcp add_pt spd, acc, radius, x, y, z, rx, ry, rz
Descript. The input values for rx, ry, rz are used to define the desired
orientation to go. It is represented as roll, pitch and yaw in
Euler angle, respectively. The values should be a number in
degree.
The input values for spd and acc are used to define velocity
and acceleration respectively. The spd and acc should be a
number between 0 and 1. Smaller number represents slower.
When the input value is -1, the joint moves with the default
value.
“blend_tcp add_pt 0.4, 0.1, 30.0, 100.0, 100.0, 300.0, 0.0, 90.0,
Example
0.0”
Command blend_tcp
Script blend_tcp move_pt
The following scripts are commands to control the output values of the digital and analog
ports of switchboards and tool flanges.
1) digital_out
2) analog_out
3) tool_out
1) digital_out
digital_out d0, d1, d2, d3, d4, d5, d6, d7, d8, d9, d10, d11, d12,
Script
d13, d14, d15
This command generates a signal through the digital output
port.
The input values for d0 to d15 are used to activate the port.
The number should be 0 or 1. 0 and 1 mean off and on,
Descript.
respectively.
Example “digital_out 1, 1, 1, 1, 0, 0, 0, 0, -1, -1, -1, -1, -1, -1, -1, -1”
2) analog_out
Script analog_out a0, a1, a2, a3
3) tool_out
Script tool_out volt, d0, d1
This command sets the voltage and corresponding digital
output ports at the tool flange.
Descript.
The input value for volt is used to set the voltage to generate.
The following commands are for initialization, termination, and operation mode changes
speed change.
1) mc
2) shutdown
3) pgmode
4) sdw
1) mc
Script mc jall init
This command starts initialization process.
Descript.
2) shutdown
Script shutdown
Descript. This command terminates the robot operation and turns off
the power.
Example “shutdown”
3) pgmode
Script pgmode mode_type
This command changes the mode between real and
simulation modes.
Descript.
The input values for mode_type should be “real” or
“simulation”.
In “real”, the robot moves when commanded.
“pgmode real”
Example
“pgmode simulation”
task
Script task load work_file_name
The format of the work file is “.wsl”. The input value for
Descript. work_file_name is the path and file name without “.wsl”
If the file is saved via the pendent, the file can be loaded
without connecting to the pendent.
“task play”
Example
“task play once”
This command sets the number of repetition for the work file.
“task repeat 5”
Example
“task repeat -1”
In order to use external control, the external computer must be connected to the control box.
The connection uses TCP / IP communication and the corresponding IP address can be set
in the pendant. The result is displayed on the screen on control panel. Ports 5000 and 5001
open for external control. Port 5000 is a port for receiving commands, and port 5001 is a
port for requesting and sending data indicating robot status. For convenience, port 5000 is
called the command port and port 5001 is called the data port.
The user can send the script command described above to the command port. The
command port has a filter for the first command, so if the start is not a script command as
described above, such as ‘jointall’, ‘movetcp’, ‘mc’, ‘pgmode’, etc., the response shows, "The
command is not allowed." If the command starts with a normal command and passes the
input statement to the parser, the response shows, “The command was executed.”
When the command “reqdata” is sent to the data port, robot status information is sent to the
data port in response. The format of the data is shown below.
The format of the data is shown below. Depending on the system version, the size of the
data may be different. However, the order is consistent, please refer to the table below.
Warning
Warning:
The following image is the programming UI when the example program is executed.
3) Robot Status
The status of the robot can be known from the data received from the main program
in the control box. This data is sent to the main program in response to a request for
"reqdata" on port 5001. The format of the data is passed in the form of the
'systemSTAT' structure in 'CommonHeader.h'.
run mode: Displays the operation mode of the robot. There are real mode and
simulation mode. In real mode, motion commands are actually applied to the robot
and the robot moves. In simulation mode, the motion is performed but the command
is not sent to the robot. The teaching pendant will show the translucent robot moving.
The robot operation mode is represented by the value of the 'program_mode' variable
in 'systemSTAT'. A value of 0 for this variable is real mode, and a value of 1 for
simulation mode.
robot state: Indicates whether the robot is currently moving or in a state capable of
receiving motion commands. The robot state can be known from the value of the
'robot_state' variable of 'systemSTAT'. If this value is 1, the idle state can receive
motion commands. If the value is 3, the robot is moving. Motion commands are
ignored while the robot is in motion. If the value is 2, the robot is stopped due to
unspecified reasons or stopped by the pause command. In this case, it is displayed
as paused in the ‘status’ column.
status: Displays current robot special operation status or abnormal status as follows.
Possible ones are ‘teaching’ if teaching directly, ‘ext. collision’ if stopped by external
collision detection, ‘self-collision’ if it is just before self-collision during operation,
‘paused’ if stopped by pause command, ‘ems’ if input without solution in robot
control algorithm comes in. Power problem or robot control problem will change the
color of the ‘sos’ edit window. This is displayed by referring to the values of
'op_stat_collision_occur', 'op_stat_sos_flag', 'op_stat_self_collision',
'op_stat_soft_estop_occur', 'op_stat_ems_flag' and 'robot_state' in 'systemSTAT'.
joint reference: Displays the reference input value for each joint (in degrees).
joint encoder: Displays the current encoder value of each joint (in degrees).
TCP reference: Displays the reference position value of TCP (in mm and degree).
digital in: Displays the digital input value of the control box.
digital out: Displays the digital output value of the control box.
analog in: Displays the analog input value of the control box (in voltage).
analog out: Displays the analog output value of the control box (in voltage).
tool out voltage: Displays the output voltage of the currently set tool flange board (0V,
12V or 24V).
tool digital in: Displays the digital input value of the tool flange board.
tool digital out: Displays the digital output value of the tool flange board.
tool analog in: Displays the analog input value of the tool flange board
4) Mode Change
The robot can have two modes of operation (Simulation mode and Real mode). In
Simulation mode, the robot does not move but the value of the input reference can be
changed. In Real mode, the robot actually moves in response to user input. To
change the robot's operation mode, press the ‘Real’ and ‘Simulation’ marked buttons.
Immediately after the initialization process, the robot is in Simulation mode.
5) Speed Change
Adjust the overall speed of robot motion. Users can move the slider bar between 0%
and 100%. This speed is multiplied by the speed given to the robot's motion
command.
8) Test Motion
Press the ‘Motion Test’ button to perform three basic motions in sequence. Please
consider the environment around the robot.
If the user presses the ‘Get Joint and TCP’ button, the reference angle and TCP value
of the current robot's joint will be expressed using the ',' separator in the edit window
next to it. It is helpful to copy this value when coding the robot motion sequence into
the program.
This example is a single process example with a GUI. In Qt, users can easily place the GUI,
generate events like button clicks, and associate them with user’s program. Refer to
‘mainwindow.ui’.
The core contents of the example are included in ‘mainwindow.cpp’ and ‘mainwindow.h’. In
‘CommonHeader.h’, users can check the shape of the robot status data.
The robot control commands that can be used by the user are specified in 'mainwindow.h' as
above. The detailed description is as follows.
Function CobotInit(void)
Script “jointall spd, acc, joint1, joint2, joint3, joint4, joint5, joint6”
MoveTCP(float x, float y, float z, float rx, float ry, float rz, float
Function
spd = -1, float acc = -1);
“movecircle threepoints intended spd, acc, x1, y1, z1, rx1, ry1,
rz1, x2, y2, z2, rx2, ry2, rz2”
“movecircle threepoints constant spd, acc, x1, y1, z1, rx1, ry1,
Script
rz1, x2, y2, z2, rx2, ry2, rz2”
“movecircle threepoints radial spd, acc, x1, y1, z1, rx1, ry1, rz1,
x2, y2, z2, rx2, ry2, rz2”
MoveCircle_Axis(int type, float cx, float cy, float cz, float ax,
Function
float ay, float az, float rot_angle, float spd = -1, float acc = -1);
“movecircle axis intended spd, acc, rot_angle, cx, cy, cz, ax, ay,
az”
Script “movecircle axis constant spd, acc, rot_angle, cx, cy, cz, ax, ay,
az”
“movecircle axis radial spd, acc, rot_angle, cx, cy, cz, ax, ay, az”
Function MoveJointBlend_Clear(void);
Function MoveJointBlend_MovePoint(void);
Function MoveTCPBlend_Clear(void);
Function MoveTCPBlend_MovePoint(void);
ControlBoxDigitalOut(int d0, int d1, int d2, int d3, int d4, int d5,
Function int d6, int d7, int d8, int d9, int d10, int d11, int d12, int d13, int
d14, int d15)
“digital_out d0, d1, d2, d3, d4,d5, d6, d7, d8, d9, d10, d11, d12,
Script
d13, d14, d15”
Function ProgramMode_Real(void)
Function ProgramMode_Simulation(void)
Function MotionPause(void)
Function MotionResume(void)
Function CollisionResume(void)
Function MotionHalt(void)
The code above is an action code that performs two joint control motions and one TCP
control motion sequentially. There is a ‘test_flag’ which decides whether or not to execute
the motion sequence, and if this value is true, it moves sequentially from the previous motion
to the next motion according to the ‘test_state’ value indicating the progress of the sequence.
At this point, check whether the previous motion is over or not, and there is an ‘IsMotionIdle’
function to make it easier. This function sends instructions to the robot's main controller.
The ‘onLogic’ function, which contains an action sequence, is linked to a timer provided by
Qt. In this example, it is set at 10ms intervals, and this function is executed every 10ms.
Executing robot motion is simple. Set the 'test_state' value representing the motion
sequence state to 0, the starting point of the motion, and set the 'test_flag' value to perform
the motion to move the robot.
The behavior shown in the example code provided is very simple, but also free from
structure constraints. Users can build their own application based on this example code, or
build a separate application by understanding only the script.
The graph below shows the stop time and stop distance for stop category 1 for Joint 0
(Base axis), Joint 1 (Shoulder axis), and Joint 2 (Elbow axis).
Warning
Depending on the situation, the actual stop motion may differ from the results below. Joint 0
is the result of horizontal movement, and Joint 1 and 2 are the result of vertical downward
movement. For the length of the arm, the maximum length is applied.
APPENDIX H. NAMEPLATE
The nameplate of the robot is divided into the robot arm and the control box as shown below.
[ Robot Arm ]
RB5-850E Series
RB3-1200E Series
RB10-1300E Series
RB16-900E Series
[Control Box]
RB5-850E Series, RB3-1200E Series: Stand type(CB04)
1. Overview
RB's Modbus TCP server (slave controller) is fixed at port number 502. The IP address
changes depending on the network settings through the UI. (The initial IP address is
10.0.2.7.)
RB's Modbus server allows the connection of multiple clients and executes the following
operation commands.
2. Exception Code
The following error message is returned when accessing the wrong address, incorrect range
of values, or invalid command sent.
Bit Address
Address Function Read Write
0 Box digital input 0 o x
1 Box digital input 1 o x
2 Box digital input 2 o x
3 Box digital input 3 o x
4 Box digital input 4 o x
5 Box digital input 5 o x
6 Box digital input 6 o x
7 Box digital input 7 o x
8 Box digital input 8 o x
9 Box digital input 9 o x
10 Box digital input 10 o x
11 Box digital input 11 o x
12 Box digital input 12 o x
13 Box digital input 13 o x
14 Box digital input 14 o x
15 Box digital input 15 o x
16 Box digital output 0 o o
17 Box digital output 1 o o
18 Box digital output 2 o o
19 Box digital output 3 o o
20 Box digital output 4 o o
21 Box digital output 5 o o
22 Box digital output 6 o o
23 Box digital output 7 o o
24 Box digital output 8 o o
25 Box digital output 9 o o
26 Box digital output 10 o o
27 Box digital output 11 o o
28 Box digital output 12 o o
29 Box digital output 13 o o
30 Box digital output 14 o o
31 Box digital output 15 o o
32 Tool digital input 0 o x
33 Tool digital input 1 o x
34 Tool digital output 0 o o
35 Tool digital output 1 o o
Word Address
Address Function Read Write Comments
Box digital input [BBBB BBBB BBBB
0 o x
0~15 BBBB]
Box digital output [BBBB BBBB BBBB
1 o o
0~15 BBBB]
2 Box analog input 0 o x 1mV unit
3 Box analog input 1 o x 1mV unit
4 Box analog input 2 o x 1mV unit
5 Box analog input 3 o x 1mV unit
6 Box analog output 0 o o 1mV unit
7 Box analog output 1 o o 1mV unit
8 Box analog output 2 o o 1mV unit
9 Box analog output 3 o o 1mV unit
Extend digital input [BBBB BBBB BBBB
10 o x
0~15 BBBB]
Extend digital output [BBBB BBBB BBBB
11 o x
0~15 BBBB]
12 Extend analog input 0 o x 1mV unit
13 Extend analog input 1 o x 1mV unit
14 Extend analog input 2 o x 1mV unit
15 Extend analog input 3 o x 1mV unit
Extend analog output
16 o o 1mV unit
0
Extend analog output
17 o o 1mV unit
1
Extend analog output
18 o o 1mV unit
2
Extend analog output
19 o o 1mV unit
3
20~29 Reserved (Box IO)
30 Tool output voltage o o 0, 12, 24
31 Tool digital input 0~1 o x [TTxx xxxx xxxx xxxx]
Tool digital output
32 o o [TTxx xxxx xxxx xxxx]
0~1
33 Tool analog input 0 o x 1mV unit
34 Tool analog input 1 o x 1mV unit
35~49 Reserved (Tool IO)
50 Is Robot Activated o x 0 or 1
51 Is Real-mode o x 0 or 1
52 Is Collision Detected o x 0 or 1
Is Robot arm power
53 o x 0 or 1
engaged
Is Direct Teaching
54 o x 0 or 1
mode
55 Is Robot moving o x 0 or 1
56 Is Pause state o x 0 or 1
Is Teaching pendant
57 o x 0 or 1
is connected
58 Is Program Run o x 0 or 1
59 Is No-Arc mode is on o x 0 or 1
Is EMG button
60 o x 0 or 1
released
61 Is First Program Run o x 0 or 1
62~99 Reserved (Future System)
Command: Start Rising Edge is
100 o o
Program Once command
Command: Start Rising Edge is
101 o o
Program Repeat command
Command: Pause Rising Edge is
102 o o
Program command
Command: Stop Rising Edge is
103 o o
Program command
Command: Resume Rising Edge is
104 o o
from pause command
Command: Resume Rising Edge is
105 o o
from collision command
Command: Load Rising Edge is
106 o o
default Program command
Command: Robot Rising Edge is
107 o o
Arm activation command
Command: Change Rising Edge is
108 o o
to Real-mode command
Command: Power off Rising Edge is
109 o o
the robot arm command
110~127 Reserved (Future System)
User General
128~255 o o User Defined Area
Purpose Register
256 Joint reference 0 o x 0.02deg unit / Signed
257 Joint reference 1 o x 0.02deg unit / Signed
258 Joint reference 2 o x 0.02deg unit / Signed
259 Joint reference 3 o x 0.02deg unit / Signed
260 Joint reference 4 o x 0.02deg unit / Signed
261 Joint reference 5 o x 0.02deg unit / Signed
262 Joint angle 0 o x 0.02deg unit / Signed
263 Joint angle 1 o x 0.02deg unit / Signed
264 Joint angle 2 o x 0.02deg unit / Signed
265 Joint angle 3 o x 0.02deg unit / Signed
266 Joint angle 4 o x 0.02deg unit / Signed
267 Joint angle 5 o x 0.02deg unit / Signed
Meas.) Curr+LPF
Joint 3 Gap(Esti.-
301 o x 10mA unit / Signed
Meas.) Curr+LPF
Joint 4 Gap(Esti.-
302 o x 10mA unit / Signed
Meas.) Curr+LPF
Joint 5 Gap(Esti.-
303 o x 10mA unit / Signed
Meas.) Curr+LPF
304~329 Reserved (Joint Information)
330 TCP reference X o x 0.1mm unit / Signed
331 TCP reference Y o x 0.1mm unit / Signed
332 TCP reference Z o x 0.1mm unit / Signed
333 TCP reference RX o x 0.02deg unit / Signed
334 TCP reference RY o x 0.02deg unit / Signed
335 TCP reference RZ o x 0.02deg unit / Signed
336 TCP position X o x 0.1mm unit / Signed
337 TCP position Y o x 0.1mm unit / Signed
338 TCP position Z o x 0.1mm unit / Signed
339 TCP position RX o x 0.02deg unit / Signed
340 TCP position RY o x 0.02deg unit / Signed
341 TCP position RZ o x 0.02deg unit / Signed
342~389 Reserved (TCP Information)
1. Overview
Rainbow Robotics' system update is a two-step process.
(※ It is recommended that you back up the acquired files before proceeding to the next
step.)
3. UI Update
Rainbow Robotics' tablet UI program is distributed in the form of APK.
This is the same installation file as a regular Android application. Therefore, UI program is
updated by moving the installation APK file to the tablet and installing it.
(※ Rainbow Robotics recommends installing after deleting an existing application.)
(※ When deleting an existing application, the program file (.wsl) is deleted together. Back up
the program file in step 1 and proceed with this process.)
(If the communication between the tablet and the control box is normal, the first box will be
lit blue. For safety reasons, it is recommended not to initialize the robot.)
In the “Software Update” section on the right, check the Activate checkbox.
During the restart process, “Please Wait…” is temporarily displayed on the LCD of the control
box. This indicates that the control box is rebooting.
After the reboot is completed, “Normal Operation” is displayed on the LCD of the control box.
When you go back to the UI home screen, the software version is displayed on the upper
right (or lower left). Check if it is updated to the correct version.
4. A menu called "Developer Options" will appear under "About Tablet" as shown below.
6. Run the APK distributed by Rainbow Robotics to install the UI program on your tablet.
If the solenoid is on, the physical interference between the turning radius of the brake ring
and the brake wing is released, and if the solenoid is off, the physical interference between
the end of the brake ring and the brake wing is applied, which stops the rotation of the
driveshaft.
When the brake ring rotates and pushes through the brake wing, the wing returns to the
spring force, and then a bi-directional brake occurs through physical interference, keeping
both bi-directional rotations of the driveshaft stationary.