Skip to main content
Skip table of contents

enable_alter_motion(n,mode,ref,limit_dPOS,limit_dPOS_per)

기능

경로 수정 기능을 활성화합니다. 경로 생성의 단위 주기는 100msec이며 입력 인자 n을 설정하여 경로 생성 주기(n*100msec)를 변경할 수 있습니다. 입력 인자 mode를 통해 alter_motion()의 입력값의 의미를 2가지 모드(누적량 모드, 증분량 모드) 중 하나로 선택하여 사용할 수 있습니다. 누적량 모드의 경우 현재의 모션경로에 대한 절대적 증분위치/자세만큼 경로 수정량이 반영됩니다. 증분량 모드의 경우 바로 현재의 절대적 증분위치/자세에 입력된 증분위치/자세만큼 경로 수정량이 추가되어 반영됩니다. 입력 인자 ref를 통해 기준 좌표계를 설정할 수 있습니다. 입력 인자 limit_dPOS, limit_dPOS_per를 통해 각 각 누적량, 증분량의 한계치를 설정할 수 있습니다. 한계치를 벗어나는 위치 값의 한계치에 수렴한 값으로 경로 수정량이 재조정됩니다.

인수

인수명자료형기본값설명

n

int

None

경로 생성 주기

mode

Int

None

경로 수정 모드

  • DR_DPOS : 누적량
  • DR_DVEL : 증분량

ref

int

None

reference coordinate

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

limit_dPOS

list(float[2])

None

첫번째 값 : 이동량 제한 값[mm]

두번째 값 : 회전량 제한 값[deg]

limit_dPOS_per

list(float[2])

None

첫번째 값 : 이동량 제한 값[mm]

두번째 값 : 회전량 제한 값[deg]

알아두기

  • alter_motion()은 사용자 thread 내에서만 동작합니다.
  • ref가 None인 경우, _g_coord 적용(_g_coord 초기값은 DR_BASE이며, set_ref_coord 명령에 의해 설정 가능)
  • limit_dPOS, limit_dPOS_per를 설정하지 않을 시 누적량, 증분량의 한계를 제한하지 않습니다.

예외

예외설명

DR_Error (DR_ERROR_TYPE)

인수들의 데이터형 오류 시

DR_Error (DR_ERROR_VALUE)

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

DR_Error (DR_ERROR_RUNTIME)

C Extension 모듈 에러 발생 시

DR_Error (DR_ERROR_STOP)

프로그램 강제 종료 시

예제

PY
def alter_thread():

        alter_motion(dX)
 

dX = [10,0,0,10,0,0]
 

J00 = posj(0,0,90,0,90)

X1 = posx(559.0, 200, 651.5, 180, -180.0, 180)

X2 = posx(559.0, 200, 400, 180, -180.0, 180)
 

movej(J00,vel=50,acc=100)
 

enable_alter_motion(n=5,mode=DR_DPOS, ref=DR_BASE, limit_dPOS=[50,90], limit_dPOS_per=[50,50])

# 경로 수정 기능 활성화

# 생성주기:(5*100)msec, 모드:누적량, 기준좌표계:베이스

# 누적량 제한:50mm,90deg, 증분량 제한:50mm, 50deg

 
th_id = thread_run(alter_thread, loop=True)


movel(X1,v=50,a=100,r=30)

movel(X2,v=50,a=100)


thread_stop(th_id)

disable_alter_motion() # 경로 수정 기능 비활성화

관련 명령어


JavaScript errors detected

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

If this problem persists, please contact our support.