Math status flags

Follow these guidelines for Math Status Flags.
Description
A set of Math Status Flags for accessing directly with instructions. These flags are only updated in ladder diagram routines, and are not tags, and flag aliases are not applicable.
Status Flags
This table describes that specific status flags.
Status Flag
Description
S:FS
First scan flag
The first scan flag is set by the controller:
  • The first time a program is scanned after the controller goes to Run mode
  • The first time a program is scanned after the program is uninhibited
  • When a routine is called from an SFC Action and the step that owns that Action is first scanned.
Use the first scan flag to initialize data for use in later scans. It is also referred to as the first pass bit.
S:N
Negative flag
The controller sets the negative flag when the result of a math or logical operation is a negative value. Use this flag as a quick test for a negative value.
S:Z
Zero flag
The zero flag is set by the controller when the result of a math or logical operation is zero. Use this flag as a quick test for a zero value.
The zero flag clears at the start of executing an instruction capable of setting this flag.
S:V
Overflow flag
The controller sets the overflow flag when:
  • The result of a math operation results in an overflow.
    For example, adding 1 to a SINT generates an overflow when the value goes from 127 through -128.
  • The destination tag is too small to hold the value.
    For example, if you try to store the value 123456 to a SINT or INT tag.
Use the overflow flag to verify the result of an operation is still in range.
If the data being stored is a string type, S:V is set if the string is too large to fit into the destination tag.
If applicable, set S:V with an OTE or OTL instruction.
Select
Controller Properties > Advanced tab > Report Overflow Faults
to enable or disable reporting overflow faults.
If an overflow occurs while evaluating an array subscript, a minor fault is generated and a major fault is generated to indicate the index is out of range.
S:C
Carry flag
The controller sets the carry flag when the result of a math operation resulted in the generation of a carry out of the most significant bit.
Only the ADD and SUB instructions, and not the + and – operators, with integer values affect this flag.
S:MINOR
Minor fault flag
The controller sets the minor fault flag when there is at least one minor program fault.
Use the minor fault tag to test if a minor fault occurred. This bit only triggers by programming faults, such as overflow. It is not triggered by a battery fault. The bit clears at the beginning of every scan.
If applicable, explicitly set S:MINOR with an OTE or OTL instruction.
IMPORTANT: The math status flags are set based on the stored value. Instructions that normally do not affect math status flags might appear to affect math status flags if type conversion occurs from mixed data types for the instruction parameters. The type conversion process sets the math status flags.
Expressions in Array Subscripts
Expressions do not set status flags based on the results of math operations. If expressions overflow:
  • A minor fault generates if the controller is configured to generate minor faults.
  • A major fault (type 4, code 20) generates because the resulting value is out of range.
    TIP: If an array subscript is too large (out of range), a major fault (type 4, code 20) generates.
Provide Feedback
Have questions or feedback about this documentation? Please submit your feedback here.