Sie sind auf Seite 1von 48

Art.

no 3HAC 7832-1 LoadId & CollDetect

CONTENTS
Page

Introduction .................................................................................................................... 3
Identification of tool or payload.................................................................................... 5
Identification of load data for external manipulators ................................................ 11
MechUnitLoad - Defines a payload for a mechanical unit........................................ 17
Arguments.................................................................................................................. 18
Program execution ..................................................................................................... 18
Limitations ................................................................................................................. 19
Syntax ........................................................................................................................ 19
Related information ................................................................................................... 20
ParIdRobValid - Valid robot type for parameter identification ................................ 21
Arguments.................................................................................................................. 22
Error handling ............................................................................................................ 22
Syntax ........................................................................................................................ 23
Related information ................................................................................................... 23
paridnum - Type of parameter identification .............................................................. 25
Description............................................................................................................... 25
Predefined data ........................................................................................................ 25
Characteristics.......................................................................................................... 26
Related information ................................................................................................. 27
paridvalidnum - Result of ParIdRobValid................................................................... 29
Description............................................................................................................... 29
Predefined data ........................................................................................................ 29
Characteristics.......................................................................................................... 30
Related information ................................................................................................. 30
ParIdPosValid - Valid robot position for parameter identification........................... 31
Arguments................................................................................................................ 32
Error handling .......................................................................................................... 33
Syntax ...................................................................................................................... 33
Related information ................................................................................................. 34

LoadId & CollDetect 1


LoadId & CollDetect Art.no 3HAC 7832-1

LoadId - Load identification of tool or payload .......................................................... 35


Condition ................................................................................................................... 36
Arguments.................................................................................................................. 37
Program Execution .................................................................................................... 38
Limitations................................................................................................................. 39
Error handling............................................................................................................ 39
Syntax ........................................................................................................................ 39
Related information ................................................................................................... 40
loadidnum - Type of load identification ....................................................................... 41
Description................................................................................................................. 41
Predefined data .......................................................................................................... 41
Characteristics ........................................................................................................... 41
Related information ................................................................................................... 41
MotionSup - Deactivates/Activates motion supervision ............................................. 43
Description................................................................................................................. 43
Arguments.................................................................................................................. 43
Program execution ..................................................................................................... 44
Limitations................................................................................................................. 44
Syntax ........................................................................................................................ 44
Related information ................................................................................................... 45

2 LoadId & CollDetect


LoadId & CollDetect Introduction

Introduction

This document describes the option Load ID and CollDetect (Load Identification and
Collision Detection). It is organised as follows:

Chapters Identification of tool or payload and Identification of load data for external
manipulators IRBP K and IRBP L describe how to carry out load identification by
starting a predefined program. These procedures should always be chosen in the first
instance.

Chapter Instructions for own identification programs describes how to carry out load
identification by creating own identification programs. Own programs should only be
created for special needs.

Chapter Motion Supervision describes collision detection.

LoadId & CollDetect 3


Introduction LoadId & CollDetect

4 LoadId & CollDetect


LoadId & CollDetect Identification of tool or payload

Identification of tool or payload

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 can be used to
compute the necessary load data by moving the robot.

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. The identification
can only be performed in a position where the angle of 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, indicating how well the identification went, 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 32. The optimum value for the Configura-
tion angle is 90 degrees.

Configuration 2
30ο

30ο

Configuration 1 (start position) Configuration angle


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 31) must be known and
correctly defined.

LoadId & CollDetect 5


Identification of tool or payload LoadId & CollDetect

Identification of Tool load

Some measures must be taken before starting the identification of a tool load, as fol-
lows:

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

• 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 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. The optimum is +90 or -90 degrees. If this is impossible,
choose Other and input the angle that you want. The 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
one or more axes roughly to a specified position. When you have done this press OK
to confirm.
• If the robot is still not in a correct position for load identification, the robot will slowly
move to the correct position. Press Move to start the movement.

6 LoadId & CollDetect


LoadId & CollDetect Identification of tool or payload

• Choose if you want the robot to go through the load identification movements slowly
before performing the load identification. This is useful for ensuring 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
Automatic 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

