この記事では、NI VeriStandの概要とリアルタイムテストアプリケーションの作成方法について説明します。また、NI LabVIEWをはじめとする多様なソフトウェア環境を使用して、モデルのインポート、FPGAのカスタマイズ、ワークスペースオブジェクトとしてのNI LabVIEWランタイムコントロールの追加といった新たな機能を作成するためのさまざまな方法についても解説します。
NI VeriStandによって、リアルタイムテストアプリケーションを効率的に作成するためのフレームワークが提供されます。耐久性テストセルや、環境テストシステム、HIL (Hardware-in-the-Loop) シミュレータなどのリアルタイムテストシステムでは、リアルタイムテストソフトウェア内に以下のようなさまざまな機能を、アプリケーションに応じて作成する必要があることを考慮してください。
NI VeriStandのフレームワークでは、これらのタスクはもちろん、ここに挙げられていない数多くのタスクもあらかじめ実装され、最適化されており、こうしたタスクを構成して使うことが可能です。購入直後から使用できるこうした機能性は、十分にテストされたアーキテクチャに実装されており、リアルタイムテストアプリケーションを短期間で開発し、アプリケーションのサポートやメンテナンスにかかるコストを削減することができます。NI VeriStandには、リアルタイムテストアプリケーションに必要な機能のほとんどが備わっていますが、アプリケーション固有の要件を確実に満たせるように、LabVIEWや他のソフトウェア環境を使用してカスタマイズや機能拡張を行うことができる設計となっています。
NI VeriStandとLabVIEWを組み合わせて活用するさまざまな方法を紹介する前に、NI VeriStand自体がどのように機能するかを理解しておく必要があります。図1に、NI VeriStandを使用したリアルタイムテストアプリケーションの作成フローを示しました。
図1. システムエクスプローラウィンドウを使用してNI VeriStand Real-timeエンジンを構成し、その後で、NI VeriStandワークスペースを使用してエンジンと通信します。
NI VeriStandシステムエクスプローラウィンドウは、リアルタイムPXIシステムやNI CompactRIOシステムなどのリアルタイム実行ターゲット上で稼働する、NI VeriStand Real-Timeエンジンを構成するために使用します。この構成をNI VeriStand Real-Timeエンジンにデプロイすると、NI VeriStandワークスペースウィンドウがそのエンジンのランタイムインタフェースとして機能します。このワークスペースは、リアルタイムテストアプリケーションとのやり取りや監視に使用できるさまざまなツールを備えています。
図2. システムエクスプローラ (後ろのウィンドウ) とワークスペース (手前のウィンドウ)
NI VeriStandを使用してリアルタイムテストアプリケーションを作成/実行する方法を、短いビデオデモでご覧いただけます。NI VeriStandのデモビデオにアクセスしてください。
LabVIEWや他の環境を使用することで、NI VeriStandアプリケーションの編集時と実行時の機能をカスタマイズすることができます。図3に、アプリケーションの作成フローのどこで機能を追加できるかを示しました。図中の青色の部分は、NI VeriStand環境を使用して構成されます。白色の部分は、LabVIEWや他の環境を使用して作成することができ、NI VeriStandアプリケーションのネイティブコンポーネントとして追加され、NI VeriStandの環境でシームレスに機能します。
図3. NI VeriStandによって、構成可能な機能のフレームワークが提供されます。これらの機能は、LabVIEWや他の環境を使用して作成された追加機能で補完することができます。
APIライブラリ
NI VeriStandには、ワークスペースとシステムエクスプローラ向けに.NETベースのAPIが用意されています。このAPIを利用することで、NI VeriStand用のカスタムインタフェースを作成したり、NI VeriStandアプリケーションの構成や操作のオートメーションを実装したりすることができます。たとえば、システムエクスプローラ用APIライブラリを利用すれば、NI VeriStandアプリケーションにユーザが加えることができる変更を制限するカスタム構成ウィンドウを作成したり、アプリケーションのパラメータをスプレッドシートで設定できるようにして構成プロセスを簡素化したりすることが可能になります。また、ワークスペース用APIライブラリを利用すれば、NI VeriStandアプリケーションの操作を自動化したり、完全にカスタマイズされたランタイムインタフェースを作成したりすることもできます。これらの.NETベースのAPIは、LabVIEWやNI TestStandのほか、.NETインタフェースに対応したさまざまな環境で使用できます。
ワークスペースオブジェクト
ワークスペースは、NI VeriStandアプリケーション向けの実行時に編集可能なユーザインタフェースです。ワークスペースを使うのは簡単で、ユーザインタフェースオブジェクトをワークスペースの画面にドラッグアンドドロップして、それらのオブジェクトを右クリックすれば構成ダイアログが開きます。NI VeriStandにはさまざまなユーザインタフェースオブジェクトが用意されていますが、LabVIEWを使用して、NI VeriStand用のコントロールやインジケータを作成することもできます。これにより、外観をカスタマイズするだけでなく、インラインデータ処理などの実行時の機能も実現できます。こうした変更も簡単に行うことができ、NI VeriStandのユーザインタフェースオブジェクトをLabVIEW内で開いて、必要に応じて変更するだけです。
図4: カスタムユーザインタフェースオブジェクトをLabVIEWで作成する。
詳細については、ホワイトペーパー「Creating Custom Workspace Objects for NI VeriStand」を参照してください。
ワークスペースツール
ワークスペースは、アラームモニタ、ハードウェアキャリブレーション、刺激プロファイルエディタといった、NI VeriStandアプリケーションとのやり取りや監視に使用できるさまざまなツールを備えています。LabVIEWを使用すると、お使いのNI VeriStandアプリケーション用のカスタムツールを作成し、それらのツールを他のワークスペースツールとともにツールメニューに配置することができます。たとえば、デジタルマルチメータ (DMM) などのモジュール式計測器とのインタフェースを提供するツールを作成して、検証手順の一部として特殊な計測を行うこともできます。
NI VeriStand用のワークスペースツールの作成について詳しく知りたい場合は、ホワイトペーパー「Adding a Custom Tool to the NI VeriStand Workspace」をお読みください。
図5. シンプルな構成ダイアログで、LabVIEW VIをNI VeriStandワークスペースのメニューに追加する。
モデル
ここまで紹介してきたカスタマイズの方法は、NI VeriStandのホスト側コンポーネント (ワークスペースとシステムエクスプローラ) に影響するものですが、カスタム機能をNI VeriStandリアルタイムアプリケーションに追加できる方法がいくつかあります。
他の環境を使用してNI VeriStandに機能を追加する最も一般的な方法は、コンパイル済みモデルをNI VeriStandリアルタイムアプリケーションにインポートする方法です。NI VeriStandは、LabVIEW, The MathWorks Inc.社のSimulink®ソフトウェア、ITI社のSimulationX、Maplesoft社のMapleSim、Gamma Technologies Inc.社のGT-POWERといった、さまざまなモデリング/プログラミング環境で作成した関数やモデルから、コンパイルされたコードをインポートできます。この機能を利用使用することで、リアルタイムの閉ループ制御、システムシミュレーション、信号処理、信号生成といったコンポーネントをNI VeriStandアプリケーションに追加できます。これらのコンポーネントは、標準化された編集時インタフェースをシステムエクスプローラ中に備えているので、さまざまな環境から取り込んだコンパイル済みモデルを単一のアプリケーション内で簡単に利用でき、さまざまな環境からのコンパイル済みモデルを容易に切り替えることできます。
コンパイル済みモデルは通常、その環境が備えているCコード生成ユーティリティから単一の構成ダイアログを使用して生成されます。たとえば、LabVIEWのサブVIやサブシステムモデルをインポートするときは、図6に示すように、LabVIEWのツールメニューからNI VeriStandモデル生成ユーティリティを選び、目的のディレクトリを指定し、システムエクスプローラを使用してコンパイル済みモデルをインポートするだけです。
図6. NI VeriStandリアルタイムアプリケーションにLabVIEWサブVIとサブシステムを追加する。
NI VeriStandリアルタイムアプリケーションがコンパイル済みモデルを呼び出すたびに、入力のラッチ、コードの実行が行われ、出力が更新されます。モデル内のモデルパラメータや変数は、実行の反復ごとに更新されるのではなく、オンデマンドで更新されます。NI VeriStandモデルを利用すれば、NI VeriStandリアルタイムアプリケーションにカスタム機能を最も簡単に追加できます。
すでに多くの環境がサポート対象となっていますが、製品に付属のNI VeriStand Model Frameworkを使用すると、Cコードを生成できる他の環境についてもサポートすることが可能になります。
シミュレーションモデルをNI VeriStandにインポートする方法について説明します。
カスタムデバイス
NI VeriStandリアルタイムアプリケーションにカスタム機能を追加するもう一つの方法として、カスタムデバイスを使用する方法があります。NI VeriStandモデルと比較すると、カスタムデバイスは、実行アーキテクチャの面で自由度が高く、システムエクスプローラにおける編集時の操作性をカスタマイズできるようになります。NI VeriStand Custom Devicesは、LabVIEWでテンプレートライブラリを使用して作成できます。このテンプレートライブラリでは、次の2つのコンポーネントが両方必要になります。1つは、システムエクスプローラに組込まれた編集時コンポーネントで、もう1つは、NI VeriStandリアルタイムエンジンとともに実行され、そのエンジンのタイミングリソースとデータリソースにアクセスできる実行時コンポーネントです。このインタフェースを使用する例としては、追加のハードウェアインタフェースのサポートを作成したり、リアルタイム信号処理などのカスタム機能を実装したりすることが挙げられます。
図7. NI VeriStandリアルタイムアプリケーションに編集時/実行時のカスタム機能を追加する。
NI VeriStand用のカスタムデバイスを構築するための詳細なテクニックについて説明します。
FPGA機能
NI VeriStandにリアルタイムI/Oハードウェアインタフェースを追加するときは、標準的なアナログ/デジタル/通信バスのさまざまなインタフェースをすばやく構成することができます。またNI VeriStandでは、LabVIEW FPGAベースの再構成可能I/O (RIO) デバイスを使用して、ユーザ定義のI/Oハードウェアを作成することも可能です。この機能を使用することで、信号処理、シミュレーション、トリガ、制御といったタスクを実装するカスタムI/Oハードウェアインターフェイスを作成できます。これらのタスクは25 nsの速さで実行され、NI VeriStandエンジンを実行しているリアルタイムプロセッサの処理帯域幅を一切消費しません。さらに、このI/OインタフェースはFPGAベースなので、デバイスの機能や動作を簡単に再構成して新たな要件に対応させることができます。また、I/Oインタフェースハードウェアを変更せずに複数のアプリケーションで使用できるテストシステムを作成することも可能です。
図8. LabVIEW FPGAを使用して、再構成可能なカスタムハードウェアインタフェースを作成する。
詳細については、ホワイトペーパー「NI VeriStand用にFPGAベースのI/O機能を作成」を参照してください。
NI VeriStandでは、すぐに使用できる機能、およびLabVIEWを使ってカスタム機能を追加するための統合ソケットの両方を含むフレームワークが提供されるため、リアルタイムテストアプリケーションをこれまで以上に効率的に作成することが可能になります。すぐに使用できる機能のメリットに加えて、このフレームワーク上に構築されたアプリケーションは、NI VeriStandのバージョンアップのたびに向上する品質、機能、性能によるメリットを受けることもできます。
Simulink®はThe MathWorks, Inc.の登録商標です。