4.1.23. cmmCfgSetFilterAB¶
SYNOPSYS¶
- VT_I4 cmmCfgSetFilterAB(
[in] VT_I4 Channel, [in] VT_I4 Target, [in] VT_I4 IsEnable )
DESCRIPTION¶
cmmCfgSetFilterAB() 함수는 EA/EB(Encoder Feedback) 신호와 PA/PB(Manual Pulsar) 신호의 입력 회로에 입력 필터 적용을 위해 설정 혹은 해당 설정 매개변수를 반환 하는 함수입니다. 필터를 적용하게 되면 펄스의 폭이 308 ns 보다 작은 펄스는 노이즈로 간주되어서 필터됩니다. 이는 EA/EB 신호 또는 PA/PB 신호의 입력에 대해서 비교적 노이즈에 강한 처리를 할 수 있도록 합니다.
정리하자면, 노이즈 필터를 적용하게 되면 3.25 MHz 이상의 주파수를 가지는 펄스는 노이즈로 간주되므로 무시되어 결과적으로 정상적인 처리가 될 수 있습니다.
필터의 적용 여부는 EA/EB 신호와 PA/PB 신호에 대하여 각각 서로 다르게 설정할 수 있으며, 이는 Target 매개 변수를 통해서 함수의 적용 대상을 구분합니다.
cmmCfgSetFilterAB() 함수는 EA/EB 입력회로 또는 PA/PB 입력회로에 필터를 적용하는 지에 대하여 현재 장치에 설정된 상태를 읽어 들이는 함수입니다.
PARAMETER¶
Channel : 축(채널) 번호. 축번호는 상수값으로 [cmX1] 부터 0 번째 채널을 기준 채널로 임의의 채널을 설정할 수 있습니다.
Target : 함수의 적용 대상을 결정합니다. 이 매개 변수(媒介變數)에 적용 가능한 값은 다음과 같습니다.
Value |
Meaning |
---|---|
0 (cmAB_ENC) |
이 함수의 적용 대상이 EA/EB 신호임을 의미합니다. |
1 (cmAB_PULSAR) |
이 함수의 적용 대상이 PA/PB 신호읨을 의미합니다. |
IsEnable : cmmCfgSetFilterAB 함수의 인자이며, 필터로직의 적용 여부를 설정합니다.
Value |
Meaning |
---|---|
0[초기값] |
Filter disable |
1 |
Filter Enable |
RETURN VALUE¶
Value |
Meaning |
---|---|
음수 |
수행 실패 |
cmERR_NONE |
수행 성공 |
REFERENCE¶
필터 로직 적용이 Enable 되면 3.25 MHz 이상의 주파수를 가지는 펄스는 노이즈로 간주되어서 카운트되지 않습니다.
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 | C/C++
#include “Cmmsdk.h”
#include “CmmsdkDef.h”
void OnSetNoiseFilterAB ()
{
long nAxisNo = 1; // Noise Filter 기능을 적용할 대상 축 선택.
long nFilterEnable; // Noise Filter 기능 활성 상태 정보.
/* EA/EB, PA/PB 신호 입력 회로에 노이즈 필터 기능 활성 여부를 확인 후,
비활성 상태이면 활성 상태로 설정합니다. */
// EA/EB 신호 입력 회로에 노이즈 필터 기능 적용
if (cmmCfgGetFilterAB ( nAxisNo, cmAB_ENC, &nFilterEnable ) == cmERR_NONE )
{
if ( nFilterEnable != cmTRUE )
{
// EA/EB Noise Filter Enable
cmmCfgSetFilterAB ( nAxisNo, cmAB_ ENC, cmTRUE );
}
}
// PA/PB 신호 입력 회로에 노이즈 필터 기능 적용
if (cmmCfgGetFilterAB ( nAxisNo, cmAB_ PULSAR, &nFilterEnable ) == cmERR_NONE )
{
if ( nFilterEnable != cmTRUE )
{
// PA/PB Noise Filter Enable
cmmCfgSetFilterAB ( nAxisNo, cmAB_PULSAR, cmTRUE );
}
}
}
|
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 | Visual Basic
Private Sub OnSetNoiseFilterAB ()
Dim nAxisNo As Long ‘ Noise Filter 기능을 적용할 대상 축 선택.
Dim nFilterEnable As Long ‘ Noise Filter 기능 활성 상태 정보.
nAxisNo = 1
‘ EA/EB, PA/PB 신호 입력 회로에 노이즈 필터 기능 활성 여부를 확인 후,
‘ 비활성 상태이면 활성 상태로 설정합니다.
‘ EA/EB 신호 입력 회로에 노이즈 필터 기능 적용
If cmmCfgGetFilterAB ( nAxisNo, cmAB_ENC, nFilterEnable ) = cmERR_NONE Then
If nFilterEnable <> cmTRUE Then
‘ EA/EB Noise Filter Enable
Call cmmCfgSetFilterAB ( nAxisNo, cmAB_ENC, cmTRUE )
End If
End If
‘ PA/PB 신호 입력 회로에 노이즈 필터 기능 적용
f cmmCfgGetFilterAB ( nAxisNo, cmAB_PULSAR, nFilterEnable ) = cmERR_NONE Then
If nFilterEnable <> cmTRUE Then
‘ PA/PB Noise Filter Enable
Call cmmCfgSetFilterAB ( nAxisNo, cmAB_PULSAR, cmTRUE )
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 | Delphi
procedure OnSetNoiseFilterAB ();
var
nAxisNo : LongInt; // Noise Filter 기능을 적용할 대상 축 선택.
nFilterEnable : LongInt; // Noise Filter 기능 활성 상태 정보.
begin
nAxisNo := 1;
{ EA/EB, PA/PB 신호 입력 회로에 노이즈 필터 기능 활성 여부를 확인 후,
비활성 상태이면 활성 상태로 설정합니다. }
// EA/EB 신호 입력 회로에 노이즈 필터 기능 적용
if cmmCfgGetFilterAB ( nAxisNo, cmAB_ENC, @nFilterEnable ) = cmERR_NONE then
begin
if nFilterEnable <> cmTRUE then
begin
// EA/EB Noise Filter Enable
cmmCfgSetFilterAB ( nAxisNo, cmAB_ENC, cmTRUE );
end;
end;
// PA/PB 신호 입력 회로에 노이즈 필터 기능 적용
if cmmCfgGetFilterAB ( nAxisNo, cmAB_PULSAR, @nFilterEnable ) = cmERR_NONE then
begin
if nFilterEnable <> cmTRUE then
begin
// PA/PB Noise Filter Enable
cmmCfgSetFilterAB ( nAxisNo, cmAB_PULSAR, cmTRUE );
end;
end;
end;
|
See also