2.12.4 2.12.3 2.12.2 2.12.1 2.12 2.11.2 2.11.0.1 Korean English Chinese Czech Dutch French German Hungarian Italian Japanese Polish Portuguese Spanish
2.12.4 2.12.3 2.12.2 2.12.1 2.12 2.11.2 2.11.0.1 Korean English Chinese Czech Dutch French German Hungarian Italian Japanese Polish Portuguese Spanish

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)

프로그램 강제 종료 시

예제

Python
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() # 경로 수정 기능 비활성화

관련 명령어