11.1.31. cmlPmCfgGetUnitDist


SYNOPSYS

VT_I4 cmlPmCfgSetUnitSpeed ([in] VT_I4 BoardID,  [in] VT_I4 NodeId, [in] VT_I4 Channel, [in] VT_R8 UnitSpeed )

DESCRIPTION

  • cmlPmCfgSetUnitSpeed() 함수는 논리적 단위 속도에 대한 실제 펄스 출력속도(PPS)를 설정합니다. 여기서 논리적 단위 속도라 함은 속도 지정함수에서 사용하는 속도 또는 가속도에 대한 단위량을 의미합니다. 이 함수를 사용하여 특별히 지정하지 않는 경우에는 단위 속도에 대한 펄스 출력속도는 „1‟ PPS로 사용됩니다.

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

PARAMETER

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

▶ NodeId : 사용자가 제어하고자 하는 노드 번호.

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

▶ UnitSpeed : 단위 속도에 대한 펄스 출력 속도를 설정 혹은 반환합니다.

RETURN VALUE

Value

Meaning

음수

수행 실패

0(ERR_NONE)

수행 성공

REFERENCE

.- 사용자의 특성에 따라 속도에 대한 단위가 다를 수 있습니다. 즉, 어떤 사용자는 속도 단위를 RPM으로

표현하는 것이 용이할 수 있고 어떤 사용자는 m/sec 로 표현하는 것이 용이할 수 있습니다. cmlPmCfgSetUnitSpeed() 함수는 사용자가 속도의 단위를 결정하도록 하는 함수입니다. 다음의 예를 참고하시기 바랍니다.

  • Ex 1) 1 회전에 필요한 펄스 수가 3600 펄스인 경우에 속도의 단위를 RPM으로 하고자 한다면 Unit Distance 값을 3600/60, 즉 60 PPS 로 설정합니다(여기서 60으로 나누는 것은 RPM은 분당 회전 수 이므로 초당 3600/60 펄스를 출력해야 1분에 3600펄스가 나가기 때문입니다).

  • Ex 2) 1cm 이송에 필요한 펄스 수가 1000 펄스인 경우에 이동량의 단위를 cm/sec 로 하고자 한다면 UnitDist 값을 1000 PPS로 설정합니다.

EXAMPLE

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
   C/C++
   #include “ComiMLink2_SDK.h”
   #include “ComiMLink2_SDK_Def.h”
   //1회전에 3600펄스가 필요한 모터를 사용한다고 가정합니다.
   long nChannel = 0;//0번 축을 선택합니다.
   long BoardID = 0;
   //거리의 단위를 각도(1도)로, 속도의 단위를 rpm으로 설정합니다.
   //1회전에 3600 펄스가 필요하므로 1도 회전을 하기 위해서는 10펄스가 필요합니다.
   cmlPmCfgSetUnitDist(BoardID, 0, nChannel, 10 );
   //단위 속도를 1rpm으로 설정합니다. 3600(pulse) / 60(sec) = 60(pps)
   cmlPmCfgSetUnitSpeed (BoardID, 0, nChannel, 60 );
   /*가속도와 감속도를 각각 200rpm/s, 작업 속도를 100rpm/s로 설정합니다.
   가속및 감속에는 0.5sec가 소요됩니다.*/
   cmlPmCfgSetSpeedPattern(BoardID, 0, nChannel, cmlMODE_T, 100, 200, 200 );
   //모터를 720도 회전 시킵니다. 실제로는 720 * 10 pulse가 출력됩니다.
   cmlPmSxMove(BoardID, 0, nChannel, 720, cmlFALSE );