cmsSxVMoveStart¶
SYNOPSYS¶
VT_I4 cmsSxVMoveStart ([in] VT_I4 BoardId, [in] VT_I4 Axis, [in] VT_I4 Dir)
DESCRIPTION¶
작업속도까지 가속한 후에 작업속도를 유지하며 정지(停止)함수가 호출될 때까지 지정한 방향으로의 모션을 계속 수행합니다. 이 함수는 모션을 시작시킨 후에 바로 반환됩니다.
이 함수의 사용과 호출에 있어, 제공된 ㈜커미조아의 함수 헤더 Visual Basic 에서는 함수의 첨두어 cms 가 붙지 않습니다.
PARAMETER¶
▶ BoardId: 사용자가 설정한 디바이스(보드) ID.
▶ Axis: 축(채널) 번호. 축번호는 상수값으로 0 번째 채널을 기준 채널로 임의의 채널을 설정할 수 있습니다.
▶ Dir : 모션의 방향을 설정합니다.
Value
Meaning
0 또는 cmsDIR_N
(-) 방향 => Negative direction
1 또는 cmsDIR_P
(+) 방향 => Positive direction
RETURN VALUE¶
Value |
Meaning |
---|---|
음수 |
수행 실패 |
ERR_NONE |
수행 성공 |
EXAMPLE¶
본 예제는 cmsSxMoveToStart 를 사용하여 X 축을 절대좌표 1000 지점으로 이동한 후 다시 절대좌표 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 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 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 | C/C++ :
/***************************************************************
다음의 예제는 “Jog 이동”을 하는 예입니다. 본 예제에서의
“Jog 이동”은 버튼이 눌려진 상태에서는 Axis0 축의 이동을
수행하다가, 버튼이 풀리면 이동을 멈추는 예입니다.
**************************************************************/
#define DEV0 0
#include "ComiSSCNET3_SDK.h"
#include "ComiSSCNET3_SDK_Def.h"
/***************************************************************
* onprograminitial : 이 함수는 가상의 함수로서 프로그램 초기화 루틴이
* 적용되는 부분을 의미합니다.
***************************************************************/
void OnProgramInitial()
{
long m_nNumDevices;
long m_DeviceList[16];
long m_nNumAxes;
cmsLoadDll();
if(cmsGnLoadDevice(&m_nNumDevices, m_DeviceList, &m_nNumAxes) != ERR_NONE)
{
//Handle 은 사용자가 생성한 폼의 핸들 값입니다.
// 에러메시지 출력
return;
}
}
/**************************************************************
* OnSetSpeed(): 이 함수는 속도설정의 변경이 필요할 때 호출되는 가상의 함수입니다.
* 이때 m_fVwork, m_fAcc, m_fDec 변수를 통하여 속도, 가속도, 감속도 값이
* 적절하게 전달된다고 가정합니다.
**************************************************************/
void OnSetSpeed()
{
//첫 번째 축(Axis)의 기본 속도를 설정 합니다.
cmsCfgSetSpeedPattern(DEV0, 0, cmsSMODE_S, m_fVwork, m_fAcc, m_fDec, 0,0);
}
/**************************************************************
* OnPlusButtonDown() : (+)Move 버튼이 눌렸을 때 호출되는 가상의 함수
* 이 함수에서 (+)방향으로 V-Move 를 시작합니다.
**************************************************************/
void OnPlusButtonDown ()
{
cmsSxVMoveStart(DEV0, 0, cmsDIR_P);//Positive dir V-MOVE
}
/**************************************************************
* OnPlusButtonUp() : (-)Move 버튼이 올라올 때 호출되는 가상의 함수
* 이 함수에서는 V-Move 를 종료합니다.
**************************************************************/
void OnPlusButtonUp ()
{
cmsSxStop(DEV0, 0, cmsFALSE, cmsFALSE);
}
/**************************************************************
* OnMinusButtonDown(): (-)Move 버튼이 눌렸을 때 호출되는 가상의 함수
* 이 함수에서 (+)방향으로 V-Move 를 시작합니다.
**************************************************************/
void OnMinusButtonDown()
{
cmsSxVMoveStart(DEV0, 0, cmsDIR_N); // Negative dir V-MOVE
}
/**************************************************************
* OnMinusButtonUp() : (-)Move 버튼이 올라올 때 호출되는 가상의 함수
* 이 함수에서는 V-Move 를 종료합니다.
**************************************************************/
void OnMinusButtonUp()
{
cmsSxStop(DEV0, 0, cmsFALSE, cmsFALSE);
}
-----------------------------------------------------------------------
Visual Basic
‘============================================================
‘GnLoadDevice 함수로 장치를 초기화 합니다.
‘============================================================
Const DEV0 = 0
Private Sub Form_Load()
Dim nTotalDevices As Long
Dim DeviceList(16) As Long
Dim nTotalAxis As Long
Dim IRetVal As Long
Dim Hwnd As Long
'============================================================
' GnLoadDevice 함수로 장치를 초기화합니다.
IRetVal = GnLoadDevice(nTotalDevices, DeviceList(0), nTotalAxis)
If IRetVal <> ERR_NONE Then
MsgBox ("GnLoadDevice has been failed")
End If
'============================================================
End Sub
Private Sub CfgSpeed(nTotalAxis As Long)
‘==========================================================
‘ 이 함수에서 CfgSetSpeedPattern 함수로 속도를 설정하는 것은
‘ 모든 모션의 기준속도(Standard Speed) 가 됩니다.
‘ 단축 구동을 비롯한 대부분의 모션 동작은 이 기준 속도의 비율로 동작되게
‘ 됩니다.
‘ 아래 함수는 전체 축에 대해서 임의의 기준 속도를 설정하고 있습니다.
‘==========================================================
Call CfgSetSpeedPattern(DEV0, 0, cmsSMODE_S, 1000, 2000, 2000,0,0)
End Sub
Private Sub btnStart_Click()
' 지정된 방향으로 연속적 속도 이동을 시작합니다. 이 이동은
‘ 속도 이동이기 때문에, 정지(停止) 함수가 호출될때까지 계속 이송합니다.
Call SxVMoveStart(DEV0, 0, cmsDIR_N)
End Sub
-----------------------------------------------------------------------
Delphi
// * 이 함수는 폼이 생성될때 이벤트에 의해 불려지며 , 장치를 로드하는 함수입
// * 니다.
procedure OnCreate();
var
g_nDevs : LongInt;
DevList : Array[0..15] of LongInt
g_nAxis : LongInt;
begin
// Load ComiSSCNET3(DLL) Library
if ( cmsGnLoadDevice (@g_nDevs, @DevList, @g_nAxis) <> ERR_NONE ) then
begin
// 마지막에 발생한 에러를 화면에 표시합니다.
// 함수 인자로는 Form 의 Handle 이 전달됩니다.
// 에러메시지 출력
exit;
end
end;
// * Description : 속도를 설정 하는 함수
procedure btnSetSpeedClick();
var
fAccelSpeed : Double;
fDecelSpeed : Double;
fWorkSpeed : Double;
nSMODE : LongInt;
begin
//각 변수들의 값을 설정 합니다.
fWorkSpeed := 50000;
fAccelSpeed := 100000;
fDecelSpeed := 100000;
nSMODE := cmsSMODE_S;
// 설정된 기준 속도를 실제 SDK 함수에 전달합니다.
cmsCfgSetSpeedPattern(
0, // 현재 설정된 디바이스 ID 를 선택합니다.
0, // 현재 활성화 되어 있는 채널을 선택합니다.
nSMODE, // 가감속이 없는 모드와 선형 가감속,
//S-CURVE 가감속을 설정합니다.
fWorkSpeed, // 작업 속도를 설정합니다.
fAccelSpeed, // 가속도를 설정합니다.
fDecelSpeed, // 감속도를 설정합니다.
0, //초기속도를 설정합니다.
0) ; //최종속도를 설정합니다.
end;
// * Description :
// * 이 함수는 버튼 이벤트에 의해 + 방향으로 설정된 거리만큼 [절대좌표]로
// * 이동하는 함수입니다.
Procedure btnPositiveClick();
var
begin
//////////////////////////////////////////////////////////////
// 저희 COMIZOA 에서는 다음과 같은 형태의 함수를 제공합니다.
// 지령 펄스 출력 후 바로 종료를 위한 함수
// 설명 : 위 함수는 지정된 지령 위치의 펄스 출력을 내보내고,
// 함수가 반환됩니다.
// 본 함수를 사용 했을 경우 사용자가 직접 위치 검출기를 통한
// 모션 종료를 판단할 수 있는 함수는
// cmsSxIsDone 혹은 cmsSxWaitDone 함수가 있습니다.
// cmsSxMoveStart [상대좌표]
// cmsSxMoveToStart [절대좌표]
//////////////////////////////////////////////////////////////
cmsSxVMoveStart
(
0,
0,
cmsDIR_N
);
end;
|