amove_spiral()
기능
비동기(async.)방식의 move_spiral 모션으로 블렌딩을 위한 radius인자를 갖지 않는 점을 제외하고 move_spiral()과 동일하게 작동합니다. 그러나 해당 명령어는 async 방식의 모션 명령어로 모션 종료를 기다리지 않고 다음 명령어를 수행합니다.
알아두기
move_spiral: 현재 위치에서 출발하여 spiral 궤적의 끝에 도달(정지)한 후에 다음 명령 수행
amove_spiral: 현재 위치에서 출발하여 spiral 궤적의 끝에 도달(정지)여부와 관계없이 즉시 다음 명령 수행
인수
인수명 | 자료형 | 기본값 | 범위 | 설명 |
rev | float | 10 | rev > 0 | 총 회전수 [revolution] |
rmax | float | None | rmax > 0 | spiral 최종 반경 [mm] |
lmax | float | 0 | axis 방향으로 이동하는 거리 [mm] | |
vel (v) | float | None | velocity | |
acc (a) | float | None | acceleration | |
time (t) | float | None | time ≥ 0 | 총 수행시간 <sec> |
axis | int | DR_AXIS_Z | - | axis
|
ref | Int | DR_TOOL | - | reference coordinate
|
pos | posx | None | posx 또는 position list (X,Y,Z) | |
list(float[3]) | ||||
list(float[6]) | ||||
mod | int | DR_MV_MOD_ABS | 이동 기준
| |
rad_dir | int | DR_SPIRAL_OUTWARD | 설명
| |
rot_dir | int | 설명
| ||
ra | int | DR_MV_RA_DUPLICATE | Reactive motion mode
|
알아두기
단축 인수를 지원합니다. (v:vel, a:acc, t:time)
rev는 spiral 모션의 총 회전수를 의미합니다.
rmax는 spiral 모션의 최대 반경을 의미합니다.
lmax는 모션 동안 axis 방향으로 병진하는 거리를 의미합니다. 단, 음수인 경우 –axis 방향 병진합니다.
vel은 spiral 모션의 이동 속도를 의미합니다.
vel이 None인 경우, _global_velx의 첫째 값(병진 속도)이 적용됩니다. (_global_velx 초기값은 0.0이며, set_velx에 의해 설정 가능)
acc는 spiral 모션의 이동 가속도를 의미합니다.
acc가 None인 경우, _global_accx 첫째 값(병진 가속도)이 적용됩니다. (_global_accx 초깃값은 0.0이며, set_accx에 의해 설정 가능)
time을 지정할 경우 vel, acc를 무시하고 time 기준으로 처리됩니다.
time이 None인 경우 0으로 처리됩니다.
axis는 Spiral 모션이 정의하는 평면에 수직인 축을 정의합니다.
ref는 spiral 모션이 정의하는 기준 좌표계를 의미합니다.
rad_dir 은 Spiral의 반경 방향의 회전 방향을 의미합니다.

rot_dir 은 Spiral의 회전 축을 기준으로 한 회전 방향을 의미합니다.

옵션 ra 및 vel/acc에 따른 blending 시의 경로는 move_spiral() 모션 설명을 참조할 것
주의
경로 생성 시 Spiral 경로에 의한 회전각 가속도를 연산하여 값이 큰 경우 안정적인 모션을 위하여 에러가 발생할 수 있습니다. 이 경우 vel, acc 값을 작게 또는 time 값을 크게 조정하는 것을 권장합니다.
리턴
값 | 설명 |
---|---|
0 | 성공 |
음수값 | 오류 |
예외
예외 | 설명 |
---|---|
DR_Error (DR_ERROR_TYPE) | 인수들의 데이터형 오류 시 |
DR_Error (DR_ERROR_VALUE) | 인수의 값이 유효하지 않을 시 |
DR_Error (DR_ERROR_RUNTIME) | C Extension 모듈 에러 발생 시 |
DR_Error (DR_ERROR_STOP) | 프로그램 강제 종료 시 |
예제
# Model: M1013
J00 = posj(0,0,90,0,90,0)
P1 = [559,34.5,651.5]
P2 = [579, 65, 641.5]
D1 = [20,0,10]
D2 = [-20,0,-10]
movej(J00,vel=100,acc=100) # Move to Initial Poisition
# Max Radius with Blending
amove_spiral(rev=5,rmax=20.0,lmax=-10,v=40,a=40,axis=DR_AXIS_Z,ref=DR_TOOL,rad_dir=DR_SPIRAL_OUTWARD, rot_dir=DR_ROT_FORWARD)
wait(5.5)
amove_spiral(rev=5,rmax=20.0,lmax=-10,v=40,a=40,axis=DR_AXIS_Z,ref=DR_TOOL,rad_dir=DR_SPIRAL_INWARD, rot_dir=DR_ROT_FORWARD)
mwait(0)
# Coordinate values with Blending
amove_spiral(rev=5,pos=P2,v=40,a=40,axis=DR_AXIS_Z,ref=DR_BASE,rad_dir=DR_SPIRAL_OUTWARD, rot_dir=DR_ROT_FORWARD)
wait(10.2)
amove_spiral(rev=5,pos=P1,v=40,a=40,axis=DR_AXIS_Z,ref=DR_BASE,rad_dir=DR_SPIRAL_INWARD, rot_dir=DR_ROT_FORWARD)
mwait(0)
# Relative motion with Blending
amove_spiral(rev=5,pos=D1,mod=DR_MV_MOD_REL,v=40,a=40,axis=DR_AXIS_Z,ref=DR_BASE,rad_dir=DR_SPIRAL_OUTWARD, rot_dir=DR_ROT_FORWARD)
wait(5.5)
amove_spiral(rev=5,pos=D2,mod=DR_MV_MOD_REL,v=40,a=40,axis=DR_AXIS_Z,ref=DR_BASE,rad_dir=DR_SPIRAL_INWARD, rot_dir=DR_ROT_FORWARD)
mwait(0)