Motion

The robot movements are programmed as pose-to-pose movements, i.e. "move from the current position to a new position". The path between these two positions is then automatically calculated by the robot.

Programming principles

The basic motion characteristics, such as the type of path, are specified by choosing the appropriate positioning instruction.

The remaining motion characteristics are specified by defining data which are arguments of the instruction:

Some of the motion characteristics of the robot are determined using logical instructions which apply to all movements :

Both the robot and the external axes are positioned using the same instructions. The external axes are moved at a constant velocity, arriving at the end position at the same time as the robot.

Positioning instructions

Instruction Type of movement:

MoveC TCP moves along a circular path

MoveJ Joint movement

MoveL TCP moves along a linear path

MoveAbsJ Absolute joint movement

MoveCDO Moves the robot circularly and sets a digital output in the middle of the corner path.

MoveJDO Moves the robot by joint movement and sets a digital output in the middle of the corner path.

MoveLDO Moves the robot linearly and sets a digital output in the middle of the corner path.

MoveCSync1 Moves the robot circularly and executes a RAPID procedure

MoveJSync1 Moves the robot by joint movement and executes a RAPID procedure

MoveLSync1 Moves the robot linearly and executes a RAPID procedure

1. Only if the robot is equipped with the option "Advanced Functions".

Searching

During the movement, the robot can search for the position of a work object, for example.

The searched position (indicated by a sensor signal) is stored and can be used later to position the robot or to calculate a program displacement.

Instruction Type of movement:

SearchC TCP along a circular path

SearchL TCP along a linear path

Activating outputs or interrupts at specific positions

Normally, logical instructions are executed in the transition from one positioning instruction to another. If, however, special motion instructions are used, these can be executed instead when the robot is at a specific position.

Instruction Used to:

TriggIO1 Define a trigg condition to set an output at a given position

TriggInt1 Define a trigg condition to execute a trap routine at a given position

1. Only if the robot is equipped with the option "Advanced functions"

TriggEquip1 Define a trigg condition to set an output at a given position with the possibility to include time compensation for the lag in the external equipment

TriggC1 Run the robot (TCP) circularly with an activated trigg condition

TriggJ1 Run the robot axis-by-axis with an activated trigg condition

TriggL1 Run the robot (TCP) linearly with an activated trigg condition

Data type Used to define:

triggdata1 Trigg conditions

aoitrigg Analogue I/O trigger condition

1.Only if the robot is equipped with the option "Advanced Functions".

Motion control if an error/interrupt takes place

In order to rectify an error or an interrupt, motion can be stopped temporarily and then restarted again.

Instruction Used to:

StopMove Stop the robot movements

StartMove Restart the robot movements

StorePath1 Store the last path generated

RestoPath1 Regenerate a path stored earlier

1. Only if the robot is equipped with the option "Advanced Functions".

Controlling external axes

The robot and external axes are usually positioned using the same instructions. Some instructions, however, only affect the external axis movements.

Instruction Used to:

DeactUnit Deactivate an external mechanical unit

ActUnit Activate an external mechanical unit

MechUnit Load Defines a payload for a mechanical unit

Independent axes

The robot axis 6 (and 4 on IRB 2400 /4400) or an external axis can be moved independently of other movements. The working area of an axis can also be reset, which will reduce the cycle times.

Function Used to:

IndAMove2 Change an axis to independent mode and move the axis to an absolute position

IndCMove2 Change an axis to independent mode and start the axis moving continuously

IndDMove2 Change an axis to independent mode and move the axis a delta distance

IndRMove2 Change an axis to independent mode and move the axis to a relative position (within the axis revolution)

IndReset2 Change an axis to dependent mode or/and reset the working area

IndInpos2 Check whether an independent axis is in position

IndSpeed2 Check whether an independent axis has reached programmed speed

Instruction Used to:

HollowWristReset2 Reset the position of the wrist joints on hollow wrist manipulators, such as IRB 5402 and IRB 5403.

2. Only if the robot is equipped with the option "Advanced Motion".

(The Instruction HollowWristReset can only be used on Robot IRB 5402 AND IRB 5403.)

Path Correction

Instruction Used to:

CorrCon2 Connect to a correction generator

CorrWrite2 Write offsets in the path coordinate system to a correction generator

CorrDiscon2 Disconnect from a previously connected correction generator

CorrClear2 Remove all connected correction generators

Function Used to:

CorrRead2 Read the total corrections delivered by all connected correction generators

Data type Used to:

Corrdescr2 Add geometric offsets in the path coordinate system

2. Only if the robot is equipped with the option "Advanced Motion".

(The Instruction HollowWristReset can only be used on Robots IRB 5402 and IRB 5403.)

Conveyor tracking

Instruction Used to:

WaitWObj3 Wait for work object on conveyor

DropWObj3 Drop work object on conveyor

3. Only if the robot is equipped with the option "Conveyor tracking".

Load identification and Collision detection

Instruction Used to:

MotionSup Deactivates/activates motion supervision

ParIdPosValid Valid robot position for parameter identification

ParIdRobValid Valid robot type for parameter identification

LoadId Load identification of tool or payload

Position functions

Function Used to:

Offs Add an offset to a robot position, expressed in relation to the work object

RelTool Add an offset, expressed in the tool coordinate system

CalcRobT Calculates robtarget from jointtarget

CPos Read the current position (only x, y, z of the robot)

CRobT Read the current position (the complete robtarget)

CJointT Read the current joint angles

ReadMotor Read the current motor angles

CTool Read the current tooldata value

CWObj Read the current wobjdata value

ORobT Remove a program displacement from a position

MirPos Mirror a position

CalcJointT Calculates joint angles from robtarget

Distance The distance between two positions

Motion data is used as an argument in the positioning instructions.

Data type Used to define:

robtarget The end position

jointtarget The end position for a MoveAbsJ instruction

speeddata The speed

zonedata The accuracy of the position (stop point or fly-by point)

tooldata The tool coordinate system and the load of the tool

wobjdata The work object coordinate system

Basic data for movements

Data type Used to define:

pos A position (x, y, z)

orient An orientation

pose A coordinate system (position + orientation)

confdata The configuration of the robot axes

extjoint The position of the external axes

robjoint The position of the robot axes

o_robtarget Original robot position when Limit ModPos is used

o_jointtarget Original robot position when Limit ModPos is used for

MoveAbsJ

loaddata A load

mecunit An external mechanical unit