cemSxMoveStart2V


SYNOPSYS

t_i32 cemSxMoveStart2V(
  LONG Axis,
  DOUBLE Distance,
  DOUBLE Vel2
)

DESCRIPTION

  • 하나의 축에 대하여 현재 위치에서 지정한 거리(상대 좌표)만큼 2 단계 속도로 이송을 수행합니다.

  • 이송을 시작하면 cemCfgSpeedPattern_Set 함수를 통해 설정된 작업 속도까지 가속을 한 후 Vel2 로 설정한 2 차 작업속도까지 가속을 한 뒤 감속하여 이송을 완료합니다.

  • 이 함수는 모션을 시작시킨 후에 바로 반환됩니다.

PARAMETER

  • Axis : 축 번호

  • Distance : 이송할 거리를 지정합니다. 이 값은 현재의 위치에 대한 상대 좌표이며, 논리적 거리(Logic distance) 단위를 사용합니다.

  • Vel2 : 이 매개변수를 통하여 2 차 작업 속도를 설정합니다.

RETURN VALUE

  • 함수 수행 여부를 반환합니다.

Value

Meaning

음수

수행 실패

0 (ceERR_NONE)

수행 성공

REFERENCE

../../../_images/cEIP-1.jpg

EXAMPLE

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
C/C++

#include “ceSDK.h”
#include “ceSDKDef.h”

long nAxisNo = 1; // 이송 대상 축을 선택합니다.

void OnSetSpeed ()
{
   / / 대상 축의 기본 속도를 설정합니다.
   cemCfgSpeedPattern_Set ( nAxisNo, cemSMODE_T, 1000, 5000, 5000 );
}

void OnMove ()
{
 long nRetVal;

 /* 대상 축의 기본 작업 속도까지 가속을 한 후 설정한 2 차 작업 속도까지 가속을 한 후
 감속하여 현재 위치에서 ‘10000’만큼 상대 위치까지 이송합니다. */
 nRetVal = cemSxMoveStart2V (    nAxisNo,    // 대상 축 설정.
                                 10000,    // 이송할 거리 설정.
                                 20000     // 2 차 작업 속도
 )

if ( nRetVal == ceERR_NONE ) {

//블록 모드를 CE_FALSE 로 하면 UI 메시지 처리가 가능합니다. cemSxWaitDone ( nAxisNo, CE_FALSE );

}

/* 대상 축의 기본 작업 속도까지 가속을 한 후 설정한 2 차 작업 속도까지 가속을 한 후 감속하여 현재 위치에 관계 없이 ‘0’ 위치로 절대 이송합니다. */

if ( cemSxMoveToStart2V ( nAxisNo, 0, 20000 ) == ceERR_NONE ) {

long nIsDone; // 단축 이송 완료 정보. While ( 1 ) {

// 단축 이송 작업 완료를 확인합니다. cemSxIsDone ( nAxisNo, &nIsDone ); if ( nIsDone == CE_TRUE ) break;

}

}

}

 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
Delphi

procedure OnSetSpeed ();
begin
   // 대상 축의 기본 속도를 설정합니다.
   cemCfgSpeedPattern_Set ( cemX1, cemSMODE_T, 1000, 5000, 5000 );
 end;

 procedure OnMove ();
 var
   nIsDone : LongInt; // 단축 이송 완료 정보.
 begin
   { 대상 축의 기본 작업 속도까지 가속을 한 후 설정한 2 차 작업 속도까지 가속을 한 후
   감속하여 현재 위치에서 ‘10000’만큼 상대 위치까지 이송합니다. }

   if cemSxMoveStart2V ( cemX1, 10000, 20000 ) = ceERR_NONE then
   begin
       // 블록 모드를 CE_FALSE 로 하면 UI 메시지 처리가 가능합니다.
       cemSxWaitDone ( cemX1, CE_FALSE );
   end;

   { 대상 축의 기본 작업 속도까지 가속을 한 후 설정한 2 차 작업 속도까지 가속을 한 후
   감속하여 현재 위치에 관계 없이 ‘0’ 위치로 절대 이송합니다. }

   if cemSxMoveToStart2V ( cemX1, 0, 20000 ) = ceERR_NONE then
   begin
       nIsDone := CE_FALSE;

       // 단축 2 단계 이송 작업 완료를 확인합니다.
       while nIsDone = CE_FALSE do
       begin
               cemSxIsDone (cemX1, @nIsDone );
       end;
   end;

end;