V4002¶
- Code
V4002
- Message
Negative exponent in arithmetic operation
The program attempted to raise a value to a negative exponent using the EXPT
function. IEC 61131-3 integer exponentiation does not support negative exponents.
Example¶
The following code will generate error V4002:
PROGRAM Main
VAR
x : INT := 5;
result : INT;
END_VAR
result := EXPT(x, -2); (* Error: negative exponent *)
END_PROGRAM
The exponent -2 is negative, which is not supported for integer exponentiation.
To fix this error, ensure the exponent is non-negative:
PROGRAM Main
VAR
x : INT := 5;
exp : INT := 2;
result : INT;
END_VAR
IF exp >= 0 THEN
result := EXPT(x, exp);
END_IF;
END_PROGRAM
Think IronPLC is wrong about this?
If you believe this diagnostic is incorrect, open an issue on GitHub with a small sample that demonstrates the problem.