コードモジュールとは、Microsoft WindowsダイナミックリンクライブラリやLabVIEW VIなどのプログラムモジュールを指し、それぞれに特定のテストやその他の動作を実行するための機能が1つまたは複数含まれています。 スイッチング操作を含むさまざまなプログラミング環境でコードモジュールを作成し、TestStandから呼び出すことができます。
図1:「Insertion Palette」から新規ステップを挿入
図2:実行するコードモジュールを「Step Settings」の「Module」タブで指定
NI-SWITCHアプリケーションプログラミングインタフェース (API) を使用して、NIスイッチモジュールを制御するコードモジュールを作成できます。 従来のアプリケーションでは、NI-DAQmx APIをスイッチング操作に使用できた可能性がありますが、NI-DAQmxスイッチング関数は新しい設計には推奨されず、また、すべてのNIスイッチモジュールをサポートするものでもありません。この2つのAPIの違いについては、以下を参照してください。
技術サポートデータベース43CFNUAY:スイッチングアプリケーション用のNI-SWITCH APIとNI-DAQmx Switch APIの相違点
図3:LabVIEWのNI-SWITCH API
他社製のスイッチを制御する場合は、そのスイッチ用の計測器ドライバ関数を呼び出すコードモジュールを作成します。 計測器ドライバの詳細と、NIソフトウェアに対応した計測器ドライバの検索およびダウンロードについては、計測器ドライバネットワーク (www.ni.com/idnet) を参照してください。
スイッチモジュールがIVIに準拠している場合は、IVI Switchクラスドライバを呼び出すコードモジュールを作成することができます。 すべてのNIスイッチモジュールは、IVIに準拠しています。 IVIの詳細については、www.ni.com/iviを参照してください。
メモ:計測器がIVIクラスに準拠していない場合、あるいはその計測器用のIVIドライバが存在しない場合は、IVI Switchクラスドライバでサポートされていないドライバ関数を呼び出すために、計測器固有のドライバを使用する必要があります。
IVI Switchクラスドライバを使用しており、かつお使いのスイッチハードウェアがIVIに準拠している場合は、NI Switch Executive APIを使用してプログラミングできます。 NI Switch Executiveの詳細については、以下を参照してください。
Developer Zoneチュートリアル: NI Switch Executiveとは
図4:Switch Executive API
下図に示すIVI Switchステップでは、IVI Switchクラスに準拠した計測器とNI Switch Executive仮想デバイスのための高水準のプログラミングインタフェースが提供されています。 「Insertion Palette」からIVI Switchステップを挿入します。
図5:IVI Switchステップを挿入
「Step Properties」ダイアログボックスの「Switch」タブにある「Edit Switch」ボタンをクリックします。
図6:IVI Switchステップの「Edit Switch...」ボタンを選択
IVI Switchステップタイプには以下の2つのモードがあります。
選択したモードによって、IVI Switchステップタイプの使用時に利用できる操作が決まります。
IVI Switchingモードでは、IVI準拠のスイッチドライバを使用して、NI製スイッチと他社製のスイッチを制御できます。 このモードを使用すると、経路/ルートの接続と切断、2つのスイッチの接続やルートの状態の特定、スイッチモジュールや仮想デバイスの状態のクエリなどが行えます。 IVI SwitchステップタイプのIVI SwitchingモードでサポートされているIVI Switch操作の詳細については、以下を参照してください。
NI TestStandヘルプ:IVI Switchingモード ― 「Edit IVI Switch Step」ダイアログボックス
図7:IVI Switchステップ:IVI Switchingモード
NI Switch Executiveは、IVIをベースとするインテリジェントなスイッチ管理/ルーティングアプリケーションです。 Switch Executiveを使用すると、IVIに準拠した1つまたは複数のスイッチモジュールを含む構成済みのSwitch Executive仮想デバイスを作成することができます。 さらに、ポイントアンドクリック環境で、チャンネルエイリアスを作成し、終端間ルートを視覚的に (複数のスイッチ間でも) 構成することができます。 NI Switch Executiveの機能の詳細については、以下を参照してください。
Developer Zoneチュートリアル: NI Switch Executiveとは
NI Switch Executiveを購入してインストールすると、IVI SwitchステップのSwitch Executiveモードを使用できるようになります。 「Edit IVI Switch Step」ダイアログボックスで、構成済みのNI Switch Executive仮想デバイスを選択して、スイッチングシステム用に作成されたルート/ルートグループの接続と切断を行えます。 また、ユーザが手動でルートを切断するまでルートの接続を維持するか、ステップ、シーケンス、スレッド、または実行が完了するまでルートの接続を維持するかを指定できます。
メモ:IVI SwitchステップタイプのSwitch ExecutiveモードでサポートされているIVI Switch操作の詳細については、以下を参照してください。
NI TestStandヘルプ:Switch Executiveモード ― 「Edit IVI Switch Step」ダイアログボックス
図8:IVI Switchステップ:Switch Executiveモード
IVI SwitchステップのSwitch Executiveモードを使用しており、かつNI Switch Executiveを購入してインストールしていれば、ステップの実行時にスイッチング操作を行うことが可能になります。 「Step Settings」ペーンの「Properties」タブの「Switching」パネルで、スイッチング操作を構成できます。
図9:「Insertion Palette」からステップを 挿入 (「Step Settings」の「Properties」タブの「Switching」パネル)
本ドキュメントで説明したとおり、TestStandからスイッチを制御するにはいくつかのオプションがあります。 以降のセクションでは、各オプションのメリットとデメリットについて解説します。
1) コードモジュール
TestStandでスイッチを制御する方法としては、コードモジュールからスイッチング操作を実行するテストシーケンスを記述することを推奨します。 このオプションは最もモジュール化されたアプローチです。テスト開発者はスイッチング操作を実行するコードを修正しつつ、テストシーケンスの他の部分への影響を最小限に抑えることができます。 計測器固有のドライバまたはコードモジュールのSwitch Executive APIを使用することで、低水準のIVIセッションにアクセスできるほか、他のオプションでは提供されない追加の機能が利用できるようになります。 NI Switch Executiveを使用すると、IVIに準拠したスイッチの構成と制御を簡素化し、効率化することができます。
メモ:NI Switch Executive APIを使用するには、NI Switch Executiveソフトウェアの購入とインストールが必要です。
この方法では、ユーザによるミスの確率が高まるというデメリットがあります。 テスト開発者は、計測器ドライバまたはNI Switch Executive APIに精通している必要があります。また、管理しやすく拡張可能なテストシーケンスの作成に適切なテストシステムアーキテクチャを実装する必要があります。 たとえば、niSE Connect and Disconnectを使用すると、スイッチング時間が短縮されると同時に、自動テストシステムにおけるデバイスの寿命を延ばすことができます。
図10:niSE Connect and Disconnectを使用してコードモジュールから制御するルート/ルートグループを指定
2) Step Switchingプロパティ
NI Switch Executiveをインストールすると、テスト開発者はStep Switchingプロパティを使用して、TestStandシーケンス内の任意のステップにスイッチング機能を追加できます。 Switchingプロパティの最も明確なメリットは、コードの再利用性です。 たとえば、特定のテストで複数のルートを接続する必要があるとします。 複数の異なるテストルーチンでそのテストを実行する場合は、ステップテンプレートを作成するだけで、他のシーケンスでも再利用できるようになります。 ステップテンプレートには、ステップのすべてのプロパティ (スイッチを含む) が含まれます。 ステップを「Templates」リストに追加するには、そのステップを「Step」ペーンから「Templates」リストにドラッグしてドロップします。
図11:「Insertion Palette」ペーンに含まれる「Templates」リスト。 ステップを「Step」ペーンから「Templates」リストにドラッグしてドロップすることで、そのステップを他のシーケンスで再利用できるようにします。
Step Switchingプロパティのデメリットとして考えられるのは、テストシーケンスが理解しづらくなることです。 Switchingプロパティを使用する際は、TestStandシーケンスの説明を必ず入力しておくようにしてください。 ステップのプロパティをデフォルト動作から変更すると、「Step」ペーンでその変更に関する説明が自動的に挿入されます。 たとえば、LabVIEW Actionステップで「Enable Switching」をオンにすると、「Step」ペーンでそのステップの「Settings」カテゴリに「Switch」と自動的に挿入されます。
図12:「Steps」ペーンの「Action」ステップの「Settings」カテゴリに「Switch」と自動的に 挿入されていることに注目 (このLabVIEW Actionステップでは、「Enable Switching」がオンにされています。)
また「Comment」フィールドと「Label」ステップを使ってシーケンスの説明を入力することもできます。
図13:ステップ設定の「Properties」タブの「General」パネルにある「Comment」フィールドにコメントを入力
図14:このステップ名の上に「Label」ステップを配置し、そのコメントでステップの説明を追加 (ステップ名の上に表示)
Switch ExecutiveモードのIVI Switchステップは、Step Switchingプロパティと機能が非常に類似しています。 Step Switchingプロパティと比べて、IVI Switchステップのメリットとして挙げられることは、Get Information操作により、ルートを見つけて、仮想デバイスがデバウンス済みであるかどうかを特定できることです。
図15:IVI SwitchステップのGet Information操作:Switch Executiveモード
テスト開発者は、他の標準ステップタイプで利用可能なものと同じステッププロパティ (Preconditions、Loopingなど) を指定できます。
メモ:Step SwitchingプロパティをIVI Switchステップタイプとともに使用することはできません。
また、IVI Switchステップでは、自己記録というメリットがあります。これにより、ユーザはテストシーケンスにスイッチングが含まれるかを一目で特定できます。 ただし、一般にIVI SwitchステップよりもStep Switchingプロパティの方が推奨されます。 Step Switchingプロパティを使用する際は、上記のセクションで説明した、自動で説明を挿入する機能を用いることで、理解しやすいテストシーケンスを作成できます。
TestStandのSwitch Executiveオプション (Step SwitchingプロパティとIVI Switchステップ) の主なデメリットとして、Switch Executive API (Switch Executive構成のインポート/エクスポートやXMLレポートの生成をプログラムで行う機能など) のすべてにアクセスできるわけではないという点があります。 最大限のカスタマイズ性と拡張性を備えたテストシーケンスを開発するには、NI Switch Executive APIを呼び出すコードモジュールを使用します。
IVI SwitchステップのIVI Switchingモードでは、IVI Switchクラスドライバでサポートされている基本操作を利用することができます。 IVI SwitchステップのIVI Switchingモードで利用可能な機能の詳細については、以下を参照してください。
NI TestStandヘルプ:IVI Switchingモード ― 「Edit IVI Switch Step」ダイアログボックス
IVI SwitchステップのIVI Switchingモードにもデメリットがあります。 アプリケーションで複数のスイッチを使用する場合、各スイッチモジュールに対して個別のステップを使用する必要があります。 この方法では、複数のスイッチにまたがる完全なルートを作成することができません。 また、目的のスイッチング構成を作成するには複数のステップを使用する必要があります。 一般に、スイッチの制御には、IVI SwitchステップのIVI SwitchingモードよりもコードモジュールやSwitch Executiveの方が推奨されます。
メモ:TestStand IVIステップタイプにより作成される計測器ハンドルは、それぞれの開発環境を使用して実行されるコードモジュール内では使用できません。基盤となっているCベースのハンドルは、TestStandプロセス内でのみ使用できます。テストシーケンスにIVIクラスのVIや関数、およびドライバ固有のVIや関数を呼び出すコードモジュールが含まれている場合、NIではTestStand IVIステップタイプを同時に使用することは推奨しません。