SA0021:一時変数のアドレスの転送 非一時変数への一時変数(スタック上の変数)のアドレス割り当てを取得します。 理由:関数またはメソッドのローカル変数がスタック上に作成され、関数またはメソッドが処理されている間のみ存在します。メソッドまたは関数が処理された後にポインタがそのような変数を指している場合、このポインタを使用して未定義のメモリにアクセスしたり、別の関数の誤った変数にアクセスしたりでき
コマンド: 現在のエディタの定数伝播の値を表示 シンボル: 関数 : このコマンドは静的コード分析を開始し、現在のエディターでのコードの定数伝播の測定値を計算します。ダイアログが開き、結果が視覚化されます。解析されたコードが一覧表示され、求められた測定値が表示されます。 電話 : ビルド → 静的解析 メニュー 要件 : ST 実装言語のプログラミング オブジェクトがエディターで開かれています。
コマンド:クローンを検索 関数 :コマンドは、オープンのプログラムコードを検索します CODESYS -コピーされたコードのプロジェクトとビューを開きます 検索結果のクローンを作成する 見つかったクローンコードブロックを表示します。特定のサイズより大きいコードのブロックのみがクローンと見なされます。非常に小さなコードはクローンとして表示されません。 この点にも注意してください 抽出機能 と指示 コ
コマンド: 現在のエディターの認知的複雑性を表示 シンボル: 関数 : このコマンドは静的コード分析を開始し、現在のエディターでのコードの認知的複雑さの測定値を計算します。開いたダイアログでは結果が視覚化され、タイトルに測定値の合計が指定されます。分析されたコードがリストされ、検出された複雑さとともに表示されます。 電話 : ビルド → 静的解析 メニュー 要件 : ST 実装言語のプログラミング
SA0001:到達不能コード たとえば、次のような理由で実行されないコード行を検出します。 RETURN または CONTINUE 声明 理由:到達不能コードはどのような場合でも避ける必要があります。多くの場合、 テスト 再度削除する必要のあるテストコードがまだ含まれていることを示します。 重要性:高い PLCopenルール:CP2 例 14 . 例 PROGRAM PLC_PRG VAR xRe
SA0003:空のステートメント セミコロンを含むコード行を検索します ; 、ただし、説明は含まれていません。 理論的根拠:空のステートメントは、欠落しているコードを示している可能性があります。 注: 空のステートメントを使用するのには十分な理由があります。たとえば、 CASE このステートメントでは、何もすることがない場合も含め、すべてのケースを明示的にプログラムすることが合理的です。こういう空
SA0004:出力への複数の書き込みアクセス 複数の場所に書き込まれる出力を検索します。 理論的根拠:出口がコード内のさまざまな場所に書き込まれると、保守性が低下します。その場合、どの書き込みアクセスが実際にプロセスに影響を与えるのかは不明です。補助変数で出力変数の計算を行い、サイクルの最後の1つのポイントで計算値を割り当てることをお勧めします。 重要性:高い PLCopenルール:CP12 ヒン
SA0006:複数のタスクからの書き込みアクセス 複数のタスクによって書き込まれる変数を決定します。 理由:いくつかのタスクで記述された変数は、その値を予期せず変更する可能性があります。これは混乱を招く状況につながる可能性があります。文字列変数および一部の32ビットシステムでは、変数が2つのタスクで同時に書き込まれる場合、64ビット整数変数も一貫性のないステータスになる可能性があります。 例外:場
SA0007: 定数のアドレス演算子 演算子が存在するコード行を検索します ADR 定数に適用されます。 理由:定数変数へのポインターは、 CONSTANT 変数のプロパティ。変数は、コンパイラーがこれを報告しなくても、ポインターを介して変更できます。 例外:まれに、定数へのポインタを関数に転送することが理にかなっている場合があります。ただし、この関数が転送された値を変更しないことを確認する必要が
SA0008:サブエリアタイプを確認してください サブレンジタイプのレンジ違反を検出します。割り当てられたリテラルは、コンパイラによってすでにチェックされています。定数が割り当てられている場合、値は定義された範囲内にある必要があります。変数をマップする場合、データ型は同じである必要があります。 理由:サブエリアタイプを使用する場合は、このサブエリアが終了しないようにする必要があります。コンパイラー