LabVIEWでプログラムを書くときの強みの一つは、ユーザーインタフェースであるフロントパネルをドラッグアンドドロップの操作だけで簡単に構築することができることだと思います。
本ブログのまずこれのシリーズでは主にプログラムのアルゴリズムの部分の書き方について解説してきましたが、アルゴリズムを知っているだけではプログラムは書けず、どのような選択肢があるかということも知っておく必要があります。
使い方集は、まずこれのシリーズでステートマシンまでの知識はある程度知っている前提で、アルゴリズム以外に関わるプログラムの書き方について紹介するシリーズです。
本記事では数値データの様々な扱い方について紹介しています。
四則演算
最も基本的な演算の方法は、和や差、積や商の関数を組み合わせる方法です。

ただし、計算が複雑になる場合には一つ一つの演算子を配置してワイヤ配線するとかなりごちゃごちゃします。
そんな場合には、テキスト言語のようなノリで計算をさせる方がすっきりします。
フォーミュラノードは、枠を右クリックすることで入力や出力のための端子を追加することができ、それらに好きな名前を付けて式の中の変数として使用することができます。
書き方に多少の慣れは必要ですが、こちらの書き方の方がすっきりする場合が多いです。

簡単な数式演算
フォーミュラノードを使うまでもないような簡単な計算を行わせるには、数式ノードが便利です。
フォーミュラノードとの違いとしては入力値が一つしかない(式の中でxで表している)ことですが、ごくごく簡単な式の実装であればこちらの方がお手軽です。

配列を含んだ計算を行う
フォーミュラノードで配列も扱うことができます。入力側も出力側も配列を構成できるので、複数の値を使った計算にはこれが便利です。
式の中で配列を扱う時には配列要素番号を角括弧([ ])で指定します。
また、出力を配列で行う場合には、その配列の要素数をあらかじめ指定しておきます。

複雑な計算をする
電卓のように計算を実行させるときに、式を書くのもメンドクサイ、という場合にはフォーミュラのExpress VIが直感的に使えるので便利です。
いわゆる関数電卓で扱えるような処理は大抵実装することができ、変数の数も簡単に複数用意することができます。

パフォーマンスについてですが、結局このExpress VIの中身ではフォーミュラノードの計算を行っているので違いはないと考えていいと思います。

値をプロットで表現する
数値データを表すのに最もよく使うのはチャートやグラフだと思います。

チャートは単一の値(スカラ)を渡してプロットが一つずつ増えていき、新しい値を渡しても前の値が残っているのに対して、グラフは一度に与えた複数のデータ、つまり配列の値を一度に表示しますが、新しい配列を渡した場合には前の配列のデータは消えることに注意する必要があります。
プロットをリセットする
数値データを表示するのにわかりやすいのがチャートやグラフですが、プログラム開始あるいは任意のタイミングで表示をリセットすることがあります。
ただし、チャートとグラフではデータの扱いが異なるため、表示のリセットを行う場合にも両者でやり方が変わります。
チャートはプロパティノードの「履歴」を使うのに対し、グラフは与えたデータを全て表示するという動作なのでプロパティノードあるいはローカル変数に初期化されていない配列を渡します。

複数の値をプロットで表現する
チャートやグラフへのプロットは一種類だけとは限らないので、複数種類のプロットを表示させる場合もありますが、これもチャートとグラフとでは扱い方が異なります。
グラフは、そもそも配列でデータを渡すことから、複数種類をプロットするには配列を2次元で渡すというのがわかりやすいのですが、チャートの場合には複数の要素を持ったクラスタにする必要があります。

複数プロットに異なるスケールを適用する
チャートやグラフに複数のスケールを設けてプロットの種類ごとに異なるスケールを割り当てることができます。
プロパティノードを使ってどのプロットにどのスケールを適用するか、そのスケールの目盛り幅や最大値は何かといったことを指定します。

ファイルに保存する
ファイルに複数の数値データが配列として得られていてこれを保存する場合には、配列からスプレッドシート文字列に変換の関数を使用して配列データをまとめて文字列データにするのが便利です。

ファイルから読み込んだ値をグラフに表示する
ファイルから読み込んだ数字の文字列データをLabVIEW上で表示させる際には、スプレッドシート文字列を配列に変換の関数を使用することで例えばグラフに表示するのに役立ちます。

本記事では数字データを扱う際のいくつかの基本的な操作をまとめて紹介しました。
もう少し数値データタイプそのものについて性質や扱い方を知りたい、という場合には以下の記事も参考にしてみてください。
LabVIEWを使ってプログラムを書いていくと自然にこういった操作には慣れていきますが、まだ触りたての方だとちょっとしたことをやるためにも毎回調べないといけないという煩わしさがあると思います。この記事のまとめがそんな負担を軽減できればうれしいです。
ここまで読んでいただきありがとうございました。
コメント