cmmIxxHelOnceSetSpeed


SYNOPSIS

VT_I4 cmmIxxHelOnceSetSpeed(
    [in] VT_I4 HelId, [in] VT_I4 Master,
    [in] VT_I4 SpeedMode, [in] VT_R8 WorkSpeed,
    [in] VT_R8 Acc, [in] VT_R8 Dec)

DESCRIPTION

  • 확장 보간제어 상에서 헬리컬보간 작업을 수행시의 속도패턴을 설정 하거나 설정된 값을 읽어옵니다.

PARAMETER

  • HelId : 속도 설정을 하고자 하는 헬리컬 보간 이송 작업의 아이디를 지정합니다. CMMSDK 는 통합라이브러리이므로 여러 개의 보드가 장착되어 있는 경우에 여러 개의 헬리컬 보간 작업을 동시에 수행할 수도 있습니다. 따라서 각각의 작업을 구분지어줄 아이디가 필요합니다. cmmIxxHelOnce() / cmmIxxHelOnceStart() 의 헬리컬 이송 함수를 실행할 때에도 HelId 를 입력하게 되어 있는데, 여기서 지정한 속도 패턴은 동일한 HelId 가 지정된 헬리컬 이송 함수에서 반영됩니다.

  • Master: cmmIxxHelOnceSetSpeed 함수의 인자이며, 속도 설정의 마스터를 설정합니다. 이 값에 따라서 지정한 속도패턴의 의미가 다음과 같이 달라집니다.

Value

Meaning

0

이 함수를 통하여 설정하는 속도 패턴은 Z축과 U축의 직선 보간에 대한 벡터 속도로 적용됩니다.
(U 축의 이송량은 원호보간의 원주 길이에 해당함.) 만일 Z축이 포함되지 않은 헬리컬 보간이라면 이
모드는 Master = 1 로 설정한 것과 동일한 것이 되며 이 함수를 통하여
설정하는 속도 패턴은 U 축의 속도로 적용됩니다.

1

이함수를 통하여 설정하는 속도 패턴은 U 축의 속도로 적용됩니다. U 축은 원주 길이에
해당하는 이송을 하게 되므로 U 축의 속도는 곧 원호보간의 속도입니다. Z 축의 속도는
원주 길이에 대한 상대적인 거리비에 따라 자동으로 결정됩니다.

2

이 함수를 통하여 설정하는 속도 패턴은 Z 축의 속도로 적용됩니다. 원호보간 속도는 Z 축
이동 거리에 대한 상대적인 거리비에 따라 자동으로 결정됩니다. 만일 Z축이 포함되지 않은
헬리컬 보간이라면 이 모드는 Master = 1 로 설정한 것과 동일한 것이 되며 U 축의 속도로 적용됩니다.
  • Master: cmmIxxHelOnceGetSpeed 함수의 인자이며, 마스터 속도 설정을 반환합니다.

Value

Meaning

0

Z 축과 U 축의 직선 보간에 대한 벡터 속도를 마스터 속도로 설정된 상태입니다.

1

이 함수를 통하여 설정하는 속도 패턴은 U 축의 속도를 마스터 속도로 설정된 상태입니다.

2

이 함수를 통하여 설정하는 속도 패턴은 Z 축의 속도를 마스터 속도로 설정된 상태입니다.

  • SpeedMode : cmmIxxHelOnceSetSpeed 함수의 인자이며, 속도 모드를 설정합니다.

Value

Meaning

0 또는 cmSMODE_C

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

1 또는 cmSMODE_T

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

2 또는 cmSMODE_S

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

  • SpeedMode : cmmIxxHelOnceGetSpeed 함수의 인자이며, 속도 모드를 반환합니다.

Value

Meaning

0 또는 cmSMODE_C

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

1 또는 cmSMODE_T

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

2 또는 cmSMODE_S

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

  • WorkSpeed : cmmIxxHelOnceSetSpeed 함수의 인자이며, 정속도를 지정합니다.

  • WorkSpeed : cmmIxxHelOnceGetSpeed 함수의 인자이며, 지정된 정속도를 반환합니다.

  • Acc : cmmIxxHelOnceSetSpeed 함수의 인자이며, 가속도를 지정합니다. 단, 이 값을 0 으로 설정하면 가속구간이 없이 즉시 작업속도로 올라갑니다(실제로는 가속값이 무한대).

  • Acc : cmmIxxHelOnceGetSpeed 함수의 인자이며, 가속도를 반환합니다.

  • Dec : cmmIxxHelOnceSetSpeed 함수의 인자이며, 감속도를 지정합니다. 단, 이 값을 0 으로 설정하면 감속구간이 없이 즉시 정지합니다(실제로는 감속값이 무한대).

  • Dec : cmmIxxHelOnceGetSpeed 함수의 인자이며, 감속도를 반환합니다.

EXAMPLE

아래의 코드는 360 도 원을 그리면서 Z 축도 +3000 만큼 이송하는 헬리컬 보간을 수행하는 예입니다. 이때 Z 축 속도를 V=5000, ACC=DEC=25000 으로 설정하고, 원호보간 속도는 원주 길이와 Z 축 이동거리의 비에 따라 자동으로 설정되도록 합니다.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
C/C++

#define HEL_ID          0 // Helical ID

cmmIxxHelOnceSetSpeed(HEL_ID, 2, cmSMODE_S, 5000, 25000, 25000);

long nAxes[4] = {0, 1, 2, 3};
double fCoords[4] = {5000, 5000, 3000, cmDIR_P};

cmmIxxHelOnce(HEL_ID, 4, nAxes, fCoords, 360, NULL, TRUE);
…
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
Visual Basic
‘HEL_ID 는 이미 선언되어 있다고 가정함.
Dim arrayAxes(4) As Long
Dim fCoords(4) As Double

   arrayAxes(0) = 0
   arrayAxes(1) = 1
   arrayAxes(2) = 2
   arrayAxes(3) = 3
   fCoords(0) = 5000
   fCoords(1) = 5000
   fCoords(2) = 3000
   fCoords(3) = cmDIR_P

   Call cmmIxxHelOnceSetSpeed(HEL_ID, cmSMODE_S, 5000, 25000, 25000)
   Call cmmIxxHelOnce(HEL_ID, 4, arrayAxes(0), fCoords(0), 360, 0, True)
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
Delphi

Const HEL_ID = 0; // Helical ID

var
   nAxes : Array[0..3] of LongInt;
   fCoords : Array[0..3] of Double;
begin
   nAxes[0] := 0;
   nAxes[1] := 1;
   nAxes[2] := 2;
   nAxes[3] := 3;

   fCoords[0] := 5000;
   fCoords[1] := 5000;
   fCoords[2] := 3000;
   fCoords[3] := cmDIR_P;

   cmmIxxHelOnce(HEL_ID, 4, @nAxes, @fCoords, 360, NIL , cmTRUE);

end;