HOME > ソフテックだより > 第37号(2007年3月7日発行) 技術レポート「LabVIEW開発について」

「ソフテックだより」では、ソフトウェア開発に関する情報や開発現場における社員の取り組みなどを定期的にお知らせしています。
さまざまなテーマを取り上げていますので、他のソフテックだよりも、ぜひご覧下さい。

ソフテックだより(発行日順)のページへ
ソフテックだより 技術レポート(技術分野別)のページへ
ソフテックだより 現場の声(シーン別)のページへ


ソフテックだより 第37号(2007年3月7日発行)
技術レポート

「LabVIEW開発について」

1.はじめに

入社してから、VC++とC言語を中心にWindowsアプリやマイコンの開発を携わってきましたが、最近の開発では縁があってLabVIEWというものに触れたことがありますので、少ない経験をご紹介させて頂きたいと思います。

開発済みのLabVIEW開発実績を、パソコン用ソフト開発実績に掲載しています。
パソコン用ソフト開発実績のNo.355、No.600およびNo.606を参照ください。

2.LabVIEWとは

LabVIEWとは、日本ナショナルインスツルメンツ(株)より販売されている計測制御用グラフィカルプログラム開発環境です。LabVIEWはデータフロープログラミングと構造化プログラミングを融合させ、従来の計測器と良く似たデータの収集、処理、表示を行う仮想計測器というソフトウェアモジュールを作成するツールです。

3.LabVIEWとテキスト言語の違い

LabVIEWでは、テキストでなく、アイコンを使用したグラフィカルプログラミング言語でアプリケーションを作成します。テキストベースのプログラミング言語では、コマンドでプログラムの動作を指定するのに対して、LabVIEWでは、データフロープログラミングを使って、データフローで実行を制御します。
図1では、テキスト言語で「a=b+c」の命令をLabVIEWで表現してみました。

図. 1 "a=b+c"
図. 1 "a=b+c"

LabVIEWでユーザーインタフェース(UI)を作成するには、ツールやオブジェクトを使用します。フロントパネル上のオブジェクトと一対一に対応する端子と関数アイコン、仮想計測器(VI: Virtual Instruments)をワイヤと呼ばれるデータの流れで接続し、プログラムを作成します。グラフィカルな関数を使用して、コードを追加していきますから、プログラム自体はフローチャートに似ています。

4.LabVIEWの特徴

前述したように、LabVIEW のグラフィカルデータフロー言語よるプログラミングでは、データの流れを自然に表現し、ユーザーインタフェース制御器を直感的にマッピングするため、データや制御器の入力を簡単に表示したり変更したりすることができます。
初心者にとっては、LabVIEWを用いることで、一般的な計測・オートメーションタスクが直観的なプログラムとなります。プログラミング経験が無くても、システムをすばやく簡単に構築することが可能です。

例として、Forループを使用して集録した温度データをXYグラフにプロットするサンプル(VI)を示します。サンプリング周期と描画するデータ数を指定すると、グラフはシミュレートされたデータ点がすべて集録された後に、データを描画します。
まず、制御器(ノブ、ボタンなど)と表示器(グラフ、LEDなど)を使ってフロントパネル(図2)を構成します。制御器は、入力デバイスをシミュレートしたもので、データをブロックダイアグラム(図3)に渡します。表示器は、出力デバイスをシミュレートしたもので、ブロックダイアグラム(図3)で集録、生成したデータを表示します。フロントパネルを構成後、グラフィカルに表示された関数を使って、コードを追加し、フロントパネルのオブジェクトを制御します。ブロックダイアグラムには、このグラフィカルなソースコードがあり、端子・関数・定数およびワイヤなどを編集することで、データの集計・解析・表示機能を実現します。

図. 2フロントパネル
図. 2フロントパネル
図. 3ブロックダイアグラム
図. 3ブロックダイアグラム

グラフデータや波形の表示・描画は、VC++やVBなどで開発すると、大量の時間や費用が必要と思われますが、LabVIEWでは上記のサンプルを作成するのに10分もかからないでしょう。また、科学者やエンジニアは直感的なプログラミングができるため、大学や研究所などでよく使用されています。

LabVIEWでは、データ計測のためのモジュールが多く提供されています。
LabVIEWは、日本ナショナルインスツルメンツ(株)のDAQソリューションを含む数多くのメーカーが提供している様々な計測器を制御する可能です。(計測器ドライバネットワークにより600以上の計測器の制御ドライバを入手することが可能)
また、GPIBをはじめ、VXI、RS-232、RS-485、TCP/IP等、強力な計測器制御インタフェースを装備しているため、計測装置と簡単に接続、通信でき、すばやくデータを集録できます。
LabVIEWは、信号合成・周波数解析から、高速フーリエ変換(FFT)まで多数の関数が用意されています。そのため、集録したデータを各種関数で処理することで、複雑な計測も簡単にできるようになります。
上記のXYグラフを代表としたチャートやグラフ、温度計、2D や 3D グラフなど、データをグラフィカルに表示する視覚化ツールが搭載されています。色、文字サイズ、グラフの回転やズームなどのダイナミックな機能も搭載しているため、多彩でプロフェッショナル仕様のインタフェースを手軽に作成できます。

ただ、当然のことですが、LabVIEWにも欠点があります。
実際にLabVIEWを使用して開発を行う中、システムが複雑になると、思ったほどにプログラミングが簡単でないことがわかりました。1つのアイコンや1本のワイヤの中にある機能や設定をきちんと理解しないと、なかなか思い通りに動作できなく苦戦に陥ることもあります。
直感的にプログラミングできるのがLabVIEWの特徴ですが、システムの規模が大きくなればなるほど、プログラムがわかりにくくなる傾向があります。そこで、仕様を把握し充分のシステム設計を行い、サブVI化やLib化などのLabVIEW機能を活用すれば、簡潔でわかりやすいプロフェッショナルプログラムを作成することが可能です。

(R.R.)


関連ページへのリンク

関連するソフテックだより

ページTOPへ