Some measures must be taken before starting the identification of a tool load, as fol-
lows:

• 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.
• When using a moving TCP, the tool must be calibrated (TCP).
• When using a roomfix TCP, the corresponding work object 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.

LoadId & CollDetect 7


Identification of tool or payload LoadId & CollDetect

• 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 a name. Choose OK to
confirm.
• 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 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
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. The optimum is +90 or -90 degrees. If this is impossible,
choose Other and input the angle that you want. The 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
one or more axes roughly to a specified position. When you have done this press OK
to confirm.
• If the robot is still 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 ensuring 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.

8 LoadId & CollDetect


LoadId & CollDetect Identification of tool or payload

If an error should occur during the load identification movements, the procedure must
be restarted from the beginning. This is done automatically by pressing Start after con-
firming the error. To interrupt and leave the load identification procedure, choose Spe-
cial: Move PP to main.

Hints

The best way to perform load identification is with a robot that has no arm loads
mounted. If this is not possible, good accuracy can still be achieved. Below are some
suggestions about what to do if arm loads are present. Consider, for example, the robot
in the figure below, which has arc-welding equipment mounted on it.

load 1
cable 2
load 2

cable 1

Figure 3 A typical case of a robot with mounted loads.

If we want to use load identification to find the data of load 2, the most important thing
to remember is to make sure that the upper arm load is correctly defined, in particular
its mass and its centre of gravity along the robot arm. The arm load includes everything
that is mounted on the robot, except Tool Load and Payload. In the figure above, cable
1, cable 2, and load 1 are included in the arm load.

When performing the load identification, cable 2 should be disconnected since it will
otherwise put an extra force on load 2. When identifying load 2 with such a force
present, the result may differ considerably from the correct one. Ideally, cable 2 should
be disconnected from load 2 and fastened on the upper arm. If this is not possible, the
cable can also be disconnected at load 1 and fastened to the upper arm in such a way
that the resulting force on load 2 in minimised.

Limitations

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 the robot is stopped on a path with Program Stop and load identification is performed
at the stop point the path will be cleared. This means that no regain will be performed
back to the path.

LoadId & CollDetect 9


Identification of tool or payload LoadId & CollDetect

If the measurement accuracy is low, i.e. lower than 80%, the result of the load identifi-
cation can have a significant error. In the case this happens a higher accuracy may be
achieved by just repeating the load identification once more. If this does not work the
torques measured in the identification are probably too small and the tool and/or pay-
load data must be set manually. This is typically the case if the mass of the load is small
(10% or less of the maximum load). It can also happen if the load has a particular sym-
metry property, for instance if the tool load is symmetrical around axis 6. Note, how-
ever, that even if the measurement accuracy is low some of the identified parameters
may still be correct.

Load identification is not available for suspended robots.

Related information

It is also possible to create your own load identification procedure. This is described in
the manual for the option LoadId & ColDetect. The RAPID commands available are
specified below.

Described in:

RAPID instruction ParIdRobValid RAPID Overview


Summary - Motion

RAPID instruction ParIdPosValid RAPID Overview


Summary - Motion

RAPID instruction LoadId RAPID Overview


Summary - Motion

10 LoadId & CollDetect


LoadId & CollDetect Identification of load data for external
manipulators

Identification of load data for external manipulators

Since the data of the different loads that can be mounted on the external manipulator
can be quite difficult to compute, there is a load identification procedure which com-
putes the necessary load data by moving the manipulator. Here we will describe which
parameters are identified with the load identification and then briefly describe the load
identification movements. If you run the load identification for the first time on a spe-
cific type of manipulator, it is recommended that you first run the procedure in slow
test mode to prevent any collisions (see the section Load identification procedure
below).

Load Identification for IRBP L

A simplified view of manipulator IRBP L is shown in Figure 4. Load identification can


be performed in any position for this manipulator.

IRBP_L

axis 1

Figure 4 Simplified view of manipulator IRBP_L.

