cmmIxGetSpeedPattern_T


SYNOPSYS

VT_I4 cmmIxGetSpeedPattern_T(
    [in] VT_I4 MapIndex, [out] VT_PI4 SpeedMode, [out] VT_PR8 Vel, [out] VT_PR8 AccelTime, [out] VT_PR8 DecelTime
    )

DESCRIPTION

  • cmmIxGetSpeedPattern_T 은 “기본보간제어”의 이송 속도에 대한 설정된 환경설정 값을 반환 합니다.

  • cmmIxGetSpeedPattern 함수와는 다르게 가속 및 감속도를 펄스 단위가 아닌 시간 단위(msec) 로 설정 된 값을 반환 합니다.

PARAMETER

  • MapIndex: 맵번호(Map index), 이 맵번호를 사용하기전에 먼저 cmmIxMapAxes() 함수를 통하여 해당 맵번호에 유효한 축들이 맵핑되어 있어야 합니다.

  • SpeedMode : 설정된 속도모드를 반환합니다. 반환값은 다음과 같습니다.

Value

Meaning

0 또는 cmSMODE_C

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

1 또는 cmSMODE_T

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

2 또는 cmSMODE_S

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

  • Vel : 설정된 작업속도를 PPS 단위로 반환 합니다.

  • AccTime : 설정된 가속 시간을 밀리초(msec) 단위로 반환 합니다.

  • DecTime : 설정된 감속 시간을 밀리초(msec) 단위로 반환 합니다.

RETURN VALUE

Value

Meaning

음수

수행 실패

cmERR_NONE

수행 성공

REFERENCE

  • cmmIxSetSpeedPattern 함수 설명의 REFERENCE 참고

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
25
26
C/C++

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

#define MAP0 0 // 보간 맵 정의

int nSpdMode;
double fVel, fAccTime, fDecTime;

cmmIxMapAxes ( MAP0, cmX1_MASK | cmY1_MASK, 0 );

/* MAP0 로 설정된 축들의 보간 제어를 위해
작업 속도 1000 PPS, 가속 시간 1 초(1000 ms), 감속 시간 1 초(1000 ms) 로 설정합니다.*/
cmmIxSetSpeedPattern_T ( MAP0, // 보간 맵 번호
       cmSMODE_T, // 가감속 모드
       1000, // 보간 작업 속도 (PPS)
       1000, // 가속 시간 (msec)
       1000 // 감속 시간 (msec)
       );

cmmIxGetSpeedPattern_T( MAP0, &nSpdMode, &fVel, &fAccTime, &fDecTime);

// 현재 위치가 (0, 0) 이라고 가정할 때, (3000, 4000) 좌표로 직선 보간 이송을 수행합니다.
Double fDistList[2] = {3000, 4000};
cmmIxLineStart ( MAP0, fDistList );
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
Visual Basic

Dim nMapIdx As Long ‘보간 맵 정의
Dim fDistList(2) As Double ‘이송 좌표값의 배열 정보
Dim nSpdMode As Long ‘속도 모드
Dim fVel As Double ‘보간 작업 속도
Dim fAccTime As Double ‘보간 가속 시간
Dim fDecTime As Double ‘보간 감속 시간

nMapIdx = 0

Call cmmIxMapAxes ( nMapIdx, cmX1_MASK Or cmY1_MASK, 0 )

‘MAP0 로 설정된 축들의 보간 제어를 위해
‘작업 속도 1000 PPS, 가속 시간 1 초(1000 ms), 감속 시간 1 초(1000 ms) 로 설정합니다.
Call cmmIxSetSpeedPattern_T ( nMapIdx, cmSMODE_T, 1000, 1000, 1000 )

Call cmmIxGetSpeedPattern_T( MAP0, nSpdMode, fVel, fAccTime, fDecTime);

‘ 현재 위치가 (0, 0) 이라고 가정할 때, (3000, 4000) 좌표로 직선 보간 이송을 수행합니다.
fDistList(0) = 3000
fDistList(1) = 4000
Call cmmIxLineStart ( nMapIdx, fDistList(0) )
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
Delphi

var

   nMapIdx : LongInt; // 보간 맵 정의
   nSpdMode : LongInt; // 보간 이송 속도 모드
   fVel : Double; // 보간 작업 속도
   fAccTime : Double; // 보간 가속 시간
   fDecTime : Double; // 보간 감속 시간
   fDistList : Array[0..1] of Double; // 이송 좌표값의 배열 정보

begin
   nMapIdx := 0;

   cmmIxMapAxes ( nMapIdx, cmX1_MASK or cmY1_MASK, 0 );

   { MAP0 로 설정된 축들의 보간 제어를 위해
   작업 속도 1000 PPS, 가속 시간 1 초(1000 ms), 감속 시간 1 초(1000 ms) 로 설정합니다. }
   cmmIxSetSpeedPattern_T ( nMapIdx, cmSMODE_T, 1000, 1000, 1000 );

   cmmIxGetSpeedPattern_T( MAP0, @nSpdMode, @fVel, @fAccTime, @fDecTime);

   // 현재 위치가 (0, 0) 이라고 가정할 때, (3000, 4000) 좌표로 직선 보간 이송을 수행합니다.
   fDistList[0] := 3000;
   fDistList[1] := 4000;
   cmmIxLineStart ( nMapIdx, @fDistList );

end;