4.2.12. cemCfgUnitDist_Set


SYNOPSIS

VT_I4 cemCfgUnitDist_Set(
  VT_I4 Axis,
  VT_R8 UnitDist
)

DESCRIPTION

  • 논리적 단위 거리에 대한 펄스 수를 설정합니다. 여기서 논리적 단위 거리라 함은 이송 함수에서 사용하는 거리 또는 위치에 대한 단위량을 의미합니다. 이 함수를 사용하여 논리적 단위 거리를 지정하지 않는 경우에는 초기값인 ‘1’ 로 사용됩니다..

PARAMETER

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

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

RETURN VALUE

Value

Meaning

음수

수행 실패

0 (ceERR_NONE)

수행 성공

Note

Unit distance & Unit speed

모션컨트롤러에서 이송거리는 기본적으로는 출력 펄스 수에 의해 결정되고, 이송 속도는 출력 펄스 주파수

에 의해서 결정됩니다. 따라서 이송거리를 물리적인 거리 단위로 하기 위해서는 매번 원하는 물리적인 거리

를 이송하기 위해서 필요한 펄스의 수를 계산해야 합니다. 하지만, ㈜커미조아 모션컨트롤러는 모든 이송

함수와 속도 설정 함수에서 사용되는 논리적 거리와 논리적 속도를 사용자가 정의할 수 있도록 하고 있으

며, 이것을 정의하는 것이 “Unit distance”와 “Unit speed” 입니다. 일반적으로 “Unit distance” Du 는 다

음과 같이 계산하면 됩니다.

Pr : 모터 1 회전에 필요한 펄스 수. (모터의 Command 분해능)

Lr : 모터 1 회전시에 이동되는 기구물의 거리.

결과적으로 “Unit distance” 에 설정해야 하는 값은 논리적 거리 ‘1’을 이동하기 위해서 필요한 출력 펄스의

수가 됩니다. 그리고 특별한 경우가 아니면 “Unit speed” 는 “Unit distance” 와 같은 값을 설정하면

됩니다. 하지만 “Unit speed”와 “Unit distance”는 필요에 따라 서로 다른 단위를 사용할 수 있습니다.

(자세한 내용은 SW 메뉴얼 참고)

Example

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
 C/C++
 #include “ceSDK.h”
 #include “ceSDKDef.h”

long nAxisNo = 1; // Unit Distance 를 설정할 축을 선택합니다.
void OnSetUnitDist ()
{
/*
모터 1 회전시 이동거리 (Lr) = 5mm, 모터 Command 분해능(Pr) = 10000 pulse/rev 인 기구물이 있다면
Un it distance(Du) = Pr/Lr = 10000/5 = 2000
Unit speed(Vu) = 2000
따라서, ‘Unit Distance’ 와 ‘Unit Speed’ 를 2000 으로 설정하면 모든 이송 함수에서 mm 거리단위에 대응하는
값을 입력할 수 있습니다.

*/ cemCfgUnitDist_Set ( nAxisNo, 2000 ); // Unit Distance 를 2000 으로 설정 cemCfgUnitSpeed_Set ( nAxisNo, 2000 ); // Unit Speed 를 2000 으로 설정 } void OnMove () { // 속도 = 100(mm/s), 가/감속도 = 1000(mm/s^2)으로 설정합니다. cemCfgSpeedPattern_Set ( nAxisNo, cemSMODE_T, 100, 1000, 1000 ); // (+)방향으로 20mm 이송합니다. (실제는 20 * 2000 = 40000 펄스가 출력됩니다.) cemSxMoveStart ( nAxis, 20 ); }