ステップ15:データ取得

デバイスバッファを使用する場合、関数を実行して変換データを取得する必要があります。

AioGetAiSamplingData関数またはAioGetAiSamplingDataEx関数を使用して、変換データを取得します。
AioGetAiSamplingData関数は変換データをバイナリ値で取得し、AioGetAiSamplingDataEx関数は変換データを電圧または電流値で取得します。

 

変換データの取得

Ret = AioGetAiSamplingData ( Id , AiSamplingTimes , AiData )

Ret = AioGetAiSamplingDataEx ( Id , AiSamplingTimes , AiData )

AiSamplingTimesにはサンプリング回数を設定します。
サンプリング回数は変換の行われる回数を意味し、変換に使用するチャネル数には無関係です。

AiDataには取得する変換データを格納する配列のポインタを指定します。
AioGetAiSamplingDataの場合、アナログ入力データはバイナリ値で格納され、範囲は12ビット分解能デバイスの場合で0~4095、16ビット分解能デバイスの場合で0~65535です。
AioGetAiSamplingDataExの場合、アナログ入力データは電圧または電流値で格納されます。

この配列は、AiSamplingTimes × チャネル数分の要素が必要です。

チャネル数

配列AiDataに必要な要素数

1

AiSamplingTimes × 1

2

AiSamplingTimes × 2

 

8

AiSamplingTimes × 8

 

16

AiSamplingTimes × 16

AiDataの配列に取り込まれる変換データは以下の形式で格納されます。

 

変換データがメモリのどの場所から取り込まれるかは、使用するメモリ形式によって方法が異なります。

FIFOメモリでの取得方法

RINGメモリでの取得方法

 

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

AioGetAiSamplingData関数を使用した場合、入力データはバイナリ値で格納されています。
バイナリ値へから電圧値の変換は以下の式で行います。

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

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