4.1.3. cmsCfgGetSoftLimit


SYNOPSYS

VT_I4 cmsCfgGetSoftLimit ([in] VT_I4 BoardId, [in] VT_I4 Axis, [out] VT_PI4 IsEnable,
[out] VT_PR8 LimitN, [out] VT_PR8 LimitP)

DESCRIPTION

  • 이 함수는 소프트웨어 리밋(Limit) 기능을 활성 또는 비활성화 하고 소프트웨어 리밋 범위를 설정합니다. 소프트웨어적인 Limit 은 리밋센서의 설치가 용이하지 않을 때 안전성을 위하여 소프트웨어적인 리밋을 설정하는 것입니다. 소프트웨어적인 Limit 은 Command pulse 카운터의 절대값이 지정한 +/- Limit 값보다 같거나 크게 되면 모션을 자동 정지(停止)하도록 합니다.

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

PARAMETER

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

▶ Axis : 축(채널) 번호. 축 번호는 0 부터 시작합니다.

▶ IsEnable : cmsCfgGetSoftLimit 함수의 인자이며, 소프트웨어 리밋(Limit) 기능의 활성화 여부를 반환합니다.

▶ LimitN : cmsCfgGetSoftLimit 함수의 인자이며, (-) 방향 Limit 값을 반환합니다.

▶ LimitP : cmsCfgGetSoftLimit 함수의 인자이며, (+) 방향 Limit 값을 반환합니다.

RETURN VALUE

Value

Meaning

음수

수행 실패

ERR_NONE

수행 성공

REFERENCE

  • S/W Limit 의 설정에는 항상 Unit Distance 의 값이 고려되지 않는 상황에서 문제가 발생할 수 있습니다. 만약 설정한 Unit Distance 값이 1000 으로 설정되어 있다면, 이 값에 입력된 LimitN 값과 LimitP 값이 31Bit 로 표현할 수 있는 정수값을 초과해서는 안됩니다. 이 내용을 식으로 표현하면 다음과 같습니다.

  • Unit Distance * S/W Limit Value < 2,147,483,648(31bit 정수)

  • 위 의미는 결국 Unit Distance 와 S/W Limit 의 변수값이 28bit 정수보다 작아야 한다는 의미입니다. 본 함수의 인자가 Double 형이라고 할지라도 이 점을 반드시 주의해주시기 바랍니다. 만약 이 값이 28Bit 정수보다 크게 되면, 변수의 값이 Overflow 되어 내부에서 Negative Limit 이 Positive Limit 효과를 가져와, 모터의 축이 +/- 방향으로 움직이지 못하는 현상을 발생시킬 수 있습니다.

Warning

소프트웨어 Limit은 논리적으로 하드웨어적인 Limit 과 동일하게 동작합니다. 또한 Negative Limit 과 Positive Limit 같은 Unit Distance를 고려하여, 입력 값의 Overflow 를 주의해야 합니다.