NI-SCOPE と戯れる (6) フェッチしてデータの取得

前回までは、NI-SCOPE の 読み取り関数を使ってデータを取得していました。

この関数は、"集録開始、完了待機、データ取得を1回で行なう" 便利な関数ですが、連続データの取り込みを行なうと、途切れてしまうのが難点です。

フェッチを試してみる

今回は集録とフェッチを別々に行なってみます。

で、とりあえず適当に並べてみたブロックダイアグラム。取得したデータをキューで別スレッドの VI に渡してバイナリファイルに保存します。

clip_image001

この結果は、この通り。

綺麗な正弦波とは行かないようです。ソフト側で集録を開始したときのタイミングで、デジタイザがデータを取得しているので、実体としてはソフトウェアタイミングになっているのだと思われます。

clip_image002

ハードウェアタイミングを試してみる

今回行ないたいことは、デジタイザから 100MS/s でデータを収録するだけです。

デジタイザの入力チャネルに入ってきたデータをそのまま、ファイルに保存したいのです。

と言うわけで調べてみると、NI-SCOPE ヘルプにありました。

clip_image003

相変わらずよく分からない説明が書かれています。それにしても、この手のヘルプって役に立たない事が多いですね。

1ms == 500サンプル だと 1sec = 1000*500 = 500000 サンプル = 500k サンプル

だから全然連続サンプリングだとは思えないんですが・・・
ハードウェアタイミングのブロックダイアグラムもないし、サンプルもない。

まあ言われたとおりにやってみます。

clip_image004

フェッチ関数でエラー。ヘルプの文書を読む限り、上書きされたデータをフェッチしようとしたので、エラーが発生したらしい。つまり読み込みが間に合ってないと言うことですな。

clip_image005

でオフセットをフェッチを 100000→10000 に変更してみると、今度はエラーも出ずに実行されますが、なんだかグラフが更新されない。

clip_image006

ハイライト実行してみると、1回目の集録は 10000サンプルのデータが取得できてグラフにも描画されているが、2回目からは 189 サンプルだけ取得しているだけ。で内容も変わらず。

よく分からないので、今日はここまで。

コメント