Skip to main content
Skip table of contents

amovesx()

기능

비동기(async.)방식의 movesx모션으로 async 처리 외에는 movesx()와 동일하게 동작합니다.

amovesx()에 의한 모션이 종료되기 전에 발생하는 새로운 모션지령은 안전상의 이유로 오류를 발생시킵니다. 따라서 amovesx()와 이어지는 모션명령어 사이에는 mwait() 또는 check_motion() 등을 사용하여 amovesx() 모션이 종료를 확인한 후 새로운 모션 명령어가 진행되어야 합니다.

비교

  • movesx(pos_list): 현재위치에서 출발하여 pos_list의 끝점에 도달(정지)한 후에 다음 명령 수행
  • amovesx(pos_list): 현재위치에서 출발하여 pos_list의 끝점 도달(정지)여부와 관계없이 즉시 다음 명령 수행

인수

인수명

자료형

기본값

설명

pos_list

list (posx)

-

posx list

vel (v)

float

None

velocity 또는

velocity1, velocity2

list (float[2])

acc (a)

float

None

acceleration 또는

acceleration1, acceleration2

list (float[2])

time (t)

float

None

도달 시간 [sec]

ref

int

None

reference coordinate

  • DR_BASE: base coordinate
  • DR_WORLD: world coordinate
  • DR_TOOL: tool coordinate
  • user coordinate: 사용자 정의

mod

int

DR_MV_MOD_ABS

이동 기준

  • DR_MV_MOD_ABS: 절대
  • DR_MV_MOD_REL: 상대

vel_opt

int

DR_MVS_VEL_NONE

속도 옵션

  • DR_MVS_VEL_NONE: 없음
  • DR_MVS_VEL_CONST: 등속

알아두기

  • 단축 인수를 지원합니다. (v:vel, a:acc, t:time)
  • vel이 None인 경우 _global_velx가 적용됩니다. (_global_velx 초깃값은 0.0이며, set_velx에 의해 설정 가능)
  • acc이 None인 경우 _global_accx가 적용됩니다. (_global_accx 초깃값은 0.0이며, set_accx에 의해 설정 가능)
  • vel에 하나의 인자를 입력한 경우(예를들어, vel=30) 입력된 인자는 모션의 선속도에 대응되며, 각속도는 선속도에 비례하여 결정됩니다.
  • acc에 하나의 인자를 입력한 경우(예를들어, acc=60) 입력된 인자는 모션의 선가속도에 대응되며, 각가속도는 선가속도에 비례하여 결정됩니다.
  • time을 지정할 경우 vel, acc를 무시하고 time 기준으로 처리됩니다.
  • time이 None인 경우 0으로 처리됩니다.
  • ref가 None인 경우, _g_coord가 적용됩니다. (_g_coord 초깃값은 DR_BASE이며, set_ref_coord 명령에 의해 설정 가능)
  • mod가 DR_MV_MOD_REL인 경우 pos_list의 각 pos는 앞선 pos에 대한 상대좌표로 정의됩니다. (pos_list=[p1, p2, ...,p(n-1), p(n)]로 이루어질 때 p1은 시작점 대비 상대각도, p(n) p(n-1) 대비 상대좌표)
  • 선행모션과 후행모션에 대한 온라인 블랜딩을 지원하지 않습니다.

주의

vel_opt= DR_MVS_VEL_CONST 옵션(등속모션) 선택 시, 입력된 경유점 간 거리 및 속도조건에 따라 등속모션이 불가능할 수 있으며 이 경우에 변속모션 (vel_opt= DR_MVS_VEL_NONE)으로 자동 전환됩니다.

리턴

설명

0

성공

음수값

오류

예외

예외설명

DR_Error (DR_ERROR_TYPE)

인수들의 데이터형 오류 시

DR_Error (DR_ERROR_VALUE)

인수의 값이 유효하지 않을 시

DR_Error (DR_ERROR_RUNTIME)

C Extension 모듈 에러 발생 시

DR_Error (DR_ERROR_STOP)

프로그램 강제 종료 시

예제

PY
#예제 1. x1~x6 경유하는 스플라인모션 시작 후 3초 후에 D-Out >

P0 = posj(0,0,90,0,90,0)

movej(P0)

x0 = posx(600, 43, 500, 0, 180, 0)        # posx 변수(공간좌표/자세) x0 정의

movel(x0, vel=100, acc=200) # 초기위치 x0로 line모션

x1 = posx(600, 600, 600, 0, 175, 0)         # posx 변수(공간좌표/자세) x1 정의

x2 = posx(600, 750, 600, 0, 175, 0)

x3 = posx(150, 600, 450, 0, 175, 0)

x4 = posx(-300, 300, 300, 0, 175, 0)

x5 = posx(-200, 700, 500, 0, 175, 0)

x6 = posx(600, 600, 400, 0, 175, 0)

 

xlist = [x1, x2, x3, x4, x5, x6] # x1~x6를 경유점 집합으로 하는 리스트 xlist 정의

 

amovesx(xlist, vel=[100, 30], acc=[200, 60], vel_opt=DR_MVS_VEL_NONE)

 # 현재위치에서 시작하여 xlist에 정의된 경유점 집합을 연결하는 스플라인

 # 곡선을 최대속도 100, 30(mm/sec, deg/sec), 최대가속도 200(mm/sec2), 

 # 60(deg/sec2)로 움직임, 모션시작 즉시 다음명령 수행

wait(3)   # 3초간 프로그램 일시중지 (모션은 진행 중)

set_digital_output(1 , 1) # D-Out(1번채널) ON

mwait(0)  # 모션이 종료할 때까지 프로그램 일시중지

관련 명령어


JavaScript errors detected

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

If this problem persists, please contact our support.