Skip to main content

SA0020:REAL変数への切り捨てられた値の割り当ての可能性

データ型変数の切り捨てられた値を含む可能性のある整数変数の演算を検出します REAL 割り当てられています。

理由:整数計算の結果が次の場合、静的コード分析でエラーが発生します REAL- また LREAL-変数が割り当てられます。プログラマーは、そのような割り当ての解釈が正しくない可能性があることに注意する必要があります。lrealvar := dintvar1 * dintvar2

からの値の範囲から LREAL のそれよりも大きい DINT、計算の結果はいずれにせよ LREAL 表示することができます。そうではありません。プロセッサは、乗算の結果を整数として計算してから、結果を再キャストします LREAL。整数計算のオーバーフローは失われます。問題を回避したい場合は、請求書はすでに次のようになっている必要があります REAL-行われた手術:lreal_var := TO_LREAL(dintvar1) * TO_LREAL(dintvar2)

重要性:高い

32.
PROGRAM PLC_PRG
VAR
    rX : LREAL;
    dI : DINT;
END_VAR
rX := dI * dI    // SA0020
rX := TO_LREAL(dI) * TO_LREAL(dI)    //no message

での出力 メッセージ ビュー:

  • sa_icon_message.png SA0020: 切り捨てられた値が REAL 変数に代入されている可能性があります