cmcPmIxGetVelCorrMode¶
SYNOPSYS¶
VT_I4 cmcPmIxGetVelCorrMode ([in] VT_I4 BoardID, [in] VT_I4 NodeId, [in] VT_I4 MapIndex,
[out] VT_PI4 VelCorrOpt1, [out] VT_PI4 VelCorrOpt2 )
DESCRIPTION¶
cmcPmIxGetVelCorrMode() 함수는 설정된 직선 보간 속도 보정 모드를 반환합니다.
직선보간 이송 시에 각 축의 속도는 각 축의 이송거리 에 비례하게 됩니다. 따라서 이송거리가 가장 긴 축의 속도가 가장 빠르게 되며, 이 축을 마스터축(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
|
|
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 );
|