2011/02/05

LabVIEWと研究

日本ナショナルインスツルメンツ株式会社(以下、NI)が販売しているLabVIEWというプログラミング環境とデータ取込ボードを愛用している。LabVIEWとは一言で言えば、アイコンをつなげていくことでプログラムを作成可能な言語となるのかもしれないが、なかなか奥の深いものである。

http://digital.ni.com/worldwide/japan.nsf/main?readform

私は小3のころからアセンブラなどの低級言語やN88 BASICなどの高級言語を使ってプログラミングを独学で勉強してきた。CやJavaなども書いてきたが、コード量の多くなる言語は苦手で、実行速度よりも、開発速度の速い言語を好んできた傾向にある。最近では、MATLABとLabVIEWがお気に入りである。

キャラクターベースのプログラミング言語に慣れ親しんでいるとLabVIEWは強烈なカルチャーショックを受ける。While文は繰り返したいアイコンを枠で囲むとか???なとまどいが最初はあった。

LabVIEWを始めなくてはならなくなったきっかけは、あるPJで熱伝導率計を作成しなくてはならなくなったからだ。アナログインプット、アナログアウトプット、4つのPID制御、4入力、3出力の制御系を組むためにNIの営業マンと相談し、有料セミナーを受講し、同時にComapctDAQとDAQモジュールを購入した。セミナーはとてもよく短期間でLabVIEWの神髄を習得できた。CompactDAQでのLabVIEWプログラミングもサクサク進み、1ヶ月ほどで、プロトタイプが完成し、3ヶ月ですべての要求定義を実装することができた。
私のような素人では、キャラクターベースの言語では到底不可能な開発スピードはLabVIEWならではである。

一旦、LabVIEWを習得すると様々な機器の制御ができるようになる、というかしてみたくなる。研究室内のあらゆる装置が私のプログラムで動いている。一例を挙げると、
・熱伝導率系(ガードヒータ法)
・磁気浮遊天秤の高圧ポンプと高温サーキュレータの設定値制御
・可視化装置の圧力と制御とビデオ撮影の同期
・誘電率測定装置のネットワークアナライザーの装置制御
・レオメータのアナログデータの取込とデータ解析
・Photo DSCのUVランプとの同期
・real time FT-IRのUVランプとの同期
・一方向温度場可視化装置
などなどである。

NIはLabVIEWという開発環境とデータ取込ボード(DAQ)を同じ会社が販売しているので、両者の親和性が、つなげば動くため大変扱いやすい。MATLABもSIMULINKなどで似たようなことを実現できるが、別途データ取込ボードを用意しなくてはならず、煩雑かなと思う。私にとってのMATLABは、大規模行列の解析ソフトである。MATLABもコード量が少なくて済むので、プログラムが楽だし、適度に早い。

話は飛んでしまうが、LabVIEWとDAQ製品はFPGAや画像解析の機能も充実しているので、今後は、画像解析データをもとにした相分離過程の構造制御のためのプロセス制御をやってみたい。材料プロセスのためのプロセス制御系をLabVIEWなら簡単に構築できるので、化学工学分野でも今後は利用する研究者がもっと増えてくるのではと思っている。

もっとも、私がこれらのソフトを気兼ねなく使用できる理由は、私が所属している京都大学がLabVIEWとMATLABのサイトライセンスを提供しているためである。この環境はとても恵まれていると思う。