AioSetCntPresetReg


機能

比較カウント一致後にロードされるプリセット値を設定します。

書式

Ret = AioSetCntPresetReg ( Id , CntChannel , PresetNumber , PresetData , Flag )

引数

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

CntChannel [ C, C++: short ] [ Python: ctypes.c_short ]
カウンタのチャネルを設定します。

PresetNumber [ C, C++: long ] [ Python: ctypes.c_long ]
設定するプリセットデータの総数を指定します。

PresetData [ C, C++: long * ] [ Python: ctypes.POINTER(ctypes.c_long) ]
カウンタのプリセット(初期値)を格納した配列のポインタを指定します。
デバイスにより設定できる範囲は異なります。

Flag [ C, C++: short ] [ Python: ctypes.c_short ]
プリセットデータ配列を繰り返し設定するかどうかを指定します。

0

繰り返し設定なし

1

繰り返し設定あり

繰り返し設定ありの場合、配列の最後のプリセットが設定された次回の比較カウント一致で、再び配列の先頭データがプリセットされます。
繰り返し設定無しの場合、配列の最後のプリセットが設定された以降の比較カウント一致では、データはプリセットされません。

戻り値

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

戻り値

内容

0

正常終了

7

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

10001

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

10002

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

15020

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

15021

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

15022

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

15023

PresetDataのポインタがNULLです

20001

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

20002

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

20003

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

25020

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

25021

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

初期値

未使用

説明

比較カウント一致後のカウント値は、この関数で設定された値がロードされます。
比較カウント一致が発生するたびに、配列で設定された値が順番にロードされます。

比較カウント一致後にプリセットしたいデータが固定値の場合、PresetNumber = 1、Flag = 1としてください。

この機能を使用するには、AioSetCntComparisonMode関数で動作モードにプリセットカウント値のロードを設定する必要があります。
カウンタ機能を持たないデバイスでは使用できません。
デバイスが動作中の場合、この関数は実行できません。

デバイス別仕様

AI-1664UG-PE
AIO-163202G-PE
AIO-163202UG-PE
AIO-123202G-PE
AIO-123202UG-PE
AIO-163202F-PE
ADA16-32/2(PCI)F

設定可能なPresetNumberは1~255(FFH)です。
設定可能なPresetDataは0~4294967295(FFFFFFFFH)です。

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

AI-1616L-LPE
AD16-16(LPCI)L
ADI16-16(LPCI)L
DA16-16(LPCI)L
DA16-8(LPCI)L
AO-1604L-LPE
DA16-4(LPCI)L
DAI16-4(LPCI)L
AI-1616LI-PE
AI-1664LA-LPE
AO-1604LI-PE
AO-1608L-LPE
AO-1616L-LPE

設定可能なPresetNumberは1のみです。
設定可能なPresetDataは0のみです。

AIO-163202FX-USB

設定可能なPresetNumberは1~255(FFH)です。
設定可能なPresetDataは0~4294967295(FFFFFFFFH)です。

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

設定可能なPresetNumberは1~255(FFH)です。
設定可能なPresetDataは0~4294967295(FFFFFFFFH)です。

AI-1664LAX-USB

設定可能なPresetNumberは1~255(FFH)です。
設定可能なPresetDataは0~4294967295(FFFFFFFFH)です。

AO-1604LX-USB

設定可能なPresetNumberは1~255(FFH)です。
設定可能なPresetDataは0~4294967295(FFFFFFFFH)です。

使用例

0チャネルに、1番目のプリセットデータ10000を繰り返しで設定します。

C, C++

long Ret;
long PresetData;
PresetData = 10000;
Ret = AioSetCntPresetReg ( Id , 0 , 1 , &PresetData , 1 );
 

Python

Ret = ctypes.c_long()
PresetData = ctypes.c_long()
PresetData.value = 10000
Ret.value = caio.AioSetCntPresetReg ( Id , 0 , 1 , ctypes.byref(PresetData) , 1 )
 

関連項目

AioSetCntComparisonMode