NI-VeriStandカスタムデバイスのトラブルシュート ベストプラクティス

更新しました Jun 28, 2024

環境

ソフトウェア

  • VeriStand
  • VeriStand Custom Devices

NIは、アプリケーション要件を常に満たすように、必要に応じてカスタマイズおよび拡張できるようにNI VeriStand環境を設計しました。 NI がサポートするVeriStand アドオン の一覧と、NI 内部の開発者および VeriStand コミュニティから集めることができる追加のアドオン を確認してください。既存のアドオンが要件を満たさない場合は、独自のカスタム デバイス を作成または変更できます。

このチュートリアルでは、カスタム デバイスを含む VeriStand プロジェクトをデプロイする際のデプロイエラーおよび実行時エラーのトラブルシューティングを行うためのベスト プラクティスについて説明します。 NI VeriStandカスタムデバイスの詳細については、VeriStandカスタムデバイスハンドブック を参照してください。

構成エラー

カスタムデバイスを追加すると、Initialization VI とPage VI が実行されますが、構成についてのエラーはこれらが根本原因であることが多いです。カスタムデバイスのXMLファイルで参照されているVIがコンピュータ上で有効であり、実行可能であることを確認してください。これらの VIには一般的なデバッグ手法を使用できます。
  • 1ボタンダイアログ を使用して実行の様子を確認します
  • Page VI には、システムエクスプローラーで表示できるフロントパネル表示器を含めることができます
  • フロントパネルが自動的に開き、制御器と表示器を使用してデバッグできるように VI を構成します方法については LabVIEWでサブVIのフロントパネルが開くときの制御の資料 を参照してください
  • エラーをファイルに記録します
構築されたカスタム デバイス LLB ファイルをデプロイ用のマシンに移植する場合は、両方のマシンのソフトウェア一式が同一であることを確認してください。たとえばドライバのバージョンが異なる場合、基礎となるVIが異なるため、カスタムデバイスをシステム定義に正しくロードできない可能性があります。

 

デプロイメントおよび実行時エラー


エラー原因の絞り込み

エラーが起きている原因、場所を特定するために、以下の内容を試してください。
  • システム定義ファイルからカスタム デバイスを削除した後もエラーが継続しないことを確認して、エラーの原因が、作成したカスタム デバイスにあることを確認します。
  • プロジェクトで複数のカスタム デバイスを使用している場合は、カスタム デバイスを 1 つずつ無効にするか全て削除したあとに1つずつ追加し、問題のあるカスタム デバイスを特定します。
  • RT ターゲットにデプロイしている場合は、Windows PCに対するローカルデプロイを試します。このデプロイが成功した場合は、カスタムデバイス内の RT システムと互換性のない VIが正常なデプロイを妨げている可能性がないかを探し始めます。
  • システム定義ファイルをターゲットにデプロイするときにこのエラーが発生するかを確認します。このエラーが発生した場合は、RT Driver VI の初期化フェーズを調査する必要があります。これには、Inline HardwareまたはInline ModelのカスタムデバイスのInitializationおよびStartのケース、およびAsynchronousカスタムデバイスのReport Final Status VIより前のものが含まれます。

rtaImage.jfif
  • さらに、ダウンロード時またはコンパイル時に実行するように構成したAction VI もデプロイエラーを引き起こす可能性があります。

LabVIEW開発環境を使用したデバッグ

カスタムデバイスは、VeriStand Engine から動的に呼び出される LabVIEW VI です。 LabVIEW 開発環境を使用して、可能な限りカスタムデバイスのソースコードの開発とテストを行ってください。これにより、 LabVIEW のすべてのデバッグツール を利用できるようになります。

VeriStand Engine 内でのデバッグ

NI VeriStand – Print Debug Line.vi (VeriStand 2018以前の場合はNI VeriStand – Print Debug String.vi)をカスタムデバイスコード全体に散りばめて、VIの実行のデバッグとトレースに役立つ便利な文字列をコンソールに出力します。これを 文字列にフォーマット関数と組み合わせて、特にエラーに関するできるだけ多くの情報を取得します。出力結果を表示するには、 コンソール ビューア を使用します。 NI Linuxリアルタイムターゲットについては、 Linuxターゲット用にコンソールを確認するための資料 を参照してください。
可能であれば Windows ターゲットで RT Driver VI エンジンのコードをデバッグします。フロントパネルを自動的に開き、制御器と表示器を使用してデバッグするように VI を構成できます。 詳しくはLabVIEWでサブVIのフロントパネルがポップアップするように制御する を参照してください。

パフォーマンスのベンチマーク

  • システム チャンネル を使用して、VeriStand Engine のパフォーマンスを監視します。 Telemetry Custom Device を使用して、VeriStand システム チャンネルをファイルに記録します。
  • NI Real-Time Execution Trace Toolkitを使用して低レベルのデバッグ用の実行トレースログを作成する方法については、NI VeriStandのスレッドのデバッグ を参照してください。これらのログを参照することで、スレッドと VI のタイミングに関する詳細な情報が得られます。