Vous êtes sur la page 1sur 33

LoadId & CollDetect

On-line

ABB Flexible Automation


ABB Robotics Products AB
DPT / MT
S-72168 VÄSTERÅS
SWEDEN
Telephone: (0) 21 344000
Telefax: (0) 21 132592
Art.no 3HAC 0966-96 LoadId & CollDetect

CONTENTS
Page

loadidnum - Type of load identification ....................................................................... 3


Description............................................................................................................... 3
Predefined data ........................................................................................................ 3
Characteristics.......................................................................................................... 3
Related information ................................................................................................. 4
paridvalidnum - Result of ParIdRobValid................................................................... 5
Description............................................................................................................... 5
Predefined data ........................................................................................................ 5
Characteristics.......................................................................................................... 6
Related information ................................................................................................. 7
MotionSup - Deactivates/Activates motion supervision ............................................. 9
Description............................................................................................................... 9
Arguments................................................................................................................ 10
Program execution ................................................................................................... 10
Limitations ............................................................................................................... 10
Syntax ...................................................................................................................... 11
Related information ................................................................................................. 11
Parid - Identification of tool load and payload data ................................................. 13
Identification of Tool load ....................................................................................... 14
Identification of PayLoad ........................................................................................ 15
Error handling .......................................................................................................... 17
Limitations ............................................................................................................... 17
Related information ................................................................................................. 18
paridnum - Type of parameter identification .............................................................. 19
Description............................................................................................................... 19
Predefined data ........................................................................................................ 19
Characteristics.......................................................................................................... 19
Related information ................................................................................................. 20
ParIdPosValid - Valid robot position for parameter identification........................... 21
Arguments................................................................................................................ 22
Error handling .......................................................................................................... 23
Syntax ...................................................................................................................... 23
Related information ................................................................................................. 23
ParIdRobValid - Valid robot type for parameter identification ................................ 25
Arguments................................................................................................................ 26
Error handling .......................................................................................................... 26

LoadId & CollDetect 1


LoadId & CollDetect
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

2 LoadId & CollDetect


LoadId & CollDetect loadidnum

loadidnum Type of load identification

Loadidnum is used to represent an integer with a symbolic constant.

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;

Load identification of tool gun1 with identification of mass with movements of


robot axis 3 with use of predefined constant MASS_WITH_AX3 of data type
loadidnum.

Predefined data
The following symbolic constants of the data type loadidnum are predefined and can
be used as arguments in instruction LoadId.

Value Symbolic constant Comment

1 MASS_KNOWN Known mass in tool or payload respectively.

2 MASS_WITH_AX3 Unknown mass in tool or payload.


Identification of mass will be done with movements of
axis 3

Characteristics
Loadidnum is an alias data type for num and consequently inherits its characteristics.

LoadId & CollDetect 3


loadidnum LoadId & CollDetect

Related information
Described in:
Valid robot type Functions - ParIdRobValid
Valid robot position Functions - ParIdPosValid
Load identification with Instructions - LoadId
complete example

4 LoadId & CollDetect


LoadId & CollDetect paridvalidnum

paridvalidnum Result of ParIdRobValid

Paridvalidnum is used to represent an integer with a symbolic constant.

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

Use of predefined constants ROB_LOAD_VAL, ROB_LM1_LOAD_VAL and


ROB_NOT_LOAD_VAL of data type paridvalidnum.

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.

Value Symbolic constant Comment

10 ROB_LOAD_VAL Valid robot type for the current parameter identification

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

LoadId & CollDetect 5


paridvalidnum LoadId & CollDetect

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

6 LoadId & CollDetect


LoadId & CollDetect MotionSup

MotionSupDeactivates/Activates motion supervision


MotionSup (Motion Supervision) is used to deactivate or activate the motion supervi-
sion function for robot movements during program execution.

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;
...

LoadId & CollDetect 9


MotionSup LoadId & CollDetect

Arguments
MotionSup [ \On] | [ \Off] [\TuneValue]
[ \On ] Data type: switch

Activate the motion supervision function during program execution


(if it has already been activated in system parameters).

[ \Off ] Data type: switch

Deactivate the motion supervision function during program execution.

One of the arguments \On or \Off must be specified.

[ \TuneValue ] Data type: num

Tuning the motion supervision sensitivity level in percent (1 - 10 000%) of sys-


