Skip to main content

高级规划指令

15.4.8 Advanced planning command

15.4.8.1 RelTool

Explanation

It is used to translate or rotate the spatial position in the tool frame as specified by the current command.

Main difference from Offs: Offs is the offset along the work object frame, and RelTool is the offset along the tool frame.

Definition

Return value, data type: robtarget, to return the new pose after the offset.

RelTool (Point, XOffset, YOffset, ZOffset, Rx, Ry, Rz)

Point, data type: robtarget, the point to be offset, or the initial point of the offset command.

XOffset, data type: double, offset in the x-direction of the tool frame.

YOffset, data type: double, offset in the y-direction of the tool frame.

ZOffset, data type: double, offset in the z-direction of the tool frame.

Rx, data type: double, the rotation angle around the x-axis of the tool frame.

Ry, data type: double, the rotation angle around the y-axis of the tool frame.

Rz, data type: double, the rotation angle around the y-axis of the tool frame.

Example

Example 1

p2=RelTool (p1,100,0,30,20,0,0)

Offset p1 by 100 mm along the x-direction, 0 mm in the y-direction, and 30 mm in the z-direction of the tool frame. After it rotates 20 degrees around the x-axis, the new target point position is assigned to p2.

Example 2

MoveL (RelTool (p1,100,0,30,20,0,0), v4000, fine, tool2, wobj4)

RelTool is used along with the Move command. Offset p1 by 100 mm in the x-direction, 0 mm in the y-direction, and 30 mm in the z-direction on the tool2 frame, and then rotate 20 degrees around the x-axis.

Attention

The 5-axis models of the xMate CR series may have many unreachable points when using the RelTool command due to the lack of one orientation DOF. It is necessary to determine the offset based on the characteristics of reachable orientations (e.g. translation of points is usually reachable where the flange remains parallel to the base).

15.4.8.2 Offs

Explanation

The position offset function, which is used to offset a point in the work object frame specified in the current command by a distance and return the position value of a new point. The translation offset is represented by x, y, and z, and the orientation rotation offset is represented by Rx, Ry, and Rz.

Definition

Return value, data type: robtarget, the new pose after the offset.

Offs (Point, XOffset, YOffset, ZOffset [, Rx, Ry, Rz] )

Point, data type: robtarget, the point to be offset, or the initial point of the offset command.

XOffset, data type: double, offset in the x-direction of the work object frame.

YOffset, data type: double, offset in the y-direction of the work object frame.

ZOffset, data type: double, offset in the z-direction of the work object frame.

Rx, data type: double, the rotation angle around the x-axis of the work object frame.

Ry, data type: double, the rotation angle around the y-axis of the work object frame.

Rz, data type: double, the rotation angle around the z-axis of the work object frame.

Example

Example 1

p11=Offs(p10, 100, 200, 300);

Have the point p10 offset 100 mm in the x-direction, offset 200 mm in the y-direction, offset 300 mm in the z-direction of the work object frame, and assign the position of the new target point to p11.

Attention

This command does not support auxiliary programming for the moment.

15.4.8.3 ConfL

Explanation

After the command is enabled, the following two items are checked:

  1. Check whether the actual joint angle (i.e., cf1−7) reached through the Cartesian path is largely different from the teaching of the target point. If the difference is too large, the log will display the prompt, and the user consider whether to reach the target point in such a way.

  2. Check whether the actual joint configuration (i.e., cfx value) reached through the Cartesian path is consistent with the teaching of the target point, and if not, an error will be reported and the movement will stop.

Example

Example 1

ConfL(on)

MoveL (p1,v1000 ….);

//If the J6 angle at the P1 teaching position is -5°, the J6 angle may be 355° after the MoveL command is executed (the difference between the two is +-360°, that is, they are the same position). At this time, the log will prompt "The difference between the actual point of the turning angle and the set point is too large", but the movement will not stop.

ConfL(off);

MoveL (p1,v1000 ….);

//After the conf check of the Cartesian path is disabled, the robot can move to P1, but the cf1−7 and cfx values of confdata for the actual point and teaching point are not checked.