The parameters that are identified are: centre of gravity in a plane perpendicular to the
axis, and moments of inertia around the axis, see Figure 5. Note that the mass of the
load must be known in advance. The mass data is entered when performing the load
identification (see the section Load identification procedure below). Together with
the identified parameters, a measurement accuracy is also given, indicating how suc-
cessful the identification was.

Iz
m x
y

Figure 5 The parameters that can be identified on an IRBP L manipulator.

To perform the identification the manipulator moves the load and computes the param-
eters. The movements for the axis are performed around two configuration points as
described in Figure 6. At each configuration, the maximum motion for the axis is
approximately 30 degrees up and 30 degrees down. The optimum value for the Con-

LoadId & CollDetect 11


Identification of load data for external LoadId & CollDetect
manipulators
figuration angle is 90 degrees.

Configuration 2
ο
30

30ο

Configuration angle
Configuration 1 (start position) 30ο 30ο

Figure 6 Motion interval for the axis.

Load Identification for IRBP K

A simplified view of manipulator IRBP K is shown in Figure 7. Load identification is


allowed on axes 2 and 3 for this manipulator. Load identification can only be performed
when axis 1 is in one of its end positions. This is checked by the load identification pro-
cedure.

IRBP_K

axis 2

axis 1

axis 3

Figure 7 Simplified view of manipulator IRBP_K.

The identification movements for each axis are the same as for the IRBP L manipulator.
The identified parameters are also the same.

Load Identification for IRBP R

A simplified view of the IRBP R manipulator is shown in Figure 8. The parameters that
are identified are: centre of gravity in a plane perpendicular to the axis, and three
moments of inertia at the centre of gravity. Note that both the mass of the load and the
distance z to the centre of gravity must be known in advance. These data are entered
when performing the load identification (see the section Load identification proce-
dure below).

12 LoadId & CollDetect


LoadId & CollDetect Identification of load data for external
manipulators

Ix Iy
Iz
m x
z y

Figure 8 Simplified view of manipulator IRBP_R.

One part of the identification movements for one axis are the same as for the IRBP L
manipulator. To find the extra moments of inertia we also move the interchange axis
with the load to two different positions. The movements for the interchange axis are
the movements described in Figure 6 but only at one configuration point. It is impor-
tant to remember that the identification on one axis will be correct only if there is no
load mounted on the other axis.

Load Identification for IRBP A

A simplified view of manipulator IRBP A is shown in Figure 9. When the identifica-


tion is performed, the manipilator must be positioned so that the z-axis is horizontal.
This is checked by the load identification procedure. If axis 1 is too far from this posi-
tion the load identification procedure will suggest which angle it should be moved to.

Iy
Ix
Iz
m x
y
z

Figure 9 Simplified view of manipulator IRBP_A.

LoadId & CollDetect 13


Identification of load data for external LoadId & CollDetect
manipulators
The parameters that are identified are: centre of gravity and three moments of inertia at
the centre of gravity, see Figure 9. The mass of the load must be known in advance and
it is entered when performing the load identification (see the section Load identifica-
tion procedure below). The motion for each axis is, in principal, the same as for the
IRBP L manipulator, see Figure 6. However, axis 1 only performs its movements
around one configuration point.

It should be noted in the case of this manipulator that some of the load calculations are
quite complicated, especially for the moments of inertia. Therefore, the level of the load
identification accuracy may be lower than for the other manipulators. This is generally
not a problem since possible errors in the load data are normally very small compared
to the combined effect of load and manipulator together.

Load Identification for IRBP B and D

The design of the IRBP B and D manipulators will not be described in detail here. But
we can assume that they consist of two IRBP A manipulators and one interchange axis.
Load identification can only be performed on the IRBP A manipulators as described
above. However, it should be noted that to obtain the best accuracy of the load identi-
fication, the interchange axis should be in one of its end positions. This is not checked
by the load identification procedure.

14 LoadId & CollDetect


LoadId & CollDetect Identification of load data for external
manipulators
Load identification procedure

Some measures must be taken before starting the identification of a payload:

