amovejx()
기능
비동기(async.)방식의 movejx모션으로 블렌딩을 위한 radius인자를 갖지 않는 점을 제외하고 movejx와 동일하게 작동합니다. 그러나 해당 명령어는 async 방식의 모션명령어로 모션 종료를 기다리지 않고 다음 명령어를 수행합니다.
비교
movejx(pos): 현재 위치에서 출발하여 pos에 도달(정지)한 후에 다음 명령 수행
amovejx(pos): 현재 위치에서 출발하여 pos 도달(정지) 여부와 관계없이 즉시 다음 명령 수행
인수
인수명 | 자료형 | 기본값 | 설명 |
pos | posx | - | posx 또는 position list |
list (float[6]) | |||
vel (v) | float | None | velocity(모든 축에 동일) 또는 velocity(축별 velocity) |
list (float[6]) | None | ||
acc (a) | float | None | acceleration(모든 축에 동일) 또는 acceleration(축별 acceleration) |
list (float[6]) | None | ||
time (t) | float | None | 도달 시간 [sec] |
ref | int | None | reference coordinate
|
mod | int | DR_MV_MOD_ABS | 이동 기준
|
ra | int | DR_MV_RA_DUPLICATE | Reactive motion mode
|
sol | int | 0 | Solution space |
알아두기
단축 인수를 지원합니다. (v:vel, a:acc, t:time)
vel이 None인 경우 _global_velj가 적용됩니다. (_global_velj 초깃값은 0.0이며, set_velj에 의해 설정 가능합니다.)
acc가 None인 경우 _global_accj가 적용됩니다. (_global_accj 초깃값은 0.0이며, set_accj에 의해 설정 가능합니다.)
time을 지정할 경우 vel, acc를 무시하고 time 기준으로 처리됩니다.
time이 None인 경우 0으로 처리됩니다.
time을 지정할 경우 vel, acc를 무시하고 time 기준으로 처리됩니다.
time이 None인 경우 0으로 처리됩니다.
ref가 None인 경우 _g_coord가 적용됩니다. _g_coord의 초기값은 DR_BASE이며, set_ref_coord 명령에 의해 설정이 가능합니다.
옵션 ra 와 vel/acc에 따른 블렌딩 상태의 경로는 movej() 모션 설명을 참조하십시오.
주의
상대모션으로 입력하는 경우(mod=DR_MV_MOD_REL), 진행중인 모션에 블렌딩 할 수 없으며 movej() 또는 movel()을 이용하여 블렌딩하는 것을 권장합니다.
리턴
값 | 설명 |
---|---|
0 | 성공 |
음수값 | 오류 |
예외
예외 | 설명 |
---|---|
DR_Error (DR_ERROR_TYPE) | 인수들의 데이터형 오류 시 |
DR_Error (DR_ERROR_VALUE) | 인수의 값이 유효하지 않을 시 |
DR_Error (DR_ERROR_RUNTIME) | C Extension 모듈 에러 발생 시 |
DR_Error (DR_ERROR_STOP) | 프로그램 강제 종료 시 |
예제
#예제 1. x1으로 조인트모션 시작 후 2초 후에 D-Out
p0 = posj(-148,-33,-54,180,92,32)
movej(p0, v=30, a=30)
x1 = posx(784, 443, 770, 0, 180, 0)
amovejx (x1, vel=100, acc=200, sol=2) # x1으로 조인트모션 및 즉시 다음명령 수행
wait(2) # 2초간 프로그램 일시중지 (모션은 진행 중)
set_digital_output(1 , 1) # D-Out(1번채널) ON
mwait(0)