Attention

  1. The ConfL command corresponds to Cartesian motion commands such as MoveL and MoveC, without impact on the MoveJ and MoveAbsj, or the conf setting of "Move to".

  2. In the case of executing Cartesian motion commands such as linear motion and circular motion, the robot moves towards the target point with the pose most similar to that in the starting point. At this point, the angle of the target point will be automatically selected, so the actual turning angle of the robot at the target point will be different from the angle at the teaching position in some cases. When the command is enabled, a prompt is given for this situation.

15.4.8.4 ConfJ

Explanation

The Cartesian frame corresponds to a set of conf parameters (cf1−7, cfx). The conf data corresponding to the Cartesian coordinate points manually changed or written by the user may be incorrect, which makes it impossible for the controller to resolve the path of the target point. But in some scenarios, the user cares only about the robot’s TCP position rather than the orientation. In this case, ConfJ Off can be used to remove conf limitations of the point and the controller can try to calculate the inverse kinematics closest to the starting point of the path (the calculation may fail, resulting in a failure of the motion command).

Users can read the introduction to confdata for details of conf.

Example

Example 1

p1.trans.x = ….;

MoveJ (p1,v1000 ….);

//Only the frame is modified, not the confdata parameters. This command is likely to cause the execution to fail.

ConfJ(Off);

MoveJ (p1,v1000 ….);

//After the conf check is disabled, the robot can move to P1, but the orientation is uncertain.

Attention

The ConfJ command corresponds to MoveJ, without impact on the other motion commands, or the conf setting of "Move to".

15.4.8.5 Conf

Explanation

Effect of unified ConfL and ConfJ on/off:

Conf on: equivalent to ConfL on and ConfJ on

Conf off: equivalent to ConfL off and ConfJ off

Example

Example 1

Conf(on);

MoveL (p0, v1000 …);

MoveJ (p1,v1000 ….);

//Effect equivalent to the following commands:

ConfL (on);

ConfJ (on);

MoveL (p0, v1000 …);

MoveJ (p1,v1000 ….);

15.4.8.6 VelSet

Explanation

The VelSet command allows for adjusting maximum motion speed for smoother motion when the robot is handling fragile objects. Instead of being constant, the maximum velocity of each joint keeps changing with load, body orientation, and other factors when the robot is moving. The VelSet command scales the maximum velocity capability curve for a specific task path, and the scaled maximum velocity capability curve is also a changing curve.

Definition

VelSet (gain);

gain, data type: int, the maximum velocity capacity is specified in percentage, ranging from 1% to 100%, where 100% means the maximum acceleration. The robot reports an error when going over the limit.

Example

Example 1

VelSet (50);

Set the maximum velocity capability to half of the robot’s default maximum velocity.

Attention

1. The VelSet command only affects the motion commands of the corresponding RL project, instead of JOG, move to, rapid motion, and other non-project functions.

2. The VelSet function will interrupt the turning zone. Please do not insert VelSet commands between the motion commands that require a turning zone.

3. The difference between the VelSet command and the program running rate adjustment slide: the program running rate adjustment slide modifies the user’s expected velocity, for example, motion command V4000, under 50% slide control, equals a user’s expected velocity of V2000. But if the robot is at its limits, the actual maximum velocity of this motion command is only V1000, then the actual motion velocity of the robot does not change regardless of whether the velocity slide is at 50% or 100% because both V2000 and V4000 are above V1000. Changing the expected velocity during this range will not impact the actual execution velocity; on the contrary, VelSet 50 does not change the user’s expected velocity but reduces the actual maximum velocity of the motion command by 50% during the motion planning process. Under the same motion command, the actual motion velocity of the robot will be cut to half from V1000 to V500. The user should identify the difference between these two functions.

4. Speed automatically reverts to the default (100%) during the following operations:

  • RL program is reset manually (PP to Main)

  • A new RL program is loaded

15.4.8.7 AccSet

Explanation

The AccSet command allows for adjusting acceleration for smoother movement when the robot is handling fragile objects.

Definition

AccSet (acc, ramp);

Acc, data type: int, the acceleration is specified as a percentage of the system preset value, ranging from 30% to 100%, where 100% means the maximum acceleration, beyond which the robot will stop and report an error.

Ramp, data type: int, the Jerk is specified as a percentage of the system preset value, ranging from 30% to 100%, where 100% means the maximum jerk, beyond which the robot will report an error.

