cemSxMoveStart2V¶
SYNOPSYS¶
t_i32 cemSxMoveStart2V(
LONG Axis,
DOUBLE Distance,
DOUBLE Vel2
)
DESCRIPTION¶
하나의 축에 대하여 현재 위치에서 지정한 거리(상대 좌표)만큼 2 단계 속도로 이송을 수행합니다.
이송을 시작하면 cemCfgSpeedPattern_Set 함수를 통해 설정된 작업 속도까지 가속을 한 후 Vel2 로 설정한 2 차 작업속도까지 가속을 한 뒤 감속하여 이송을 완료합니다.
이 함수는 모션을 시작시킨 후에 바로 반환됩니다.
PARAMETER¶
Axis : 축 번호
Distance : 이송할 거리를 지정합니다. 이 값은 현재의 위치에 대한 상대 좌표이며, 논리적 거리(Logic distance) 단위를 사용합니다.
Vel2 : 이 매개변수를 통하여 2 차 작업 속도를 설정합니다.
REFERENCE¶
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;
|