Skip to main content
Skip table of contents

CDRFLEx.amovesx

기능

비동기 방식의 movesx모션으로 비동기 처리 이외에는 movesx()와 동일하게 동작하며 모션 종료를 기다리지 않고 모션 시작과 동시에 리턴하여 다음 라인을 실행한다, amovesx()에 의한 모션이 종료되기 전에 발생하는 새로운 모션 명령어는 안전상의 이유로 오류를 발생시킨다. 따라서 amovesx 함수()와 이어지는 새로운 모션명령어 사이에는 mwait() 함수을 사용하여 amovesx()에 의한 모션이 종료된 것을 확인한 후 새로운 모션 명령어가 시작되도록 해야한다.

인수

인수명자료형기본값설명

fTargetPos

float [MAX_SPLINE_

POINT][6]

-

최대 100개까지의 경유점 정보

nPosCount

unsigned char

-

유효 경유점 개수

fTargetVel

float[2]

-

선속도, 각속도

fTargetAcc

float[2]

-

선가속도, 각가속도

fTargetTime

float

0.0

도달 시간 [sec]

eMoveMode

enum.MOVE_MODE

MOVE_MODE_

ABSOLUTE

상수 및 열거형 정의 참조

eMove

Reference

enum.MOVE_REFERENCE

MOVE_REFERENCE_BASE

상수 및 열거형 정의 참조

eVelOpt

enum.SPLINE_VELOCITY_OPTION

SPLINE_VELOCITY_OPTION_DEFAULT

상수 및 열거형 정의 참조

알아두기

  • fTargetVel 에 하나의 인자를 입력한 경우(예를들어, fTargetVel ={30, 0}) 입력된 인자는 모션의 선속도에 대응되며, 각속도는 선속도에 비례하여 결정됩니다.
  • fTargetAcc 에 하나의 인자를 입력한 경우(예를들어, fTargetAcc ={60, 0}) 입력된 인자는 모션의 선가속도에 대응되며, 각가속도는 선가속도에 비례하여 결정됩니다.
  • fTargetTime 지정 시, fTargetVel, fTargetAcc 를 무시하고 fTargetTime 기준으로 처리됩니다
  • eMoveMode MOVE_MODE_RELATIVE 인 경우 position list의 각 pos는 앞 선 pos에 대한 상대좌표로 정의됩니다. (position list=[q1, q2, ...,q(n-1), q(n)]로 이루어질 때 q1은 시작점 대비 상대각도, q(n) q(n-1) 대비 상대좌표)
  • 선행모션과 후행모션에 대한 온라인 블렌딩은 지원하지 않습니다.

주의

eVelOptSPLINE_VELOCITY_OPTION_CONST 옵션(등속모션)을 선택할 경우 입력된 경유점 간 거리와 속도 조건에 따라 등속모션을 사용할 수 없을 수 있으며, 이 경우에 변속모션 (eVelOpt =SPLINE_VELOCITY_OPTION_DEFAULT)으로 자동 전환됩니다.


리턴

설명

0

오류

1

성공

예제

CPP
// xpos의 모든 점을 경유하는 스플라인모션 시작 후 3초 후에 D-Out
float xpos[4][6];
int xposNum = 4;
float tvel={ 50, 100 };
float tacc={ 50, 100 }; 
xpos[0][0]=559; xpos[0][1]=434.5; xpos[0][2]=651.5; 
xpos[0][3]=0; xpos[0][4]=180; xpos[0][5]=0;
xpos[1][0]=559; xpos[1][1]=434.5; xpos[1][2]=251.5; 
xpos[1][3]=0; xpos[1][4]=180; xpos[1][5]=0;
xpos[2][0]=559; xpos[2][1]=234.5; xpos[2][2]=251.5; 
xpos[2][3]=0; xpos[2][4]=180; xpos[2][5]=0;
xpos[3][0]=559; xpos[3][1]= 234.5; xpos[3][2]=451.5; 
xpos[3][3]=0; xpos[3][4]=180; xpos[3][5]=0;
drfl.amovesx(xpos, xposNum, tvel, tacc, 0, MOVE_MODE_ABSOLUTE);
drfl.set_digital_output(GPIO_CTRLBOX_DIGITAL_INDEX_1, 1);

JavaScript errors detected

Please note, these errors can depend on your browser setup.

If this problem persists, please contact our support.