Example

Example 1

AccSet (50, 50);

Acceleration and jerk are set to half of the default.

Attention

Acceleration automatically reverts to the default (100%) during the following operations:

  • RL program is reset manually (PP to Main)

  • A new RL program is loaded

15.4.8.8 BreakLookAhead

Explanation

This command informs the control system to cancel the lookahead and force the cancellation of the turning zone between the previous motion command and the next motion command. The robot TCP will move to the target point position of the previous motion command and then move to the next point without the turning zone. The program pointer will also wait for the TCP to move to the target point position of the previous motion command before continuing the lookahead scan.

Definition

The command includes no parameters and no return value

Example

Example 1

MoveL(p1,v1000, z50, tool0);

BreakLookAhead

MoveL(p2,v1000, z50, tool0);

MoveL(p3,v1000, z50, tool0);

1) The turning zone of point P1 is set to z50. Because of the BreakLookAhead command, the lookahead and the turning zone will be canceled, and the robot TCP will move exactly to point P1 and then to P2. There is no BreakLookAhead command between P2 and P3, so the robot will look ahead at P2 and pass the z50 turning zone before moving to P3.

2) The BreakLookAhead command has the same effect as the wait 0 command.

15.4.8.9 GetRobotMaxLoad

Explanation

It is used to get the maximum load value of the current robot model.

Definition

Ret = GetRobotMaxLoad();

Ret, return value, data type: int, maximum payload

Example

int maxload = GetRobotMaxLoad();

print(maxload);

With xMate 7 as an example, return 7.

15.4.8.10 GetRobotState

Explanation

It is used to get the current operating state of the control system. Use the 4-byte bit information to represent the state of the control system, including fault, emergency stop, safety gate, operation mode, servo mode, and motion state, as shown in following table.

Definition

Ret = GetRobotState();

Ret, return value, data type: byte array, use four-byte types to represent the robot state.

Example

Example 1

byte st = GetRobotState();

print(st);

Return {0, 5, 0, 0}. According to the table, the current state is: no fault, motor powered on, automatic mode, robot motion state, servo is in position mode.

S/N

State bits

Meaning

1

Byte[1].bit[1]

1: Control system is not authorized

2

Byte[1].bit[2]

1: Control system recoverable faults

3

Byte[1].bit[3]

1: Control system fatal error

4

Byte[1].bit[4]

1: Servo system failure

5

Byte[1].bit[5]

1: Servo system fatal failure

6

Byte[1].bit[6]

1: Emergency stop

7

Byte[1].bit[7]

1: Safety gate stop

8

Byte[1].bit[8]

Reserved

9

Byte[2].bit[1]

Power-on state, 0: motor is not powered on; 1: motor is powered on

10

Byte[2].bit[2]

Robot motion state, 0: idle; 1: in motion

11

Byte[2].bit[3]

Operation mode, 0: manual mode; 1: automatic mode

12

Byte[2].bit[4]

Servo mode, 0: position mode; 1: torque mode

13

Byte[2].bit[5]

Reserved

14

Byte[2].bit[6]

Reserved

15

Byte[2].bit[7]

Reserved

16

Byte[2].bit[8]

Reserved

17

Byte[3]

Reserved

18

Byte[4]

Reserved

15.4.8.11 AutoIgnoreZone

Explanation

It is used to specify whether to allow the control system to automatically ignore the turning zone.

Definition

AutoIgnoreZone (true/false);

true: Allow the control system to automatically ignore the turning zone (This is also the default state of the control system);

false: Do not allow the control system to automatically ignore the turning zone

15.4.8.11

As shown above: The robot runs two MoveL commands with a z50 turning zone in between. During the motion, the robot needs lookahead from its current position for smooth and safe motion. For example, when the robot moves to p0, it looks ahead to P1. In this process, the control system pre-processes the information between p0 and p1.

As the robot moves forward, the lookahead end point also moves forward. At a certain point, the lookahead end point p1 coincides with p2, the start point of the turning zone. If the control system has received the second motion command, it can generate a turning zone properly and control the robot to move along the predetermined trajectory; if the control system fails to receive the second motion command, it cannot generate the turning zone, and it will process the turning zone according to the AutoIgnoreZone command status. See below for the logic:

