Webサーバを使用してフロントパネルをリモートで参照および制御する
- 更新日2025-08-27
- 10分で読める
LabVIEWの標準Webサーバに接続すると、LabVIEW内部またはWebブラウザから、VIフロントパネルをリモートで参照表示することができます。さらに、LabVIEW内でVIフロントパネルをリモート制御することもできます。
フロントパネルをクライアントからリモートで開く場合、Webサーバはフロントパネルをクライアントに送信しますが、ブロックダイアグラムとすべてのサブVIはサーバコンピュータに残ります。VIフロントパネルをリモート制御する場合、ブロックダイアグラムがサーバ上で実行していることを除いて、VIをクライアント上で実行している場合と同様にフロントパネルと対話することができます。この機能を使用して、フロントパネル全体をパブリッシュしたり、リモートアプリケーションを安全で簡単に、しかも迅速に制御することができます。
クライアント用のサーバを構成する
クライアントがリモートでフロントパネルを表示および制御するためには、サーバコンピュータのユーザがまずサーバを構成する必要があります。ツール»オプションを選択して、カテゴリリストからWebサーバページを選択し、Webサーバを構成します。これらのページを使用して、サーバに対するブラウザのアクセスを制御し、リモートで表示可能なフロントパネルを指定します。また、これらのページを使用して、複数のクライアントがVIの制御を待機している場合に、特定のリモートクライアントがVIを制御できる制限時間を設定することもできます。
Webサーバを使用すると、複数のクライアントが1つのフロントパネルに同時に接続できますが、フロントパネルを制御できるのは一度に1クライアントのみです。サーバコンピュータのユーザは、いつでもVIを制御することができます。コントローラがフロントパネル上の値を変更すると、すべてのクライアントのフロントパネルに変更が適用されます。ただし、クライアントのフロントパネルにはすべての変更は反映されません。通常、クライアントのフロントパネルには、フロントパネルオブジェクトのディスプレイに加えられた変更は反映されず、フロントパネルオブジェクトの実際の値に加えられた変更が反映されます。たとえば、コントローラがチャートのマッピングモードまたはスケールのマーカ間隔を変更したり、コントローラがチャートのスクロールバーを表示/非表示にすると、これらの変更はコントローラのフロントパネルにのみ反映されます。
LabVIEWまたはWebブラウザからフロントパネルを表示および制御する
クライアントは、Webブラウザからのみフロントパネルをリモートで表示できます。ただし、クライアントはLabVIEWを使用してフロントパネルをリモートで表示することも制御することもできます。
LabVIEWからフロントパネルをリモート制御するには、クライアントコンピュータとサーバコンピュータで同じバージョンのLabVIEWを実行する必要があります。ブラウザを使用してリモートのフロントパネルを表示する場合、サーバコンピュータ上のLabVIEWのバージョンに対応するLabVIEWランタイムエンジンのバージョンを使用する必要があります。また、サーバ管理者に問い合わせて、HTMLドキュメントでLabVIEWランタイムエンジンの正しいバージョンを指定していることを確認してください。
Webブラウザからフロントパネルを表示する
LabVIEWがインストールされていないクライアントがフロントパネルをリモートで表示できるようにする場合、クライアントはWebブラウザを使用できます。
- WebサーバでWebパブリッシュツールを使用して、VIをパブリッシュします。
- 生成されたWebアドレスをクライアントに提供します。
フロントパネルをLabVIEWで表示および制御する
LabVIEWをクライアントとして使用してリモートフロントパネルを表示するには、操作»リモートパネルに接続を選択し、リモートパネルに接続ダイアログボックスを表示します。このダイアログボックスを使用して、サーバのインターネットアドレスと表示するVIを指定します。デフォルトでは、リモートVIのフロントパネルはオブザーバモードになっています。VIを要求する際に、リモートパネルに接続ダイアログボックスの制御を要求チェックボックスにチェックを入れて、制御器を要求することができます。VIがコンピュータに表示されたら、フロントパネルの任意の部分を右クリックして、ショートカットメニューから制御を要求を選択することもできます。また、フロントパネルウィンドウの下部にあるステータスバーをクリックしてもこのメニューにアクセスすることができます。他のクライアントが制御していなければ、フロントパネルが制御可能であることを示すメッセージが表示されます。他のクライアントがVIを制御している場合には、他のクライアントが制御を停止するか、制御がタイムアウトになるまで、サーバはその要求を待ち行列に入れます。サーバコンピュータのユーザのみがツール→リモートパネル接続マネージャを選択してクライアントの待ち行列リストを監視することができます。リモートコンピュータ上で実行しているVIによって生成されるデータを保存する場合には、リモートフロントパネルではなくTCPを使用します。
クライアントから表示および制御するすべてのVIは、サーバコンピュータのメモリ内にある必要があります。要求されたVIがメモリ内にある場合、サーバはVIのフロントパネルを要求側のクライアントに送信します。VIがメモリにない場合には、リモートパネルに接続ダイアログボックスの接続状況のセクションにエラーメッセージが表示されます。
| メモ (Linux) NIは、Linuxでリモートフロントパネルをサポートしません。 |
複数のクライアントでリモートフロントパネルを同時に制御する
複数のクライアントから1つのVIを同時にリモート制御できます。同時制御を可能にするには、VIは再入可能でなければなりません。再入可能VIを作成するには、ファイル»VIプロパティを選択し、カテゴリリストから実行を選択し、クローン共有による再入実行またはクローンの事前割り当てによる再入実行チェックボックスにチェックマークを付けます。リモートフロントパネルに対する各クライアントからの要求に対して、その再入可能VIのクローンが自動的に開きます。フロントパネルのリモート接続では、Webサーバ:VIアクセスリストプロパティを使用して、メモリにロードされているクローンへのアクセスをプログラム的に制限できます。
リモートフロントパネルの参照および制御でサポートされていない機能
以下のリストには、サポートされていない機能およびリモートフロントパネルを参照および制御する際の注意事項が含まれています。
- Whileループを使用していて「待機」関数がないVIはエクスポートしないでください。これらのVIによりバックグラウンドタスクが適度な時間制限内に実行されることが阻止されるため、リモートで参照または制御する際、フロントパネルが応答しなくなります。
- 一部のVIは、リモートコンピュータではローカルコンピュータで実行した場合と同様に動作しません。組込式の.NETおよびActiveXコントロールはLabVIEWからほとんど完全に独立して描画および操作するため、リモートクライアント上では表示しません。VIが標準のファイルダイアログボックスを表示した場合、リモートでファイルシステムを検索することができないため、コントローラはエラーを受信します。また、パス制御器の参照ボタンはリモートパネルでは無効になります。
- 接続しているフロントパネルがビルドアプリケーションからであるかないかにより、フロントパネルをリモートで参照しているクライアントには異なる動作が見受けられる場合があります。特にビルドアプリケーションからのフロントパネルの場合、クライアントがフロントパネルに接続する前にフロントパネルにプログラム的な加えられた変更はクライアントコンピュータに反映されません。たとえば、クライアントがそのフロントパネルに接続する前にプロパティノードにより制御器のキャプションが変更された場合、クライアントには変更されたキャプションではなく変更前のキャプションが表示されます。
- 唯一コントローラのみが、VIサーバを介して動的に開かれ、起動されたVIのフロントパネル、または呼び出し時にフロントパネルを表示するように構成されたサブVIのフロントパネルをリモートで参照することができます。VIを制御していないクライアントはフロントパネルを参照することはできません。
- フロントパネル制御器のプロパティをポーリングして特定のユーザインタフェース効果を達成するブロックダイアグラムは、リモートコンピュータからVIを制御する際パフォーマンスが低下することがあります。「フロントパネルアクティビティを待機」関数を使用して、これらのVIのパフォーマンスを向上することができます。
- リモートで表示または制御されているVIのパネルを閉じるイベントは発生しません。VIをリモートで表示または制御している場合、LabVIEWはアプリケーションまたはVIクラスにない制御器クラスでのみイベントを生成することができます。
- サブVIの呼び出し時にサブVIのフロントパネルを表示するVIをりモードで参照または制御している場合は、そのサブVIのフロントパネルを手動で閉じないようにします。そうしないと、クライアントコンピュータとサーバコンピュータの両方でVIの制御ができなくなる場合があります。呼び出し時にサブVIのフロントパネルを参照する必要がある場合は、LabVIEWで実行後にサブVIを閉じるよう構成します。