SA0028:重複するメモリ領域 2つ以上の変数が同じメモリ空間を占めるコードを決定します。 理由: 2 つの変数が同じメモリを予約すると、コードが予期しない結果で動作する可能性があります。このような状況は何としても避けるべきです。値をさまざまな解釈で使用することを避けられない場合 (たとえば、ある値を次のように解釈する) DINT そしてまた別の時として REAL ) の場合は、を定義する必要が
SA0032:未使用の列挙定数 コンパイルされたプログラムコードで使用されない列挙定数を決定します。 理由:未使用の列挙定数は、列挙定義を不必要に拡大し、プログラムを読み取るときに混乱する可能性があります。 PLCopenルール:CP24 重要度:低 ヒント プロジェクトに複数のアプリケーションがある場合は、現在アクティブなアプリケーションの下にあるオブジェクトのみが考慮されます。アプリケーション
SA0033:未使用の変数 宣言されているが、コンパイルされたプログラムコード内で使用されていない変数を決定します。 理論的根拠:未使用の変数は、プログラムを読みにくくし、保守しにくくします。使用されない変数は、メモリを不必要に占有し、初期化中に実行時間のコストを不必要に消費します。 重要性:中 PLCopenルール:CP22 / CP24 ヒント GVL変数の場合:プロジェクトに複数のアプリケー
SA0035:未使用の入力変数 関数ブロックインスタンスで使用されない入力変数を決定します。 理論的根拠:未使用の変数は、プログラムを読みにくくし、保守しにくくします。使用されない変数は、メモリを不必要に占有し、初期化中に実行時間のコストを不必要に消費します。 重要性:中 PLCopenルール:CP24 例 43 . 例 FUNCTION_BLOCK FB_Afb VAR_INPUT iIn1:
SA0034:割り当てが正しくない列挙型変数 列挙型変数に割り当てられた値を取得します。定義された列挙定数のみを列挙変数に割り当てることができます。 理由: 列挙型の変数には、意図した値のみが含まれている必要があります。そうでないと、この変数を使用するコードが正しく動作しない可能性があります。プラグマでは常に列挙型を使用することをお勧めします。 {attribute 'strict'} 。その後、
SA0042:異なるアクセスパスの使用 同じ変数に対する異なるアクセスパスの使用を検出します。 理由:同じ要素へのアクセスが異なると、プログラムの可読性と保守性が低下します。一貫して使用することをお勧めします {attribute 'qualified-only'} ライブラリ、グローバル変数リスト、および列挙型の場合。これにより、完全に修飾されたアクセスが強制されます。 重要度:低 例 50 .
SA0044:インターフェース参照付きの宣言 で宣言を決定します REFERENCE TO -インターフェースと宣言 VAR_IN_OUT -インターフェースを備えた変数(暗黙的に REFERENCE TO 気がついた)。 理由:インタフェースタイプは常に、このインタフェースを実装する汎用モジュールのインスタンスへの暗黙の参照です。したがって、インターフェースへの参照は参照への参照であり、非常に望
SA0081:上限は定数値ではありません を検出します FOR 上限が定数値で定義されていないステートメント 理由:ループの上限が可変値である場合、ループが実行される頻度を確認することはできなくなります。これにより、実行時に深刻な問題が発生する可能性があり、最悪の場合、無限ループが発生する可能性があります。 重要性:高い 例 85 . 例 PROGRAM PLC_PRG VAR i:INT; iB
SA0090: 関数終了前の RETURN ステートメント コードの場所を検出します。 RETURN ステートメントは、関数、メソッド、プロパティ、またはプログラムの最後のステートメントではありません。設置場所 RETURN 内に存在します IF ブランチも検出されます。 理由:A RETURN コード内にあると、コードの保守性、テスト性、および可読性が低下します。 A RETURN コード内は簡
SA0101:長さが不正な名前 無効な長さの名前を検索します。ダイアログでこのルールの行をダブルクリックする プロジェクト設定 名前の長さを定義し、これに対する例外を指定できるダイアログが開きます。 理由:一部のプログラミングガイドラインでは、変数名の最小長が指定されています。この分析でコンプライアンスを確認できます。 重要度:低 PLCopenルール:N6 ヒント すべてのルールは次のとおりです