3.7.0 3.6.0 3.5.0 3.4.0 3.3.0 3.2.2 3.2.1 3.2.0 Korean English Chinese Czech Dutch French German Hungarian Italian Japanese Polish Portuguese Spanish
3.7.0 3.6.0 3.5.0 3.4.0 3.3.0 3.2.2 3.2.1 3.2.0 Korean English Chinese Czech Dutch French German Hungarian Italian Japanese Polish Portuguese Spanish

move_spiral()

기능

지정한 좌표계(ref) 상에서 회전 방향(rad_dir)에 따라 현재 위치를 나선의 중심점으로 하여 반경 방향으로 외향 이동하는 원추 나선 궤적의 모션을 수행하거나, 목표점을 나선의 중심점으로 하여 반경 방향으로 내향 이동하는 원추 나선 궤적의 모션을 수행합니다. 목표점은 X,Y,Z 좌표 값 또는 최대 반경(rmax)과 이동거리(lmax)로 정의할 수 있습니다. 지정축(axis)에 수직한 평면 위에서 입력한 회전수(rev)만큼 회전하는 나선 궤적을 따릅니다.

인수

인수명

자료형

기본값

범위

설명

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

  • DR_AXIS_X: x축

  • DR_AXIS_Y: y축

  • DR_AXIS_Z: z축

ref

int

DR_TOOL

-

reference coordinate

  • DR_BASE : base coordinate

  • DR_WORLD : world coordinate

  • DR_TOOL : tool coordinate

  • user coordinate : 사용자 정의 

pos

posx

None


posx 또는 position list (X,Y,Z)

list(float[3])

list(float[6])

mod

int

DR_MV_MOD_ABS


이동 기준

  • DR_MV_MOD_ABS : 절대

  • DR_MV_MOD_REL : 상대

rad_dir

int

DR_SPIRAL_OUTWARD


반경 방향

  • DR_SPIRAL_OUTWARD : 외향 이동

  • DR_SPIRAL_INWARD : 내향 이동

rot_dir

int

DR_ROT_FORWARD


회전 방향

  • DR_ROT_FORWARD : 정방향 (+)

  • DR_ROT_REVERSE : 역방향 (-)

radius(r)

float

None


Blending 시 radius

ra

int

DR_MV_RA_DUPLICATE


Reactive motion mode

  • DR_MV_RA_DUPLICATE: duplicate

  • DR_MV_RA_OVERRIDE: override

알아두기

  • 단축 인수를 지원합니다. (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에 의해 설정 가능)

  • set_velx(), set_accx()를 호출하지 않아 _global_velx, _global_accx가 초깃값 0.0인 상태에서 vel, acc, time을 모두 생략하면, 모션이 수행되지 않고 DRL ValueError(DR_ERROR_VALUE)가 발생하여 프로그램이 정지합니다. vel과 acc를 인수로 지정하거나, set_velx()와 set_accx()로 전역값을 먼저 설정하십시오.

  • time을 지정할 경우 vel, acc를 무시하고 time 기준으로 처리됩니다.

  • time이 None인 경우 0으로 처리됩니다.

  • axis는 Spiral 모션이 정의하는 평면에 수직인 축을 정의합니다.

  • ref는 spiral 모션이 정의하는 기준 좌표계를 의미합니다.

  • rad_dir 은 Spiral의 반경 방향의 회전 방향을 의미합니다.

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

external_img_help_moveSpiral_rot_dir_en 1.png
  • radius가 None인 경우, 블렌딩 구간인 경우는 blending radius로 처리되며 아닌 경우는 0으로 처리됩니다.

  • 진행 중인 모션(선행모션)이 종료되지 않은 상태에서 새로운 모션명령(후행모션)이 실행되면 선행모션과 후행모션이 부드럽게 연결됩니다(모션 블렌딩 기능). 이 때 선행모션의 목표점을 유지하거나 취소할 수 있도록 결정하는 옵션ra를 후행모션에 설정할 수 있습니다. (유지: ra= DR_MV_RA_DUPLICATE /취소: ra= DR_MV_RA_OVERRIDE)예를 들어 아래의 그림에서 목표점이 Target#1인 선행모션의 진행 중 ‘2nd motion event’지점에서 후행모션이 실행된 경우 후행모션의 옵션 ra=DR_MV_RA_DUPLICATE이면 선행모션의 목표점을 유지하므로 주황색 궤적과 같이움직이며 ra= DR_MV_RA_OVERRIDE이면 선행모션의 목표점을 취소하므로 초록색 궤적과 같이 움직이게 됩니다.

image2021-11-4_13-56-46.png
  • P시리즈의 경우, Flange Z축이 Base Z축과 Align 되어있을 때만 사용 가능합니다.

주의

경로 생성 시 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)

프로그램 강제 종료 시

예제

Python
# 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
move_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, r=20)
move_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)

# Coordinate values with Blending
move_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, r=20)
move_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)

# Relative motion with Blending
move_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, r=20)
move_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)

관련 명령어