cmmHomeSetPosClrMode¶
SYNOPSIS¶
VT_I4 cmmHomeSetPosClrMode(
[in] VT_I4 Axis, [in] VT_I4 PosClrMode
)
DESCRIPTION¶
원점복귀가 완료된 후에 Command 및 Feedback 위치에 대한 처리 모드를 설정하는 함수입니다.
PARAMETER¶
Axis: 축번호. 축번호는 상수값으로 [cmX1] 부터 0 번째 축을 기준 축으로 임의의 축을 설정할 수 있습니다.
PosClrMode : cmmHomeSetPosClrMode 함수의 인자이며, 원점복귀가 완료된 후에 Command 및 Feedback 위치가 클리어되는 모드를 결정하는 매개 변수입니다. PosClrMode 는 다음과 같이 3 가지를 설정할 수 있습니다.
Value |
Meaning |
---|---|
cmHPCM_M0 |
|
cmHPCM_M1 |
|
cmHPCM_M2 |
|
RETURN Value¶
Value |
Meaning |
---|---|
음수 |
수행 실패 |
cmERR_NONE |
수행 성공 |
REFERENCE¶
PosClrMode 가 0 또는 2 로 하면 최종 단계에서 감속 없이 정지하는 원점복귀 모드(1, 2, 4, 6, 7)에서는
Command 위치가 0 인 상태에서 원점복귀가 완료되고, 나머지 모드에서는 감속을 시작 할때 위치가 0 으로 클리어되며, 감속 하는 동안에 이송한 양만큼 위치가 증가 또는 감소하게 됩니다. 아래의 두 그림은 최종 단계에서 감속을 하는 원점복귀 모드 0 번과 즉시 정지를 하는 모드 1 번에서의 동작을 예로 든 것입니다.
서보모터를 사용하는 경우에는 서보드라이버의 제어 지연 시간 때문에 원점복귀완료 후 모터의 실제 위치는 약간씩 편차가 발생할 수 있습니다. 이는 원점복귀의 오차를 유발하게 됩니다. 그런데 cmHPCM_M0 또는 cmHPCM_M2 인 경우에는 모션제어기의 Feedback 카운터에 해당 편차가 그대로 반영됩니다. 따라서 Command 위치를 Feedback 위치와 일치시킨 후에 절대좌표 이송을 수행하면 이러한 편차에 의한 제어 오차를 제거할 수 있습니다. 이의 원리를 적용한 것이 cmHPCM_M2 입니다.
스텝모터를 사용하는 경우에는 cmHPCM_M2 를 사용하면 안됩니다.
Note
서보모터를 사용하는 경우에는 cmHPCM_M2 로 하였을 때 가장 정확한 원점복귀 작업 결과를 얻을 수 있습니다. 단, 이때 다음과 같은 사항에 주의하여야 합니다.
Command 방향과 Feedback 방향이 반드시 일치하여야 합니다.
Command 분해능과 Feedback 분해능이 반드시 일치하여야 합니다.
원점복귀가 완료된 후에 Command 와 Feedback 좌표는 일치하지만 0 이 되지는 않습니다.
따라서 경우에 따라서는 원점복귀 완료후에 절대좌표 0 으로 이송하는 명령이 필요할 수도 있습니다.
EXAMPLE¶
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | C/C++
#include “Cmmsdk.h”
#include “CmmsdkDef.h”
void OnSetHomePosClrMode ()
{
long nPosClrMode = 0; // 원점 복귀 위치 소거 모드 정보.
/* 원점 복귀 완료 후 위치 소거 모드 */
// 0 (cmHPCM_M0) : 원점 복귀 완료 HW 신호 ON 시 위치 소거.
// 1 (cmHPCM_M1) : HW 신호를 포함한 전체 원점 복귀 작업 완료 후 위치 소거.
// 2 (cmHPCM_M2) : 0 번 모드로 동작 후 원점 복귀 완료 후 Command 위치를 Feedback 위치로 설정.
// 설정된 위치 소거 모드를 확인 후, 위치 소거 모드 2 번 모드로 설정합니다.
if (cmmHomeGetPosClrMode (cmX1, &nPosClrMode ) == cmERR_NONE )
{
if ( nPosClrMode != cmHPCM_M2 )
{
cmmHomeSetPosClrMode (cmX1, cmHPCM_M2 );
}
}
}
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | Visual Basic
Private Sub OnSetHomePosClrMode ()
Dim nPosClrMode As Long ‘ 원점 복귀 위치 소거 모드 정보
‘ 설정된 위치 소거 모드를 확인 후, 위치 소거 모드 2 번 모드로 설정합니다.
If cmmHomeGetPosClrMode (cmX1, nPosClrMode ) = cmERR_NONE Then
If nPosClrMode <> cmHPCM_M2 Then
Call cmmHomeSetPosClrMode (cmX1, cmHPCM_M2 )
End If
End If
End Sub
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | Delphi
procedure OnSetHomePosClrMode ();
var
nPosClrMode : LongInt; // 원점 복귀 위치 소거 모드 정보
begin
// 설정된 위치 소거 모드를 확인 후, 위치 소거 모드 2 번 모드로 설정합니다.
if cmmHomeGetPosClrMode (cmX1, @nPosClrMode ) = cmERR_NONE then
begin
if nPosClrMode <> cmHPCM_M2 then
begin
cmmHomeSetPosClrMode (cmX1, cmHPCM_M2 );
end;
end;
end;
|
See also