5.3.7. cemHomePosClrMode_Set¶
SYNOPSIS¶
VT_I4 cemHomePosClrMode_Set(
[in] VT_I4 Axis, [in] VT_I4 PosClrMode
)
DESCRIPTION¶
cemHomePosClrMode_Set / cemHomePosClrMode_Get 함수는 원점 복귀 이송 완료 후에 발생하 는 모션 컨트롤러와 서보 드라이버간의 제어 편차에 의해 발생하는 입력 펄스(Feedback pulse) 처리 방법을 설정 및 설정 상태를 반환합니다.
PARAMETER¶
Axis : 축 번호. 통합 축으로 관리되는 축 번호를 의미하며, 상수 값으로 0 (Zero Based) 이상, (최대 통합 축 개수 - 1) 이하의 값을 축 번호로 설정할 수 있습니다.
PosClrMode : 원점복귀가 완료된 후에 Command 및 Feedback 위치가 클리어 되는 모드를 설정 혹은 반환합니다. PosClrMode 는 다음과 같습니다.
Value |
Meaning |
---|---|
-1 (cemHPCM_DISABLE) |
원점 복귀 클리어 모드를 사용하지 않습니다. |
0 (cemHPCM_M0)
|
|
1 (cemHPCM_M1)
|
|
2 (cemHPCM_M2)
|
|
RETURN VALUE¶
Value |
Meaning |
---|---|
음수 |
수행 실패 |
0 (ceERR_NONE) |
수행 성공 |
REFERENCE¶
PosClrMode 가 0(cemHPCM_M0) 또는 2(cemHPCM_M2)로 하면 최종 단계에서 감속 없이 정지하는 원점복귀 모드(1, 2, 4, 6, 7)에서는 Command 위치가 0 인 상태에서 원점복귀가 완료되고, 나머지 모드에서는 감속을 시작 할 때 위치가 0 으로 클리어 되며, 감속 하는 동안에 이송한 양만큼 위치가 증가 또는 감소하게 됩니다. 아래의 두 그림은 최종 단계에서 감속을 하는 원점복귀 모드 0 번과 즉시 정지를 하는 모드 1 번에서의 동작을 예로 든 것입니다.
서보 모터를 사용하는 경우에는 서보 드라이버의 제어 지연 시간 때문에 원점 복귀 완료 후 모터의 실제 위치는 약간의 편차가 발생할 수 있으며, 이는 원점복귀의 오차를 유발하게 됩니다. 그런데 PosClrMode 가 0(cemHPCM_M0) 또는 1(cemHPCM_M1)인 경우에는 모션컨트롤러의 Feedback 카운터에 해당 편차가 그대로 반영됩니다. 따라서 Command 위치를 Feedback 위치와 일치시킨 후에 절대좌표 이송을 수행하면 이러한 편차에 의한 제어 오차를 제거할 수 있습니다. 이의 원리를 적용한 모드가 2(cemHPCM_M2)입니다.
스텝 모터를 사용하는 경우에는 cemHPCM_M2 를 사용하면 안됩니다.
Note
서보 모터를 사용하는 경우에는 cemHPCM_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 24 | C/C++
#include “ceSDK.h”
#include “ceSDKDef.h”
void OnSetHomePosClrMode ()
{
long nPosClrMode = 0; // 원점 복귀 위치 소거 모드 정보.
/* 원점 복귀 완료 후 위치 소거 모드 */
// -1 (cemHPCM_DISABLE) : 원점 복귀 위치 소거 모드 사용 않함.
// 0 (cemHPCM_M0) : 원점 복귀 완료 HW 신호 ON 시 위치 소거.
// 1 (cemHPCM_M1) : HW 신호를 포함한 전체 원점 복귀 작업 완료 후 위치 소거.
// 2 (cemHPCM_M2) : 0 번 모드로 동작 후 원점 복귀 완료 후 Command 위치를 Feedback 위치로 설정.
// 설정된 위치 소거 모드를 확인 후, 위치 소거 모드 2 번 모드로 설정합니다.
if (cemHomePosClrMode_Get ( cemX1, &nPosClrMode ) == ceERR_NONE )
{
if ( nPosClrMode != cemHPCM_M2 )
{
cemHomePosClrMode_Set ( cemX1, cemHPCM_M2 );
}
}
}
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | Visual Basic
Private Sub OnSetHomePosClrMode ()
Dim nPosClrMode As Long ‘ 원점 복귀 위치 소거 모드 정보
‘ 설정된 위치 소거 모드를 확인 후, 위치 소거 모드 2 번 모드로 설정합니다.
If cemHomePosClrMode_Get ( cemX1, nPosClrMode ) = ceERR_NONE Then
If nPosClrMode <> cemHPCM_M2 Then
Call cemHomePosClrMode_Set ( cemX1, cemHPCM_M2 )
End If
End If
End Sub
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | Delphi
procedure OnSetHomePosClrMode ();
var
nPosClrMode : LongInt; // 원점 복귀 위치 소거 모드 정보
begin
// 설정된 위치 소거 모드를 확인 후, 위치 소거 모드 2 번 모드로 설정합니다.
if cemHomePosClrMode_Get ( cemX1, @nPosClrMode ) = ceERR_NONE then
begin
if nPosClrMode <> cemHPCM_M2 then
begin
cemHomePosClrMode_Set ( cemX1, cemHPCM_M2 );
end;
end;
end;
|
See also