Javaによる装置の遠隔制御実験

背景

ネットワークに分散した周辺装置や計測装置
従来、計測や制御で用いられる装置はバスに接続されることはあってもインターネットのような広域なネットワークに接続されることはありませんでした。これは、装置の機能としてリアルタイム性を持たないネットワークは軽視されてきたためです。近年のインターネットの普及に伴ってようやくこれらの機器もプリンタの様にネットワークインターフェースを備えて外部から制御したり、外部にデータを提供したりできるようになりました。

インストールの悪夢
しかし、ネットワークを介した装置の操作には操作しようとするパソコンにあった専用のソフトウェア、例えばWindows版やMac版といったものが必要でした。これらのソフトウェアをインストールしなければすべてが始まりません。そしてこのインストール作業にまつわるトラブルはユーザーは勿論の事、メーカーも望んではいないはずです。考えてみてください。これから使おうとする装置が手元にあったらそれ以外の装置にはできるだけ手を触れたくないでしょう?

ブラウザ−から設定
インターネットの普及はブラウザ−と呼ばれるソフトウェアの普及と言って良いほどブラウザは一番身近にあるソフトウェアとなりました。このソフトウェアを使って周辺装置や計測装置の操作ができないでしょうか?もしできたならば「インストールの悪夢」から開放されるのです。それはできるのです。今SOHOで広く普及しているルータのような機器は早くからこの機能を備え、素人でも直ぐに使い始める事ができるようになりました。

ちょっと物足らないGUI
インターネットを使ったことのある人なら誰でも1度はインターネットの画面(GUI:グラフィカル・ユーザ・インターフェース)が物足らなく感じたことがあると思います。勿論、画面を作った人の意匠や技術力の差もありますが今の技術で越えられない限界や制約があるのも事実です。例えば、インターネット電話と言うのがありますが、電話のような機能をブラウザで実現する事はできるでしょうか?そう、できなくはありません。〇〇社のブラウザ−で、バージョンXXX以上で、、、又しても「インストールの悪夢」が蘇ってくる様です。普遍的で機能性の高いGUIは無いのでしょうか?

Javaを用いて周辺装置や計測装置を設定
この要求に対して、ネットワーク環境で優れた移植性、安全性、開放性に特徴を持つJavaは現在の技術では一番優れた答えを用意しています。各種のGUI部品(コンポーネント)がある事は勿論、それらを継承したり組み合わせたりして新たな部品を作成することができる事ができ、これがインストールする事無くほとんどのブラウザ−で動くのです。今回、このJavaを使って周辺装置や計測装置が設定、操作できる事を確かめました。

モデル
  • 各種計測装置(オシロスコープ,,,)
  • RS-232C接続機器(モデム、デジタルカメラ,,,)
  • プリンターポート接続機器(ネットワーク会議用カメラ,,,)
  • 計測制御用インターフェース(A/D、D/A、GP-IB,,,)

実験プログラム

コンピュータAと別のコンピュータBをネットワークで接続します。実験プログラムである、アプレットサーバーはいずれもコンピュータBの中にあります。コンピュータAのブラウザ−を使ってコンピュータBのアプレットを表示すると、3つのボタン、すなわち「RTS」「DTR」「CLR」が表示されます。これらのボタンを押すとコンピュータBのRS-232Cの状態が変化します。
  • RTS....送信要求(Request To Send)信号を出力する
  • DTR....データ端末レディ−(Data Terminal Ready)信号を出力する
  • CLR....RTS,DTRを無効にする
コンピュータAコンピュータB
ネットワーク
<----->

※実験プログラムとしてはこれで十分ですが、コンピュータBはインターネットのどこからでも制御されてしまうので、実際は認証の機能が必要になります。

結果

下記のコンピュータからRS-232Cの状態を変える事ができました。
コンピュータOSブラウザー
Gateway SOLO 9100 Windows 98Internet Explorer 4.0
SUN SPARC ststion 20 Soralis 2.4Netscape Navigator 4.06



この結果にとどまらず、コンピュータやブラウザのバージョンには関係なくJavaの実行環境があればどんな環境でも動作します。また、これと同じ方法を使えば次のような入出力装置も制御可能です。
  • 各種計測装置(オシロスコープ、、、)
  • RS-232C接続機器(モデム、デジタルカメラ、、、)
  • プリンターポート接続機器(ネットワーク会議用カメラ、、、)
  • 計測制御用インターフェース(A/D、D/A、GP-IB、、、)

今後

今回は単純な試験でしたが、次回は実用的な装置(例えばA/D機能を持った計測装置)を製作したいと考えています。