NI-SCOPE と戯れる (7) フェッチして連続データを取得する

前回は、ヘルプの通りハードウェアタイミングで連続データ取得を試みましたが、1回分だけのデータが取得できたりして不完全でした。

今回はそのリベンジ。

まず基本を

clip_image001[4]

まず基本をしっかり読みます。

当たり前と言えば当たり前なのですが、普通の ADC と同じくサイクリックバッファが搭載されていて、デジタイザが再帰的にどんどんデータを書き込んでいくので、ホストはその合間に横から取っていく、という事ですね。

で、その取っていくポインタが "フェッチオフセット" であり、デジタイザが書いている間に読み込む必要があるので、時間的にも気にする必要があると言うことですね。

昨日はオフセットを無視してヘルプの言うがままコーディングしたら、おかしな事になっていました。ので今日は念頭に置いてコーディングしてみます。

コーディング

まずは試しなのでこんな感じ。

100MS を一気に取得します。

サンプリングレートを 100MS、1回のデータ取得(デジタイザ内のメモリ)も 100MS、ホストへの転送も 100MS。

1回のデータ収録で 100MS x 2bytes = 190.734MB のデータがデジタイザからホスト間を通過します。

サイクリックバッファが溢れそうな気もしますが、PXIe-5122 には 256MB のメモリが搭載されているので、デジタイザに上書きされず間に合うはずです(ほんとか?)。

clip_image002[6]

試してみる

という訳で試してみると、エラーも発生せずちゃんと読めてる!(らしい)

"Total Read Count" には、読んだ配列要素数の合計をインクリメントしてますが、毎秒毎に 100M ずつ増えていきます。

clip_image003[5]

データの確認

データ内容の確認は、グラフに表示すると処理が間に合わないので今回は行なっていません。

ストレージへの書き込みは、本日の作業が時間切れのため明日。

でもプロファイラでメモリ使用量を確認すると、VI のメモリ使用量が、

20008.80k == 195.32 MB

なので上に書いた 190.734 MB に近い値が消費されています。

これがデジタイザから取得したデータと思われます。

clip_image004[5]

まとめ

  • オフセットを自分で調整すれば連続データは取得できるらしい
  • データの中身については未確認

 

と言うわけでまた次回!

コメント