LabVIEW NXG Web Module: WebアプリケーションをRTターゲット上で動作させる

更新しました Apr 27, 2021

環境

ハードウェア

  • cRIO-9057

ソフトウェア

  • LabVIEW NXG Web Module
  • LabVIEW

本資料ではLabVIEWで作成したWebサービスとLabVIEW NXG Web Moduleで作成したWebアプリケーションの、双方をRTターゲット上にサーバとして立ち上げる手順を紹介します。立ち上がったサーバは同じローカルネットワークに存在する外部クライアントからアクセスが可能となります。Githubにアップロードされているサンプルプログラム(Call LabVIEW Web Service)を例に用います。

LabVIEWでWebサービスを作成する
  1. RTターゲットに下記ソフトウェアがインストールされていることを確認します。
    • NI System Configuration
    • NI System Configuration network support
    • NI Web-based Configuration and Monitoring
  2. WebVI Examples for LabVIEW NXG Web Module からソースコードをダウンロードし保存します。image.png
  3. ZIPファイルを解凍し "<Download>\webvi-examples-master\webvi-examples-master\CallLabVIEWWebService\WebService\WebService.lvproj"を開きます。
  4. プロジェクトを右クリックし [新規] → [ターゲットとデバイス…] からお使いのRTターゲットを追加します。
  5. プロジェクトにもともと存在しているRTターゲット(cRIO-9068)の配下にあるRT Web Serviceを、新規追加したRTターゲットの配下にドラッグ&ドロップします。
  6. RT Web Serviceを右クリック → [アプリケーションWebサーバ] → [パブリッシュ] からWebサービスをパブリッシュします。
    image.png
  7. Webサービスが正常に起動していることを確認します。
    • RT Web Service > Webリソース > ParametricCurve.vi (GET) を右クリック → [メソッドURLを表示…] → [URLをコピー] します。image.png
    • コピーしたURLを開発PCの任意のブラウザに入力します。以下のように値が表示されていればWebサービスは正常に起動しています。
      image.png

LabVIEW NXG Web ModuleでWebアプリケーションを作成する
  1. 「手順3」で解凍したフォルダの"<Download>\webvi-examples-master\webvi-examples-master\CallLabVIEWWebService\CallLabVIEWWebService.lvproject"をLabVIEW NXG Web Moduleで開きます。
  2. index.gvi の ダイアグラムを開き、「手順7」で取得したURLを下図のケースストラクチャの文字列定数に入力します。image.png
  3. Webアプリケーションが前述のWebサービスと通信ができることを確認します。[実行]ボタンの右のプルダウンを開き[ブラウザで実行]をクリックします。ブラウザが立ち上がり、Webアプリケーションのフロントパネルが表示されれば通信が確立しています。image.png
  4. cRIO上でWebアプリケーションを実行するには、Webアプリケーションをビルドする必要があります。WebApp.gcompを開き[ビルド]ボタンをクリックします。ビルド完了後、[出力ディレクトリ]に表示されたパスをクリックし、出力されたフォルダを確認します。
    image.png
  5. ビルドで出力されたフォルダを開発PCからcRIOの "/var/local/natinst/www" にコピーします。image.png
    • cRIOへファイル転送を行うには、予めWebDAVFTPを有効にしておく必要があります。
    • ファイルを転送の際、エラー0x8000FFFやエラー-363516が発生してしまった場合、chmodコマンドを使用してコピー先のディレクトリに書き込み権限を付与する必要があります。
  6. 開発PCの任意のブラウザに "http://<cRIOのIP address>:<HTTP port>/<ビルドで出力されたフォルダの名前>/<ビルドしたgviwebプログラム名>.html" と入力します。無事Webアプリケーションのフロントパネルが表示されれば完了です。image.png

上記手順により、WebサービスとWebアプリケーションの双方をcRIO上でサーバーとして起動させ、同じローカルネットワークに存在している外部クライアントからリモートアクセスすることが可能となりました。以下は実用例のイメージ図です。
image.png