ウェブサーバを使用してフロントパネルをリモートで参照および制御する



LabVIEW 2018ヘルプ


発行年月: 2018年3月
製品番号: 371361R-0112
製品情報を参照

ダウンロード (Windowsのみ)


LabVIEW 2015ヘルプ
LabVIEW 2016ヘルプ
LabVIEW 2017ヘルプ
LabVIEW 2018ヘルプ
LabVIEW 2019ヘルプ

LabVIEWの標準ウェブサーバに接続すると、LabVIEW内部またはウェブブラウザから、VIフロントパネルをリモートで参照表示および制御を行うことができます。フロントパネルをクライアントからリモートで開く場合、ウェブサーバはフロントパネルをクライアントに送信しますが、ブロックダイアグラムとすべてのサブVIはサーバコンピュータに残ります。ブロックダイアグラムがサーバ上で実行していることを除いて、VIをクライアント上で実行している場合と同様にフロントパネルと対話することができます。この機能を使用して、フロントパネル全体をパブリッシュしたり、リモートアプリケーションを安全で簡単に、しかも迅速に制御することができます。

メモ  VI全体を制御するには、LabVIEWウェブサーバを使用してください。シェア変数を使用して、VIの1つのフロントパネル制御器でデータの読み取りおよび書き込みを行います。

クライアント用のサーバを構成する

クライアントがLabVIEWまたはウェブブラウザを使用してリモートでフロントパネルを表示および制御するためには、サーバコンピュータのユーザがまずサーバを構成する必要があります。ツール→オプションを選択して、カテゴリリストからウェブサーバページを選択し、ウェブサーバを構成します。これらのページを使用して、サーバに対するブラウザのアクセスを制御し、リモートで表示可能なフロントパネルを指定します。また、これらのページを使用して、複数のクライアントがVIの制御を待機している場合に、特定のリモートクライアントがVIを制御できる制限時間を設定することもできます。

ウェブサーバを使用すると、複数のクライアントが1つのフロントパネルに同時に接続できますが、フロントパネルを制御できるのは一度に1クライアントのみです。サーバコンピュータのユーザは、いつでもVIを制御することができます。コントローラがフロントパネル上の値を変更すると、すべてのクライアントのフロントパネルに変更が適用されます。ただし、クライアントのフロントパネルにはすべての変更は反映されません。通常、クライアントのフロントパネルには、フロントパネルオブジェクトのディスプレイに加えられた変更は反映されず、フロントパネルオブジェクトの実際の値に加えられた変更が反映されます。たとえば、コントローラがチャートのマッピングモードまたはスケールのマーカ間隔を変更したり、コントローラがチャートのスクロールバーを表示/非表示にすると、これらの変更はコントローラのフロントパネルにのみ反映されます。

LabVIEWまたはウェブブラウザからフロントパネルを表示および制御する

クライアントは、LabVIEWまたはウェブブラウザからフロントパネルをリモートで表示および制御することができます。

クライアントコンピュータとサーバコンピュータでは、同じバージョンのLabVIEWを実行してください。ブラウザを使用してリモートフロントパネルの表示や制御を行う場合は、サーバコンピュータに搭載されているLabVIEWのバージョンに対応するバージョンのLabVIEWランタイムエンジンを使用する必要があります。また、サーバ管理者に問い合わせて、HTMLドキュメントでLabVIEWランタイムエンジンの正しいバージョンを指定していることを確認してください。

メモ  フロントパネルをリモートで表示および制御するには、まず表示および制御するVIアプリケーションがあるサーバコンピュータで、ウェブサーバを有効にする必要があります。

フロントパネルをLabVIEWで表示および制御する

LabVIEWをクライアントとして使用してリモートフロントパネルを表示するには、操作→リモートパネルに接続を選択し、リモートパネルに接続ダイアログボックスを表示します。このダイアログボックスを使用して、サーバのインターネットアドレスと表示するVIを指定します。デフォルトでは、リモートVIのフロントパネルはオブザーバモードになっています。VIを要求する際に、リモートパネルに接続ダイアログボックスの制御を要求チェックボックスにチェックを入れて、制御器を要求することができます。VIがコンピュータに表示されたら、フロントパネルの任意の部分を右クリックして、ショートカットメニューから制御を要求を選択することもできます。また、フロントパネルウィンドウの下部にあるステータスバーをクリックしてもこのメニューにアクセスすることができます。他のクライアントが制御していなければ、フロントパネルが制御可能であることを示すメッセージが表示されます。他のクライアントがVIを制御している場合には、他のクライアントが制御を停止するか、制御がタイムアウトになるまで、サーバはその要求を待ち行列に入れます。サーバコンピュータのユーザのみがツール→リモートパネル接続マネージャを選択してクライアントの待ち行列リストを監視することができます。リモートコンピュータ上で実行しているVIによって生成されるデータを保存する場合には、リモートフロントパネルではなくTCPを使用します。

