4.1.25. cmmCfgSetInOutRatio


SYNOPSYS

VT_I4 cmmCfgSetInOutRatio(
   [in] VT_I4 Axis, [in] VT_R8 Ratio
   )

DESCRIPTION

  • Feedback 펄스와 Command 펄스의 분해능 비율(Resolution ratio)을 설정합니다. Feedback 펄스의 분해능이란 엔코더의 1회전 시에 발생되는 펄스 수를 의미합니다. Command 펄스의 분해능이란 모터를 1회전시키기 위해 필요한 Command 펄스 수를 의미합니다.

PARAMETER

  • Axis: 축번호. 축번호는 상수값으로 [cmX1] 부터 0 번째 축을 기준 축으로 임의의 축을 설정할 수 있습니다.

  • Ratio : cmmCfgSetInOutRatio 함수의 인자이며, Feedback 펄스와 Command 펄스의 분해능 비를 지정합니다. 이 값은 아래와 같이 설정합니다.

    Ratio = (Feedback 펄스 분해능)/(Command 펄스의 분해능)

RETURN VALUE

  • cmmCfgSetInOutRatio() 및 cmmCfgGetInOutRatio() 함수의 반환값

Value

Meaning

음수

수행 실패

cmERR_NONE

수행 성공

seealso

□ In/Out Ratio 는 Actual(Feedback) position 또는 Actual speed 를 논리 단위로 읽을 때 적용됩니다. 논리적 단위 거리나 단위 속도는 Command 펄스기준으로 설정되므로 Command 펄스와 Feedback 펄스의 분해능이 서로 다르다면 Actual position 이나 Actual speed 의 논리값 계산이 잘못되게 됩니다.

□ In/Out Ratio 는 cmmStGetPosition() 함수와 cmmStGetSpeed() 함수에서 카운터를 cmCNT_FEED 으로 설정한 경우에만 영향을 미칩니다.

Example

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
C/C++

#include “Cmmsdk.h”
#include “CmmsdkDef.h”

void OnSetInOutRatio ()
{
   long nAxisNo = 0;           // 입력 펄스와 출력 펄스의 분해능 비율을 설정할 축을 선택합니다.
   double fInOutRatio;         // 분해능 비율 정보.

   /* 입력 펄스와 출력 펄스의 분해능 비율(In/Out Ratio)을 설정합니다. In/Out Ratio 설정은
   cmmCfgGetInOutRatio, cmmCfgSetInOutRatio 함수의 대상 카운터가 입력 펄스일 경우에만 영향을 미칩니다. */

   // 분해능 비율을 얻어와 분해능 비율을 ‘1’로 설정합니다.
   if (cmmCfgGetInOutRatio ( nAxisNo, &fInOutRatio ) != cmERR_NONE )
   {
       if ( fInOutRatio != 1.0f )
       {
           cmmCfgSetInOutRatio ( nAxisNo, 1.0f );
       }
   }
}
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
Visual Basic

Private Sub OnSetInOutRatio ()

   Dim nAxisNo As Long                 ‘ 입력 펄스와 출력 펄스의 분해능 비율을 설정할 축을 선택합니다.
   Dim fInOutRatio As Double           ‘ 분해능 비율 정보.

   nAxisNo = 0

   ‘ 입력 펄스와 출력 펄스의 분해능 비율(In/Out Ratio)을 설정합니다. In/Out Ratio 설정은
   ‘cmmCfgGetInOutRatio, cmmCfgSetInOutRatio 함수의 대상 카운터가 입력 펄스일 경우에만 영향을 미칩니다.

   ‘ 분해능 비율을 얻어와 분해능 비율을 ‘1’로 설정합니다.
   If cmmCfgGetInOutRatio ( nAxisNo, fInOutRatio ) <> cmERR_NONE Then

       If fInOutRatio <> 1 Then
           Call cmmCfgSetInOutRatio ( nAxisNo, 1 )
       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
20
21
22
23
24
Visual Delphi

procedure OnSetInOutRatio ();
var

   nAxisNo : LongInt; // 입력 펄스와 출력 펄스의 분해능 비율을 설정할 축을 선택합니다.
   fInOutRatio : Double; // 분해능 비율 정보.

begin
   nAxisNo := 0;

   { 입력 펄스와 출력 펄스의 분해능 비율(In/Out Ratio)을 설정합니다. In/Out Ratio 설정은
   cmmCfgGetInOutRatio, cmmCfgSetInOutRatio 함수의 대상 카운터가 입력 펄스일 경우에만 영향을 미칩니다. }

   // 분해능 비율을 얻어와 분해능 비율을 ‘1’로 설정합니다.
   if cmmCfgGetInOutRatio ( nAxisNo, @fInOutRatio ) <> cmERR_NONE then
   begin
       if fInOutRatio <> 1 then
       begin
               cmmCfgSetInOutRatio ( nAxisNo, 1 );
       end;
   end;

end;