SA0011: メンバーが 1 つしかない無駄な宣言 メンバーが 1 つだけある構造体または列挙型を検出します 理由: メンバーが 1 つだけの構造体や列挙型は宣言すべきではありません。このような宣言は読者を混乱させる可能性があります。要素が 1 つだけある構造体は、エイリアス型で置き換えることができます。要素が 1 つだけある列挙は定数に置き換えることができます。 PLCopenルール:CP22
SA0014:インスタンスへの割り当て 機能ブロックインスタンスへの割り当てを決定します。ポインタ変数または参照変数を持つインスタンスの場合、これらの割り当てにはリスクが伴う可能性があります。 理由:これはパフォーマンスの警告です。インスタンスが別のインスタンスに割り当てられている場合、すべての要素とサブ要素が1つのインスタンスから別のインスタンスにコピーされます。データへのポインタもコピーされま
SA0016:構造のギャップ 現在設定されているターゲットシステムのアライメント要件によって引き起こされる構造または機能ブロックのギャップを特定します。可能であれば、構造要素を再配置するか、ダミー要素で埋めることによって、ギャップを削除する必要があります。これが不可能な場合は、プラグマを介して影響を受ける構造のルールを使用できます analysis 非アクティブ化します。 理由:プラットフォームご
SA0018:異常なビットアクセス 符号付き変数へのビットアクセスを検出します。ただし、IEC 61131-3 規格では、ビット フィールドに対するビット アクセスとビット シフト操作のみが許可されています。 厳格なルールも参照してください SA0147 そして SA0148 。 理由:符号付きデータ型をビットフィールドとして使用しないでください。その逆も同様です。 IEC 61131-3規格では
SA0020:REAL変数への切り捨てられた値の割り当ての可能性 データ型変数の切り捨てられた値を含む可能性のある整数変数の演算を検出します REAL 割り当てられています。 理由:整数計算の結果が次の場合、静的コード分析でエラーが発生します REAL - また LREAL -変数が割り当てられます。プログラマーは、そのような割り当ての解釈が正しくない可能性があることに注意する必要があります。 l
SA0021:一時変数のアドレスの転送 非一時変数への一時変数(スタック上の変数)のアドレス割り当てを取得します。 理由:関数またはメソッドのローカル変数がスタック上に作成され、関数またはメソッドが処理されている間のみ存在します。メソッドまたは関数が処理された後にポインタがそのような変数を指している場合、このポインタを使用して未定義のメモリにアクセスしたり、別の関数の誤った変数にアクセスしたりでき
コマンド: 現在のエディタの定数伝播の値を表示 シンボル: 関数 : このコマンドは静的コード分析を開始し、現在のエディターでのコードの定数伝播の測定値を計算します。ダイアログが開き、結果が視覚化されます。解析されたコードが一覧表示され、求められた測定値が表示されます。 電話 : ビルド → 静的解析 メニュー 要件 : ST 実装言語のプログラミング オブジェクトがエディターで開かれています。
コマンド:クローンを検索 関数 :コマンドは、オープンのプログラムコードを検索します CODESYS -コピーされたコードのプロジェクトとビューを開きます 検索結果のクローンを作成する 見つかったクローンコードブロックを表示します。特定のサイズより大きいコードのブロックのみがクローンと見なされます。非常に小さなコードはクローンとして表示されません。 この点にも注意してください 抽出機能 と指示 コ
コマンド: 現在のエディターの認知的複雑性を表示 シンボル: 関数 : このコマンドは静的コード分析を開始し、現在のエディターでのコードの認知的複雑さの測定値を計算します。開いたダイアログでは結果が視覚化され、タイトルに測定値の合計が指定されます。分析されたコードがリストされ、検出された複雑さとともに表示されます。 電話 : ビルド → 静的解析 メニュー 要件 : ST 実装言語のプログラミング
SA0001:到達不能コード たとえば、次のような理由で実行されないコード行を検出します。 RETURN または CONTINUE 声明 理由:到達不能コードはどのような場合でも避ける必要があります。多くの場合、 テスト 再度削除する必要のあるテストコードがまだ含まれていることを示します。 重要性:高い PLCopenルール:CP2 例 14 . 例 PROGRAM PLC_PRG VAR xRe