SA0029:実装と宣言の表記が異なります 識別子の表記が宣言の表記と異なるコード位置を決定します。 根拠: IEC 61131-3 標準では、識別子は大文字と小文字を区別しないと定義されています。これは、「」として宣言された変数を意味します。 varx 「」としても使用できます VaRx ただし、これは混乱を招き誤解を招くため、避けてください。 重要性:中 例 40 . 例 デバイスツリーにブロ
未使用のオブジェクトを一覧表示する このセクションの内容 :
SA0031:未使用の署名 コンパイルされたプログラムコード内で呼び出されないプログラム、関数ブロック、関数、データ型、インターフェイス、メソッド、プロパティ、およびアクションを識別します。 理論的根拠:未使用のオブジェクトはプロジェクトに不要なバルクを追加し、コードを読み取るときに混乱する可能性があります。 重要度:低 PLCopenルール:CP2 ヒント プロジェクトに複数のアプリケーションが
SA0032:未使用の列挙定数 コンパイルされたプログラムコードで使用されない列挙定数を決定します。 理由:未使用の列挙定数は、列挙定義を不必要に拡大し、プログラムを読み取るときに混乱する可能性があります。 PLCopenルール:CP24 重要度:低 ヒント プロジェクトに複数のアプリケーションがある場合は、現在アクティブなアプリケーションの下にあるオブジェクトのみが考慮されます。アプリケーション
SA0033:未使用の変数 宣言されているが、コンパイルされたプログラムコード内で使用されていない変数を決定します。 理論的根拠:未使用の変数は、プログラムを読みにくくし、保守しにくくします。使用されない変数は、メモリを不必要に占有し、初期化中に実行時間のコストを不必要に消費します。 重要性:中 PLCopenルール:CP22 / CP24 ヒント GVL変数の場合:プロジェクトに複数のアプリケー
SA0035:未使用の入力変数 関数ブロックインスタンスで使用されない入力変数を決定します。 理論的根拠:未使用の変数は、プログラムを読みにくくし、保守しにくくします。使用されない変数は、メモリを不必要に占有し、初期化中に実行時間のコストを不必要に消費します。 重要性:中 PLCopenルール:CP24 例 43 . 例 FUNCTION_BLOCK FB_Afb VAR_INPUT iIn1:
SA0036:未使用の出力変数 関連する機能または機能ブロック内で割り当てられていない機能および機能ブロックの出力変数を決定します。 理論的根拠:未使用の変数は、プログラムを読みにくくし、保守しにくくします。使用されない変数は、メモリを不必要に占有し、初期化中に実行時間のコストを不必要に消費します。 重要性:中 PLCopenルール:CP24 例 44 . 例 FUNCTION_BLOCK FB_
SA0034:割り当てが正しくない列挙型変数 列挙型変数に割り当てられた値を取得します。定義された列挙定数のみを列挙変数に割り当てることができます。 理由: 列挙型の変数には、意図した値のみが含まれている必要があります。そうでないと、この変数を使用するコードが正しく動作しない可能性があります。プラグマでは常に列挙型を使用することをお勧めします。 {attribute 'strict'} 。その後、
SA0037:入力変数への書き込みアクセス 入力変数を検出します ( VAR_INPUT ) POU 内で書き込み権限でアクセスされます。 理由:IEC 61131-3規格によると、入力変数はブロック内で変更してはなりません。このようなアクセスもエラーの原因であり、コードの保守が困難になります。次に、変数が入力として使用され、同時に補助変数として使用されることを示します。このような二重使用は避けて
SA0038:出力変数への読み取りアクセス 出力変数を検出します ( VAR_OUTPUT ) POU 内の読み取り権限でアクセスされます。 理由:61131-3によると、ブロック内の出力を読み取ることは禁止されています。これは、出力が出力としてだけでなく、中間結果の一時変数としても使用されることを示します。このような二重使用は避けてください。 重要度:低 例 47 . 例 VAR_GLOBAL