tem parameter level. A higher level gives more robust sensitivity. This argument
can only be combined with argument \On.

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

- the robot will stop as quickly as possible


- the robot will back up to remove any residual forces
- the program execution will stop with an error message

If motion supervision is active in system parameters, it is by default active during pro-


gram execution (TuneValue 100%). These values are set automatically

- 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.

10 LoadId & CollDetect


LoadId & CollDetect MotionSup

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

LoadId & CollDetect 11


MotionSup LoadId & CollDetect

12 LoadId & CollDetect


LoadId & CollDetect ParId

Parid Identification of tool load and payload data

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.

Upper arm load

Payload

Tool load

Figure 1 Robot with mounted loads.

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ο

Figure 2 Motion interval for axis 6.

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.

LoadId & CollDetect 13


ParId LoadId & CollDetect

Identification of Tool load


Before starting the identification of a tool load, you must make sure of a few things:

• Make sure the tool is 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 upper arm load is known if the mass is to be identified. See Figure
31.
• 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 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.

• Press the Enabling device.


• Choose Special: Call Service Routine....
• Select LoadIdentify and press OK.
• Press Start to begin the load identification.

You will now be guided through the load identification procedure.

14 LoadId & CollDetect


LoadId & CollDetect ParId

• First choose if you want to identify a tool or a payload. Choose Tool.


• Then you will be asked to confirm that you are in a correct load identification position
and that the load is correctly mounted. Choose OK to confirm.
• Confirm that the tool structure that is active in the jogging window is the one that you
want to identify. If it is correct choose OK to confirm. If it is not correct release the
Enabling device, go to the jogging window and choose another tool. Then press the
Enabling device, return to the load identification program and press Start. Then
choose Retry and then confirm that the new tool is correct by pressing OK.
• Choose identification method. If you choose the method where the mass is assumed
to be known remember that the tool that you use 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 Start. 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 tool structure with the identified parameters or
No otherwise.

Identification of PayLoad
Before starting the identification of a payload you must make sure of a few things:

LoadId & CollDetect 15


ParId LoadId & CollDetect

• 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.

• Press the Enabling device.


• Choose Special: Call Routine....
• Select LoadIdentify and press OK.
• Press Start to begin the load identification.

You will now be guided through the load identification procedure.

• First choose if you want to identify a tool or a payload. Choose PayLoad.


• Then you will be asked to confirm that you are in a correct load identification position
and that the payload is correctly mounted and defined with name. Choose OK to con-
firm.
• Select the Payload that you want to identify. Press OK to continue.
• Confirm that the tool that is active in the jogging window is the one that holds the Pay-
load to identify. If it is correct choose OK to confirm. If it is not correct release the
Enabling device, go to the jogging window and choose another tool. Then press the
Enabling device, return to the load identification program and press Start. Then
choose Retry and then confirm that the new tool is correct by pressing OK.
• If roomfix TCP is used confirm that the work object that is active in the jogging win-
dow is the one that is in use for the Payload (work piece). If it is correct choose OK
to confirm. If it is not correct release the Enabling device, go to the jogging window

16 LoadId & CollDetect


LoadId & CollDetect ParId

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.

LoadId & CollDetect 17


ParId LoadId & CollDetect

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:

RAPID instruction ParIdRobValid RAPID Owerview


Summmary - Motion

RAPID instruction ParIdPosValid RAPID Owerview


Summmary - Motion

RAPID instruction LoadId RAPID Owerview


Summmary - Motion

18 LoadId & CollDetect


LoadId & CollDetect paridnum

paridnum Type of parameter identification

Paridnum is used to represent an integer with a symbolic constant.

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

Use of predefined constant TOOL_LOAD_ID of data type paridnum.

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.

Value Symbolic constant Comment

1 TOOL_LOAD_ID Identify tool load

2 PAY_LOAD_ID Identify payload


(Ref. instruction GripLoad)

Characteristics
Paridnum is an alias data type for num and consequently inherits its characteristics.

LoadId & CollDetect 19


paridnum LoadId & CollDetect

Related information
Described in:
Valid robot type Functions - ParIdRobValid
Valid robot position Functions - ParIdPosValid
Load identification with Instructions - LoadId
complete example

20 LoadId & CollDetect


LoadId & CollDetect ParIdRobValid

ParIdPosValid Valid robot position


