11-10-2023 08:38 AM
添付されたVIの制御器がとんでもないサイズになっていて直らないので、スクリーンショットを参考に修正しました。これからわかるのは:
1) DAQは6ch、1kS/s、100ポイントずつ連続で収録=>Forループは1秒間に最大10回繰り返す
2) 波形チャートはダイナミックデータの履歴1024個=>最大102400ポイントを表示×4つ
3) 「save files_pre」と「波形ファイルに書き込む」ExpressVIはxlsxフォーマット
添付(VI2.vi)はチャートを一つ追加して、Forループ10回ごとにかかった時間をプロットするようにしてあります。実行して何が起こるか見てください。遅滞なく実行されていれば1000ms前後のトレースが続くはずですが・・・
DAQは1kS/sでせっせとバッファに溜めているのに、プログラムによる読み取り遅れが重なると、ついにはバッファがあふれてエラーになります。改善方法を考えていろいろ試してください。
a) DAQで一度に読み出すポイント数を100より増やして処理の頻度を下げる
b) 波形チャートの履歴数を減らしてみる(一度に何秒観測できればいい?)
c) ファイルフォーマットをxlsxをlvmやTDMSにしてみる
それでも思ったように動かなければ、(TAKASUさんが提案されたように)データをキューで保存専用の別ループに転送して書き込むことを検討すると良いと思います。
なお添付VIはテスト用なのでそのまま本体に使わないでください。ケースストラクチャ中のDAQアシスタントが連続収録中に呼び出されなくなる場合があるならタスクを一時停止する必要があります。
11-11-2023 07:23 AM
誤記:ForループではなくWhileループです。