ユーザーバッファ(アナログ入力)

アナログ入力用ユーザーバッファは、利用デバイスによってデータ形式は異なります。
デバイス別のデータ形式を、以下に示します。


G-シリーズまたは、F-シリーズ(AIO-163202FX-USBを除く)の場合

Gシリーズ、または、Fシリーズ(AIO-163202FX-USBを除く)では、変換データは以下の形式でユーザーバッファに転送されます。

上図は0、1、計2チャネルを使用した場合のユーザーバッファへの転送方法を表したものです。
データ転送は、サイズが4バイトの転送パケットを最小単位に行われます。
1パケット中には、2個のAD変換データがバイナリ値で格納されます。

上図の例では1パケット中の下位2バイトに0チャネルのデータ、上位2バイトに1チャネルのデータが格納されます。
2チャネルを使用する場合では、1パケット(1転送回数)=1サンプリングとなります。

上図は0、1、2、計3チャネルを使用した場合のユーザーバッファへの転送方法を表したものです。
基本的には2個の変換データで1パケットを使用しますが、上図のように奇数チャネルを使用する場合、パケットの上位2バイトが未使用になります。
3チャネルを使用する場合では、2パケット(2転送回数)=1サンプリングとなります。

 


AIO-163202FX-USBの場合

AIO-163202FX-USBは、ユーザーバッファに対応していません。

 


Z-シリーズの場合

AI-1204Z-PCIなどのZ-シリーズデバイスでは、データの格納方法がFシリーズとは異なります。

データ転送は、サイズが4バイトの転送パケットを最小単位に行われます。
1パケット中には、2個のAD変換データがバイナリ値で格納されるのはFシリーズデバイスと同じですが、データ1個分は以下のように格納されます。



1データ(1パケットの半分のデータ)は16bitデータとなっています。
そのうち、下位12bitが実際のデータになっています。

上位4bitデータのうち、上の図の斜線部である下位3bit分のデータはデバイス内の計算で使用する為のデータで、ユーザ様にとっては不要のデータとなってます。
よってここのデータは無視するようにアプリケーションを作成して頂く必要があります。

最上位1bitが12bitデータが有効であるか無効であるかを判別するためのビットです。
このビットが1の時はデータは無効データ、0の時は有効データとなります。

よって、ユーザーバッファを使用するときは、最下位ビットが0であるか1であるかの判別をして有効データであるか無効データであるかを判別する必要があります。

データの転送方法はFシリーズと同様パケット単位で行われます。
詳しくはAioSetAiTransferDataAioSetAiStopTimesをご覧下さい。

使用チャネルの数、及び転送回数が偶数の場合と奇数の場合ではパケット単位でのデータの格納方法がFシリーズとは違いますので注意してください。

以下、1パケットをと表現します。

 

使用チャネル数1の場合(例:0chのみ使用)

使用チャネルが1chの場合で転送回数設定が偶数の場合はデータは1パケット毎に隙間無く格納されますので、転送回数設定による注意点はありません。

 

転送回数設定が奇数の場合は最後のパケットの上位2バイトに無効データが格納されます。
下位パケットの最上位1ビット目に1が立っており、このビットが立っている場合はアプリケーション上で無視するようにプログラミングする必要があります。

 

使用チャネル数2の場合(例:0ch, 1ch)

使用チャネルが2chの場合、データは1パケット毎に隙間無く格納されますので、転送回数設定による注意点はありません。

 

使用チャネル数3の場合(例:0ch, 1ch, 2ch)

使用チャネルが3chの場合は転送回数設定によらず、偶数パケットのデータパケットの上位2バイトに無効データが格納されます。
上位パケットの最上位ビットに1が立っており、このデータはアプリケーション上で無視するようにプログラミングする必要があります。

 

使用チャネル数4の場合(例:0ch, 1ch, 2ch, 3ch)

使用チャネルが4chの場合は2パケット毎にデータが隙間無く格納されますので、転送回数設定による注意点はありません。