cmmSxVMoveStart¶
SYNOPSYS¶
VT_I4 cmmSxVMoveStart(
[in] VT_I4 Axis, [in] VT_I4 Dir
)
DESCRIPTION¶
작업속도까지 가속한 후에 작업속도를 유지하며 정지함수가 호출될 때까지 지정한 방향으로의 모션을 계속 수행합니다. 이 함수는 모션을 시작시킨 후에 바로 반환됩니다.
PARAMETER¶
Axis: 축번호. 축번호는 상수값으로 [cmX1] 부터 0 번째 축을 기준 축으로 임의의 축을 설정할 수 있습니다.
Dir : 모션의 방향을 설정합니다.
Value |
Meaning |
---|---|
0 또는 cmDIR_N |
(-) 방향 => Negative direction |
1 또는 cmDIR_P |
(+) 방향 => Positive direction |
RETURN VALUE¶
Value |
Meaning |
---|---|
음수 |
수행 실패 |
cmERR_NONE |
수행 성공 |
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 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 | C/C++ :
/***************************************************************
다음의 예제는 “Jog 이동”을 하는 예입니다. 본 예제에서의
“Jog 이동”은 버튼이 눌려진 상태에서는 Axis0 축의 이동을
수행하다가, 버튼이 풀리면 이동을 멈추는 예입니다.
**************************************************************/
#include "Cmmsdk.h"
#include "CmmsdkDef.h"
/***************************************************************
* onprograminitial : 이 함수는 가상의 함수로서 프로그램 초기화 루틴이
* 적용되는 부분을 의미합니다.
***************************************************************/
void OnProgramInitial()
{
long m_nNumAxes;
cmmLoadDll();
if(cmmGnDeviceLoad(cmTRUE, &m_nNumAxes) != cmERR_NONE)
{
//Handle 은 사용자가 생성한 폼의 핸들 값입니다.
cmmErrShowLast(Handle);
return;
}
}
/**************************************************************
* OnSetSpeed(): 이 함수는 속도설정의 변경이 필요할 때 호출되는 가상의 함수입니다.
* 이때 m_fVwork, m_fAcc, m_fDec 변수를 통하여 속도, 가속도, 감속도 값이
* 적절하게 전달된다고 가정합니다.
**************************************************************/
void OnSetSpeed()
{
//첫 번째 축(Axis)의 기본 속도를 설정 합니다.
cmmCfgSetSpeedPattern(cmX1, cmSMODE_S, m_fVwork, m_fAcc, m_fDec );
}
/**************************************************************
* OnPlusButtonDown() : (+)Move 버튼이 눌렸을 때 호출되는 가상의 함수
* 이 함수에서 (+)방향으로 V-Move 를 시작합니다.
**************************************************************/
void OnPlusButtonDown ()
{
cmmSxVMoveStart(cmX1, cmDIR_P);//Positive dir V-MOVE
}
/**************************************************************
* OnPlusButtonUp() : (-)Move 버튼이 올라올 때 호출되는 가상의 함수
* 이 함수에서는 V-Move 를 종료합니다.
**************************************************************/
void OnPlusButtonUp ()
{
cmmSxStop(cmX1, cmFALSE, cmFALSE);
}
/**************************************************************
* OnMinusButtonDown(): (-)Move 버튼이 눌렸을 때 호출되는 가상의 함수
* 이 함수에서 (+)방향으로 V-Move 를 시작합니다.
**************************************************************/
void OnMinusButtonDown()
{
cmmSxVMoveStart(cmX1, cmDIR_N); // Negative dir V-MOVE
}
/**************************************************************
* OnMinusButtonUp() : (-)Move 버튼이 올라올 때 호출되는 가상의 함수
* 이 함수에서는 V-Move 를 종료합니다.
**************************************************************/
void OnMinusButtonUp()
{
cmmSxStop(cmX1, cmFALSE, cmFALSE);
}
|
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 29 30 31 32 33 34 35 36 37 38 39 | Visual Basic
‘=============================================================
‘cmmGnDeviceLoad 함수로 장치를 초기화 합니다.
‘=============================================================
Private Sub Form_Load()
Dim nTotalAxis As Long
Dim IRetVal As Long
Dim Hwnd As Long
'=============================================================
' cmmGnDeviceLoad 함수로 장치를 초기화합니다.
IRetVal = cmmGnDeviceLoad(True, nTotalAxis)
If IRetVal <> cmERR_NONE Then
MsgBox ("cmmGnDeviceLoad has been failed")
End If
'=============================================================
End Sub
Private Sub CfgSpeed(nTotalAxis As Long)
‘=============================================================
‘ 이 함수에서 cmmCfgSetSpeedPattern 함수로 속도를 설정하는 것은
‘ 모든 모션의 기준속도(Standard Speed) 가 됩니다.
‘ 단축 구동을 비롯한 대부분의 모션 동작은 이 기준 속도의 비율로 동작되게
‘ 됩니다.
‘ 아래 함수는 전체 축에 대해서 임의의 기준 속도를 설정하고 있습니다.
‘============================================================
Call cmmCfgSetSpeedPattern(cmX1, cmSMODE_S, 1000, 2000, 2000)
End Sub
Private Sub btnStart_Click()
' 지정된 방향으로 연속적 속도 이동을 시작합니다. 이 이동은
‘ 속도 이동이기 때문에, 정지(停止) 함수가 호출될때까지 계속 이송합니다.
Call cmmSxVMoveStart(cmX1, cmDIR_N)
End Sub
|
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 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 | Delphi
// * 이 함수는 폼이 생성될때 이벤트에 의해 불려지며 , 장치를 로드하는 함수입니다.
procedure OnCreate();
var
g_nAxis : LongInt;
begin
// Load CMMSDK(DLL) Library
if ( cmmGnDeviceLoad(cmTRUE,@g_nAxis) <> cmERR_NONE ) then
begin
// 마지막에 발생한 에러를 화면에 표시합니다.
// 함수 인자로는 Form 의 Handle 이 전달됩니다.
cmmErrShowLast(Form1.Handle);
exit;
end
end;
// * Description : 속도를 설정 하는 함수
procedure btnSetSpeedClick();
var
fAccelSpeed : Double;
fDecelSpeed : Double;
fWorkSpeed : Double;
nSMODE : LongInt;
begin
//각 변수들의 값을 설정 합니다.
fWorkSpeed := 50000;
fAccelSpeed := 100000;
fDecelSpeed := 100000;
nSMODE := cmSMODE_S;
// 설정된 기준 속도를 실제 SDK 함수에 전달합니다.
cmmCfgSetSpeedPattern(
cmX1, // 현재 활성화 되어 있는 채널을 선택합니다.
nSMODE, // 가감속이 없는 모드와 선형 가감속, S-CURVE 가감속을 설정합니다.
fWorkSpeed, // 작업 속도를 설정합니다.
fAccelSpeed, // 가속도를 설정합니다.
fDecelSpeed); // 감속도를 설정합니다.
end;
// * Description :
// * 이 함수는 버튼 이벤트에 의해 + 방향으로 설정된 거리만큼 [절대좌표]로
// * 이동하는 함수입니다.
Procedure btnPositiveClick();
var
fWorkSpeedRatio : Double;
fAccelSpeedRatio : Double;
fDecelSpeedRatio : Double;
begin
//////////////////////////////////////////////////////////////
// 저희 COMIZOA 에서는 다음과 같은 형태의 함수를 제공합니다.
// 가) 지령 펄스 출력과 위치 검출기를 통한 펄스 값 입력의 일치를 위한 제어
// 설명 : 위 함수는 지정된 지령 위치의 펄스 출력을 내보내고,
// 위치 검출기를 통해 지령된 위치까지 이송 후에 함수가 반환됩니다.
// cmmSxMove [상대좌표]
// cmmSxMoveTo [절대좌표]
// 나) 지령 펄스 출력 후 바로 종료를 위한 함수
// 설명 : 위 함수는 지정된 지령 위치의 펄스 출력을 내보내고,
// 함수가 반환됩니다.
// 본 함수를 사용 했을 경우 사용자가 직접 위치 검출기를 통한
// 모션 종료를 판단할 수 있는 함수는
// cmmSxIsDone 혹은 cmmSxWaitDone 함수가 있습니다.
// cmmSxMoveStart [상대좌표]
// cmmSxMoveToStart [절대좌표]
//////////////////////////////////////////////////////////////
//cmmSxSetSpeedRation 를 통하여서 기준 속도와의 비에 따른 실제 구동
// 속도를 설정 합니다.
// 여기서 기준 속도란 cmmCfgSetSpeedPattern 함수를 통해 설정된
// 속도를 의미하며, 아래의 cmmSxSetSpeedRatio 함수는
// 단축(Single Axis)를 대상으로 축의 속도를
// 기준 속도 대비 Percent(%) 단위로 입력 받아 설정하는 함수입니다.
fAccelSpeedRatio := 100;
fDecelSpeedRatio := 100;
fWorkSpeedRatio := 100;
cmmSxSetSpeedRatio(cmX1 ,cmSMODE_KEEP, fWorkSpeedRatio, fAccelSpeedRatio, fDecelSpeedRatio);
cmmSxVMoveStart
(
cmX1,
cmDIR_N
);
end;
|