アナログ入力

指定チャネルのアナログ入力

指定チャネルのアナログ入力には、AioSingleAi関数またはAioSingleAiEx関数を使用します。
AioSingleAi関数は変換データをバイナリ値で取得し、AioSingleAiEx関数は変換データを電圧または電流値で取得します。

Ret = AioSingleAi ( Id , AiChannel , AiData )

Ret = AioSingleAiEx ( Id , AiChannel , AiData )

AiChannelには、アナログ入力を行うチャネルを指定します。
チャネルは0, 1, 2 ,...のように数えますので、例えばアナログ入力の総チャネル数が4チャネルのデバイスの場合、指定できるチャネルは0, 1, 2, 3です。

AiDataには、アナログ入力データを格納する変数のアドレスを指定します。
AioSingleAiの場合、アナログ入力データはバイナリ値で格納され、範囲は12ビット分解能デバイスの場合で0~4095、16ビット分解能デバイスの場合で0~65535です。
AioSingleAiExの場合、アナログ入力データは電圧または電流値で格納されます。

チャネル順序の設定はこの関数には影響しません。

複数チャネルのアナログ入力

指定チャネルのアナログ入力には、AioMultiAi関数またはAioMultiAiEx関数を使用します。
AioMultiAi関数は変換データをバイナリ値で取得し、AioMultiAiEx関数は変換データを電圧または電流値で取得します。

Ret = AioMultiAi ( Id , AiChannels , AiData )

Ret = AioMultiAiEx ( Id , AiChannels , AiData )

AiChannelsには、アナログ入力を行うチャネル数を指定します。
変換されるチャネルの順番は、チャネル変換順序の設定に基づいて行われます。
最終的に変換されるチャネル数はこの関数で決まります。

以下の表は、チャネル変換順序がデフォルト状態での、AiChannelsと実際に変換されるチャネルの関係です。

AiChannels

変換されるチャネル

1

0

2

0, 1

3

0, 1, 2

AiDataには、入力データを格納する配列のアドレスを指定します。
配列は必ずAiChannelsで指定するチャネル数分のサイズを確保してください。
配列に格納される変換データに関しても、設定されたチャネル変換順序の順番で格納されます。

以下の表は、チャネル変換順序がデフォルト状態での、配列に格納される変換データの内容を示しています。

配列( 0 )

チャネル0の入力データ

配列( 1 )

チャネル1の入力データ

配列( 2 )

チャネル2の入力データ

  :

  :

AioMultiAiの場合、アナログ入力データはバイナリ値で格納され、範囲は12ビット分解能デバイスの場合で0~4095、16ビット分解能デバイスの場合で0~65535です。
AioMultiAiExの場合、アナログ入力データは電圧または電流値で格納されます。

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

アナログ入力関数(AioSingleAi、AioMultiAi)は入力データをバイナリ値で取得します。
バイナリ値から電圧値への変換は以下の式で行います。

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

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