対話 静的コード分析を構成するためのダイアログは、次の場所にあります。 ビルド→静的分析→設定 。前提条件として、 CODESYS -プロジェクトはオープンです。 このセクションの内容 :
ダイアログ:設定静的解析:設定 関数 :ダイアログで自動をアクティブにします 静的コード分析 静的コード分析用のプロジェクト設定をCSAファイルとして保存またはロードします。 ボタン 構成ダイアログを開く の プロジェクト→プロジェクト設定 、 カテゴリー 静的コード分析 メニュー ビルド→静的分析→設定 要件 : その包み CODESYS Static Analysis インストールされています
SA0001:到達不能コード たとえば、次のような理由で実行されないコード行を検出します。 RETURN または CONTINUE 声明 理由:到達不能コードはどのような場合でも避ける必要があります。多くの場合、 テスト 再度削除する必要のあるテストコードがまだ含まれていることを示します。 重要性:高い PLCopenルール:CP2 例 14 . 例 PROGRAM PLC_PRG VAR xRe
SA0002:空のオブジェクト コードを含まないPOU、GVL、データ型宣言、またはインターフェイスを検出します。 理由:空のオブジェクトは避ける必要があります。多くの場合、オブジェクトが完全に実装されていないことを示しています。例外:場合によっては、関数ブロックがインターフェースを介してのみ使用される場合、関数ブロックの本体にコードが与えられません。それ以外の場合、メソッドはインターフェイスに必
SA0003:空のステートメント セミコロンを含むコード行を検索します ; 、ただし、説明は含まれていません。 理論的根拠:空のステートメントは、欠落しているコードを示している可能性があります。 注: 空のステートメントを使用するのには十分な理由があります。たとえば、 CASE このステートメントでは、何もすることがない場合も含め、すべてのケースを明示的にプログラムすることが合理的です。こういう空
SA0006:複数のタスクからの書き込みアクセス 複数のタスクによって書き込まれる変数を決定します。 理由:いくつかのタスクで記述された変数は、その値を予期せず変更する可能性があります。これは混乱を招く状況につながる可能性があります。文字列変数および一部の32ビットシステムでは、変数が2つのタスクで同時に書き込まれる場合、64ビット整数変数も一貫性のないステータスになる可能性があります。 例外:場
SA0028:重複するメモリ領域 2つ以上の変数が同じメモリ空間を占めるコードを決定します。 理由: 2 つの変数が同じメモリを予約すると、コードが予期しない結果で動作する可能性があります。このような状況は何としても避けるべきです。値をさまざまな解釈で使用することを避けられない場合 (たとえば、ある値を次のように解釈する) DINT そしてまた別の時として REAL ) の場合は、を定義する必要が
SA0029:実装と宣言の表記が異なります 識別子の表記が宣言の表記と異なるコード位置を決定します。 根拠: IEC 61131-3 標準では、識別子は大文字と小文字を区別しないと定義されています。これは、「」として宣言された変数を意味します。 varx 「」としても使用できます VaRx ただし、これは混乱を招き誤解を招くため、避けてください。 重要性:中 例 40 . 例 デバイスツリーにブロ
未使用のオブジェクトを一覧表示する このセクションの内容 :