Modicon Function Blocks Manual
Modicon Function Blocks Manual
33002535 10/2014
Unity Pro
Control
Block Library
33002535.13
10/2014
www.schneider-electric.com
The information provided in this documentation contains general descriptions and/or technical
characteristics of the performance of the products contained herein. This documentation is not
intended as a substitute for and is not to be used for determining suitability or reliability of these
products for specific user applications. It is the duty of any such user or integrator to perform the
appropriate and complete risk analysis, evaluation and testing of the products with respect to the
relevant specific application or use thereof. Neither Schneider Electric nor any of its affiliates or
subsidiaries shall be responsible or liable for misuse of the information contained herein. If you
have any suggestions for improvements or amendments or have found errors in this publication,
please notify us.
No part of this document may be reproduced in any form or by any means, electronic or
mechanical, including photocopying, without express written permission of Schneider Electric.
All pertinent state, regional, and local safety regulations must be observed when installing and
using this product. For reasons of safety and to help ensure compliance with documented system
data, only the manufacturer should perform repairs to components.
When devices are used for applications with technical safety requirements, the relevant
instructions must be followed.
Failure to use Schneider Electric software or approved software with our hardware products may
result in injury, harm, or improper operating results.
Failure to observe this information can result in injury or equipment damage.
2014 Schneider Electric. All rights reserved.
33002535 10/2014
Table of Contents
Safety Information . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
About the Book. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Chapter 2
Part II Conditioning . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Chapter 4 DTIME: Delay. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Description. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Parametering . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Initialization and Operating modes . . . . . . . . . . . . . . . . . . . . . . . . . . .
Example for measuring a rate of flow . . . . . . . . . . . . . . . . . . . . . . . . .
Runtime error. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
33002535 10/2014
9
11
13
15
16
18
21
25
25
29
30
32
33
35
37
39
40
43
45
46
47
49
50
54
57
58
61
63
64
67
68
71
72
75
3
77
78
81
83
85
86
89
91
92
94
95
97
98
102
103
106
107
108
111
113
115
116
121
123
124
127
129
131
133
137
139
140
146
147
148
33002535 10/2014
Part IV Mathematics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Chapter 21 COMP_DB: Comparison . . . . . . . . . . . . . . . . . . . . . . . .
Description. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Detailed description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
33002535 10/2014
149
150
154
155
158
160
161
162
167
169
171
175
176
178
180
182
187
189
189
191
192
195
197
199
200
203
205
207
209
210
213
215
215
219
219
223
223
Part V Measurement . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Chapter 25 AVGMV: Moving average with fixed window size . . . .
Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Detailed description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
227
229
230
233
235
236
239
241
242
244
247
248
250
253
253
255
256
258
259
260
263
265
267
268
272
275
276
279
280
284
288
33002535 10/2014
Appendices
.........................................
Glossary
Index
33002535 10/2014
.........................................
.........................................
291
292
295
297
299
300
304
306
307
308
316
317
318
320
322
325
327
328
330
332
333
334
337
339
341
342
345
348
349
351
352
359
361
362
363
367
375
379
7
33002535 10/2014
Safety Information
Important Information
NOTICE
Read these instructions carefully, and look at the equipment to become familiar with the device
before trying to install, operate, or maintain it. The following special messages may appear
throughout this documentation or on the equipment to warn of potential hazards or to call attention
to information that clarifies or simplifies a procedure.
33002535 10/2014
PLEASE NOTE
Electrical equipment should be installed, operated, serviced, and maintained only by qualified
personnel. No responsibility is assumed by Schneider Electric for any consequences arising out of
the use of this material.
A qualified person is one who has skills and knowledge related to the construction and operation
of electrical equipment and its installation, and has received safety training to recognize and avoid
the hazards involved.
10
33002535 10/2014
33002535 10/2014
11
12
33002535 10/2014
Unity Pro
General Information
33002535 10/2014
Part I
General Information
General Information
Overview
This section contains general information about the Control library.
What Is in This Part?
This part contains the following chapters:
Chapter
33002535 10/2014
Chapter Name
Page
15
25
29
13
General Information
14
33002535 10/2014
Unity Pro
Block Types and their Applications
33002535 10/2014
Chapter 1
Block Types and their Applications
Page
Block Types
16
FFB Structure
18
EN and ENO
21
33002535 10/2014
15
Block Types
Block Types
Different block types are used in Unity Pro. The general term for the block types is FFB.
There are the following types of block:
Elementary Function (EF)
Elementary Function Block (EFB)
Derived Function Block (DFB)
Procedure
NOTE: Motion Function Blocks are not available on the Quantum platform.
Elementary Function
Elementary functions (EF) have no internal status and one output only. If the input values are the
same, the output value is the same for the executions of the function, for example the addition of
two values gives the same result at every execution.
An elementary function is represented in the graphical languages (FBD and LD) as a block frame
with inputs and an output. The inputs are represented on the left and the outputs on the right of the
block frame. The name of the function, that is the function type, is shown in the center of the block
frame.
The number of inputs can be increased with some elementary functions.
CAUTION
UNEXPECTED BEHAVIOR OF EQUIPMENT
For Unity Pro V4.0 and earlier versions, do not use links to connect function blocks outputs, when
your application relies on persistent output data of an EF.
Failure to follow these instructions can result in injury or equipment damage.
NOTE: With Unity Pro V4.0 and earlier versions the deactivation of an EF (EN=0) causes links
connected to its Input/Output to be reset. To transfer the state of the signal do not use a link. A
variable must be connected to the EFs output and must be used to connect the input of the
element. With Unity Pro V4.1 and later versions you can maintain the output links even if an EF is
deactivated by activating the option Maintain output links on disabled EF (EN=0) via the menu
Tools Program Languages Common.
16
33002535 10/2014
CAUTION
UNEXPECTED BEHAVIOR OF EQUIPMENT
For Unity Pro V4.0 and earlier versions, do not use links to connect function blocks outputs, when
your application relies on persistent output data of an EF.
Failure to follow these instructions can result in injury or equipment damage.
NOTE: With Unity Pro V4.0 and earlier versions the deactivation of an EF (EN=0) causes links
connected to its Input/Output to be reset. To transfer the state of the signal do not use a link. A
variable must be connected to the EFs output and must be used to connect the input of the
element. With Unity Pro V4.1 and later versions you can maintain the output links even if an EF is
deactivated by activating the option Maintain output links on disabled EF (EN=0) via the menu
Tools Program Languages Common.
33002535 10/2014
17
FFB Structure
Structure
Each FFB is made up of an operation (name of the FFB), the operands are required for the
operation (formal and actual parameters) and an instance name for elementary/derived function
blocks.
Call of a function block in the FBD programming language:
CAUTION
UNEXPECTED APPLICATION BEHAVIOR
Do not call several times the same block instance within a PLC cycle
Failure to follow these instructions can result in injury or equipment damage.
18
33002535 10/2014
Operation
The operation determines which function is to be executed with the FFB, e.g. shift register,
conversion operations.
Operand
The operand specifies what the operation is to be executed with. With FFBs, this consists of formal
and actual parameters.
Formal/actual parameters
Inputs and outputs are required to transfer values to or from an FFB. These are called formal
parameters.
Objects are linked to formal parameters; these objects contain the current process states. They are
called actual parameters.
At program runtime, the values from the process are transferred to the FFB via the actual
parameters and then output again after processing.
The data type of the actual parameters must match the data type of the input/output (formal
parameters). The only exceptions are generic inputs/outputs whose data type is determined by the
actual parameter. If the actual parameters consist of literals, a suitable data type is selected for the
function block.
33002535 10/2014
19
20
33002535 10/2014
EN and ENO
Description
An EN input and an ENO output can be configured for the FFBs.
If the value of EN is equal to "0" when the FFB is invoked, the algorithms defined by the FFB are
not executed and ENO is set to "0".
If the value of EN is equal to "1" when the FFB is invoked, the algorithms defined by the FFB will
be executed. After the algorithms have been executed successfully, the value of ENO is set to "1".
If certain error conditions are detected when executing these algorithms, ENO is set to "0".
If the EN pin is not assigned a value, when the FFB is invoked, the algorithm defined by the FFB is
executed (same as if EN equals to "1"), Please refer to Maintain output links on disabled EF
(see Unity Pro, Operating Modes).
If the algorithms are executed successfully, then value of ENO is set to "1", else ENO is set to "0".
If ENO is set to "0" (caused by EN=0 or a detected error condition during execution or unsuccessful
algorithm execution):
Function blocks
EN/ENO handling with function blocks that (only) have one link as an output parameter:
33002535 10/2014
21
Functions/Procedures
CAUTION
UNEXPECTED BEHAVIOR OF EQUIPMENT
For Unity Pro V4.0 and earlier versions, do not use links to connect function blocks outputs,
when your application relies on persistent output data of an EF.
Failure to follow these instructions can result in injury or equipment damage.
NOTE: With Unity Pro V4.0 and earlier versions the deactivation of an EF (EN=0) causes links
connected to its Input/Output to be reset. To transfer the state of the signal do not use a link. A
variable must be connected to the EFs output and must be used to connect the input of the
element. With Unity Pro V4.1 and later versions you can maintain the output links even if an EF
is deactivated by activating the option Maintain output links on disabled EF (EN=0) via the
menu Tools Program Languages Common.
As defined in IEC61131-3, the outputs from deactivated functions (EN-input set to "0") is
undefined. (The same applies to procedures.)
Here is an explanation of the output status in this case:
EN/ENO handling with functions/procedures that (only) have one link as an output
parameter:
22
33002535 10/2014
CAUTION
UNEXPECTED APPLICATION EQUIPMENT
Do not disable function blocks with internal time function during their operation.
Failure to follow these instructions can result in injury or equipment damage.
Note for IL and ST
The use of EN and ENO is only possible in the text languages for a formal FFB call, e.g.
MY_BLOCK (EN:=enable, IN1:=var1, IN2:=var2,
ENO=>error, OUT1=>result1, OUT2=>result2);
Assigning the variables to ENO must be done with the operator =>.
With an informal call, EN and ENO cannot be used.
33002535 10/2014
23
24
33002535 10/2014
Unity Pro
Availability of the blocks
33002535 10/2014
Chapter 2
Block Availability on the Various Hardware Platforms
Block
type
M340
M580
Quantum
Momentum
Premium
DTIME
EFB
INTEGRATOR
EFB
LAG_FILTER
EFB
LDLG
EFB
LEAD
EFB
MFLOW
EFB
QDTIME
EFB
SCALING
EFB
TOTALIZER
EFB
VEL_LIM
EFB
Legend:
+
Yes
No
33002535 10/2014
25
Controller
Availability of the blocks:
Block name
Block
type
M340
M580
Quantum
Momentum
Premium
AUTOTUNE
EFB
IMC
EFB
PI_B
EFB
PIDFF
EFB
SAMPLETM
EFB
STEP2
EFB
STEP3
EFB
Legend:
+
Yes
No
Mathematics
Availability of the blocks:
Block name
Block
type
M340
M580
Quantum
Momentum
Premium
COMP_DB
EFB
K_SQRT
EF
MULDIV_W
EF
SUM_W
EF
Legend:
26
Yes
No
33002535 10/2014
Measurement
Availability of the blocks:
Block name
Block type
M340
M580
Quantum
Momentum
Premium
AVGMV
EFB
AVGMV_K
EFB
DEAD_ZONE, DEAD_ZONE_REAL
EF
LOOKUP_TABLE1
Procedure
SAH
EFB
HYST_***
EFB
INDLIM_***
EFB
Legend:
+
Yes
No
Output Processing
Availability of the blocks:
Block name
Block type
M340
M580
Quantum
Momentum
Premium
MS
EFB
MS_DB
EFB
PWM1
EFB
SERVO
EFB
SPLRG
EFB
Legend:
+
Yes
No
33002535 10/2014
27
Block type
M340
M580
Quantum
Momentum
Premium
RAMP
EFB
RATIO
EFB
SP_SEL
EFB
Legend:
+
Yes
No
28
33002535 10/2014
Unity Pro
Introduction
33002535 10/2014
Chapter 3
General information about the Control block library
Page
Operating mode
30
Scanning
32
Error management
33
Convention
35
33002535 10/2014
29
Introduction
Operating mode
Operating mode
Several function blocks have integrated operating mode control available.
A choice can be made between the following operating modes:
Tracking
Manual/Automatic
30
33002535 10/2014
Introduction
Manual/Automatic
If a function block is in automatic mode, its algorithm calculates the value to be assigned to the
output. Manual mode can be used to block the adjustment of the main output (OUT) of a function
block, to permit control via a user dialog, for example. The MAN_AUTO input permits control of this
operating mode (0 : Manual, 1: Automatic).
Manual/Automatic mode
The function block reads this output and therefore permits a bumpless changeover between the
Manual <-> Automatic modes. A limit can be assigned to the function blocks output if it is in manual
or automatic mode: this should be decided individually for each function block.
Order of priorities of the operating mode
If a function block has both operating mode available, the tracking operating mode has priority over
the manual/automatic mode:
The connections between the function and the operating mode of the function block are not
displayed to ensure a better overview. The same applies to the effectively assigned setpoint.
33002535 10/2014
31
Introduction
Scanning
Scanning
The control algorithms are based on scan values where the time interval between two consecutive
scans should be taken into account. The function blocks calculate the value of this interval
automatically, which means they can be placed anywhere in the section without having to take the
time management into consideration.
Set time intervals provide the following advantages:
Run time optimization of the PLC program by dividing the control operations into several cycles,
improved control quality, where scanning the servo-loop too frequently is prevented
Minimizing the demands on the actuators
For example, the SAMPLETM function block can be used, which should be attached to the input EN
of the function block to be scanned.
If the scan interval of the servo-loop exceeds 1 second, the function block MS: Manual control of
an output, page 267 should be switched to the function blocks PIDFF: Complete PID controller,
page 161 and PI_B: Simple PI controller, page 149 so that the servo-loops can be controlled
manually independently of the scan interval.
32
33002535 10/2014
Introduction
Error management
Principle
This section describes the error recording and notification routines of
function blocks in the Conditioning, Controller, Output Processing and setpoint
processing families.
Most function blocks in these families are provided with a STATUS output word.
Each bit of the STATUS parameter can be used for notifying an error, an alarm or some information.
The meaning of the first 8 bits of the STATUS word is the same for all function blocks. The meaning
of the subsequent bits (bits 8 to 15) is different for each function block.
Status word
The following table shows the meaning of the bits common to all the function blocks in the first byte
of the STATUS word. Further information can be found in the description of each function block.
Bit
Meaning
Type
Bit 0 = 1
Error
Bit 1 = 1
Error
Bit 2 = 1
Error
Bit 3 = 1
Error
Bit 4 = 1
Bit 5 = 1 (Note 2) The main output of the function block has reached the lower Information
threshold
Bit 6 = 1 (Note 2) The main output of the function block has reached the
upper threshold
Bit 7 = 1
33002535 10/2014
Information
The lower and upper threshold of the input parameter zone Error
are identical
33
Introduction
34
33002535 10/2014
Introduction
Convention
Specifying the convention
If a Boolean parameter is used to differentiate between 2 operating mode or 2 states of a function
block, its name often has the following form: mode1_mode2 (example: MANU_AUTO, SP_RSP). It is
usually specified that the mode1 corresponding value is 0 and the mode2 corresponding value is
1. If for example the MANU_AUTO parameter of a function block is 0, the function block is in manual
mode. It is in automatic mode when MANU_AUTO is equal to 1.
33002535 10/2014
35
Introduction
36
33002535 10/2014
Unity Pro
Conditioning
33002535 10/2014
Part II
Conditioning
Conditioning
Overview
This section describes the elementary functions and elementary function blocks of the
Conditioning family.
What Is in This Part?
This part contains the following chapters:
Chapter
Chapter Name
Page
DTIME: Delay
39
49
57
63
71
77
10
85
11
SCALING: Scaling
91
12
TOTALIZER: Integrator
97
13
33002535 10/2014
107
37
Conditioning
38
33002535 10/2014
Unity Pro
DTIME
33002535 10/2014
Chapter 4
DTIME: Delay
DTIME: Delay
Introduction
This chapter describes the DTIME block.
What Is in This Chapter?
This chapter contains the following topics:
Topic
Page
Description
40
Parametering
43
45
46
Runtime error
47
33002535 10/2014
39
DTIME
Description
Function description
The DTIME function block generates a delay when transfering the numerical input value [IN]. The
numerical output variable OUT generates the same behavior as the numerical input value when the
delay T_DELAY, which can vary, is included.
Behavior of the function block DTIME:
Representation in FBD
Representation:
40
33002535 10/2014
DTIME
Representation in LD
Representation:
Representation in IL
Representation:
CAL DTIME_Instance (IN:=ValueToDelay,
T_DELAY:=RequiredDelay, TR_I:=InitializationInput,
TR_S:=InitializationSequence, OUT=>DelayedOutput,
BUFFER=>DelayValueBuffer, STATUS=>StatusWord)
Representation in ST
Representation:
DTIME_Instance (IN:=ValueToDelay,
T_DELAY:=RequiredDelay, TR_I:=InitializationInput,
TR_S:=InitializationSequence, OUT=>DelayedOutput,
BUFFER=>DelayValueBuffer, STATUS=>StatusWord) ;
33002535 10/2014
41
DTIME
Parameter description
Input parameter description:
Parameter
Data type
Meaning
IN
REAL
T_DELAY
TIME
Desired delay
TR_I
REAL
Initialization input
TR_S
BOOL
Initialization command
Data type
Meaning
OUT
REAL
Delayed output
BUFFER
ANY*)
STATUS
WORD
Status word
42
33002535 10/2014
DTIME
Parametering
Saving the input values (BUFFER output)
The BUFFER output must be always linked to a variable. The values to be delayed are contained
in these variables. Each time the function block is executed a new value is saved for the IN input.
The size of the variable linked to the BUFFER output determines the number of values, which can
be saved and therefore also the allowable maximum delay value:
The following applies here
Formula size
Meaning
T_PERIOD
NOTE: As soon as a variable has been connected to the BUFFER output, it can only be replaced
by a variable of the same type. To replace it with a greater variable, which would enable a higher
delay value to be reached for example, the function block must be deleted and a new one put in
place.
Data type of the buffer output
The BUFFER output is of the ANY type. This means any variable type can be assigned to it. It is
better to define an ARRAY (table) with REAL elements. This ARRAY can contain up to 100 floating
point values. With this variable type it is possible to attain a delay, which corresponds to 100 times
the sampling interval of the DTIME function block.
NOTE: DTIME does only work, when the size of the actual parameter assigned to the BUFFER
output is at least 4 bytes.
NOTE: Valid data types are, for example, REAL, ARRAY[1..4] OF BYTE.
NOTE: Invalid data types are, for example, BYTE, INT, ARRAY[1..3] OF BYTE.
NOTE: If an invalid data type is connected, DTIME will not be processed and a runtime error
(STATUS=2) is generated.
Procedure for large delay times
To attain delay values, which are equivalent to over 100 times the sampling interval of the function
block, a larger variable must be assigned to the BUFFER parameter:
Step
Action
Define a new derived data type, e.g. a table with 200 floating point values
Declare a variable of this type and link it to the BUFFER parameter of the DTIME function block.
In this case, the maximum delay corresponds to 200 times the sampling interval of the function block
33002535 10/2014
43
DTIME
If the T_DELAY value is too great in relation to the BUFFER size, it is no longer possible to save
enough input values to attain the delay desired. In this case the delay remains at the longest time
possible (bit 8 of the status word then goes to 1 over).
To prevent this problem it is advisable to define the dimensions of the variable assigned to the
BUFFER parameter so that a possible increase in the T_DELAY can be provided for.
When T_DELAY = 0, the OUT output always corresponds to the IN input.
44
33002535 10/2014
DTIME
33002535 10/2014
45
DTIME
The product amount P2 is regulated, but the weight in the container is P1+P2. P1 should be
removed. The amount P2 corresponds to the amount measured minus the amount P1 dosed 20 s
beforehand.
Measuring the servo loop at P2 corresponds to the following illustration:
46
Element of SUM_PARA
Value
SUM_PARA.K1
SUM_PARA.K2
1
33002535 10/2014
DTIME
Runtime error
Status word
The following messages are displayed in the Status word:
Bit
Value in
Dec.
Value in
Hex.
ENO Status
Description
Bit 0 = 1
0x0001
False
Bit 1 = 1
0x0002
False
Bit 2 = 1
0x0004
False
Bit 3 = 1
0x0008
False
Bit 8 = 1
256
0x0100
True
For a list of other possible floating point error codes, see Common Floating Point Errors, page 359.
Error message
This error appears if a non floating point value is entered at an input or if there is a problem with a
floating point calculation. In this case the outputs OUT and BUFFER remain unchanged.
NOTE: For a list of all block error codes and values, see Conditioning, page 352.
Alarm
There will be an alarm if a T_DELAY exceeds the maximum possible value. In this case the function
block uses the maximum value. If an outgoing value is required, which is above the default value,
only the BUFFER-output needs to be linked to a larger variable.
33002535 10/2014
47
DTIME
48
33002535 10/2014
Unity Pro
INTEGRATOR
33002535 10/2014
Chapter 5
INTEGRATOR: Integrator with limit
Page
Description
50
Detailed description
54
33002535 10/2014
49
INTEGRATOR
Description
Function description
The function block replicates a limited integrator.
The function block has the following properties:
Tracking and automatic operating modes
Manipulated variable limiting in automatic mode
NOTE: This function block performs an internal initialization in the first program cycle after a warm
start or cold start (e.g. application download or power cycle) of the PLC program.
NOTE: Due to this, you have to make sure that the function block is invoked in the first program
cycle. In case of inkoving the function block in a later program cycle, the internal initialization will
not be performed and the ouputs may deliver wrong values.
WARNING
UNEXPECTED OUTPUT BEHAVIOUR
Make sure that the function block is always invoked in the first program cycle.
Failure to follow these instructions can result in death, serious injury, or equipment
damage.
EN and ENO can be configured as additional parameters.
Formula
The transfer function is:
50
33002535 10/2014
INTEGRATOR
Description
Current value of input IN
Value of input IN from the previous cycle
Value of the output OUT from the previous cycle
dt
is the time differential between the current cycle and the previous cycle
Representation in FBD
Representation:
33002535 10/2014
51
INTEGRATOR
Representation in LD
Representation:
Representation in IL
Representation:
CAL INTEGRATOR_Instance (IN:=InputVariable,
GAIN:=IntegrationGain, OUT_MIN:=LowerOutputLimit,
OUT_MAX:=UpperOutputLimit, TR_I:=InitializationInput,
TR_S:=InitializationType, OUT=>Output,
QMIN=>ReachedLowerLimit, QMAX=>ReachedUpperLimit)
Representation in ST
Representation:
INTEGRATOR_Instance (IN:=InputVariable,
GAIN:=IntegrationGain, OUT_MIN:=LowerOutputLimit,
OUT_MAX:=UpperOutputLimit, TR_I:=InitializationInput,
TR_S:=InitializationType, OUT=>Output,
QMIN=>ReachedLowerLimit, QMAX=>ReachedUpperLimit) ;
52
33002535 10/2014
INTEGRATOR
Parameter description
Description of input parameters:
Parameter
Data type
Description
IN
REAL
Input variable
GAIN
REAL
Integral gain
OUT_MIN
REAL
Lower limit
OUT_MAX
REAL
Upper limit
TR_I
REAL
Initialization input
TR_S
BOOL
Initialization type
"1" = Operating mode Tracking
"0" = Automatic operating mode
Data type
Description
OUT
REAL
Output
QMIN
BOOL
QMAX
BOOL
Error message
With OUT_MAX < OUT_MIN an error message appears.
NOTE: For a list of all block error codes and values, see Conditioning, page 352.
33002535 10/2014
53
INTEGRATOR
Detailed description
Parametering
Parameter assignment for the function block is accomplished by specifying the integration GAIN
and the limiting values OUT_MAX and OUT_MIN for the output OUT.
The limits OUT_MAX and OUT_MIN limit the upper output as well as the lower output. Hence
OUT_MIN OUT OUT_MAX.
The outputs QMAX and QMIN show that the output has reached a limit or the output signal has been
capped.
QMAX = 1 if OUT OUT_MAX
QMIN = 1 if OUT OUT_MIN
Operating mode
There are two operating mode selectable through the TR_S parameter input.
Operating
mode
TR_S
Meaning
Automatic
Tracking
The tracking value TR_I is transferred directly to the output OUT. The control output is,
however, limited by OUT_MAX and OUT_MIN.
Example
The input signal is integrated via the time. In the event of a transition at the input IN, the output will
rise (if the IN values are positive) or fall off (if the IN values are negative) along a ramp function.
OUT will always be between OUTMAX and OUT_MIN; if OUT is equal to OUT_MAX or OUT_MIN, it will
be so indicated in QMAX or QMIN.
54
33002535 10/2014
INTEGRATOR
33002535 10/2014
55
INTEGRATOR
56
33002535 10/2014
Unity Pro
LAG_FILTER
33002535 10/2014
Chapter 6
LAG_FILTER: Time lag device: 1st order
Page
Description
58
Detailed description
61
33002535 10/2014
57
LAG_FILTER
Description
Function description
The function block represents a delay element 1st order.
The function block contains the following operating mode:
Tracking
Automatic
NOTE: This function block performs an internal initialization in the first program cycle after a warm
start or cold start (e.g. application download or power cycle) of the PLC program.
NOTE: Due to this, you have to make sure that the function block is invoked in the first program
cycle. In case of inkoving the function block in a later program cycle, the internal initialization will
not be performed and the ouput may deliver a wrong value.
WARNING
UNEXPECTED OUTPUT BEHAVIOUR
Make sure that the function block is always invoked in the first program cycle.
Failure to follow these instructions can result in death, serious injury, or equipment
damage.
EN and ENO can be configured as additional parameters.
Formula
The transfer function is:
Description
Value of input IN from the previous cycle
Value of the output OUT from the previous cycle
dt
58
is the time differential between the current cycle and the previous cycle
33002535 10/2014
LAG_FILTER
Representation in FBD
Representation:
Representation in LD
Representation:
Representation in IL
Representation:
CAL LAG_FILTER_Instance (IN:=InputValue, GAIN:=GainFactor,
LAG:=LagTimeConstant, TR_I:=InitializationInput,
TR_S:=InitializationType, OUT=>Output)
33002535 10/2014
59
LAG_FILTER
Representation in ST
Representation:
LAG_FILTER_Instance (IN:=InputValue, GAIN:=GainFactor,
LAG:=LagTimeConstant, TR_I:=InitializationInput,
TR_S:=InitializationType, OUT=>Output) ;
Parameter description
Description of input parameters:
Parameter
Data type
Description
IN
REAL
Input value
GAIN
REAL
Gain factor
LAG
TIME
TR_I
REAL
Initialization input
TR_S
BOOL
Initialization type
"1" = Operating mode Tracking
"0" = Automatic operating mode
Data type
Description
OUT
REAL
Output
Runtime error
For a list of all block error codes and values, see Conditioning, page 352.
60
33002535 10/2014
LAG_FILTER
Detailed description
Parametering
The parametering of the Function block is achieved through specification of the boost factor GAIN
as well as the parametering of the delayed time constants LAG.
The unit step at the input IN (jump at the input IN from 0 to 1.0) is followed by the output OUT with
a lag time. Along an e-function
Operating mode
Two operating modes can be selected through the TR_S parameter input.
Operating mode
TR_S
Meaning
Automatic
Tracking
Example
The diagram shows an example of the jump response of the LAG_FILTER function block. The
input IN jumps to a new value and the output OUT follows the input IN along an e-function.
Jump response of the function block LAG_FILTER when GAIN = 1
33002535 10/2014
61
LAG_FILTER
62
33002535 10/2014
Unity Pro
LDLG
33002535 10/2014
Chapter 7
LDLG: PD device with smoothing
Page
Description
64
Detailed description
67
68
33002535 10/2014
63
LDLG
Description
Function description
The function block serves as a PD outline with subsequent smoothing.
The function block has the following properties:
Definable delay of the D-component
Tracking and automatic modes
NOTE: This function block performs an internal initialization in the first program cycle after a warm
start or cold start (e.g. application download or power cycle) of the PLC program.
NOTE: Due to this, you have to make sure that the function block is invoked in the first program
cycle. In case of inkoving the function block in a later program cycle, the internal initialization will
not be performed and the ouput may deliver a wrong value.
WARNING
UNEXPECTED OUTPUT BEHAVIOUR
Make sure that the function block is always invoked in the first program cycle.
Failure to follow these instructions can result in death, serious injury, or equipment
damage.
EN and ENO can be configured as additional parameters.
Formula
The transfer function is:
Description
Value of input IN from the previous cycle
Value of the output OUT from the previous cycle
dt
64
is the time differential between the current cycle and the previous cycle
33002535 10/2014
LDLG
Representation in FBD
Representation:
Representation in LD
Representation:
Representation in IL
Representation:
CAL LDLG_Instance (IN:=Input, GAIN:=GainFactor,
LEAD:=DifferentialTimeConstant, LAG:=LagTimeConstant,
TR_I:=InitializationInput, TR_S:=InitializationType,
OUT=>Output)
33002535 10/2014
65
LDLG
Representation in ST
Representation:
LDLG_Instance (IN:=Input, GAIN:=GainFactor,
LEAD:=DifferentialTimeConstant, LAG:=LagTimeConstant,
TR_I:=InitializationInput, TR_S:=InitializationType,
OUT=>Output) ;
Parameter description
Description of input parameters:
Parameter
Data type
Description
IN
REAL
Input
GAIN
REAL
Gain factor
LEAD
TIME
LAG
TIME
TR_I
REAL
Initialization input
TR_S
BOOL
Initialization type
"1" = Operating mode Tracking
"0" = Automatic operating mode
Data type
Description
OUT
REAL
Output
Runtime error
For a list of all block error codes and values, see Conditioning, page 352.
66
33002535 10/2014
LDLG
Detailed description
Parametering
The parametering of the Function block appears through specification of the boost factors GAIN as
well as the parametering of the Derivative time constants LEAD and the delay time constants LAG.
For very small sample times and the unit jump to input IN (jump at line-in IN from 0 to 1.0) output
OUT will jump to the value
(theoretical value - actual slightly smaller, due to
the not infinitely small sample times), using the time constant LAG to approximate the value
closer.
Operating mode
Two operating modes can be selected through the TR_S parameter input.
Operating mode
TR_S
Meaning
Automatic
Tracking
33002535 10/2014
67
LDLG
LEAD = LAG
The function block behaves like a pure multiplication block with the multiplier GAIN.
Function block LDLG with LEAD = LAG
68
33002535 10/2014
LDLG
LEAD/LAG = 2, GAIN = 1
In this case the output OUT will jump to double the accumulated value in order to make the
transition to the final value (GAIN * IN) with the delay time constant LAG.
Function block LDLG with LEAD/LAG = 2 and GAIN = 1
33002535 10/2014
69
LDLG
70
33002535 10/2014
Unity Pro
LEAD
33002535 10/2014
Chapter 8
LEAD: Differentiator with smoothing
Page
Description
72
Detailed description
75
33002535 10/2014
71
LEAD
Description
Function description
The function block represents a differentiator element with an output OUT delayed by the lag time
constant LAG.
The function block contains the following operating mode:
Tracking
Automatic
NOTE: This function block performs an internal initialization in the first program cycle after a warm
start or cold start (e.g. application download or power cycle) of the PLC program.
NOTE: Due to this, you have to make sure that the function block is invoked in the first program
cycle. In case of inkoving the function block in a later program cycle, the internal initialization will
not be performed and the ouput may deliver a wrong value.
WARNING
UNEXPECTED OUTPUT BEHAVIOUR
Make sure that the function block is always invoked in the first program cycle.
Failure to follow these instructions can result in death, serious injury, or equipment
damage.
EN and ENO can be configured as additional parameters.
Formula
The transfer function for OUT is:
Description
Value of the input IN from the current cycle
Value of input IN from the previous cycle
Value of the output OUT from the previous cycle
dt
72
is the time differential between the current cycle and the previous cycle
33002535 10/2014
LEAD
Representation in FBD
Representation:
Representation in LD
Representation:
Representation in IL
Representation:
CAL LEAD_Instance (IN:=InputVariable,
GAIN:=DifferentiationGain, LAG:=TimeDelayConstant,
TR_I:=InitializationInput, TR_S:=InitializationType,
OUT=>OutputDerivativeUnit)
33002535 10/2014
73
LEAD
Representation in ST
Representation:
LEAD_Instance (IN:=InputVariable,
GAIN:=DifferentiationGain, LAG:=TimeDelayConstant,
TR_I:=InitializationInput, TR_S:=InitializationType,
OUT=>OutputDerivativeUnit) ;
Parameter description
Description of input parameters:
Parameter
Data type
Description
IN
REAL
Input value
GAIN
REAL
LAG
TIME
TR_I
REAL
Initialization input
TR_S
BOOL
Initialization type
"1" = Operating mode Tracking
"0" = Automatic operating mode
Data type
Description
OUT
REAL
Runtime error
For a list of all block error codes and values, see Conditioning, page 352.
74
33002535 10/2014
LEAD
Detailed description
Parametering
Parameter assignment for this function block is accomplished by selecting the GAIN of the
derivative unit and the lag time constant LAG by which the output OUT will be delayed.
For very small sample times and the unit jump to the IN input (jump in at IN input from 0 to 1.0),
the OUT output jumps to the GAIN value (theoretical value - actual slightly smaller due to the not
infinitely small sample times), in order to return the LAG time constant to 0.
Operating mode
Two operating modes can be selected through the TR_S parameter input.
Operating mode
TR_S
Meaning
Automatic
Tracking
Example
Representation of the LEAD function block jump response with GAIN = 1 and LAG = 10s:
33002535 10/2014
75
LEAD
76
33002535 10/2014
Unity Pro
MFLOW
33002535 10/2014
Chapter 9
MFLOW: Mass flow block
Page
Description
78
Detailed description
81
Runtime error
83
33002535 10/2014
77
MFLOW
Description
Function description
The function block MFLOW calculates the mass flow of a gas in a throttle device resulting from the
differential pressure and the temperature and pressure conditions of the gas.
The measure of the differential pressure can be replaced by the speed of the medium or with
another measure with pressure and temperature compensation.
EN and ENO can be configured as additional parameters.
Formula
The full equation (i.e. with en_sqrt = 1, en_pres = 1 and en_temp =1) says as follows:
Meaning
SV
TA
Representation in FBD
Representation:
78
33002535 10/2014
MFLOW
Representation in LD
Representation:
Representation in IL
Representation:
CAL MFLOW_Instance (IN:=DifferentialPressure,
PRES:=GasPressure, TEMP:=GasTemperature,
PARA:=Parameters, OUT=>ValueOfMassFlowRate,
STATUS=>StatusWord)
Representation in ST
Representation:
MFLOW_Instance (IN:=DifferentialPressure,
PRES:=GasPressure, TEMP:=GasTemperature,
PARA:=Parameters, OUT=>ValueOfMassFlowRate,
STATUS=>StatusWord) ;
33002535 10/2014
79
MFLOW
Data type
IN
REAL
Input
PRES
REAL
TEMP
REAL
PARA
Para_MFLOW
Parameter
Data type
OUT
REAL
STATUS
WORD
Status word
80
Element
Data type
Meaning
REAL
en_pres
BOOL
pr_pa
BOOL
pu
REAL
en_temp
BOOL
tc_tf
BOOL
en_sqrt
BOOL
33002535 10/2014
MFLOW
Detailed description
Calculation of the constant k
The constant k can be calculated because of a work point reference, with which the mass flow
(MF_REF), the differential pressure (IN_REF), the absolute pressure (P_REF) and the absolute
temperature (T_REF) are recognized.
When the input IN is a Differential pressure the equation says as follows:
When the input IN is not a Differential pressure the equation says as follows:
Degrees Celsius
Calculation of the absolute temperature TA:
33002535 10/2014
Degrees Fahrenheit
Calculation of the absolute temperature TA:
81
MFLOW
Pressure unit
The pressure PRES can be printed out in any unit, as absolute or relative pressure, according to
the value of the parameter pr_pa.
82
pr_pa
Relative pressure
Parameter pu must conform to the unit 1 atmosphere.
Calculation of absolute pressure: PA = PRES + pu
33002535 10/2014
MFLOW
Runtime error
Status word
The bits of the status words have the following meaning:
Bit
Value
in Dec.
Value in
Hex.
ENO Status
Description
Bit 0 = 1
0x0001
False
Bit 1 = 1
0x0002
False
Bit 2 = 1
0x0004
False
Bit 3 = 1
0x0008
False
Bit 4 = 1
16
0x0010
True
For the list of other possible floating point error codes, see Common Floating Point Errors,
page 359.
Error message
In the following cases an error will be reported:
An invalid value will be recorded at one of the floating point inputs
Division by zero with calculation in floating point values
Capacity overflow during floating point value calculation
33002535 10/2014
83
MFLOW
84
33002535 10/2014
Unity Pro
QDTIME
33002535 10/2014
Chapter 10
QDTIME: Deadtime device
Page
Description
86
Detailed description
89
33002535 10/2014
85
QDTIME
Description
Function description
With this function block the input signal is delayed by a deadtime.
The function block delays the signal IN by the deadtime T_DELAY, before it is transmitted to OUT
again.
The function block has a delay puffer for 128 elements (IN values), i.e. 128 IN values can be saved
during the T_DELAY time. The buffer is used in such a way that it corresponds with the operating
mode.
Whether the system is started cold or warm, the value of OUT remains unchanged. The internal
values are set to the value of IN.
After a change of deadtime T_DELAY or a cold or warm system start, the output READY goes to
"0". This means: that the buffer is empty and not ready.
The function block has both a tracking and automatic mode.
NOTE: This function block performs an internal initialization in the first program cycle after a warm
start or cold start (e.g. application download or power cycle) of the PLC program.
NOTE: Due to this, you have to make sure that the function block is invoked in the first program
cycle. In case of inkoving the function block in a later program cycle, the internal initialization will
not be performed and the ouputs may deliver wrong values.
WARNING
UNEXPECTED OUTPUT BEHAVIOUR
Make sure that the function block is always invoked in the first program cycle.
Failure to follow these instructions can result in death, serious injury, or equipment
damage.
EN and ENO can be configured as additional parameters.
Representation in FBD
Representation:
86
33002535 10/2014
QDTIME
Representation in LD
Representation:
Representation in IL
Representation:
CAL QDTIME_Instance (IN:=InputValue, T_DELAY:=DeadTime,
TR_I:=InitializationInput, TR_S:=InitializationType,
OUT=>Output, READY=>InternalBufferFlag)
Representation in ST
Representation:
QDTIME_Instance (IN:=InputValue, T_DELAY:=DeadTime,
TR_I:=InitializationInput, TR_S:=InitializationType,
OUT=>Output, READY=>InternalBufferFlag) ;
33002535 10/2014
87
QDTIME
Data type
Description
IN
REAL
Input value
T_DELAY
TIME
Deadtime
TR_I
REAL
Initialization input
TR_S
BOOL
Initialization type:
"1" = Operating mode Tracking
"0" = Automatic operating mode
Data type
Description
OUT
REAL
Output
READY
BOOL
Runtime error
For a list of all block error codes and values, see Conditioning, page 352.
88
33002535 10/2014
QDTIME
Detailed description
Selecting the operating modes
Two operating modes can be selected through the TR_S parameter input.
Operating mode
TR_S
Automatic
Tracking
Then
33002535 10/2014
89
QDTIME
90
33002535 10/2014
Unity Pro
SCALING
33002535 10/2014
Chapter 11
SCALING: Scaling
SCALING: Scaling
Introduction
This chapter describes the SCALING block.
What Is in This Chapter?
This chapter contains the following topics:
Topic
Page
Description
92
Parametering
94
Runtime error
95
33002535 10/2014
91
SCALING
Description
Function description
This function block can be used to change the value range of a numerical variable.
EN and ENO can be configured as additional parameters.
Formula
The function block carries out the following calculation:
Representation in FBD
Representation:
Representation in LD
Representation:
Representation in IL
Representation:
CAL SCALING_Instance (IN:=DigitalVariable,
PARA:=Parameters, OUT=>ScalingOutput,
STATUS=>StatusWord)
92
33002535 10/2014
SCALING
Representation in ST
Representation:
SCALING_Instance (IN:=DigitalVariable, PARA:=Parameters,
OUT=>ScalingOutput, STATUS=>StatusWord) ;
Parameter description SCALING
Input parameter description:
Parameter
Data type
Meaning
IN
REAL
PARA
Para_SCALING
Parameter
Data type
Meaning
OUT
REAL
STATUS
WORD
Status word
Data type
Meaning
in_min
REAL
in_max
REAL
out_min
REAL
out_max
REAL
clip
BOOL
33002535 10/2014
93
SCALING
Parametering
Without output limiting (clip = 0)
If the clip parameter is set to 0, then the scaling is independent of the value of the IN input.
94
33002535 10/2014
SCALING
Runtime error
Status word
The following messages are displayed in the Status word:
Bit
Value in Value in
Dec.
Hex.
ENO Status
Description
Bit 0 = 1
0x0001
False
Bit 1 = 1
0x0002
False
Bit 2 = 1
0x0004
False
Bit 3 = 1
0x0008
False
Bit 4 = 1
16
0x0010
True
Bit 7 = 1
128
0x0080
True
For the list of other possible floating point error codes, see Common Floating Point Errors,
page 359.
Error message
An error appears in the following cases:
A non-floating value is on an input.
A problem has occurred during a floating point value calculation.
If in_min = in_max
33002535 10/2014
95
SCALING
96
33002535 10/2014
Unity Pro
TOTALIZER
33002535 10/2014
Chapter 12
TOTALIZER: Integrator
TOTALIZER: Integrator
Introduction
This chapter describes the TOTALIZER block.
What Is in This Chapter?
This chapter contains the following topics:
Topic
Description
Page
98
Formulas
102
Detailed description
103
Runtime error
106
33002535 10/2014
97
TOTALIZER
Description
Function Description
This function block integrates the value of the IN input (typically a flow volume) over time, until an
adjustable limit is reached (typically a volume).
EN and ENO can be configured as additional parameters.
NOTE: When using the EN enable input the following must be taken into account:
NOTE: If the block has not been called for a long time because the EN enable input is set to FALSE,
the totalizer block runtime is extended until the next call. If the watchdog timeout is exceeded this
can lead to a PLC stop.
NOTE: To remedy this, the enable input should not be used or set permanently to TRUE, so that
the block is processed during every cycle.
NOTE: This function block performs an internal initialization in the first program cycle after a warm
start or cold start (e.g. application download or power cycle) of the PLC program.
NOTE: Due to this, you have to make sure that the function block is invoked in the first program
cycle. In case of invoking the function block in a later program cycle, the internal initialization will
not be performed and the outputs may deliver wrong values.
WARNING
UNEXPECTED OUTPUT BEHAVIOUR
Make sure that the function block is always invoked in the first program cycle.
Failure to follow these instructions can result in death, serious injury, or equipment
damage.
Properties
The function block has the following properties
The integration can be temporarily paused and newly installed
Equipment that can also consider very small input values
Division whereby the low limit of the values of IN will no longer be considered
Use in the mode "Reverse of the integral summation": the output OUT decreases from threshold
value to zero (inc_dec = 1)
98
33002535 10/2014
TOTALIZER
Representation in FBD
Representation:
Representation in LD
Representation:
Representation in IL
Representation:
CAL TOTALIZER_Instance (IN:=DigitalVariable,
MODE:=OperatingMode, PARA:=Parameters,
TR_I:=outc_InitializationInput,
TR_S:=InitializationOrder, OUT=>ResultOfIntegration,
INFO=>AdditionalInformation, STATUS=>StatusWord)
33002535 10/2014
99
TOTALIZER
Representation in ST
Representation:
TOTALIZER_Instance (IN:=DigitalVariable,
MODE:=OperatingMode, PARA:=Parameters,
TR_I:=outc_InitializationInput,
TR_S:=InitializationOrder, OUT=>ResultOfIntegration,
INFO=>AdditionalInformation, STATUS=>StatusWord);
TOTALIZER Parameter Description
Description of input parameters:
Parameter
Data type
Description
IN
REAL
MODE
Mode_TOTALIZER
Operating mode
PARA
Para_TOTALIZER
Parameter
TR_I
REAL
TR_S
BOOL
Initialization command
Data type
Description
OUT
REAL
INFO
Info_TOTALIZER
STATUS
WORD
Status word
100
Element
Data type
Description
hold
BOOL
rst
BOOL
33002535 10/2014
TOTALIZER
Data type
Description
thld
REAL
Integral threshold of IN
cutoff
REAL
Division (0)
inc_dec
BOOL
Data type
Description
outc
REAL
cter
UINT
done
BOOL
33002535 10/2014
101
TOTALIZER
Formulas
Calculating the output OUT
With each execution the output OUT is calculated with the following formula:
Meaning
time elapsed since last block execution
Value of the output OUT at the end of the previous execution of the
controller
102
Result
Explanation
cter
33002535 10/2014
TOTALIZER
Detailed description
Setting the integral threshold thld
The integral threshold value corresponds in general to a process property, which is simple to
determine (e.g. the content of a tank).
The function block can also be used for the integral calculation of smaller input values, as well as
when the result of the integral invoice is very large. In this case there is the risk that the integral
values will become so strongly reduced in relation to the total values that they will no longer be
considered. The solution offered by TOTALIZER is in the limit of the collective index OUT on the
threshold value thld, so that the integral value is never insignificant in relation to the partial
collective index. The result of the integral total (outc) is also calculated: the controller saves the
frequency of achieving the threshold value thld on the collective index OUT.
When the threshold value thld corresponds to the value 0, the integral value will not be
calculated, the outputs remain blocked.
Further properties
As soon as the output OUT exceeds the threshold value thld, the output done is set to 1. During
the execution of the function block they are set to zero again.
When the counter cter achieves its maximum value (65535), this counter no longer changes. The
outputs OUT continues to function when the threshold value thld is included. However, the output
outc and the counter cter can no longer be used.
Negative values of the input IN are never considered, because they always lie below the division
cutoff.
33002535 10/2014
103
TOTALIZER
Timing diagram
Timing diagram of the TOTALIZER block
td Time span
Operating mode
There are 3 individual operating modes for the TOTALIZER function block: Tracking, Reset and
Halt:
Operating
mode
Parameter
Meaning
Tracking
TR_S = 1
The parameter TR_I will be run on outc and the parameter OUT and cter will
be set so that the following equation applies:
outc = thld x cter + OUT.
The tracking mode enables renewed synchronization of the controller outputs
with the control process (e.g. as a consequence of a sensor failure).
Reset
rst = 1
The outputs OUT, outc, cter and done are set to zero.
The reset via rst allows a new start from the zero reference point (for example
after phase change in production).
Halt
hold = 1
NOTE: By simultaneous activation of the inputs TR_S, rst and hold, the tracking mode has
priority over the other operating modes and the reset operating mode has priority over halt.
104
33002535 10/2014
TOTALIZER
td Time span
In tracking mode (TR_S = 1) the parameter TR_I will be run on outc and the parameter OUT and
cter will be set so that the following equation applies:
outc = thld x cter + (thld - OUT).
outc is calculated using the following formula: outc = thld x cter + (thld - OUT)
Function principle of the reverse of the integral summation
The following function principle applies:
Step
Action
At the first execution or positive on edge on rst the output OUT will be initiated by thld.
Thereafter with each execution the output OUT is calculated with the following formula:
33002535 10/2014
105
TOTALIZER
Runtime error
Status word
The following messages are displayed in the status word:
Bit
Description
Bit 0 = 1
0x0001
False
Bit 1= 1
0x0002
False
Bit 2= 1
0x0004
False
Bit 3 = 1
0x0008
False
Bit 4 = 1
16
0x0010
True
Bit 6 = 1
64
0x0060
True
The count register cter has reached its maximum value (65535):
cter is locked at this value and the output outc no longer has any
meaning. The OUT and done outputs can however continue to be
used.
For the list of other possible floating point error codes, see Common Floating Point Errors,
page 359.
Error message
A runtime error is signaled if a non floating point value is recorded or if there is a problem with a
floating point calculation. In this case the OUT, outc, cter and done outputs remain
unmodified.
NOTE: For a list of all block error codes and values, see Conditioning, page 352.
Warning Message
In the following cases a warning message is given:
106
If...
Then...
thld < 0
cutoff < 0
cter = 65535
cter is blocked at this value and the output outc no longer has any
meaning. The OUT and done outputs can however continue to be used.
33002535 10/2014
Unity Pro
VEL_LIM
33002535 10/2014
Chapter 13
VEL_LIM: Velocity limiter
Page
Description
108
Detailed description
111
33002535 10/2014
107
VEL_LIM
Description
Function description
The function block creates a velocity limiter with manipulated variable limiting.
The gradient of the input variable IN is limited to a predefinable RATE value. It also limits the output
OUT to within OUT_MAX and OUT_MIN. This allows the function block to adjust signals to the
technologically limited pace and limits from controlling elements.
NOTE: This function block performs an internal initialization in the first program cycle after a warm
start or cold start (e.g. application download or power cycle) of the PLC program.
NOTE: Due to this, you have to make sure that the function block is invoked in the first program
cycle. In case of inkoving the function block in a later program cycle, the internal initialization will
not be performed and the ouputs may deliver wrong values.
WARNING
UNEXPECTED OUTPUT BEHAVIOUR
Make sure that the function block is always invoked in the first program cycle.
Failure to follow these instructions can result in death, serious injury, or equipment
damage.
EN and ENO can be configured as additional parameters.
Properties
The function block has the following properties:
Tracking and automatic operating modes
Manipulated variable limiting in automatic mode
Representation in FBD
Representation:
108
33002535 10/2014
VEL_LIM
Representation in LD
Representation:
Representation in IL
Representation:
CAL VEL_LIM_Instance (IN:=Input,
RATE:=MaximumVelocityLimitation,
OUT_MIN:=LowerOutputLimit, OUT_MAX:=UpperOutputLimit,
TR_I:=InitializationInput, TR_S:=InitializationType,
OUT=>Output, QMIN=>OUT_Reached_OUT_MIN,
QMAX=>OUT_Reached_OUT_MAX)
Representation in ST
Representation:
VEL_LIM_Instance (IN:=Input,
RATE:=MaximumVelocityLimitation,
OUT_MIN:=LowerOutputLimit, OUT_MAX:=UpperOutputLimit,
TR_I:=InitializationInput, TR_S:=InitializationType,
OUT=>Output, QMIN=>OUT_Reached_OUT_MIN,
QMAX=>OUT_Reached_OUT_MAX) ;
33002535 10/2014
109
VEL_LIM
Parameter description
Description of input parameters:
Parameter
Data type
Description
IN
REAL
Input
RATE
REAL
OUT_MIN
REAL
Lower limit
OUT_MAX
REAL
Upper limit
TR_I
REAL
Initialization input
TR_S
BOOL
Initialization type
"1" = Operating mode tracking
"0" = Automatic operating mode
Data type
Description
OUT
REAL
Output
QMIN
BOOL
QMAX
BOOL
Runtime error
With OUT_MAX < OUT_MIN an error message appears.
NOTE: For a list of all block error codes and values, see Conditioning, page 352.
110
33002535 10/2014
VEL_LIM
Detailed description
Parametering
Parameter assignment for the function block is accomplished by specifying the maximum rising
velocity RATE and the limiting values OUT_MAX and OUT_MIN for the output OUT. The maximum
velocity rate indicates by how much the output may change within one second.
Actual RATE = 0, becomes OUT = IN.
The limits OUT_MAX and OUT_MIN limit the upper output as well as the lower output. Hence
OUT_MIN OUT OUT_MAX.
The outputs QMAX and QMIN show that the output has reached a limit or the output signal has been
capped.
QMAX = 1 if OUT OUT_MAX
QMIN = 1 if OUT OUT_MIN
Operating mode
Two operating modes can be selected through the TR_S parameter input.
Operating mode
TR_S
Meaning
Automatic
Tracking
33002535 10/2014
111
VEL_LIM
Example
Explanation of the dynamic behavior of the VEL_LIM function block.
The function block follows the transition at the input IN at its maximum velocity change rate. It can
also be clearly seen that the output OUT is limited by OUT_MAX and OUT_MIN with the associated
QMAX and QMIN signals.
112
33002535 10/2014
Unity Pro
Controller
33002535 10/2014
Part III
Controller
Controller
Overview
This section describes the elementary functions and elementary function blocks of the
Controller family.
What Is in This Part?
This part contains the following chapters:
Chapter
Chapter Name
Page
14
115
15
139
16
149
17
161
18
189
19
191
20
199
33002535 10/2014
113
Controller
114
33002535 10/2014
Unity Pro
AUTOTUNE
33002535 10/2014
Chapter 14
AUTOTUNE: Automatic tuner setting
Page
Description
116
Principle of autotuning
121
Identification principle
123
Parametering
124
Controller coupling
127
Diagnosis
129
131
133
Runtime error
137
33002535 10/2014
115
AUTOTUNE
Description
Function description
This Function block enables the autotuning of the PID controller (PIDFF: Complete PID controller,
page 161, PI_B: Simple PI controller, page 149).
Autotuning stabilizes the control when starting the system and, in so doing, saves time.
EN and ENO can be configured as additional parameters.
Algorithm
The algorithm is based upon heuristic controls, as with the Ziegler Nichols method. Initially, an
analysis corresponding to approximately 2.5 times the reaction time of the open loop is performed.
Through this, the process can be identified as a process of the first order with delay.
Building on this model, a control parameter set based on heuristic controls and historical data is
created.
The parameter range is determined by the perf criteria. In this individual case, this factor gives
the highest rank to the reaction time to disturbances or stability.
The algorithm is applied to the following process types :
Processes with only one input / output
Processes with natural stability or integral components
Asymmetric processes within the limits authorized by the algorithm of the PID controller
Processes controlled via pulse width modulation output (PWM).
Important characteristics
The block has the following characteristics
Pre-estimation of the control for the types PIDFF and/or PI_B
Diagnostic function
Parametering of the control dynamic
Recovery of previous control settings
116
33002535 10/2014
AUTOTUNE
Operating mode
The various operating modes of the autotuning and their priorities in descending order of validity
are shown in the following table:
Operating mode
TR_S
START
Tracking
0 or 1
Autotuning
On completion of the autotuning, the TRS output is set to 0, and the servo-loop is reset to its
previous operating mode (manual or automatic). If the autotuning fails, the TRI variable will be set
back to the value before autotuning was started and the servo-loop will be reset to its previous
operating mode.
Representation in FBD
Representation:
33002535 10/2014
117
AUTOTUNE
Representation in LD
Representation:
Representation in IL
Representation:
CAL AUTOTUNE_Instance (PV:=ProcessValue, SP:=Setpoint,
RCPY:=RecopyRealCommand, START:=StartAutotuning,
PREV:=ReturnToPreviousValues, PARA:=Parameters,
TR_I:=InitializationInput, TR_S:=InitializationSequence,
PV_O=>PV_InputImage, SP_O=>SP_InputImage,
PARA_C=>ParametersToBeTuned, TRI=>TR_I_InputImage,
TRS=>TR_S_InputImage, INFO=>Information,
STATUS=>Statusword)
118
33002535 10/2014
AUTOTUNE
Representation in ST
Representation:
AUTOTUNE_Instance (PV:=ProcessValue, SP:=Setpoint,
RCPY:=RecopyRealCommand, START:=StartAutotuning,
PREV:=ReturnToPreviousValues, PARA:=Parameters,
TR_I:=InitializationInput, TR_S:=InitializationSequence,
PV_O=>PV_InputImage, SP_O=>SP_InputImage,
PARA_C=>ParametersToBeTuned, TRI=>TR_I_InputImage,
TRS=>TR_S_InputImage, INFO=>Information,
STATUS=>Statusword) ;
Parameter description AUTOTUNE
Input parameter description:
Parameter
Data type
Meaning
PV
REAL
Process value
SP
REAL
Setpoint
RCPY
REAL
START
BOOL
PREV
BOOL
PARA
Para_AUTOTUNE
Parameter
TR_I
REAL
Start input
TR_S
BOOL
Start command
Data type
Meaning
PV_O
REAL
SP_O
REAL
PARA_C
Control parameters
TRI
REAL
TRS
BOOL
INFO
Info_AUTOTUNE
Information
STATUS
WORD
Status word
33002535 10/2014
119
AUTOTUNE
Data type
Meaning
step_ampl
REAL
tmax
TIME
perf
REAL
plant_type
WORD
Reserved word
120
Data type
Meaning
diag
UDINT
p1_prev
REAL
p2_prev
REAL
p3_prev
REAL
p4_prev
REAL
p5_prev
REAL
p6_prev
REAL
33002535 10/2014
AUTOTUNE
Principle of autotuning
Two kinds of autotuning
Two kinds of autotuning are possible: autotuning at a warm and cold system start
The first phase of autotuning applies for both kinds of tuning: this involves a sound and stability test
of the control process lasting 0.5 * tmax with constant outputs. Subsequent phases depend on the
kind of tuning.
Autotuning at a cold start
Autotuning at a cold start is referred to when the deviation between the actual and setpoint values
exceeds 40% and the process value is less than 30%. In this case the TRI output of the function
block is admitted with two actuator pulses of the same kind. Each actuator pulse has duration
tmax. When autotuning ends, there is a smooth return to the previous operating mode for the servo
loop:
Autotuning at a cold start
1
2
3
33002535 10/2014
121
AUTOTUNE
1
2
3
122
33002535 10/2014
AUTOTUNE
Identification principle
Identification process
The identification process consists of 3 stages:
a sound and stability analysis of the control process
an initial analysis of the reaction to an actuator pulse, which is shown as the first identification
model: a filter is created on the basis of this first estimate; this is used during the last phase
a second analysis of the reaction to a second actuator pulse gives more precise information
because of the data filter
Finally, a complete process model is created. If the results of the two previous phases are two far
apart, the estimate is abandoned and autotuning fails.
Control principle
After both phases a parameter set is created for the controller being tuned. The resulting control
parameters are based on the gain and on the ratio between reaction time and process delay.
The algorithm must be able to withstand the modification of the gain and the time constants in ratio
2 without losing stability. The asymmetrical processes are supported if they fulfill these conditions.
If not, an error is displayed during diagnosis diag.
33002535 10/2014
123
AUTOTUNE
Parametering
Parametering actuating pulse
During autotuning, the output TRI is turned up two actuating pulses. An actuating impulse is
identified by two parameters: its time duration (tmax) and its amplitude (step_ampl).
The following value ranges are valid for these parameters: tmax greater than 4 seconds and
step_ampl greater than 1 % of the output scale (out_inf, out_sup). The function also
monitors even if the TRI output exceeds the threshold for the output scale.
The check occurs when autotune is started.
The following table contains parameter values for some of the typical control methods:
Diagram
tmax(s)
step_ampl (%)
5-30
10-20
Gas pressure
60-300
10-20
Level
120-600
20
600-3600
30-50
Module
600-3600
30-50
124
33002535 10/2014
AUTOTUNE
Description
p1_prev
KP
p2_prev
TI
p3_prev
TD
The following Info_AUTOTUNE structural parameters are valid for PI_B type controllers:
Element of the data
structure
Description
p1_prev
KP
p2_prev
TI
33002535 10/2014
125
AUTOTUNE
126
33002535 10/2014
AUTOTUNE
Controller coupling
Application example with a PIDFF controller type EFB
The following diagram is an application example of an AUTOTUNE EFB with a PIDFF EFB controller
type:
The AUTOTUNE EFB exchanges with the controller parameter: Access to the controller parameters
is via the link between the output PARA_C of the AUTOTUNE function block and the input PARA of
the controller. The PARA_C output is of the ANY type and enables the connection of the AUTOTUNE
EFB to various controller types (PIDFF or PI_B).
The AUTOTUNE EFB and the controller also share the following interlinkable variables: PV,SP,
TR_I and TR_S. PV, SP, TR_I and TR_S. These variables display AUTOTUNE inputs, which lead
to the corresponding outputs, in order to switch to controller inputs
If the autotune is active, the TRS output transfers to 1 and the manipulated variable is attached at
the TRI output. The purpose of these outputs is to connect to the inputs TR_I and TR_S of the
function blocks following AUTOTUNE. In this way, these can be set to the tracking operation mode
(PIDFF, PI_B, MS,).
Example for connection: Servoloops with a simple PID controller
This section is concerned with the automatic setting of a single controller (most frequent case). The
controller can be of PI_B or PIDFF type.
The AUTOTUNE EFB requires the scaling parameters of the controller (PARA_C structure
parameters) pv_inf, pv_sup, out_inf, out_sup as well as the controllers structure type,
which is specified via the mix_par bit. The EFB creates the parameters of the PID controller (KP,
TI, TD) from this. The direction of action of the controller (rev_dir) is checked when testing the
autotune and is compared to the sign for the gain of the model. When incompatibility occurs, an
error is shown for the diag Parameters.
33002535 10/2014
127
AUTOTUNE
Example for connection: Servoloops with simple PID controller and MS function block
If the servoloop contains a MS-EFB, the structure can appear as follows:
When starting the autotune, the AUTOTUNE EFB sets the MS function block to tracking mode and
hence controls the output of the servoloop directly. Using AUTOTUNE and PIDFF blocks RCPY
inputs enables a bumpless restart of the servoloop.
128
33002535 10/2014
AUTOTUNE
Diagnosis
Overview of the diagnosis
There are a number of reasons that can lead to the autotuning not starting, being cancelled or
failing. In such a case, depending on the cause of failure, it can be possible to supply a parameter
set. Every bit of the diagnostic word diag allows for a type of error to be created.
This word contains the current operating mode of the autotuning.
The following cases are explained:
Status of the autotuning, page 130
Causes of a faulty start, page 130
Causes of autotuning termination, page 131
Generating a test after stopping the autotuning, page 133
Diagnostic word
This table contains the meaning of the diag elements of the data structure Info_AUTOTUNE
Bit
Meaning
Bit 0 = 1
Autotuning is running
Bit 1 = 1
Autotuning aborted
Bit 2 = 1
Parameter error
Bit 3 = 1
Bit 4 = 1
Bit 5 = 1
Bit 6 = 1
Bit 7 = 1
Bit 8 = 1
Incomprehensible reaction
Bit 9 = 1
Bit 10 = 1
Bit 1 1= 1
Bit 12 = 1
Bit 13 = 1
Bit 14 = 1
Bit 15 = 1
Asymmetric process
Bit 16 = 1
33002535 10/2014
129
AUTOTUNE
Meaning
0
1 = Autotuning running.
(see page 130)
1
1 = Autotuning stopped
(see page 130)
Meaning
1 = Parameter error
130
33002535 10/2014
AUTOTUNE
Meaning
1 = Illogical reaction
33002535 10/2014
131
AUTOTUNE
The amplitude of the actuating pulse is too small too influence the process. In this case, the value
of step_ampl can be increased.
Bit 8 of the diag element
This picture shows the behavior during an illogical reaction.
The reaction of the control process is incomprehensible (gain factors with various signs). This can
be due to a larger disturbance, coupling with other servo-loops or some other reason.
132
33002535 10/2014
AUTOTUNE
Meaning
10
11
12
13
14
15
1 = Asymmetrical Process
16
1 = Integrating Process
The automatic regulator setting was implemented, although the measurement was not stable. If
the measured change is large relative to the reaction of the actuating pulse, then the test results
will be distorted.
33002535 10/2014
133
AUTOTUNE
1
2
The reaction will not be stabilized before returning to the original manipulated variable. The
calculated parameters are therefore false.
Bit 11 of the diag element
This image illustrates the behavior when noise/interference is too high:
The reaction of the process to the actuating pulse is insufficient relative to the level of
noise/interference. The measurement should be filtered or step_ampl should be increased.
134
33002535 10/2014
AUTOTUNE
tmax specifies the frequency with which the measurement is taken, i.e. the value that is used to
calculate the coefficients. tmax must be between 1 and 5 times the rise time of the repeated task.
Bit 13 of the diag element
This bit is used when the reaction to an actuating pulse significantly exceeds (overshoots) the
measured value (i.e. by more than 10%). The process does not conform to the models used by the
algorithms.
Bit 14 of the diag element
This bit is used when the reaction to an actuating pulse leads to inversion of the reaction at the
initial stage (i.e. undershoots by more than 10%). The process does not conform to the models
used by the algorithms.
33002535 10/2014
135
AUTOTUNE
The process includes an integral component or tmax is too small and the process asymmetrical.
The calculated coefficients must correlate to the process with the integral coefficient If this is not
the case, the automatic regulator setting should be restarted, after tmax has been increased.
136
33002535 10/2014
AUTOTUNE
Runtime error
Status word
The bits of the status words have the following meaning:
Bit
Description
Bit 0 = 1
Bit 1 = 1
Bit 2 = 1
Bit 3 = 1
Bit 4 = 1
The parameter perf is outside the [0.1] range: the function block uses the
value 0 or 1 for calculations.
Bit 7 = 1
The thresholds pv_inf and pv_sup of the controller to be set are identical
Bit 8 = 1
Bit 9 = 1
Autotuning failed
Bit 10 = 1
For the list of other possible floating point error codes, see Common Floating Point Errors,
page 359.
Error message
This error is displayed when a non-floating point has been recorded at an input, when a problem
occurs during a calculation with floating points or when the thresholds pv_inf and pv_sup of the
controller are identical. In this case, all the outputs of the function block remain unchanged.
NOTE: For a list of all block error codes and values, see Controller, page 354.
Warning
A warning is issued, if the parameter perf is outside the [0.1] range. In this case, the block can
use either the value 0 or 1 for the purpose of calculations.
33002535 10/2014
137
AUTOTUNE
138
33002535 10/2014
Unity Pro
IMC
33002535 10/2014
Chapter 15
IMC: Model corrector
Page
Description
140
Delay management
146
147
Execution Error
148
33002535 10/2014
139
IMC
Description
Description of the Function
The model corrector allows you to deal with serious delays, if any, compared with the main time
constant of the process; this case cannot be satisfactorily resolved by standard PID process
control. The model corrector is also important for regulating a non-linear process.
The model is first order + delay. However, this corrector may deal with any stable and aperiodic
process, in any order whatsoever.
The parameters to be supplied are:
The static gain (ratio between delta measurement/delta command in open loop).
The pure delay value of the process (estimated value).
The equivalent time constant (response time / 3).
The ratio between time constant in open loop/time constant in closed loop.
NOTE: This function block performs an internal initialization in the first program cycle after a warm
start or cold start (e.g. application download or power cycle) of the PLC program.
NOTE: Due to this, you have to make sure that the function block is invoked in the first program
cycle. In case of inkoving the function block in a later program cycle, the internal initialization will
not be performed and the ouputs may deliver wrong values.
WARNING
UNEXPECTED OUTPUT BEHAVIOUR
Make sure that the function block iss always invoked in the first program cycle.
For a correct behaviour you must synchronize the model corrector with the SAMPLE_TM function
and adjust the INTERVAL variable to the same value as T_ECH of IMC
Failure to follow these instructions can result in death, serious injury, or equipment
damage.
140
33002535 10/2014
IMC
Block diagram
The block diagram of the algorithm of the model corrector is:
33002535 10/2014
141
IMC
Representation in FBD
Representation:
Representation in LD
Representation:
142
33002535 10/2014
IMC
Representation in IL
Representation:
CAL IMC_Instance(PV:=ProcessValue,SP:=SetPoint,
FF:=FeedForward, RCPY:=CopyOfRealAction,
MAN_AUTO:=OperatingModeFlag,PARA:=Parameters,
BUFFER:=SamplesBuffer, TR_I:=InitializationInput,
TR_S:=InitializationOrder, OUT:=AbsoluteOutput,
OUTD=>IncrementalOutput,DMO=>DelayedModelOutput,
MA_O=>CurrentBlockOperatingMode, INFO=>InfoIMC,
STATUS=>StatusWord)
Representation in ST
Representation:
IMC_Instance (PV:=ProcessValue, SP:=SetPoint,
FF:=FeedForward, RCPY:=CopyOfRealAction,
MAN_AUTO:=OperatingModeFlag,PARA:=Parameters,
BUFFER:=SamplesBuffer, TR_I:=InitializationInput,
TR_S:=InitializationOrder, OUT:=AbsoluteOutput,
OUTD=>IncrementalOutput,DMO=>DelayedModelOutput,
MA_O=>CurrentBlockOperatingMode, INFO=>InfoIMC,
STATUS=>StatusWord);
Description of the input/output parameters IMC
CAUTION
UNEXPECTED BEHAVIOR OF APPLICATION
Do not set the datatype of the PARA input parameter to constant, in the general attributes tab of
the Data Properties window.
Failure to follow these instructions can result in injury or equipment damage.
33002535 10/2014
143
IMC
Type
Meaning
PV
REAL
SP
REAL
Set point
FF
REAL
RCPY
REAL
MAN_AUTO
BOOL
PARA
Para_IMC
Internal parameters
BUFFER
ARRAY [n..m] OF
REAL
TR_I
REAL
TR_S
BOOL
Initialization command
Type
Meaning
OUT
REAL
Type
Meaning
OUTD
REAL
DMO
REAL
MA_O
BOOL
Info_IMC
REAL
Information
STATUS
WORD
Status word
144
Parameter
Type
Meaning
KS (1)
REAL
OL_TIME(1)
REAL
IMC
Parameter
Type
Meaning
CL_PERF
REAL
T_DELAY
REAL
DBAND
REAL
T_ECH
REAL
Sampling period.
Default value: 0,3, limits: 0.0/3E38.
REV_DIR
BOOL
Direction of action:
"0": direct
"1": reverse (initial value)
En_rcpy
BOOL
Id
UINT
PV_INF
REAL
PV_SUP
REAL
OUT_INF
REAL
OUT_SUP
REAL
OUT_MIN
REAL
OUT_MAX
REAL
OUTRATE
REAL
FF_INF
REAL
FF_SUP
REAL
OTFF_INF
REAL
OTFF_SUP
REAL
DEV
REAL
PV-PS deviation
OUT_FF
REAL
(1) KS and OL_TIME can not take the value 0 (inconsistent value). They will be forced to the value
1.0.
33002535 10/2014
145
IMC
Delay management
Description
In the processes to which the controller addresses this controller, the delay is:
Variable (For example, transfer of matter depending of the baud rate in a circuit, speed of the
carrier base)
Very great.
Principle
These two cases are dealt with using a register (buffer) of a size that may be parametrized.
Depending on the size of this register, it will be possible to sample either all of the sample periods,
or one period out of two, or one period out of three, etc.
It is possible to increase or reduce the delay T_DELAY during the execution of the program. The
new delay is applied immediately, as long as it is compatible with the size of the register. The delay
sampling period remains unchanged.
If the value T_DELAY becomes too great in relation to the size of the register, it becomes
impossible to adequately store the input values to reach the required delay, if the sampling is
carried out during the same period. The delay sampling period is therefore recalculated and the
output is only valid after a period equal to a new delay. In order to avoid this problem, we advise
you to size the register, taking into account any increases in the delay T_DELAY.
If the delay decreases, by default the sampling does not change. However, it is possible to
command a new sampling calculation if necessary.
In the case of a dynamic modification of the time of the task or the sampling period, the output is
only valid after a period equal to the delay.
Any dynamic modification T_DELAY between 0 s and 30 s is immediately taken into account
without changing the sampling of the register.
Example
Calculation example
146
Sampling period
T_ECH = 300 ms
50
Delay
T_DELAY = 25 s
50 x 2 x 0.3 = 30 s > 25 s
33002535 10/2014
IMC
33002535 10/2014
147
IMC
Execution Error
Execution Monitoring
An execution error is signaled in the following cases:
In all cases, the error is considered to be serious. The loop output is frozen and the errors are
signaled in the status words.
Status Word
The status word displays the following messages:
Bit
Meaning
Bit 0 =1
Bit 1 = 1
Bit 2 = 1
Bit 4 = 1
Bit 5 = 1
Bit 6 = 1
Bit 7 = 1
Bit 8 = 1
NOTE: When a floating point calculation error occurs, the status output returns an error code
(see page 359).
148
33002535 10/2014
Unity Pro
PI_B
33002535 10/2014
Chapter 16
PI_B: Simple PI controller
Page
Description
150
Formulas
154
Parametering
155
Detailed equations
158
Runtime error
160
33002535 10/2014
149
PI_B
Description
Function description
The function block PI_B depicts a PI-algorithm with a mixed structure (series/parallel). Its functions
derive from function block PIDFF (see page 161). These functions enable the function block to
perform most classical control applications, without compromising user friendliness or using too
many system resources. However, for difficult control tasks requiring extended control functions,
the PIDFF block should be used.
EN and ENO can be configured as additional parameters.
Functions
The most important functions of function block PI_B are as follows:
Calculation of the proportional and integral component in incremental form
Actual value, setpoint value, and default value in physical units
Direct or inverse action
Possibility of upgrading a block-external I component (RCPY input)
Dead zone on deviation
Incremental value and absolute value default
Upper and lower limit value of the default signal
Output offset
Selecting manual/automatic mode
Tracking mode
Upper and lower limit of the setpoint value
Extended functions
As is the case with PIDFF these functions can be extended by using various additional function
blocks:
Automatic control setting via the block AUTOTUNE
Internal or external setpoint value selection via the block SP_SEL
Controlling manual operation of the sampled servoloops (see page 32) using the function block
MS
150
33002535 10/2014
PI_B
Representation in FBD
Representation:
Representation in LD
Representation:
33002535 10/2014
151
PI_B
Representation in IL
Representation:
CAL PI_B_Instance (PV:=ProcessValue, SP:=SetPoint,
RCPY:=CopyOfRealAction, MAN_AUTO:=OperatingModeFlag,
PARA:=Parameters, TR_I:=InitializationInput,
TR_S:=InitializationOrder, OUT:=AbsoluteOutput,
OUTD=>IncrementalOutput,
MA_O=>CurrentBlockOperatingMode, DEV=>ValueOfDeviation,
STATUS=>StatusWord)
Representation in ST
Representation:
PI_B_Instance (PV:=ProcessValue, SP:=SetPoint,
RCPY:=CopyOfRealAction, MAN_AUTO:=OperatingModeFlag,
PARA:=Parameters, TR_I:=InitializationInput,
TR_S:=InitializationOrder, OUT:=AbsoluteOutput,
OUTD=>IncrementalOutput,
MA_O=>CurrentBlockOperatingMode, DEV=>ValueOfDeviation,
STATUS=>StatusWord) ;
Parameter description PI_B
CAUTION
UNEXPECTED BEHAVIOR OF APPLICATION
Do not set the datatype of the PARA input parameter to constant, in the general attributes tab of
the Data Properties window.
Failure to follow these instructions can result in injury or equipment damage.
Input parameter description:
152
Parameter
Data type
Meaning
PV
REAL
Process value
SP
REAL
Setpoint
RCPY
REAL
MAN_AUTO
BOOL
33002535 10/2014
PI_B
Parameter
Data type
Meaning
PARA
Para_PI_B
Parameter
TR_I
REAL
Initialization input
TR_S
BOOL
Initialization command
Data type
Meaning
OUT
REAL
Actuator output
Data type
Meaning
OUTD
REAL
MA_O
BOOL
DEV
REAL
STATUS
WORD
Status word
Data type
Meaning
id
UINT
pv_inf
REAL
pv_sup
REAL
out_inf
REAL
out_sup
REAL
rev_dir
BOOL
en_rcpy
BOOL
kp
REAL
ti
TIME
Integral time
dband
REAL
outbias
REAL
33002535 10/2014
153
PI_B
Formulas
Transfer function
The transfer function is:
Calculation formulas
The formulas actually used vary, depending on whether the function block uses the incremental or
the absolute algorithm.
In a simplified form, the function block can use one of the following formulas:
Algorithm
ti
Absolute
Incremental
>0
Formulas
154
Variable
Meaning
(new)
(old)
OUT
OUTD
TermI
TermP
33002535 10/2014
PI_B
Parametering
Structure display of PI_B controller
Structure of PI_B controller:
Absolute algorithm
The absolute algorithm is used if no I component is available (when ti = 0). In this case the output
OUT is calculated first, and the output modification will then be deducted from this.
Incremental algorithms
Incremental algorithms are used when an I component is available (i.e. when ti > 0). The
particularities of this algorithm are that the output alteration OUTD is calculated first and then an
absolute value output is determined using the following formulas:
For this algorithm, a SERVO function block can be switched to the controller, enabling astatic
control.
In addition to this the incremental algorithm offers the projection of a block-external integral
component for control applications, where the actually upgraded conduct diverts from the conduct
calculated by the controller (during open control cycle). In this case it is advantageous to use this
for the calculation of the real value. If this is available, the RCPY input must be upgraded and the
parameter en_rcpy must be switched to 1. For calculation, therefore, the equation
to
This is particularly useful for cascades or cascade-like controls.
NOTE: The output OUT is not limited for upgrading an external integral component (en_rcpy=1) .
33002535 10/2014
155
PI_B
Further properties
The block contains the following properties:
The use of the parameter outbias allows for a precise setting of the work point when no
integral component is available (ti = 0).
The output OUT is limited to the area between out_inf and out_sup for all operation modes.
If a value calculated by the function block (or a written value entered by the user in manual
mode) exceeds these limits, the value of OUT is capped. The incremental output OUTD, however,
does not take this cut into consideration. This enables the PI_B to control a SERVO function
block without having to revert the position of the control element (continuous control).
The choice between direct/inverse action (parameter rev_dir) allows for the adjustment of the
control direction of the link control element/measuring process.
Limiting the setpoint between pv_inf and pv_sup.
The function block can operate in a purely integral mode (with kp = 0).
156
33002535 10/2014
PI_B
Operating mode
Function block PI_B has three operating modes: Automatic, Manual and Tracking. The tracking
mode is given preference over the other operating modes.
The operating modes are selected via the inputs MAN_AUTO and TR_S.
Operating mode
TR_S
MAN_AUTO
Meaning
Automatic
Manual
Tracking
0 or 1
33002535 10/2014
157
PI_B
Detailed equations
Convention
The following equations use different variables and functions. The variables corresponding with
block parameters are not rewritten at this point.
The most important inter-variables and the applied functions will however be described in the
following table:
Inter-variables / function
Meaning
dt
(new)
(old)
TermI
TermP
sense
Function
Function Limit
Absolute algorithm
The following equations apply for proportional controllers (ti = 0),
158
33002535 10/2014
PI_B
Incremental algorithm
The following equations apply for controllers of type PI (ti > 0);
If en_rcpy = 0, then:
If en_rcpy = 1, then:
33002535 10/2014
159
PI_B
Runtime error
Status word
The following messages are displayed in the status word:
Bit
Description
Bit 4 = 1
Bit 5 = 1
The output OUT has reached the lower threshold out_min (see Note)
Bit 6 = 1
The output OUT has reached the upper threshold out_max (see Note)
Bit 7 = 1
If an error occurs during floating point processing, it will also be displayed on the Statusoutput.
For the list of possible floating point error codes, see Common Floating Point Errors, page 359.
Note on output OUT
NOTE: In manual mode these bits stay at 1 for only one program cycle. When the user enters a
value for OUT which exceeds one of these thresholds, the function block sets the Bit 5 or 6 to 1 and
blocks them from the user entered value. With the following execution of the function block the
value of OUT no longer lies outside the area and the Bits 5 and 6 are set to 0 again.
Error message
An error is displayed when a non-floating point is recorded at an input, when a problem occurs
during a calculation with floating points or when the limit values pv_inf and pv_sup are identical.
The outputs OUT, OUTD, MA_O and DEV remain unchanged.
NOTE: For a list of all block error codes and values, see Controller, page 354.
Warning Message
In the following cases a warning message is given:
One of the kp or dband parameters are negative. the function block uses the value 0 instead
of the incorrect parameter value.
The outbias parameter lies outside the area [(out_inf - out_sup), (out_sup - out_inf)].
For calculation, the function block uses the value (out_inf - out_sup) or (out_sup out_inf).
160
33002535 10/2014
Unity Pro
PIDFF
33002535 10/2014
Chapter 17
PIDFF: Complete PID controller
Page
Description
162
Formulas
167
169
Parametering
171
Operating mode
175
Detailed equations
176
178
180
182
Runtime error
187
33002535 10/2014
161
PIDFF
Description
Function description
The PIDFF function block is based on a PID algorithm with parallel or mixed structure (series /
parallel).
EN and ENO can be configured as additional parameters.
Functions
It displays numerous functions:
Calculating the proportional, integral and differential component in its incremental form
2 antiwindup measures
Actual value, setpoint and output in physical units
Direct or inverse action
Differential component to process value or deviation
Parametering the transfer gain of the differential component
Weight of the setpoint in the proportional component (reducing the overrun)
Possibility of upgrading a block external integral component (RCPY input)
Feed forward component for disturbance compensation (FF input)
Dead zone on deviation
Incremental value and absolute value output
Upper and lower limit on the output signal (according to operating mode)
Gradient limitation of the output signal
Output offset
Selecting manual/automatic mode
Tracking mode
Upper and lower setpoint limit
Complementary functions
Other function blocks complement these functions when used in conjunction with the PIDFF block:
Autotuning using the AUTOTUNE function block
Selecting an internal or external setpoint via the function block SP_SEL
Controlling manual operation of the sampled control loops (see page 32) using the function
block MS or MS_DB (see page 279).
162
33002535 10/2014
PIDFF
Representation in FBD
Representation:
Representation in LD
Representation:
33002535 10/2014
163
PIDFF
Representation in IL
Representation:
CAL PIDFF_Instance (PV:=ProcessVariable, SP:=Setpoint,
FF:=FeedForwardInput, RCPY:=CopyOfRealAction,
MAN_AUTO:=OperatingMode, PARA:=Parameters,
TR_I:=InitializationInput, TR_S:=InitializationOrder,
OUT:=AbsoluteOutput, OUTD=>IncrementalOutput,
MA_O=>CurrentOperatingMode, INFO=>Information,
STATUS=>StatusWord)
Representation in ST
Representation:
PIDFF_Instance (PV:=ProcessVariable, SP:=Setpoint,
FF:=FeedForwardInput, RCPY:=CopyOfRealAction,
MAN_AUTO:=OperatingMode, PARA:=Parameters,
TR_I:=InitializationInput, TR_S:=InitializationOrder,
OUT:=AbsoluteOutput, OUTD=>IncrementalOutput,
MA_O=>CurrentOperatingMode, INFO=>Information,
STATUS=>StatusWord) ;
PIDFF parameter description
CAUTION
UNEXPECTED BEHAVIOR OF APPLICATION
Do not set the datatype of the PARA input parameter to constant, in the general attributes tab of
the Data Properties window
Failure to follow these instructions can result in injury or equipment damage.
Description of input parameters:
164
Parameter
Data type
Description
PV
REAL
Process value
SP
REAL
Setpoint
FF
REAL
Disturbance input
RCPY
REAL
MAN_AUTO
BOOL
33002535 10/2014
PIDFF
Parameter
Data type
Description
PARA
Para_PIDFF
Parameter
TR_I
REAL
Initialization input
TR_S
BOOL
Initialization command
Data type
Description
OUT
REAL
Absolute value
Data type
Description
OUTD
REAL
MA_O
BOOL
INFO
Info_PIDFF
Information
STATUS
WORD
Status word
Data type
Description
id
UINT
pv_inf
REAL
pv_sup
REAL
out_inf
REAL
out_sup
REAL
rev_dir
BOOL
mix_par
BOOL
aw_type
BOOL
en_rcpy
BOOL
kp
REAL
ti
TIME
Integral time
td
TIME
Derivative time
33002535 10/2014
165
PIDFF
Element
Data type
Description
kd
REAL
Differential gain
pv_dev
BOOL
bump
BOOL
dband
REAL
gain_kp
REAL
ovs_att
REAL
outbias
REAL
out_min
REAL
out_max
REAL
outrate
REAL
ff_inf
REAL
ff_sup
REAL
otff_inf
REAL
otff_sup
REAL
166
Data type
Description
dev
REAL
out_ff
REAL
33002535 10/2014
PIDFF
Formulas
Transfer function
Depending on whether the mixed or parallel structure is being used, the transfer function is as
follows:
Structure
Formulas
Mixed
Parallel
with = scaling
factor
Calculation formulas
The formulas actually used vary depending whether the function block uses the incremental or
absolute form of the algorithm.
In a simplified form, the function block can use one of the following formulas:
Algorithm
ti
Absolute
Incremental
>0
33002535 10/2014
Formulas
167
PIDFF
168
Variable
Meaning
(new)
(old)
OUT
OUTD
TermD
TermFF
TermI
TermP
33002535 10/2014
PIDFF
33002535 10/2014
169
PIDFF
170
33002535 10/2014
PIDFF
Parametering
Mixed/parallel structure (mix_par)
Structure selection takes place via the mix_par parameter:
If
Then
mix_par = 0
mix_par = 1
This algorithm form makes it possible to switch a SERVO function block to the controller and thus
to attain astatic control.
The incremental form also offers the following possibilities:
Possibility
Explanation
33002535 10/2014
171
PIDFF
Possibility
Explanation
Expanded anti-windup
measure
).
This could have an influence in the case of an overrun, as can occur with setpoint modifications.
The aim is to retain a control-intensive proportional component and therefore a dynamic response
to disturbances without an overrun occurring during control.
The parameter ovs_att can fluctuate continually between:
Value
Meaning
to the proportional component (classic case) assigned to the deviation (system deviation)
for the proportional component (with sensitive processes or processes with an integral effect)
assigned to the measurement (controlled variable).
172
33002535 10/2014
PIDFF
A specific user example of this function is given in the section "Application example of the Feed
Forward function, page 182".
NOTE: If ff_sup = ff_inf, the calculation of the Feed-Forward component is ignored.
33002535 10/2014
173
PIDFF
Further properties
The block contains the following properties:
The outbias parameter makes precision at the operating point possible if the process contains
no integral component (ti = 0).
In automatic mode, the OUT output is limited to the range between out_min and out_max, and
to the range between out_inf and out_sup in manual mode. If a value calculated by the
function block (or a written value entered by the user in manual mode) exceeds one of these
limits, the value of OUT is capped. The incremental output OUT_D, however, does not take this
capping into consideration. This enables the PIDFF function block to control a SERVO function
block without having to revert the position of the actuator (continuous control).
The output speed increase is limited by the parameter outrate.
The possibility of selecting between direct/inverse action (parameter rev_dir) allows for the
adjustment of the control direction of the link actuator/ process.
The differential component can affect both the process value (pv_dev = 0), and the deviation
(pv_dev = 1)
pv_inf and pv_sup correspond to the upper and lower thresholds of the setpoint value.
The function block can also have an effect in pure integral mode (with kp = 0).
174
33002535 10/2014
PIDFF
Operating mode
Selecting the operating modes
There are 3 operating modes for the PIDFF function block: Automatic, Manual and Tracking. As
the following table shows, the tracking mode takes priority over the other operating modes.
The operating modes are selected via the inputs MAN_AUTO and TR_S:
Operating mode
TR_S
MAN_AUTO
Meaning
Automatic
Manual
Tracking
0 or 1
Then
bump = 0
bump = 1
33002535 10/2014
175
PIDFF
Detailed equations
Overview
The detailed equations are shown for the following situations are shown in this section:
Convention for the most important Interim variables and Functions used in the equations
Absolute algorithm, page 177
Incremental algorithm PID controller, page 178
Normal incremental algorithms (aw_type = 0)
With bumpless anti-windup measure (aw_type = 1)
Convention
Various variables and functions are used in the following equations. The variables corresponding
to the parameters of the function block are not newly described.
The most important Interim variables and the functions used are described in the following tables.
Explanation of the interim variables
An explanation of the most important interim variables can be found here.
176
Interim variable
Meaning
DEV_WGH
DEV_WGH = PV - (1 - ovs_att) * SP
dt
(new)
(old)
OUTc
sense
Control setting
TermAW
TermD
TermFF
PIDFF
Interim variable
Meaning
TermI
TermP
VAR
Meaning
The control setting has the following directions of action:
+1
Absolute algorithm
The following equations apply for PD controllers ( ti = 0);
33002535 10/2014
177
PIDFF
Meaning
aw_type = 0
aw_type = 1
If en_rcpy = 0, then:
If en_rcpy = 1, then:
Value of the proportional component TermP:
178
33002535 10/2014
PIDFF
If en_rcpy = 1, then:
33002535 10/2014
179
PIDFF
Meaning
aw_type = 0
aw_type = 1
If en_rcpy = 0, then:
If en_rcpy = 1, then:
180
33002535 10/2014
PIDFF
If en_rcpy = 1, then:
33002535 10/2014
181
PIDFF
182
33002535 10/2014
PIDFF
The feed forward input parameters should be adjusted so that the cold water temperature has the
following effect on the steam control valve:
Temperature range
Effects
15 C
no effect
Adjustments to be preset
Element
Value
ff_sup
25 C
ff_inf
5 C
otff_sup
10 %
otff_inf
- 10 %
33002535 10/2014
183
PIDFF
184
33002535 10/2014
PIDFF
33002535 10/2014
185
PIDFF
186
33002535 10/2014
PIDFF
Runtime error
Status word
The following messages are displayed in the status word:
Bit
Description
Bit 4 = 1
Bit 5 = 1
The output OUT has reached the lower threshold out_min (see Note)
Bit 6 = 1
The output OUT has reached the upper threshold out_max (see Note)
Bit 7 = 1
If an error occurs during floating point processing, it will also be displayed on the Statusoutput.
For the list of possible floating point error codes, see Common Floating Point Errors, page 359.
Note on output OUT
NOTE: In manual mode these bits stay at 1 for only one program cycle. When the user enters a
value for OUT which exceeds one of the thresholds, the function block sets the Bit 5 or 6 to 1 and
blocks them from the user entered value. During the next execution of the function block, the value
of OUT no longer lies outside the range and bits 5 and 6 are set to zero again.
Error message
An error is displayed when a non-floating point has been recorded at an input, when a problem
occurs during a calculation with floating points or when the thresholds pv_inf and pv_sup of the
controller are identical. In this case the outputs OUT, OUTD, MA_O and INFO remain unchanged.
NOTE: For a list of all block error codes and values, see Controller, page 354.
33002535 10/2014
187
PIDFF
Warning Message
In the following cases a warning message is given:
One of the kp, dband, gain _kp parameters outrate is negative. The function block
then uses the value 0 instead of the incorrect parameter value.
kd < 1 (with td <> 0): the function block uses the value 1 instead of the faulty value of kd.
The parameter ovs_att is outside the [0.1] range: for calculation, the function block uses the
value 0 or 1.
The parameter out_min or out_max is outside the range [out_inf, out_sup]. For
calculations, the function block uses the value out_inf or out_sup.
One of the parameters outbias, otff_inf or otff_sup is outside the range [(out_min
- out_max), (out_max - out_min)]. For calculation, the function block uses the value
(out_min - out_max) or (out_max - out_min).
188
33002535 10/2014
Unity Pro
SAMPLETM
33002535 10/2014
Chapter 18
SAMPLETM: Sample time
33002535 10/2014
189
SAMPLETM
Representation in LD
Representation:
Representation in IL
Representation:
CAL SAMPLETM_Instance (INTERVAL:=ScanTime,
DELSCAN:=NoOfDelayCycles, Q=>Enable)
Representation in ST
Representation:
SAMPLETM_Instance (INTERVAL:=ScanTime,
DELSCAN:=NoOfDelayCycles, Q=>Enable) ;
Parameter description
Description of input parameters:
Parameter
Data type
Description
INTERVAL
TIME
DELSCAN
INT
Data type
Description
BOOL
Runtime error
For a list of all block error codes and values, see Controller, page 354.
190
33002535 10/2014
Unity Pro
STEP2
33002535 10/2014
Chapter 19
STEP2: Two point controller
Page
Description
192
Detailed description
195
Runtime error
197
33002535 10/2014
191
STEP2
Description
Function description
This function block is suitable for simple two point controls.
Control of the actuator proceeds according to the direction of the actual/setpoint value deviation in
relation to the upper and lower threshold.
EN and ENO can be configured as additional parameters.
Properties
The control block has the following properties:
Upper and lower limiting of the setpoint value between pv_inf and pv_sup
The control input values (actual value, setpoint and associated parameters) are expressed in
physical units.
Representation in FBD
Representation:
192
33002535 10/2014
STEP2
Representation in LD
Representation:
Representation in IL
Representation:
CAL STEP2_Instance (PV:=ProcessValue, SP:=SetPoint,
MAN_AUTO:=OperatingMode, PARA:=Parameters,
OUT=>LogicOutput, DEV=>Deviation,
MA_O=>CurrentOperatingMode, STATUS=>StatusWord)
Representation in ST
Representation:
STEP2_Instance (PV:=ProcessValue, SP:=SetPoint,
MAN_AUTO:=OperatingMode, PARA:=Parameters,
OUT=>LogicOutput, DEV=>Deviation,
MA_O=>CurrentOperatingMode, STATUS=>StatusWord) ;
33002535 10/2014
193
STEP2
Data type
Meaning
PV
REAL
Process value
SP
REAL
Setpoint
MAN_AUTO
BOOL
PARA
Para_STEP2
Parameter
Data type
Meaning
OUT
BOOL
Logical output
DEV
REAL
Deviation ( PV -SP )
MA_O
BOOL
STATUS
WORD
Status word
194
Element
Data type
Meaning
dev_ll
REAL
dev_hl
REAL
pv_inf
REAL
pv_sup
REAL
33002535 10/2014
STEP2
Detailed description
Structure diagram
The following is a structure diagram of the STEP2 block:
If the deviation (DEV = PV - SP) is less than the lower threshold dev_ll, the configured output OUT
is set to 1. If however the deviation increases again, the output OUT is only set to zero if it exceeds
dev_hl.
NOTE: To ensure that the block functions without errors, the output OUT should not be inverted.
33002535 10/2014
195
STEP2
Operating mode
The STEP2 function block has 2 operating modes available according to the value of the
MAN_AUTO parameter :
196
Operating mode
MAN_AUTO
Meaning
Automatic
Halt
33002535 10/2014
STEP2
Runtime error
Status word
The following messages are displayed in the status word:
Bit
Value in
Dec.
Value in
Hex.
ENO Status
Description
Bit 0 = 1
0x0001
False
Bit 1 = 1
0x0002
False
Bit 2 = 1
0x0004
False
Bit 3 = 1
0x0008
False
Bit 4 = 1
16
0x0010
True
For the list of other possible floating point error codes, see Common Floating Point Errors,
page 359.
Error message
An runtime error appears if a non floating point value is recorded or if there is a problem with a
floating point calculation. The output OUT is then set to 0; the outputs DEV and MA_O remain
unmodified.
NOTE: For a list of all block error codes and values, see Controller, page 354.
Warning
A warning is given if dev_ll > 0 is dev_hl < is 0 In this case the function block uses the value 0.
33002535 10/2014
197
STEP2
198
33002535 10/2014
Unity Pro
STEP3
33002535 10/2014
Chapter 20
STEP3: Three point controller
Page
Description
200
Detailed description
203
Runtime error
205
33002535 10/2014
199
STEP3
Description
Function description
This function block is suitable for simple three-point step-action controls.
Control of the actuator proceeds according to the direction of the actual/setpoint value deviation in
relation to the upper and lower threshold value. The control of the threshold value describes a
configurable hysteresis.
This controller can also be used for temperature regulation. A traditional controller (such as a PI_B
controller), which a function block such as the PWM1 should be switched to is preferable for complex
regulation.
EN and ENO can be configured as additional parameters.
Properties
The control block has the following properties:
Limiting the setpoint between pv_inf and pv_sup
The control input values (actual value, setpoint, and corresponding parameters) are expressed
in physical units.
Representation in FBD
Representation:
200
33002535 10/2014
STEP3
Representation in LD
Representation:
Representation in IL
Representation:
CAL STEP3_Instance (PV:=ProcessValue, SP:=SetPoint,
MAN_AUTO:=OperatingMode, PARA:=Parameters,
OUT_NEG=>LogicOutputNegativ,
OUT_POS=>LogicOutputPositiv, DEV=>Deviation,
MA_O=>CurrentOperatingMode, STATUS=>StatusWord)
Representation in ST
Representation:
STEP3_Instance (PV:=ProcessValue, SP:=SetPoint,
MAN_AUTO:=OperatingMode, PARA:=Parameters,
OUT_NEG=>LogicOutputNegativ,
OUT_POS=>LogicOutputPositiv, DEV=>Deviation,
MA_O=>CurrentOperatingMode, STATUS=>StatusWord) ;
33002535 10/2014
201
STEP3
Data type
Meaning
PV
REAL
Process value
SP
REAL
Setpoint
MAN_AUTO
BOOL
PARA
Para_STEP3
Parameter
Data type
Meaning
OUT_NEG
BOOL
OUT_POS
BOOL
DEV
REAL
Deviation (PV-SP)
MA_O
BOOL
STATUS
WORD
Status word
202
Element
Data type
Meaning
dev_ll
REAL
dev_hl
REAL
hyst
REAL
Hysteresis
pv_inf
REAL
pv_sup
REAL
33002535 10/2014
STEP3
Detailed description
Structure diagram
The following is a structure diagram of the STEP3 block:
33002535 10/2014
203
STEP3
td Time span
If the deviation (DEV = PV - SP) climbs above dev_hl, the logical output OUT_POS is set to 1. If the
deviation is less, OUT_POS is then only set to zero if the deviation is less than dev_hl hyst.
If the deviation is less than dev_ll, the configured output OUT_NEG is set to 1. If the deviation
increases again, OUT_NEG is only set to zero if the deviation exceeds dev_ll + hyst.
NOTE: To ensure that the block functions without errors, the outputs OUT_NEG and OUT_POS
should not be inverted.
Operating mode
The STEP3 function block has 2 operating modes available according to the value of the
MAN_AUTO parameter:
204
Operating mode
MAN_AUTO
Meaning
Automatic
Halt
STEP3
Runtime error
Status word
The following messages are displayed in the status word:
Bit
Value
Value in
in Dec. Hex.
ENO Status
Description
Bit 0 = 1
0x0001
False
Bit 1 = 1
0x0002
False
Bit 2 = 1
0x0004
False
Bit 3 = 1
0x0008
False
Bit 4 = 1
16
0x0010
True
For the list of other possible floating point error codes, see Common Floating Point Errors,
page 359.
Error message
An runtime error appears if a non floating point value is recorded or if there is a problem with a
floating point calculation. In this case the outputs OUT_NEG and OUT_POS are set to 0; the DEV and
MA_O outputs remain unmodified.
NOTE: For a list of all block error codes and values, see Controller, page 354.
Warning
In the following cases a warning is given:
dev_ll > 0 or dev_hl < 0: the block uses the value 0.
hyst is outside the [0, Minimum (dev_hl, -dev_ll)] range: the block uses a limited value.
33002535 10/2014
205
STEP3
206
33002535 10/2014
Unity Pro
Mathematics
33002535 10/2014
Part IV
Mathematics
Mathematics
Overview
This section describes the elementary functions and elementary function blocks of the
Mathematics family.
What Is in This Part?
This part contains the following chapters:
Chapter
Chapter Name
Page
21
COMP_DB: Comparison
209
22
215
23
MULDIV_W: Multiplication/Division
219
24
SUM_W: Summer
223
33002535 10/2014
207
Mathematics
208
33002535 10/2014
Unity Pro
COMP_DB
33002535 10/2014
Chapter 21
COMP_DB: Comparison
COMP_DB: Comparison
Introduction
This chapter describes the COMP_DB block.
What Is in This Chapter?
This chapter contains the following topics:
Topic
Page
Description
210
Detailed description
213
33002535 10/2014
209
COMP_DB
Description
Function description
The COMP_DB function block enables two numerical values IN1 and IN2 to be compared.
Depending whether IN1 is greater than, equal to or less than IN2, the function blocks sets one of
the outputs GREATER, EQUAL or LESS to 1.
The function block takes any dead zone or hysteresis into account.
EN and ENO can be configured as additional parameters.
COMP_DB/COMP_DB_DFB
Creating new programs, always use the COMP_DB function block.
For technical reasons the COMP_DB_DFB may be implemented during converting legacy programs.
But the functionality of COMP_DB and COMP_DB_DFB is exactly the same.
Representation in FBD
Representation:
210
33002535 10/2014
COMP_DB
Representation in LD
Representation:
Representation in IL
Representation:
CAL COMP_DB (IN1=:InputValue1, IN2:=InputValue2,
DBAND=:DeadBand, HYST:=Hysteresis,
GREATER=>GreaterValueIndicator,
EQUAL=>EqualValueIndicator, LESS=>LessValueIndicator)
Representation in ST
Representation:
COMP_DB (IN1=:InputValue1, IN2:=InputValue2,
DBAND=:DeadBand, HYST:=Hysteresis,
GREATER=>GreaterValueIndicator,
EQUAL=>EqualValueIndicator,
LESS=>LessValueIndicator);
33002535 10/2014
211
COMP_DB
Parameter description
Description of input parameters:
Parameter
Data type
Description
IN1
REAL
Input No. 1
IN2
REAL
Input No. 2
DBAND
REAL
Dead zone
HYST
REAL
Hysteresis
Data type
Description
GREATER
BOOL
Greater-than marker
EQUAL
BOOL
Equals marker
LESS
BOOL
Less-than marker
Runtime error
An error is displayed in the Diagnostics display (View Diagnostics View) if a non floating point
value is determined at an input, or if a problem occurs when calculating a floating point value. In
this case the GREATER, EQUAL and LESS outputs remain unchanged.
NOTE: For a list of all block error codes and values, see Mathematics, page 355.
Warning
A warning is displayed in the Diagnostics display (View Diagnostics Display) if,
the DBAND parameter is negative: the procedure then uses the value DeadBand = 0 for
calculation.
The HYST parameter is outside the [0, DeadBand] range: the procedure then uses the closest
correct value for calculation, i.e. 0, if HYST is less than 0 and DBAND, if HYST is greater than
DBAND.
212
33002535 10/2014
COMP_DB
Detailed description
Dead zone
The DBAND parameter enables a dead zone to be specified, within which deviation between IN1
and Inputvalue2 will be regarded as zero. If the deviation IN1 - IN2 remains within this zone,
the EQUAL output is set to 1.
Dead zone specification
HYST
The HYST parameter enables a hysteresis effect to be generated, if the deviation between IN1 and
IN2 decreases: starting from a situation where the GREATER or LESS has the value 1, the EQUAL
output will only take the value 1 when the deviation IN1 - IN2 is less than DBAND - HYST
Generating a hysteresis effect
33002535 10/2014
213
COMP_DB
214
33002535 10/2014
Unity Pro
K_SQRT
33002535 10/2014
Chapter 22
K_SQRT: Square root
Condition
or
Representation in FBD
Representation:
33002535 10/2014
215
K_SQRT
Representation in LD
Representation:
Representation in IL
Representation:
LD DigitalVariable
K_SQRT WeightingCoefficient, Cutoff
ST OUT
Representation in ST
Representation:
Result := K_SQRT (DigitalVariable, WeightingCoefficient,
Cutoff);
Parameter description
Description of input parameters:
Parameter
Data type
Description
DigitalVariable
REAL
WeightingCoefficient
REAL
Weighting coefficient
Cutoff
REAL
Division
216
Parameter
Data type
Description
Result
REAL
33002535 10/2014
K_SQRT
Runtime error
An error is displayed if a non floating point value is recorded at input or if there is a problem with
floating point calculation. In this case the output Result remains unchanged.
NOTE: For a list of all block error codes and values, see Mathematics, page 355.
Warning
A warning is given if the Cutoff input is negative. The function block then uses the value 0 for
calculation.
33002535 10/2014
217
K_SQRT
218
33002535 10/2014
Unity Pro
MULDIV_W:
33002535 10/2014
Chapter 23
MULDIV_W: Multiplication/Division
MULDIV_W: Multiplication/Division
Description
Function description
The function MULDIV_W performs a weighted multiplication/division from 3 numerical input
variables.
EN and ENO can be configured as additional parameters.
Formula
The equation says:
Representation in FBD
Representation:
33002535 10/2014
219
MULDIV_W:
Representation in LD
Representation:
Representation in IL
Representation:
LD DigitalInput1
MULDIV_W DigitalInput2, DigitalInput3, Parameters
ST Result)
Representation in ST
Representation:
Result := MULDIV_W (DigitalInput1, DigitalInput2,
DigitalInput3, Parameters);
Parameter description MULDIV_W
Description of input parameters:
Parameter
Data type
Description
DigitalInput1 to
DigitalInput3
REAL
Parameters
Para_MULDIV_W
Parameter
220
Parameter
Data type
Description
Result
REAL
33002535 10/2014
MULDIV_W:
Data type
Description
k, c1 to c4
REAL
Calculation coefficients
Runtime error
This error will be signaled if a non floating point value is recorded or if there is a problem with a
floating point calculation. In general, the output Result keeps its previous value, apart from with
a division by 0, where the value corresponds to 1.#INF (infinite) depending on which sign the
counter uses.
NOTE: For a list of all the block error messages and values, see Common Floating Point Errors,
page 359.
33002535 10/2014
221
MULDIV_W:
222
33002535 10/2014
Unity Pro
SUM_W
33002535 10/2014
Chapter 24
SUM_W: Summer
SUM_W: Summer
Description
Function description
The function performs the weighted summation of 3 numerical input variables according to the
underlying formula.
EN and ENO can be configured as additional parameters.
Formula
The function SUM_W operates as follows:
Representation in FBD
Representation:
33002535 10/2014
223
SUM_W
Representation in LD
Representation:
Representation in IL
Representation:
LD InputValue1
SUM_W InputValue2, InputValue3, Parameters
ST Result
Representation in ST
Representation:
Result := SUM_W (InputValue1, InputValue2, InputValue3,
Parameters);
Parameter description SUM_W
Description of input parameters:
Parameter
Data type
Description
InputValue1 bis
InputValue3
REAL
Parameters
Para_SUM_W
Parameter
224
Parameter
Data type
Description
Result
REAL
33002535 10/2014
SUM_W
Data type
k1 to k3, c1 REAL
Description
Calculation coefficients
Runtime error
An runtime error appears if a non floating point value is recorded or if there is a problem with a
floating point calculation. The output Result will not be altered.
NOTE: For a list of all the block error messages and values, see Common Floating Point Errors,
page 359.
33002535 10/2014
225
SUM_W
226
33002535 10/2014
Unity Pro
Measurement
33002535 10/2014
Part V
Measurement
Measurement
Overview
This section describes the elementary functions and elementary function blocks of the
Measurement family.
What Is in This Part?
This part contains the following chapters:
Chapter
Chapter Name
Page
25
229
26
235
27
241
28
247
29
253
30
255
31
259
33002535 10/2014
227
Measurement
228
33002535 10/2014
Unity Pro
AVGMV
33002535 10/2014
Chapter 25
AVGMV: Moving average with fixed window size
Page
Description
230
Detailed description
233
33002535 10/2014
229
AVGMV
Description
Function description
The function block creates a moving average from a fixed number of input values (inputX). The
output is the average of all values between the current X value and the oldest X value (N-1). Up to
50 input values can be stored (N).
The function block has both a manual and automatic mode.
NOTE: This function block performs an internal initialization in the first program cycle after a warm
start or cold start (e.g. application download or power cycle) of the PLC program.
NOTE: Due to this, you have to make sure that the function block is invoked in the first program
cycle. In case of inkoving the function block in a later program cycle, the internal initialization will
not be performed and the ouputs may deliver wrong values.
WARNING
UNEXPECTED OUTPUT BEHAVIOUR
Make sure that the function block is always invoked in the first program cycle.
Failure to follow these instructions can result in death, serious injury, or equipment
damage.
EN and ENO can be configured as additional parameters.
Formula
For RDY = 1:
or
230
Variable
Description
Y(new)
Y (old)
X(N-1)
AVGMV
Representation in FBD
Representation:
Representation in LD
Representation:
Representation in IL
Representation:
CAL AVGMV_Instance (MAN:=Mode, X:=InputValue,
N:=WindowSize, YMAN:=ManualValue, Y=>Average,
RDY=>BufferReady)
Representation in ST
Representation:
AVGMV_Instance (MAN:=Mode, X:=InputValue,
N:=WindowSize, YMAN:=ManualValue, Y=>Average,
RDY=>BufferReady) ;
33002535 10/2014
231
AVGMV
Parameter description
Description of input parameters:
Parameter
Data type
Description
MAN
BOOL
REAL
Input
INT
YMAN
REAL
Manual value
Data type
Description
REAL
Average value
RDY
BOOL
Runtime error
An error message is returned if
N=0 or N>50
NOTE: For a list of all block error codes and values, see Measurement, page 356.
232
33002535 10/2014
AVGMV
Detailed description
Automatic operating mode
In N program cycles, N X values are read into an internal buffer. The arithmetic mean of these
values is calculated, and is delivered to the Y output. From the N+1 program cycle onwards, the
oldest X value in the buffer is deleted and replaced with the current X value.
NOTE: As long as RDY = 0, the mean is not derived from N values but from the current updated
read-in number (n < N).
After a modification of the N value or after a cold/warm start, the internal buffer is deleted. The
output is set to the input value X and RDY to "0". The buffer is filled during the next N cycles. The Y
output contains a mean of the values accumulated so far. RDY remains "0" until the buffer is filled
with correct X values after N program cycles then RDY becomes "1".
Manual operating mode
The value YMAN is transferred to the Y output. The buffer is completely filled with the value YMAN
and marked as full (RDY = 1).
Diagram
Floating mean with limited memory of N = 50 values
33002535 10/2014
233
AVGMV
234
33002535 10/2014
Unity Pro
AVGMV_K
33002535 10/2014
Chapter 26
AVGMV_K: Moving average with frozen correction factor
Page
Description
236
Detailed description
239
33002535 10/2014
235
AVGMV_K
Description
Function description
The function block creates a moving average value (with frozen correction factor) with up to 10,000
input values.
The function block has both a manual and automatic mode.
NOTE: This function block performs an internal initialization in the first program cycle after a warm
start or cold start (e.g. application download or power cycle) of the PLC program.
NOTE: Due to this, you have to make sure that the function block is invoked in the first program
cycle. In case of invoking the function block in a later program cycle, the internal initialization will
not be performed, the value Y(old) will not be sure and the output Y(new) may deliver a wrong
value.
WARNING
UNEXPECTED OUTPUT BEHAVIOUR
Make sure that the function block is always invoked in the first program cycle.
Failure to follow these instructions can result in death, serious injury, or equipment
damage.
EN and ENO can be configured as additional parameters.
Formula
Block formula:
236
Variable
Description
Y (new)
(old)
Correction factor
33002535 10/2014
AVGMV_K
Representation in FBD
Representation:
Representation in LD
Representation:
Representation in IL
Representation:
CAL AVGMV_K_Instance (MAN:=Mode, X:=InputValue,
K:=CorrectionFactor, YMAN:=ManualValue, Y=>Average)
Representation in ST
Representation:
AVGMV_K_Instance (MAN:=Mode, X:=InputValue,
K:=CorrectionFactor, YMAN:=ManualValue, Y=>Average) ;
33002535 10/2014
237
AVGMV_K
Parameter description
Description of input parameters:
Parameter
Data type
Description
MAN
BOOL
REAL
Input
INT
YMAN
REAL
Manual value
Data type
Description
REAL
Average value
Runtime error
For a list of all block error codes and values, see Measurement, page 356.
238
33002535 10/2014
AVGMV_K
Detailed description
Automatic operating mode
One X word is read per program cycle. 1/K is deducted from the Y value of the last program cycle,
and then 1/K of the current X value is added. The result is given at the Y output.
After a coldstart/warmstart, the value X is assigned to the Y output.
Manual operating mode
The value YMAN is transferred to the Y output.
Diagram
Moving average with frozen correction factor (K = 50)
33002535 10/2014
239
AVGMV_K
240
33002535 10/2014
Unity Pro
DEAD_ZONE
33002535 10/2014
Chapter 27
DEAD_ZONE, DEAD_ZONE_REAL: Dead zone
Page
Description
242
Detailed description
244
33002535 10/2014
241
DEAD_ZONE
Description
Function description
These functions are used to specify the dead zone for controlled variables.
EN and ENO can be configured as additional parameters.
Formula
Block formula:
Assuming: DZ 0
Y = GAIN x X for -DZ X DZ
Y = (X - DZ) + GAIN x DZ for X > DZ
Y = (X + DZ) - GAIN x DZ for X < -DZ
Appearance in FBD
Block Presentation DEAD_ZONE:
Appearance in LD
Block Presentation DEAD_ZONE:
242
33002535 10/2014
DEAD_ZONE
Appearance in IL
Block Presentation DEAD_ZONE:
LD Input
DEAD_ZONE HalfWidth, Gradient
ST Output
Appearance in ST
Block Presentation DEAD_ZONE:
Output := DEAD_ZONE (Input, HalfWidth, Gradient) ;
Parameter description
Description of input parameters:
Parameter
Data type
Description
REAL
Input variable
DZ
REAL
GAIN
REAL
Data type
Description
REAL
Output variable
Runtime error
For a list of all block error codes and values, see Measurement, page 356.
33002535 10/2014
243
DEAD_ZONE
Detailed description
Characteristic Curves
The function block has the following characteristic curve:
Dead zone with 0 < GAIN < 1
244
33002535 10/2014
DEAD_ZONE
33002535 10/2014
245
DEAD_ZONE
246
33002535 10/2014
Unity Pro
LOOKUP_TABLE1
33002535 10/2014
Chapter 28
LOOKUP_TABLE1: Polygon with interpolation of the 1st order
Page
Description
248
Detailed description
250
33002535 10/2014
247
LOOKUP_TABLE1
Description
Function description
This procedure linearizes characteristic curves using interpolation. The procedure works with
variable support point widths.
The number of X/Y_Coord_SupportPoint_n inputs can be increased from 2 to a maximum of
30 by vertically resizing the block frame. This corresponds to a maximum of 15 support points.
The number of inputs must be even.
The InputVariable values must be in ascending order.
EN and ENO can be configured as additional parameters. It is recommended to use the ENO output
parameter as an error indicator.
Representation in FBD
Representation:
Representation in LD
Representation:
248
33002535 10/2014
LOOKUP_TABLE1
Representation in IL
Representation:
LD InputVariable
LOOKUP_TABLE1 X_Coord_SupportPoint_1,
Y_Coord_SupportPoint_1, OutputVariable,
IndicatorX_GT_Xm, IndicatorX_LT_X1
Representation in ST
Representation:
LOOKUP_TABLE1 (InputVariable, X_Coord_SupportPoint_1,
Y_Coord_SupportPoint_1, OutputVariable,
IndicatorX_GT_Xm, IndicatorX_LT_X1);
Parameter description
Description of input parameters:
Parameter
Data type
Description
InputVariable
REAL
Input variable
X_Coord_SupportPoint_1
REAL
Y_Coord_SupportPoint_1
REAL
X_Coord_SupportPoint_1(n-1)
REAL
Y_Coord_SupportPoint_(n)
REAL
X coordinate
Y coordinate
Data type
Description
OutputVariable
REAL
Output variable
IndicatorX_GT_Xm
BOOL
Display: X > Xm
IndicatorX_LT_X1
BOOL
Indicate X < X1
Runtime error
NOTE: For a list of all block error codes and values, see Tables of Error Codes for the CONT_CLC
Library (see page 356).
33002535 10/2014
249
LOOKUP_TABLE1
Detailed description
Parameter description
Two inputs in sequence (XiYi) represent a support point pair. The first input XiYi corresponds to
X1, the nextY1, the nextX2 etc.
For any X input value falling between these support points, the corresponding Y output is linearly
interpolated.
For X < X 1 is Y = Y 1
For X > X m is Y = Y m
If the value at the X input exceeds the last support pointXm , the QXHI output becomes "1".
If the value at the X input is lower than the value of the first support point X1 , the QXLO output
becomes "1".
Principle of Interpolation
Polygon with interpolation of the 1st order
250
33002535 10/2014
LOOKUP_TABLE1
Interpolation
The following algorithm applies to the Y coordinate:
33002535 10/2014
251
LOOKUP_TABLE1
252
33002535 10/2014
Unity Pro
SAH
33002535 10/2014
Chapter 29
SAH: Detecting and holding a rising edge
Representation in FBD
Representation:
33002535 10/2014
253
SAH
Representation in LD
Representation:
Representation in IL
Representation:
CAL SAH_Instance (IN:=InputValue, CLK:=ClockInput,
PV:=PresetValue, OUT=>Output)
Representation in ST
Representation:
SAH_Instance (IN:=InputValue, CLK:=ClockInput,
PV:=PresetValue, OUT=>Output) ;
Parameter description
Input parameter description:
Parameter
Data type
Meaning
IN
ANY
Input value
CLK
BOOL
Clock input
PV
ANY
Presetpoint
254
Parameter
Data type
Meaning
OUT
ANY
Output value
33002535 10/2014
Unity Pro
HYST_***
33002535 10/2014
Chapter 30
HYST_***: Indicator signal for maximum value delimiters with hysteresis
Page
Description
256
Detailed description
258
33002535 10/2014
255
HYST_***
Description
Function description
The function block monitors the input variable X to detect whether it exceeds the upper limit.
NOTE: If you need to monitor the lower limit you can use the INDLIM_*** function block.
The data types for all input values must be the same.
EN and ENO can be configured as additional parameters.
Available functions
The following blocks are available:
HYST_DINT
HYST_INT
HYST_UDINT
HYST_UINT
HYST_REAL
Representation in FBD
Representation:
Representation in LD
Representation:
256
33002535 10/2014
HYST_***
Representation in IL
Representation:
CAL HYST_Instance (X:=Input, HIGH:=MaxHighLimit,
LOW:=MinHighLimit, IND=>Indicator)
Representation in ST
Representation:
HYST_Instance (X:=Input, HIGH:=MaxHighLimit,
LOW:=MinHighLimit, IND=>Indicator) ;
Parameter description
Input parameter description:
Parameter
Data type
Meaning
Input variable
HIGH
LOW
Data type
Meaning
IND
BOOL
33002535 10/2014
257
HYST_***
Detailed description
Parameter description
If X exceeds the upper limit HIGH, the function block reports this status with IND = 1.
If X exceeds the lower limit LOW, the function block reports this status with IND = 0.
Function
Function description
INDi = 1, if X > HIGH
INDi = 0, if X < LOW
otherwise
INDi = INDi-1
If LOW is greater than HIGH, no hysterisis is created and IND indicates that X is greater than HIGH.
Diagram
Maximum value delimiter with hysteresis
258
33002535 10/2014
Unity Pro
INDLIM_***
33002535 10/2014
Chapter 31
INDLIM_***: Indicator signal for delimiters with hysteresis
Page
Description
260
Detailed description
263
33002535 10/2014
259
INDLIM_***
Description
Function description
The function block monitors the input variable X to detect whether it exceeds the upper limit or falls
below the lower limit.
NOTE: If you only want to monitor the upper limit you can use the HYST_*** function block.
The data types for all input values must be the same.
EN and ENO can be configured as additional parameters.
Available functions
The following blocks are available:
INDLIM_DINT
INDLIM_INT
INDLIM_UDINT
INDLIM_UINT
INDLIM_REAL
Representation in FBD
Representation:
260
33002535 10/2014
INDLIM_***
Representation in LD
Representation:
Representation in IL
Representation:
CAL INDLIM_Instance (X:=Input, MX_HIGH:=MaxHighLimit,
MX_LOW:=MinHighLimit, MN_LOW:=MinLowLimit,
MN_HIGH:=MaxLowLimit, MX_IND=>ReachedHighLimit,
MN_IND=>ReachedLowLimit)
Representation in ST
Representation:
INDLIM_Instance (X:=Input, MX_HIGH:=MaxHighLimit,
MX_LOW:=MinHighLimit, MN_LOW:=MinLowLimit,
MN_HIGH:=MaxLowLimit, MX_IND=>ReachedHighLimit,
MN_IND=>ReachedLowLimit) ;
33002535 10/2014
261
INDLIM_***
Parameter description
Input parameter description:
Parameter
Data type
Meaning
Input variable
MX_HIGH
MX_LOW
MN_LOW
MN_HIGH
262
Parameter
Data type
Meaning
MX_IND
BOOL
MN_IND
BOOL
33002535 10/2014
INDLIM_***
Detailed description
Parameter description MX_IND
If X exceeds the value of MX_HIGH, the function block reports this status with MX_IND = 1.
If X falls below the value of MX_LOW, the function block reports this status with MX_IND = 0.
Formulas:
MX_INDi = 1, if X > MX_HIGH
MX_INDi = 0, if X < MX_LOW
otherwise
MX_INDi = MX_IND(i-1)
If MX_LOW is greater than MX_HIGH, no hysterisis is created and the function block reports this state
with MX_IND = 1.
Parameter description MN_IND
If X falls below the value of MN_HIGH, the function block reports this status with MN_IND = 1.
If X exceeds the value of MN_LOW, the function block reports this status with MN_IND = 0.
Formulas:
MN_INDi = 1, if X < MN_HIGH
MN_INDi = 0, if X > MN_LOW
otherwise
MN_INDi = MN_IND(i-1)
If MN_HIGH is greater than MN_LOW, no hysterisis is created and the function block reports this state
with MN_IND = 1.
33002535 10/2014
263
INDLIM_***
Diagram
Delimiter with hysteresis INDLIM
264
33002535 10/2014
Unity Pro
Output Processing
33002535 10/2014
Part VI
Output Processing
Output Processing
Overview
This section describes the elementary functions and elementary function blocks of the Output
Processing family.
What Is in This Part?
This part contains the following chapters:
Chapter
Chapter Name
Page
32
267
33
279
34
291
35
299
36
317
33002535 10/2014
265
Output Processing
266
33002535 10/2014
Unity Pro
MS
33002535 10/2014
Chapter 32
MS: Manual control of an output
Page
Description
268
Detailed description
272
Example
275
Runtime error
276
33002535 10/2014
267
MS
Description
Function description
This function block serves as the control of a numerical output, which can be switched off via the
function block PWM1 (see page 291) controlled analog output, server motor or controlling element.
The control can appear via server dialog or direct via the PLC software.
In general a control function block is used to control a digital output. The MS block should then be
used, if the control output should be uncoupled from the control of the analog output.
EN and ENO can be configured as additional parameters.
Application possibilities
The function block will mainly be used with the following applications:
For the control of an analog output, which is not controlled via a servo loop (open loop).
Servo loops, with which the control output and the user controlled output have inserted a
processing operation.
For scanning of the output controlled controller, if the scanning period exceeds 1 to 2 seconds.
For control of a server motor: the function block MS is in this case the controller block in order to
insert the server motor.
Representation in FBD
Representation:
268
33002535 10/2014
MS
Representation in LD
Representation:
Representation in IL
Representation:
CAL MS_Instance (IN:=Instruction, FORC:=OperatingModeFlag,
MA_FORC:=OperatingModeFORC_1,
MAN_AUTO:=OperatingModeFORC_0, PARA:=Parameters,
TR_I:=InitializationInput, TR_S:=InitializationType,
OUT:=AbsoluteOutput, OUTD=>IncrementalOutput,
MA_O=>CurrentBlockOperatingMode, STATUS=>StatusWord)
Representation in ST
Representation:
MS_Instance (IN:=Instruction, FORC:=OperatingModeFlag,
MA_FORC:=OperatingModeFORC_1,
MAN_AUTO:=OperatingModeFORC_0, PARA:=Parameters,
TR_I:=InitializationInput, TR_S:=InitializationType,
OUT:=AbsoluteOutput, OUTD=>IncrementalOutput,
MA_O=>CurrentBlockOperatingMode, STATUS=>StatusWord) ;
33002535 10/2014
269
MS
Parameter description MS
Input parameter description:
Parameter
Data type
Meaning
IN
REAL
FORC
BOOL
MA_FORC
BOOL
MAN_AUTO
BOOL
PARA
Para_MS
Parameter
TR_I
REAL
Initialization input
TR_S
BOOL
Initialization command
Data type
Meaning
OUT
REAL
Absolute output
270
Parameter
Data type
Meaning
OUTD
REAL
MA_O
BOOL
STATUS
WORD
Status word
33002535 10/2014
MS
Data type
Meaning
out_min
REAL
out_max
REAL
inc_rate
REAL
dec_rate
REAL
outbias
REAL
use_bias
BOOL
bumpless
BOOL
33002535 10/2014
271
MS
Detailed description
Structure diagram
The following diagram displays the structure of the function block:
The output MA_O always indicates the current operating mode of the function block.
272
33002535 10/2014
MS
33002535 10/2014
273
MS
The bumpless changeover can be annulled with the increasing ramp, when inc_rate is set to 0.
Just as with dec_rate = 0 the changeover is with decreasing ramp with bumps. In both cases the
input IN will travel immediately to output OUT when changed over to automatic mode.
When the parameter Outbias (use_bias = 1) is used, a bumpless manual/automatic changeover
can be achieved without change of the output, when the bumpless parameter is set to 1. In this
case the parameter Outbias will be newly calculated and the deviation between the input IN and
the output OUT will be considered.
Bumpless changeover with the parameter Outbias
The bumpless changeover manual/automatic is advisable when the input of the function block is
not connected to any controller or to a controller output without integral component.
274
33002535 10/2014
MS
Example
Example
In this example the output of the control block and the output controlled by the server will insert a
processing operation (through the DFB FCT).
In order to guarantee a bumpless changeover between the modes manual/automatic, the reversed
processing operation (R_FCT) will be assigned to the output of the MS function block and the result
led back to the control input RCPY, which remained in automatic mode (MAN_AUTO = 1).
Display of the function plans
33002535 10/2014
275
MS
Runtime error
Status word
The bits of the status words have the following meaning:
Bit
Value
in
Dec.
Value in
Hex.
ENO
Status
Description
Bit 0 = 1
0x0001
False
Bit 1 = 1
0x0002
False
Bit 2 = 1
0x0004
False
Bit 3 = 1
0x0008
False
Bit 4 = 1
16
0x0010
True
or
Bit 5 = 1
32
0x0020
True
Bit 6 = 1
64
0x0040
True
For the list of other possible floating point error codes, see Common Floating Point Errors,
page 359.
Note
NOTE: In manual mode these bits stay at 1 for only one program cycle. When the user enters a
value for OUT which exceeds one of the thresholds, the function block sets the Bit 5 or 6 to 1 and
blocks them from the user entered value. With the following execution of the function block the
value of OUT no longer lies outside the area and the Bits 5 and 6 are set to 0 again.
Error message
An error appears if a non floating point value is recorded or if there is a problem with a floating point
calculation. In this case the outputs OUT, OUTD and MA_O remain unchanged.
NOTE: For a list of all block error codes and values, see Output Processing, page 356.
276
33002535 10/2014
MS
Warning Message
In the following cases a warning message is given:
The parameter inc_rate is negative: in this case the function block uses the value 0 in place
of the faulty value from inc_rate.
The parameter dec_rate is negative: in this case the function block uses the value 0 in place
of the faulty value from dec_rate.
The parameter outbias lies outside the area [(out_min out_max), (out_max
out_min)]. In this case for calculating the value the function block uses (out_min out_max) or (out_max - out_min).
33002535 10/2014
277
MS
278
33002535 10/2014
Unity Pro
MS_DB
33002535 10/2014
Chapter 33
MS_DB: Manually controlling and output with dead zone
Page
Description
280
Detailed description
284
Runtime error
288
33002535 10/2014
279
MS_DB
Description
Function description
This function block is used to split a digital output. A common usage is duplicating a PID output to
an actuator.
A dead band can be applied to the deviation between the IN input and the positional copy.
The manual operating mode enables the control to operate with or without positional feedback (by
feeding the output to the input, no deviation will occur on changeover to auto; therefore the start
will be smooth).To switch smoothly from manual mode to auto mode in servo control, feed an
increasing or decreasing ramp to the setpoint input.
EN and ENO can be configured as additional parameters.
Application possibilities
The function block will mainly be used with the following applications:
For the control of an analog output, which is not controlled via a servo loop (open loop).
Servo loops, with which the control output and the user controlled output have inserted a
processing operation.
For scanning of the output controlled controller, if the scanning period exceeds 1 to 2 seconds.
For control of a server motor: the function block MS_DB is in this case the controller block in order
to insert the server motor.
Representation in FBD
Representation:
280
33002535 10/2014
MS_DB
Representation in LD
Representation:
Representation in IL
Representation:
CAL MS_Instance (IN:=Instruction, FORC:=OperatingModeFlag,
MA_FORC:=OperatingModeFORC_1,
MAN_AUTO:=OperatingModeFORC_0, PARA:=Parameters,
TR_I:=InitializationInput, TR_S:=InitializationType,
RCPY:= PositionalCopy,
OUT:=AbsoluteOutput, OUTD=>IncrementalOutput,
MA_O=>CurrentBlockOperatingMode, STATUS=>StatusWord)
33002535 10/2014
281
MS_DB
Representation in ST
Representation:
MS_Instance (IN:=Instruction, FORC:=OperatingModeFlag,
MA_FORC:=OperatingModeFORC_1,
MAN_AUTO:=OperatingModeFORC_0, PARA:=Parameters,
TR_I:=InitializationInput, TR_S:=InitializationType,
RCPY:= PositionalCopy,
OUT:=AbsoluteOutput, OUTD=>IncrementalOutput,
MA_O=>CurrentBlockOperatingMode, STATUS=>StatusWord) ;
Parameter description MS
Input parameter description:
Parameter
Data type
Meaning
IN
REAL
FORC
BOOL
MA_FORC
BOOL
MAN_AUTO
BOOL
PARA
Para_MS_DB
Parameter
TR_I
REAL
Initialization input
TR_S
BOOL
Initialization command
RCPY
REAL
Data type
Meaning
OUT
REAL
Absolute output
282
Parameter
Data type
Meaning
OUTD
REAL
MA_O
BOOL
STATUS
WORD
Status word
33002535 10/2014
MS_DB
Data type
Meaning
out_min
REAL
out_max
REAL
inc_rate
REAL
dec_rate
REAL
outbias
REAL
use_bias
BOOL
bumpless
BOOL
dead_band
REAL
en_rcpy
BOOL
33002535 10/2014
283
MS_DB
Detailed description
Structure diagram
The following diagram displays the structure of the function block:
The output MA_O always indicates the current operating mode of the function block.
284
33002535 10/2014
MS_DB
33002535 10/2014
285
MS_DB
The bumpless changeover can be annulled with the increasing ramp, when inc_rate is set to 0.
Just as with dec_rate = 0 the changeover is with decreasing ramp with bumps. In both cases the
input IN will travel immediately to output OUT when changed over to automatic mode.
When the parameter Outbias (use_bias = 1) is used, a bumpless manual/automatic changeover
can be achieved without change of the output, when the bumpless parameter is set to 1. In this
case the parameter Outbias will be newly calculated and the deviation between the input IN and
the output OUT will be considered.
Bumpless changeover with the parameter Outbias
The bumpless changeover manual/automatic is advisable when the input of the function block is
not connected to any controller or to a controller output without integral component.
Dead zone and Positional Feedback
The following characteristics apply:
With manual and positional feedback (en_rcpy=1)
The dead zone enables a comparison to be made between the OUT output that was calculated
by the MS_DB function, and the value of the positional feedback (RCPY). If the result of the
compare is less than the value of the dead zone (dead_band, the deviation of this actuator is
ignored.
With automatic and positional feedback (en_rcpy=1)
The dead zone enables a comparision between the input value and the positional feedback
value (RCPY). If the result of the compare is less than the value of the dead zone (dead_band,
the deviation of this actuator is ignored.
286
33002535 10/2014
MS_DB
33002535 10/2014
287
MS_DB
Runtime error
Status word (STATUS)
The bits of the status words have the following meaning:
Bit
Description
Bit 0 = 1
Bit 1 = 1
Bit 2 = 1
Bit 3 = 1
Bit 4 = 1
or
Bit 5 = 1
The output OUT has reached the lower threshold out_min (see Note)
Bit 6 = 1
The output OUT has reached the upper threshold out_max (see Note)
For the list of other possible floating point error codes, see Common Floating Point Errors,
page 359.
Note
NOTE: In manual mode these bits stay at 1 for only one program cycle. When the user enters a
value for OUT which exceeds one of the thresholds, the function block sets the Bit 5 or 6 to 1 and
blocks them from the user entered value. With the following execution of the function block the
value of OUT no longer lies outside the area and the Bits 5 and 6 are set to 0 again.
Error message
An error is signaled if a non floating value is detected at an input or if there is a problem with a
floating point calculation. In these cases the OUT, OUTD and MA_O outputs remain unchanged.
NOTE: For a list of all block error codes and values, see Output Processing, page 356.
288
33002535 10/2014
MS_DB
Warning Message
In the following cases a warning message is given:
The parameter inc_rate is negative: in this case the function block uses the value 0 in place
of the faulty value from inc_rate.
The parameter dec_rate is negative: in this case the function block uses the value 0 in place
of the faulty value from dec_rate.
The parameter outbias lies outside the area [(out_min out_max), (out_max
out_min)]. In this case for calculating the value the function block uses (out_min out_max) or (out_max - out_min).
33002535 10/2014
289
MS_DB
290
33002535 10/2014
Unity Pro
PWM1
33002535 10/2014
Chapter 34
PWM1: Pulse width modulation
Page
Description
292
Detailed description
295
297
33002535 10/2014
291
PWM1
Description
Using the block
Actuators are driven not only by analog quantities, but also through binary actuating signals.
The actuator adjusted average energy (actuator energy) should be in accord with the modulation
blocks analog input value (IN).
NOTE: This function block performs an internal initialization in the first program cycle after a warm
start or cold start (e.g. application download or power cycle) of the PLC program.
NOTE: Due to this, you have to make sure that the function block is invoked in the first program
cycle. In case of inkoving the function block in a later program cycle, the internal initialization will
not be performed and the ouputs may deliver wrong values.
DANGER
UNEXPECTED OUTPUT BEHAVIOUR
Make sure that the function block is always invoked in the first program cycle.
Failure to follow these instructions will result in death or serious injury.
Function description
The function block PWM1 converts analog values into digital output signals.
In pulse width modulation (QPWM), a 1-signal is emitted, at a constant clock rate, for a duration that
is a function of the analog value. The adjusted average energy corresponds to the quotient of the
switch on duration T_on and the cycle time t_period.
In order that the adjusted average energy also corresponds to the analog input variable IN, the
following must apply:
292
33002535 10/2014
PWM1
Formula
Condition
OUT_POS
OUT_NEG
Parametering rules
For correct operation when setting parameters the following rules should be observed:
t_min t_period
Representation in FBD
Representation:
Representation in LD
Representation:
33002535 10/2014
293
PWM1
Representation in IL
Representation:
CAL PWM1_Instance (IN:=InputVariable, RST:=ResetMode,
PARA:=Parameters, OUT_NEG=>OutputNegative_IN_Values,
OUT_POS=>OutputPositive_IN_Values)
Representation in ST
Representation:
PWM1_Instance (IN:=InputVariable, RST:=ResetMode,
PARA:=Parameters, OUT_NEG=>OutputNegative_IN_Values,
OUT_POS=>OutputPositive_IN_Values) ;
PWM1 parameter description
Description of input parameters:
Parameter
Data type
Description
IN
REAL
Input variable
RST
BOOL
PARA
Para_PWM1
Parameter
Data type
Description
OUT_NEG
BOOL
OUT_POS
BOOL
Data type
Description
t_period
TIME
Length of period
t_min
TIME
in_max
REAL
Runtime error
NOTE: For a list of all block error codes and values, see Output Processing, page 356.
294
33002535 10/2014
PWM1
Detailed description
Block mode of operation
The period duration determines the time during which the actuating pulses (1-signals at the output
OUT_POS or OUT_NEG) are output at regular intervals, i.e. within a constant time pattern.
The parameter t_min specifies the minimum pulse length, i.e. the time span in which the output
OUT_POS or OUT_NEG should carry a "1" signal. If the length of the pulse calculated according to
the equation in section Pulse length formulas for OUT_POS and OUT_NEG, page 293 are smaller
than t_min, no pulse will be given for the entire period.
Time ratios display
An overview of the ratios between times is shown in the following diagram:
The parameter in_max marks the point of the input variable IN, for which the output OUT_POS
would continuously carry "1" if the IN input variable is positive.
33002535 10/2014
295
PWM1
Time-span dependency
The dependency of the time duration in which the output OUT_POS (OUT_NEG) carries a 1-Signal,
on the input variable IN is illustrated in the following diagram:
Operating mode
In reset mode RST = 1, the outputs OUT_POS and OUT_NEG are set to "0". The internal time
counters are standardized as well so that the function block begins its transition to RST=0 with the
output of a new 1-signal on the associated output.
Boundary conditions
If the PWM1 block is operated together with a PID controller, then the period t_period should be
so selected, that it corresponds to the PID controllers scan time. It is then guaranteed that every
new actuating signal from the PID controller within the period time can be fully processed.
The PWM1 scan time should be selected according to how the pulse time compares to the period
length. Though this, the smallest possible actuating pulse is be determined.
The following ratio is recommended:
296
33002535 10/2014
PWM1
Specification
t_period
4s
t_min
0.5 s
in_max
10
IN Analog signal
It can be seen that pulses are no longer output for very small IN input signals. This is directly
attributable to the effect of time t_min. A continuous pulse is output for large IN (IN = in_max)
signals.
33002535 10/2014
297
PWM1
298
33002535 10/2014
Unity Pro
SERVO
33002535 10/2014
Chapter 35
SERVO: Control for servo motors
Page
Description
300
Parametering
304
306
Operating mode
307
308
Runtime error
316
33002535 10/2014
299
SERVO
Description
Function description
This function block enables PID control of servo motors with or without positional feedback. The
function block can be switched to be the controller (PIDFF, PI_B) so that the digital outputs
become the two logical outputs RAISE and LOWER.
If the function block uses positional feedback, then positioning controlling of the actuator will be
performed. If positional feedback is not being used, the controller and the SERVO function block
operate a continuous static control together.
EN and ENO can be configured as additional parameters.
Representation in FBD
Representation:
300
33002535 10/2014
SERVO
Representation in LD
Representation:
Representation in IL
Representation:
CAL SERVO_Instance (SEN:=New_INPD_Or_IN_ValueFlag,
IN:=ControllerOutputOUT, INPD:=VariationOf_IN,
MA_I:=OperatingMode, RCPY:=PositionalCopy,
RST:=BlockReinitialization,
R_STOP:=ReachedEndstopOfRAISE,
L_STOP:=ReachedEndstopOfLOWER, PARA:=Parameters,
RAISE=>TravelDirectionOfRAISE,
LOWER=>TravelDirectionOfLOWER, STATUS=>StatusWord)
33002535 10/2014
301
SERVO
Representation in ST
Representation:
SERVO_Instance (SEN:=New_INPD_Or_IN_ValueFlag,
IN:=ControllerOutputOUT, INPD:=VariationOf_IN,
MA_I:=OperatingMode, RCPY:=PositionalCopy,
RST:=BlockReinitialization,
R_STOP:=ReachedEndstopOfRAISE,
L_STOP:=ReachedEndstopOfLOWER, PARA:=Parameters,
RAISE=>TravelDirectionOfRAISE,
LOWER=>TravelDirectionOfLOWER, STATUS=>StatusWord) ;
Parameter description SERVO
Input parameter description:
Parameter
Data type
Meaning
SEN
BOOL
IN
REAL
INPD
REAL
MA_I
BOOL
RCPY
REAL
RST
BOOL
R_STOP
BOOL
L_STOP
BOOL
PARA
Para_SERVO
Parameter
302
Parameter
Data type
Meaning
RAISE
BOOL
LOWER
BOOL
STATUS
WORD
Status word
33002535 10/2014
SERVO
Data type
Meaning
en_rcpy
BOOL
rcpy_rev
BOOL
t_motor
TIME
t_mini
TIME
33002535 10/2014
303
SERVO
Parametering
Parametering overview
The following function block modes are explained in sequence:
With positional feedback (en_rcpy = 1), page 304
Without positional feedback (en_rcpy = 0), page 304
Actuator opening time (t_motor), page 304
Minimum impulse length (t_mini), page 304
Sweep / parameter SEN, page 305
Recording the end position, page 305
304
33002535 10/2014
SERVO
Meaning
If the controller samples using the function block SAMPLETM, as is the usual case, it suffices to
attach the SERVO blocks SEN input to the SAMPLETM output (see section "Examples of function
block SERVO, page 308").
Recording the end position
If an end position is gathered (R_STOP = 1 or L_STOP = 1), the corresponding output (RAISE or
LOWER) is forced to 0.
33002535 10/2014
305
SERVO
The following still applies for T_IMP (the length of the pulse sent to the output):
If
Then
the block does not generate a pulse, but stores the value for the next
calculation. This allows correct processing of control applications in
which the controllers output modifications are weak but continuous.
To ensure that pulses which are too short are not generated, the
pulses to be sent to the output are limited to a minimum length
t_mini.
the PID controller is in T_IMP is calculated continuously at every cycle. The calculation
manual mode,
takes into consideration the time periods with a limit of t_motor
which have previously been calculated, but not yet assigned. In this
way any PID controller output modification can be considered even
if the pulse lasts several cycles.
the PID controller is in the function block SERVO always recalculates the parameter T_IMP
automatic mode,
if the controller updates its output, i.e. whenever SEN is set to 1. In
this operating mode the previously calculated time periods are no
longer considered.
306
33002535 10/2014
SERVO
Operating mode
Operating mode adjustment
The input MA_I allows the SERVO function block to adjust to the controllers operating mode. To do
this it must be attached to the output MA_O of the controller or the corresponding MS function block.
Automatic operating mode
The function block SERVO only rereads the control output if this has been updated (i.e. whenever
SEN is set to 1).
Manual mode
The user can modify the control output here at any time. In order that a new value can be included
as soon as possible, the function block reads the control output at every cycle.
In this operating mode the user can manually modify variables connected to the OUT output of a
controller or a MS block. If no positional feedback is used this variable can adopt the end position
(100% or 0%) even if the actuator has not reached either of its end positions. It is still possible to
modify the output modification OUTD manually by setting the output OUT of the function block MS to
more than 100% (or to less than 0%). The value inputted for OUT is used for the calculation of OUTD
before it is limited again.
33002535 10/2014
307
SERVO
308
Parameter
Specification
t_motor
25 s
t_mini
1s
sampling period
4s
33002535 10/2014
SERVO
33002535 10/2014
309
SERVO
310
Position No.
Explanation
The variance is still only 10%, a pulse of 2.5 s (= 10% of 25 s) was generated
at the RAISE output; the second left over from the previous pulse is not taken
into account.
The variance is still -2%, but the corresponding pulse (0.5 s) is added to the
previously stored pulse to make 1 s. The length corresponds to t_mini, so
the pulse is locked onto the LOWER output.
33002535 10/2014
SERVO
33002535 10/2014
311
SERVO
312
Specification
t_motor
25 s
t_mini
1s
33002535 10/2014
SERVO
The modification of the PID control output is +20%, in this case the pulse affects the RAISE
output and lasts 5 s (= 20% of 25 s).
The modification of the PID controller is +2% which corresponds to a pulse duration of 0.5 s.
The pulse is less than t_mini (=1 s.) so it does not influence the outputs.
At the second modification of +2 %, the function adds this modification to the previous one
(which corresponds to a variance which was below the minimum value), which corresponds
to a positive total modification of +4 %, i.e. a pulse of 1 s at the RAISE output.
Before the end of the following second a further modification of + 22 % leads to a total
system modification of 2 %< modification of t_mini (4 %). The function ends with the
minimum pulse of 1 s.
33002535 10/2014
313
SERVO
314
33002535 10/2014
SERVO
TC2_DEFF Error output of the process value TC2: If TC2 is faulty, the servoloop is forced into manual mode.
33002535 10/2014
315
SERVO
Runtime error
Status word
The following messages are displayed in the Status word:
Bit
Value in Value in
Dec.
Hex.
ENO Status
Description
Bit 0 = 1
0x0001
False
Bit 1 = 1
0x0002
False
Bit 2 = 1
0x0004
False
Bit 3 = 1
0x0008
False
Bit 4 = 1
16
0x0010
True
For the list of other possible floating point error codes, see Common Floating Point Errors,
page 359.
Error message
An error appears if a non floating point value is recorded or if there is a problem with a floating point
calculation. In this case the outputs RAISE and LOWER are set to zero.
NOTE: For a list of all block error codes and values, see Output Processing, page 356.
316
33002535 10/2014
Unity Pro
SPLRG
33002535 10/2014
Chapter 36
SPLRG: Controlling 2 actuators
Page
Description
318
Detailed description
320
Runtime error
322
33002535 10/2014
317
SPLRG
Description
Function description
This function block should be used when two actuators are in use to enable coverage of the whole
area (when two operating points are far apart: one below and one above).
The controller is also suitable for three-point step action controls, i.e. for cases where the two
actuators work in opposition (one heats, the other cools).
EN and ENO can be configured as additional parameters.
Properties
The function block SPLRG has the following properties:
The possibility of controlling a dead zone or a transition zone where the properties of both
actuators are in line
The IN input is expressed as a percentage (0-100%) and the outputs OUT1 and OUT2 are
expressed in physical units.
Representation in FBD
Representation:
Representation in LD
Representation:
318
33002535 10/2014
SPLRG
Representation in IL
Representation:
CAL SPLRG_Instance (IN:=ValueToBeBrokenDown,
PARA:=Parameters, OUT1=>InstructionByActuator1,
OUT2=>InstructionByActuator2, STATUS=>StatusWord)
Representation in ST
Representation:
SPLRG_Instance (IN:=ValueToBeBrokenDown,
PARA:=Parameters, OUT1=>InstructionByActuator1,
OUT2=>InstructionByActuator2, STATUS=>StatusWord) ;
Parameter description SPLRG
Input parameter description:
Parameter
Data type
Meaning
IN
REAL
PARA
Para_SPLRG
Parameter
Data type
Meaning
OUT1
REAL
OUT2
REAL
STATUS
WORD
Status word
Data type
Meaning
out1_th1
REAL
Input value IN, for which the following applies: OUT1 = out1_inf
out1_th2
REAL
Input value IN, for which the following applies: OUT1 = out1_sup
out1_inf
REAL
out1_sup
REAL
out2_th1
REAL
Input value IN, for which the following applies: OUT2 = out2 _inf
out2_th2
REAL
Input value IN, for which the following applies: OUT2 = out2_sup
out2_inf
REAL
out2_sup
REAL
33002535 10/2014
319
SPLRG
Detailed description
Parametering
Parametering the function block consists of defining the properties of each actuator, i.e. in the kind
of gradient modification of both control outputs in relation to the input IN.
The following points should be defined for the output OUT1:
Element
Meaning
out1_inf
out1_sup
out1_th1
Threshold value, i.e the input value IN, for which the following applies:
Output OUT1 = out1_inf
out1_th2
Threshold value, i.e the input value IN, for which the following applies:
Output OUT1 = out1_sup
The modification of the value of OUT1 is linear for both threshold values. With the exception of the
two threshold values, no further output modification can occur; it is limited to out1_inf or
out1_sup.
Depending on the adjustment of the two threshold values, the control properties are designated by
a positive increase (for out1_th1 < out1_th2) or a negative increase (for out1_th2 <
out1_th1).
The following diagrams show the properties of the two actuators with Split range and Three-point
step-action control.
Three step step-control
The following shows the properties of the two actuators in three-point step-control
320
33002535 10/2014
SPLRG
NOTE: The outputs of this controller cannot be used to control a SERVO function block without
positional feedback.
Operating mode
The SPLRG function block is not assigned to any specific operating mode. However both function
block outputs may be controlled manually because an MS is locked on to each output. During
programming the user should ensure a bumpless return to automatic mode.
33002535 10/2014
321
SPLRG
Runtime error
Status word
The following messages are displayed in the Status word:
Bit
Value
Value in
in Dec. Hex.
ENO Status
Description
Bit 0 = 1
0x0001
False
Bit 1 = 1
0x0002
False
Bit 2 = 1
0x0004
False
Bit 3 = 1
0x0008
False
Bit 4 = 1
16
0x0010
True
Bit 5 = 1
32
0x0020
True
Bit 6 = 1
64
0x0040
True
Bit 7 = 1
128
0x0080
False
Bit 8 = 1
256
0x0100
True
Bit 9 = 1
516
0x0200
True
For the list of other possible floating point error codes, see Common Floating Point Errors,
page 359.
322
33002535 10/2014
SPLRG
Error message
A runtime error appears in the following cases:
A non-floating value is on an input
A problem has occurred during a floating point value calculation.
Both the thresholds of the same output are identical: out1_th1 = out1_th2 or out2_th1 =
out2_th2
33002535 10/2014
323
SPLRG
324
33002535 10/2014
Unity Pro
Setpoint management
33002535 10/2014
Part VII
Setpoint management
Setpoint management
Overview
This section describes the elementary functions and elementary function blocks of the Setpoint
management family.
What Is in This Part?
This part contains the following chapters:
Chapter
Chapter Name
Page
37
327
38
333
39
341
33002535 10/2014
325
Setpoint management
326
33002535 10/2014
Unity Pro
RAMP
33002535 10/2014
Chapter 37
RAMP: Ramp generator
Page
Description
328
Detailed description
330
Runtime error
332
33002535 10/2014
327
RAMP
Description
Function description
The function block RAMP makes it possible to move in ramp form from an initial setpoint value to a
particular target value. The gradients of positive and negative ramps can vary.
A signal (DONE output) indicates the user, whether a target value has already been reached or if
the ramp had been implemented.
EN and ENO can be configured as additional parameters.
Representation in FBD
Representation:
Representation in LD
Representation:
328
33002535 10/2014
RAMP
Representation in IL
Representation:
CAL RAMP_Instance (RSP:=RampTargetValue, PARA:=Parameters,
TR_I:=InitialRampValue, TR_S:=RampInitializationOrder,
SP=>Output, DONE=>ProgressFlag, STATUS=>StatusWord)
Representation in ST
Representation:
RAMP_Instance (RSP:=RampTargetValue, PARA:=Parameters,
TR_I:=InitialRampValue, TR_S:=RampInitializationOrder,
SP=>Output, DONE=>ProgressFlag, STATUS=>StatusWord) ;
Parameter description RAMP
Input parameter description:
Parameter
Data type
Meaning
RSP
REAL
PARA
Para_RAMP
Parameter
TR_I
REAL
TR_S
BOOL
Data type
Meaning
SP
REAL
Output
DONE
BOOL
STATUS
WORD
Status word
Data type
Meaning
inc_rate
REAL
dec_rate
REAL
33002535 10/2014
329
RAMP
Detailed description
Parametering
If the value given on input (RSP) exceeds the current value of the SP_output, the function block
increases the value of the output with the velocity inc_rate by as much as is necessary for the
SP value to reach the RSP value. If the inc_rate is zero, the ramp function will not be executed
and the SP is identical to the RSP.
If the value given at an input falls below the current value of SP, the function block lowers the value
of SP with the velocity dec_rate. If the dec_rate is zero, the ramp function will not be executed
and the SP is identical to the RSP.
If the value of RSP changes whilst the ramp is being generated, the function block immediately
attempts to reach this new target value. The ramp function, which is running simultaneously, either
continues or changes its direction.
Operating mode
The tracking operation (TR_S = 1) allows for an initial value to be assigned to the SP output. They
are as follows:
Step
Action
When TR_S is set to 1, the TR_I input will continue to be executed at SP.
Note: In the tracking mode (TR_S = 1) the DONE output remains permanently at zero.
If TR_S is set to 0, the function block resumes normal operation: The SP constantly
approaches the RSP, where the value describes a ramp.
DONE display
The DONE output goes above 1, if a ramp function has just been completed. It will be reset to zero,
when a new ramp begins or when the function block is switched to tracking mode.
330
33002535 10/2014
RAMP
Timing diagram
Timing diagram for RAMP block
1
2
3
Initialization: SP = TR_I
Increasing ramp = inc_rate
Decreasing ramp = dec_rate
33002535 10/2014
331
RAMP
Runtime error
Status word
The following messages are displayed in the Status word:
Bit
Value in Value in
Dec.
Hex.
ENO Status
Description
Bit 0 = 1
0x0001
False
Bit 1 = 1
0x0002
False
Bit 2 = 1
0x0004
False
Bit 3 = 1
0x0008
False
Bit 4 = 1
16
0x0010
True
For the list of other possible floating point error codes, see Common Floating Point Errors,
page 359.
Error message
An error is signaled if a non floating value is recorded or if there is a problem with a floating point
calculation. In this case the outputs SP and DONE remain unchanged.
NOTE: For a list of all block error codes and values, see Setpoint Management, page 357.
Warning
A warning appears in the following cases:
The parameter inc_rate is negative: the function block uses the value 0 instead of the faulty
value of inc_rate.
The parameter dec_rate is negative: the function block uses the value 0 instead of the faulty
value of dec_rate.
332
33002535 10/2014
Unity Pro
RATIO
33002535 10/2014
Chapter 38
RATIO: Ratio controller
Page
Description
334
Detailed description
337
Runtime error
339
33002535 10/2014
333
RATIO
Description
Function description
The function block RATIO carries out ratio control when it is attached to a controller.
The aim of ratio control is to establish a ratio of one process variable PV (controlled variable) to
another PV_TRACK (reference variable). The role of the RATIO function block is to calculate the
Control setpoint corresponding to the control variable.
EN and ENO can be configured as additional parameters.
Properties
The function block contains the following properties:
The ratio can be controlled remotely (K) or (RK)
Upper and lower threshold for K or RK
Upper and lower threshold for the calculated Setpoint SP
Calculation of the real ratio: KACT = (PV - bias) / PV_TRACK
Formula
Calculation of the control setpoint
Representation in FBD
Representation:
334
33002535 10/2014
RATIO
Representation in LD
Representation:
Representation in IL
Representation:
CAL RATIO_Instance (PV:=ProcessVariable,
PV_TRACK:=ControllingProcessVariable,
RK:=ExternalRatioCoefficient,
K_RK:=CoefficientTypeFlag, K:=InternalRatioCoefficient,
PARA:=Parameters, KACT=>RealRatioCoefficient,
SP=>CalculatedOutput, STATUS=>StatusWord)
Representation in ST
Representation:
RATIO_Instance (PV:=ProcessVariable,
PV_TRACK:=ControllingProcessVariable,
RK:=ExternalRatioCoefficient,
K_RK:=CoefficientTypeFlag, K:=InternalRatioCoefficient,
PARA:=Parameters, KACT=>RealRatioCoefficient,
SP=>CalculatedOutput, STATUS=>StatusWord) ;
33002535 10/2014
335
RATIO
Data type
Meaning
PV
REAL
PV_TRACK
REAL
RK
REAL
K_RK
BOOL
REAL
PARA
Para_RATIO
Parameter
Data type
Meaning
KACT
REAL
SP
REAL
Calculated output
STATUS
WORD
Status word
336
Element
Data type
Meaning
k_min
REAL
k_max
REAL
sp_min
REAL
sp_max
REAL
bias
REAL
Offset coefficient
33002535 10/2014
RATIO
Detailed description
Structure diagram
Structure diagram of the RATIO
Application
The RATIO function block is upstream of a ratio controller. Its function is to calculate the remote
setpoint SP of one of the controllers upgraded subsequently. The ratio controller must consist of
the function blocks RATIO, SP_SEL and a controller.
Generally, this type of controller is used to regulate a flow in relation to another measured flow; it
observes a specific ratio K between the two flow amounts.
33002535 10/2014
337
RATIO
338
33002535 10/2014
RATIO
Runtime error
Status word
The following messages are displayed in the Status word:
Bit
Value in
Dec.
Value in
Hex.
ENO Status
Description
Bit 0 = 1
0x0001
False
Bit 1 = 1
0x0002
False
Bit 2 = 1
0x0004
False
Bit 3 = 1
0x0008
False
Bit 4 = 1
16
0x0010
True
Bit 5 = 1
32
0x0020
True
Bit 6 = 1
64
0x0040
True
For the list of other possible floating point error codes, see Common Floating Point Errors,
page 359.
Error message
The error appears if a non floating value is recorded or if there is a problem with a floating point
calculation. The outputs KACT and SP remain unmodified.
33002535 10/2014
339
RATIO
340
33002535 10/2014
Unity Pro
SP_SEL
33002535 10/2014
Chapter 39
SP_SEL: Setpoint switch
Page
Description
342
Detailed description
345
Runtime error
348
33002535 10/2014
341
SP_SEL
Description
Function description
This function block allows the selection of setpoint value types used in the servoloop:
Setpoint value type
Explanation
Remote setpoint
(SP_RSP = 1)
The Setpoint comes from a block external calculation using the input
RSP (remote setpoint). The input value RSP leads to the SP output.
Local setpoint
(SP_RSP = 0)
Representation in FBD
Representation:
342
33002535 10/2014
SP_SEL
Representation in LD
Representation:
Representation in IL
Representation:
CAL SP_SEL_Instance (RSP:=RemoteSetPoint,
SP_RSP:=TypeOfSetPoint, PARA:=Parameters,
PV:=ControlledVariable, MA_I:=OperatingMode,
SP:=SetPoint, LSP_MEM=>LocalSetPointMemory,
STATUS=>StatusWord)
Representation in ST
Representation:
SP_SEL_Instance (RSP:=RemoteSetPoint,
SP_RSP:=TypeOfSetPoint, PARA:=Parameters,
PV:=ControlledVariable, MA_I:=OperatingMode,
SP:=SetPoint, LSP_MEM=>LocalSetPointMemory,
STATUS=>StatusWord) ;
33002535 10/2014
343
SP_SEL
Data type
Meaning
RSP
REAL
Remote setpoint
SP_RSP
BOOL
PARA
Para_SP_SEL
Parameter
PV
REAL
Variables to be controlled
MA_I
BOOL
Data type
Meaning
SP
REAL
Data type
Meaning
LSP_MEM
REAL
STATUS
WORD
Status word
344
Element
Data type
Meaning
sp_min
REAL
sp_max
REAL
bump
BOOL
track
BOOL
rate
REAL
33002535 10/2014
SP_SEL
Detailed description
Switching the setpoint
The setpoint can be switched in two directions
If
Then
SP_RSP from 0 1
SP_RSP from 1 0
SP_RSP from 0 1
The changeover from local setpoint to remote setpoint is bumpless: the value of the SP output is
increasingly adjusted to correspond to the remote setpoint RSP, and it describes the ramp rate.
If rate rate = 0, there is no ramp and the SP is identical to the RSP.
SP_RSP from 0 0
The changeover from remote setpoint to local setpoint depends on the bump element in two ways:
If
Then
bump = 0
the changeover is bumpless: The function block stops copying the RSP input to
the SP output. The local setpoint value SP then corresponds to the last remote
setpoint value RSP that was present before the changeover. The user can then
modify this. In this case it is not necessary to attach the LSP_MEM output.
bump = 1
the value of the LSP_MEM output is moved to the SP output during changeover
(bumps can occur here). The value given for LSP_MEM corresponds to the last
setpoint value SP before the function block transfers to remote mode. To restart
the local mode with a different setpoint, it is sufficient to modify LSP_MEM as long
as the block remains in remote mode (for further details see "Function of the
output LSP_MEM, page 346").
345
SP_SEL
Local setpoint
Changeover to remote The value of LSP_MEM is no longer modified by the function block
setpoints
and therefore retains the value of the last local setpoint used.
Reverting to the local
setpoint
346
33002535 10/2014
SP_SEL
Example of programming
An example of how to program the SP_SEL function block follows.
33002535 10/2014
347
SP_SEL
Runtime error
Status word
The following messages are displayed in the Status word:
Bit
Value
Value in
in Dec. Hex.
ENO Status
Description
Bit 0 = 1
0x0001
False
Bit 1 = 1
0x0002
False
Bit 2 = 1
0x0004
False
Bit 3 = 1
0x0008
False
Bit 4 = 1
16
0x0010
True
Bit 5 = 1
32
0x0020
True
Bit 6 = 1
64
0x0040
True
For the list of other possible floating point error codes, see Common Floating Point Errors,
page 359.
Error message
An runtime error appears if a non floating point value is recorded or if there is a problem with a
floating point calculation. The outputs SP and LSP_MEM remain unmodified.
NOTE: For a list of all block error codes and values, see Setpoint Management, page 357.
Warning
A warning is giving if rate is negative; the block then uses the value 0 for calculation.
348
33002535 10/2014
Unity Pro
33002535 10/2014
Appendices
Overview
This section contains the appendicies.
What Is in This Appendix?
The appendix contains the following chapters:
Chapter
33002535 10/2014
Chapter Name
Page
351
System Objects
361
349
350
33002535 10/2014
Unity Pro
EFB Error Codes and Values
33002535 10/2014
Appendix A
EFB Error Codes and Values
Page
352
359
33002535 10/2014
351
352
EFB name
Error code
ENO
state
in
case
of
error
Error
value
in Dec
Error
value in
Hex
Error description
DTIME
W_WARN_OUT_OF_
RANGE
30110
16#759E
DTIME
FP_ERROR
DTIME
T/F
INTEGRATOR E_ERR_DEN
-30152
16#8A38
INTEGRATOR E_ERR_IB_MAX_MIN
-30102
16#8A6A
INTEGRATOR FP_ERROR
LAG_FILTER
E_ERR_DEN
-30152
16#8A38
LAG_FILTER
FP_ERROR
LDLG
E_ERR_DEN
-30152
16#8A38
LDLG
FP_ERROR
LEAD
E_ERR_DEN
-30152
16#8A38
LEAD
FP_ERROR
MFLOW
W_WARN_OUT_OF_
RANGE
30110
16#759E
MFLOW
FP_ERROR
33002535 10/2014
EFB name
Error code
ENO
state
in
case
of
error
Error
value
in Dec
Error
value in
Hex
Error description
MFLOW
T/F
QDTIME
E_ERR_DEN
-30152
16#8A38
SCALING
E_ERR_NULL_INPUT_
SCALE
-30121
16#8A57
SCALING
FP_ERROR
SCALING
T/F
TOTALIZER
W_WARN_OUT_OF_
RANGE
30110
16#759E
TOTALIZER
FP_ERROR
TOTALIZER
W_WARN_TOTALIZER_ T
CTER_MAX
30113
16#75A1
TOTALIZER
T/F
VEL_LIM
E_ERR_DEN
-30152
16#8A38
VEL_LIM
E_ERR_AB1_MAX_MIN
-30101
16#8A6B
VEL_LIM
FP_ERROR
33002535 10/2014
353
Controller
Table of error codes and errors values created for EFBs of the Controller family.
EFB name
Error code
ENO
Error
state in value
case of in Dec
error
AUTOTUNE
W_WARN_OUT_OF_RANGE
30110
AUTOTUNE
E_ERR_NULL_INPUT_SCALE
-30121
16#8A57
AUTOTUNE
W_WARN_AUTOTUNE_FAILED
30111
AUTOTUNE
FP_ERROR
AUTOTUNE
E_ERR_AUTOTUNE_ID_UNKNOWN
-30120
16#8A58
AUTOTUNE
T/F
PI_B
W_WARN_OUT_OF_RANGE
30110
PI_B
E_ERR_NULL_INPUT_SCALE
-30121
16#8A57
PI_B
FP_ERROR
PI_B
T/F
PIDFF
W_WARN_OUT_OF_RANGE
30110
PIDFF
E_ERR_NULL_INPUT_SCALE
-30121
16#8A57
PIDFF
FP_ERROR
PIDFF
T/F
SAMPLETM
E_EFB_SAMPLE_TIME_OVERFLOW
-30184
STEP2
W_WARN_OUT_OF_RANGE
30110
STEP2
FP_ERROR
354
Error
value in
Hex
Error description
33002535 10/2014
EFB name
Error code
ENO
Error
state in value
case of in Dec
error
Error
value in
Hex
Error description
STEP2
T/F
STEP3
W_WARN_OUT_OF_RANGE
30110
STEP3
FP_ERROR
STEP3
T/F
Mathematics
Table of error codes and errors values created for EFBs of the Mathematics family.
EFB name
Error code
ENO
state in
case of
error
Error
value
in Dec
COMP_DB
W_WARN_OUT_OF_RANGE
30110
Error
value in
Hex
Error description
COMP_DB
FP_ERROR
K_SQRT
W_WARN_OUT_OF_RANGE
30110
16#759E
K_SQRT
FP_ERROR
MULDIV_W
FP_ERROR
SUM_W
FP_ERROR
33002535 10/2014
355
Measurement
Table of error codes and errors values created for EFBs of the Measurement family.
EFB name
Error code
ENO
Error
state in value in
case of Dec
error
Error
value in
Hex
Error description
AVGMV
E_ERR_DEN
-30152
16#8A38
AVGMV
W_WARN_AVGMV
30108
16#759C
AVGMV
FP_ERROR
AVGMV_K
E_ERR_DEN
-30152
16#8A38
AVGMV_K
W_WARN_AVGMV_K
30109
16#759D
AVGMV_K
FP_ERROR
DEAD_ZONE
E_ERR_DEN
-30152
16#8A38
DEAD_ZONE
E_ERR_DZONE
-30119
16#8A59
DEAD_ZONE
FP_ERROR
LOOKUP_TABLE1
E_ERR_DEN
-30152
16#8A38
LOOKUP_TABLE1
E_ERR_POLY_ANZAHL
-30107
16#8A65
LOOKUP_TABLE1
E_ERR_POLY_FOLGE
-30108
16#8A64
LOOKUP_TABLE1
FP_ERROR
Output Processing
Table of error codes and errors values created for EFBs of the Output Processing family.
EFB name
Error code
ENO
state
in
case
of
error
Error
value
in Dec
Error
value in
Hex
Error description
MS
W_WARN_OUT_OF_RANGE
30110
16#759E
MS
FP_ERROR
MS
T/F
PWM1
WAF_PBM_TMINMAX
-30113
16#8A5F
356
33002535 10/2014
EFB name
Error code
ENO
state
in
case
of
error
Error
value
in Dec
Error
value in
Hex
Error description
PWM1
FP_ERROR
SERVO
FP_ERROR
SERVO
T/F
SPLRG
W_WARN_OUT_OF_RANGE
30110
16#759E
SPLRG
E_ERR_NULL_INPUT_SCALE F
-30121
16#8A57
SPLRG
FP_ERROR
SPLRG
T/F
Setpoint Management
Table of error codes and errors values created for EFBs of the Setpoint Management family.
EFB name
Error code
RAMP
W_WARN_OUT_OF_RANGE T
30110
RAMP
FP_ERROR
RAMP
T/F
RATIO
FP_ERROR
RATIO
T/F
33002535 10/2014
ENO
state
in
case
of
error
Error
value in
Dec
Error
value in
Hex
Error description
357
EFB name
Error code
SP_SEL
W_WARN_OUT_OF_RANGE T
30110
SP_SEL
FP_ERROR
SP_SEL
T/F
358
ENO
state
in
case
of
error
Error
value in
Dec
Error
value in
Hex
Error description
33002535 10/2014
Error value in
Dec
Error value
in Hex
Error description
FP_ERROR
-30150
16#8A3A
E_FP_STATUS_FAILED_IE
-30151
16#8A39
E_FP_STATUS_FAILED_DE
-30152
16#8A38
E_FP_STATUS_FAILED_ZE
-30154
16#8A36
E_FP_STATUS_FAILED_ZE_IE
-30155
16#8A35
E_FP_STATUS_FAILED_OE
-30158
16#8A32
E_FP_STATUS_FAILED_OE_IE
-30159
16#8A31
E_FP_STATUS_FAILED_OE_ZE
-30162
16#8A2E
E_FP_STATUS_FAILED_OE_ZE_IE -30163
16#8A2D
E_FP_NOT_COMPARABLE
16#8A2A
Internal error
33002535 10/2014
-30166
359
360
33002535 10/2014
Unity Pro
System Objects
33002535 10/2014
Appendix B
System Objects
System Objects
Subject of this Chapter
This chapter describes the system bits and words of Unity Pro language.
Note: The symbols, associated with each bit object or system word, mentioned in the descriptive
tables of these objects, are not implemented as standard in the software, but can be entered using
the data editor.
They are proposed in order to ensure the homogeneity of their names in the different applications.
What Is in This Chapter?
This chapter contains the following topics:
Topic
Page
362
363
367
33002535 10/2014
361
System Objects
362
33002535 10/2014
System Objects
Function
Description
%S15
STRINGERROR
Character
string fault
YES
YES
%S16
IOERRTSK
YES
YES
Momentum
Unity
YES
YES
(except
for safety
PLCs)
YES
YES
CAUTION
UNEXPECTED APPLICATION BEHAVIOR - SPECIFIC VARIABLE BEHAVIOR
On Quantum, network communication errors with remote devices detected by communication
modules (NOM, NOE, NWM, CRA, CRP) and motion modules (MMS) are not reported on bits
%S10, %S16 and %S119.
Failure to follow these instructions can result in injury or equipment damage.
33002535 10/2014
363
System Objects
Bit
Symbol
Function
Description
%S17
CARRY
Rotate shift
output
Normally at 0.
During a rotate shift operation,
this bit takes the state of the
outgoing bit.
YES
YES
YES
YES
%S18
OVERFLOW
YES
YES
YES
YES
364
Initial
state
33002535 10/2014
System Objects
Bit
Symbol
Function
Continued
%S18
OVERFLOW
YES
YES
YES
YES
%S19
OVERRUN
Task period
overrun
(periodical
scanning)
YES
YES
YES
YES
33002535 10/2014
Description
Initial
state
365
System Objects
Bit
Symbol
Function
Description
%S20
INDEXOVF
Index
overflow
YES
YES
YES
(except
for safety
PLCs)
YES
YES
YES
YES
YES
%S21
First task
1RSTTASKRUN cycle
366
Initial
state
33002535 10/2014
System Objects
Function
Description
%SW12
UTWPORTADDR
Processor
serial port
address
33002535 10/2014
Initial
state
-
YES
NO
(see
%SW12
below)
YES
367
System Objects
Word
Symbol
Function
Description
%SW12
APMODE
Mode of
the
application
processor
Initial
state
16#A501
NO
NO
YES
Only on
safety
PLCs
YES
254
(16#00FE)
NO
YES
NO
(see
%SW13
below)
NO
368
33002535 10/2014
System Objects
Word
Symbol
Function
Description
%SW13
INTELMODE
Mode of
the Intel
processor
Initial
state
NO
NO
YES
Only on
safety
PLCs
NO
Commerci
al version
of PLC
processor
YES
YES
YES
YES
%SW15
OSCOMMPATCH
PLC
processor
patch
version
YES
YES
YES
YES
33002535 10/2014
369
System Objects
Word
Symbol
Function
Description
Initial
state
%SW16
OSINTVERS
Firmware
version
number
YES
YES
YES
YES
%SW17
FLOATSTAT
Error
status on
floating
operation
When an error in a
floating arithmetic
operation is detected,
bit %S18 is set to 1 and
%SW17 error status is
updated according to
the following coding:
%SW17.0 = Invalid
operation / result is
not a number,
%SW17.1
=Denormalized
operand / result is
acceptable (flag not
managed by
Modicon M340 or
Quantum Safety
PLCs),
%SW17.2 = Division
by 0 / result is
infinity,
%SW17.3 =
Overflow / result is
infinity,
%SW17.4 =
Underflow / result is
0,
%SW17.5 to 15 =
not used.
YES
YES
YES
Only on
safety
PLCs
YES
370
33002535 10/2014
System Objects
Word
Symbol
Function
Absolute
%SD18:
time
%SW18 and
counter
%SW19
100MSCOUNTER
Description
Initial
state
0
YES
YES
YES
33002535 10/2014
371
System Objects
Word
Symbol
Function
Description
%SD20:
%SW20 and
%SW21
MSCOUNTER
Absolute
time
counter
372
Initial
state
0
YES
YES
YES
33002535 10/2014
System Objects
Word
Symbol
Function
Description
Initial
state
%SW23
Rotary
switch
value
YES-340
NO-580
NO
NO
NO
%SW26
Number of
requests
processed
YES
NO
NO
YES
%SW27
%SW28
%SW29
System
overhead
time
YES
NO
NO
YES
system overhead
time.
%SW28 contains the
maximum system
overhead time.
%SW29 contains the
minimum system
overhead time.
The system overhead
time depends on the
configuration (number
of I/O...) and on the
current cycle requests
(communication,
diagnostics).
System overhead time
= Mast Cycle Time User code execution
time.
These can be read and
written by the user
program or by the
terminal.
33002535 10/2014
373
System Objects
374
33002535 10/2014
Unity Pro
Glossary
33002535 10/2014
Glossary
A
ANY
There is a hierarchy among the various data types. In the DFBs, it is sometimes possible to declare
variables that can contain several types of values. In that case we use ANY_xxx types.
The figure below describes this hierarchical structure:
B
BOOL
BOOL is the abbreviation for the Boolean type. This is the basic data type in computing. A BOOL
variable can have either of the following two values: 0 (FALSE) or 1 (TRUE).
A bit extracted from a word is of type BOOL, for example: %MW10.4.
33002535 10/2014
375
Glossary
D
DINT
DINT is the abbreviation of Double INTeger (encoded in 32 bits).
The upper/lower limits are as follows: -(2 to the power of 31) to (2 to the power of 31) - 1.
Example:
-2147483648, 2147483647, 16#FFFFFFFF.
E
EN
EN stands for ENable; it is an optional block input. When the EN input is enabled, an ENO output is
set automatically.
If EN = 0, the block is not enabled; its internal program is not executed, and ENO is set to 0.
If EN = 1, the blocks internal program is run and ENO is set to 1. If an error occurs, ENO is set to 0.
If the EN input is not connected, it is set automatically to 1.
ENO
ENO stands for Error NOtification; this is the output associated with the optional input EN.
If ENO is set to 0 (because EN = 0 or in case of an execution error):
the status of the function block outputs remains the same as it was during the previous scanning
cycle that executed correctly;
the output(s) of the function, as well as the procedures, are set to "0".
I
INF
Used to indicate that a number exceeds the authorized limits.
For an integer, the value ranges (shown in gray) are as follows:
376
33002535 10/2014
Glossary
INT
INT is the abbreviation of single INTeger (encoded in 16 bits).
The upper/lower limits are as follows: -(2 to the power of 15) to (2 to the power of 15) - 1.
Example:
-32768, 32767, 2#1111110001001001, 16#9FA4.
R
REAL
The REAL type is encoded in a 32 bit format.
The possible value ranges are shown in the figure below:
NOTE: The IEC 559 standard defines two classes of NAN: the silent NAN (QNAN) and the
signaling NAN (SNAN). A QNAN is a NAN with a most significant fraction bit while an SNAN is a
NAN without a most significant fraction bit (bit number 22). QNANs can be propagated via most
arithmetic operations without throwing an exception. As for SNANs, they generally indicate n invalid
operation when they are used as operands in arithmetic operations (see %SW17 and %S18).
NOTE: When a DEN (non-standardized number) is used as an operand, the result is not significant.
T
TIME
The TIME type expresses a time in milliseconds. Encoded in 32 bits, this type can be used to obtain
times from 0 to 2 32-1 milliseconds.
The TIME type has the following units: days (d), hours (h), minutes (m), seconds (s) and
milliseconds (ms). A literal value of type TIME is represented by a combination of the preceding
types prefixed with T#, t#, TIME# or time#.
Examples: T#25h15m, t#14,7S, TIME#5d10h23m45s3ms
33002535 10/2014
377
Glossary
U
UDINT
UDINT is the abbreviation of Unsigned Double INTeger (encoded in 32 bits). The upper/lower limits
are as follows: 0 to (2 to the power of 32) - 1.
Example:
0, 4294967295, 2#11111111111111111111111111111111, 8#37777777777,
16#FFFFFFFF.
UINT
UINT is the abbreviation of the Unsigned INTeger format (encoded in 16 bits). The upper/lower
limits are as follows: 0 to (2 to the power of 16) - 1.
Example:
0, 65535, 2#1111111111111111, 8#177777, 16#FFFF.
W
WORD
The type WORD is encoded in a 16 bit format and is used to perform processing on series of bits.
This table shows the upper/lower limits of each of the bases that can be used:
Base
Lower limit
Upper limit
Hexadecimal
16#0
16#FFFF
Octal
8#0
8#177777
Binary
2#0
2#1111111111111111
Examples of representation
378
Data
0000000011010011
16#D3
1010101010101010
8#125252
0000000011010011
2#11010011
33002535 10/2014
Unity Pro
Index
33002535 10/2014
Index
A
DTIME, 39
AUTOTUNE, 115
availability of the instructions, 25
AVGMV, 229
AVGMV_K, 235
C
COMP_DB, 209
COMP_DB_DFB, 209
COMP_DB/COMP_DB_DFB, 210
conditioning - instructions
DTIME, 39
INTEGRATOR, 49
LAG_FILTER, 57
LDLG, 63
LEAD, 71
MFLOW, 77
QDTIME, 85
SCALING, 91
TOTALIZER, 97
VEL_LIM, 107
controller - instructions
AUTOTUNE, 115
general information, 29
IMC, 139
MS, 267
MS_DB, 279
PI_B, 149
PIDFF, 161
SAMPLETM, 189
SERVO, 299
SPLRG, 317
STEP2, 191
STEP3, 199
H
HYST_***, 255
I
IMC, 139
INDLIM_***, 259
instructions
availability, 25
INTEGRATOR, 49
K
K_SQRT, 215
L
LAG_FILTER, 57
LDLG, 63
LEAD, 71
LOOKUP_TABLE1, 247
M
mathematical - instructions
COMP_DB, 209
COMP_DB_DFB, 209
K_SQRT, 215
MULDIV_W, 219
SUM_W, 223
DEAD_ZONE, 241
DEAD_ZONE_REAL, 241
33002535 10/2014
379
Index
measurement - instructions
AVGMV, 229
AVGMV_K, 235
DEAD_ZONE, 241
DEAD_ZONE_REAL, 241
HYST_***, 255
INDLIM_***, 259
LOOKUP_TABLE1, 247
SAH, 253
MFLOW, 77
MS, 267
MS_DB, 279
MULDIV_W, 219
VEL_LIM, 107
T
TOTALIZER, 97
P
PI_B, 149
PIDFF, 161
PWM1, 291
Q
QDTIME, 85
R
RAMP, 327
RATIO, 333
S
SAH, 253
SAMPLETM, 189
SCALING, 91
SERVO, 299
380
33002535 10/2014