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;