AutoIgnoreZone true: Instead of waiting for the second motion command, the control system will cancel the turning zone and control the robot to move directly toward P3.

AutoIgnoreZone false: The control system will wait for the second motion command, during which the robot will slow down until the turning zone trajectory is generated. If the robot fails to receive the second motion command when reaching P2, the robot will stop moving and report an error through HMI.

The failure of the robot to receive the second motion command timely is often a result of too many non-motion commands between two motion commands, e.g.:

image757

Many print commands are added between two motion commands, and it takes a long time for the control system to receive the second motion command after the first one is processed.

Example

Example 1

AutoIgnoreZone(true);

MoveL(p3,v1000, z50, tool0);

MoveL(p4,v1000, fine, tool0);

Allow the control system to automatically ignore the turning zone

Example 2

AutoIgnoreZone(false);

MoveL(p3,v1000, z50, tool0);

MoveL(p4,v1000, fine, tool0);

Do not allow the control system to automatically ignore the turning zone

15.4.8.12 MotionWaitAtFinePoint true/false

Explanation

When the robot is stationary and the user clicks Start, the control system will look ahead a certain distance according to the lookahead parameter before starting the robot. This command sets whether the robot starts moving immediately when the lookahead coincides with a fine point.

Fine point: the target point without a turning zone, i.e. a target point with the turning zone parameter set to fine.

Remark: This command is not displayed in auxiliary programming

Definition

MotionWaitAtFinePoint(true/false);

MotionWaitAtFinePoint true: The control system controls the start of the robot strictly according to the lookahead parameters. The robot only starts to move when the lookahead distance reaches the set value of the lookahead parameter or the lookahead of all motion commands is completed. In this state, the control system can guarantee the set lookahead distance.

MotionWaitAtFinePoint false: The control system does not strictly follow the lookahead parameters, and the robot starts moving immediately when the lookahead coincides with the fine point. In this state, the robot can still start smoothly when the program logic gets extremely complicated, but the lookahead distance cannot be guaranteed.

Default: MotionWaitAtFinePoint false

Example

Example 1

MotionWaitAtFinePoint(true);

MoveL(p1,v1000, fine, tool0);

MoveL(p2,v1000, fine, tool0);

MoveL(p13v1000, fine, tool0);

MoveL(p1,41000, fine, tool0);

MoveL(p1,51000, fine, tool0);

When the control system looks ahead to p1, it does not start the robot immediately, but checks whether the current lookahead distance has reached the set length before deciding whether to start the robot.

Example 2

MotionWaitAtFinePoint(false);

MoveL(p1,v1000, fine, tool0);

MoveL(p2,v1000, fine, tool0);

MoveL (p3,v1000, fine, tool0);

MoveL (p4,v1000, fine, tool0);

MoveL (p5, v1000, fine, tool0);

When the control system looks ahead to p1, it immediately starts the robot, instead of checking whether the current lookahead distance has reached the set length.

15.4.8.13 IgnoreOverride

Explanation

In scenarios where welding, gluing, and other processes have strict requirements for the motion speed along the path, the command is developed with the hope of the motion speed of the process section not being affected by the global speed. This command can temporarily block the influence of the rate slider on motion commands, so that a specific segment of motion commands and trajectories is not affected by the global speed.

This command supports performance in both automatic and manual modes. In manual mode, the motion speed is limited by v250. If the speed exceeds v250, it moves at v250. In automatic mode, it moves at the desired speed.

Definition

IgnoreOverride(On/Off);

IgnoreOverride On indicates that subsequent motion commands are not affected by the rate slider, and IgnoreOverride Off has the opposite effect.

Example

Example 1

MoveJ (p1,v1000 ….);//Affected by slider speed

IgnoreOverride(On);

MoveJ (p2,v1000 ….);//Unaffected by slider speed

MoveJ (p3,v1000 ….);//Unaffected by slider speed

IgnoreOverride(Off);

MoveJ (p4,v1000 ….);//Affected by slider speed

Example 2 (manual mode)

IgnoreOverride(On);

MoveJ (p2,v1000 ….);//Unaffected by slider speed and moving at the speed of v250

MoveJ (p3,v100 ….);//Unaffected by slider speed and moving at the speed of v100

