AioSetControlFilter


機能

外部制御信号に対して、デジタルフィルタを設定します。

書式

Ret = AioSetControlFilter ( Id , Signal , Value )

引数

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

Signal [ C, C++: short ] [ Python: ctypes.c_short ]
フィルタを設定する外部制御信号を指定します。
AI-1204Z-PE のZ-シリーズデバイスでは、0、1、2、-1のいずれかが設定できます。それ以外のデバイスでは、-1を設定してください。

外部制御信号

マクロ

アナログ入力外部クロック

AIO_AIF_CLOCK

0

アナログ入力外部開始トリガ

AIO_AIF_START

1

アナログ入力外部停止トリガ

AIO_AIF_STOP

2

アナログ出力外部クロック(予約)

AIO_AOF_CLOCK

3

アナログ出力外部開始トリガ(予約)

AIO_AOF_START

4

アナログ出力外部停止トリガ(予約)

AIO_AOF_STOP

5

上記全ての制御信号

AIO_ALLF

-1

Value [ C, C++: float ] [ Python: ctypes.c_float ]
フィルタ時間を以下の範囲からusec単位で設定します。

フィルタ時間

0(未使用)

0.05

1

10

100

128

16000

戻り値

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

戻り値

内容

0

正常終了

7

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

10001

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

10002

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

10340

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

10341

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

20001

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

20002

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

20003

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

20340

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

20341

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

初期値

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

説明

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

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

デバイスが動作中の場合、この関数は実行できません。

外部制御信号の入力端子がデジタル入力と共通になっているデバイスは、この関数ではデジタルフィルタを設定できません。
AioSetDiFilter関数を使用してください。

デバイス別仕様

AI-1204Z-PE

設定可能なValueは0、0.05、1、10、100です。

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

設定可能な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-163202F-PE
ADA16-32/2(PCI)F

設定可能なValueは0、1、128、16000です。

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

設定可能なValueは0または1です。

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

設定可能なValueは0または1です。

AO-1604L-LPE
DA16-16(LPCI)L
DA16-8(LPCI)L
DA16-4(LPCI)L
DAI16-4(LPCI)L

設定可能なValueは0または1です。

AIO-163202FX-USB
AIO-121602LN-USB
AIO-120802LN-USB

設定可能なValueは0、1、128、16000です。

AI-1664LAX-USB

設定可能なValueは0または1です。

AO-1604LX-USB

設定可能なValueは0または1です。

AI-1608AY-USB
AIO-160802AY-USB
AI-1608GY-USB
AIO-160802GY-USB

設定可能なValueは0または1です。

使用例

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

C, C++

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

Python

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