11.1.3. ecmSxCfg_GetUnitDist


SYNOPSIS

t_f64  ecmSxCfg_GetUnitDist(
  t_i32  NetID,
  t_i32  Axis,
  t_i32  *ErrCode
)

DESCRIPTION

  • 이 함수는 논리적 단위 거리에 대한 펄스 수를 설정합니다.

  • 여기서 논리적 단위 거리라 함은 Move 함수에서 사용하는 단위 거리 또는 위치에 대한 펄스 수를 의미합니다.

  • 이 함수를 사용하여 특별히 지정하지 않는 경우에는 논리적 단위 거리에 대한 펄수 수는 초기 값인 ‘1’로 사용됩니다.

PARAMETER

  • NetID : Network 번호

  • Axis : 대상 축 번호.

  • ErrCode : 이 매개 변수를 통하여 현재의 에러 코드를 반환합니다. 단, 이 매개 변수에 NULL을 전달하면 에러 코드를 반환하지 않습니다.

RETURN VALUE

  • 이 리턴값은 논리적 거리 단위가 반환됩니다.

REFERENCE

../../../_images/ecmSxCfg_SetUnitDist_00.jpg
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
Unit distance (Du) = Pr/Lr = 10000/5 = 2000
Unit speed (Vu) = 2000

//따라서, Unit distance"와 "Unit speed"를 2000으로 설정하면 다음과 같이 모든 //이동함수에서 거리의 단위를 mm단위에 해당하는 값으로 입력할 수 있습니다. //

#define NET    0
#define AXIS           0

// 2000/mm
ecmSxCfg_SetUnitDist (NET, AXIS, 2000, NULL);
ecmSxCfg_SetUnitSpeed (NET, AXIS, 2000, NULL);

// 속도=100(mm/s), 가/감속도=1000(mm/s^2) 으로 설정한다. //
ecmSxCfg_SetSpeedPatt (NET, AXIS, ecmSMODE_TRAPE, 0, 0, 100, 1000, 1000);

// (+)방향으로 20mm 이송한다 (실제는 20*2000 = 40000 펄스가 출력됨) //
ecmSxMot_Move (NET, AXIS, 20, NULL);

// (-)방향으로 20mm 이송한다 (실제는 20*2000 = 40000 펄스가 출력됨) //
ecmSxMot_Move) (NET, AXIS, -20, NULL);