LabVIEWでDAQmxの現在のタスク状態を取得する方法

更新しました Jan 11, 2024

DAQmxタスクを制御関数には複数のタスク状態があります。 DAQmx タスク完了確認関数でタスクの状態を照会し、実行が完了したかどうかを確認できます。ただし、プログラムの実行中に現在のタスク状態を取得する組み込みのDAQmx関数はありません。この記事では、ライブラリ呼び出しノードを構成し、それを使用して DAQmx の現在のタスク状態を取得する方法について説明します。

注: ここで紹介するサンプルは、DAQmx 19.1 以降のバージョンを対象としています。

  1. LabVIEWを起動し、ファイル>>新規VIを選択して新しいVIを作成します。
  2. ウィンドウ >> ブロックダイアグラムを表示を選択して、ブロックダイアグラを開きます。
   daqtastJP1.PNG
  1. ブロックダイアグラム上で右クリックし、表示される関数パレットから、接続>>ライブラリ&実行可能ファイル>>ライブラリ呼び出しノードを選択します 選択したライブラリ関数呼び出しノード関数をブロックダイアグラムにドロップします。


   daqtastJP2 (1).png     daqtastEN CLN vierge.PNG
  1. ライブラリ関数呼び出しノードをダブルクリックして、その構成ウィンドウを開きます。


   daqtastJP3.PNG
  1. 関数 タブで、 ライブラリ 名またはパスとして「 nilvaiu.* 」と入力します。
  2. 関数名ドロップダウン ボックスからDAQGetTaskState関数を選択します。
  3. スレッドボックスで任意のスレッドで実行を選択し、 呼び出し規約ボックスでCを選択します。


   daqtastJP4 (1).png
  1. パラメータタブに切り替えます。
この関数は整数 (対応するタスク状態の値) を返すため、戻り値タイプ符号付き32ビット整数( Int32)に設定します。
  1. 左側のパラメータリストから戻り値タイプを選択します
  2. 現在のパラメータセクションで、 タイプドロップダウン ボックスから数値を選択します。
  3. データタイプはデフォルトの符号付き 32 ビット整数 (Int32) のままにしてます。
      daqtastJP5.PNG

この関数はパラメータとして 3 つの整数と 1 つの文字列を受け取るため、これらを入力として追加します。
  1. 新しいパラメータを追加するには、プラス記号記号をクリックします。これにより、パスとしてを持っている符号付き 32 ビット整数 (Int32)がデフォルトで追加されます。
注: 必要に応じてパラメータの名前を変更できますが、DLL の呼び出し方法には影響しません。
今回構成する 3 つの整数パラメータtaskIDattributeIDvalueとして名前を付けます。
それぞれのデータタイプ符号なしポインターサイズ整数(uintptr)、符号なし 32 ビット整数(uint32)、
および符号付き 32 ビット整数(Int32) に設定します。
 
  1. それぞれの整数パラメータを上記のように名前データタイプを編集します。 (プラスボタンをクリックして、新規パラメータを追加します。)
     daqtastJP6.PNG
 
  1. プラスボタンをクリックして最後のパラメータを追加し、 extendedErrorinfoという名前を付けます。タイプとして文字列を選択し、文字列形式として文字列ハンドルを選択します。
     daqtastJP7 (1).png
  1. 必要な入力と出力を作成し、配線します。
  • attributeIDの値として 310A を使用してライブラリ呼び出しノードのその端子に配線します。文字 A を挿入できるようにするには、作成した定数制御器をクリックしてプロパティ ウィンドウを開きます。その表示形式16 進数に変更します。
   daqtastJP8 (1).png
  • ブロックダイアグラム上の関数パレット >>文字列パレットから空文字列定数をドロップし、 extendedErrorinfo入力に配線します。
  • タスク入力制御器とタスク出力表示器を作成し、タスク入力制御器を taskIDに配線します。
  1. 関数パレット>>ストラクチャーパレットからケースストラクチャーを選択しブロックダイアグラムに配置します。
  2. ケースストラクチャーデフォルトケース内にDAQmxエラー情報の書き込み関数をブロックダイアグラム上に配置し、そのステータスコード拡張エラー情報エラー入力端子それぞれライブラリ呼び出しノード戻り値出力、extendedErrorinfo出力端子および、エラー出力端子を配線します。
注: DAQmxエラー情報の書き込み関数はDAQmxのMiscellaneous.llb ライブラリにあります。それは以下の場所から確認できます。

C:\Program Files (x86)\National Instruments\<LabVIEW バージョン>\vi.lib\DAQmx\miscellaneous.llb

DAQmx fillin Errorinfo (1).png
  1. ケースストラクチャーを右クリックし、ポップアップウィンドウから、前にケースを追加を選択します。その名前を0とし、以下のようにエラーワイヤーそのままエラー出力端子に配線します。
   daqtastJP9.png         daqtastJP10.png

結果として得られる VI サンプルは、添付ファイルからダウンロードでき、以下のように表示されます。
DAQmxタスク状態を取得.png
DAQmx 19.1以降 DAQmxタスク状態の取得
注: taskID ワイヤが壊れているように見えても、プログラムは正常に動作します。