Differences: System blocks in predecessor product to current product

This article is an extension of the article "Differences: Predecessor product to current product". This article lists only the differences of the logi.CAD/32 systems blocks compared to the Neuron Power Engineer system blocks.
The following tables are organized in a slightly different way. However, the same icons apply as listed in the article "Differences: Predecessor product to current product".

Neuron tries to provide a complete list regarding the differences of the logi.CAD/32 systems blocks compared to the Neuron Power Engineer system blocks. However, be aware that this list does not claim to be comprehensive. Please inform Neuron when you become aware of additional differences so that this list is modified/enhanced accordingly.

In this article:

General differences for system function blocks and functions

System functions differ regarding the storing behavior:

LC32

Variables in functions have storing behavior. 

NPE

Variables in functions do not have storing behavior.

System functions differ regarding their interface:

LC32

The system functions have a VAR_OUTPUT (the name is specified below for each function under "Differences regarding interface").

NPE

The system functions have a return value instead of the VAR_OUTPUT.

System function blocks and functions using the following data types might differ from logi.CAD/32 to Neuron Power Engineer:

Data type

Reason

TIME

different timer frequency because it depends on the target system

DATE

different lower limit (see table for "Supported elementary data types" in article "Differences: Predecessor product to current product" for more information)

TIME_OF_DAY

different upper limit (see table for "Supported elementary data types" in article "Differences: Predecessor product to current product" for more information)

DATE_AND_TIME

different lower limit (see table for "Supported elementary data types" in article "Differences: Predecessor product to current product" for more information)

STRING

different behavior concerning memory error:

There is no memory error in LC32. But in NPE there might be a memory error.

Possible different results for REAL inputs:
System blocks with REAL inputs might return (marginal) other results within the threshold range in Neuron Power Engineer than in logi.CAD/32 because of the following reason:

LC32

The double variant of the C-runtime is used.

NPE

The optimized float variant of the C-runtime is used.

This applies to system blocks from "IEC61131-3" as well as from "IEC61131-3_(Ext)" (see below for the affected blocks).

System function blocks or functions from "IEC61131-3"

BISTABLE function blocks

RS block

Migration

(tick)

Differences

none

SEMA block

Migration

(tick)

Differences

none, but in NPE realized as enhancement to IEC-standard

SR block

Migration

(tick)

Differences

none

BITSTRING functions

AND block

Migration

(tick)

Differences regarding interface

 

LC32

output named OUT1

NPE

return value instead of OUT1

NOT block

Migration

(tick)

Differences regarding interface

 

LC32

input named IN1
output named OUT1

NPE

input named IN
return value instead of OUT1

OR block

Migration

(tick)

Differences regarding interface

 

LC32

output named OUT1

NPE

return value instead of OUT1

ROL block

Migration

(tick)

Differences regarding interface

 

LC32

output named OUT1

NPE

return value instead of OUT1

ROR block

Migration

(tick)

Differences regarding interface

 

LC32

output named OUT1

NPE

return value instead of OUT1

SHL block

Migration

(tick)

Differences regarding interface

 

LC32

output named OUT1

NPE

return value instead of OUT1

SHR block

Migration

(tick)

Differences regarding interface

 

LC32

output named OUT1

NPE

return value instead of OUT1

XOR block

Migration

(tick)

Differences regarding interface

 

LC32

output named OUT1

NPE

return value instead of OUT1

COMPARE functions

EQ block

Migration

(tick)

Differences regarding interface

 

LC32

output named OUT1

NPE

return value instead of OUT1

GE block

Migration

(tick)

Differences regarding interface

 

LC32

ANY_ELEMENTARY as possible data types for the inputs
output named OUT1

NPE

no STRING for the inputs
return value instead of OUT1

GT block

Migration

(tick)

Differences regarding interface

 

LC32

ANY_ELEMENTARY as possible data types for the inputs
output named OUT1

NPE

no STRING for the inputs
return value instead of OUT1

LE block

Migration

(tick)

Differences regarding interface

 

LC32

ANY_ELEMENTARY as possible data types for the inputs
output named OUT1

NPE

no STRING for the inputs
return value instead of OUT1

LT block

Migration

(tick)

Differences regarding interface

 

LC32

ANY_ELEMENTARY as possible data types for the inputs
output named OUT1

NPE

no STRING for the inputs
return value instead of OUT1

NE block

Migration

(tick)

Differences regarding interface

 

LC32

output named OUT1

NPE

return value instead of OUT1

CONVERT functions

INTTOBCD block

Migration

(info)
INTTOBCD becomes TO_BCD_WORD

Differences regarding interface

 

LC32

name = INTTOBCD
output named OUT1
ANY_BIT as possible data types for the output

NPE

name = e.g. TO_BCD_BYTE – Neuron Power Engineer provides the following functions: TO_BCD_BYTE, TO_BCD_DWORD, TO_BCD_LWORD, TO_BCD_WORD (but there is no TO_BCD_BOOL)
return value instead of OUT1a specific data type (e.g. BYTE) as data type for the return value

COUNTER function blocks

CTD block

Migration

(tick)

Differences regarding behavior

 

LC32

