Skip to main content
Skip table of contents

amove_periodic()

기능

비동기(async.)방식의 move_periodic모션으로 async 처리 외에 move_periodic()와 동일하게 동작하며 명령어를 수행한 후 바로 다음 라인을 수행합니다.

amove_periodic()에 의한 모션이 종료되기 전에 발생하는 새로운 모션지령은 안전상의 이유로 오류를 발생시킵니다. 따라서 amove_periodic()과 이어지는 모션명령어 사이에는 mwait() 또는 check_motion() 등을 사용하여 amove_periodic() 모션 종료를 확인한 후 새로운 모션명령이 진행되도록 해야합니다.

이 명령어는 현재위치에서 시작하는 상대모션어로 입력된 기준 좌표계(ref)의 각 축(병진 및 회전)에 대한 Sine함수 기반으로 주기모션을 수행합니다. axis별 모션의 특성은 amp(amplitude)와 주기에 의해 결정되고 가감속 시간과 총 모션 시간은 주기, 반복 및 횟수에 의해 설정됩니다.

알아두기

  • move_ periodic: 현재위치에서 출발하여 periodic 궤적의 끝에 도달(정지)한 후에 다음 명령 수행
  • amove_ periodic: 현재위치에서 출발하여 periodic 궤적의 끝에 도달(정지)여부와 관계없이 즉시 다음 명령 수행

인수

인수명

자료형

기본값

범위

설명

amp

list (float[6])

-

0≤amp

Amplitude(-amp에서 +amp사이 모션) [mm] or [deg]

period

float or

list (float[6])


0≤period

period(1주기 소요 시간)[sec]

atime

float

0.0

0≤atime

Acc-, dec- time [sec]

repeat

int

1

> 0

반복 횟수

ref

int

DR_TOOL

-

reference coordinate

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

알아두기

  • amp는 진폭(amplitude)을 의미하며, 각 축(x, y, z, rx, ry, rz) 별로 amp를 값으로 하는 6개 원소의 list 형태로 입력해야 합니다. , 주기 모션을 진행하지 않는 축 방향은 amp 0으로 입력해야 합니다.
  • period는 해당 방향 모션의 1회 반복 시간을 의미하며, 각 축(x, y, z, rx, ry, rz) period를 값으로 하는 총 6개 원소의 list 형태로 입력하거나 대표값을 입력해야합니다.
  • atime은 주기모션의 시작과 끝의 가속 및 감속 시간을 의미합니다. 입력된 가감속시간과 최대주기*1/4 중 큰 값이 적용됩니다. 입력된 가감속 시간이 전체모션시간의 1/2을 초과하는 경우 에러가 발생합니다.
  • repeat은 가장 큰 period 값을 가지는 축(기준 축)의 반복 횟수를 정의하며, 이에 따라 총 모션 시간이 결정됩니다. 나머지 축의 반복 횟수는 모션 시간에 따라 자동 결정됩니다.
  • 모션이 정상 종료되는 경우 종료 위치가 시작 위치와 일치하게 하도록 나머지 축 모션은 기준 축 모션이 종료되기 전에 먼저 종료될 수 있습니다. 모든 축의 모션이 동시 종료되지 않는 경우 감속구간에서의 경로는 이전 경로에서 벗어나게 됩니다. 관련한 사항은 아래 이미지를 참조하십시오
  • ref는 반복 모션의 기준 좌표계를 의미합니다.
  • 모션명령 수행 시 최대속도 에러가 발생하는 경우 다음의 식을 참조하여 진폭 및 주기를 조정할 것을 제안합니다.
    최대속도=진폭(amp)*2*pi(3.14)/주기(period)
    (
    , 진폭=10mm, 주기=1초인 경우 최대속도=62.83mm/sec)
  • 선행모션과 후행모션에 대한 온라인 블렌딩은 지원하지 않습니다.

리턴

설명

0

성공

음수값

오류

예외

예외설명

DR_Error (DR_ERROR_TYPE)

인수들의 데이터형 오류 시

DR_Error (DR_ERROR_VALUE)

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

DR_Error (DR_ERROR_RUNTIME)

C Extension 모듈 에러 발생 시

DR_Error (DR_ERROR_STOP)

프로그램 강제 종료 시

예제

PY
P0 = posj(0,0,90,0,90,0)

movej(P0)

amove_periodic(amp =[10,0,0,0,0.5,0], period=1, atime=0.5, repeat=5, ref=DR_TOOL)

wait(1)

set_digital_output(1, 1)

mwait(0)

# Tool좌표계 x축(10mm진폭, 1초 주기)모션과 y회전축(진폭 0.5deg, 1초 주기) 

# 모션을 총 5회 반복 수행

# periodic 모션을 시작하고 1초 후에 Digital_Output 채널1번을 SET(1) 한다.

관련 명령어

JavaScript errors detected

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

If this problem persists, please contact our support.