サンプルコードとドキュメント

異なるループ周期で測定された複数のデータを一つのファイルに保存する

コードとドキュメント

添付

すべてをダウンロード

概要

 測定を行なうプログラムで、複数の計測器でのデータ取得を異なるループタイミングで実行させたときに、各計測器からのデータを効率よくTDMSに保存する方法を紹介します。

 

説明

 データ取得を行なうループと、得られたデータの解析や保存を行なうループを分けるといったデザインパターンとして、「生産者・消費者デザインパターン」があります。データ取得を複数の生産者ループで行なっている場合にそれぞれのループからのデータに対して異なる処理を消費者ループで行なうには生産者ループでループ固有の名前をエンキューし、消費者ループでその固有名ごとに処理を分けるためのケースストラクチャを用いるのが便利です。

複数ある生産者ループごとのループタイミングがずれている場合に、キューに入る要素はABABA・・・とならず、例えばAABAABA・・・などとなります。このような場合に、上述した固有名とケースストラクチャの組み合わせを使用することで、効率的で柔軟な処理を行なうことが可能となります。

 

ハードウェア/ソフトウェアの要件

 ・LabVIEW 2015 SP1以降

DAQ、モジュール式計測器、およびNI社以外の計測器ドライバAPI

 

コードの実装/実行手順

  1.  サンプルをダウンロードし、「different_loop_queue.lvproj」を開いて、「main.vi」を選択します。
  2. フロントパネルに記載されている手順に従いviを実行します。

 Different loop timing save in one file.png

NIコミュニティのサンプルコード交換のサンプルコードは、MIT Licenseによりライセンス供与されています。

寄稿者