AioSetCntFilter


機能

カウンタ入力信号のフィルタ設定を行います。

書式

Ret = AioSetCntFilter ( Id , CntChannel , Signal , Value )

引数

Id [ C, C++: short ] [ Python: ctypes.c_short ]
AioInit 関数で取得したデバイスIDを指定します。

CntChannel [ C, C++: short ] [ Python: ctypes.c_short ]
カウンタのチャネルを設定します。
現在設定できるのは-1のみで、設定は全チャネルに対して行われます。

Signal [ C, C++: short ] [ Python: ctypes.c_short ]
フィルタを設定する入力信号を指定します。
現在設定できるのは-1のみです。

入力信号

全ての信号

-1

Value [ C, C++: float ] [ Python: ctypes.c_float ]
フィルタ時間を設定します。

フィルタ時間

0(未使用)

1

128

16000

戻り値

Ret [ C, C++: long ] [ Python: ctypes.c_long ]

戻り値

内容

0

正常終了

7

スタンバイモードから復帰したため、AioResetDevice関数を実行してください

10001

無効なIDが指定されました
関数に指定するIDは、AioInitで取得したIDを使用してください。

10002

ドライバを呼び出せません
始めにAioInit関数を実行しください。

15120

CntChannelの値が関数の指定範囲外です

15121

Signalの値が関数の指定範囲外です

15122

Valueの値が関数の指定範囲外です

20001

使用しているデバイスではこの関数を使用することができません

20002

デバイスが動作中のため実行できません
この関数を使用するには、カウンタ動作が停止している必要があります。

20003

他のプロセスがデバイスを使用しているため、実行できません
他のプロセスがデバイスを使用しているときは、マルチプロセス対応関数以外実行できません。

25120

CntChannelの値がデバイスの指定範囲外です

25121

Valueの値が使用しているデバイスの指定範囲外です

25123

Signalの値が使用しているデバイスの指定範囲外です

初期値

すべての信号線に関して、フィルタ設定なし

説明

フィルタの設定を行うことにより、下の図のような高周波成分(主にノイズやチャタリング等)を取り除くことができます。

フィルタ設定時間の値が大きいほどノイズやチャタリングの影響を防ぐ事ができますが、ON-OFFの切り替わりの遅延時間も大きくなります。

カウンタ機能を持たないデバイスでは使用できません。
デバイスが動作中の場合、この関数は実行できません。

デバイス別仕様

 AIO-163202F-PE
ADA16-32/2(PCI)F

チャネル単位での設定はできません。CntChannel = -1固定です。
チャネルの指定に関係なく、設定は全チャネルに対して行われます。
設定可能なValueは0、1、128、16000です。

AI-1664UG-PE
AIO-163202G-PE
AIO-163202UG-PE
AIO-123202G-PE
AIO-123202UG-PE

チャネル単位での設定はできません。CntChannel = -1固定です。

チャネルの指定に関係なく、設定は全チャネルに対して行われます。

設定可能なValueは0、0.125、0.25、0.5、1.0、2.0、4.0、8.0、16.0、32.0、64.0、128.0、256.0、512.0、1024.0、2048.0、4096.0、8192.0、16000.0です。

 

フィルタ時間ごとにデジタル入力信号がサンプリングされ、連続して4回分のHigh(またはLow)が検出されると、入力回路部に伝えます。

そのため、設定したフィルタ時間の4回分、信号が遅延します。

AIO-160802L-LPE
ADA16-8/2(LPCI)L
ADAI16-8/2(LPCI)L
AIO-160802LI-PE

CntChannel = -1固定です。
設定可能なValueは0または1です。

AI-1616L-LPE
AD16-64(LPCI)LA
AD16-16(LPCI)L
ADI16-16(LPCI)L
AI-1616LI-PE
AI-1664LA-LPE

CntChannel = -1固定です。
設定可能なValueは0または1です。

AO-1604L-LPE
DA16-16(LPCI)L
DA16-8(LPCI)L
DA16-4(LPCI)L
DAI16-4(LPCI)L
AO-1604LI-PE
AO-1608L-LPE
AO-1616L-LPE

CntChannel = -1固定です。
設定可能なValueは0または1です。

AIO-163202FX-USB

チャネル単位での設定はできません。CntChannel = -1固定です。
チャネルの指定に関係なく、設定は全チャネルに対して行われます。
設定可能なValueは0、1、128、16000です。

AIO-121602LN-USB
AIO-120802LN-USB

CntChannel = -1固定です。
設定可能なValueは0、1、128、16000です。

AI-1664LAX-USB

CntChannel = -1固定です。
設定可能なValueは0または1です。

AO-1604LX-USB

CntChannel = -1固定です。
設定可能なValueは0または1です。

使用例

全チャネルの全ての信号に対して、1usecのフィルタを設定します。

C, C++

long Ret;
Ret = AioSetCntFilter ( Id , -1 , -1 , 1.0 );
 

Python

Ret = ctypes.c_long()
Ret.value = caio.AioSetCntFilter ( Id , -1 , -1 , 1.0 )