Loadid 3
Loadid 3
On-line
CONTENTS
Page
Syntax ...................................................................................................................... 26
Related information ................................................................................................. 26
LoadId - Load identification of tool or payload .......................................................... 27
Condition ................................................................................................................. 28
Arguments................................................................................................................ 29
Program Execution .................................................................................................. 30
Limitations............................................................................................................... 31
Error handling.......................................................................................................... 31
Syntax ...................................................................................................................... 31
Related information ................................................................................................. 32
Index................................................................................................................................. 33
Description
A loadidnum constant is intended to be used for load identification of tool or payload
as arguments in instruction LoadId. See example below.
Example
LoadId TOOL_LOAD_ID, MASS_WITH_AX3, gun1;
Predefined data
The following symbolic constants of the data type loadidnum are predefined and can
be used as arguments in instruction LoadId.
Characteristics
Loadidnum is an alias data type for num and consequently inherits its characteristics.
Related information
Described in:
Valid robot type Functions - ParIdRobValid
Valid robot position Functions - ParIdPosValid
Load identification with Instructions - LoadId
complete example
Description
A paridvalidnum constant is intended to be used for parameter identification, such as
load identification of tool or payload, when checking the return value from function
ParIdRobValid. See example below.
Example
TEST ParIdRobValid (PAY_LOAD_ID)
CASE ROB_LOAD_VAL:
! Possible to do load identification of payload in actual robot type
...
CASE ROB_LM1_LOAD_VAL:
! Only possible to do load identification of payload
! with IRB 6400FHD if actual load < 200 kg
...
CASE ROB_NOT_LOAD_VAL:
! Not possible to do load identification of payload
! in actual robot type
...
ENDTEST
Predefined data
The following symbolic constants of the data type paridvalidnum are predefined and
can be used for checking the return value from function ParIdRobValid.
11 ROB_NOT_LOAD_VAL Not valid robot type for the current parameter identifica-
tion
12 ROB_LM1_LOAD_VAL Valid robot type IRB 6400FHD for the current parameter
identification if actual load < 200kg
Characteristics
Paridvalidnum is an alias data type for num and inherits its characteristics.
Related information
Described in:
Valid robot type Functions - ParIdRobValid
Valid robot position Functions - ParIdPosValid
Load identification with Instructions - LoadId
complete example
Description
Motion supervision is the name of a collection of functions for high sensitivity, model-
based supervision of the robot. Currently it contains functionality for load supervision,
jam supervision and collision detection. Because the supervision is designed to be very
sensitive, it may trip if there are large process forces acting on the robot.
If the load is not correctly defined, use the load identification function to specify it. If
large external process forces are present in most parts of the application, such as during
deburring, then use the system parameters to raise the supervision level of the motion
supervision until it no longer triggers. If, however, the external forces are only tempo-
rary, such as during the closing of a large spotweld gun, then the MotionSup instruction
should be used to raise the supervision level (or turn the function off) for those parts of
the application where the disturbance acts.
In RobotWare 3.1 the motion supervision is only be available for the IRB6400
robot family.
Examples
! If the motion supervision is active in the system parameters,
! then it is active by default during program execution
...
! If the motion supervision is deactivated through the system parameters,
! then it cannot be activated through the MotionSup instruction
...
! Deactivate motion supervision during program execution
MotionSup \Off;
...
! Activate motion supervision again during program execution
MotionSup \On;
...
! Tune the supervision level to 200% (makes the function less sensitive) of the level in
! the system parameters
MotionSup \On \TuneValue:= 200;
...
Arguments
MotionSup [ \On] | [ \Off] [\TuneValue]
[ \On ] Data type: switch
Program execution
If the function motion supervision is active both in the system parameters and in the
RAPID program and the motion supervision is triggered because of a collision etc.,
then
- at a cold start-up
- when a new program is loaded
- when starting program execution from the beginning.
Limitations
Motion supervision is never active for external axes or when one or more joints are run
in independent joint mode. When using the robot in the soft servo mode, it may be nec-
essary to turn the motion supervision off to avoid accidental tripping.
Syntax
MotionSup
[ ’\’ On] | [ ’\’ Off ]
[’\’ Tunevalue ’:=’< expression (IN) of num> ] ’;’
Related information
Described in:
General description of the function Motion Principles - Motion Supervi-
sion
Tuning using system parameters User’s Guide - System Parameters
Since the data of the different loads that can be mounted on the robot can be quite dif-
ficult to compute, there is a procedure called load identification which by moving the
robot computes the necessary load data.
Payload
Tool load
The loads that can be identified are the Tool load and the Payload and the identification
can only be performed in a position where the angle axis 4 is close to 0 degrees and
axis 6 is horizontal. The parameters that can be identified are mass, centre of gravity
and moments of inertia. Together with the identified parameters a measurement accu-
racy is also given.
To perform the identification the robot moves the load and computes the parameters.
The axes that move are 3, 5 and 6. At the identification position, the motion for axis 3
is approximately 3 degrees up and 3 degrees down and for axis 5 it is approximately
30 degrees up and 30 degrees down. For axis 6 the motion is performed around two
configuration points as described in Figure 2. The optimum value for the Configuration
angle is 90 degrees.
Configuration 2
30ο
30ο
Configuration angle
Configuration 1 (start position) 30ο 30ο
The movements of axis 3 will only be performed if the mass is to be identified. This
means that to identify the mass, the upper arm load (see Figure 1) must be known and
correctly defined.
To start the load identification you must have an active program in manual mode and
the tool that you want to identify must be defined and active in the jogging window. To
start make sure that you are in Manual mode and that you press the Enabling device.
To start load identification proceed as follows.
Identification of PayLoad
Before starting the identification of a payload you must make sure of a few things:
• Make sure that the tool and payload are correctly mounted.
• Make sure that axis 6 is close to horizontal and that axis 4 is not too far away from 0
degrees.
• Make sure that the Tool load is known.
• Make sure that the upper arm load is known if the mass is to be identified. See Figure
31.
• If using moving TCP the tool must be calibrated (TCP).
• If using roomfix TCP the corresponding workobject must be calibrated (frames).
• Make sure that the axes 3, 5 and 6 are not close to their corresponding working range
limits.
• Make sure that the speed override is set to 100%.
To start the load identification you must have an active program in manual mode and
the tool and workobject (only for roomfix TCP) in use must be defined and active in
the jogging window. To start make sure that you are in Manual mode and that you press
the Enabling device. To start load identification proceed as follows.
and choose another workobject. Then press the Enabling device, return to the load
identification program and press Start. Then choose Retry and confirm that the new
work object is correct by pressing OK.
• Choose identification method. If you choose the method where the mass is assumed
to be known, remember that the payload must have the correct mass defined. Confirm
your choice by pressing OK.
• Choose configuration angle. Optimum is +90 or -90 degrees. If this is impossible
choose Other and input the angle that you want. Minimum is plus or minus 30
degrees.
• If the robot is not in a correct position for load identification you will be asked to jog
roughly one or more axes to a specified position. When you have done this press OK
to confirm.
• If the robot still is not in a correct position for load identification the robot will slowly
move to the correct position. Press Move to start the movement.
• Choose if you want the robot to go through the load identification movements slowly
before performing the load identification. This is useful for making sure that the robot
will not hit anything during the identification. Choose Yes if you want a slow test and
No otherwise.
• The setup for load identification is now complete. To start the motion change to Auto-
matic mode and press Move to start the load identification movements (avoid Manual
Full Speed mode, it is easier to use Automatic mode).
• When the identification is finished return to Manual mode and press the Enabling
device. Press OK to confirm.
• The result of the load identification is now presented on the Teach Pendant. Choose
Yes if you want to update the selected payload with the identified parameters or No
otherwise.
Error handling
If the Enabling device is released during setup of the load identification (before the
movements start) the program LoadIdentifyProc can always be restarted by pressing
the Enabling device again and choosing Start.
If an error should occur during the load identification movements the procedure must
be restarted from the beginning. This is done automatically if you press Start after con-
firming the error. To interrupt and leave the load identification procedure, choose Spe-
cial: Move PP to main.
Limitations
In RobotWare 3.1, the load identification is only available for the IRB6400 robot
family.
Only Tool loads and Payloads can be identified. Thus arm loads cannot be identified
using this procedure.
If the load identification movements are interrupted by some kind of stop (Program
Stop, Emergency Stop, etc.) the load identification must be restarted from the begin-
ning. This is done automatically if you press Start after confirming the error.
If doing load identification with only Program Stop on the path of the active main pro-
gram, the active path will be cleared during load identification. This means that pro-
gram start of the main program results in program execution from load identification
end position to the destination position of the next move instruction.
Related information
It is also possible to create your own load identification procedure. The available
RAPID commands are given below.
Described in:
Description
A paridnum constant is intended to be used for parameter identification such as load
identification of tool or payload. See example below.
Example
TEST ParIdRobValid (TOOL_LOAD_ID)
CASE ROB_LOAD_VAL:
! Possible to do load identification of tool in actual robot type
...
CASE ROB_LM1_LOAD_VAL:
! Only possible to do load identification of tool with
! IRB 6400FHD if actual load < 200 kg
...
CASE ROB_NOT_LOAD_VAL:
! Not possible to do load identification of tool in actual robot type
...
ENDTEST
Predefined data
The following symbolic constants of the data type paridnum are predefined and can be
used as arguments in the following instructions, ParIdRobValid, ParIdPosValid and
LoadId.
Characteristics
Paridnum is an alias data type for num and consequently inherits its characteristics.
Related information
Described in:
Valid robot type Functions - ParIdRobValid
Valid robot position Functions - ParIdPosValid
Load identification with Instructions - LoadId
complete example
Example
VAR jointtarget joints;
VAR bool valid_joints{12};
Check whether robot position is valid before doing load identification of tool.
Arguments
ParIdPosValid ( ParIdType Pos AxValid [\ConfAngle] )
ParIdType Data type: paridnum
Variable specifies the actual joint angles for all robot and external axes.
The variable is updated by ParIdPosValid according to the table below.
Valid TRUE
Error handling
If an error occurs, the system variable ERRNO is set to ERR_PID_RAISE_PP.
This error can then be handled in the error handler.
Syntax
ParIdPosValid’(’
[ ParIdType ’:=’ ] <expression (IN) of paridnum> ,
[ Pos ’:=’ ] <variable (VAR) of jointtarget> ,
[ AxValid ’:=’ ] <array variable {*} (VAR) of bool>
[ ‘\’ ConfAngle ’:=’ <expression (IN) of num> ] ‘)’
Related information
Described in:
Type of parameter identification Data Types - paridnum
Valid robot type Functions - ParIdRobValid
Load identification with Instructions - LoadId
complete example
Example
TEST ParIdRobValid (TOOL_LOAD_ID)
CASE ROB_LOAD_VAL:
! Possible to do load identification of tool in actual robot type
...
CASE ROB_LM1_LOAD_VAL:
! Only possible to do load identification of tool with
! IRB 6400FHD if actual load < 200 kg
...
CASE ROB_NOT_LOAD_VAL:
! Not possible to do load identification of tool in actual robot type
...
ENDTEST
Whether the specified parameter identification can be performed with the current robot
type, as defined in the table below.
11 ROB_NOT_LOAD_VAL Not valid robot type for the actual parameter identification
12 ROB_LM1_LOAD_VAL Valid robot type IRB 6400FHD for the actual parameter
identification if actual load < 200kg
Arguments
ParIdRobValid (ParIdType)
ParIdType Data type: paridnum
Error handling
If an error occurs, the system variable ERRNO is set to ERR_PID_RAISE_PP.
This error can then be handled in the error handler.
Syntax
ParIdRobValid’(’
[ParIdType ’:=’] <expression (IN) of paridnum> ‘)’
Related information
Described in:
Type of parameter identification Data Types - paridnum
Result of this function Data Types - paridvalidnum
Valid robot position Functions - ParIdPosValid
Load identification with Instructions - LoadId
complete example
Note: an easier way to identify the tool loading or payload is to use the interactive
dialogue RAPID program LoadIdentify. This program can be started from the menu
Program Window/Special/Call Service Routine.../LoadIdentify.
Example
VAR bool invalid_pos := TRUE;
VAR jointtarget joints;
VAR bool valid_joints{12};
CONST speeddata low_ori_speed := [20, 5, 20, 5];
VAR bool slow_test_flag := TRUE;
PERS tooldata grip3 := [ TRUE, [[97.4, 0, 223.1], [0.924, 0, 0.383 ,0]],
[0, [0, 0, 0], [1, 0, 0, 0], 0, 0, 0]];
Condition
The following conditions should be fulfilled before load measurements with LoadId:
• Make sure that all loads are correctly mounted on the robot
• Check whether valid robot type with ParIdRobValid
• Check whether valid position with ParIdPosValid
- Axes 3, 5 and 6 not close to their corresponding working range
- Tilt housing almost horizontal, i.e. that axis 4 is in zero position
• The following data should be defined in system parameters and in arguments to
LoadId before running LoadId:
Load identification modes / Moving TCP Moving TCP Roomfix TCP Roomfix TCP
Defined data before LoadId Mass Known Mass Unknown Mass Known Mass Unknown
Load identification modes / Moving TCP Moving TCP Roomfix TCP Roomfix TCP
Defined data before LoadId Mass Known Mass Unknown Mass Known Mass Unknown
Arguments
LoadId ParIdType LoadIdType Tool [\PayLoad] [\WObj]
[\ConfAngle] [\SlowTest] [\Accuracy]
ParIdType Data type: paridnum
For load identification of tool, the following arguments \PayLoad and \WObj
should not be specified.
This option argument must always be specified for load identification of payload
with roomfix TCP.
Option argument to specify whether only slow test for checking of free working
area should be done:
- LoadId ... \SlowTest -> Run only slow test
- LoadId ... -> Run only measurement and update tool or payload
Variable for output of calculated measurement accuracy in % for the whole load
identification calculation (100% means maximum accuracy).
Program Execution
The robot will carry out a large number of relative small transport and measurement
movements on axes 5 and 6. For identification of mass, movements will also be made
with axis 3.
After all measurements, movements, and load calculations, the load data is returned in
argument Tool or PayLoad. The following load data is calculated:
Example
PERS tooldata grip3 := [ FALSE, [[97.4, 0, 223.1], [0.924, 0, 0.383 ,0]],
[6, [10, 10, 100], [0.5, 0.5, 0.5, 0.5], 1.2, 2.7, 0.5]];
PERS loaddata piece5 := [ 5, [0, 0, 0], [1, 0, 0, 0], 0, 0, 0];
PERS wobjdata wobj2 := [ TRUE, TRUE, "", [ [34, 0, -45], [0.5, -0.5, 0.5 ,-0.5] ],
[ [0.56, 10, 68], [0.5, 0.5, 0.5 ,0.5] ] ];
VAR num load_accuracy;
Limitations
It is not possible to restart the load identification movements after any type of stop such
as program stop, emergency stop or power failure. The load identification movements
must be restarted from the beginning again.
Error handling
At any error during execution of the RAPID NOSTEPIN routine LoadId, the system
variable ERRNO is set to ERR_PID_MOVESTOP, ERR_PID_RAISE_PP or
ERR_LOADID_FATAL and the program pointer is raised to the user call of LoadId.
Syntax
LoadId
[ ParIdType ’:=’ ] <expression (IN) of paridnum> ‘,’
[ LoadIdType ’:=’ ] <expression (IN) of loadidnum> ‘,’
[ Tool ’:=’ ] <persistent (PERS) of tooldata>
[ ‘\’ PayLoad ’:=’ <persistent (PERS) of loaddata> ]
[ ‘\’ WObj ’:=’ <persistent (PERS) of wobjdata> ]
[ ‘\’ ConfAngle ’:=’ <expression (IN) of num> ]
[ ‘\’ SlowTest ]
[ ‘\’ Accuracy ’:=’ <variable (VAR) of num> ] ‘;’
Related information
Described in:
Predefined program Load Identify Calibration - Identification of tool and
payload data
Type of parameter identification Data Types - paridnum
Result of ParIdRobValid Data Types - paridvalidnum
Type of load identification Data Types - loadidnum
Valid robot type Functions - ParIdRobValid
Valid robot position Functions - ParIdPosValid
L
LoadId 27
loadidnum 3
M
MotionSup 9
P
Parid 13
paridnum 19
paridvalidnum 5
LoadId&CollDetect 33