• Make sure that the payload is mounted on the manipulator’s end effectors (turntable).
• Make sure that the manipulator axes, which will move during the identification, are
not close to their corresponding working range limits.
• Make sure that the mechanical unit is activated.
• Make sure that the speed override is set to 100%.
• The PayLoad to identify must be defined as a PERS variable (with default data).
It is recommended to define the payload in the system module USER.SYS because
then the payload is always available in the system.

Before starting load identification, you must load the RAPID program
MULOADID.PRG from the Controller Parameter diskette into the program memory:

• Choose File: Open....


• Select LOADID and press ENTER.
• Select MULOADID and press OK.

To begin, ensure that you are in Manual mode and start the load identification proce-
dure as follows:

• Press the Enabling device.


• Press Start to begin the load identification.

You will now be guided through the load identification procedure:

• First you will be asked to confirm that the Mechanical unit is activated, including all
manipulator axes, that the PayLoad to be identified is mounted and defined, and that
you are in a correct load identification position. Choose OK to confirm.
• Select the type of External Manipulator to identify. Choose 1 for manipulator IRBP
L and 2 for manipulator IRBP K and so on.
• Select the Mechanical Unit. Press OK to continue.
• For manipulators IRBP K and IRBP R, select the axis with the load to identify.
Choose between 2 or 3.
• Select the PayLoad that you want to identify and press OK to continue.
• Specify mass in kg. Press OK to continue.
• For manipulator IRBP R specify the distance z in mm. Press OK to continue.
• Choose configuration angle. The optimum is +90 or -90 degrees. If this is impossible,
choose Other and enter the angle that you want. The minimum is plus or minus 30
degrees.
• If the manipulator is not in a correct position for load identification, you will be asked
to jog the axes roughly to a specified position. When you have done this press OK to
confirm.

LoadId & CollDetect 15


Identification of load data for external LoadId & CollDetect
manipulators
• If the manipulator is still not in a correct position for load identification, the manipu-
lator will slowly move to a correct position. Press Move to start the movement.
• Choose if you want the manipulator to go through the load identification movements
slowly before performing the load identification. This is useful to ensure that the
manipulator will not collide with 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.
• 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 load data structure with the identified parame-
ters or No otherwise.

Error handling

If the Enabling device is released during setup of the load identification (before the
movements start), the RAPID procedure ManLoadIdProc 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 by pressing Start after con-
firming the error.

To interrupt and leave the load identification procedure, stop the program and then
close it.

Limitations

If the measurement accuracy is low, i.e. lower than 80%, a significant error may be
present in the result of the load identification. If this is the case, a higher accuracy may
be achieved by just repeating the load identification once again. If this does not work,
the torques measured in the identification are probably too small and the tool and/or
payload data must be set manually. This is typically the case when the mass of the load
is small (10% or less of the maximum load). It can also occur when the load has a par-
ticular symmetry property, for example, if the load is symmetrical around the rotating
axis. Note, however, that even if the measurement accuracy is low, some of the identi-
fied parameters may still be useful.

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.

16 LoadId & CollDetect


Instructions MechUnitLoad

MechUnitLoad Defines a payload for a mechanical unit


MechUnitLoad is used to define a payload for an external mechanical unit.
(The payload for the robot is defined with instruction GripLoad)

This instruction should be used for all mechanical units with dynamic model in servo
to achieve the best motion performance.

The MechUnitLoad instruction should always be executed after execution of the


instruction ActUnit.

Example
IRBP_L

axis 1

Figure 10 A mechanical unit named IRBP_L of type IRBP L.

ActUnit IRBP_L;
MechUnitLoad IRBP_L, 1, load0;

Activate mechanical unit IRBP_L and define the payload load0 corresponding to
no load (at all) mounted on axis 1.

ActUnit IRBP_L;
MechUnitLoad IRBP_L, 1, fixture1;

Activate mechanical unit IRBP_L and define the payload fixture1 corresponding
to fixture fixture1 mounted on axis 1.

ActUnit IRBP_L;
MechUnitLoad IRBP_L, 1, workpiece1;

Activate mechanical unit IRBP_L and define the payload workpiece1 corre-
sponding to fixture and work piece named workpiece1 mounted on axis 1.

LoadId & CollDetect 17


MechUnitLoad Instructions