Decrementing is stopped, if the value -32,767 is reached.
In case of overflow/underflow, ENO is set to FALSE

NPE

Decrementing is stopped, if the lower limit of INT (= value -32,768) is reached.
In case of overflow/underflow, ENO is not set to FALSE

Differences regarding interface

 

LC32

input named >CD

NPE

input named CD

CTD_ANY_NUM block

Migration

(warning)
Replace CTD_ANY_NUM with a suitable typed counter.

Differences regarding behavior

 

LC32

Decrementing is stopped, if the lower limit of the data type + 1 is reached. For INT, this is the value -32,767.

NPE

Decrementing is stopped, if the lower limit of the data type is reached. For INT, this is the value -32,768.

Differences regarding interface

 

LC32

name = CTD_ANY_NUM
input named >CDANY_NUM as possible data types for the input PV and for the output CV

NPE

name = e.g. CTD_DINT – Neuron Power Engineer provides the following function blocks: CTD_DINT, CTD_INT, CTD_LINT, CTD_UDINT, CTU_UINT, CTD_ULINT (but there is no CTD_SINT, CTD_USINT, CTD_REAL, CTD_LREAL)
input named CDa specific data type (e.g. DINT) as data type for the input PV and for the output CV

CTU block

Migration

(tick)

Differences regarding behavior

 

LC32

In case of overflow/underflow, ENO is set to FALSE  

NPE

In case of overflow/underflow, ENO is not set to FALSE

Differences regarding interface

 

LC32

input named >CU

NPE

input named CU

CTU_ANY_NUM block

Migration

(warning)
Replace CTU_ANY_NUM with a suitable typed counter.

Differences regarding interface

 

LC32

name = CTU_ANY_NUM
input named >CU
ANY_NUM as possible data types for the input PV and for the output CV

NPE

name = e.g. CTU_DINT â€“ Neuron Power Engineer provides the following function blocks: CTU_DINT, CTU_INT, CTU_LINT, CTU_UDINT, CTU_UINT, CTU_ULINT (but there is no CTU_SINT, CTU_USINT, CTU_REAL, CTU_LREAL)
input named CUa specific data type (e.g. DINT) as data type for the input PV and for the output CV

CTUD block

Migration

(tick)

Differences regarding behavior

 

LC32

Decrementing is stopped, if the value -32,767 is reached.
If both inputs >CU and >CD  are set, >CU takes precedence.

NPE

Decrementing is stopped, if the lower limit of INT (= value -32,768) is reached.If both inputs CU and CD  are set, nothing happens. 

Differences regarding interface

 

LC32

inputs named >CU and >CD

NPE

inputs named CU and CD

CTUD_ANY_NUM block

Migration

(warning)
Replace CTUD_ANY_NUM with a suitable typed counter.

Differences regarding behavior

 

LC32

If both inputs >CU and >CD  are set, >CU takes precedence.

NPE

If both inputs CU and CD are set, nothing happens.

Differences regarding interface

 

LC32

name = CTUD_ANY_NUM
inputs named >CU and >CDANY_NUM as possible data types for the input PV and for the output CV

NPE

name = e.g. CTUD_DINT – Neuron Power Engineer provides the following function blocks: CTUD_DINT, CTUD_INT, CTUD_LINT, CTUD_UDINT, CTUD_UINT, CTUD_ULINT (but
there is no CTUD_SINT, CTUD_USINT, CTUD_REAL, CTUD_LREAL)
inputs named CU and CD
a specific data type (e.g. DINT) as data type for the input PV and for the output CV

EDGE function blocks

F_TRIG block

Migration

(tick)

Differences

none

R_TRIG block

Migration

(tick)

Differences

none

NUMERIC functions

ABS block

Migration

(info) See Possible different results for REAL inputs.

Differences regarding interface

 

LC32

input named IN1
output named OUT1

NPE

input named IN
return value instead of OUT1

ACOS block

Migration

(info) See Possible different results for REAL inputs.

Differences regarding interface

 

LC32

input named IN1
output named OUT1

NPE

input named IN
return value instead of OUT1

ADD block

Migration

(tick)

Differences regarding interface

 

LC32

output named OUT1

NPE

return value instead of OUT1

ASIN block

Migration

(info) See Possible different results for REAL inputs.

Differences regarding interface

 

LC32

input named IN1
output named OUT1

NPE

input named IN
return value instead of OUT1

ATAN block

Migration

(info) See Possible different results for REAL inputs.

Differences regarding interface

 

LC32

input named IN1
output named OUT1

NPE

input named IN
return value instead of OUT1

COS block

Migration

(info) See Possible different results for REAL inputs.

Differences regarding interface

 

LC32

input named IN1
output named OUT1

NPE

input named IN
return value instead of OUT1

DIV block

Migration

(tick)

Differences regarding behavior

 

LC32

Different behavior, depending on the data type of the inputs and the return value:

When dividing the minimum value for the data type SINT by -1 and for a return value of the same data type, the result of the division is -128 and the output ENO of the block is not set to the value FALSE.

When dividing the minimum value for a larger data type (such as DINT) by -1 and for a return value of the same data type, the execution of the program is unexpectedly stopped. This stop is not a stop occurring just for one cycle but it is a permanent stop. For the correct execution of the program, the faulty division must be corrected/deleted.

