cemPlsrMove¶
SYNOPSIS¶
VT_I4 cemPlsrMove(
VT_I4 Channel,
VT_R8 Distance,
VT_I4 IsBlocking
)
DESCRIPTION¶
Pulsar 신호 입력에 맞추어 지정한 거리(상대 좌표) 만큼 이송을 수행한 후에 Manual Pulsar 모드를 해제합니다.
모션이 완료되기 전까지 반환되지 않습니다.
PARAMETER¶
Channel : 축 번호. 통합 축으로 관리되는 축 번호를 의미하며, 상수 값으로 0 (Zero Based) 이상,. (최대 통합 축 개수 - 1) 이하의 값을 축 번호로 설정할 수 있습니다.
Distance : 이동할 거리를 지정합니다. 지정한 거리만큼 이동한 후 Manual Pulsar 모드는 자동으로. 해제됩니다. 거리의 단위는 “Unit distance” 에 의해 정의되는 논리적 거리입니다.
IsBlocking : cemPlsrMove 함수의 인자이며, 완료될 때까지 기다리는 동안 윈도우 메시지를 블록. (Blocking)할 것인지를 결정합니다. 단, 쓰레드내에서 실행할 때는 이 값을 1(CE_TRUE)로 설정해주어야 합니다.
Value |
Meaning |
---|---|
0 (CE_FALSE) |
윈도우 메시지를 블록(Blocking) 하지 않습니다. 따라서 해당 모션이 진행되는 동안 윈도우 이벤트를 처리합니다. |
1 (CE_TRUE) |
윈도우 메시지를 블록(Blocking) 합니다. 따라서 해당 모션이 완료되는 동안에는 윈도우 이벤트가 처리되지 않습니다. |
RETURN VALUE¶
Value |
Meaning |
---|---|
음수 |
수행 실패 |
0 (ceERR_NONE) |
수행 성공 |
Note
Manual Pulsar 모드 모션을 중지하기 위해서는 cemSxStopEmg 함수를 사용하십시오. 이 함수가
호출되면 Manual Pulsar 모드는 해제됩니다.
Example¶
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 | C/C++
#include “ceSDK.h”
#include “ceSDKDef.h”
void OnSetPlsrConfig ()
{
// Manual Pulsar 입력 모드 설정 및 입력 펄스와 출력 펄스 비를 1:2 로 설정합니다.
cemPlsrInMode_Set ( cemX1, cemIMODE_CWCCW, CE_FALSE );
cemPlsrGain_Set ( cemX1, 2, 2048 );
/* PA/PB 신호 입력 회로에 노이즈 필터 기능을 적용합니다.
노이즈 필터 기능이 활성화 되면 3.25MHz 이상의 주파수를 가지는 펄스는 노이즈로 처리됩니다.*/
cemCfgFilterAB_Set ( cemX1, cemAB_PULSAR, CE_TRUE );
}
void OnPulsarMove ()
{
/* 속도 환경을 설정합니다. 작업 속도는 출력 펄스의 폭을 결정하며,
일반적으로 사용하는 서보 드라이버의 최대 속도로 설정하시면 됩니다. */
cemCfgSpeedPattern_Set ( cemX1, // 대상 축을 설정합니다.
cemSMODE_S, // Pulsar 구동에서 속도 모드는 무시됩니다.
655350, // 작업 속도는 출력 펄스의 폭을 결정하며,
// 일반적으로 서보드라이버의 최대 속도로 설정하시면 됩니다.
10000, // Pulsar 구동에서 가속도는 무시됩니다.
10000 // Pulsar 구동에서 감속도는 무시됩니다.
);
/* Manual Pulsar 입력에 맞춰서 지정한 거리만큼 이송을 수행한 후
Manual Pulsar 모드를 해제 합니다. Pulsar 이송 함수가 수행되면
cemStReadMotionState 함수의 모션 상태 반환 값이 8 ( cemMST_WAIT_PLSR ) 이 됩니다. */
// 지정한 거리만큼 상대좌표 이송을 수행합니다. 모션이 완료되기 전까지 반환되지 않습니다.
cemPlsrMove ( cemX1, 10000, CE_FALSE );
// cemPlsrMoveStart()함수는 모션을 시작시킨 후에 바로 반환됩니다.
}
|