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)
최종 완료 조건에 해당하는 외부 하드웨어 신호(ORG/EL/EZ)가
입력되는 순간에 Command 및 Feedback 의 위치를 ‘0’으로
소거합니다. 일정량의 Feedback 위치 편차를 보입니다.
1 (cemHPCM_M1)
원점 복귀 모드에 상관없이 하드웨어 신호의 입력 상태와 더불어
소프트웨어 적인 모션 완료 확인 동작을 포함한, 전체적인 원점복귀
작업이 모두 완료된 후에 Command 와 Feedback 위치를 모두
‘0’으로 소거합니다.
일정량의 Feedback 위치 편차를 보입니다.
2 (cemHPCM_M2)
1 차적으로는 cemHPCM_M0 일 때와 동일하게 동작합니다. 단,
원점 복귀가 완료된 후에 Feedback 위치와 동일한 값으로
Command 위치를 설정합니다. 이를 통해 서보 드라이버에서 실제
이송한 위치에 대한 양을 Command 위치에 반영시켜서, 다음 모션
동작을 수행할 수 있도록 합니다.

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 번에서의 동작을 예로 든 것입니다.

../../../_images/cEIP-2.jpg
  • 서보 모터를 사용하는 경우에는 서보 드라이버의 제어 지연 시간 때문에 원점 복귀 완료 후 모터의 실제 위치는 약간의 편차가 발생할 수 있으며, 이는 원점복귀의 오차를 유발하게 됩니다. 그런데 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;