NPE

Same behavior independent of the data type of the inputs and the return value:
When dividing the minimum value for a 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.

Differences regarding interface

 

LC32

output named OUT1

NPE

return value instead of OUT1

EXP block

Migration

(info) See Possible different results for REAL inputs.

Differences regarding interface

 

LC32

input named IN1
output named OUT1

NPE

input named IN
return value instead of OUT1

EXPT block

Migration

(info) See Possible different results for REAL inputs.

Differences regarding behavior

 

LC32

If an error is detected while executing EXPT, the output ENO of is set to FALSE.
Example 1: In case of EXPT(-10.0,2.0), the block returns 0 and ENO is set to FALSE.
Example 2: In case of  EXPT(-2,-0.5), the block returns 0 and ENO is set to FALSE.

NPE

EXPT does not provide an internal error diagnostic. Therefore, the output ENO follows the input EN only. However, the return value might not be a valid number, but NaN (see example 2), +Infinity or -Infinity.
Example 1: In case of  EXPT(-10.0,2.0), the block returns 100 and ENO is set to TRUE.
Example 2: In case of  EXPT(-2,-0.5), the block returns NaN (not a number) and ENO is set to TRUE

(grey lightbulb) You might want to use the IS_VALID block of Neuron Power Engineer in your application to check the validity of ANY_REAL values.

Differences regarding interface

 

LC32

output named OUT1

NPE

return value instead of OUT1

LN block

Migration

(info) See Possible different results for REAL inputs.

Differences regarding interface

 

LC32

input named IN1
output named OUT1

NPE

input named IN
return value instead of OUT1

LOG block

Migration

(info) See Possible different results for REAL inputs.

Differences regarding interface

 

LC32

input named IN1
output named OUT1

NPE

input named IN
return value instead of OUT1

MOD block

Migration

(tick)

Differences regarding interface

 

LC32

output named OUT1

NPE

return value instead of OUT1

MOVE block

Migration

(tick)

Differences regarding interface

 

LC32

input named IN1
output named OUT1

NPE

input named IN
return value instead of OUT1

MUL block

Migration

(tick)

Differences regarding interface

 

LC32

output named OUT1

NPE

return value instead of OUT1

SIN block

Migration

(info) See Possible different results for REAL inputs.

Differences regarding interface

 

LC32

input named IN1
output named OUT1

NPE

input named IN
return value instead of OUT1

SQRT block

Migration

(info) See Possible different results for REAL inputs.

Differences regarding interface

 

LC32

input named IN1
output named OUT1

NPE

input named IN
return value instead of OUT1

SUB block

Migration

(tick)

Differences regarding interface

 

LC32

output named OUT1

NPE

return value instead of OUT1

TAN block

Migration

(info) See Possible different results for REAL inputs.

Differences regarding interface

 

LC32

input named IN1
output named OUT1

NPE

input named IN
return value instead of OUT1

SELECT functions

LIMIT block

Migration

(tick)

Differences regarding interface

 

LC32

ANY_ELEMENTARY as possible data types for the inputs
output named OUT1

NPE

no STRING for the inputs
return value instead of OUT1

MAX block

Migration

(tick)

Differences regarding interface

 

LC32

ANY_ELEMENTARY as possible data types for the inputs
output named OUT1

NPE

no STRING for the inputs
return value instead of OUT1

MIN block

Migration

(tick)

Differences regarding interface

 

LC32

ANY_ELEMENTARY as possible data types for the inputs
output named OUT1

NPE

no STRING for the inputs
return value instead of OUT1

SEL block

Migration

(tick)

Differences regarding interface

 

LC32

inputs named IN0 and IN1output named OUT1

NPE

inputs named IN1 and IN2return value instead of OUT1

STRING functions

CONCAT block

Migration

(tick)

Differences regarding behavior

 

LC32

result string: max. 127 characters

NPE

result string: combined length of the inputs

Differences regarding interface

 

LC32

output named OUT1

NPE

return value instead of OUT1

DELETE block

Migration

(tick)

Differences regarding behavior

 

LC32

Value 0 or a negative value at input P defines a position "left of the string" (in the invisible range of IN). As a consequence, the ENO-output is set to FALSE in logi.CAD/32.
Nevertheless, the functionality of the block is executed and the block output returns the resulting string.

NPE

For value 0 or a negative value at input P (= the position), the ENO-output is set to FALSE in Neuron Power Engineer as well.
However, the functionality of the block is not executed.

Differences regarding interface

 

LC32

output named OUT1

NPE

return value instead of OUT1

FIND block

Migration

(tick)

Differences regarding interface

 

LC32

output named OUT1

NPE

 

 

INSERT block

Migration

(tick)

Differences regarding behavior

 

LC32

A negative value at input P defines a position "left of the string" (in the invisible range of IN). As a consequence, the ENO-output is set to FALSE in logi.CAD/32.
Nevertheless, the functionality of the block is executed and the block output returns the resulting string.

NPE

For a negative value at input P (= the position), the ENO-output is set to FALSE in Neuron Power Engineer as well.
However, the functionality of the block is not executed.

Differences regarding interface

 

LC32

