デバイスバッファを使用する場合、関数を実行して変換データを取得する必要があります。
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の配列に取り込まれる変換データは以下の形式で格納されます。
変換データがメモリのどの場所から取り込まれるかは、使用するメモリ形式によって方法が異なります。
バイナリ値から電圧への変換
AioGetAiSamplingData関数を使用した場合、入力データはバイナリ値で格納されています。
バイナリ値へから電圧値の変換は以下の式で行います。
電圧値 = バイナリ値 × ( レンジの最大値 - レンジの最小値 ) ÷ 分解能 + レンジの最小値
分解能は12ビットの場合4096、16ビットの場合65536です。
例)アナログ出力レンジ:± 5V、分解能:12ビット、バイナリ値3072を電圧値に変換
電圧値 = 3072 × ( 5 - (-5) ) ÷ 4096 + (-5)= 2.5V