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

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 값을 가지는 축(기준 축)의 반복 횟수를 정의하며, 이에 따라 총 모션 시간이 결정됩니다. 나머지 축의 반복 횟수는 모션 시간에 따라 자동 결정됩니다.

  • 모션이 정상 종료되는 경우 종료 위치가 시작 위치와 일치하게 하도록 나머지 축 모션은 기준 축 모션이 종료되기 전에 먼저 종료될 수 있습니다. 모든 축의 모션이 동시 종료되지 않는 경우 감속구간에서의 경로는 이전 경로에서 벗어나게 됩니다. 관련한 사항은 아래 이미지를 참조하십시오

    image2021-11-4_15-39-54.png
  • 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)

프로그램 강제 종료 시

예제

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

movej(P0, vel=30, acc=30)

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) 한다.

관련 명령어