for parameter identification
ParIdPosValid (Parameter Identification Position Valid) checks whether the robot
position is valid for the current parameter identification, such as load identification of
tool or payload.

Example
VAR jointtarget joints;
VAR bool valid_joints{12};

! Read the current joint angles


joints := CJointT();
! Check if valid robot position
IF ParIdPosValid (TOOL_LOAD_ID, joints, valid_joints) = TRUE THEN
! Valid position for load identification
! Continue with LoadId
...
ELSE
! Not valid position for one or several axes for load identification
! Move the robot to the output data given in variable joints
! and do ParIdPosValid once again
...
ENDIF

Check whether robot position is valid before doing load identification of tool.

Return value Data type: bool

TRUE if robot position is valid for current parameter identification.


FALSE if robot position is not valid for current parameter identification.

LoadId & CollDetect 21


ParIdRobValid LoadId & CollDetect

Arguments
ParIdPosValid ( ParIdType Pos AxValid [\ConfAngle] )
ParIdType Data type: paridnum

Type of parameter identification as defined in table below.

Value Symbolic constant Comment

1 TOOL_LOAD_ID Identify tool load

2 PAY_LOAD_ID Identify payload


(Ref. instruction GripLoad)

Pos Data type: jointtarget

Variable specifies the actual joint angles for all robot and external axes.
The variable is updated by ParIdPosValid according to the table below.

Input axis joint value Output axis joint value

Valid Not changed

Not valid Changed to suitable value

AxValid Data type: bool

Array variable with 12 elements corresponding to 6 robot and 6 external axes.


The variable is updated by ParIdPosValid according to the table below.

Input axis joint value in Pos Output status in AxValid

Valid TRUE

Not valid FALSE

[ \ ConfAngle ] Data type: num

Option argument for specification of specific configuration angle +/- degrees to


be used for parameter identification.

22 LoadId & CollDetect


LoadId & CollDetect

Load identification pos axis 6 in


another configuration
*) (Selected by ConfAngle)

*) Positive ConfAngle in degrees

*) Measurement movements in different


configurations axis 6
Axis 6 Load identification pos axis 6 at start
(Verified with ParIdPosValid)

Default + 90 degrees if this argument is not specified.


Min. + or - 30 degrees. Optimum + or - 90 degrees.

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> ] ‘)’

A function with a return value of the data type bool.

Related information
Described in:
Type of parameter identification Data Types - paridnum
Valid robot type Functions - ParIdRobValid
Load identification with Instructions - LoadId
complete example

LoadId & CollDetect 23


LoadId & CollDetect

24 LoadId & CollDetect


LoadId & CollDetect ParIdRobValid

ParIdRobValid Valid robot type


for parameter identification
ParIdRobValid (Parameter Identification Robot Valid) checks whether the robot type
is valid for the current parameter identification, such as load identification of tool or
payload.

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

Return value Data type: paridvalidnum

Whether the specified parameter identification can be performed with the current robot
type, as defined in the table below.

Value Symbolic constant Comment

10 ROB_LOAD_VAL Valid robot type for the actual parameter identification

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

LoadId & CollDetect 25


ParIdRobValid LoadId & CollDetect

Arguments
ParIdRobValid (ParIdType)
ParIdType Data type: paridnum

Type of parameter identification as defined in table below.

Value Symbolic constant Comment

1 TOOL_LOAD_ID Identify tool load

2 PAY_LOAD_ID Identify payload


(Ref. instruction GripLoad)

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> ‘)’

A function with a return value of the data type paridvalidnum.

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

26 LoadId & CollDetect


LoadId & CollDetect LoadId

LoadId Load identification of tool or payload


LoadId (Load Identification) can be used for load identification of tool (also gripper
tool if roomfix TCP) or payload (activates with instruction GripLoad) by executing a
user defined RAPID program.

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]];

! Check if valid robot type


IF ParIdRobValid(TOOL_LOAD_ID) <> ROB_LOAD_VAL THEN
EXIT;
ENDIF

! Check if valid robot position


WHILE invalid_pos = TRUE DO
joints := CJointT();
IF ParIdPosValid (TOOL_LOAD_ID, joints, valid_joints) = TRUE THEN
! Valid position
invalid_pos := FALSE;
ELSE
! Invalid position
! Adjust the position by program movements (horizontal tilt house)
MoveAbsJ joints, low_ori_speed, fine, tool0;
ENDIF
ENDWHILE

