4.1.33. cmmCfgSetSpeedPattern


SYNOPSYS

VT_I4 cmmCfgSetSpeedPattern(
    [in] VT_I4 Axis, [in] VT_I4 SpeedMode, [in] VT_R8 WorkSpeed, [in] VT_R8 Accel, [in] VT_R8 Decel
    )

DESCRIPTION

  • 지정한 축에 대해 속도 모드, 작업속도 및 가속 및 감속도를 설정할 수 있으며, 설정된 값을 읽을 수 있습니다. 이 속도는 각 모션제어의 기준 속도로 설정되며, 해당 기준속도에 비율로 각 모션제어를 수행할 수 있습니다. 설정된 기준속도는 단축 제어의 경우 실제 모션 속도 지령 함수인 cmmSxSetSpeedRatio 와 같은 함수를 통해 그 비율로 모션 제어의 속도를 결정할 수 있습니다.

PARAMETER

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

  • SpeedMode : cmmCfgSetSpeedPattern 함수의 인자이며, 속도모드의 설정 값입니다. 아래와 같은 설정 값을 가집니다.

value

Meaning

0 또는 cmSMODE_C

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

1 또는 cmSMODE_T

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

2 또는 cmSMODe_S

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

-1 또는 cmSMODE_KEEP

이전 속도 모드는 그대로 설정합니다.

가감속 패턴은 S-Curve 형과 선형 가감속 형, 가감속이 없는 형태가 가능합니다.

  • WorkSpeed: cmmcFgSetSpeedPattern 함수의 인자이며, 작업 속도를 설정합니다.

  • Accel : cmmCfgSetSpeedPattern 함수의 인자이며, 가속도를 설정합니다.

  • Decel : cmmCfgSetSpeedPattern 함수의 인자이며, 감속도를 설정합니다.

RETURN VALUE

Value

Meaning

음수

수행 실패

cmERR_NONE

수행 성공

REFERENCE

  • 한번 설정한 속도설정은 변경하기 전까지 계속해서 적용됩니다. 따라서 속도를 변경할 필요가 없는 경우에는 이송명령을 수행할 때마다 속도설정을 해줄 필요는 없습니다.

  • 속도와 가/감속도의 단위는 cmmCfgSetUnitSpeed() 함수에 의해 결정됩니다.

pulsemotion/Image/4장_6.jpg pulsemotion/Image/4장_7.jpg

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 “Cmmsdk.h”
#include “CmmsdkDef.h”

void OnSetSpeedPattern ()
{
   long nAxisNo = 0; // 모션 이송 기준 속도를 설정할 축을 선택합니다.
   long nSpeedMode; // 속도 패턴 정보.
   double fVel, fAcc, fDec;

   /* 0 번축의 속도 패턴을 S-Curve 로 설정하고,
   작업속도를 2000, 가속도를 10000, 감속도를 10000 으로 설정합니다.*/

   cmmCfgSetSpeedPattern ( nAxisNo, // 대상 축 선택.
       cmSMODE_S, // 속도 모드 선택.
       2000, // 작업 속도
       10000, // 가속도
       10000 // 감속도
       );

   // 설정되어있는 속도 패턴 및 작업속도, 가속도, 감속도를 반환합니다.
   cmmCfgGetSpeedPattern ( nAxisNo, &nSpeedMode, &fVel, &fAcc, &fDec );
}
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
Visual Basic

Private Sub OnSetSpeedPattern ()

Dim nAxisNo As Long ‘ 모션 이송 기준 속도를 설정할 축을 선택합니다.
Dim nSpeedMode As Long ‘ 속도 패턴 정보.
Dim fVel As Double, fAcc As Double, fDec As Double

nAxisNo = 0

   ‘ 0 번축의 속도 패턴을 S-Curve 로 설정하고,
   ‘ 작업속도를 2000, 가속도를 10000, 감속도를 10000 으로 설정합니다.
   Call cmmCfgSetSpeedPattern ( nAxisNo, cmSMODE_S, 2000, 10000, 10000 )

   ‘ 설정되어있는 속도 패턴 및 작업속도, 가속도, 감속도를 반환합니다.
   Call cmmCfgGetSpeedPattern ( nAxisNo, nSpeedMode, fVel, fAcc, fDec )

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

procedure OnSetSpeedPattern ();
var
     nSpeedMode : LongInt; // 속도 패턴 정보.
     fVel, fAcc, fDec : Double;

begin
     { 0 번축의 속도 패턴을 S-Curve 로 설정하고,
     작업속도를 2000, 가속도를 10000, 감속도를 10000 으로 설정합니다. }
     cmmCfgSetSpeedPattern ( cmX1, cmSMODE_S, 2000, 10000, 10000 );

     // 설정되어있는 속도 패턴 및 작업속도, 가속도, 감속도를 반환합니다.
     cmmCfgGetSpeedPattern ( cmX1, @nSpeedMode, @fVel, @fAcc, @fDec );

end;