SA0172: 配列の境界外へのアクセス試行の可能性 配列の境界外の配列インデックスへのアクセスの可能性を検出します。 多くの場合、配列インデックスの範囲を超えます。 FOR インデックス変数を使用して配列インデックスにアクセスするループ。 重要度: 高 例 129 . 例 PROGRAM Test VAR_TEMP iIndex: INT; arUSINT: Array[0..10] OF IN
SA0180: インデックス範囲が配列全体をカバーしていません インデックス範囲が不完全にカバーされている配列を検出します 配列はループ内で処理されることが多く、ループ インデックスによって配列にインデックスが付けられるため、配列のすべてのコンポーネントが隙間なくジャンプされます。これは、ループ インデックスと配列インデックスがすべての次元で同じである場合に与えられます。インデックス範囲が配列を完
ダイアログ:静的解析設定:命名規則 関数 :対話で 定義 データ型と変数スコープのプレフィックス、およびPOUとユーザー定義データ型(DUT)のプレフィックス。 the 遵守 命名規則の一部は、静的コード分析によってチェックされます。規則に違反すると、静的コード分析のビューにエラーメッセージが表示されます メッセージ 表示されます。これに関する詳細情報: 静的コード分析を構成して実行する 電話 :
SA0014:インスタンスへの割り当て 機能ブロックインスタンスへの割り当てを決定します。ポインタ変数または参照変数を持つインスタンスの場合、これらの割り当てにはリスクが伴う可能性があります。 理由:これはパフォーマンスの警告です。インスタンスが別のインスタンスに割り当てられている場合、すべての要素とサブ要素が1つのインスタンスから別のインスタンスにコピーされます。データへのポインタもコピーされま
SA0016:構造のギャップ 現在設定されているターゲットシステムのアライメント要件によって引き起こされる構造または機能ブロックのギャップを特定します。可能であれば、構造要素を再配置するか、ダミー要素で埋めることによって、ギャップを削除する必要があります。これが不可能な場合は、プラグマを介して影響を受ける構造のルールを使用できます analysis 非アクティブ化します。 理由:プラットフォームご
SA0022 :(おそらく)割り当てられていない戻り値 戻り値に割り当てられていない実行スレッドを含むすべての関数とメソッドを検索します。 理論的根拠:関数またはメソッドの未割り当ての戻り値は、コードが欠落していることを示しています。戻り値に常にデフォルト値がある場合でも、あいまいさを避けるために、これを明示的に再度割り当てることは常に理にかなっています。 重要性:中 例 33 . 例 FUNCT
SA0033:未使用の変数 宣言されているが、コンパイルされたプログラムコード内で使用されていない変数を決定します。 理論的根拠:未使用の変数は、プログラムを読みにくくし、保守しにくくします。使用されない変数は、メモリを不必要に占有し、初期化中に実行時間のコストを不必要に消費します。 重要性:中 PLCopenルール:CP22 / CP24 ヒント GVL変数の場合:プロジェクトに複数のアプリケー
SA0035:未使用の入力変数 関数ブロックインスタンスで使用されない入力変数を決定します。 理論的根拠:未使用の変数は、プログラムを読みにくくし、保守しにくくします。使用されない変数は、メモリを不必要に占有し、初期化中に実行時間のコストを不必要に消費します。 重要性:中 PLCopenルール:CP24 例 43 . 例 FUNCTION_BLOCK FB_Afb VAR_INPUT iIn1:
SA0036:未使用の出力変数 関連する機能または機能ブロック内で割り当てられていない機能および機能ブロックの出力変数を決定します。 理論的根拠:未使用の変数は、プログラムを読みにくくし、保守しにくくします。使用されない変数は、メモリを不必要に占有し、初期化中に実行時間のコストを不必要に消費します。 重要性:中 PLCopenルール:CP24 例 44 . 例 FUNCTION_BLOCK FB_
SA0090: 関数終了前の RETURN ステートメント コードの場所を検出します。 RETURN ステートメントは、関数、メソッド、プロパティ、またはプログラムの最後のステートメントではありません。設置場所 RETURN 内に存在します IF ブランチも検出されます。 理由:A RETURN コード内にあると、コードの保守性、テスト性、および可読性が低下します。 A RETURN コード内は簡