11-22-2014 04:18 AM
11-22-2014 11:26 PM
takattakaさん、こんにちは。
1024データでは少ない、というところまで理解できました。
ゴールとしては、
1.●●●データまで取りたい。
2.無限ループで取りたい。
のどちらでしょうか?
1ms間隔で無限にデータ取り続けるのは難しいと思いますので、どこかでは停止するのであれば、
下記のような方法はいかがでしょうか?
取りたいデータ量(あるいは時間)が決まっているのなら、先に「大きな」配列を作るのが良いと思います。
関数 > 配列 > 配列初期化
を使います。
Whileループなどで、
・データ取得
・データを用意した配列に書き込み
・配列の、どの位置(指標といいます)に書き込むかをインクリメント
を、繰り返していけばいいはずです。
データ取得終了、あるいは、配列が満杯になったところで、保存、とする方法でいかがでしょうか?
注意点として、Whileループ内で配列の大きさを変更する(配列連結など)をすると遅くなりそうです。
(参考1:データのサイズを常時変更することを避ける)
(参考2:VIの実行速度)
以上、わたしCompact RIOを持っていないので、1msが実現できるか手元確認できませんが、ご参考になれば・・・。
11-24-2014 01:52 AM
takattakaさん、こんにちは。
別スレですが、「DAQmxによる多チ
のほうに、
配列の処理時間の違いを示すサンプルを載せましたので、ご参考まで。
以上です。
11-24-2014 05:25 AM
S.A.Mさん,丁寧に返信していただいてありがとうございました.
実験装置のデータ処理のため,1ms間隔で50秒ほどのデータの取得を考えていました.
教えていただいた,配列でデータを保存する方法を試してみました.
今まで使用していた,「スプレッドシートに保存する」よりは実行速度が上がりましたが,データ取得と同時平行で複雑な計算による実験装置の制御も行っているので,なかなか1msでの保存ができないみたいです.
ループタイマーを用いてサンプリング時間を調節しているのですが,だいたい2msから,遅いときで8ms程度かかってしまうみたいです.
アドバイス,非常に参考にさせていただきました.
わざわざありがとうございました.