cmsOverrideSpeedSet¶
SYNOPSYS¶
VT_I4 cmsOverrideSpeedSet ([in] VT_I4 BoardId, [in] VT_I4 Axis)
DESCRIPTION¶
이 함수는 단축 모션이 진행되고 있는 중에 속도를 오버라이딩하고자할 때 사용하는 함수입니다. 속도를 오버라이딩하기 위해서는 먼저 cmsCfgSetSpeedPattern() 속도 패턴 설정 함수를 통하여 변경하고자 하는 속도 또는 가속도값을 설정하고나서 이 함수를 수행해야합니다.
이 함수의 사용과 호출에 있어, 제공된 ㈜커미조아의 함수 헤더 Visual Basic 에서는 함수의 첨두어 cms 가 붙지 않습니다.
PARAMETER¶
▶ BoardId: 사용자가 설정한 디바이스(보드) ID.
▶ Axis : 축(채널) 번호. 축번호는 상수값으로 0번째 채널을 기준 채널로 임의의 채널을 설정할 수 있습니다.
RETURN VALUE¶
Value |
Meaning |
---|---|
음수 |
수행 실패 |
ERR_NONE |
수행 성공 |
REFERENCE¶
직선, 원호, 헬리컬 보간작업을 수행하는 경우에는 속도 오버라이딩을 사용할 수 없습니다.
EXAMPLE¶
본 예제는 cmsOverrideSpeedSet()함수를 사용하여 속도를 오버라이딩하는 것을 예로 보여주는 코드입니다. 본 예제는 “HIGH” 와 “LOW” 로 이름지어진 두 개의 버튼이 있다고 가정하고 “HIGH” 버튼이 눌리면 X1축의 속도를 20000으로 설정하고 “LOW” 버튼이 눌리면 속도를 10000으로 설정하는 예입니다.
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 | C/C++
#define DEV0 0
#include "ComiSSCNET3_SDK.h"
#include "ComiSSCNET3_SDK_Def.h"
#define V_LOW 10000 // 저속모드 속도
#define V_HIGH 20000 // 고속모드 속도
/***************************************************************
* 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;
}
}
/**************************************************************
* OnStart() : 이 함수는 가상의 함수로서 X축에 대하여 V-MOVE 모션을 시작합니다.
**************************************************************/
void OnStart()
{
long nIsDone;
// 해당축이 작업중이면 정지(停止)하고 다시 시작 //
cmsSxIsDone(DEV0, 0, &nIsDone);
if(nIsDone != cmsTRUE) cmsSxStopEmg(DEV0, 0);
// 속도설정 => 시작은 LOW 속도로 시작 //
cmsCfgSetSpeedPattern(DEV0, 0, cmsSMODE_S, V_LOW, 50000, 50000,0,0);
// V-Move start //
if(cmsSxVMoveStart(DEV0, 0, cmsDIR_P)){
// 에러메시지 출력
return;
}
}
/**************************************************************
* OnHighButtonClick() : “HIGH” 버튼 콜백함수 (가상함수)
* “HIGH”버튼이 클릭되면 속도를 V_HIGH 속도로 오버라이드한다.
**************************************************************/
void OnHighButtonClick()
{
// V_HIGH 속도로 오버라이딩 //
cmsCfgSetSpeedPattern(DEV0, 0, cmsSMODE_S, V_HIGH, 50000, 50000,0,0);
if(cmsOverrideSpeedSet (DEV0, 0) != ERR_NONE){
// 에러메시지 출력
return;
}
}
/**************************************************************
* OnLowButtonClick() : “LOW” 버튼 콜백함수 (가상함수)
* “LOW”버튼이 클릭되면 속도를 V_LOW 속도로 오버라이드한다.
**************************************************************/
void OnLowButtonClick()
{
// V_LOW 속도로 오버라이딩 //
cmsCfgSetSpeedPattern(DEV0, 0, cmsSMODE_S, V_LOW, 50000, 50000,0,0);
if(cmsOverrideSpeedSet (DEV0, 0) != ERR_NONE){
// 에러메시지 출력
return;
}
}
/**************************************************************
* OnStop() : “Stop”명령시에 호출되는 가상의 함수
**************************************************************/
void OnStop()
{
}
cmsSxStopEmg(DEV0, 0);
-------------------------------------------------------------------------------------
Visual Basic
Const DEV0 = 0
'/**************************************************************
'* OnStart() : 이 함수는 가상의 함수로서 X축에 대하여 V-MOVE 모션을
‘*시작합니다.
'**************************************************************/
Private Sub OnStart()
Dim nIsDone As Long
'해당축이 작업중이면 정지(停止)하고 다시 시작
Call SxIsDone(DEV0, 0, nIsDone)
If (nIsDone <> cmsTRUE) Then
SxStopEmg (DEV0, 0)
End If
'시작은 LOW 속도로 시작
Call CfgSetSpeedPattern(DEV0, 0, cmsSMODE_S, 10000, 50000, 50000)
If (SxVMoveStart(DEV0, 0, cmsDIR_P)) Then
// 에러메시지 출력
End If
End Sub
'/**************************************************************
'* OnHighButtonClick() : "HIGH" 버튼 콜백함수 (가상함수)
'* "HIGH"버튼이 클릭되면 속도를 V_HIGH 속도로 오버라이드한다.
'**************************************************************/
Private Sub OnHighButtonClick()
'V_HIGH 속도로 오버라이딩
Call CfgSetSpeedPattern(DEV0, 0, cmsSMODE_S, 20000, 50000, 50000,0,0)
If (OverrideSpeedSet(DEV0, 0) <> ERR_NONE) Then
// 에러메시지 출력
End If
End Sub
'/**************************************************************
'* OnLowButtonClick() : "LOW" 버튼 콜백함수 (가상함수)
'* "LOW"버튼이 클릭되면 속도를 V_LOW 속도로 오버라이드한다.
'**************************************************************/
Private Sub OnLowButtonClick()
'V_LOW 속도로 오버라이딩
Call CfgSetSpeedPattern(DEV0, 0, cmsSMODE_S, 10000, 50000, 50000,0,0)
If (OverrideSpeedSet(DEV0, 0) <> ERR_NONE) Then
// 에러메시지 출력
End Sub
`/**************************************************************
`* OnStop() : “Stop”명령시에 호출되는 가상의 함수
`**************************************************************/
Private Sub OnStop()
Call SxStopEmg(DEV0, 0)
End Sub
-------------------------------------------------------------------------------------
|