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;
|
See also