beautypg.com

NOVUS V1.5x A User Manual

Page 75

background image

NOVUS AUTOMATION

www.fieldlogger.net

75/103

The following operations are available and can be used:

Operation

Number of

Operands

Function

Constant

1

Assigns a value to the virtual channel. Example: VC = 123.67

Addition

2

It receives the addition from two channels. Example: VC = C1 + C2

Subtraction

2

Receives the subtraction from two channels. Example: VC = C1 - C2

Multiplication

2

Receives the multiplication from two channels. Example: VC = C1 * C2

Division

2

It receives the division from two channels. Example: VC = C1 / C2

Logical “And”

2

It receives “0” if at least one of the two channels is zero. It receives “1” if
both channels are different from zero.

Logical “OR”

2

It receives “0” if at least one of the two channels is not zero. It receives
“0” if both channels are equal to zero.

Logical “Exclusive OR”

2

It receives “1” if only one of the two channels is not zero. It receives “0”
if both channels are equal to zero or if both are different from zero.

FloatToFloat

2

Transforms two 16-bit values in a “float”. Typically used when reading
two Modbus registers (remote channels) from other device that, when
combined, represent a floating point value.

Int32ToFloat

2

Transforms an integer 32-bit signaled value in a floating point value.
The allowable range for the integer value (operand) is from -16777215
to 16777215. Values outside this range will suffer truncation.

Square Root

1

Receives the square root from the operand (source channel).

Exponentiation

2

Receives the result from the first high channel to the second channel.
Example: VC = C1

C2

. The value of the exponent is limited to the range

of -120 to 120, and must necessarily be of the integer type (the decimal
part shall be disregarded).

Count

1

1

Copies the current counting value of the selected digital channel
(operand) to this virtual channel. It uses only 24 bits, which means it
can count up to “16777215” (most significant byte of the counting’s
ignored).

Variation

2

1

At a configurable time rate (in seconds), shows the difference from the
current channel value related to the previous time value.In other words,
it has the value of the final time minus the value of the initial time. In
case this operation is being performed in a digital channel, the variation
of its countings will be computed.

Accumulation

2

1

Receives the accumulated value of the selected channel. At a
configurable time rate (in seconds), gets the current channel value and
sums to the accumulated amount.

ByteInv FloatToFloat

3

2

Transforms two 16-bit values in a “float”. It works just like the
FloatToFloat operation, but each register has its bytes swapped (byte

high ↔ byte low) right before the operation. Useful when the register
read from a slave has a byte order (endianness) which is opposite to
the one expected by FieldLogger.

ByteInv Int32ToFloat

3

2

Transforms an integer 32-bit signaled value in a floating point value. It
works just like the Int32ToFloat operation, but each register has its

bytes swapped (byte high ↔ byte low) right before the operation. Useful
when the register read from a slave has a byte order (endianness)
which is opposite to the one expected by FieldLogger.

(1) Note 1: Available from firmware version 1.10 on.

(2) Note 2: Available from firmware version 1.20 on.

(3) Note 3: Available from firmware version 1.40 on.

When an error occurs on any channel (for example, disconnected sensor in an analog channel), its configured error
value is set to it. If this channel is used as an operand of a virtual channel, its error value will be detected and the
outcome of the virtual channel will be its own configured error value, leading to a propagation of the error values. One
exception is the operation “Int32ToFloat”, that does not propagates the error of the source channels (operands), because
it is typically used in the conversion of two remote channels in a 32-bit value and, on this case, it would show an error
every time one of the remote channels would have the error value (all values are valid – there is no error value that can
be set outside of the valid range). The other exception is the “Accumulation” operation, that simply holds accumulation
instead of displaying the error value.