11.1.30. cmcPmCfgSetUnitDist¶
SYNOPSYS¶
VT_I4 cmcPmCfgSetUnitDist ([in] VT_I4 BoardID, [in] VT_I4 NodeId, [in] VT_I4 Channel, [in] VT_R8 UnitDist )
DESCRIPTION¶
cmcPmCfgSetUnitDist() 함수는 논리적 단위 거리에 대한 펄스 수를 설정합니다. 여기서 논리적 단위 거리라 함은 Move함수에서 사용하는 거리 또는 위치에 대한 단위량을 의미합니다. 이 함수를 사용하여 특별히 지정하지 않는 경우에는 초기값인 „1‟ 로 사용됩니다.
이 함수의 사용과 호출에 있어, 제공된 ㈜커미조아의 함수 헤더 Visual Basic 에서는 함수의 첨두어 cmc 가 붙지 않습니다.
PARAMETER¶
▶ BoardID : 사용자가 설정한 디바이스(보드) ID.
▶ NodeId : 노드 번호. 노드 번호는 3부터 시작합니다.
▶ Axis : 축 번호. 통합 축으로 관리되는 축 번호를 의미하며, 상수 값으로 0 (Zero Based) 이상, 최대 통합 축 개수 - 1 이하의 값을 축 번호로 설정할 수 있습니다.
▶ UnitDist : 논리적 거리 1을 이동하기 위해서 출력되어야 하는 펄스 수를 설정 혹은 반환합니다.
RETURN VALUE¶
Value |
Meaning |
---|---|
음수 |
수행 실패 |
0(ERR_NONE) |
수행 성공 |
REFERENCE¶
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 );
|