SA0031:未使用の署名 コンパイルされたプログラムコード内で呼び出されないプログラム、関数ブロック、関数、データ型、インターフェイス、メソッド、プロパティ、およびアクションを識別します。 理論的根拠:未使用のオブジェクトはプロジェクトに不要なバルクを追加し、コードを読み取るときに混乱する可能性があります。 重要度:低 PLCopenルール:CP2 ヒント プロジェクトに複数のアプリケーションが
SA0035:未使用の入力変数 関数ブロックインスタンスで使用されない入力変数を決定します。 理論的根拠:未使用の変数は、プログラムを読みにくくし、保守しにくくします。使用されない変数は、メモリを不必要に占有し、初期化中に実行時間のコストを不必要に消費します。 重要性:中 PLCopenルール:CP24 例 43 . 例 FUNCTION_BLOCK FB_Afb VAR_INPUT iIn1:
SA0036:未使用の出力変数 関連する機能または機能ブロック内で割り当てられていない機能および機能ブロックの出力変数を決定します。 理論的根拠:未使用の変数は、プログラムを読みにくくし、保守しにくくします。使用されない変数は、メモリを不必要に占有し、初期化中に実行時間のコストを不必要に消費します。 重要性:中 PLCopenルール:CP24 例 44 . 例 FUNCTION_BLOCK FB_
SA0042:異なるアクセスパスの使用 同じ変数に対する異なるアクセスパスの使用を検出します。 理由:同じ要素へのアクセスが異なると、プログラムの可読性と保守性が低下します。一貫して使用することをお勧めします {attribute 'qualified-only'} ライブラリ、グローバル変数リスト、および列挙型の場合。これにより、完全に修飾されたアクセスが強制されます。 重要度:低 例 50 .
CODESYS Static Analysis CODESYS GmbH バージョン: V5.0.0.0、2024 年 4 月 www.codesys.com 最後の更新: Wed, 24 Apr 2024 09:27:46 このセクションの内容 :
SA0081:上限は定数値ではありません を検出します FOR 上限が定数値で定義されていないステートメント 理由:ループの上限が可変値である場合、ループが実行される頻度を確認することはできなくなります。これにより、実行時に深刻な問題が発生する可能性があり、最悪の場合、無限ループが発生する可能性があります。 重要性:高い 例 85 . 例 PROGRAM PLC_PRG VAR i:INT; iB
SA0162:コメントがありません プログラム内のコメントされていない位置を決定します。 理論的根拠:多くのプログラミングガイドラインでは完全なコメントが必要であり、コードの可読性と保守性が向上します。 重要度:低 PLCopenルール:C2 コメントが必要です 変数の宣言。コメントはその上または右側にあります。 プログラム、関数ブロック、またはメソッドの宣言。コメントは宣言の上にあります(最初の
SA0163:ネストされたコメント ネストされたコメントを検出します。 理論的根拠:ネストされたコメントは読みにくいため、避ける必要があります。 重要度:低 PLCopenルール:C3 例 120 . 例 {attribute 'do-analysis'} (* That is (* nested comment 1 *) *) PROGRAM PLC_PRG VAR (* That is //
SA0164:複数行コメント で始まる複数行のコメントを検索します (* comment *) エンコードされます。で始まる単一行のコメントのみが許可されます // comment エンコードされます。 理論的根拠:一部のプログラミングガイドラインでは、コメントの最初と最後が見えなくなったり、エラーによって終了コメントブラケットが削除されたりする可能性があるため、コード内の複数行コメントを禁止して
SA0165:プログラム以外のPOUを呼び出すタスク このチェックは、プログラムの代わりに関数ブロックまたは関数を呼び出すタスクを識別します。 理由:このルールはPLCopenコーディングガイドラインの一部であるため、コンプライアンスも含まれています CODESYS チェックしました。で見る CODESYS タスクがプログラム以外のPOUを呼び出す場合、データの整合性に関する問題はありません。ただ