平素より弊社製品をご使用いただき誠に有難うございます。
日本ナショナルインスツルメンツ技術部の竹内です。
サンプリング周波数20Hzというのは決して早い数値ではないですが、長時間実行しているというところに問題があるかもしれません。
現状ではグラフに表示しているという状況だと思いますが、これは3時間から30時間の集録が終わった後に全ての配列データを一度にグラフに表示させているということになりますでしょうか。もし、whileループの中で配列連結追加などで配列操作を行っているようであれば配列が大きくなればなるほど処理に時間がかかります。そのような場合は集録しながらファイルに保存するというデータストリーミングの方式でHDD上に保存した後に、ファイルを読み取りグラフに表示させるという方法がよいです。
またwhileループが初めから20Hz(50ms)で繰り返されているかということを確認する必要もございます。WindowsOSをご使用の場合はループに数mから十数m秒のジッタがかかります。そのため50msで正確にループが繰り返されず、ジッタの積み重ねがソフトウェアタイミングで集録してかつ長時間実行の場合、時間のずれとして問題になることがございます。そのため長時間実行を行う際はLabVIEW Real-TimeとReal-Time OSの使用をお勧めいたします。
Real-Time Tutorial実際の集録時間も同時に取得すれば繰り返し時間がずれていたとしても対応できるかと思います。その場合は「日付/時間を秒で取得」関数などでタイムスタンプを取得していただけます。
以上、ご不明な点等ございましたら弊社までご連絡下さい。
よろしくお願い申し上げます。