TestStandでUUT毎にレポートの保存先フォルダを切り替える方法



使用ソフトウェア:
使用ソフトウェア・バージョン: 4.1.1
使用ソフトウェア・バージョンに特化: N/A
二次のソフトウェア:

問題:

TestStandのレポートは、標準では複数のUUTレポートがまとまってシーケンスのあるフォルダに出力されますが、これをUUT毎に別のレポートファイルにして、それぞれ別のフォルダに出力したいです。どうすればよいでしょうか。



解決策:

UUT毎に別のレポートファイルに出力する設定

この動作は、TestStand標準の機能として実装されています。設定は以下の通りです。

  1. シーケンスエディタのメニューバーから Configure ≫ Report Options をクリックして、Report Optionsダイアログを開きます。
  2. Report File Pathnameタブの、Generate Report File Pathカテゴリ以下にある New UUT Report File for Each UUTオプションをオンにします。こうすることにより、UUT毎に個別のレポートファイルが生成されるようになります。

レポートの出力先をプログラム的に変更する方法

この動作は、TestStand標準の機能としては実装されていませんので、プロセスモデルのコールバックを一部オーバーライドして実現する必要があります。プロセスモデルがSequentialModel.sql(デフォルト)の場合の手順は以下の通りです。

  1. レポートの出力先を変更するために、ReportOptionsコールバックをオーバーライドします。また、UUT毎に出力先を変更する為にPostUUTコールバックもオーバーライドします。シーケンスエディタのSequencesペーンを右クリックして、Sequence File Callbacks...をクリックします。
  2. Callbacksダイアログが表示されるので、その中の PostUUT と ReportOptions をそれぞれクリックして、Addボタンを押します。MainSequence、PostUUT、ReportOptionsのPresentカラムがそれぞれyesになっていることを確認し、OKボタンを押します。
  3. Sequencesペーンに、新しくReportOptionsとPostUUTというシーケンスが追加されていますので、ReportOptionsシーケンスを選択します。Variablesペーンを開き、Parametersに文字列型の変数を一つ追加します。ここではpathStrという名前にします。この変数は、レポート保存先の情報を一時的に保管するために使います。
  4. Stepsペーンに戻り、Mainシーケンス内にStatementステップを一つ追加します。このステップで、RunStateから現在のレポートパスを取得して先ほど作成したpathStr変数に格納します。Step SettingsペーンのExpressionタブを開き、Parameters.pathStr = RunState.Root.Runstate.ProcessModelClient.Path と入力します。 右辺の変数はシーケンス実行時にしか存在しないため、Expressionsを入力した際に警告がでますが、無視して構いません。
  5. この状態で、Parameters.pathStrにレポート保存先のフルパスが格納されていますので、このパスを適宜書き換えます。添付のシーケンスではLabVIEWのVIでこれを実現していますが、必ずしもLabVIEWで行う必要はありません。
  6. Statementステップを新たに追加します。ここでは、前ステップにて書き換えたパスを新しいレポートの保存先として設定します。Step SettingsペーンのExpression タブに、Parameters.ReportOptions.Directory = Parameters.pathStr, Parameters.ReportOptions.DirectoryType = "SpecificDirectory"と入力します。これで、ReportOptionsコールバックのオーバーライドは終了しました。
  7. 続いて、PostUUTコールバックのオーバーライドをします。Sequencesペーンから、PostUUTシーケンスを選択します。
  8. Sequence Callステップを追加します。ここで、ReportOptionsコールバックシーケンスを呼び出します。
    1. Step SettingsペーンのModuleタブを開き、File Pathnameを現在編集しているシーケンスに設定します。
    2. SequenceにReportOptionsを指定します。
    3. ReportOptions、pathStrというパラメータが表示されますので、ReportOptionsはDefaultのチェックを外し、Valueに RunState.Root.ThisContext.Locals.ReportOptionsと入力します。この値は実行時にのみ有効なため、赤字で表示されますが無視して結構です。
    4. pathStrパラメータについては、Defaultのチェックを入れて下さい。
    5. 以上でPostUUTのオーバーライドは完了ですが、この状態だとUUTの検査終了時に表示されるPass/Failなどのポップアップが表示されなくなります。この表示を出したい場合は、TestStandがインストールされているフォルダ以下 Components\Models\TestStandModels に保存されている各プロセスモデルのPostUUTコールバックから元々の動作をコピーしてください。添付のシーケンスではSequentialModel.sqlのPostUUTコールバックからの処理をコピーしてあります。
  9. 以上で全ての設定が完了しました。MainSequenceに通常通りのシーケンスを作成していただければ、UUT毎に別のフォルダが作成され、そこにレポートが格納されます。


関連リンク:
How to Dynamically Change the Report Directory in TestStand
Changing the Report Filename and Path Programmatically in TestStand

添付:

SaveReport.seq

checkDir.vi






報告日時: 01/24/2010
最終更新日: 01/25/2010
ドキュメントID: 55NMPJ3T