Topic: DMD0118

SUM IF - Sum If


This instruction can only be used in the Expression parameter of the Calculate Expression (MATH) instruction.

 

Each of the Sum If math functions sums the values in the locations in the specified range that match the specified value by making the comparison by the function name.

 

Note: Use the F9 key to open the Default Element Selection Tool (the Element Picker or the Element Browser) or use the Down-Arrow key (Auto-Complete) on any parameter field to see a complete list of the memory locations that are valid for that parameter of the instruction.

 

Result specifies a location to store the result of the calculation. This can be any writable numeric location.

 

The Expression parameter consists of all the text between the bounding parentheses.The parameter list must consist of 2 parameters separated by a comma. Each parameter is an expression which can be a constant value, a bit or numeric memory location, an arithmetic expression, and/or mathematical function or other expressions up to a maximum of 1024 characters. Expressions can be nested, so use of parentheses is recommended to ensure proper evaluation order.

 

There are six variants of the Sum If math function, and all six have the following three parameters:

 

  • The first parameter designates the comparison value. This can be any expression parameter, including any constant value, any readable numeric location, any readable bit location, any Math function, or any combination of these with Math operators.
     

  • The second parameter designates the first location in the range of locations to compare against. This can be any readable numeric data-block location, or any readable bit data-block location.
     

  • The third parameter specifies the number of contiguous locations that will be compared against. This can be any expression parameter, including any constant value, any readable numeric location, any readable bit location, any Math function, or any combination of these with Math operators.


    Note: If the third parameter is 0, the result will be 0, and ST132 (Argument Out of Range) will be ON.

     

    Note: If the third parameter exceeds the size of the specified data block, the result will only include the values up through the last location in the block, and ST132 (Argument Out of Range) will be ON. For example, assume the block of WX locations has a range of WX0 to WX255. The result of SUMIFEQ(45, WX250, 10) would only include the values in WX250 through WX255, and ST132 (Argument Out of Range) will be ON.

 

The following are the 6 variants of the Sum If math function:

SUMIFEQ - Sum If Equal to Expression

In the example to the right, D0 will sum the values from the locations in the range of D100 through D109 that contain a value that is equal to 45.

 

 


SUMIFNE - Sum If Not Equal to Expression

In the example to the right, D0 will sum the values from the locations in the range of D100 through D109 that contain a value that is not equal to 45.

 

 


SUMIFLT - Sum If Less Than Expression

In the example to the right, D0 will sum the values from the locations in the range of D100 through D109 that contain a value that is less than 45.

 


SUMIFLE - Sum If Less Than or Equal to Expression

In the example to the right, D0 will sum the values from the locations in the range of D100 through D109 that contain a value that is less than or equal to 45.

 

 


SUMIFGT - Sum If Greater Than Expression

In the example to the right, D0 will sum the values from the locations in the range of D100 through D109 that contain a value that is greater than 45.

 

 


SUMIFGE - Sum If Greater Than or Equal to Expression

In the example to the right, D0 will sum the values from the locations in the range of D100 through D109 that contain a value that is greater than or equal to 45.

 

 


See Also:

 


Rung Example: