この記事では、LabVIEWプログラムのスタイルや書き方について問題点を拾うことのできるツールであるVIアナライザを解説しています。
LabVIEWにも推奨される書き方のスタイルがあるのですが、LabVIEW自体のツールとして見栄えやプログラムの書き方上の問題点を列挙してくれるツールがあり、これがVIアナライザです。
本記事ではそんなVIアナライザの使い方と実例を紹介しています。
LabVIEWのスタイル
LabVIEWはグラフィカルにプログラムを記述します。ここが、テキストを記述するプログラミング言語と大きく違うところですね。
このグラフィカルなプログラミング環境、文字の羅列よりもデータの流れやプログラム全体の構造を俯瞰するのにわかりやすくなるという利点があるのですが、それはあくまで「キレイに」書かれたプログラムだとそうなる、ということは認識する必要があります。
ただの見やすさの問題と軽く見ることなかれ、プログラムの見やすさはデバッグや修正のしやすさにも直結するため、この部分を疎かにすることで後々のトラブルが起こりやすくなります。

ですが、まだLabVIEWに慣れていない段階だとそこまで意識が回らないということも多々あると思います。それは、LabVIEWが並び順に依らずに動作してしまうことが一因だと思います。
例えばPythonというプログラミング言語がありますが、これはインデントによって各ブロックを区別しないとそもそも正しく実行されません。インデントをすることで必然的に見栄えが(ある程度)整った形になるので、そんなにごちゃごちゃしたプログラムにはなりません。
一方のLabVIEW、インデントという概念はありません。はっきり言ってしまえば、好きなように関数やワイヤを配置することができ、配線や関数の使い方さえ間違っていなければ実行は出来てしまいます。
ですが見やすいプログラムの典型的な形というものはあるわけで、サブVIが使用されている場合に適切なアイコンになっているか、やワイヤ配線をなるべくまっすぐそろえるといったことを意識するだけで読みやすくなります。逆に言えば、プログラムを作る時に適切な組み方をしていない場合、本来コードを読み取りやすいはずのLabVIEWプログラムが返って見にくくなってしまうという状態が起こりえます。

LabVIEWにも推奨する書き方というものが存在します。これはヘルプのページにスタイルチェックとして載っていて、よりキレイな「LabVIEWらしい」プログラムを書くために必要な項目が並んでいます。

このスタイルチェックシートにある項目を守ることが推奨されていると思いますが、この内容すべてを毎回のプログラムで順守しなければならない、というのは結構酷です。が、意識することは大事だと思います。
ただ、いちいち人の目で確認して、という作業もなかなか骨が折れると思います。そこで補助的に活用できるのが今回紹介するVIアナライザです。
VIアナライザとは
VIアナライザは、選択されたチェック項目について問題点がないかをLabVIEWが判別し、問題点があった場合にその内容を指摘してくれるというツールになっています。

チェック項目は多岐にわたり、一度決めた「これらをチェックの対象とする」という内容を保存、外部ファイルに出力することができます。そのため、この外部ファイルを他のプログラマーと共有すれば、チームで同じチェック内容を共有してプログラムを書くことができるようになります。
チェック項目はカテゴリに分かれています。これらのカテゴリの中にさらに細分化された内容が含まれています。また解析テストの内容によっては細かいテスト内容の指定も行えます。

VIアナライザの使い方
実際にVIアナライザを使う際の簡単な流れをざっと確認するとともに、補助的な使い方についても紹介します。
使用する際の流れ
VIアナライザはLabVIEWについている機能です。アクセスは簡単で、ツールのメニューから選ぶことができます。
最初に開くと、下の図のような画面が出てきます。まずは、解析したいVIを既に開いていて、今開いているVIに対してアナライザを使う場合を考えます。

その後、チェックしたい項目を選択します。

あとは解析を実行するだけです。

解析結果はレポートとして出力することもできます。

便利に使うための補足的な内容
一連の流れは以上ですが、例えば解析したいVIが複数ある場合やプロジェクト単位で解析を行いたい場合には最初に選ぶタスクの種類を変更します。
(プロジェクトエクスプローラにある複数のVIに対しての解析を行う場合には、プロジェクトエクスプローラを開いた状態でメニューバーのツールからVIアナライザを開く必要があります)

また、解析の内容を複数のVIや他の人と共有するために解析項目の保存を行うことができます。

なお、このviancfgは「解析対象とするVIも含めて」保存しているようです。以下の自動化の話にも関わりますが、解析のタスクをviancfgとして保存しそのタスクにVIも含まれているため、そのタスクに含まれる解析対象となるVIを含めずに設定を保存することで、汎用的な設定ファイルとすることができます(やり方は後述)。
VIアナライザの自動化
VIアナライザの使い方や結果がどのようになるかについては上の説明で何となく雰囲気がつかめたかなと思います。
が、いちいちVIアナライザをツールから選んで設定をして・・・とすることすらメンドクサイ、という方も中にはいると思います。そんな方には、VIアナライザをプログラム的に実行する方法がいいと思います。
関数パレットにVIアナライザ用のパレットがあるのでこれを駆使してテストすることができます。

これらを駆使すれば、テスト項目の設定なども関数で行うことができるようになります・・・が、そこまでやるとなると結局これはこれで結構面倒です。
例えばテスト項目の設定だけはVIアナライザのダイアログで行い、その後はその設定を都度色々なVIに適用するといったテストを行うには以下のように組みます。この場合、解析ファイル(viancfg)が必要となり、これに保存されたテスト内容を選択した複数のVIに対して実行することになります。
以下のプログラムはその一例ですが、Path to Configuration Fileにはviancfgファイルのパスを、VI pathには解析対象とするVIやそれらVIの入ったフォルダのパス(ごちゃ混ぜでも問題なし)を、Report Save Pathにはテスト結果を保存する場所をファイル名と共に指定(例えばC:\Users\user name\Desktop\testresult.txt)します。

注意点としては、上に書いたように、指定するviancfgファイルには特定のVIも入っているという点です。そのため、指定していないVIの解析も行われることになります。

もし特定のVIを含めないで、この自動解析プログラムを実行するたびに選んだVIしか解析対象にしたくない場合には、VIを指定しないで解析ファイルを作る必要があります。

もしプログラム的にテスト項目なども変更したいという場合には、サンプルファインダのサンプルが参考になると思います。

この記事では、VIアナライザを用いてプログラムを解析し、よりキレイな、統一感のあるプログラムを組むための参考とする方法を紹介してきました。
グラフィカルプログラミング言語であることを最大限に活かすには、自由にプログラムを書いていい、ではなく、ある決まったルールの下で書くことを意識することが重要です。キレイなプログラムは自分自身が後でデバッグするのに役立つだけでなく、他の人にプログラムを継承する際にも便利だと思うので、なるべく意識することを心掛けられればいいかなと思います。
ここまで読んでいただきありがとうございました。
コメント