From 7:00 PM CST Friday, January 24th - 7:00 PM CST Sunday, January 26th, ni.com will be undergoing system upgrades that may result in temporary service interruption.

We appreciate your patience as we improve our online experience.

エラーを処理する



LabVIEW 2018ヘルプ


発行年月: 2018年3月
製品番号: 371361R-0112
製品情報を参照

ダウンロード (Windowsのみ)


LabVIEW 2015ヘルプ
LabVIEW 2016ヘルプ
LabVIEW 2017ヘルプ
LabVIEW 2018ヘルプ
LabVIEW 2019ヘルプ

非常に信頼性の高いVIでも、エラーが発生する場合があります。VIが正しく機能しないことが判明した場合、エラーをチェックするメカニズムが必要です。エラーをチェックするメカニズムを作成することで、VIで発生したエラーの原因と場所を特定することができます。

たとえば、入出力(I/O)処理はよくエラーが発生する箇所です。通常、I/O関数はエラー情報を返します。特にI/O処理(ファイル、シリアル、計測器、データ集録、および通信)を行うVIでは、内部にエラーチェック機能を組み込み、エラーを効果的に処理するメカニズムを提供する必要があります。

自動エラー処理

デフォルトでは、実行を中断し、エラーが発生したサブVIや関数をハイライトしてエラーダイアログボックスを表示することにより、VIの実行時にエラーを自動的に処理します。

メモ  LabVIEWランタイムエンジンは、自動エラー処理をサポートしません。

自動エラー処理を無効にする

エラー処理を他の方法で行うために、自動エラー処理を無効にすることもできます。たとえば、ブロックダイアグラム内のI/O VIがタイムアウトになっても、自動エラー処理がアプリケーション全体を停止して、エラーダイアログボックスを表示することを許可せずに、一定期間、再試行するように指定することもできます。カスタムエラー処理は、VIのブロックダイアグラムで実装できます。

さまざまなタイプのVIで自動エラー処理を無効にする方法については、以下の表を参照してください。

VIのタイプ 自動エラー処理を無効にする
現在のVI ファイル→VIプロパティを選択します。次に、カテゴリプルダウンメニューから実行を選択し、自動エラー処理を有効チェックボックスをオンにします。
新規のブランクVI ツール→オプションを選択します。次に、カテゴリリストからブロックダイアグラムを選択し、新規VIで自動エラー処理を有効チェックボックスをオンにします。
サブVIまたはVI内の関数 サブVI内にエラー出力表示器を作成するか、そのサブVIのエラー出力パラメータを別のサブVIまたは関数のエラー入力に配線します。

その他のエラー処理方法

LabVIEWのエラー処理はデータフローモデルに従い、VI内をデータが流れるのに似ています。VIの処理フローの開始点から終了点までエラー情報を配線します。また、エラーが発生せずにVIが実行されたかを確認するため、エラー処理VIを、VIの最後に組み入れます。各VI内でエラー入力エラー出力クラスタを使用して、エラー情報をVI内に通過させます。エラークラスタは、通常、同じ標準エラー入力標準エラー出力の機能を提供します。エラークラスタはフロースルーパラメータです。

たとえば、下図は標準エラークラスタを使用したVIを示しています。

VIの実行時、LabVIEWは各実行ノードでエラーがないかをテストします。エラーが検出されなかった場合、ノードは正常に実行されます。エラーが検出された場合、コード部分は実行されずにノードは次のノードにエラーを渡します。次のノードでも同じことが行われ、さらに次のノードへと渡していきます。実行フローの最後にエラーが報告されます。

エラー入力エラー出力クラスタの要素については、下表を参照してください。

クラスタ要素名 クラスタ要素の説明
ステータス エラーが発生した場合にTRUEを報告するブール値
コード 番号でエラーを識別する符号付き32 ビット整数。ステータスのFALSEを伴う0以外のエラーコードは、エラーでなく警告であることを示します。
ソース エラーが発生した場所を示す文字列
メモ  ブールデータを受け取る一部のVI、関数、ストラクチャは、エラークラスタも認識します。たとえば、「ブール」関数、または「選択」関数、「LabVIEWを終了」関数、「停止」関数のブール入力にエラークラスタを配線できます。

LabVIEWで、独自のエラー処理を開発および実装することができます。エラーを処理するには、ダイアログ&ユーザインタフェースパレットにあるLabVIEWエラー処理VIと関数、また多くのVIが持つエラー入力エラー出力パラメータを使用します。たとえば、LabVIEWでエラーが発生した場合に、さまざまな種類のダイアログボックスにエラーメッセージを表示できます。

LabVIEW標準のVIと関数は、数値によるエラーコードを使用するか、エラークラスタを使用するかのいずれかの方法でエラーを返します。通常、関数は数値によるエラーコード、VIはエラー入力とエラー出力を含むエラークラスタを使用します。

エラーの特定と管理用にデバッグツールをエラー処理と組み合わせて使用することができます。

エラークラスタの一般的な使用方法の例については、下表を参照してください。

方法 説明
エラークラスタを使用してループを停止する ループの反復を停止するには、エラークラスタをWhileループの条件端子または条件端子付きのForループに配線します。エラークラスタを条件端子に配線する場合、エラークラスタのステータスパラメータのTRUEまたはFALSEの値のみが端子に渡されます。エラーが発生すると、ループは停止します。また、ショートカットメニューもTRUEの場合停止TRUEの場合継続からエラーの場合停止エラーの場合継続に変わります。

条件端子付きのForループでは、値をカウント端子に配線するか、または入力配列を自動指標付けして、最大反復数を設定する必要もあります。Forループは、エラーが発生するまで、または設定した反復数が完了するまで実行されます。
エラーステータスに応じて条件的にコードを実行する エラークラスタをケースストラクチャのセレクタ端子に配線した場合、ケースセレクタラベルには、エラーエラーなしの2つのケースが表示されます。エラーが発生すると、ケースストラクチャはエラーサブダイアグラムを実行します。

エラー処理のケースストラクチャがあるVIを新規に作成するには、エラー処理のテンプレートVIがあるサブVIを使用します。

ケースストラクチャの枠線の色も、エラーの場合は赤、エラーなしの場合は緑に変わります。.


この記事は役に立ちましたか。

役に立たなかった