IgnoreOverride(Off);

Example 3 (automatic mode)

IgnoreOverride(On);

MoveJ (p2,v1000 ….);//Unaffected by slider speed and moving at the speed of v1000

MoveJ (p3,v100 ….);//Unaffected by slider speed and moving at the speed of v100

IgnoreOverride(Off);

Attention

Affected motion commands: MoveAbsJ, MoveJ, MoveL, MoveC, MoveCF, MoveT, SearchL, SearchC, TrigL, TrigC, and TrigJ.

The command is not immediately executed and does not interrupt the turning zone.

It can only be used in motion tasks and cannot be used in Inzone; otherwise, an error will be reported.

15.4.8.14 SpeedRefresh

Explanation

It is used to override the speed value in the current motion program task.

Definition

SpeedRefresh(override);

override, data type: int, value range:[1%, 100%] , if the speed override value exceeds the limit range, the robot will report an error.

Example

Example 1

SpeedRefresh(70);

It indicates the current speed override value is set to 70%

Attention

  1. When executing pptomain, pptofunc, cursor movement, reloading the project, or entering/exiting demo mode, the speed value set through SpeedRefresh will be cleared and restored to the program running speed set on the teach pendant interface.

  2. Priority note: If a speed value is set through SpeedRefresh, the speed specified by this command shall prevail; if the robot’s operating speed is manually adjusted after the SpeedRefresh command is executed (e.g., by dragging the speed slider on the teach pendant), the manually adjusted speed shall prevail thereafter.

  3. The SpeedRefresh command takes effect in turning zones.

  4. The SpeedRefresh command can set a speed value that exceeds the maximum program speed limit in manual mode or the initial maximum program speed in automatic mode. Use this command with caution. (When running an RL program in Automatic mode, if pause is clicked and switched to manual mode, then the "Run" button is clicked to continue execution, the program running speed at this time will take the smaller value between the "program speed limit in manual mode" and the "speed value set through SpeedRefresh")

  5. The speed override value set through SpeedRefresh will not be immediately completed, since there will be a certain time lag between issuing commands and the speed impact on the physical robotic arm.

15.4.8.15 CSpeedOverride

Explanation

It indicates the current speed override value that users read

Definition

Ret = CSpeedOverride();

Ret Data type: int The value range is 1%−100% of the speed override value

Example

Example 1

int override = CSpeedOverride();

print(override);

If the current speed override value is 70%, it will return to 70

15.4.8.16 SetRobotJointsMaxAcc

Explanation

It is used to dynamically modify the maximum acceleration of the robot joint. When the robot needs to magnify the maximum acceleration of the joint to raise the takt and increase the robot’s motion speed, the maximum acceleration of each joint can be set by this command. The effect of this command is consistent with the "maximum joint acceleration" under the motion parameters set on HMI, and this command is available for a specific motion.

Definition

SetRobotJointsMaxAcc(jointval1, jointval2, jointval3, jointval4, jointval5, jointval6, jointval7 );

jointval1−7, data type: double/int, maximum acceleration of the joint, unit: °/s2.

Example

Example 1

SetRobotJointsMaxAcc (80000.0, 70000.0, 70000.0, 150000.0, 150000.0, 20000.0, 20000.0);

Attention

When there is a turning zone between the two motion commands, the turning zone is generated according to the constraints of the smaller one between the maximum joint accelerations.

15.4.8.17 SetRobotJointsMaxJerk

Explanation

It is used to dynamically modify the maximum jerk of the robot joint. When the robot needs to magnify the maximum jerk of the joint to raise the takt and increase the robot’s motion speed, the maximum jerk of each joint can be set by this command. The effect of this command is consistent with the "maximum joint jerk" under the motion parameters set on HMI, and this command is available for a specific motion.

Definition

SetRobotJointsMaxJerk(jointval1, jointval2, jointval3, jointval4, jointval5, jointval6, jointval7 );

jointval1−7, data type: double/int, maximum jerk of the joint, unit: °/s3.

Example

Example 1

SetRobotJointsMaxJerk (30000.0, 27000.0, 27000.0, 50000.0, 40000.0, 60000.0, 60000.0);

Attention

When there is a turning zone between two trajectory segments, the turning zone is generated according to the constraints of the smaller one between the maximum joint accelerations;

