ダイアログ:設定静的解析:設定 関数 :ダイアログで自動をアクティブにします 静的コード分析 静的コード分析用のプロジェクト設定をCSAファイルとして保存またはロードします。 ボタン 構成ダイアログを開く の プロジェクト→プロジェクト設定 、 カテゴリー 静的コード分析 メニュー ビルド→静的分析→設定 要件 : その包み CODESYS Static Analysis インストールされています
属性: nameprefix この属性は、構造化データ型の変数のプレフィックスを定義します。プレフィックスは、このタイプで宣言された変数の識別子の前に置く必要があります。この命名規則は、 静的コード分析 。 挿入位置 :構造化データ型の宣言前の行 構文 : {attribute 'nameprefix' := '<prefix>'} 例 次の例では、変数名が「point」で始まっていないため、静的
属性:analysis:report-multiple-instance-calls 属性は、チェックの汎用モジュールを識別します 規則105 :この属性を持つ機能ブロックのみが、機能ブロックのインスタンスが複数回呼び出されているかどうかを確認するためにチェックされます。ルール105の場合 プロジェクト設定 が無効になっている場合、属性は効果がありません。 挿入位置 :機能ブロックの宣言部分の最初
SA0001:到達不能コード たとえば、次のような理由で実行されないコード行を検出します。 RETURN または CONTINUE 声明 理由:到達不能コードはどのような場合でも避ける必要があります。多くの場合、 テスト 再度削除する必要のあるテストコードがまだ含まれていることを示します。 重要性:高い PLCopenルール:CP2 例 14 . 例 PROGRAM PLC_PRG VAR xRe
SA0002:空のオブジェクト コードを含まないPOU、GVL、データ型宣言、またはインターフェイスを検出します。 理由:空のオブジェクトは避ける必要があります。多くの場合、オブジェクトが完全に実装されていないことを示しています。例外:場合によっては、関数ブロックがインターフェースを介してのみ使用される場合、関数ブロックの本体にコードが与えられません。それ以外の場合、メソッドはインターフェイスに必
SA0003:空のステートメント セミコロンを含むコード行を検索します ; 、ただし、説明は含まれていません。 理論的根拠:空のステートメントは、欠落しているコードを示している可能性があります。 注: 空のステートメントを使用するのには十分な理由があります。たとえば、 CASE このステートメントでは、何もすることがない場合も含め、すべてのケースを明示的にプログラムすることが合理的です。こういう空
SA0004:出力への複数の書き込みアクセス 複数の場所に書き込まれる出力を検索します。 理論的根拠:出口がコード内のさまざまな場所に書き込まれると、保守性が低下します。その場合、どの書き込みアクセスが実際にプロセスに影響を与えるのかは不明です。補助変数で出力変数の計算を行い、サイクルの最後の1つのポイントで計算値を割り当てることをお勧めします。 重要性:高い PLCopenルール:CP12 ヒン
SA0006:複数のタスクからの書き込みアクセス 複数のタスクによって書き込まれる変数を決定します。 理由:いくつかのタスクで記述された変数は、その値を予期せず変更する可能性があります。これは混乱を招く状況につながる可能性があります。文字列変数および一部の32ビットシステムでは、変数が2つのタスクで同時に書き込まれる場合、64ビット整数変数も一貫性のないステータスになる可能性があります。 例外:場
SA0007: 定数のアドレス演算子 演算子が存在するコード行を検索します ADR 定数に適用されます。 理由:定数変数へのポインターは、 CONSTANT 変数のプロパティ。変数は、コンパイラーがこれを報告しなくても、ポインターを介して変更できます。 例外:まれに、定数へのポインタを関数に転送することが理にかなっている場合があります。ただし、この関数が転送された値を変更しないことを確認する必要が