NIスキャンエンジンがインストールされたターゲットでは、障害によって非同期エラー状態を報告します。LabVIEWは、軽微、重大、復旧不可という3つの障害レベルを認識します。LabVIEWは、ターゲットのメモリにすべての障害をログします。NI分散システムマネージャのスキャンエンジンプローブビューを使用して、ターゲットでNIスキャンエンジンの障害を参照およびクリアします。

軽微な障害は警告に相当するもので、障害処理動作をトリガしません。軽微な障害の例には、起動エラーがあります。これはコントローラが保存済みの構成を起動時に適用できない場合に発生します。

重大な障害はエラーに相当します。たとえば、LabVIEWは、スキャンエンジンの実行の遅れを検知すると、重大な障害である-66460をトリガします。10回連続でスキャンの遅延が検出されると、重大な障害である-66461がトリガされ、NI スキャンエンジンは実行を停止します。

メモ 一部のI/Oハードウェアドライバには、重大な障害に対する処理動作が組み込まれています。障害処理動作については、各ターゲットハードウェアのドキュメントを参照してください。

復旧不可な障害は、ハードウェアの故障やソフトウェアのクラッシュなどによって発生します。復旧不可な障害が発生した場合は、コントローラを再起動してナショナルインスツルメンツまでご連絡ください。

障害を参照、クリアする

障害を表示またはクリアするには、NI分散システムマネージャを使用します。「障害リストを取得」VIと「障害をクリア」VIを使用して、障害をプログラム的に表示またはクリアすることもできます。障害をクリアすると、障害が発生しなかった場合と同じようにメモリから削除されます。

システム障害

LabVIEWは一般的な障害を定義します。LabVIEWエラークラスタからの情報を基に追加データをログできます。LabVIEWでは、障害コードは以下の表に示すタイプ別にグループ分けされます。

メモ 障害処理動作については、各ターゲットハードウェアのドキュメントを参照してください。
障害タイプ 障害コードの範囲
I/Oスキャンドライバエラー -66000~-66099
I/O変数 -66200~-66299
NI スキャンエンジンVI -66300~-66399
NIスキャンエンジン -66400~-66499
ユーザ障害 すべてのLabVIEWエラーコード

障害をトリガする

障害を設定」VIを使用して軽微または重大な障害をLabVIEWエラーコードに基づいてトリガできます。カスタム障害をトリガするには、まずカスタムエラーコードを定義し、そのコードを「障害を設定」VIに渡します。

LabVIEWによって、100個の固有の障害コードをログできる大きさのメモリプールが確保されます。固有な障害コード数が100を超えると、軽微な障害−66420がトリガされ、それ以上の障害はログされません。ただし、ユーザ定義障害数が最大値に達していても、重大な障害または復旧不可な障害が発生するとハードウェアドライバによる障害処理動作が開始されます。

障害を構成する

カスタムの障害構成で特定の障害のレベルおよびトリガ動作をカスタマイズできます。カスタムの障害構成を対話的またはプログラム的に適用することができます。

カスタムの障害構成を適用するには、スキャンエンジンページの障害構成セクションを使用します。カスタムの障害構成をプログラム的に適用するには、「障害構成」VIを使用します。

一部の障害を構成することはできません。ただし、構成可能な障害のリストは、どのNI スキャンエンジンI/Oソフトウェアがインストールされているかによって異なります。スキャンエンジンページの障害構成セクションにある構成可能な障害リストを使用して、構成可能な障害を対話的に参照します。