cemCfgFilterAB_Get


SYNOPSYS

VT_I4 cemCfgFilterAB_Get ( [in] VT_I4 Channel, [in] VT_I4 Target, [in] VT_I4 IsEnable )

DESCRIPTION

  • cemCfgFilterAB_Set()/cemCfgFilterAB_Get() 함수는 EA/EB(Encoder Feedback) 신호와 PA/PB(Manual Pulsar) 신호의 입력 회로에 노이즈 필터 기능의 활성/비활성 상태를 설정/반환합니다.

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

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

PARAMETER

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

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

Value

Meaning

0 (cemAB_ENC)

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

1 (cemAB_PULSAR)

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

▶ IsEnable : 필터 로직의 적용 여부를 설정 혹은 반환합니다.

Value

Meaning

0 (CE_FALSE) [Default]

Noise Filter disable.

1 (CE_TRUE)

Noise Filter enable.

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
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
 C/C++

 #include “ceSDK.h”
 #include “ceSDKDef.h”

 void OnSetNoiseFilterAB ()
 {
 long nAxisNo = 1;  // Noise Filter 기능을 적용할 대상 축 선택.
 long nFilterEnable; // Noise Filter 기능 활성 상태 정보.


 /* EA/EB, PA/PB 신호 입력 회로에 노이즈 필터 기능 활성 여부를 확인 후,
 비활성 상태이면 활성 상태로 설정합니다. */

 // EA/EB 신호 입력 회로에 노이즈 필터 기능 적용
 if ( cemCfgFilterAB_Get ( nAxisNo, cemAB_ENC, &nFilterEnable ) == ceERR_NONE )
 {
   if ( nFilterEnable != CE_TRUE )
   {
   // EA/EB Noise Filter Enable
   cemCfgFilterAB_Set ( nAxisNo, cemAB_ ENC, CE_TRUE );
   }
 }

 // PA/PB 신호 입력 회로에 노이즈 필터 기능 적용
 if ( cemCfgFilterAB_Get ( nAxisNo, cemAB_ PULSAR, &nFilterEnable ) == ceERR_NONE )
 {
   if ( nFilterEnable != CE_TRUE )
   {
   // PA/PB Noise Filter Enable
   cemCfgFilterAB_Set ( nAxisNo, cemAB_PULSAR, CE_TRUE );
   }
 }
 }
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
 Visual Basic

 Private Sub OnSetNoiseFilterAB ()

 Dim nAxisNo As Long  ‘ Noise Filter 기능을 적용할 대상 축 선택.
 Dim nFilterEnable As Long  ‘ Noise Filter 기능 활성 상태 정보.

 long nAxisNo = 1


 ‘ EA/EB, PA/PB 신호 입력 회로에 노이즈 필터 기능 활성 여부를 확인 후,
 ‘ 비활성 상태이면 활성 상태로 설정합니다.

 ‘ EA/EB 신호 입력 회로에 노이즈 필터 기능 적용
 If cemCfgFilterAB_Get ( nAxisNo, cemAB_ENC, nFilterEnable ) = ceERR_NONE Then

   If nFilterEnable <> CE_TRUE Then
 ‘ EA/EB Noise Filter Enable
   Call cemCfgFilterAB_Set ( nAxisNo, cemAB_ ENC, CE_TRUE )
   End If
 End If

 ‘ PA/PB 신호 입력 회로에 노이즈 필터 기능 적용
 If cemCfgFilterAB_Get ( nAxisNo, cemAB_ PULSAR, nFilterEnable ) = ceERR_NONE Then

   If nFilterEnable <> CE_TRUE Then
   ‘ PA/PB Noise Filter Enable
   Call cemCfgFilterAB_Set ( nAxisNo, cemAB_PULSAR, CE_TRUE )
   End If
 End If

End Sub

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
 Delphi

 procedure OnSetNoiseFilterAB ();
 var
 nAxisNo : LongInt   // Noise Filter 기능을 적용할 대상 축 선택.
 nFilterEnable : LongInt  // Noise Filter 기능 활성 상태 정보.

 begin
 nAxisNo := 1;


 { EA/EB, PA/PB 신호 입력 회로에 노이즈 필터 기능 활성 여부를 확인 후,
 비활성 상태이면 활성 상태로 설정합니다. }

 // EA/EB 신호 입력 회로에 노이즈 필터 기능 적용
 if cemCfgFilterAB_Get ( nAxisNo, cemAB_ENC, @nFilterEnable ) = ceERR_NONE then
 begin
   if nFilterEnable <> CE_TRUE then
   begin
   // EA/EB Noise Filter Enable
   cemCfgFilterAB_Set ( nAxisNo, cemAB_ ENC, CE_TRUE );
   end;
 end;

 // PA/PB 신호 입력 회로에 노이즈 필터 기능 적용
 if cemCfgFilterAB_Get ( nAxisNo, cemAB_ PULSAR, @nFilterEnable ) = ceERR_NONE then
 begin
   if nFilterEnable <> CE_TRUE then
   begin
   // PA/PB Noise Filter Enable
   cemCfgFilterAB_Set ( nAxisNo, cemAB_PULSAR, CE_TRUE );
   end;
 end;

 end;