エラーを処理する



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を使用します。

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


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

役に立たなかった