11.1.14. cmcPmCfgGetUnitDist


SYNOPSYS

VT_I4 cmcPmCfgGetUnitDist ([in] VT_I4 BoardID,  [in] VT_I4 NodeId, [in] VT_I4 Channel, [out] VT_PR8 UnitDist )

DESCRIPTION

  • cmcPmCfgGetUnitDist() 함수는 논리적 단위 거리에 대한 펄스 수를 반환합니다.

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

PARAMETER

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

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

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

▶ UnitDist : 논리적 거리 1을 이동하기 위해서 출력되어야 하는 펄스 수를 설정 혹은 반환합니다.

RETURN VALUE

Value

Meaning

음수

수행 실패

0(ERR_NONE)

수행 성공

REFERENCE

../../../_images/14-5.jpg

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”
   /*모터 1회전시 이동거리 (Lr) = 5mm
   모터 Command 분해능(Pr) = 10000 pulse/rev
   인 기구물이 있다면
   Unit distance(Du) = Pr/Lr = 10000/5 = 2000
   Unit speed(Vu) = 2000 */
   long nChannel = 0;//0번 축을 선택합니다.
   long BoardID = 0;
   //Unit distance 를 2000으로 설정합니다.
   cmcPmCfgSetUnitDist (BoardID, 3, nChannel, 2000 );
   /*따라서 Unit distance와 Unit speed를 2000으로 설정하면
   다음과 같이 모든 이동함수에서 거리의 단위를 mm단위에 해당하는
   값으로 입력할 수 있습니다.*/
   //속도 = 100(mm/s), 가/감속도 = 1000(mm/s^2)으로 설정합니다.
   cmcPmCfgSetSpeedPattern(BoardID, 3, nChannel, cmcMODE_T, 100, 1000, 1000 );
   //(+)방향으로 20mm 이송합니다. (실제는 20 * 2000 = 40000 펄스가 출력됩니다.)
   cmcPmSxMove(BoardID, 3, nChannel, 20, cmDIR_P );