LabVIEWはグラフィカルなプログラミング環境を提供するNational Instruments社の製品です。容易にアプリケーション(特にLabVIEWではVI:Virtual Insturmentと呼ばれる)を作成でき、GPIB等との相性も良いことから各種計測系によく使われています。
ActiveXという技術はもともとMicrosoftが提唱したもので、要は既存のプログラムを外部から操作するための規格です。つまり、LabVIEWから既存のアプリケーションを制御することが可能です。(正確には、「制御できるアプリケーションがある」)
こんなときの例としては大抵ExcelかWordの操作が挙げられるのですが、もうちょっと私のいる業界よりの例をあげてみることにします。 簡単のためエラー処理やcloseなどは一切省きました。
高性能データ解析・可視化ソフトですが、外部から操作を施すことで高性能データロガー及びストレージとして使用しても便利です。例えば以下のようにすると、既存の"mywave"というwaveからデータを取得できます。
Roper Scientific社の供給する分光器や光検出器の制御、データ取得のためのソフトです。以下は、露光時間を設定して測定を開始し、測定し終わるまで待ってファイルをセーブするという動作を行います。これをサブVIなどにまとめておくと、既存の計測機器と連携にあたって便利かもしれません。
LabVIEWにおいてはアプリケーション間通信をDataSocketと呼ばれる機能によって実現できます。DataSocket Serverと呼ばれるものがサーバとなって、それを仲介してデータのやりとりが可能なのですが、これの御陰で柔軟にネットワーク越しのアプリケーション通信を行うことができます。
さて、National Instruments社ではComponentWorksという製品を取り扱っておりますが、これは乱暴にまとめるとLabVIEWに見られる機能をActiveXで実装したものの集合です。これを使えばVisual BasicやVisual C++からDataSocketと通信するのが容易となりますが、LabVIEW6.1 プロフェッショナル開発システムにはこれらの体験版が附属しています。しかしDataSocketと3D Graphは例外で、これらに関しては正式版が附属している様です。なので、プロフェッショナル開発システムならば、ComponentWorksが無くともVisual Basic等を用いたDataSocket通信が容易に実現されます。
シグマ光機の製品にOptMikeと呼ばれる電動のマイクロメーターがありますが、このコントローラー(OMEC)を制御するためのVIを自作しました。あまり大したものではないので恥ずかしいですが、一応リンクを張っておきます。 お約束ですが、このVIの使用に伴う全ての被害・損害に対して私は関知しません。 また、このVIとシグマ光機は一切の関わりを持たないので、何かあれば私の方に連絡をお願いします。(対処できるかは不明ですが)
AXIS社のネットワークカメラにAXIS 205(これはぷらっとホームへのリンクです)というものがあります。このカメラの画像はInternet Explorerで取得できるのですが、ある時間毎にセッセと静止画を保存したかったので作ってみました。ファイル出力先とIPアドレス、時間間隔を入力するだけの単純なものです。