クライアントから表示および制御するすべてのVIは、サーバコンピュータのメモリ内にある必要があります。要求されたVIがメモリ内にある場合、サーバはVIのフロントパネルを要求側のクライアントに送信します。VIがメモリにない場合には、リモートパネルに接続ダイアログボックスの接続状況のセクションにエラーメッセージが表示されます。

メモ  (Linux) NIは、Linuxでリモートフロントパネルをサポートしません。

ウェブブラウザからフロントパネルを表示および制御する

ウェブブラウザを使用して、LabVIEWがインストールされていないクライアントからリモートでフロントパネルを表示および制御するには、LabVIEWランタイムエンジンをインストールする必要があります。LabVIEWランタイムエンジンには、ブラウザのプラグインディレクトリにインストールされるLabVIEWブラウザプラグインパッケージが含まれます。LabVIEWプラットフォームメディアには、LabVIEWランタイムエンジンのインストーラが含まれています。

メモ  NIは、バージョン42以降のGoogle Chrome用のリモートフロントパネルをサポートしません。詳細については、NIのウェブサイトを参照してください。

(Linux)フロントパネルのリモートによる参照、制御にはFirefoxを使用します。デフォルトの場所にFirefoxがインストールされている場合、LabVIEWのインストールプログラムは、ウェブブラウザを使用してフロントパネルをリモート表示/制御するために必要なブラウザプラグインを自動的にインストールします。

クライアントとなるコンピュータにLabVIEWランタイムエンジンをインストールし、サーバとなるコンピュータ側ではクライアントで表示および制御するVIを参照する<OBJECT>および<EMBED>タグを含むHTMLファイルを作成します。このタグには、VIに対するURLリファレンスとVIをLabVIEWブラウザプラグインに渡すようにウェブブラウザに指示する情報が含まれています。クライアントは、ウェブブラウザウィンドウの上部のアドレスまたはURLフィールドにウェブサーバのウェブアドレスを入力して、ウェブサーバに移動します。プラグインは、ウェブブラウザウィンドウにフロントパネルを表示し、クライアントがリモートフロントパネルと通信できるようにウェブサーバと通信します。クライアントは、ウェブブラウザのリモートフロントパネルウィンドウの下部の制御を要求を選択するか、またはフロントパネル内で右クリックしてショートカットメニューから制御を要求を選択して制御を要求します。

現在、他のクライアントが制御していない場合、または同じ接続上の他のブラウザウィンドウが制御していない場合、フロントパネルの制御が可能であることを示すメッセージが表示されます。他のクライアントがVIを制御している場合には、他のクライアントが制御を停止するか、制御がタイムアウトになるまで、サーバはその要求を待ち行列に入れます。サーバコンピュータのユーザのみがツール→リモートパネル接続マネージャを選択してクライアントの待ち行列リストを監視することができます。

複数のクライアントでリモートフロントパネルを同時に制御する

複数のクライアントから1つのアプリケーションまたはVIを同時にリモート制御できます。同時制御を可能にするには、VIは再入可能でなければなりません。再入可能VIを作成するには、ファイル→VIプロパティを選択し、カテゴリリストから実行を選択し、クローン共有による再入実行またはクローンの事前割り当てによる再入実行チェックボックスにチェックマークを付けます。リモートフロントパネルに対する各クライアントからの要求に対して、その再入可能VIのクローンが自動的に開きます。フロントパネルのリモート接続では、ウェブサーバ:VIアクセスリストプロパティを使用して、メモリにロードされているクローンへのアクセスをプログラム的に制限できます。

リモートフロントパネルの参照および制御でサポートされていない機能

以下のリストには、サポートされていない機能およびリモートフロントパネルを参照および制御する際の注意事項が含まれています。

  • ウェブブラウザの制約により、フロントパネルがウェブページの一部として表示されている場合、フロントパネルのサイズおよび位置を操作しようとするユーザインタフェースアプリケーションは正常に動作しません。ウェブサーバおよびLabVIEWブラウザのプラグインでは複雑なユーザインタフェースアプリケーション(特に、ダイアログボックスおよびサブ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を閉じるよう構成します。


この記事は役に立ちましたか。

役に立たなかった