データを連続集録する
- 更新日2025-12-09
- 5分で読める
連続集録は、デジタイザがデータを集録中でもデジタイザからのデータをホストコンピュータのメモリに転送できる機能です。以下のアプリケーションで主に使用されます。
- 有効メモリ以上のレコードを集録する
- 他のレコードが集録されている間にトリガされたレコードをフェッチする
- デジタイザのメモリ以上のレコードを集録する
- 最新データをフェッチする
- ハードウェアタイミングで波形を集録する
連続集録の機能
NI デジタイザには、チャンネルあたり8、16、32、または256 MBの大容量のオンボードメモリが搭載されています。このメモリは、データ集録時に個々のレコードに分割されます。たとえば、2つのレコードを集録する場合は、8 MBのメモリは2つの4 MBレコードに分割されます。各レコードは、循環バッファとして扱われます。デジタイザがデータの集録を開始すると、サンプルはバッファの開始位置に取り込まれます。デジタイザは、要求された数のプレトリガサンプル (実際のレコード長 × 基準位置 ÷ 100) を集録します。プレトリガサンプルが完了すると、デジタイザはトリガを待機します。待機している間、デジタイザは継続してデータを集録および格納します。このデータは循環バッファに取り込まれるため、バッファが一杯になると、デジタイザは開始位置からデータを上書きします。トリガが発生しないと、デジタイザは永久にトリガを待機し続けます。トリガの発生後、デジタイザは指定されたポストトリガサンプル数をサンプルし、レコードが完了します。他のレコードが要求されると、デジタイザは集録を再度開始し、メモリ中の次のレコードへ移動します。
連続集録は、データ集録中に循環バッファからのデータをホストコンピュータのメモリにフェッチするデジタイザの機能です。以下の図に示されるように、「集録を開始」を呼び出すと、デジタイザは循環バッファへのデータ集録を開始します。
フェッチ関数を使用すると、以下の図のようにデジタイザがサンプルを集録している間に、最初の一連のデータをホストコンピュータに送信することができます。
デジタイザで循環バッファが一杯になると、以下の図に示すようにバッファ開始位置のデータを上書きし始めます。
上書きされるデータはホストコンピュータにコピーまたは保存しておくことが理想です。
トリガを送信しない場合は、中止、リセット、または閉じるが呼び出されるまでデジタイザはデータを集録し続けます。
連続集録データをフェッチする
連続集録のプログラムでは、特別な構成を行う必要はありません。唯一の違いは、データがフェッチされる方法です。連続集録にはフェッチ関数を使用できますが、どのデータをフェッチするかを指定するには属性を使用します。特に、「フェッチ位置」属性は、「トリガ」および「プレトリガ」値の他に、「読み取りポインタ」、「現在」、および「開始」値をサポートしています。これらの値によって、フェッチの開始場所をレコード内の異なる場所に指定することができます。連続してデータをフェッチする場合、フェッチする前にオンボードメモリでデータが上書きされる可能性があります。この場合、NI-SCOPEはエラーを返します。
また、「波形情報」ストラクチャから返される「相対初期値X」はトリガが発生するまで有効ではありません。連続集録中にトリガが発生しないことがあります。ただし、デジタイザの自走タイムスタンプカウンタである絶対初期値Xも波形情報ストラクチャに含まれています。「フェッチポイント数」および「フェッチレコード数」属性を使用すると、集録に関する追加のステータス情報が利用できます。ポイント数は、「レコード番号をフェッチ」属性によって指定されたレコードで利用可能なサンプル数です。これは「フェッチ位置」属性を基準とした「オフセットをフェッチ」属性で開始します。NI-SCOPEは、「バックログをフェッチ」属性もサポートします。この属性は連続集録の実行中にフェッチされなかったサンプル数です。