Arguments
MechUnitLoad MechUnit AxisNo Load
MechUnit (Mechanical Unit) Data type: mecunit

The name of the mechanical unit.

AxisNo (Axis Number) Data type: num

The axis number, within the mechanical unit, that holds the load.

Load Data type: loaddata

The load data that describes the current payload to be defined.

Program execution
After execution of MechUnitLoad, when the robot and external axes have come to a
standstill, the specified load is defined for the specified mechanical unit and axis. This
means that the payload is controlled and monitored by the control system.

The default payload at cold start-up, for a certain mechanical unit type, is the prede-
fined maximal payload for this mechanical unit type.

When some other payload is used, the actual payload for the mechanical unit and axis
should be redefined with this instruction. This should always be done after activation
of the mechanical unit.

The defined payload will survive a power failure restart.


The defined payload will also survive a restart of the program after manual activation
of some other mechanical units from the jogging window.

X Fixture
End-effector coordinate system
for the mechanical unit

Work piece

The centre of gravity for the payload (fixture + work piece)


Y Mechanical unit

Figure 11 Payload mounted on the end-effector of a mechanical unit.

18 LoadId & CollDetect


Instructions MechUnitLoad

Example

IRBP_K

axis 2

axis 1

axis 3

Figure 12 A mechanical unit named IRBP_K of type IRBP K with three axes.

MoveL homeside1, v1000, fine, gun1;


...
ActUnit IRBP_K;

The whole mechanical unit IRBP_K is activated.

MechUnitLoad IRBP_K, 2, workpiece1;

Defines payload workpiece1 on the mechanical unit IRBP_K axis 2.

MechUnitLoad IRBP_K, 3, workpiece2;

Defines payload workpiece2 on the mechanical unit IRBP_K axis 3.

MoveL homeside2, v1000, fine, gun1

The axes of the mechanical unit IRBP_K move to the switch position homeside2
with mounted payload on both axes 2 and 3.

Limitations
The movement instruction previous to this instruction should be terminated with a stop
point in order to make a restart in this instruction possible following a power failure.

Syntax
MechUnitLoad
[MechUnit ’:=’ ] < variable (VAR) of mecunit> ’,’
[AxisNo ‘:=’ ] <expression (IN) of num ‘,’
[ Load ’:=’ ] < persistent (PERS) of loaddata > ’;’

LoadId & CollDetect 19


MechUnitLoad Instructions

Related information
Described in:
Identification of payload for external LoadID&CollDetect
mechanical units - Program muloadid.prg
Mechanical units Data Types - mecunit
Definition of load data Data Types - loaddata
Definition of payload for the robot Instructions - GripLoad
Data Types - tooldata

20 LoadId & CollDetect


Functions 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 21


ParIdRobValid Functions

Arguments
ParIdRobValid (ParIdType [\MechUnit] [\AxisNo])
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)

3 IRBP_K_ID Identify External Manipulator IRBP K


load

4 IRBP_L_ID Identify External Manipulator IRBP L


load

5 IRBP_R_ID Identify External Manipulator IRBP R


load

6 IRBP_A_C_ID Identify External Manipulator IRBP A


load

7 IRBP_B_D_ID Identify External Manipulator IRBP B


or IRBP D load

8 IRB_EXT Identify External Robot load

Note: Only TOOL_LOAD_ID and PAY_LOAD_ID can be used in user defined


RAPID Programs for load identification.

[\MechUnit] (Mechanical Unit) Data type: mecunit

Mechanical Unit used for the load identification.


Only to be specified for external manipulator or external robot.

[\AxisNo] (Axis number) Data type: num

Axis number within the mechanical unit, which holds the load to be identified.
Only to be specified for external manipulator or external robot.

When the argument \MechUnit is used, then \AxisNo must be used.


The argument \AxisNo can not be used without \MechUnit.

Note: Arguments \MechUnit and \AxisNo should not be used in user defined RAPID
program for load identification tool load or payload.

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.

22 LoadId & CollDetect


Functions ParIdRobValid

