SA0012:定数として宣言できる変数 書き込みのためにアクセスされないため、定数として宣言できる変数を判別します。 正当性: 変数が宣言点でのみ書き込まれ、それ以外は読み取りのみに使用される場合、静的分析では変数も変更すべきではないと想定されます。まず、定数として宣言すると、プログラム変更時に変数が変更されないことがチェックされます。次に、定数として宣言すると、コードが高速になる可能性があります
SA0014:インスタンスへの割り当て 機能ブロックインスタンスへの割り当てを決定します。ポインタ変数または参照変数を持つインスタンスの場合、これらの割り当てにはリスクが伴う可能性があります。 理由:これはパフォーマンスの警告です。インスタンスが別のインスタンスに割り当てられている場合、すべての要素とサブ要素が1つのインスタンスから別のインスタンスにコピーされます。データへのポインタもコピーされま
SA0017: ポインター変数への異常な代入 アドレスを持たないポインタへの割り当てを決定します(演算子 ADR またはポインタ変数)または定数 0 それは。 理由: ポインタに有効なアドレスではない値が割り当てられている場合、ポインタの逆参照により「アクセス違反例外」が発生します。 重要性:高い 例 29 . 例 PROGRAM PLC_PRG VAR pInt : POINTER TO INT
SA0020:REAL変数への切り捨てられた値の割り当ての可能性 データ型変数の切り捨てられた値を含む可能性のある整数変数の演算を検出します REAL 割り当てられています。 理由:整数計算の結果が次の場合、静的コード分析でエラーが発生します REAL - また LREAL -変数が割り当てられます。プログラマーは、そのような割り当ての解釈が正しくない可能性があることに注意する必要があります。 l
コマンド: 標準メトリックの表示 シンボル: 関数 : このコマンドは、アクティブなアプリケーションの静的コード分析を開始します。すべてのプログラミング ブロックのデフォルトのメトリクスが計算され、画面上の表に表示されます。 標準指標 タブ。 電話 : ビルド → 静的解析 メニュー 詳細については、以下を参照してください。 指標を表示する メトリクス タブ: 標準メトリクス 例 11 . 例 ヒ
コマンド: フォーマット デバッグモード この機能は、 CODESYS インスタンスはデバッグ モードで起動されます。 これを行うには、次のコマンドライン呼び出しでインスタンスを起動します。 codesys.exe --debug 関数 : このコマンドは、で設定されたルールに従って ST オブジェクトをフォーマットします。 CODESYS コードの可読性を向上させるためのオプション。 電話 :
SA0004:出力への複数の書き込みアクセス 複数の場所に書き込まれる出力を検索します。 理論的根拠:出口がコード内のさまざまな場所に書き込まれると、保守性が低下します。その場合、どの書き込みアクセスが実際にプロセスに影響を与えるのかは不明です。補助変数で出力変数の計算を行い、サイクルの最後の1つのポイントで計算値を割り当てることをお勧めします。 重要性:高い PLCopenルール:CP12 ヒン
SA0007: 定数のアドレス演算子 演算子が存在するコード行を検索します ADR 定数に適用されます。 理由:定数変数へのポインターは、 CONSTANT 変数のプロパティ。変数は、コンパイラーがこれを報告しなくても、ポインターを介して変更できます。 例外:まれに、定数へのポインタを関数に転送することが理にかなっている場合があります。ただし、この関数が転送された値を変更しないことを確認する必要が
SA0008:サブエリアタイプを確認してください サブレンジタイプのレンジ違反を検出します。割り当てられたリテラルは、コンパイラによってすでにチェックされています。定数が割り当てられている場合、値は定義された範囲内にある必要があります。変数をマップする場合、データ型は同じである必要があります。 理由:サブエリアタイプを使用する場合は、このサブエリアが終了しないようにする必要があります。コンパイラー
SA0009:未使用の戻り値 戻り値が使用されていない関数、メソッド、およびプロパティの呼び出しを検出します。 理由: 関数またはメソッドが戻り値を返すときは、それも評価する必要があります。戻り値は多くの場合、関数が正常に実行されたかどうかを示します。評価がない場合、戻り値が忘れられていたのか、それとも実際には必要ではなかったのかを後で特定することができなくなります。 例外: 戻り値が呼び出しに無