LabVIEWでデータ測定用のハードウェア(DAQ)を扱おうという初心者の方に向けて、道しるべになるような情報を発信していこうという試みです。
シリーズ1回目としてまずはこのシリーズ全体のイントロです。
この記事は、以下のような方に向けて書いています。
- LabVIEWでDAQの測定を行いたい
- ハードウェアを操作するためにまず何をすればいいの?
- NI MAXって何?
もし上記のことに興味があるよ、という方には参考にして頂けるかもしれません。
LabVIEWでハードウェアを扱う
プログラミングを行う目的の一つとして、何か人間がやるには面倒くさすぎる事、複雑すぎる事、退屈すぎる事をPCや各種装置に、文字通り機械的に行わせるということがあると思います。
人間がやろうと思えばできるようなこともありますが、とにかくメンドクサイ、そんな作業を自動化できるのであれば、それに越したことはないはずです。
ただ問題は、そういった命令を正しく与えないと目的は達成できず、そして正しく命令を与えるために結局「プログラミングの仕方を学ぶ」という手間が発生することです。
そのくせ、プログラミング「言語」というだけあって、文法があるのでこれを覚えるのも苦労してしまい、結局目的を達成するための手段に慣れるのにかなりの労力を費やしてしまうことになりかねません。
そこで登場するのがLabVIEWです。これもプログラミング言語に変わりありませんが、ハードウェアの制御のためにだけにプログラミングを学ぶ必要がある、という方でも比較的簡単に慣れることのできる言語だと思っています。
このブログでは「LabVIEWまずこれ」というシリーズで、ハードウェア操作には触れずにLabVIEWそのものの操作について基本的なことができるまでの道筋について紹介していますが、そもそもはハードウェアを操作するのに適した言語であるため、こちらについても触れていこうと思います。
ハードウェアの操作は、例えばDAQアシスタントを使えば簡単なことでしたらすぐに組むことができます。LabVIEWを触ったことがない方に向けた以下のページでそんなExpress VIでハードウェア操作を行う方法について紹介しています。
ただ、せっかくであれば、Express VIは使用せず、一つ一つの関数でハードウェア操作を行えた方が、柔軟性もありますし応用が効きやすいのは間違いないです。
そこで、LabVIEWを広めようと思い始めたこのブログの趣旨とも合うと思い、ハードウェア操作に必要な事柄をまとめようと思います。
なお、ここでいうハードウェアとは専らNational Instruments社が出しているDAQハードウェアを指します。
もちろん世の中に信号測定用のハードウェアは数多くあり、それらもコマンド送信で制御できるタイプであればLabVIEWで操作できることについては以下の記事で触れています。
とはいえ同じ会社から提供されている分、親和性が高いのはLabVIEWとDAQの組み合わせであり、アナログ、デジタル信号の測定を行う上で扱いやすいのがポイントです。
ちなみに「いやいや、DAQなんて持っていないよ」とか「まだ手元にないんだけれど」という方でも扱えるように、シミュレーションデバイスの作り方も後で紹介していますので、実際の機器が手元になくても読んでいただけるかなと思います。
前提条件
これからのお話しは、ある程度LabVIEWを触ったことがあるという方に向けて書こうと思っています。おおよそ
- LabVIEWを立ち上げてからの新規viの開き方、プログラムの実行方法、フロントパネルやブロックダイアグラム上の制御器パレットおよび関数パレットの操作がわかる
- 関数の探し方(検索窓やクイックドロップなど)が分かる
- データ保存の仕方が分かる
- 繰り返し構造の組み方がわかる
といったところができるとスムーズだと思います。
要所要所で操作の解説もいれていくつもりですが、もしこれらが全然わからないということでしたら、よろしければまずこれシリーズを参照してみてください。
繰り返し構造までの内容でしたら、チャートやグラフの扱いも含めてシリーズ12までの内容となります。
また上にも記載しましたが、DAQのみならず、National Instruments社が提供している他のハードウェア、および他のベンダーが出している計測機器もLabVIEWで操作することができます。ただこれらは本当に機器によって操作の仕方は千差万別でありまた私も多く触ったことがあるわけではないので本記事のシリーズでは扱っていません。
本記事ではDAQ製品のセットアップから改めて紹介していき、アナログ、デジタルの入出力といった個々の計測トピックについて紹介していこうと思います。
ドライバの用意
まず手始めに、ドライバソフトウェアの用意から始めていこうと思います。
ハードウェアは、DAQに限らず、それこそキーボードやマウスなどもドライバソフトウェアがあることで操作ができています。USBのマウスを初めて接続すると、ドライバをインストール中ですといった表示が出るあれですね。
DAQも例にもれずドライバソフトウェアが必要となり、DAQmxと呼ばれています。これはNational Instruments社のホームページからダウンロードすることができます。「DAQmxドライバ ダウンロード」などとググると見つけることができるので入手しておきましょう。
USBマウスなどのように、接続したら自動的にインストールされるものではないので注意が必要です(DAQmxをインストール後にハードウェアを接続するとその特定ハードウェアに対するドライバが割り当てられますが、どちらにしろまずはDAQmxドライバのインストールは必須です)。
インストーラをダウンロードしたらあとはDAQmxドライバをインストールするだけなのですがいくつか注意点があり、
- 必ずLabVIEWをインストールし終わった状態でDAQmxをインストールする
- DAQmxインストール時にはDAQmxで動かすハードウェアを接続しない
- LabVIEWとの互換性を注意する
といったものがあります。
LabVIEWをインストールし終わった状態でなければいけないのは、DAQmxインストール時に、既にそのPCにインストールされているLabVIEWのバージョンから必要なサポート(関数など)が判断されインストールされるためです。
まだLabVIEWをインストールしていないという場合には以下の記事も参考になるかなと思います。
インストール中にハードウェアを接続しないというのは経験上の話です。何も接続しない状態でドライバソフトウェアをインストールして、再起動後にハードウェアを接続することでその特定のハードウェアを正常に認識させる、という順番でないと正しく認識されない経験が何度かあります。
LabVIEWとの互換性はこれまた「LabVIEW DAQmx 互換性」とググると資料が見つかるようです。互換性がないとうまくLabVIEWから操作できないので注意します。
ダウンロードができているかどうかを確かめる方法としては、
- NI MAXのソフトウェア欄を確認する
- NI パッケージマネージャでDAQmxの項目が表示される
といったことが挙げられます。( これらのソフトウェアは、LabVIEWがインストールされているPCには知らない間にインストールされています。 )
すぐ下で扱いますが、NI MAXとは、主にハードウェアを管理するためのソフトウェア、NIパッケージマネージャは(National Instruments社の)ソフトウェアを管理するためのソフトウェアとざっくり覚えてもらえればいいと思います。
NI MAXは主な役割がハードウェア管理ですが、ソフトウェアの一覧も取得することができます。ただ、閲覧するだけであって例えばアンインストールなどはできません。ソフトウェアのアンインストールはNIパッケージマネージャで行います。
NI MAXとは
ドライバソフトウェアがインストールされているのであれば、ソフトウェアの準備はOKです。さぁさっそくハードウェアを使ってみよう、の前に、NI MAXでいくつかの確認をすることをオススメします。
ここで出てきたNI MAXとは、LabVIEWなどをインストールすると気づかないうちに一緒に入っている、ハードウェア管理ソフトウェアのことで、NI Measurement & Automation Explorerを略してNI MAXと呼ばれます。本ブログでもNI MAXという通称をそのまま使用します。
このソフトを操作することで、
- ハードウェアをシミュレートできる
- ハードウェアの接続状況を確かめられる
- ハードウェアのキャリブレーションができる
- ハードウェアのピン配列を確認できる
- ハードウェアを使って単純な測定ができる
- LabVIEWで使用する際のハードウェアの種々の設定ができる
といったことができます。以下それぞれについて紹介していきます。
ハードウェアをシミュレートできる
まずは、そもそもDAQハードウェアなんて持っていないよ、という方もいるかなと思うので、シミュレーションデバイスの紹介をしがてらその作り方を紹介します。
この機能を使うことで、あたかもハードウェアが存在するかのようにNI MAX上での操作やあるいはLabVIEWプログラムの中でハードウェアを使用することができます。
例えば、下の図では、NI cDAQ-9174とNI 9215というハードをシミュレーションデバイスとして用意し、これを実際にLabVIEWプログラムで動かしている様子を表わしています。
もちろん実際のハードウェアを既に持っているという場合には必須の内容ではないのですが、やり方を知っておいて損はないはずです。
実際やり方はとても簡単で、NI MAX上でマイシステムの中のデバイスとインタフェースを右クリックして新規作成を選び、シミュレーションデバイスを構成を選択してシミュレーションで使用したいハードウェアを選ぶだけ、です。
本記事ではごくごくシンプルに、アナログ信号を測定するためのモジュールとしてNI 9215というモジュールを使用します。
ただしここで注意点があります。それはこのNI 9215というハードウェアは「カセット」であり、このカセット単体では使用できないということです。
カセットを使用するには、これを挿すシャーシとなる部分が必要となり、シミュレーションデバイスではこのシャーシを選択後、そのシャーシに対してさらにNI 9215を選択するという流れになります。
以下の例ではcDAQ9174というシャーシを使用してNI 9215を使用するというシミュレーションをおこなっています。
なお、シャーシとカセットどちらかをシミュレーション、どちらかを実機といった具合に混在させることはできません。
こうしてシミュレーションデバイスを用意することができたと思います。
ちなみに、実機とシミュレーションデバイスは色で区別することができます。
MAX上では、その機器の名前(NI 9215など)とは別に任意につけられる名前があります。そしてこの「任意につけられる名前」は、LabVIEWのプログラム上で「このハードウェアを使用するぞ」、ということを指定するのに使用します。
名前は実機でもシミュレーションデバイスでも自由に付け替えできますが、実機がPCに接続されPCがそれを検出した場合にポップアップが表示されここにNI MAX上での仮の名前が表示されます。
名前はNI 9215のようなカセットの方だけではなく、シャーシに対しても自由につけられますが、既に存在している名前は使用できません(重複するとLabVIEW上で指定するときに不便だからですね)。
ハードウェアの接続状況を確かめられる
NI MAXはハードウェアの管理ソフトとして、ハードウェアが正しく接続されていてLabVIEWで使用する準備も整っていますよということを確認できる機能があります。
これはセルフテストと呼ばれています。
セルフテストがうまくできれば少なくとも接続は問題なさそうだ、と判断できます。
なお、シミュレーションデバイスでは必ず成功します。
ハードウェアのキャリブレーションができる
NI MAXで内部的なキャリブレーションが行えます。
ただしここでいうキャリブレーションとはセルフキャリブレーションと呼ばれるもので、National Instruments社が出している資料を見る限り、「既知の内部基準電圧を期待値と比べて温度変化に対する補償を行う」もののようです。
デバイスの温度変化による動作への影響を校正するものということかと思います。いわゆる経年変化によるADCのドリフトなどは外部校正が必要となりNI MAXでは扱えないようです。
ちょっと難しい話でしたが、要は前回のキャリブレーション時の温度と今使用時の温度が大きく異なる可能性があるのであればセルフキャリブレーションしておく方がいいということだと思います。
また、ハードウェアによってはそもそもセルフキャリブレーションを行うという選択肢がないものもあります。先ほどから例に出しているcDAQのデバイスはこれがない一方で、Xシリーズと呼ばれているハードウェア(例えばUSB 6361)にはこれがあります。
ハードウェアのピン配列を確認できる
これは地味にいい機能です。
DAQは測定信号を収集したり、出力する信号を生成するためのハードウェアであり、実際の「信号」は何かしらのセンサからの電気信号です。そのため、それらのセンサからの信号をDAQに接続する必要があります。
このとき、どの端子につなげればいいのかを確認するためにピン配列を知る必要があるのですが、いちいちマニュアルをネットから探してピン配列の項目を見る・・・というのはとても面倒です。
その分、NI MAXからピン配列を一発で確認できるのは実際かなり便利です。
ハードウェアを使って単純な測定ができる
LabVIEWでプログラムを組む前に、本当に信号が測定できているか不安だ、という場合もあると思います。そんなときのためにNI MAXから簡易的にハードウェアの操作が行える機能があり、テストパネルと呼ばれています。
データの記録こそできないものの、実際に信号を測定あるいは簡単な信号の出力を実際に行うことができます。もしこのテストパネルの時点で期待した値が得られていない場合にはLabVIEWプログラムを使っても同様なので、配線の緩みがないかなど確認する必要がある、と判断できます。
シミュレーションデバイスの場合、このテストパネルは決まった波形(正弦波)の測定結果を表示します。また、信号出力については構成はできますが特に何も反応はしません。
LabVIEWで使用する際のハードウェアの種々の設定ができる
NI MAXとLabVIEWは切っても切れない関係にあります。というのも(少なくともNational Instruments社のDAQ製品については)NI MAXで認識されていることがLabVIEWで操作できることの必要条件になっているからです。
LabVIEWでハードウェアを操作する際にも、「このハードウェアを操作するぞ」ということを指定するために、当然プログラムの中でハードウェアの指定を行う必要があります。これはそのハードウェアの名前を指定することでできるのですが、その名前をNI MAXで設定することができます。既に上で紹介しましたね。
これは実機だろうとシミュレーションデバイスだろうと同じです。この名前をLabVIEW上で指定することになります。
また、LabVIEWを使用して本格的にプログラムを書く際に重要な概念である「タスク」をNI MAX上で構成することもできます。ただしこれは「固定したタスク」であり柔軟性を持ちません。
そのためプログラムの中でユーザーが好きにパラメタを変更して操作する、という場合には向かない機能になっています。
と、いきなりタスクという新しい単語を出しました。このタスクについては、よりプログラムの中身の話に踏み込んだ内容となりますので、タスクについての具体的なイメージは次回LabVIEWのプログラムとも絡めて紹介しようと思います。
まずはざっくり、DAQmxのインストールとNI MAXについて紹介してきました。ハードウェアを手に入れて、右も左もわからない、というときにまずは今回紹介したNI MAXを使用して色々と触って、DAQを使うということに慣れていければいいかなと思います。
次回は実際にLabVIEWでハードウェアを操作することについて紹介していこうと思います。
もしよろしければ次の記事も見ていってもらえると嬉しいです。
ここまで読んでいただきありがとうございました。
コメント