Syntax
ParIdRobValid’(’
[ParIdType ’:=’] <expression (IN) of paridnum>
[‘\’ MechUnit ‘:=’ <variable (VAR) of mecunit>]
[‘\’ AxisNo ‘:=’ <expression (IN) of num>] ‘)’

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

Related information
Described in:
Type of parameter identification Data Types - paridnum
Mechanical unit to be identified Data Types - mecunit
Result of this function Data Types - paridvalidnum
Valid robot position Functions - ParIdPosValid
Load identification with Instructions - LoadId
complete example

LoadId & CollDetect 23


ParIdRobValid Functions

24 LoadId & CollDetect


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

LoadId & CollDetect 25


paridnum Data Types

Value Symbolic constant Comment

1 TOOL_LOAD_ID Identify tool load

2 PAY_LOAD_ID Identify payload


(Ref. instruction GripLoad)

3 IRBP_K_ID Identify External Manipulator IRBP K


load

4 IRBP_L_ID Identify External Manipulator IRBP L


load

5 IRBP_R_ID Identify External Manipulator IRBP R


load

6 IRBP_A_C_ID Identify External Manipulator IRBP A


load

7 IRBP_B_D_ID Identify External Manipulator IRBP B


or IRBP D load

8 IRB_EXT_ID Identify External Robot load

Note: Only TOOL_LOAD_ID and PAY_LOAD_ID can be used in user defined


RAPID Programs for load identification.

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

26 LoadId & CollDetect


Data Types paridnum

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

LoadId & CollDetect 27


paridnum Data Types

28 LoadId & CollDetect


Data Types 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 29


paridvalidnum Data Types

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

30 LoadId & CollDetect


Functions ParIdPosValid

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 31


ParIdPosValid Functions

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)

3 IRBP_K_ID Identify External Manipulator IRBP K


load

4 IRBP_L_ID Identify External Manipulator IRBP L


load

5 IRBP_R_ID Identify External Manipulator IRBP R


load

6 IRBP_A_C_ID Identify External Manipulator IRBP A


load

7 IRBP_B_D_ID Identify External Manipulator IRBP B


or IRBP D load

8 IRB_EXT_ID Identify External Robot load

Note: Only TOOL_LOAD_ID and PAY_LOAD_ID can be used in user defined


RAPID Programs for load identification.

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

32 LoadId & CollDetect


Functions ParIdPosValid

[ \ ConfAngle ] Data type: num

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


be used for 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.

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.

LoadId & CollDetect 33


ParIdPosValid Functions

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

34 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 dia-
logue 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 housing)
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 35


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 limits
- 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 Loa-
dId 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%

36 LoadId & CollDetect


LoadId & CollDetect LoadId

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

The 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

The type of load identification as defined in the table below.

Value Symbolic constant Comment

1 MASS_KNOWN Known mass of tool or payload respectively.


(Mass in specified Tool or PayLoad must be specified)

2 MASS_WITH_AX3 Unknown mass of tool or payload respectively.


Identification of mass of 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 pay-
load.

[ \ 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


to be used for the parameter identification.

LoadId & CollDetect 37


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

[ \ 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 relatively 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

38 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 39


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

40 LoadId & CollDetect


Data Types 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 of tool or payload respectively.

2 MASS_WITH_AX3 Unknown mass of 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.

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

LoadId & CollDetect 41


loadidnum Data Types

42 LoadId & CollDetect


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

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

Activate the motion supervision function during program execution

LoadId & CollDetect 43


MotionSup Instructions

(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 - 300%) of system


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.

Syntax
MotionSup
[ ’\’ On] | [ ’\’ Off ]
[’\’ Tunevalue ’:=’< expression (IN) of num> ] ’;’

44 LoadId & CollDetect


Instructions MotionSup

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 45


MotionSup Instructions

46 LoadId & CollDetect


LoadId & CollDetect Index

LoadId 35
loadidnum 41

MechUnitLoad 17
MotionSup 43

paridnum 25
ParIdRobValid 21, 31
paridvalidnum 29

LoadId & CollDetect 47


Index LoadId & CollDetect

48 LoadId & CollDetect

Das könnte Ihnen auch gefallen