cmmIxxHelOnceStart


SYNOPSIS

VT_I4 cmmIxxHelOnceStart(
    [in] VT_I4 HelId, [in] VT_I4 NumAxes,
    [in] VT_PI4 AxisList, [out] VT_PR8 CoordList,
    [out] VT_R8 ArcAngle, [out] VT_PR8 DistU)

DESCRIPTION

  • 2 축 원호보간과 1 축 또는 2 축 직선보간을 동시에 시작하고 동시에 종료하는 헬리컬보간 구동을 시작합니다. cmmIxxHelOnce() 함수는 모션이 완료되기 전까지 반환되지 않으며, cmmIxxHelOnceStart() 함수는 모션을 시작시킨 후에 바로 반환됩니다.

  • 헬리컬보간 구동에서 원호보간 이동은 그 속도와 이동량이 U 축(4 축 모션보드인 경우 Axis3, 8 축 모션보드인 경우 Axis3 또는 Axis7)과 동기되어 움직입니다. 따라서 U 축은 헬리컬보간에서 반드시 포함되어야 하며, 채널리스트의 마지막 축이 반드시 U 축으로 설정되어야 합니다. 그리고 U 축은 원호보간과 동기되어 움직이므로 이송량이 자동으로 결정됩니다.

  • 원호보간을 위한 2 축과 Z 축은 4 축 모션보드인 경우에 CH0, CH1, CH2 그리고 8 축 모션보드인 경우에 CH0, CH1, CH2 축 중에서, 혹은 CH4, CH5, CH6 축 중에서 임의로 조합하여 사용할 수 있습니다. 이 때에 CH0~2, CH4~6 이 각각의 그룹으로서 서로 교차하여 조합할 수는 없습니다.

PARAMETER

  • HelId : 이송하고자 하는 헬리컬 보간 이송 작업의 아이디를 지정합니다. CMMSDK 는 통합라이브러리이므로 여러 개의 보드가 장착되어 있는 경우에 여러 개의 헬리컬 보간 작업을 동시에 수행할 수도 있습니다. 따라서 각각의 작업을 구분지어줄 아이디가 필요합니다. cmmIxxHelOnceSetSpeed()의 헬리컬 이송 속도를 설정하는 함수도 HelId 를 입력하게 되어 있는데, 동일한 HelId 로 설정한 속도 패턴이 적용되게 됩니다.

  • nNumAxes : 헬리컬보간에 사용되는 축 수. 이 값은 3 또는 4 이어야 합니다.

  • nAxisList : 헬리컬보간에 사용되는 축 배열의 주소값. 이 배열의 마지막 Element 값은 4 축 모션 보드인 경우에는 반드시 3 이어야 하며 8 축 모션 보드인 경우에는 반드시 3 또는 7 이어야 합니다. 이 배열의 구성은 다음과 같이 하면 됩니다.

nAxisList[0] : 원호보간의 X 축. nAxisList[1] : 원호보간의 Y 축. nAxisList[2] : Z 축 (3 축만 사용하는 경우에는 U 축) nAxisList[3] : U 축 (3 축만 사용하는 경우에는 이 매개 변수는 사용안함)

  • CoordList : 좌표 배열 주소. 3 축을 사용하는 경우와 4 축을 사용하는 경우에 이 배열의 구성은 다음과 같이 하면 됩니다.

3 축을 사용하는 경우 nCoordList[0] : 원호 중심의 X 상대좌표값 nCoordList[1] : 원호 중심의 Y 상대좌표값 nCoordList[2] : U 축 방향 (0 또는 음수: 음의 방향, 양수: 양의 방향)

4 축을 사용하는 경우 nCoordList[0] : 원호 중심의 X 상대좌표값 nCoordList[1] : 원호 중심의 Y 상대좌표값 nCoordList[2] : Z 축 이동거리(상대좌표) nCoordList[3] : U 축 방향 (0 또는 음수: 음의 방향, 양수: 양의 방향)

  • ArcAngle : 원호보간 이동 각도. 이 값이 음수이면 시계방향으로 양수이면 반시계 방향으로 원호를 그리게 되며, 이 값의 절대값이 360 보다 클수 없습니다.

  • DistU : 헬리컬 보간은 X 축과 Y 축의 원호보간과 U 축의 직선 보간이 동기 되어 동작되는 보간법입니다. 이 보간 법을 통해 동작하는 X 축과 Y 축의 원호 보간에 의해 이송되는 원의 둘레에 대한 거리는 U 축의 이송거리와 동일하게 됩니다. DistU 매개 변수는 U 축의 이송 거리를 반환하는 매개 변수입니다. U 축의 실제 이송한 거리를 알기 위하실 경우 유용하게 사용하실 수 있습니다.

pulsemotion/06.Advanced_Motion_Control/Image/6장_1.jpg
  • IsBlocking : 함수의 동작시에 블록킹 처리에 대한 매개변수를 요구합니다. 블록킹(Blocking) 처리는 함수의

동작시에 윈도우 메시지를 처리 여부를 결정하게 됩니다.

EXAMPLE 1, 2

  • 예제는 cmmIxxHelOnce를 참고해주세요.