Rainbow Robotics - UI Script Manual
Rainbow Robotics - UI Script Manual
Rainbow Robotics - UI Script Manual
7
(Date : 2021/07/31)
(Compatible up to version RB software 3.7.x)
[ENG]
Rainbow-Robotics
www.rainbow-robotics.com
Index
Rainbow Robotics Inc. owns copyright and intellectual property rights on all contents and designs of this
manual. Therefore, the use, replication, and distribution of Rainbow Robotics Inc. properties and materials
without prior written permission is strictly prohibited and corresponds to Rainbow Robotics' infringement of
intellectual property rights.
User is solely responsible for any misuse or alteration of the patent rights of this equipment. The information
contained in this manual is reliable.
The information provided in this manual is the property of Rainbow Robotics Inc. and may not be reproduced
in whole or in part without of Rainbow Robotics Inc.’s consent. The information contained in this manual is
subject to change without notice.
For more information on revising the manual, please visit the website
(www.rainbow-robotics.com).
2
1. VARIABLE TYPES AND DECLARATION
var
Example :
var my_val # Assign variable without initial value (initial value is 0)
var my_val = 1 # Assign variable with initial value
arr
Example :
arr my_arr # Assign array without initial value (initial value is {0, 0, … , 0})
arr my_arr = {1, 2, 3} # Assign array with initial value
str
Example :
str my_str # Assign string without initial value (initial value is “”)
str my_str = “Hello” # Assign string with initial value
3
point, pnt
Example :
point my_point # Assign point without initial value (initial value is {0, 0, 0, 0, 0, 0})
point my_point = {100, 200, 300, 90, 0, 90} #Assign point with initial value
pnt my_point = {50, 100, 100, 90, 0, 0} #Assign point with initial value
joint, jnt
Example :
joint my_joint #Assign joint without initial value (initial value is {0, 0, 0, 0, 0, 0})
joint my_joint = {0, 0, 0, 90, 0, 0} #Assign joint with initial value
jnt my_joint = {30,0,0,90,0,0} #Assign joint with initial value
Abbreviation
v variable type (var)
4
Point type and Joint type variables can be used as temporary variables without names.
These temporary variables can be used immediately without a separate name declaration, and can be
utilized as follows.
Method 1)
#Assign joint type with name ‘my_angle’.
jnt my_angle = {0,0,90,0,90,0}
#Use ‘my_angle’ as an input argument of function ‘move_j’.
move_j(my_angle, 60, 80)
Method 2)
#temporary joint type is used as an input argument of function ‘move_j’.
move_j(jnt[0,0,90,0,90,0], 60, 80)
The above examples are examples using move_j(J, v, v) and move_l(P, v, v) functions.
For more information about these functions, see Chapter 7. Motion Functions.
5
Rainbow UI Script can be used as follows:
6
The following comparison operators and logical operators can be used.
[Comparison operators]
A >= B
# 1 (True) if the left side is greater than or equal to the right side, otherwise 0 (False)
A <= B
# 1 (True) if the right side is greater than or equal to the left side, otherwise 0 (False)
A == B
# 1 (True) if the left and right sides are equal, otherwise 0 (False)
A != B
# 1 (True) if the left and right sides are not-equal, otherwise 0 (False)
[Logical operators]
A && B
A and B
A AND B
A And B
# 1 (True) only if both the left and right sides are True, otherwise 0 (False)
A || B
A or B
A OR B
A Or B
# 1 (True) if either of the left and right sides is True, 0 (False) if both values are False
7
TRUE and FALSE used in comparison/logical operation are matched with the following values.
Example 1)
if (SD_SOCK_IS_OPEN_0 == True){
~~
}
Example 2)
if (SD_SOCK_IS_OPEN_0 == 1){
~~
}
8
■ The Script grammar of Rainbow Robotics uses the following units.
> Angle : Degree
> Position : mm (0.001m)
■ The following rotation notation is used in the script grammar and notation of Rainbow Robotics.
> Z-Y’-X’’ Euler angle (Degree)
9
2. MATH FUNCTIONS
v = cos(v)
Return :
v : return single number
Example :
var my_result = cos(45*D2R) #my_result = 0.7071
v = cosd(v)
Return :
v: return single number
Example :
var my_result = cosd(45) #my_result= 0.7071
v = sin(v)
Return :
v: return single number
Example :
var my_result = sin(30*D2R) #my_result= 0.5
10
v : sind(v)
Return :
v: return single number
Example :
var my_result = sind(30) #my_result=0.5
v = tan(v)
Return :
v: return single number
Example :
var my_result = tan(45*D2R) #my_result=1
v = tand(v)
Return :
v: return single number
Example :
var my_result = tand(45) #my_result=1
11
v = acos(v)
Return :
v: return single number (Unit: radian)
Example :
var my_result = acos(-1) #my_result= PI (3.141592)
v = acosd(v)
Return :
v: return single number (Unit: degree)
Example :
var my_result = acosd(-1) #my_result=180
v = asin(v)
Return :
v: return single number (Unit: radian)
Example :
var my_result = asin(1) #my_result= 1.5708
12
v = asind(v)
Return :
v: return single number (Unit: degree)
Example :
var my_result = asind(1) #my_result= 90
v = atan(v)
Return :
v: return single number (Unit: radian)
Example :
var my_result = atan(1) #my_result= 0.7854
v = atand(v)
Return :
v: return single number (Unit: degree)
Example :
var my_result = atand(1) #my_result= 45
13
v = atan2(v, v)
Return :
v: return single number (Unit: radian)
Example :
var my_result = atan2(1, 1) #my_result= 0.7854
v = atan2d(v, v)
Return :
v: return single number (Unit: degree)
Example :
var my_result = atan2d(1, 1) #my_result= 45
PI
R2D
D2R
14
v = abs(v)
Return :
v: return single number
Example :
var my_result = abs(-5.2) #my_result= 5.2
v = sqrt(v)
Return :
v: return single number
Example :
var my_result = sqrt (4) #my_result= 2
v = cell(v)
Return :
v: return single number
Example :
var my_result = cell(4.2) #my_result= 5
15
v = floor(v)
Return :
v: return single number
Example :
var my_result = floor(4.8) #my_result= 4
v = round(v)
Return :
v: return single number
Example :
var my_result = round(4.2) #my_result= 4
var my_result = round (4.8) #my_result= 5
v = log(v)
Return :
v: return single number
Example :
16
v = log10(v)
Return :
v: return single number
Example :
var my_result = log10 (3) #my_result= 0.4771
v = pow(v, v)
Return :
v: return single number
Example :
var my_result = pow(2,3) #my_result= 8
v = rand()
Random number generator function with a uniform distribution between 0 and 1..
Input :
None.
Return :
v: return single number
Example :
var my_result = rand() #my_result= 0.1315
var my_result = rand() #my_result= 0.7869
var my_result = rand() #my_result= 0.4277
17
3. STRING FUNCTIONS
v = str_empty(s)
Return :
v: return single number 0 or 1 (if string is empty 1, if it is not empty 0)
Example :
string my_str1 = “rainbow”
string my_str2
v = str_find(s, s)
A function that returns the index of a string's position within another string.
Input :
Two string type variables or constant strings.
s: reference string
s: string to find (target)
Return :
v: Returns a single number corresponding to the index.
: If it does not exist, it returns -1.
Example :
string my_str1 = “rainbow_robotics”
string my_str2 = “robotics”
18
v = str_len (s)
Return :
v: return single number (length of the string)
Example :
string my_str = “rainbow_robotics”
var my_result = str_len(my_str) #my_result=16
s = str_sub (s, v, v)
Return :
s: return truncated string
Example :
string my_str = “rainbow_robotics”
string my_result = str_sub(my_str, 3, 7) #my_result= “nbow_ro”
s = str_cat (s, s)
Return :
s: return added string
Example :
string my_str1 = “hi”
string my_str2 = “rainbow”
19
v = str_cmp (s, s)
Return :
v: Returns 0 if the strings are equal, or a single non-zero number if they are different.
If the strings are not equal, compares the first unequal character and returns a single number with a value greater
than zero if the base string is greater than the comparison string and less than zero if the string is less than.
Example :
string my_str1 = “hello”
string my_str2 = “hello”
string my_str3 = “hgello”
string my_str4 = “Hello”
#my_result1=0
var my_result1 = str_cmp(my_str1, my_str2)
v = to_num (s)
Return :
v: return single number
Example :
str my_string = “123.45”
var my_result = to_num(my_string) #my_result=123.45
20
s = to_str (v)
s = to_str (P)
s = to_str (J)
Return :
s: return string
Example :
var my_value = 123.45
str my_result = to_str(my_value) #my_result= “123.45”
s = to_str_int (v)
Return :
s: return string
Example :
var my_value = 123.45
str my_result = to_str_int(my_value) #my_result= “123”
21
4. BIT FUNCTIONS
v = get_bit(v, v)
A function that obtains the bit of a specific bit position from a variable or constant.
Input :
Two variable types or constant numbers.
v: Target variable or number for the bit aquisition
v: Target bit index (position). Bit index is starting from 0.
Return :
v: Bit value ( 0 or 1)
Example :
var my_bit = get_bit(1234, 3)
#1234 = 0b10011010010
#my_bit=0
set_bit(v, v)
This is a function that changes the bit at a specific bit position in variable to 1.
Input :
Two variable types or constant numbers.
v: Target variable or number for the bit set
v: Target bit index (position). Bit index is starting from 0.
Return :
None.
Example :
var my_var = 1234
#1234 = 0b10011010010
set_bit(my_var, 3)
#my_var =1242
22
clear_bit(v, v)
This is a function that changes the bit at a specific bit position in variable to 0.
Input :
Two variable types or constant numbers.
v: Target variable or number for the bit clear
v: Target bit index (position). Bit index is starting from 0
Return :
None.
Example :
var my_var = 1234
#1234 = 0b10011010010
clear_bit(my_var, 1)
#my_var =1232
<<
>>
&
|
Example :
Var my_num = 12 #my_num = 0b1100
Var my_num2 = my_num << 2 #my_num2 = 48 (=0b110000)
23
5. SYSTEM FUNCTIONS
halt
Return :
None.
Example :
halt
24
v = pattern_get_count(v)
A function to obtain the current index of the grid that is being performed by the pattern function.
Input :
Single variable type or constant number
v: Pattern number (Confirmation of assigned number is required.)
: The pattern unique number is set in the pattern action.
Return :
v: Returns the current index of the grid.
Example :
#Get the current grid index of pattern number 6691.
var current_count = pattern_get_count(6691)
pattern_set_count(v, v)
A function that forcibly sets the index of the grid that does the work in the pattern function.
Input :
Two variables types or constant numbers
v: Pattern number (Confirmation of assigned number is required.)
: The pattern unique number is set in the pattern action.
v: Desired grid index
: If the pattern is a 2D flat pattern, and there are grid points of 3x5 = 15, the configurable indices are 0 to 14.
Return :
None.
Example :
#Set the grid index of pattern number 6691 to 3.
pattern_set_count(6691, 3)
25
P = calc_fk_tcp(v, v, v, v, v, v)
P = calc_fk_tcp(J)
Calculate TCP posture w.r.t. global (base) coordinate from six joint angles.
Input type 1:
Six variable types or constant numbers.
v, v, v, v, v, v: six joint angles (Unit: Degree)
Input type 2:
J: Single joint type variable which contains six joint-angles.
Return :
P: Point type variable which contains TCP posture w.r.t. global (base) coordinate
Example :
# {0, -207.62,1100.59,0,0,0}will be return to ‘my_result’
# Depending on the TCP setting or robot model, the result may be different.
joint my_joint = {0,0,0,0,0,0}
point my_result = calc_fk_tcp(my_joint)
P = calc_fk_tfc(v, v, v, v, v, v)
P = calc_fk_tfc(J)
Calculate TFC (Tool Flange Center) posture w.r.t. global (base) coordinate from six joint angles.
※ The tool flange is where the gripper/tool is mounted on the robot.
Input type 1:
Six variable types or constant numbers.
v, v, v, v, v, v: six joint angles (Unit: Degree)
Input type 2:
J: Single joint type variable which contains six joint-angles.
Return :
P: Point type variable which contains TFC posture w.r.t. global (base) coordinate
Example :
# {0, -207.62,1100.59,0,0,0}will be return to ‘my_result’
joint my_joint = {0,0,0,0,0,0}
point my_result = calc_fk_tfc(my_joint)
26
v = point_dist(P, P)
Return :
v: return single number (distance).
Example :
point my_ptr1 = {100, 200, 300, 0, 0, 0}
point my_ptr2 = {100, 200, 200, 0, 0, 0}
P = point_add(P, P)
Return :
P: Returns point, which is the result of adding two points.
Example :
point my_ptr1 = {100, 0, 300, 150, 0, 30}
point my_ptr2 = {100, 200, 300, 90, 0, 90}
27
P = point_sub(P, P)
Return :
P: Returns point, which is the result of subtraction of two points.
Example :
point my_ptr1 = {100, 0, 300, 150, 0, 30}
point my_ptr2 = {100, 200, 300, 90, 0, 90}
P = point_mid(P, P)
Return :
P: Returns the point that is the midpoint between two points.
Example :
point my_ptr1 = {100, 0, 300, 150, 0, 30}
point my_ptr2 = {100, 200, 300, 90, 0, 90}
28
P = point_interpolate(P, P, v)
Return :
P: Returns a point that is the result of interpolation between two points.
Example :
point my_ptr1 = {100, 0, 300, 150, 0, 30}
point my_ptr2 = {100, 200, 300, 90, 0, 90}
P = point_trans_g2u(P, v)
Converts the attitude value stored in the Point variable from the global (base) coordinate system to the user
coordinate system.
Input :
Single Point type variable and single number.
P: Target point
v: User coordinate number (User coordinate: 0, 1, 2)
Return :
P: Returns the converted point coordinate value.
Example :
point my_global_p
point my_local_p = point_trans_g2u(my_global_p, 0)
29
P = point_trans_u2g(P, v)
Converts the attitude value stored in the Point variable from the user coordinate system to the global (base)
coordinate system.
Input :
Single Point type variable and single number.
P: Target point
v: User coordinate number (User coordinate: 0, 1, 2)
Return :
P: Returns the converted point coordinate value.
Example :
point my_local_p
point my_global_p = point_trans_u2g(my_local_p, 0)
P = get_tcp_info()
Return :
P: Returns the TCP of the current robot based on the global coordinate system. (Unit: mm & degree)
Example :
# TCP posture information will be stored in ‘my_result’
point my_result = get_tcp_info()
P = get_tfc_info()
This function returns the TFC (Tool flange center) information of the current robot.
Input :
None.
Return :
P: Returns the TFC of the current robot based on the global coordinate system. (Unit: mm & degree)
Example :
# TFC posture information will be stored in ‘my_result’
point my_result = get_tfc_info()
30
J = joint_add(J, J)
Return :
J: Returns the joint, which is the result of the addition operation of two joints.
Example :
joint my_joint1 = {45, 15, 0, 0, 0, 90}
joint my_joint2 = {0, 45, 45, 15, 0, 0}
J = joint_sub(J, J)
Return :
J: Returns the joint, which is the result of the subtraction operation of two joints.
Example :
joint my_joint1 = {45, 15, 0, 0, 0, 90}
joint my_joint2 = {0, 45, 45, 15, 0, 0}
31
J = joint_mid(J, J)
Return :
J: Returns the joint that is the result of the intermediate joint operation of two joints.
Example :
joint my_joint1 = {45, 15, 0, 15, 0, 90}
joint my_joint2 = {45, 15, 0, 15, 0, 0}
J = joint_interpolate(J, J, v)
Return :
P: Returns a joint that is the result of interpolation between two joints.
Example :
joint my_joint1 = {45, 15, 0, 15, 0, 90}
joint my_joint2 = {45, 15, 0, 15, 0, 0}
32
J = get_joint_info()
Return :
J: It returns the joint information of the current robot based on the joint coordinate system. (Unit: degree)
Example :
joint my_result = get_joint_info()
#current robot’s joint angles will be return to ‘my_result’
33
set_payload_info(v, v, v, v)
Set the tool payload w.r.t. the manufacturer’s default tool coordinate system.
※ The value set in this function returns to the default value after the program ends.
※ If this function is not called in program-flow, the value set in the Setup page is used.
※ During program flow, the value set in this function is maintained until this function is called again.
Input :
Four variable types or constant numbers.
v: payload weight (Unit: kg)
v: payload Center of mass x-axis value (Unit: mm)
v: payload Center of mass y-axis value (Unit: mm)
v: payload Center of mass z-axis value (Unit: mm)
# Three values entered are based on the manufacturer's default tool coordinate system.
Return :
None.
Example :
# Set payload as 3kg, and center-of-mass as (0mm,-50mm, 0mm).
set_payload_info(3, 0, -50, 0)
set_tcp_info(v, v, v, v, v, v)
Set the TCP position and orientation w.r.t. the manufacturer’s default tool coordinate system.
※ The value set in this function returns to the default value after the program ends.
※ If this function is not called in program-flow, the value set in the Setup page is used.
※ During program flow, the value set in this function is maintained until this function is called again.
Input :
Six variable types or constant numbers.
v: TCP’s x-value (Unit: mm)
v: TCP’s y-value (Unit: mm)
v: TCP’s z-value (Unit: mm)
v: TCP’s Rx value (Unit: degree)
v: TCP’s Ry value (Unit: degree)
v: TCP’s Rz value (Unit: degree)
# Six values entered are based on the manufacturer's default tool coordinate system.
Return :
None.
Example :
# Set TCP position as (0mm,-100mm, 0mm).
set_tcp_info(0, -100, 0, 0, 0, 0)
34
set_collision_onoff(v)
※ The value set in this function returns to the default value after the program ends.
※ If this function is not called in program-flow, the value set in the Setup page is used.
※ During program flow, the value set in this function is maintained until this function is called again.
Input :
Single variable type or constant number.
v: 0 is off , 1 is on
Return :
None.
Example :
#Turn on the collision detection function.
set_collision_onoff(1)
set_collision_th(v)
※ The value set in this function returns to the default value after the program ends.
※ If this function is not called in program-flow, the value set in the Setup page is used.
※ During program flow, the value set in this function is maintained until this function is called again.
Input :
Single variable type or constant number.
v: Value between 0 ~ 1. The lower the value, the more sensitive to collision. (0~1)
Return :
None.
Example :
#Set the collision threshold as 10%.
set_collision_th(0.1)
35
set_collision_mode(v)
※ The value set in this function returns to the default value after the program ends.
※ If this function is not called in program-flow, the value set in the Setup page is used.
※ During program flow, the value set in this function is maintained until this function is called again.
Input :
Single variable type or the constant number.
v: Stop mode
0 = General Stop
1 = Evasion Stop
Return :
None.
Example :
# After detecting a collision, the robot moves a little in the direction to avoid external force and then stops the
movement.
set_collision_mode(1)
set_collision_after(v)
※ The value set in this function returns to the default value after the program ends.
※ If this function is not called in program-flow, the value set in the Setup page is used.
※ During program flow, the value set in this function is maintained until this function is called again.
Input :
Single variable type or the constant number.
v: Stop mode
0 = Pause the Program flow (default)
1 = Halt/Stop the Program flow
Return :
None.
Example :
# After detecting an external collision, the program flow stops (ends).
set_collision_after(1)
36
set_speed_multiply(v)
※ The value set in this function returns to the default value after the program ends.
※ During program flow, the value set in this function is maintained until this function is called again.
Input :
Single variable type or the constant number.
v: Multiply value (0 ~2) (default: 1)
Return :
None.
Example :
var speed_override = 1.5
#Desired-speed = 1.5 x original-speed
set_speed_multiply(speed_override)
set_acc_multiply(v)
※ The value set in this function returns to the default value after the program ends.
※ During program flow, the value set in this function is maintained until this function is called again.
Input :
Single variable type or the constant number.
v: Multiply value (0 ~2) (default: 1)
Return :
None.
Example :
var acc_override = 0.5
#Desired-acceleration = 0.5 x original-acceleration
set_acc_multiply(acc_override)
37
set_speed_acc_j(v, v)
Sets fixed joint velocity/acceleration for J-series motions (MoveJ, MoveJB, MoveJL).
※ The value set in this function returns to the default value after the program ends.
※ During program flow, the value set in this function is maintained until this function is called again.
Input :
Two variable types or constant numbers.
v: Speed/ Velocity (Unit: 𝒅𝒆𝒈/𝒔)
Does not lock the speed for negative input.
v: Acceleration (Unit: 𝒅𝒆𝒈/𝒔𝟐)
Does not lock the acceleration for negative input.
Return :
None.
Example :
# Ignoring the speed/acceleration set for each point of Move,
#set speed as 10 𝑑𝑒𝑔/𝑠, and acceleration as 3 𝑑𝑒𝑔/𝑠 2 .
set_speed_acc_j(10, 3)
set_speed_acc_l(v, v)
Sets fixed linear velocity/acceleration for L-series motions (MoveL, MovePB, MoveLB, MoveITPL).
※ The value set in this function returns to the default value after the program ends.
※ During program flow, the value set in this function is maintained until this function is called again.
Input :
Two variable types or constant numbers.
v: Speed/ Velocity (Unit: 𝒅𝒆𝒈/𝒔)
Does not lock the speed for negative input.
v: Acceleration (Unit: 𝒅𝒆𝒈/𝒔𝟐)
Does not lock the acceleration for negative input.
Return :
None.
Example :
# Ignoring the speed/acceleration set for each point of Move,
#set speed as 15 𝑚𝑚/𝑠, and acceleration as 5 𝑚𝑚/𝑠 2 .
set_speed_acc_l(15, 5)
38
set_speed_bar(v)
Set the overall speed control bar. (bottom speed control bar in UI).
※ When running a program on the UI Make page, this function does not work if the safety slide bar
option is turned on.
Input :
Single variable type or the constant number.
v: Desired speed control bar position (0~1)
Return :
None.
Example :
# Set the speed control bar to 50%.
set_speed_bar(0.5)
set_box_dout(v, v)
Return :
None.
Example :
#Low output from port 0
set_box_dout(0, 0)
39
set_box_aout(v, v)
Return :
None.
Example :
#set 7V for the analog output port 3.
set_box_aout(3, 7)
set_box_dout_toggle(v)
Return :
None.
Example :
# High output from port 1
set_box_dout (1, 1)
#Toggle the output port 1 ( Low signal will be out)
set_box_dout_toggle (1)
40
set_serial_tool(v, v, v)
Set the serial communication (RS232/485) provided by the Tool Flange of the robot arm.
※ The value set in this function returns to the default value after the program ends.
※ If this function is not called in program-flow, the value set in the Setup page is used.
※ During program flow, the value set in this function is maintained until this function is called again.
Input :
Three variable types or constant numbers.
v: Communication speed (Baud rate)
v: Stop bit, (0 or 1, Default 1)
v: Parity bit, (0 : none, 1 : odd, 2 : even, Default 0)
Return :
None.
Example :
# Set tool-flange serial comm. : baud rate = 115200 / stop bit = 1 / parity = none
set_serial_tool(115200, 1, 0)
set_serial_box(v, v, v)
※ The value set in this function returns to the default value after the program ends.
※ If this function is not called in program-flow, the value set in the Setup page is used.
※ During program flow, the value set in this function is maintained until this function is called again.
Input :
Three variable types or constant numbers.
v: Communication speed (Baud rate)
v: Stop bit, (0 or 1, Default 1)
v: Parity bit, (0 : none, 1 : odd, 2 : even, Default 0)
Return :
None.
Example :
# Set control-box serial comm. : baud rate = 9600 / stop bit = 1 / parity = none
set_serial_box(9600, 1, 0)
41
arm_powerdown()
※ The robot arm powers down. Be careful with use. The control box does not turn off.
Input :
None.
Return :
None.
Example :
arm_powerdown()
42
freedrive_teach_on()
※ When this function is executed, the control mode of the robot arm is changed. Use with caution.
Input :
None.
Return :
None.
Example :
freedrive_teach_off()
※ When this function is executed, the control mode of the robot arm is changed. Use with caution.
Input :
None.
Return :
None.
Example :
43
jump_to(v)
Return :
None.
Example :
# Jumps through the program flow to the point where jump_here(1234) appears.
jump_to(1234)
jump_here(v)
※ This function should be located at the top line (left) of the program.
Input :
Single variable type or the constant number.
v: Address value (0~99999)
Return :
None.
Example :
# In the example below, the middle two ‘wait’ lines will be ignored.
jump_to(1234)
wait (1.0 sec)
wait (2.0 sec)
jump_here(1234)
jump_to_line(v)
Return :
None.
Example :
# Go to line number 2.
jump_to_line(2)
44
jump_to_begin()
Return :
None.
Example :
jump_to_begin()
45
6. SYSTEM VARIABLES
SD_TIME
SD_TIMER_0, SD_TIMER_1, …, SD_TIMER_9
SD_J0_REF
SD_J1_REF
SD_J2_REF
SD_J3_REF
SD_J4_REF
SD_J5_REF
SD_J0_ANG
SD_J1_ANG
SD_J2_ANG
SD_J3_ANG
SD_J4_ANG
SD_J5_ANG
SD_J0_CUR
SD_J1_CUR
SD_J2_CUR
SD_J3_CUR
SD_J4_CUR
SD_J5_CUR
46
SD_BEGIN_J0
SD_BEGIN_J1
SD_BEGIN_J2
SD_BEGIN_J3
SD_BEGIN_J4
SD_BEGIN_J5
SD_TEMPERATURE_MC0
SD_TEMPERATURE_MC1
SD_TEMPERATURE_MC2
SD_TEMPERATURE_MC3
SD_TEMPERATURE_MC4
SD_TEMPERATURE_MC5
Example :
SD_TCP_X
SD_TCP_Y
SD_TCP_Z
SD_TCP_RX
SD_TCP_RY
SD_TCP_RZ
TCP values (position and orientation) with respect to the base (global) coordinate.
Example :
SD_DEFAULT_SPEED
Representing the default speed bar. The UI speed control bar value is displayed between 0 and 1.
Example :
SD_ROBOT_STATE
47
SD_POWER_STATE
SD_COLLISION_DETECT_STATE
SD_IS_FREE_DRIVE_MODE
SD_PG_MODE
SD_INIT_STATE_INFO
This is a system variable representing the activation phase information of the robot.
Example :
SD_INIT_ERR
This is a system variable that indicates the robot activation error information.
Example :
48
SD_TFB_ANALOG_IN_0
SD_TFB_ANALOG_IN_1
Variable with analog value (0~10V) of two analog input ports of tool flange board (TFB).
Example :
SD_TFB_DIGITAL_IN_0
SD_TFB_DIGITAL_IN_1
A variable with a digital value (0 or 1) of the two digital input ports on the tool flange board (TFB).
Example :
SD_TFB_DIGITAL_OUT_0
SD_TFB_DIGITAL_OUT_1
A variable with an output value (0 or 1) of the two digital output ports of the tool flange board (TFB).
Example :
SD_TFB_VOLTAGE_OUT
It is a variable indicating the voltage output information (0 or 12 or 24V) of the tool flange board (TFB).
Example :
49
SD_OP_STAT_COLLISION_OCCUR
SD_OP_STAT_SOS_FLAG
A variable indicating if a control box power problem / robot joint controller / other problem has occurred.
0 = Idle
Example :
SD_OP_STAT_SELF_COLLISION
SD_OP_STAT_ESTOP_OCCUR
SD_OP_STAT_EMS_FLAG
This variable tells the user whether or not a singularity (= there is no solution for the robot control algorithm)
is present.
0 = Idle
Example :
50
SD_DIGITAL_IN_CONFIG_0
SD_DIGITAL_IN_CONFIG_1
Shows the information of the two protective stop terminals. (Din 16/17)
Example :
SD_INBOX_TRAP_FLAG_0
SD_INBOX_TRAP_FLAG_1
This is a variable that checks whether a specific part of the robot has entered a specific area (Inbox).
Example :
SD_INBOX_CHECK_MODE_0
SD_INBOX_CHECK_MODE_1
51
SD_SOCK_IS_OPEN_0
SD_SOCK_IS_OPEN_1
SD_SOCK_IS_OPEN_2
SD_SOCK_IS_OPEN_3
SD_SOCK_IS_OPEN_4
This is a variable indicating whether the socket of the corresponding number was normally opened and whether
it was normally connected to the server. 1 (true) if creation and connection were performed normally. (# : 0~4)
Example :
SD_SOCK_LAST_READ_0
SD_SOCK_LAST_READ_1
SD_SOCK_LAST_READ_2
SD_SOCK_LAST_READ_3
SD_SOCK_LAST_READ_4
A variable indicating whether the read function was performed normally with the socket of the corresponding
number. 1 (true) if the read was performed normally.
(# : 0~4)
Example :
SD_HAND_TOKTOK
This is a variable indicating whether or not an act of tapping (tok tok) from outside the robot has occurred.
Example :
SD_FINISH_AT_EVENT
Stores whether the motion has ended in a way that the robot's FinishAt (motion escape) condition.
If the motion is finished by reaching the motion target point, this variable is 0.
If the FinishAt condition is satisfied and the operation is finished, this variable becomes 1.
Example :
SD_TCP_VEL_REF
SD_MOTION_TIME
It is a variable that stores the time of unit movement. When the next movement is executed, it starts from 0
again.
Example :
52
SD_ARM_POWER
SD_IS_TPU_CONNECT
This is a variable that indicates whether the TPU (Teaching Pendant Unit, Tablet PC) is connected.
Example :
SD_IS_RUN_IN_MAKE
SD_IS_RUN_IN_PLAY
SD_IS_INTENDED_STOP
SD_MOVE_INDEX
In a continuous motion such as MovePB / ITPL, it tells which point the robot is passing through.
Example :
53
7. MOVEMENT FUNCTIONS
move_finish_wait()
Return :
None.
Example :
#Wait for the movement to complete until my_destination.
point my_destination = {100,200,300,0,0,0}
move_l(my_destination, 20, 5, 0)
move_finish_wait()
move_l(P, v, v, v=1)
A function that makes TCP to move in a straight line to the target point.
Input :
P: Target TCP posture
v: Speed (𝒎𝒎/𝒔)
v: Acceleration (𝒎𝒎/𝒔𝟐 )
v: Wait flag (default: 1)
0 = No Wait (Non-Block).
1 = Wait for the movement to complete (Block).
Return :
None.
Example :
point my_point1 = {100,200,300,0,0,0}
point my_point2= {100,150,100,0,90,0}
54
move_l_rel(P, v, v, v, v=1)
A function that makes TCP to move in a straight line to the target point.
Enter the target point as a value relative to the current TCP value.
Input :
P: Relative position & orientation value.
v: Speed (𝒎𝒎/𝒔)
v: Acceleration (𝒎𝒎/𝒔𝟐 )
v: reference frame for the relative P value.
0: Base (Global) coordinate.
1: Tool (Local) coordinate.
2: User coordinate 0
3: User coordinate 1
4: User coordinate 2
v: Wait flag (default: 1)
0 = No Wait (Non-Block).
1 = Wait for the movement to complete (Block).
Return :
None.
Example :
55
move_j(J, v, v, v=1)
Return :
None.
Example :
#move joint angles to (0,0,90,0,90,0) degree with speed/acceleration = 60/80.
move_j (jnt[0,0,90,0,90,0], 60, 80)
move_jl(P, v, v, v=1)
Return :
None.
Example :
point my_point1 = {100,200,300,0,0,0}
point my_point2 = {100,150,100,0,90,0}
56
move_pb_clear()
Return :
None.
Example :
# Initialize (Clear) the point list to be used in MovePB.
move_pb_clear()
move_pb_add(P, v, v, v)
Return :
None.
Example :
point my_point1 = {100,200,0,0,0,0}
point my_point2 = {150,0,50,0,0,0}
# add ‘my_point1’ to the MovePB list with speed=50mm + 50% blending option
move_pb_add(my_point1, 50, 0, 0.5)
# add ‘my_point2’ to the MovePB list with speed=100mm + 50mm blending option
move_pb_add(my_point2, 100, 1, 50)
57
move_pb_run(v, v, v=1)
Return :
None.
Example :
point my_point1 = {100,200,0,0,0,0}
point my_point2 = {150,0,50,0,0,0}
58
move_itpl_clear()
Return :
None.
Example :
# Initialize (Clear) the point list to be used in MoveITPL.
move_itpl_clear()
move_itpl_add(P, v)
Return :
None.
Example :
point my_point1 = {100,200,0,0,0,0}
point my_point2 = {150,0,50,0,0,0}
59
move_itpl_run(v, v, v=1)
4 = Reserved (N/A)
Return :
None.
Example :
point my_point1 = {100,200,0,0,0,0}
point my_point2 = {150,0,50,0,0,0}
60
move_lc_clear()
Return :
None.
Example :
# Initialize (Clear) the point list to be used in MoveLC.
move_lc_clear()
move_lc_add(P, v, v)
Return :
None.
Example :
point my_point1 = {100,200,0,0,0,0}
point my_point2 = {150,0,50,0,0,0}
61
move_lc_run(v, v, v=1)
Return :
None.
Example :
point my_point1 = {100,200,0,0,0,0}
point my_point2 = {150,0,50,0,0,0}
62
move_lb_clear()
Return :
None.
Example :
#Initialize (Clear) the point list to be used in MoveLB.
move_lb_clear()
move_lb_add(P, v)
Return :
None.
Example :
point my_point1 = {100,200,0,0,0,0}
point my_point2 = {150,0,50,0,0,0}
63
move_lb_run(v, v, v, v=1)
Return :
None.
Example :
point my_point1 = {100,200,0,0,0,0}
point my_point2 = {150,0,50,0,0,0}
# Move to ‘my_point2’ using the previously set distance 20mm blending option.
# At this time, the rotation value maintains the same value as the starting position.
move_lb_run(50, 20, 1)
64
move_c_points(P, P, v, v, v, v=1)
This function performs a movement that draws an arc through via & target points.
Input :
P: via Point TCP posture
P: target Point TCP posture
v: Speed (Unit: 𝒎𝒎/𝒔)
v: Acceleration (Unit: 𝒎𝒎/𝒔𝟐 )
v: Orientation options
0 = Intended (Follows the rotation value taught by the user)
1 = Constant (Keep the rotation value of the starting position)
2 = Radial (Rotate the TCP according to the rotation of the circle)
3 = Smooth (Similar to Intended, but with a smooth rate of rotation change)
v: Wait flag (default: 1)
0 = No Wait (Non-Block).
1 = Wait for the movement to complete (Block).
Return :
None.
Example :
point my_point1 = {100,100,300,0,90,0}
point my_point2 = {200,200,200,0,90,45}
65
move_c_axis(P, v, v, v, v, v, v, v, v=1)
This function performs an arc movement using the rotation center and rotation axis information.
Input :
P: Center of the rotation (Unit: mm)
v: rotation axis’s x axis vector
v: rotation axis’s y axis vector
v: rotation axis’s z axis vector
v: rotation angle (Unit: deg)
v: Speed (Unit: 𝒎𝒎/𝒔)
v: Acceleration (Unit: 𝒎𝒎/𝒔𝟐 )
v: Rotation options
0 = Intended (rotate the same way as the Constant below.)
1 = Constant (Keep the rotation value of the starting position)
2 = Radial (Rotate the TCP according to the rotation of the circle)
Return :
None.
Example :
point my_point = {200,200,200,0,0,0}
66
move_jb_clear()
Return :
None.
Example :
#Initialize (Clear) the point list to be used in MoveJB.
move_jb_clear()
move_jb_add(J)
Return :
None.
Example :
jnt my_joint1 = {0, 0,0,0,0,0}
jnt my_joint2 = {90,30,15,0,0,0}
67
move_jb_run(v, v, v=1)
Return :
None.
Example :
jnt my_joint1 = {0, 0,0,0,0,0}
jnt my_joint2 = {90,30,15,0,0,0}
68
8. GRIPPERS AND SENSORS
gripper_rtq_hande_init(v)
Return :
None.
Example :
gripper_rtq_hande_init(1)
#When the gripper communication line is connected to the control box
gripper_rtq_hande_reset(v)
Return :
None.
Example :
gripper_rtq_hande_reset(1)
#When the gripper communication line is connected to the control box
69
gripper_rtq_hande_go(v, v, v, v)
Return :
None.
Example :
#Move the gripper connected to the control box to position 100%. (with speed 50%, force 100%)
gripper_rtq_hande_go(1, 100, 50, 100)
gripper_rtq_2f85_init(v)
Return :
None.
Example :
gripper_rtq_2f85_init(1)
#When the gripper communication line is connected to the control box
gripper_rtq_2f85_reset(v)
Return :
None.
Example :
gripper_rtq_2f85_reset(1)
#When the gripper communication line is connected to the control box
70
gripper_rtq_2f85_go(v, v, v, v)
Return :
None.
Example :
#Move the gripper connected to the control box to position 100%. (with speed 50%, force 100%)
gripper_rtq_2f85_go(1, 100, 50, 100)
gripper_rtq_2f140_init(v)
Return :
None.
Example :
gripper_rtq_2f140_init(1)
#When the gripper communication line is connected to the control box
gripper_rtq_2f140_reset(v)
Return :
None.
Example :
gripper_rtq_2f140_reset(1)
#When the gripper communication line is connected to the control box
71
gripper_rtq_2f140_go(v, v, v, v)
Return :
None.
Example :
#Move the gripper connected to the control box to position 100%. (with speed 50%, force 100%)
gripper_rtq_2f140_go(1, 100, 50, 100)
gripper_rtq_epick_reset(v)
Return :
None.
Example :
gripper_rtq_epick_reset(1)
#When the gripper communication line is connected to the control box
gripper_rtq_epick_suction(v)
Return :
None.
Example :
gripper_rtq_epick_suction(1)
#When the gripper communication line is connected to the control box
72
gripper_rtq_epick_release(v)
Return :
None.
Example :
gripper_rtq_epick_release(1)
#When the gripper communication line is connected to the control box
gripper_rtq_epick_hold(v)
Return :
None.
Example :
gripper_rtq_epick_hold(1)
#When the gripper communication line is connected to the control box
gripper_rts_rhp12rn_init(v)
Return :
None.
Example :
gripper_rts_rhp12rn_init(1)
#When the gripper communication line is connected to the control box
73
gripper_rts_rhp12rn_go(v, v)
Return :
None.
Example :
gripper_rts_rhp12rn_go(1, 100)
#Move the gripper connected to the control box to 100% position.
gripper_jrt_jegb485_init(v)
Return :
None.
Example :
gripper_jrt_jegb485_init(1)
#When the gripper communication line is connected to the control box
gripper_jrt_jegb485_go(v, v)
Return :
None.
Example :
gripper_jrt_jegb485_go(1, 100)
#Move the gripper connected to the control box to 100% position.
74
gripper_jrt_jegb485_go(v, v, v, v)
Return :
None.
Example :
#Move the gripper connected to the control box to 100% position. (with speed & acceleration 50%)
gripper_jrt_jegb485_go(1, 100, 50, 50)
gripper_jrt_jegb485_set(v, v, v, v)
Return :
None.
Example :
#Set the motion properties speed/acceleration/force of the gripper connected to the control box to 50, 30, and
20%, respectively
gripper_jrt_jegb485_set(1, 50, 30, 20)
gripper_jrt_jegb4140_init(v)
Return :
None.
Example :
gripper_jrt_jegb4140_init(1)
#When the gripper communication line is connected to the control box
75
gripper_jrt_jegb4140_go(v, v)
Return :
None.
Example :
gripper_jrt_jegb4140_go(1, 100)
#Move the gripper connected to the control box to 100% position.
gripper_jrt_jegb4140_go(v, v, v, v)
Return :
None.
Example :
#Move the gripper connected to the control box to 100% position. (with speed & acceleration 50%)
gripper_jrt_jegb4140_go(1, 100, 50, 50)
gripper_jrt_jegb4140_set(v, v, v, v)
Return :
None.
Example :
#Set the motion properties speed/acceleration/force of the gripper connected to the control box to 50, 30, and
20%, respectively
gripper_jrt_jegb4140_set(1, 50, 30, 20)
76
gripper_dh_ag95_init(v)
Return :
None.
Example :
gripper_dh_ag95_init(1)
#When the gripper communication line is connected to the control box
gripper_dh_ag95_gripforce(v, v)
Return :
None.
Example :
# Set the gripping force limit of the gripper connected to the control box to 30%.
gripper_dh_ag95_gripforce(1, 30)
gripper_dh_ag95_openforce(v, v)
Return :
None.
Example :
#Set the opening force limit of the gripper connected to the control box to 70%.
gripper_dh_ag95_openforce(1, 70)
77
gripper_dh_ag95_go(v, v)
Return :
None.
Example :
#Move the gripper connected to the control box to the 50% position.
gripper_dh_ag95_go(1, 50)
gripper_setech_cmd(v)
Setech –NutRunner
Input :
v: Command number
0 = Stop
1 = Reset
2 = Quick Start
3 = First stage
4 = Second stage
5 = Reverse
Return :
None.
Example :
gripper_setech_cmd( #)
78
9. COMMUNICATION FUNCTIONS
mc_comm_set_bit(v, S, v, v=1)
It sends the desired bit data (1 bit) to the desired address value of the PLC equipment. (via MC Protocol
provided by Mitsubishi)
Input :
v: Index of Socket-Handler. (0~4)
S: address of the PLC (string type)
* address value is in the form of D~~~~ X~~~~, etc.
v: Desired bit data (0 or 1)
v: Handshake signal Timeout (Unit: second) (default: 1)
Return :
v: Whether or not a valid (Handshake) signal is received from the PLC
0: Receive Fail
1: Receive Success
Example :
# Using socket 0, send value 1 to PLC address D2000.
str target_address = “D2000”
var target_write_value = 1
var is_tx_success = mc_comm_set_bit(0, target_address, target_write_value)
# Same meaning can be written as below.
var is_tx_success = mc_comm_set_bit(0, “D2000”, 1)
79
mc_comm_set_word(v, S, v, v=1)
It sends the desired word data (16 bits) to the desired address value of the PLC equipment. (via MC Protocol
provided by Mitsubishi)
Input :
v: Index of Socket-Handler. (0~4)
S: address of the PLC (string type)
* address value is in the form of D~~~~ X~~~~, etc.
v: Desired word data
v: Handshake signal Timeout (Unit: second) (default: 1)
Return :
v: Whether or not a valid (Handshake) signal is received from the PLC.
0: Receive Fail
1: Receive Success
Example :
# Using socket 0, send value 150 to PLC address D2000.
str target_address = “D2000”
var target_write_value = 150
var is_tx_success = mc_comm_set_word(0, target_address, target_write_value)
# Same meaning can be written as below.
var is_tx_success = mc_comm_set_word(0, “D2000”, 150)
mc_comm_req_bit(v, S, v=1)
It reads the desired bit data (1 bit) from the desired address value of the PLC equipment. (via MC Protocol
provided by Mitsubishi)
Input :
v: Index of Socket-Handler. (0~4)
S: address of the PLC (string type)
* address value is in the form of D~~~~ X~~~~, etc.
v: Handshake signal Timeout (Unit: second) (default: 1)
Return :
v: Bit data value received from PLC.
-1: Receive fail
0 or 1: Received bit value
Example :
# Using socket 0, read bit value from the PLC address D2000.
str target_address = “D2000”
var rx_data = mc_comm_req_bit(0, target_address)
# Same meaning can be written as below.
var rx_data = mc_comm_req_bit(0, “D2000”)
80
mc_comm_req_word(v, S, v=1)
It reads the desired word data (16 bits) from the desired address value of the PLC equipment. (via MC Protocol
provided by Mitsubishi)
Input :
v: Index of Socket-Handler. (0~4)
S: address of the PLC (string type)
* address value is in the form of D~~~~ X~~~~, etc.
v: Handshake signal Timeout (Unit: second) (default: 1)
Return :
v: Word data value received from PLC.
-1 : Receive fail
Example :
# Using socket 0, read word value from the PLC address D2000.
str target_address = “D2000”
var rx_data = mc_comm_req_word(0, target_address)
# Same meaning can be written as below.
var rx_data = mc_comm_req_word(0, “D2000”)
81
socket_connect(v, S, v)
Opens a socket port for TCP/IP communication and connects to the server.
Input :
v: Index of Socket-Handler. (0~4)
S: IP address of the target server (string type)
*i.e. ”192.168.0.10”
v: Port number of the target server.
Return :
None.
Example :
# Using socket 0, connect to port 5678 of the server address “192.168.0.10”
socket_connect(0, “192.168.0.10”, 5678)
socket_disconnect(v)
Return :
None.
Example :
# Disconnect opened communication on socket 0 and exit.
socket_disconnect(0)
socket_send_str(v, S)
Return :
None.
Example :
# Send “hello world” to the server where socket 0 is connected.
socket_send_str(0, “hello world”)
82
socket_read_str(v)
Returns the string received from the server through TCP/IP communication.
Input :
v: Index of Socket-Handler. (0~4)
Return :
S: Received string from the server
Example :
# Receives a string from the server connected to socket 0, and if there is a received string, it is displayed in the
alarm window.
# When the server sends “rainbow”, “rainbow” is stored in the receivce_str string variable.
socket_read_var(v)
If the string received from the server through TCP/IP communication is in the form of a number, it is returned
as a number..
Input :
v: Index of Socket-Handler. (0~4)
Return :
v: Received number from the server
Example :
# Receives a string from the server connected to socket 0, and converts the received string into a numeric
variable. And if there is a reception, it is displayed in the alarm window.
#When the server sends “123.456”, 123.456 is stored in the receivce_var.
83
hmi_set_one_word (v, v, v, v=1)
It sends the desired word data (16 bits) to the desired address value of the HMI equipment. (via Memory-Link
by Proface/TOP)
Input :
v: Index of Socket-Handler. (0~4)
v: HMI address value (0~9999)
v: desired value for transmission (variable)
v: Handshake signal Timeout (Unit: second) (default: 1)
Return :
v: Whether or not a valid (Handshake) signal is received from the HMI.
0: Receive Fail
1: Receive Success
Example :
# Using socket 0, send the value 150 to HMI address 6000.
var target_address = 6000
var target_write_value = 150
var is_tx_success = hmi_set_one_word(0, target_address, target_write_value)
# Same meaning can be written as below.
var is_tx_success = hmi_set_one_word(0, 6000, 150)
It sends the desired word data-s (16 bits x desired length) to the desired address area of the HMI equipment.
(via Memory-Link by Proface/TOP)
Input :
v: Index of Socket-Handler. (0~4)
v: starting HMI address value (0~9999)
v: Number of data to send to HMI device (Max 20)
v: Handshake signal Timeout (Unit: second) (default: 1)
A: Array name to send
Return :
v: Whether or not a valid (Handshake) signal is received from the HMI.
0: Receive Fail
1: Receive Success
Example :
# Using socket 0, send the 4 values (150, 160, 200, 210) stored in the array to the 4 address values (6000 ~
6003) of the HMI.
arr my_arr = {150, 160, 200, 210}
var is_tx_success = hmi_set_multi_word(0, 6000, 4, my_arr)
84
hmi_req_one_word (v, v, v=1)
It reads the desired word data (16 bits) from the desired address value of the HMI equipment. (via Memory-
Link provided by Proface/TOP)
Input :
v: Index of Socket-Handler. (0~4)
v: HMI address value (0~9999)
v: Handshake signal Timeout (Unit: second) (default: 1)
Return :
v: Value stored in the corresponding address value of the HMI
Example :
# Using socket 0, read the value of HMI address 7000 and store it in the variable my_num.
var my_num
my_num = hmi_req_one_word(0, 7000)
It reads the desired word data-s (16 bits x desired length) from the desired address area of the HMI equipment.
(via Memory-Link provided by Proface/TOP)
Input :
v: Index of Socket-Handler. (0~4)
v: starting HMI address value (0~9999)
v: Number of data to read from HMI device (Max 20)
v: Handshake signal Timeout (Unit: second) (default: 1)
Return :
A: Array name to store data received from HMI
Example :
# Using socket 0, read 10 values (address values 7000~7009) from HMI and store them in the array ‘my_array’.
arr my_array
my_array = hmi_req_multi_word(0, 7000, 10)
85
10. VECTOR
Number Vector
# The length of the vector can be obtained with the vec_length (or vec_leng) function.
# In this case, the input argument of the function is the name of the vector.
var num = vec_length( hello_world)
# To add an argument to a vector, use the vec_push (or vec_push_back, or vec_add) function.
# In this case, the input argument of the function is the name of vector and the number to be added.
vec_push( hello_world, 40)
vec_push( hello_world, 50)
# If you want to refer to the value stored in the vector, use the vec_at function.
# In this case, the input parameters of the function are the name of the vector and the index to be referenced.
# Index references are also possible through the [] operator.
var value = vec_at(hello_world, 2)
var value = hello_world[2]
Example :
vec mung = {10, 20} # declare vector. Name = mung, initial values are 10 and 20
var my_num = vec_length(mung) # my_num = 2 (length of the vector)
vec_push( mung, 30) # Add the number 30 to the end of the mung vector
vec_push( mung, 40) # Add the number 40 to the end of the mung vector
var my_num = vec_length(mung) # my_num = 4 (length of the vector)
var a = vec_at(mung, 1) # a = 20 (value saved in the index 1 of the vector mung)
var b = mung[3] # b = 40 (value saved in the index 3 of the vector mung)
vec_clear(mung) # clear the vector mung
var my_num = vec_length(mung) # my_num = 0 (length of the vector)
86
For string vectors, the usage of functions is the same as for numeric vectors.
However, due to system memory limitations, only predefined names can be used for string vectors.
There are 10 string vectors defined in the system as shown below. Users can use the string vector with
the name immediately below without having to declare it.
Predefined string vectors: str_vec_0, str_vec_1, str_vec_2, str_vec_3, str_vec_4
str_vec_5, str_vec_6, str_vec_7, str_vec_8, str_vec_9
The functions used for vectors are the same as for numeric vectors introduced in the previous chapter.
String Vector
Example :
87
- Rainbow Robotics Research Center -
88