amovel (Auto Mode)

As an asynchronous movel, it operates the same as the movel function except for not having the fBlendingRadius argument for blending. However, the command returns immediately when motion starts and executes the next line without waiting for the termination of motion due to the asynchronous type.

Definition
DRFLEx.h within class CDRFLEx, public section (line 777)

bool amovel(float fTargetPos[NUM_TASK],
            float fTargetVel[2],
            float fTargetAcc[2],
            float fTargetTime = 0.f,
            MOVE_MODE eMoveMode = MOVE_MODE_ABSOLUTE,
            MOVE_REFERENCE eMoveReference = MOVE_REFERENCE_BASE,
            BLENDING_SPEED_TYPE eBlendingType = BLENDING_SPEED_TYPE_DUPLICATE,
            DR_MV_APP eAppType = DR_MV_APP_NONE) {
    return _amovel(_rbtCtrl, fTargetPos, fTargetVel, fTargetAcc,
                   fTargetTime, eMoveMode, eMoveReference, eBlendingType, eAppType);
}

Parameter

Parameter Name

Data Type

Default Value

Description

fTargetPos

float[6]

Target TCP Position for six axes

fTargetVel

float[2]

Linear Velocity, Angular Velocity

fTargetAcc

float[2]

Linear Acceleration, Angular Acceleration

fTargetTime

float

Reach Time [sec]
* If the time is specified, values are processed based on time, ignoring vel and acc.

eMoveMode

MOVE_MODE

MOVE_MODE_ABSOLUTE

Refer to the Definition of Enumeration Type

eMoveReference

MOVE_REFERENCE

MOVE_REFERENCE_BASE

Refer to the Definition of Enumeration Type

eBlendingType

BLENDING_SPEED_TYPE

BLENDING_SPEED_TYPE_DUPLICATE

Refer to the Definition of Enumeration Type

Return

Value

Description

0

Error

1

Success

Example

// D-out 2 seconds after the motion starts with x1
float x1[6]  = { 559, 434.5, 651.5, 0, 180, 0 };
float tvel[2] = { 50, 50 };
float tacc[2] = { 100, 100 };
drfl.amovel(x1, tvel, tacc);
Sleep(2000);
drfl.set_digital_output(GPIO_CTRLBOX_DIGITAL_INDEX_1, 1);

This example starts an asynchronous linear TCP motion to pose x1, then toggles a digital output 2 seconds after motion start. Because it’s asynchronous, program flow continues immediately after amovel() is issued.