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