tdmsファイルの便利な使い方

Tips

スポンサーリンク

この記事で扱っていること

  • tdmsファイルの便利な使い方

を紹介しています。

LabVIEWはハードウェア制御に強いプログラミング言語と言われますが、そのためのファイルI/O操作、つまりファイルの読み取りおよび書き込み(保存)についてもいくつか選択肢を持っています。

データを取得したときにこれを保存する手段としてtdmsファイルを選ぶと便利なことの一つに、データの検索がしやすくなる、というものがあります。

今回は、そんなtdmsファイルを用いたデータ検索の形の一つとして、一つのtdmsファイル中のグループやチャンネルに対するプロパティを確認しつつ目的のデータを探す、というプログラムを紹介します。

プロパティを適切に設定している前提ではありますが、目的のデータを探すためにプロパティを参照するやり方の一つとしてみてもらえればと思います。

なお、このブログ記事の内容はYouTube動画で公開しており、どんな使い勝手になるかは動画で見た方がわかりやるいと思います。

スポンサーリンク

どんな結果になるか

フロントパネルにはtdmsファイルを選ぶパス制御器、グループ名やチャンネルを名を指定するリング制御器、それぞれの項目を選んだことを表現する「~~決定」というブール制御器ややり直し、停止のボタンを配置しています。

プログラムを実行し、目的のファイルを選んだり、各リング制御器にてグループやチャンネルを決めたら決定ボタンを順次クリックします。

最後チャンネルを指定したら右側にある波形グラフにそのチャンネルの値が表示されます。

プログラムの構造

ではプログラムの中身を紹介していきます。

冒頭で示した動画に説明があるので、ここではそれぞれのケースストラクチャの中身(ステートマシンの形をしていることから、各ステートでの処理内容のこと)については必要最小限に紹介します。

ブロックダイアグラム全体は以下の図のようにしています。

初期化のためのinitステートは以下のようです。

ファイルを選択するのを待っている状態であるselect fileステートは以下のようです。

グループを選択するのを待っている状態であるselect groupステートは以下のようです。

Select groupステートの中で使用しているサブVI、format property info.viは以下のようです。

なお、ブロックダイアグラムの中身は、記事後半で紹介している、tdmsファイルビューアの関数の一部の機能を流用しています。

ケースストラクチャの中に二つあるforループのうち小さい方は実際は必要ありません。

チャンネルを選択するのを待っている状態であるselect channelステートは以下のようです。

チャンネルを決め終えて、そのチャンネルのデータを表示するためのshow resultステートは以下のようです。

結果を表示してから、やり直すなり停止なりのユーザーからの入力を待つだけのwait for next stepステートは以下のようです。

プログラムを終了するためのfinishステートは以下のようです。

Tdmsファイルビューアにある処理を利用する

途中で出てきたformat property info.viのサブVIは、LabVIEWの標準関数である、TDMSファイルビューアの中の処理の一部を使用しています。

以下の図に従ってその処理を抜き出してみてください。

以下の図に示しているサブVIの中身をformat property info.viで使用しますが、ケースストラクチャのBooleanの中は変更する必要があります。

もともとここはなぜかグローバル変数になっていますが、グローバル変数はやめて、文字列定数にします(例えば「True」と「False」など)。

本記事では、tdmsファイルを便利に使えるようにするためのプログラムの例として、ファイルを指定してからプロパティ値を見ながら必要なデータを探すためのプログラムを紹介しました。

せっかく保存したデータを適切に扱ったり管理するために有用なのがtdms形式なので、プロパティ値もしっかりと設定して、データの検索に役立ててみてください。

ここまで読んでいただきありがとうございました。

コメント

タイトルとURLをコピーしました