output named OUT1

NPE

return value instead of OUT1

LEFT block

Migration

(tick)

Differences regarding interface

 

LC32

output named OUT1

NPE

return value instead of OUT1

LEN block

Migration

(tick)

Differences regarding interface

 

LC32

input named IN1
output named OUT1

NPE

input named IN
return value instead of OUT1

MID block

Migration

(tick)

Differences regarding behavior

 

LC32

Value 0 or a negative value at input P defines a position "left of the string" (in the invisible range of IN). As a consequence, the ENO-output is set to FALSE in logi.CAD/32.
Nevertheless, the functionality of the block is executed and the block output returns the resulting string.

NPE

For value 0 or a negative value at input P (= the position), the ENO-output is set to FALSE in Neuron Power Engineer as well.
However, the functionality of the block is not executed.

Differences regarding interface

 

LC32

output named OUT1

NPE

return value instead of OUT1

REPLACE block

Migration

(tick)

Differences regarding behavior

 

LC32

Value 0 or a negative value at input P defines a position "left of the string" (in the invisible range of IN). As a consequence, the ENO-output is set to FALSE in logi.CAD/32.
Nevertheless, the functionality of the block is executed and the block output returns the resulting string.

NPE

For value 0 or a negative value at input P (= the position), the ENO-output is set to FALSE in Neuron Power Engineer as well.
However, the functionality of the block is not executed.

Differences regarding interface

 

LC32

output named OUT1

NPE

return value instead of OUT1

RIGHT block

Migration

(tick)

Differences regarding interface

 

LC32

output named OUT1

NPE

return value instead of OUT1

TIME functions

CONCAT_D block

Migration

(tick)

Differences regarding interface

 

LC32

name = CONCAT_D
output named OUT1

NPE

name = CONCAT_DATE_TOD
return value instead of OUT1

DIV_T block

Migration

(tick)

Differences regarding interface

 

LC32

name = DIV_T
output named OUT1

NPE

name = DIV_TIME
return value instead of OUT1

MUL_T block

Migration

(tick)

Differences regarding interface

 

LC32

name = MUL_T
output named OUT1

NPE

name = MUL_TIME
return value instead of OUT1

TIMER function blocks

RTC block

Migration

(tick)

Differences

none, but in NPE realized as enhancement to IEC-standard

TOF block

Migration

(tick)

Differences

none

TON block

Migration

(tick)

Differences

none

TP block

Migration

(tick)

Differences

none

System function blocks or functions from "IEC61131-3_(Ext)"

Conversion of REAL/LREAL

Conversion of REAL/LREAL values to ANY_INT

See below for the affected blocks.

Migration

(info)
REAL/LREAL values might be converted to a different ANY_INT value.

Differences

 

LC32

Half portions (such as 0.5 or 0.05) are rounded up.
Example 1: REAL value 1.5 is converted to ANY_INT value 2.
Example 2: REAL value 2.5 is converted to ANY_INT value 3.  

NPE

Half portions are rounded to the next even integer.
Example: 1.5 and 2.5 are both converted to ANY_INT value 2.

Conversion of REAL/LREAL constants to ANY_INT vs. REAL/LREAL variable to ANY_INT

See below for the affected blocks.

Migration

(info)
REAL/LREAL constants might be converted to a different ANY_INT value.

Differences

 

LC32

Depending on your logi.CAD/32 target system it is possible that the conversion of REAL/LREAL literals results in different ANY_INT values that the conversion of REAL/LREAL variables with the appropriate value.

NPE

The conversion of REAL/LREAL literals results in same ANY_INT values as the conversion of REAL/LREAL variables with the appropriate value.

Conversion of negative REAL/LREAL values

See below for the affected blocks.

Migration

(info)
Negative REAL/LREAL values for variables are converted to a different value.

Differences regarding behavior

 

LC32

If a negative value of a variable of the data type REAL or LREAL is connected to the input, the block does not return the value 0.
If a negative value of a constant of the data type REAL or LREAL is connected to the input, the block returns the value 0.

NPE

If a negative value of the data type REAL or LREAL is connected to the input, the block returns the value 0.

Conversion of TIME/TOD in case of overflows

See below for the affected blocks.

Migration

(info)
In case of an overflow, a TIME and TOD value might be converted to a different value.

Differences

 

LC32

The TIME or TOD value is internally converted, then the converted value is clipped and converted back as the result.
Example: Conversion of TIME#86_400 results in INT#20_864. Explanation: 86_400 is internally converted to 0x15180 which is clipped to 0x5180. The clipped value is converted back to 20864.

NPE

The upper or lower limit of the data type for the result is used.
Example: Conversion of TIME#86_400 results in INT#32_767. Explanation: 32_767 is the upper limit for INT.

Conversion of STRING

See below for the affected blocks.

Migration

(info)
STRING values might be converted to a different value.

Differences

 

LC32

A character â€“ as prefix for the value is ignored.

If a value contains an invalid character (e.g. value '123a45'), only the value up to this character (thus, value '123') is converted.

