1

Labview データ収集プログラムのヘルプを探しています。チャネルごとに 8kHz で 2ms のデータを収集できた場合 (16 データ ポイント) (ナショナル インスツルメンツのデータ収集ボードを使用して 4 つのアナログ チャネルでデータを収集しています)。DAQ-MX 収集タスクは、4 つの波形の 1D 配列を提供します。

データを表示しない場合、すべての計算時間は約 2 ミリ秒であり、処理ループが収集ループより少し遅れても問題ありません。Labview のフロント パネルでチャートを更新すると、許容できない遅延が発生します。表示を非常に迅速に更新する必要はありません。おそらく 5 ~ 10Hz で十分でしょう。しかし、私はこれを設定する方法がわかりません。

私の現在のLabview VIには3つの並列ループがあります

  1. データ収集のタイムループ
  2. 分析と処理のループ
  3. データを TDMS ファイルとしてディスクにキャッシュする優先度の低いループ

データは、キューを使用してコレクション ループから他のループに渡されます。Labviewの例でいくつかのアイデアが得られましたが、行き詰まっています。

提案、参考文献、アイデアをいただければ幸いです。

ありがとう

アジム

フォローアップの質問

eaolson は、表示目的でデータを再サンプリングすることを提案しています。DAQ-MX 読み取りからのデータは、波形の 1 次元配列です。したがって、各チャネルの波形データを何らかの方法で構築または連結する必要があります。次に、フロント パネル チャートを更新する前に、データを再サンプリングします。最善の方法は、データをキューに入れ、表示ループでスタック ビルドをデキューし、画面の解像度に基づいてデータを再サンプリングしてから、グラフを更新することだと思います。他のアプローチはありますか。eaolson が提案した詳細については、(NI Labview フォーラム)[ http://forums.ni.com/ni/board?board.id=170]を参照してください。

アップデート

  1. グラフの許容可能な更新レートを 5 ~ 10Hz に変更 (Underflow と eaolson に感謝)
  2. ディスク キャッシュ ループは優先度が低い (thanks eaolson)
  3. すべての応答に感謝します。
4

2 に答える 2

5

全体的なアーキテクチャの説明はしっかりしているように聞こえますが、重要なグラフで30Hzに到達するのは難しいでしょう。それを実現しようとする前に、本当にそのレートが必要であることを確認してください。そのレベルへの最適化には時間がかかる場合があります。

役立つはずの参考資料:

パネルの更新を延期することができます。これにより、準備が整うまでフロントパネルが更新されないようにし、バックグラウンドでデータをバッファリングし、たまにしか描画できないようにします。

(a)同期表示について知っておく必要があります。このオプションを使用すると、表示レートをある程度制御できます。

実行の高速化について利用できる一般的なアドバイスがいくつかあります。

LAVAフォーラムには、実行速度に関する(やや古い)レポートがあります。速度を最適化する必要がある場合は、LAVAフォーラムをグーグルで検索することをお勧めします。

于 2008-12-06T05:25:41.453 に答える
2

テレビは約 30 Hz で更新されます。それ以上は、人間の目で見るよりも高速です。30 Hz は、開始点ではなく、ディスプレイで考慮する必要がある最大更新レートである必要があります。5 ~ 10 Hz の更新レートを考慮してください。

LabVIEWチャートは、保存されている履歴データに最新のデータを追加し、すべてのデータを一度に表示します。8 kHz では、毎秒チャネルあたり少なくとも 8000 データ ポイントを取得しています。これは、新しいデータを保持するために、そのグラフを支える配列のサイズを継続的に変更する必要があることを意味します。また、グラフの幅が 1000 ピクセルであっても、画面ピクセルあたり 8 つのデータ ポイントを表示していることになります。通常、ピクセルごとに複数のデータ ポイントを表示する理由はありません。本当に速い更新速度が必要な場合は、プロットするデータを減らします。履歴データを保持する配列を作成し、N 番目のデータ ポイントごとにのみプロットします。ここで、N が選択されているため、たとえば数百のポイントのみをプロットします。

ループはさまざまな速度で実行できることに注意してください。ディスクへの書き込みループを、データ収集速度よりもはるかに低い頻度 (数秒ごとなど) で実行することで十分な場合があります。

可能であれば、プロパティ ノードは避けてください。それらは UI スレッドで実行され、他のほとんどの実行よりも低速です。

それ以外では、コードや詳細を確認せずに多くの実質的なアドバイスを提供することは非常に困難です。NI LabVIEW フォーラムで質問することも検討してください。そこには助けてくれる人がたくさんいます。

于 2008-12-06T16:17:35.863 に答える