15.4.8.18 ResetRobotJointsMaxAcc

Explanation

It is used to restore the maximum axis acceleration to the default value, and is used in conjunction with the command SetRobotJointsMaxAcc. After it takes effect, the effects of the above command will be cleared.

Definition

ResetRobotJointsMaxAcc();

No parameters.

Example

Example 1

ResetRobotJointsMaxAcc();

15.4.8.19 ResetRobotJointsMaxJerk

Explanation

It is used to restore the maximum axis jerk to the default value, and is used in conjunction with the command SetRobotJointsMaxJerk. After it takes effect, the effects of the above command will be cleared.

Definition

ResetRobotJointsMaxJerk();

No parameters.

Example

Example 1

ResetRobotJointsMaxJerk ();

15.4.8.20 SetTransmissionOverloadParams

Explanation

It is used to dynamically modify the driving overload coefficient of the robot. When the robot needs to magnify the driving overload coefficient of the joint properly to raise the takt and increase the robot’s motion speed, the driving overload coefficient of each joint can be set by this command. The effect of this command is consistent with the "overload coefficient" under the body parameters set on HMI, and this command is available for a specific motion.

Definition

SetTransmissionOverloadParams (jointval1, jointval2, jointval3, jointval4, jointval5, jointval6, jointval7);

jointval1−7, data type: double/int, driving overload coefficient of the joint.

Example

Example 1

SetTransmissionOverloadParams (0.95, 0.95, 0.95, 0.95, 1.5, 0.95, 1.0);

Attention

When there is a turning zone between two trajectory segments, the turning zone is generated according to the constraints of the smaller one between the transmission overload coefficients;

15.4.8.21 ResetTransmissionOverloadParams

Explanation

Used to restore the robot’s transmission overload coefficient to its original value; to be used in conjunction with the SetTransmissionOverloadParams command; the effect of this command is cleared after taking effect;

Definition

ReSetTransmissionOverloadParams();

No parameters.

Example

Example 1

ReSetTransmissionOverloadParams();

15.4.8.22 SetAccRampTime

Explanation

It is used to set the acceleration ramp time, that is, the time it takes for the robot to increase its acceleration from a minimum to a maximum. The smaller the value, the faster the robot accelerates, and vice versa.

Definition

SetAccRampTime (ramptime);

ramptime, data type: double/int, acceleration ramp time, range for industrial robots: , range for collaborative robots:[0.05, 1], in s;

Example

Example 1

SetAccRampTime (0.15);

15.4.8.23 ResetAccRampTime

Explanation

It is used to reset the acceleration ramp time, with the SetAccRampTime.

Definition

ResetAccRampTime ();

No parameters;

Example

Example 1

ResetAccRampTime();

15.4.8.24 SetVarValue

Explanation

It is used to assign the variables in the turning zone, and the assignment is not triggered for lookahead.

Definition

SetVarValue(var1, var2);

Assign var2 to var1.

var1: data type: byte, int, double, bool, and writable register variable with no function code bound.

var2: data type: byte, int, double, bool, IO variable, register variable, function return value, and expression.

Example

Example 1

image758

//The robot is currently located in the p0.

MoveL(p1);

SetVarValue(var1, var2); // Assign var2 to var1 at the start point of the turning zone

MoveL(p2);

Attention

The implicit conversion occurs during the assignment.

int a=1;

double b=20.22;

SetVarValue(a, b);

For example, after the assignment, the variable a is 20.

15.4.8.25 SetStopAccRampTime

Explanation

It is used to set the acceleration ramp time during the final stop phase. For target points without a turning zone, this is the time it takes for the robot to increase its acceleration from a minimum to 0 during the final stop phase. The smaller the value, the faster the robot stops, and vice versa. If the acceleration ramp time is greater than the acceleration ramp time during the final stop phase, the robot will use the longer acceleration ramp time for stopping.

Definition

SetStopAccRampTime(ramptime);

ramptime, data type: double/int, acceleration ramp time during the final stop phase, range: [0.01, 1], unit: s.

Example

Example 1

SetAccRampTime(0.15);

15.4.8.26 ResetStopAccRampTime

Explanation

It is used to reset the acceleration ramp time during the final stop phase, with the SetStopAccRampTime.