logi.CAD/32 converts the lower 16 bits of a value only.
Example: The STRING value'100000' evaluates to the decimal value 100000 and the binary value 1 1000 0110 1010 0000 with 17 digits.  logi.CAD/32 ignores the top bit and converts the binary value 1000 0110 1010 0000 with 16 digits. This binary value evaluates to decimal value 34464. This corresponds to the WORD value 16#86A0. Hence, the AtoWord block converts the STRING value'100000' to 16#86A0.

NPE

A value with character â€“ as prefix is converted analogously to a connected, negative INT value.

If a value contains an invalid character (e.g. value '123a45'), the block returns the value 16#0000.

If a value to be converted exceeds the upper limit of the target data type, the block returns the upper limit of the target data type.
Example: The STRING value'100000' exceeds the upper limit of WORD (which is 16#FFFF or as decimal value 65.535). Hence, the TO_WORD block converts the STRING value'100000' to 16#FFFF.

CONVERT functions and function blocks

ATOBOOL block

Migration

(info)
See Conversion of TIME/TOD in case of overflows.
See below the ENO-behavior. 

Differences regarding interface

 

LC32

name = ATOBOOL
input named IN1
ANY_BITANY_NUMTIMEANY_DATESTRING as possible data types for the input IN1
output named OUT1
Different ENO-behavior, if the connected value starts with valid characters but invalid characters follow: The output ENO of the block is set to value TRUE.

NPE

name = TO_BOOL
input named IN
no DATE and DATE_AND_TIME for the input INreturn value instead of OUT1
Different ENO-behavior, if the connected value starts with valid characters but invalid characters follow: The output ENO of the block is set to value FALSE.

ATOBYTE block

Migration

(info)
See Possible different results for REAL inputs.
See Conversion of REAL/LREAL.
See Conversion of TIME/TOD in case of overflows.
See Conversion of STRING.

Differences regarding interface

 

LC32

name = ATOBYTE

input named IN1
ANY_BITANY_NUMTIMEANY_DATESTRING as possible data types for the input IN1
output named OUT1

No ENO-behavior.

NPE

name = TO_BYTE

input named IN
no DATE and DATE_AND_TIME for the input INreturn value instead of OUT1

ENO-behavior:

The block checks the value connected to the input. The output ENO of the block is set to value FALSE (or an equivalent) in the following cases:

STRING value contains an invalid character. (Moreover for this case, the block returns the value 0.)

STRING value exceeds the upper limit of the target data type. (Moreover for this case, the block returns the upper limit of the target data type.)

ATODATE block

Migration

(info)
See below the behavior of TIME values.

Differences regarding behavior

 

LC32

The block uses the TIME-fraction for internal calculations.

NPE

The block discards the TIME-fraction. This is according to the IEC-standard.

Differences regarding interface

 

LC32

name = ATODATE
input named IN1
ANY_BITANY_NUMTIMEANY_DATESTRING as possible data types for the input IN1
output named OUT1

NPE

name = TO_DATEinput named IN
no user-defined data types and no STRING, for the input INreturn value instead of OUT1

ATODINT block

Migration

(info)
See Possible different results for REAL inputs.
See Conversion of REAL/LREAL.
See Conversion of TIME/TOD in case of overflows.

Differences regarding interface

 

LC32

name = ATODINT
input named IN1
ANY_BITANY_NUMTIMEANY_DATESTRING as possible data types for the input IN1
output named OUT1

NPE

name = TO_DINT
input named IN
no STRINGDATE and DATE_AND_TIME for the input INreturn value instead of OUT1

ATODT block

Migration

(tick)

Differences regarding interface

 

LC32

name = ATODT
input named IN1
ANY_BITANY_NUMTIMEANY_DATESTRING as possible data types for the input IN1
output named OUT1

NPE

name = TO_DTinput named IN
no user-defined data types and no STRING, for the input INreturn value instead of OUT1

ATODWORD block

Migration

(info)
See Possible different results for REAL inputs.
See Conversion of REAL/LREAL.
See Conversion of TIME/TOD in case of overflows
See Conversion of STRING.

Differences regarding interface

 

LC32

name = ATODWORD

input named IN1
ANY_BITANY_NUMTIMEANY_DATESTRING as possible data types for the input IN1
output named OUT1

No ENO-behavior.

NPE

name = TO_DWORD

input named IN
no DATE and DATE_AND_TIME for the input INreturn value instead of OUT1

ENO-behavior:

The block checks the value connected to the input. The output ENO of the block is set to value FALSE (or an equivalent) in the following cases:

STRING value contains an invalid character. (Moreover for this case, the block returns the value 0.)

STRING value exceeds the upper limit of the target data type. (Moreover for this case, the block returns the upper limit of the target data type.)

ATOINT block

Migration

(info)
See Possible different results for REAL inputs.
See Conversion of REAL/LREAL.
See Conversion of TIME/TOD in case of overflows.
See Conversion of STRING

Differences regarding interface

 

LC32

name = ATOINT

input named IN1
ANY_BITANY_NUMTIMEANY_DATESTRING as possible data types for the input IN1
output named OUT1

No ENO-behavior.

NPE

name = TO_INT

input named IN
no DATE and DATE_AND_TIME for the input INreturn value instead of OUT1

ENO-behavior:

The block checks the value connected to the input. The output ENO of the block is set to value FALSE (or an equivalent) in the following cases:

STRING value contains an invalid character. (Moreover for this case, the block returns the value 0.)

STRING value exceeds the upper limit of the target data type. (Moreover for this case, the block returns the upper limit of the target data type.)

STRING value is below the lower limit of the target data type. (Moreover for this case, the block returns the lower limit of the target data type.)

ATOLREAL block

Migration

(info)
See Conversion of TIME/TOD in case of overflows.

Differences regarding interface

 

LC32

name = ATOLREAL
input named IN1
ANY_BITANY_NUMTIMEANY_DATESTRING as possible data types for the input IN1
output named OUT1

NPE

name = TO_LREAL
input named IN
no DATE and DATE_AND_TIME for the input INreturn value instead of OUT1

ATOLWORD block

Migration

(info)
See Possible different results for REAL inputs.
See Conversion of REAL/LREAL.
See Conversion of TIME/TOD in case of overflows
See Conversion of STRING.

Differences regarding interface

 

LC32

name = ATOLWORD

input named IN1
ANY_BITANY_NUMTIMEANY_DATESTRING as possible data types for the input IN1
output named OUT1

No ENO-behavior.

NPE

name = TO_LWORD

input named IN
no DATE and DATE_AND_TIME for the input INreturn value instead of OUT1

ENO-behavior:

The block checks the value connected to the input. The output ENO of the block is set to value FALSE (or an equivalent) in the following cases:

STRING value contains an invalid character. (Moreover for this case, the block returns the value 0.)

STRING value exceeds the upper limit of the target data type. (Moreover for this case, the block returns the upper limit of the target data type.)

ATOREAL block

Migration

(info)
See Conversion of TIME/TOD in case of overflows.

Differences regarding interface

 

LC32

name = ATOREAL
input named IN1
ANY_BITANY_NUMTIMEANY_DATESTRING as possible data types for the input IN1
output named OUT1

NPE

name = TO_REAL
input named IN
no DATE and DATE_AND_TIME for the input INreturn value instead of OUT1

ATOSINT block

Migration

(info)
See Possible different results for REAL inputs.
See Conversion of REAL/LREAL.
See Conversion of TIME/TOD in case of overflows

Differences regarding interface

 

LC32

name = ATOSINT
input named IN1
ANY_BITANY_NUMTIMEANY_DATESTRING as possible data types for the input IN1
output named OUT1

NPE

name = TO_SINT
input named IN
no STRINGDATE and DATE_AND_TIME for the input INreturn value instead of OUT1

ATOSTRIN block

Migration

(info)
See below the behavior.

Differences regarding behavior

 

LC32

TIME values are converted in TOD format.

The fractions of a second are not converted. This applies to TIME values, DT values and TOD values.

REAL/LREAL values are converted with up to 8 significant digits.

, is used as decimal separator for REALLREAL values.

No ENO-behavior.

NPE

name = TO_STRING
input named INreturn value instead of OUT1

ATOTIME block

Migration

(info)
See Conversion of TIME/TOD in case of overflows.

Differences regarding interface

 

LC32

name = ATOTIME
input named IN1
ANY_BITANY_NUMTIMEANY_DATESTRING as possible data types for the input IN1
output named OUT1

NPE

name = TO_TIME
input named IN
no user-defined data types and no STRING, for the input INreturn value instead of OUT1

ATOTOD block

Migration

(info)
See Conversion of TIME/TOD in case of overflows.
See below the ENO-behavior. 

Differences regarding behavior

 

LC32

Different ENO-behavior: The output ENO of the block is set to value FALSE, in case of the data type DATE.

NPE

name = TO_TODinput named IN
no user-defined data types and no STRING, for the input INreturn value instead of OUT1

ATOUDINT block

Migration

(info)
See Possible different results for REAL inputs.
See Conversion of REAL/LREAL.
See Conversion of TIME/TOD in case of overflows
See below the behavior of TIME values.

Differences regarding behavior

 

LC32

Behavior for conversion of TIME values: The block uses the TIME-fraction for internal calculations.

NPE

name = TO_UDINTinput named IN
no user-defined data types and no STRING, for the input INreturn value instead of OUT1

ATOUINT block

Migration

(info)
See Possible different results for REAL inputs.
See Conversion of REAL/LREAL.
See Conversion of TIME/TOD in case of overflows

Differences regarding interface

 

LC32

name = ATOUINT
input named IN1
ANY_BITANY_NUMTIMEANY_DATESTRING as possible data types for the input IN1
output named OUT1

NPE

name = TO_UINT
input named IN
no STRINGDATE and DATE_AND_TIME for the input INreturn value instead of OUT1

ATOUSINT block

Migration

(info)
See Possible different results for REAL inputs.
See Conversion of REAL/LREAL.
See Conversion of TIME/TOD in case of overflows

Differences regarding interface

 

LC32

name = ATOUSINT
input named IN1
ANY_BITANY_NUMTIMEANY_DATESTRING as possible data types for the input IN1
output named OUT1

NPE

name = TO_USINT
input named IN
no STRINGDATE and DATE_AND_TIME for the input INreturn value instead of OUT1

ATOWORD block

Migration

(info)
See Possible different results for REAL inputs.
See Conversion of REAL/LREAL.
See Conversion of TIME/TOD in case of overflows.
See Conversion of STRING

Differences regarding interface

 

LC32

name = ATOWORD

input named IN1
ANY_BITANY_NUMTIMEANY_DATESTRING as possible data types for the input IN1
output named OUT1

No ENO-behavior.

NPE

name = TO_WORD

input named IN
no DATE and DATE_AND_TIME for the input INreturn value instead of OUT1

ENO-behavior:

The block checks the value connected to the input. The output ENO of the block is set to value FALSE (or an equivalent) in the following cases:

STRING value contains an invalid character. (Moreover for this case, the block returns the value 0.)

STRING value exceeds the upper limit of the target data type. (Moreover for this case, the block returns the upper limit of the target data type.)

BCDTOUDIN block

Migration

(tick)

Differences regarding interface

 

LC32

name = BCDTOUDIN
input named IN1
output named OUT1

NPE

name = BCD_TO_UDINTinput named IN
return value instead of OUT1

BCDTOUINT block

Migration

(tick)

Differences regarding interface

 

LC32

name = BCDTOUINT
input named IN1
output named OUT1

NPE

name = BCD_TO_UINTinput named IN
return value instead of OUT1

BCDTOUSIN block

Migration

(tick)

Differences regarding interface

 

LC32

name = BCDTOUSIN
input named IN1
output named OUT1

NPE

name = BCD_TO_USINTinput named IN
return value instead of OUT1

PACK block

Migration

(tick)

Differences regarding behavior

no differences for target systems saving data in little endian formatpossible differences for target systems saving data in big endian format (contact Neuron for details)

Differences regarding interface

 

NPE

a function, its result is a return value.

TRUNC_DI block

Migration

(info) See Possible different results for REAL inputs.

Differences regarding interface

 

LC32

name = TRUNC_DI
input named IN1
output named OUT1

NPE

name = TRUNC_DINTinput named IN
return value instead of OUT1

TRUNC_I block

Migration

(info) See Possible different results for REAL inputs.

Differences regarding interface

 

LC32

name = TRUNC_I
input named IN1
output named OUT1

NPE

name = TRUNC_INTinput named IN
return value instead of OUT1

TRUNC_LI block

Migration

(info) See Possible different results for REAL inputs.

Differences regarding interface

 

LC32

name = TRUNC_LI
input named IN1
output named OUT1

NPE

name = TRUNC_LINTinput named IN
return value instead of OUT1

TRUNC_SI block

Migration

(info) See Possible different results for REAL inputs.

Differences regarding interface

 

LC32

name = TRUNC_SI
input named IN1
output named OUT1

NPE

name = TRUNC_SINTinput named IN
return value instead of OUT1

TRUNC_UD block

Migration

(info) See Possible different results for REAL inputs.

Differences regarding interface

 

LC32

name = TRUNC_UD
input named IN1
output named OUT1

NPE

name = TRUNC_UDINTinput named IN
return value instead of OUT1

TRUNC_UI block

Migration

(info) See Possible different results for REAL inputs.

Differences regarding interface

 

LC32

name = TRUNC_UI
input named IN1
output named OUT1

NPE

name = TRUNC_UINTinput named IN
return value instead of OUT1

TRUNC_UL block

Migration

(info) See Possible different results for REAL inputs.

Differences regarding interface

 

LC32

name = TRUNC_UL
input named IN1
output named OUT1

NPE

name = TRUNC_ULINTinput named IN
return value instead of OUT1

TRUNC_US block

Migration

(info) See Possible different results for REAL inputs.

Differences regarding interface

 

LC32

name = TRUNC_US
input named IN1
output named OUT1

NPE

name = TRUNC_USINTinput named IN
return value instead of OUT1

UDINTOBCD block

Migration

(tick)

Differences regarding interface

 

LC32

name = UDINTOBCD
input named IN1specific data type UDINT as data type for the input IN1
output named OUT1

NPE

name = TO_BCD_WORDinput named IN
ANY_INT as possible data types for the input IN
return value instead of OUT1

UINTOBCD block

Migration

(tick)

Differences regarding interface

 

LC32

name = UINTOBCD
input named IN1
specific data type UINT as data type for the input IN1
output named OUT1

NPE

name = TO_BCD_WORDinput named IN
ANY_INT as possible data types for the input IN
return value instead of OUT1

UNPACK2 block

Migration

(tick)

Differences regarding behavior

no differences for target systems saving data in little endian formatpossible differences for target systems saving data in big endian format (contact Neuron for details)

Differences regarding interface

 

NPE

a function

UNPACK4 block

Migration

(tick)

Differences regarding behavior

no differences for target systems saving data in little endian formatpossible differences for target systems saving data in big endian format (contact Neuron for details)

Differences regarding interface

 

NPE

a function

UNPACK8 block

Migration

(tick)

Differences regarding behavior

no differences for target systems saving data in little endian formatpossible differences for target systems saving data in big endian format (contact Neuron for details)

Differences regarding interface

 

NPE

a function

USINTOBCD block

Migration

(tick)

Differences regarding interface

 

LC32

name = USINTOBCD
input named IN1
specific data type USINT as data type for the input IN1
output named OUT1

NPE

name = TO_BCD_WORDinput named IN
ANY_INT as possible data types for the input IN
return value instead of OUT1

FORCEMRK functions

FORCEMRK block

Migration

(tick) for default migration when using the migration wizard
When used in functions, the FORCEMRK function is kept. It is not possible to change this migration result (by changing a JSON file).

(info) for default migration when using the headless tool (without parameter -userFunctionsAsFunctionBlocks):
When used in functions, the FORCEMRK function is replaced with the MOVE function.

Differences regarding interface

 

LC32

ANY as possible data types for the input IN and the output OUT

NPE

no user-defined data types and no STRING for the input IN and the output OUT
additional inputs FVAL und FSW

NUMERIC functions

CHS block

Migration

(tick)

Differences regarding interface

 

LC32

input named IN1
output named OUT1

NPE

input named IN
return value instead of OUT1

SELECT functions

MUX_DI block

Migration

(tick)

Differences regarding interface

 

LC32

name = MUX_DIinputs for selecting the value named IN1IN2 etc.ANY as possible data types for the inputs IN1IN2, etc.
output named OUT1
ANY as possible data types for the output

NPE

name = MUX_DINTinputs for selecting the value named IN0IN1 etc.
no user-defined data types for the inputs IN1IN2, etc.
return value instead of OUT1
no user-defined data types for the return value

MUX_I block

Migration

(tick)

Differences regarding interface

 

LC32

name = MUX_Iinputs for selecting the value named IN1IN2 etc.ANY as possible data types for the inputs IN1IN2, etc.
output named OUT1
ANY as possible data types for the output

NPE

name = MUX_INTinputs for selecting the value named IN0IN1 etc.
no user-defined data types for the inputs IN1IN2, etc.
return value instead of OUT1
no user-defined data types for the return value

MUX_SI block

Migration

(tick)

Differences regarding interface

 

LC32

name = MUX_SIinputs for selecting the value named IN1IN2 etc.ANY as possible data types for the inputs IN1IN2, etc.
output named OUT1
ANY as possible data types for the output

NPE

name = MUX_SINTinputs for selecting the value named IN0IN1 etc.
no user-defined data types for the inputs IN1IN2, etc.
return value instead of OUT1
no user-defined data types for the return value

MUX_UD block

Migration

(tick)

Differences regarding interface

 

LC32

name = MUX_UDinputs for selecting the value named IN1IN2 etc.ANY as possible data types for the inputs IN1IN2, etc.
output named OUT1
ANY as possible data types for the output

NPE

name = MUX_UDINTinputs for selecting the value named IN0IN1 etc.
no user-defined data types for the inputs IN1IN2, etc.
return value instead of OUT1
no user-defined data types for the return value

MUX_UI block

Migration

(tick)

Differences regarding interface

 

LC32

name = MUX_UIinputs for selecting the value named IN1IN2 etc.ANY as possible data types for the inputs IN1IN2, etc.
output named OUT1
ANY as possible data types for the output

NPE

name = MUX_UDINTinputs for selecting the value named IN0IN1 etc.
no user-defined data types for the inputs IN1IN2, etc.
return value instead of OUT1
no user-defined data types for the return value

MUX_US block

Migration

(tick)

Differences regarding interface

 

LC32

name = MUX_USinputs for selecting the value named IN1IN2 etc.ANY as possible data types for the inputs IN1IN2, etc.
output named OUT1
ANY as possible data types for the output

NPE

name = MUX_USINTinputs for selecting the value named IN0IN1 etc.
no user-defined data types for the inputs IN1IN2, etc.
return value instead of OUT1
no user-defined data types for the return value

TIME functions

ADD_DT_T block

Migration

(error)

NPE

not supported

ADD_TOD1 block

Migration

(error)

NPE

not supported

ADD_T_T block

Migration

(tick)

Differences regarding interface

 

LC32

name = ADD_T_Toutput named OUT1

NPE

name = ADD_TIME
return value instead of OUT1

SUB_DT1 block

Migration

(error)

NPE

not supported

SUB_DT2 block

Migration

(tick)

Differences regarding interface

 

LC32

name = SUB_DT2output named OUT1

NPE

name = SUB_DT_DT
return value instead of OUT1

SUB_D_D block

Migration

(error)

NPE

not supported

SUB_TOD1 block

Migration

(error)

NPE

not supported

SUB_TOD2 block

Migration

(error)

NPE

not supported

SUB_T_T block

Migration

(tick)

Differences regarding interface

 

LC32

name = SUB_T_Toutput named OUT1

NPE

name = SUB_TIME
return value instead of OUT1

Other system function blocks, functions or data types

Blocks of library DIN 19227

Migration

(error)

NPE

not supported

Blocks of library ISA Standard S5.2

Migration

(error)

NPE

not supported

Blocks of library logiCAD-16

Migration

(error)

NPE

not supported

Blocks of library logi.library

Migration

(error)

NPE

not supported

Blocks of library VDI-VDE_3696

Migration

(error)

NPE

not supported

Blocks of library ISA Standard S5.2

Migration

(error)

NPE

not supported

Data types of library DataType

Migration

(error)

NPE

not supported