cmmSxSetSpeedRatio


SYNOPSYS

VT_I4 cmmSxSetSpeedRatio(
    [in] VT_I4 Axis, [in] VT_I4 SpeedMode, [in] VT_R8 VelRatio, [in] VT_R8 AccRatio, [in] VT_R8 DecRatio
    )

DESCRIPTION

  • 단축 구동시 해당 축에 대한 속도 모드 및 속도 비율을 설정하거나 설정된 값을 반환합니다.

PARAMETER

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

  • SpeedMode : cmmSxSetSpeedRatio 함수의 인자이며, 속도모드의 설정값입니다. 다음과 같은 설정값을 가집니다.

Value

Meaning

0 또는 cmSMODE_C

COMSTANT 속도모드 => 가감속을 수행하지 않습니다.

1 또는 cmSMODE_T

TRAPEZOIDAL 속도모드 => 사다리꼴 가감속을 수행합니다.

2 또는 cmSMODE_S

S-CURVE 속도모드 => S-CURVE 가감속을 수행합니다.

-1 또는 cmSMODE_KEEP

이전 속도 모드를 그대로 유지합니다. 속도모드를 변경하지 않습니다.

  • VelRatio : cmmSxSetSpeedRatio 함수의 인자이며, 작업 속도 비율(Ratio) 값입니다. 이 값의 단위는 %입니다.

  • AccRatio : cmmSxSetSpeedRatio 함수의 인자이며, 가속도 비율(Ratio) 값입니다. 이 값의 단위는 %입니다.

  • DecRatio : cmmSxSetSpeedRatio 함수의 인자이며, 감속도 비율(Ratio) 값입니다. 이 값의 단위는 %입니다.

RETURN VALUE

Value

Meaning

음수

수행 실패

cmERR_NONE

수행 성공

Note

속도 비율(Ratio)의 정확한 의미를 알고 싶습니다.

  • 속도 설정은 비율로 설정이 됩니다. 비율에 의한 속도값은 기준 값에 배수(Multiplication)가 되거나 제법(Division) 이 된 속도 값을 의미합니다. 기준이 되는 속도 값은 cmmCfgSetSpeedPattern 으로 설정됩니다.

  • ㈜ 커미조아 CMMSDK 에서는 기준 속도(Standard Speed) 개념을 이용하고 있습니다. 전체 모션 속도는 기준속도의 비율로 설정이 가능하며, 이것은 cmmCfgSetSpeedPattern 함수에 의해서 설정된 기준 속도를 의미합니다. ㈜ 커미조아의 CMMSDK 는 기준속도의 값을 비율(Ratio) 로 설정할 수 있는 커다란 이점을 가지고 있습니다.


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 OnSetSpeed ()
{
   long nAxisNo = 1; // 모션 이송 속도를 설정할 대상 축을 선택합니다.


   /* 단축 모션의 작업 속도 비율을 설정합니다. cmmCfgSetSpeedPattern ()함수를 통해서
   설정된 모션 이송 속도를 기준으로 속도 비율이 적용됩니다. */

   cmmCfgSetSpeedPattern ( nAxisNo, cmSMODE_T, 1000, 10000, 10000 );

   cmmSxSetSpeedRatio ( nAxisNo,                                // 대상 축 선택
                        cmSMODE_T,                              // 속도 모드 선택
                        50,                                     // 작업 속도 비율. 1000 * 0.5 = 500 pps
                        80,                                     // 가속도 비율. 10000 * 0.8 = 8000 pps²
                        80                                      // 감속도 비율. 10000 * 0.8 = 8000 pps²
                        );
}
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
Visual Basic

Private Sub OnSetSpeed (void)

       Dim nAxisNo As Long

       nAxisNo = 1              ‘ 모션 이송 속도를 설정할 대상 축을 선택합니다.

       ‘ 단축 모션의 작업 속도 비율을 설정합니다. cmmCfgSetSpeedPattern ()함수를 통해서
       ‘ 설정된 모션 이송 속도를 기준으로 속도 비율이 적용됩니다.

       Call cmmCfgSetSpeedPattern ( nAxisNo, cmSMODE_T, 1000, 10000, 10000 )

       Call cmmSxSetSpeedRatio( nAxisNo,cmSMODE_T,50,80,80 )

End Sub
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
Delphi

procedure OnSetSpeed ();
var
   nAxisNo : LongInt;
begin
   nAxisNo := 1; // 모션 이송 속도를 설정할 대상 축을 선택합니다.

   // 단축 모션의 작업 속도 비율을 설정합니다. cmmCfgSetSpeedPattern ()함수를 통해서
   // 설정된 모션 이송 속도를 기준으로 속도 비율이 적용됩니다.

   cmmCfgSetSpeedPattern ( nAxisNo, cmSMODE_T, 1000, 10000, 10000 );

   cmmSxSetSpeedRatio ( nAxisNo, cmSMODE_T, 50, 80, 80);

end;