この記事で扱っていること
- シリアル番号から物理チャンネルを指定する方法
を紹介しています。
注意:すべてのエラーを確認しているわけではないので、記事の内容を実装する際には自己責任でお願いします。また、エラー配線は適当な部分があるので適宜修正してください。
LabVIEWでハードウェアを動かすとき、特にNational Instruments社製のハードウェアを操作する場合には、プログラムの中でチャンネル名を指定する必要があります。
このチャンネル名とはNI MAXで表示されるリソース名(エイリアス名)で指定することになりますが、この名前はハードウェアに記憶されているわけではなく、接続したPCのNI MAXの情報として記録されています。
そのため、NI MAX上での名前が異なると、いちいち物理チャンネル名を変更する必要がでてきます。
一方で、ハードウェアはそれぞれ固有のシリアル番号を持っています。これは、接続するPCが変わろうと変化することはないので、このシリアル番号の情報を元に物理チャンネル名を特定できれば、PCごとに設定を変える必要がなくなります。
LabVIEWに用意されたシステム構成の関数を使用して、シリアル番号から物理チャンネル名を指定するプログラムを作ってみました。
どんな結果になるか
今回のサンプルでは、シンプルなアナログ入力のDAQプログラムを例にしています。
シリアル番号はハードコード(ブロックダイアグラムに定数として設定)して、どのチャンネル(端子)を使用するかを入力するようにしています。もちろん、この部分もハードコードしてしまってもいいと思います。
プログラムを実行すると、リソース名の検索をし、検索が完了するとLED表示器が光り、実際の物理チャンネル名が表示され測定が始まります。
プログラムの構造
シリアル番号を探す部分については、LabVIEWのメニューバーにあるヘルプから「サンプルを検索」で開くことができるNIサンプルファインダに便利なサンプルがあります。
今回のプログラムではこのサンプルの中身を流用しています。当然、シリアル番号はあらかじめわかっている必要がありますが、NI MAXから確かめることができます。
DAQのプログラムの部分はアナログ入力でなくても構いません。リソース検索がシステム構成の関数で行える、すべてのハードウェアのプログラムに対して適用できると思います。
複数のハードウェアを使用する場合
上で説明したのは一つのハードウェアを使用する場合でした。複数のハードウェアを指定する場合、それぞれに一連のシステム構成のプログラムを実行する方法でも動作はしますが、非効率になります。
そうするよりかは、下のように一度全てのエイリアス名を取得しておいて、文字列検索で見つけてしまったほうが早いと思います。
今回の記事では、シリアル番号の情報からハードウェアの物理チャンネルを指定する方法を紹介しました。システム構成の関数では、それぞれのハードウェアに対しシリアル番号以外の情報もプログラムから取得できます。NIサンプルファインダにあるサンプルを動かしてどういった情報を取得できるのかみてみるのも面白いと思います。
ここまで読んでいただきありがとうございました。
コメント