cmcPmIxSetVelCorrMode


SYNOPSYS

VT_I4 cmcPmIxSetVelCorrMode([in] VT_I4 BoardID,  [in] VT_I4 NodeId, [in] VT_I4 MapIndex,
[in] VT_I4 VelCorrOpt1, [in] VT_I4 VelCorrOpt2 )

DESCRIPTION

  • cmcPmIxSetVelCorrMode() 함수는 직선 보간 속도 보정 모드를 설정합니다.

  • 직선보간 이송 시에 각 축의 속도는 각 축의 이송거리 에 비례하게 됩니다. 따라서 이송거리가 가장 긴 축의 속도가 가장 빠르게 되며, 이 축을 마스터축(Master axis)이라 하고 나머지 축들을 슬레이브축(Slave axis)이라 합니다.

  • 기본적으로 직선보간 시에 마스터축의 속도는 cmcPmIxSetVelCorrMode() 함수에 의해서 지정됩니다. 그리고 슬레이브축들의 속도는 마스터축과의 이송 거리비에 비례하여 이송속도가 계산되게 됩니다. 그런데 이렇게 계산된 슬레이브축의 이송속도가 정격속도를 초과하게 되면 문제가 발생할 수 있습니다. 예를 들어, 스텝모터를 사용하는 경우에는 탈조현상이 일어날 수 있습니다.

  • 따라서 이러한 경우에는 슬레이브축의 속도를 정격속도 이하로 낮추는 것이 바람직한데 슬레이브축의 속도만을 낮추면 보간 경로를 유지하지 못하므로 마스터축의 속도를 조정하여 결과적으로 슬레이브축의 속도가 낮아지도록 해야합니다. ㈜커미조아의 CEIP 모션제어 모듈은 이러한 보정을 자동으로 수행해줍니다.

  • 이 함수의 사용과 호출에 있어, 제공된 ㈜커미조아의 함수 헤더 Visual Basic 에서는 함수의 첨두어 cmc 가 붙지 않습니다.

PARAMETER

▶ NodeId : 노드 번호. 노드 번호는 3부터 시작합니다.

▶ MapIndex : 맵 번호(Map index), 이 맵번호를 사용하기 전에 먼저 cmcPmIxMapAxes() 함수를 통하여 해당 맵번호에 유효한 축들이 맵핑 되어 있어야 합니다.

▶ VelCorrOpt1 : 직선보간 속도 보정을 할 것인지를 설정 혹은 설정 상태를 반환합니다.

Value

Meaning

0

속도 보정을 하지 않습니다.

1

작업 속도만 보정합니다.

2 [Default]
작업 속도 및 가속도, 감속도를 모두 보정합니다.(스텝모터의 경우 작업속도가
크지 않아도 가속도, 감속도가 정격 속도를 넘어서면 탈조현상이 일어날 수
있으므로 가속도, 감속도 모두 보정을 해주는 것을 권장합니다.)

▶ VelCorrOpt2 : 직선 보간 속도 보정 시 슬레이브 축의 작업 속도 및 가속, 감속 한계 값을 정격 속도 만을 사용할 지, 아니면 정격 속도에 보간 속도비(%) 를 곱한 값을 사용할 지를 설정 혹은 설정 상태를 반환합니다.

Value

Meaning

0
작업 속도 및 가속, 감속 모두에 대하여 정격 값 설정을 이송 속도의
한계 값으로 적용합니다.
1[Default]
작업속도의 한계 값을 정격 속도에 보간 속도비(%)를 곱한 값을 한계 값으로 적용하고
가속, 감속의 한계 값은 정격 값을 적용합니다.
2
작업 속도와 가속, 감속 모두에 대하여 정격 속도에 보간 속도비(%0를 곱한
값을 한계 값으로 적용합니다.

Warning

이 옵션은 보간 속도 모드가 마스터 속도 모드로 설정된 경우에만 적용되며 벡터 속도 모드에서는 무시됩니다.

RETURN VALUE

Value

Meaning

음수

수행 실패

ERR_NONE

수행 성공

EXAMPLE

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
 C/C++
 #include “ComiMLink3_SDK.h”
 #include “ComiMLink3_SDK_Def.h”
 #define MAP0 0
 #define NODE_ID 1
 long BoardID = 0;
 cmcPmIxMapAxes(BoardID, 3, MAP0, ccmcX1_MASK | ccmcY1_MASK );
 /*MAP0로 설정된 축들에 대하여 직선 보간 속도 보정을 작업 속도 및 가감속에 적용하고,
 정격 속도에 보간 속도비(%)를 곱한 값을 한계 값으로 적용 되도록 설정합니다 .*/
 Long nVelCorrOpt1 = 2, nVelCorrOpt2 = 2;
 cmcPmIxSetVelCorrMode(BoardID, 3, MAP0, nVelCorrOpt1, VelCorrOpt2 );
 // 설정된 직선 보간 속도 보정 모드를 반환합니다.
 cmcPmIxGetSpeedPattern(BoardID, 3, MAP0, &nVelCorrOpt1, &VelCorrOpt2 );