Definition

ResetStopAccRampTime();

No parameters;

Example

Example 1

ResetStopAccRampTime();

15.4.8.27 MotionSupJointTrq

Explanation

The motion supervision is used to adjust the maximum output torque of each joint in the RL program at any time.

Definition

MotionSupJointTrq (J1, J2, J3, J4, J5, J6, J7);

Example

Example 1

MotionSupJointTrq(50, 50, 70, 50, 60, 60, 50);

15.4.8.28 SetMaxMotionJerk

Explanation

Set the value of the robot’s underlying otgc jerk. The default value is 300. Increasing this value can achieve faster start/stop effects. The value will be restored to default after pptomain;

Definition

SetMaxMotionJerk(Num);

Num: Data type: int/double, greater than 100

Example

Example 1

SetMaxMotionJerk(10000);

15.4.8.29 VibSuppression

Explanation

Command to set the vibration suppression function switch. During Pptomain, the vibration suppression function reverts to the state set in the HMI interface (see the vibration suppression function in the Dynamic settings module in 9.8).

Definition

VibSuppression(Type);

Type, data type: keyword, on: turn on, off: turn off

Example

VibSuppression(on);

MoveAbsJ(p1,v500, fine, tool1);

MoveAbsJ(p2,v500, fine, tool1);

MoveAbsJ(p3,v500, fine, tool1);

VibSuppression(off);

MoveAbsJ(p4,v500, fine, tool1);

When executing the VibSuppression(on) command, the controller enables the vibration suppression function. The movements at subsequent points p1−p3 will be affected by the vibration suppression function, where robot vibrations during start/stop are suppressed, resulting in improved trajectory accuracy. When executing the VibSuppression(off) command, the controller disables the vibration suppression function.

15.4.8.30 MotionSup

Explanation

It is used to turn on and off Collision Detection.

Definition

MotionSup(type [, level, event] );

Type, data type: keyword, On: turn on, Off: turn off

Level, data type: int, the additional parameter for MotionSup On to modify the collision detection sensitivity percentage, range:

Event, data type: string, the additional parameter for MotionSup On to set the behavior after collisions

  • "softstop" indicates it stops compliantly

Example

Example 1

MotionSup(On);

//…​ other commands

MotionSup(Off);

After enabling collision detection, users can execute other commands and turn off collision detection by MotionSup Off after the completion of commands

Example 2

MotionSup(On, 200, “softstop”);

Users enable collision detection and set the detection sensitivity percentage to 200% and the behavior triggered to a compliant stop after detecting a collision.

15.4.8.31 MotionSupPlus

Explanation

MotionSupPlus (Motion Supervision Plus) is used to adjust the robot’s joint collision detection sensitivity in the RL program at any time.

Definition

MotionSupPlus(x1, x2, x3, x4, x5, x6, x7);

x1 to x7, the collision detection sensitivity in % for joints 1-7, respectively.

Example

Example 1

MotionSupPlus(5, 20, 7, 20, 6, 20, 5);

Indicates the sensitivity of the 7 joints to be 5, 20, 7, 20, 6, 20, 5, respectively.

Note:

For 6-axis robots, 7 parameters should be set too, where the first 6 parameters correspond to joints 1-6.

This command is available for cobots and six-axis industrial robots, but not three- and four-axis industrial robots.

15.4.8.32 MotionSupJointTrq

Explanation

MotionSupJointTrq (Motion Supervision Joint Torque) Motion supervision is used to adjust the driving torque limits of robot joints at any time in the RL program.

Definition

MotionSupJointTrq(x1, x2, x3, x4, x5, x6, x7);

x1 to x7 indicates the driving torque limits of joint 1 to joint 7 respectively, in N.m.

Example

Example 1

MotionSupJointTrq (100, 91, 59, 14, 14, 14, 5);

It indicates that the driving torque limits of 7 joints are 100 N.m, 91 N.m, 59 N.m, 14 N.m, 14 N.m, 14 N.m, and 5 N.m, respectively.

Note:

For 6-axis robots, 7 parameters should be set too, where the first 6 parameters correspond to joints 1-6.

This command is available for cobots and six-axis industrial robots, but not three- and four-axis industrial robots.