Skip to main content

視覚化クラッシュの診断

視覚化のクラッシュにはさまざまな原因が考えられます。次のセクションでは、視覚化のクラッシュの原因を検出する方法と、クラッシュを防ぐために意味のあるアクションについて学習します。

処理された例外で実行を停止する コマンドはエラーチェック時に役立ちます。アプリケーションを起動する前にコマンドを実行します。

ヒント

デフォルトでは、 処理された例外で実行を停止する このコマンドはどのメニューでも使用できませんが、次で設定できます。 ツール → カスタマイズ 次のように。

  1. 「ツール」→「カスタマイズ」をクリックします。

    メニュー タブが開きます。まず、コマンドのメニュー位置を定義する必要があります。この場合、次の項目を選択するのが合理的です。 オンライン メニュー。

  2. 希望の位置を選択し、 コマンドの追加 ボタン。

    すべてのコマンドは次のとおりです。 コマンドの追加 ダイアログ。

  3. を選択 オンライン 左側でカテゴリを選択し、右側で目的のコマンドを選択します。クリック わかりました をクリックしてダイアログを閉じます。次にクリックします わかりました もう一度閉じます カスタマイズ ダイアログ。

    処理された例外で実行を停止する コマンドは現在、 オンライン メニュー。

コマンドの追加手順の詳細については、「」の章を参照してください。???」。

の代わりとして 処理された例外で実行を停止する コマンド、あなたはコンパイラ定義を設定することができます VISU_NO_EXCEPTION_HANDLING アプリケーション用。その結果、例外は視覚化によってキャッチされず、プログラミングシステムはシステムがクラッシュした場所を示します。

実行中のビジュアライゼーションのクラッシュの考えられる原因

. 実行中のビジュアライゼーションのクラッシュの考えられる原因
  • 視覚化では、スコープを持つインターフェイス変数を持つフレーム要素 VAR_INPUT が使用され、このインターフェイス変数(例では: PLC_PRG._itfTest1_itfTest1 : ITF_TEST;)はまだアプリケーションに割り当てられていません。

_visu_img_crash_var_input.png
_visu_img_crash_frame_itf.png
  • 視覚化では、インターフェイス変数を持つフレーム要素(例: fbTest)スコープ付き VAR_IN_OUT が使用され、このインターフェイス変数にはデータ型として機能ブロックがあります。ただし、転送された変数はこの機能ブロックを指していません。

_visu_img_crash_var_inout.png
_visu_img_crash_frame_fb.png
  • による除算 0:除算のある式では、除数(例では: PLC_PRG.rVal2) してはいけません 0

_visu_img_crash_div_zero.png
  • の使用 VAR_IN_OUT ビジュアライゼーションの機能ブロックの変数:

    スコープを持つ変数の場合 VAR_IN_OUT 関数ブロックで宣言されている場合、ビジュアライゼーションは、プログラムが関数ブロックを呼び出した後でのみ、これらの変数にアクセスできます。 VAR_IN_OUT 変数は機能ブロックに割り当てられています。

  • ゼロポインターとゼロ参照の使用:ポインター変数はゼロであってはなりません(例: PLC_PRG.pValue^)。

  • 内部コードのエラー。これは、コールスタックでのみ表示されます。

これらのエラーを防ぐための一連のアクション

. これらのエラーを防ぐための一連のアクション
  • 最初にダミーオブジェクトを指すインターフェイスを使用します。

  • 電話 Visu_Prg すべての初期化が実行された場合にのみプロジェクトで。

  • 演算子を使用する SEL 次の例のように: SEL(ptr<>0,0,ptr^.<>value)