11.1.19. cmlPmCfgSetFilterAB


SYNOPSYS

VT_I4 cmlPmCfgSetFilterAB ([in] VT_I4 BoardID, [in] VT_I4 NodeId, [in] VT_I4 Channel,
[in] VT_I4 Target, [in] VT_I4 IsEnable )

DESCRIPTION

  • cmlPmCfgSetFilterAB()/cmlPmCfgGetFilterAB() 함수는 EA/EB(Encoder Feedback) 신호와 PA/PB(Manual Pulsar) 신호의 입력 회로에 필터 적용을 위해 설정 혹은 해당 설정 매개변수를 반환하는 함수입니다.

  • 필터를 적용하게 되면 펄스의 폭이 308ns 보다 작은 펄스는 노이즈로 간주되어서 필터됩니다. 이는 EA/EB 신호 또는 PA/PB 신호의 입력에 대해서 비교적 노이즈에 강한 처리를 할 수 있도록 합니다. 정리하자면, 노이즈 필터를 적용하게 되면 3.25MHz 이상의 주파수를 가지는 펄스는 노이즈로 간주되므로 무시되어 결과적으로 정상적인 처리가 될 수 있습니다.

  • 필터의 적용 여부는 EA/EB 신호와 PA/PB 신호에 대하여 각각 서로 다르게 설정할 수 있으며, 이는 Target 매개 변수를 통해서 함수의 적용 대상을 구분합니다.

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

PARAMETER

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

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

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

▶ Target : 함수의 적용 대상을 결정합니다. 이 매개변수에 적용 가능한 값은 다음과 같습니다.

Value

Meaning

0 (ccmlAB_ENC)

함수의 적용 대상이 EA/EB 신호임을 의미합니다.

1 (ccmlAB_PULSAR)

함수의 적용 대상이 PA/PB 신호임을 의미합니다.

REFERENCE

  • 필터 로직 적용이 Enable 되면 3.25 MHz 이상의 주파수를 가지는 펄스는 노이즈로 간주되어서 카운트되지 않습니다.

RETURN VALUE

Value

Meaning

음수

수행 실패

0(ERR_NONE)

수행 성공

EXAMPLE

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
   C/C++
   #include “ComiMLink2_SDK.h”
   #include “ComiMLink2_SDK_Def.h”
   long nChannel = 0;//0번 축을 선택합니다.
   Long BoardID = 0;
   long nFilterABEnable = 0;
   //0번 축의 EA/EB 신호 입력 회로에 필터를 적용합니다.
   cmlPmCfgSetFilterAB (BoardID, 0, nChannel, ccmlAB_ENC, cmlTRUE );
   //0번 축의 PA/PB신호 입력 회로에 필터를 적용합니다.
   cmlPmCfgSetFilterAB (BoardID, 0, nChannel, ccmlAB_PULSAR, cmlTRUE );
   //0번 축의 EA/EB 신호 입력 회로의 필터 적용 여부를 확인합니다.
   cmlPmCfgGetFilterAB (BoardID, 0, nChannel, ccmlAB_ENC, &nFilterABEnable );
   //0번 축의 PA/PB신호 입력 회로에 필터 적용 여부를 확인합니다.
   cmlPmCfgGetFilterAB (BoardID, 0, nChannel, ccmlAB_PULSAR, &nFilterABEnable );