指定チャネルのアナログ入力
指定チャネルのアナログ入力には、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