LabVIEWという言語が最適
さて、第一回でご提案した、“動く仕様書”として組み込みボードをおこす前にパソコン側ですべてその試作品の動きや表示をやってしまおう、という話でしたが、その動きや表示をうまく動作させるには当然何かしらの制御プログラミングが必要となります。前回では特にどのような言語でどのように行うかまでは述べておりませんでした。
さて、早速ご紹介です。今回は特にこの“動く仕様書”にも対応出来る特筆すべきすごい機能を満載したプログラミング言語があります。すでに有名な(でしょうか?)ナショナルインスツルメンツ製の開発言語、そうあれです、LabVIEWです。グラフィカルな言語で、ソースコードはマウス操作でほとんど行うという超高級言語です。
そこで、そのLabVIEWに取り組む前の重要な2点を述べたいと思います。
その1.パラダイムシフト
その昔、私ごとの話ですが、UMLを先に学び、その後にJavaを習得した時のあの感動!まさにオブジェクト指向のパラダイムがどーんと私の頭に衝撃を与えた瞬間でした。さて、その数年後、また新たなパラダイム転換の時が訪れました。そうLabVIEWです。グラフィックでのコーディング、状態遷移をメインにしたプログラム構造、洗練されたGUI、巨大な関数群。ものすごいポテンシャルの高い言語です。成果への最短距離が走れます!このパラダイムシフトは実際に体験して頂く以外方法はありません。プリンの味を表現するには食べてみるしかない、と誰か言っていました。では早速NI社から評価版をDLしてその面白さに触れてみましょう。Linux版、MacOS版もあります。http://www.ni.com/labview/ja/
その2.Freeじゃない!
これでひるんではいけません!
あるストーリー(fictionですが)があります。
C男さんとラーボーさんは共に計測制御K社の新入社員です。C男さんはC言語、ラーボーさんはLabVIEWをやることになりました。C男さんへの初期投資は0円、ラーボーさんには約100万円かかりました。さて、半年後、ラーボーさんは早速LabVIEWで何か測定器をつなぎ始めグラフやサンプリングをガンガン始めました。C男さんはドライバ作成などでまだまだ冷や汗をかいています。さて、1年後、ラーボーさんはとうとうPIDを駆使してモーションコントロールを初めてしまいました。2年後、ラーボーさんは計測制御に関してのコンサルタントにまで成長しました。C男さんは、やっとドライバが出来たくらいでした。
大げさなストーリだと感じている方も多いでしょうが、実際そのくらい大きな収穫をもたらす言語ですので、短期間でおおきなリターンを期待出来ると思います。
さて、DLしたら早速スタートしましょう。
通常、何かしらの開発言語を始めるとき、なぜか必ず“Hello World!”をコンソールなりポップアップなりに表示することが初めの一歩的存在ですが、これをLabVIEWでやるにはあまりにも意味がないので(10秒で出来ちゃいます)、かつ、今回は紙面が限られているので、あえて何かを作るというよりは、無数にある特徴を断腸の思いでこの3点のおどろきを選びました。正直、もっとすごい特徴があるのですが、初心者の方も加味しての選定となります。
1、いきなりマルチスレッド
実は、これがソースコード。で、この四角く囲われた個々の部分がwhileループ。しかし、これがすでに1つのスレッドとして扱われますので、図に示すようにたくさんのwhileループがあってもそれぞれ独立した制御ループとして動作します。通常このループの中に計算式があったり、サブルーチンを呼んだりと、線がたくさんぐにょぐにょしてきます。ローカル変数もスレッド間で共有出来、また、セマフォやキューも実に簡単にスレッド間で割り当てられます。HMI部品は自動生成してるから配置をするだけ。制御ループ更新周期も待機関数で自由自在。嗚呼、超簡単すぎる…。まるでCADやってる感じですね。配置も自由ですし。これはちょっと顔みたいですね。あまり受け狙いの配置はやめましょう(笑)。
2、いきなりFPGA
FPGAツールキットはNI社のアドオンですが、評価版にも含まれています。ただし、専用ボードが必要になります。う~、買うしかないかなぁ。さっきのBさんもすぐ出来たって言ってるし。この構成でやるとVHDL 言語やボードレベルのハードウェア設計についての予備知識がなくても、カスタム I/O・制御ハードウェアを実現してしまうのですね。FPGA チップとのアップ/ダウンロードが実にみごとに容易に出来てしまう。嗚呼、これまた簡単すぎる…。これでいいのだろうかぁ。
FPGAでは出来ない機能は最初からLabVIEWが最初から持つ機能から抜かれているので、安心コーディングが出来ますね。
3、いきなりRFID開発
これは、弊社で販売している(すみません...)LabVIEW RFID開発ツールキットを使用しての難しそうで簡単な事例です。タグリーダライタのドライバを経由してタグ情報を読み書きし、それをデータベースサーバ(SQL/Postgre, etc…)へSQL文で格納します。正直、すっきりしたコードでかなり複雑な処理が可能となっております。ひょっとしてこのツールで一旗挙げられそうな気がしませんか? 嗚呼、これまた簡単すぎる…。
さて、なんとなくLabVIEWでの開発の威力がぼんやりでも、なんかすごい!とまで感じて頂けたのではないでしょうか。グラフィカルなコーディングスタイルはなんか最先端のラボでヤバい(若者用語)研究している感じがしませんか?
それはさておいて、このLabVIEWでプロトタイプを実装することのメリットを再確認すると、それはまさにLabVIEWそのものが持つ長所に他ならないのです。ある芸人風に言えば、“LabVIEWはプログラマーのパラダイスやぁ”。もし読者がCでLinuxのカーネルをガンガン書くような仕事でないのであれば、やはり、同じ結果を出すには、より楽に、より早く、より安く、より$(給料)をと思うのではないでしょうか。それを意外にも容易に近道で示してくれるのがLabVIEWなのです。
あと、NIさんは無料講習会もたくさん実施されていますので是非活用してみたらいかがでしょうか。
次回は、プロトタイプ手法を用いた組み込み製品とLCDパネルシュミレータのご紹介をします。