cmcPmOverrideMoveTo


SYNOPSYS

VT_I4 cmcPmOverrideMoveTo ([in] VT_I4 BoardID,  [in] VT_I4 NodeId, [in] VT_I4 Channel,
[in] VT_R8 NewPosition, [in] VT_I4 IsHardApply)

DESCRIPTION

  • 이 함수는 cmcPmSxMoveToStart() 함수를 통하여 수행되는 절대좌표 In-position 모션에 대하여 목표 절대좌표 값을 오버라이딩 하는 함수입니다.

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

PARAMETER

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

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

▶ Channel : 축 번호. 통합 축으로 관리되는 축 번호를 의미하며, 상수 값으로 0 (Zero Based) 이상, 최대 통합 축 개수 - 1 이하의 값을 축 번호로 설정할 수 있습니다.

▶ NewPosition : 새로운 목표 절대좌표 값을 지정합니다.

▶ IsHardApply : Override 불가 시점에서도 Override 설정을 강제로 적용합니다.

RETURN VALUE

Value

Meaning

음수

수행 실패

ERR_NONE

수행 성공

REFERENCE

  • 위치 오버라이드를 수행하려는 시점에 이미 이송이 완료되어 버린 경우에는 위치 오버라이드는 무시되고 반환값을 0으로 반환합니다. 따라서 사용자는 반환값이 0인 경우에는 이미 이송이 완료되어 오버라이드가 적용되지 않은 것으로 인지하여야 하며, 그럼에도 불구하고 목표 좌표를 수정해야 하는 경우에는 cmcPmSxMove() 또는 cmcPmSxMoveTo() 함수를 추가적으로 수행해야 합니다.

EXAMPLE

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
   C/C++
   #include “ComiMLink3_SDK.h”
   #include “ComiMLink3_SDK_Def.h”
   long BoardID = 0;
   //0번 축의 속도를 설정합니다.
   cmcPmCfgSetSpeedPattern(BoardID, 3, ccmcX1, cmcMODE_S, 5000, 30000, 30000 );
   cmcPmSxSetSpeedRatio(BoardID, 3, ccmcX1, ccmcSMODE_KEEP, 100, 100, 100 );
   //0번 축을 구동 시킵니다.
   cmcPmSxMoveToStart(BoardID, 3, ccmcX1, 13000 );
   long nAppliedState = 0;
   /*이동 할 위치를 10000으로 오버라이드 합니다.
   IsHardApply 인자를 cmcTRUE로 할 경우에는 모션이
   종료된 상태에서도 강제로 이동시킵니다.*/
   cmcPmOverrideMoveTo(BoardID, 3, ccmcX1, 10000, cmcTRUE, &nAppliedState );