ステップ6:データの設定

転送方式にデバイスバッファモードを使用する場合、AioSetAoSamplingData関数またはAioSetAoSamplingDataEx関数を使用して、出力データを設定します。
AioSetAoSamplingData関数は変換データをバイナリ値で設定し、AioSetAoSamplingDataEx関数は変換データを電圧または電流値で設定します。

 

出力データの設定

Ret = AioSetAoSamplingData ( Id , AoSamplingTimes , AoData )

Ret = AioSetAoSamplingDataEx ( Id , AoSamplingTimes , AoData )

AoSamplingTimesにはジェネレーティング回数を設定します。
ジェネレーティング回数は変換の行われる回数を意味し、変換に使用するチャネル数には無関係です。

デバイス(ドライバ)メモリは256×1024データ分の有限メモリであるため、メモリに格納可能なジェネレーティング総数は使用するチャネルによって変わります。

チャネル数

メモリに格納可能な最大ジェネレーティング数

1

256×1024/1 = 262144

2

256×1024/2 = 131072

 

8

256×1024/8 = 32768

 

16

256×1024/16 = 16384

 

 

AoDataには、出力データを格納した配列のアドレスを指定します。
AioSetAoSamplingDataの場合、アナログ出力データをバイナリで指定し、範囲は12ビット分解能デバイスの場合で0~4095、16ビット分解能デバイスの場合で0~65535です。
AioSetAoSamplingDataExの場合、アナログ出力データを電圧または電流値で指定します。

配列は必ずAioSetAoChannels関数で設定した[ チャネル数×ジェネレーティング回数 ]分のサイズを確保してください。
出力データは以下の順序で設定します。

出力方式がトランスペアレント出力の場合、出力は0, 1, 2,...の順で行われます。
出力方式が同期出力の場合、データは同時に出力されます。

 

AioSetAoSamplingDataAioSetAoSamplingDataEx関数は、使用するメモリ形式によって使用方法が異なります。

FIFOメモリでの設定方法

RINGメモリでの使用方法

 

電圧からバイナリ値への変換

出力データはバイナリ値で指定します。
電圧値からバイナリ値への変換は以下の式で行います。

バイナリ値 = 分解能 × ( 電圧値 - レンジの最小値 ) ÷ ( レンジの最大値 - レンジの最小値 )
分解能は12ビットの場合4095、16ビットの場合65535です。

例)アナログ出力レンジ:±5V、分解能:12ビット、2.5Vをバイナリ値に変換
  バイナリ値 = 4095 × ( 2.5 - (-5) ) ÷ ( 5 - (-5) ) ≒ 3071

電流からバイナリ値への変換

出力データはバイナリ値で指定します。
電流値からバイナリ値への変換は以下の式で行います。

バイナリ値 = 分解能 × ( 電流値 - レンジの最小値 ) ÷ ( レンジの最大値 - レンジの最小値 )
分解能は12ビットの場合4096、16ビットの場合65536です。

例)アナログ出力レンジ:4~20mA、分解能:12ビット、10mAをバイナリ値に変換
バイナリ値 = 4096 × ( 10.0 - 4 ) ÷ (20 -4 ) = 1536