cmcPmIxIsDone


SYNOPSYS

VT_I4 cmcPmIxIsDone ([in] VT_I4 BoardID,  [in] VT_I4 NodeId, [in] VT_I4 MapIndex, [out] VT_PI4 IsDone )

DESCRIPTION

  • cmcPmIxIsDone() 함수는 지정한 보간 맵에 해당하는 보간 작업이 완료됐는지를 확인하는 함수입니다.

  • 이 함수의 사용과 호출에 있어, 제공된 ㈜커미조아의 함수 헤더 Visual Basic 에서는 함수의 첨두어 cmc 가 붙지 않습니다.

PARAMETER

▶ BoardID : 사용자가 설정한 디바이스(보드) ID.

▶ NodeId : 노드 번호. 노드 번호는 3부터 시작합니다.

▶ MapIndex : 맵번호(Map index), 이 맵번호를 사용하기 전에 먼저 cmcPmIxMapAxes() 함수를 통하여 해당 맵번호에 유효한 축들이 맵핑 되어 있어야 합니다.

▶ IsDone : 이 매개를 통해 모션 작업이 완료되었는지를 판단할 수 있습니다.

Value

Meaning

0

모션작업이 완료되지 않음

1

모션작업이 완료됨

RETURN VALUE

Value

Meaning

음수

수행 실패

ERR_NONE

수행 성공

EXAMPLE

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
 C/C++
 #include “ComiMLink3_SDK.h”
 #include “ComiMLink3_SDK_Def.h”
 #define MAP0 0
 #define NODE_ID 1
 long BoardID = 0;
 cmcPmIxMapAxes(BoardID, 3, MAP0, ccmcX1_MASK | ccmcY1_MASK );
 /*MAP0로 설정된 축들을 벡터 스피드로
 가속도 10000, 감속도 10000, 등속도 2000으로 설정합니다.*/
 cmcPmIxSetSpeedPattern(BoardID, 3, MAP0, cmcTRUE, cmcMODE_T, 2000, 10000, 10000 );
 double fDistList[2] = { 10000.0f, 20000.0f };
 //MAP0를 직선 보간으로 구동합니다.
 cmcPmIxLineStart(BoardID, 3, MAP0 , fDistList );
 long nIsDone = cmcFALSE;
 while( !nIsDone )
 {
 //MAP0에 혹한 축들의 모션 완료 여부를 판단합니다.
 cmcPmIxIsDone(BoardID, 3, MAP0, &nIsDone );
 }