LabVIEWでDAQmxタスクを開始VIとタスクを停止VIを使用する

更新しました Nov 29, 2018

使用製品

Software

  • LabVIEW Base
  • LabVIEW Full
  • LabVIEW Professional

Driver

  • NI-DAQmx

問題

  • 一部のLabVIEWサンプルプログラムではDAQmxタスクを開始VIとDAQmxタスクを停止VIが使用されるのはなぜですか?
  • これらのVIはいつ使用する必要がありますか?

解決策

DAQmx書き込みVIまたはDAQmx読み取りVIを繰り返し使用する場合は、DAQmxタスクを開始VIとDAQmxタスクを停止VIを使用する必要があります。

たとえば、自動開始プロパティをTrueに設定してDAQmx書き込みVIを使用する場合、DAQmx書き込みVIは取得タスクを開始し、最後のサンプルが生成されるとタスクを停止します。DAQmx読み取りVIまたはDAQmx書き込みVIをループ内で使用すると、ループの各反復で測定または生成が開始および停止します。 これを避けるには、DAQmxタスクを開始VIとDAQmxタスクを停止VIを使用して、開始と停止を明示できます。

明示的にループを開始する前にタスクを開始し、ループの実行後にタスクを停止すると、パフォーマンスが大幅に向上します。これは、DAQmxタスクのタスク状態が原因です。ループの前にタスクを開始すると、タスクが実行状態になり、実行時間が短縮されます。ループの後にタスクを停止すると、タスクはループ内で実行中の状態のままになり、停止後に以前のタスク状態に戻らなくなります。タスク状態とDAQmxタスク状態モデルの詳細については、以下の関連リンクを参照してください。

追加情報

このアイデアを実証するために、以下の例のようにパフォーマンス比較のベンチマークテストを実行することができます。これにより、DAQデバイスでシングルポイント収集を2つの方法で実行できます。
  • ループ外でDAQmxタスクを開始VIとDAQmxタスクを停止VIを使用して、タスクを明示的に開始および停止します。
  • ループ内のタスクを暗黙的に開始および停止します。



この例では、フロントパネルにあるUse Start/Stopブール制御器でタスクを開始VIおよびタスクを停止VIを使用するかを選択します。両方のモードでVIを実行します。停止ボタンを押すと、Calculate Frequency VIにより収集レートが計算されます。DAQmxタスクを開始VIおよびDAQmxタスクを停止VIを使用すると、収集レートが大幅に増加するはずです。

これらの2つのVIに関するLabVIEWのヘルプトピックは、LabVIEWヘルプを開いて目次タブを選択し、VIと関数リファレンス>>測定I/O VIおよび関数>>DAQmx - データ収集VIおよび関数に移動トして参照できます。

この記事はお役に立ちましたか?

いいえ