Use arithmetic operators and functions
    Combine multiple operators and functions in arithmetic expressions.
Operators calculate new values.
To  | Use this operator  | Optimal data type  | 
Add  | +  | DINT, REAL  | 
Subtract/negate  | -  | DINT, REAL  | 
Multiply  | *  | DINT, REAL  | 
Exponent (x to the power of y)  | **  | DINT, REAL  | 
Divide  | /  | DINT, REAL  | 
Modulo-divide  | MOD  | DINT, REAL  | 
Functions perform math operations. Specify a constant, a non-Boolean tag, or an expression for the function.
For  | Use this function  | Optimal data type  | 
Absolute value  | ABS (numeric_expression)  | DINT, REAL  | 
Arc cosine  | ACOS (numeric_expression)  | REAL  | 
Arc sine  | ASIN (numeric_expression)  | REAL  | 
Arc tangent  | ATAN (numeric_expression)  | REAL  | 
Cosine  | COS (numeric_expression)  | REAL  | 
Radians to degrees  | DEG (numeric_expression)  | DINT, REAL  | 
Natural log  | LN (numeric_expression)  | REAL  | 
Log base 10  | LOG (numeric_expression)  | REAL  | 
Degrees to radians  | RAD (numeric_expression)  | DINT, REAL  | 
Sine  | SIN (numeric_expression)  | REAL  | 
Square root  | SQRT (numeric_expression)  | DINT, REAL  | 
Tangent  | TAN (numeric_expression)  | REAL  | 
Truncate  | TRUNC (numeric_expression)  | DINT, REAL  | 
The table provides examples for using arithmetic operators and functions.
Use this format  | Example  | |
For this situation  | Write  | |
value1 operator value2  | If gain_4 and gain_4_adj are DINT tags and your specification says: ‘Add 15 to gain_4 and store the result in gain_4_adj’"  | gain_4_adj := gain_4+15;  | 
operator value1  | If alarm and high_alarm are DINT tags and your specification says: ‘Negate high_alarm and store the result in alarm.’  | alarm:= -high_alarm;  | 
function(numeric_expression)  | If overtravel and overtravel_POS are DINT tags and your specification says: ‘Calculate the absolute value of overtravel and store the result in overtravel_POS.’  | overtravel_POS := ABS(overtravel);  | 
value1 operator (function((value2+value3)/2)  | If adjustment and position are DINT tags and sensor1 and sensor2 are REAL tags and your specification says: ‘Find the absolute value of the average of sensor1 and sensor2, add the adjustment, and store the result in position.’  | position := adjustment + ABS((sensor1 + sensor2)/2);  | 
Provide Feedback