DIV block

Short summary

Name

DIV

→POU type

→function

Category

IEC-block, Numeric, block with internal error diagnostic

Conform to →IEC-standard

images/s/b2ic8e/9012/1ca6q62/_/images/icons/emoticons/error.svg currently restricted
(IEC demands error handling, if the result of the block exceeds the range of values for the output data type. See " No check of invalid connections " for the behavior in logi.CAD 3. )

Graphical interface

images/download/thumbnails/414781973/DIV-version-1-modificationdate-1535031904919-api-v2.png

Available since

  • version 1.0.0 (for logi.CAD 3) – initial variant

  • version 3.4.0 (for library Standard) – change in the case of a division of the minimum value by -1 and for a return ult value of the same data type

Functionality

The mathematical function division is called: The block returns the quotient for IN1 / IN2.

Enter the value for the dividend at input IN1 and the value for the divisor at input IN2.

The result of the division of →integers is an integer of the same type with truncation toward zero (there is no rounding). Examples:

  • The division 7/3 returns the value{{2}}. The decimal part 0,333... is truncated

  • The division (-7)/3 returns the value -2. The decimal part 0,333... is truncated

When dividing the minimum value for a data type (also known as the "lower limit" of the data type) by -1 and for a return value of the same data type, the result of the division is 0 and the output ENO of the block is set to the value FALSE. Example: The division with the values -2_147_483_648/-1 for the data type DINT has the result 0 (if the return value is of the same data type DINT) and the ENO is set to FALSE. Reason: -2_147_483_648 is the minimum value (also known as the lower limit) for DINT.

No check of invalid connections

For this block, invalid connections are not checked by logi.CAD 3 (except for the checks listed under "Internal error diagnostic for block"). Therefore, enter code in your application to detect invalid connections (e.g. IF-statements). See "Examples for invalid Connections".

See "IEC-blocks for the application" for information what the consequences of an invalid connection might be.

Inputs, return value


Identifier

→Data type

Description

Inputs:

IN1

REAL, LREAL, USINT, UINT, UDINT, ULINT, SINT, INT, DINT or LINT
(corresponds to →generic data type ANY_NUM)

1st value (dividend)

IN2

REAL, LREAL, USINT, UINT, UDINT, ULINT, SINT, INT, DINT or LINT
(corresponds to →generic data type ANY_NUM)

2nd value (divisor)

Return value:

REAL, LREAL, USINT, UINT, UDINT, ULINT, SINT, INT, DINT or LINT
(corresponds to →generic data type ANY_NUM)


Input EN and output ENO are available when →calling the block. See "Execution control: EN, ENO" for information on input EN and output ENO.

See:

Internal error diagnostic for block

The block checks the values and/or data types for the inputs and the return values. The output ENO of the block is set to value FALSE (or an equivalent) in the following cases and the block returns the value 0.

  • for a division by 0 – regardless of the data type

  • for a division of the minimum value for a data type by the value -1 when the return value is of the same data type

Example for usage within ST-editor

PROGRAM Test
VAR
result : REAL;
END_VAR
result := DIV(IN1 := 10.0, IN2 := 2.0); (* The variable 'result' evaluates to '5.0'. *)
END_PROGRAM

When creating your application within the ST-editor, enter a call of a block by typing the text as requested by the syntax or use Content Assist.


Examples for invalid connections

An invalid connection due to →overflows or →underflows might occur during a calculation using DIV.

Example for invalid connections
DIV(IN1 := REAL#1.0e38, IN2 := REAL#3.0e-38);