ダイアログ:静的分析設定:メトリック シンボル: 関数 : メトリクスが、 デフォルトの指標を表示する コマンドが実行されます。 電話 : プロジェクト → プロジェクト設定 メニュー、 静的解析 カテゴリー、 設定ダイアログを開く リンク ビルド → 静的解析 → 設定 メニュー 要件 : その包み CODESYS Static Analysis インストールされています プロジェクトが開いてい
SA0032:未使用の列挙定数 コンパイルされたプログラムコードで使用されない列挙定数を決定します。 理由:未使用の列挙定数は、列挙定義を不必要に拡大し、プログラムを読み取るときに混乱する可能性があります。 PLCopenルール:CP24 重要度:低 ヒント プロジェクトに複数のアプリケーションがある場合は、現在アクティブなアプリケーションの下にあるオブジェクトのみが考慮されます。アプリケーション
SA0034:割り当てが正しくない列挙型変数 列挙型変数に割り当てられた値を取得します。定義された列挙定数のみを列挙変数に割り当てることができます。 理由: 列挙型の変数には、意図した値のみが含まれている必要があります。そうでないと、この変数を使用するコードが正しく動作しない可能性があります。プラグマでは常に列挙型を使用することをお勧めします。 {attribute 'strict'} 。その後、
SA0041:ループ不変コードの可能性 各ループ サイクルで同じ値を計算するループ内の代入を検出します。このようなコード行はループの外側に挿入される可能性があります。 理由: これはパフォーマンスに関する警告です。ループ内で実行されるが、各ループ サイクルで同じことを行うコードは、ループの外で実行できます。 重要性:中 例 49 . 例 PROGRAM PLC_PRG VAR iCounter,
SA0090: 関数終了前の RETURN ステートメント コードの場所を検出します。 RETURN ステートメントは、関数、メソッド、プロパティ、またはプログラムの最後のステートメントではありません。設置場所 RETURN 内に存在します IF ブランチも検出されます。 理由:A RETURN コード内にあると、コードの保守性、テスト性、および可読性が低下します。 A RETURN コード内は簡
SA0095:条件の割り当て の条件で割り当てを決定します IF -、 CASE - また REPEAT -構築します。 理由:割り当て(:=)と比較(=)は簡単に混同される可能性があります。したがって、条件内の割り当ては、意図せずに簡単に行われる可能性があるため、報告されます。これは、コードの読者を混乱させる可能性もあります。 重要性:高い 例 87 . 例 PROGRAM PLC_PRG VA
SA0100:<n>バイトより大きい変数 nバイトを超える変数を検索します。ここで、nは現在の構成で指定されます。デフォルト:1024バイト。行をダブルクリックすると、値を変更できます。 理論的根拠:一部のプログラミングガイドラインでは、単一の変数の最大サイズが設定されています。これはここで確認できます。 重要度:低 例 88 . 例 PROGRAM PLC_PRG VAR aobyTest :
SA0101:長さが不正な名前 無効な長さの名前を検索します。ダイアログでこのルールの行をダブルクリックする プロジェクト設定 名前の長さを定義し、これに対する例外を指定できるダイアログが開きます。 理由:一部のプログラミングガイドラインでは、変数名の最小長が指定されています。この分析でコンプライアンスを確認できます。 重要度:低 PLCopenルール:N6 ヒント すべてのルールは次のとおりです
SA0170: 出力変数のアドレスは使用できません 出力変数のアドレスが含まれるコードの位置を検出します ( VAR_OUTPUT 、 VAR_IN_OUT ファンクションブロックの)を使用します。 理由: ファンクション ブロック出力のアドレスを次の方法で使用することは許可されていません。 経由 ADR -オペレーター によって REF= 例外: 出力変数が同じ関数ブロック内で使用されている場合
SA0059:常にTRUEまたはFALSEを返す比較操作 結果が常に次になるリテラルとの比較を検出します。 TRUE または FALSE 、コンパイル時にすでに処理できます。 理論的根拠:一定の演算 TRUE また FALSE 戻り値はプログラミングエラーを示します。 重要性:高い 例 69 . 例 PROGRAM PLC_PRG VAR byTemp1 : BYTE; END_VAR WHILE