! Do slow test for check of free working area


IF slow_test_flag = TRUE THEN
LoadId TOOL_LOAD_ID, MASS_WITH_AX3, grip3 \SlowTest;
ENDIF

! Do measurement and update all load data in grip3


LoadId TOOL_LOAD_ID, MASS_WITH_AX3, grip3;

Load identification of tool grip3.

LoadId & CollDetect 27


LoadId LoadId & CollDetect

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:

Table 1 Load identification of tool

Load identification modes / Moving TCP Moving TCP Roomfix TCP Roomfix TCP
Defined data before LoadId Mass Known Mass Unknown Mass Known Mass Unknown

Upper arm load Defined Defined


(System parameter)

Mass in tool Defined Defined

Table 2 Load identification of payload

Load identification modes / Moving TCP Moving TCP Roomfix TCP Roomfix TCP
Defined data before LoadId Mass Known Mass Unknown Mass Known Mass Unknown

Upper arm load Defined Defined


(System parameters)

Load data in tool Defined Defined Defined Defined

Mass in payload Defined Defined

Tool frame in tool Defined Defined

User frame in work object Defined Defined

Object frame in work object Defined Defined

• Operating mode and speed override:


- Slow test in manual mode reduced speed
- Load measurements in automatic mode (or manual mode full speed) with speed
override 100%

28 LoadId & CollDetect


LoadId & CollDetect LoadId

Arguments
LoadId ParIdType LoadIdType Tool [\PayLoad] [\WObj]
[\ConfAngle] [\SlowTest] [\Accuracy]
ParIdType Data type: paridnum

Type of parameter identification as defined in the table below.

Value Symbolic constant Comment

1 TOOL_LOAD_ID Identify tool load

2 PAY_LOAD_ID Identify payload


(Ref. instruction GripLoad)

LoadIdType Data type: loadidnum

Type of load identification as defined in the table below.

Value Symbolic constant Comment

1 MASS_KNOWN Known mass in tool or payload respectively.


(Mass in specified Tool or PayLoad must be specified)

2 MASS_WITH_AX3 Unknown mass in tool or payload respectively.


Identification of mass in tool or payload will be done with
movements of axis 3

Tool Data type: tooldata

Persistent variable for the tool to be identified.


If argument \PayLoad specified, the persistent variable for the tool in use.

For load identification of tool, the following arguments \PayLoad and \WObj
should not be specified.

[ \ PayLoad ] Data type: loaddata

Persistent variable for the payload to be identified.

This option argument must always be specified for load identification of


payload.

[ \ WObj ] Data type: wobjdata

Persistent variable for the work object in use.

This option argument must always be specified for load identification of payload
with roomfix TCP.

[ \ ConfAngle ] Data type: num

Option argument for specification of a specific configuration angle +/- degrees

LoadId & CollDetect 29


LoadId LoadId & CollDetect

to be used for the parameter identification.

Load identification pos axis 6 in


another configuration
*) (Selected by ConfAngle)

*) Positive ConfAngle in degrees

*) Measurement movements in different


configurations axis 6
Axis 6 Load identification pos axis 6 at start
(Verified with ParIdPosValid)

Default + 90 degrees if this argument is not specified.


Min. + or - 30 degrees. Optimum + or - 90 degrees.

[ \ SlowTest ] Data type: switch

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

[ \ Accuracy ] Data type: num

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:

- Mass in kg (if mass is unknown otherwise not affected)


- Centre of gravity x, y, z and axes of moment
- Inertia ix, iy, iz in kgm

30 LoadId & CollDetect


LoadId & CollDetect LoadId

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;

! Do measurement and update all load data except mass in piece5


LoadId PAY_LOAD_ID, MASS_KNOWN, grip3 \PayLoad:=piece5 \WObj:=wobj2
\Accuracy:=load_accuracy;
TPWrite “ Load accuracy for piece5 (%) = “ \Num:=load_accuracy;

Load identification of payload piece5 with known mass in installation with


roomfix TCP.

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> ] ‘;’

LoadId & CollDetect 31


LoadId & CollDetect

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

32 LoadId & CollDetect


LoadId&CollDetect Index

L
LoadId 27
loadidnum 3
M
MotionSup 9
P
Parid 13
paridnum 19
paridvalidnum 5

LoadId&CollDetect 33

Vous aimerez peut-être aussi