概要
測定を行なうプログラムで、複数の計測器でのデータ取得を異なるループタイミングで実行させたときに、各計測器からのデータを効率よくTDMSに保存する方法を紹介します。
説明
データ取得を行なうループと、得られたデータの解析や保存を行なうループを分けるといったデザインパターンとして、「生産者・消費者デザインパターン」があります。データ取得を複数の生産者ループで行なっている場合にそれぞれのループからのデータに対して異なる処理を消費者ループで行なうには生産者ループでループ固有の名前をエンキューし、消費者ループでその固有名ごとに処理を分けるためのケースストラクチャを用いるのが便利です。
複数ある生産者ループごとのループタイミングがずれている場合に、キューに入る要素はA、B、A、B、A・・・とならず、例えばA、A、B、A、A、B、A・・・などとなります。このような場合に、上述した固有名とケースストラクチャの組み合わせを使用することで、効率的で柔軟な処理を行なうことが可能となります。
ハードウェア/ソフトウェアの要件
・LabVIEW 2015 SP1以降
・DAQ、モジュール式計測器、およびNI社以外の計測器ドライバAPI
コードの実装/実行手順
- サンプルをダウンロードし、「different_loop_queue.lvproj」を開いて、「main.vi」を選択します。
- フロントパネルに記載されている手順に従いviを実行します。