Modicon Unity Pro Program Languages Structure Ref Manual
Modicon Unity Pro Program Languages Structure Ref Manual
Unity Pro
Program Languages and Structure
Reference Manual
35006144.09
05/2010
www.schneider-electric.com
This document provided by Barr-Thorp Electric Co., Inc. 800-473-9123
www.barr-thorp.com
35006144 05/2010
www.barr-thorp.com
Table of Contents
Safety Information . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
About the Book . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
11
13
15
17
18
22
23
24
28
32
39
42
44
46
49
50
51
52
53
54
60
61
63
65
68
69
70
71
73
35006144 05/2010
65
67
www.barr-thorp.com
74
75
77
78
79
80
82
83
84
85
87
88
90
92
95
97
98
102
103
105
4.1 Memory Structure of the Premium, Atrium and Modicon M340 PLCs . . .
Memory Structure of Modicon M340 PLCs . . . . . . . . . . . . . . . . . . . . . . .
Memory Structure of Premium and Atrium PLCs. . . . . . . . . . . . . . . . . . .
Detailed Description of the Memory Zones . . . . . . . . . . . . . . . . . . . . . . .
4.2 Memory Structure of Quantum PLCs. . . . . . . . . . . . . . . . . . . . . . . . . . . .
Memory Structure of Quantum PLCs . . . . . . . . . . . . . . . . . . . . . . . . . . .
Detailed Description of the Memory Zones . . . . . . . . . . . . . . . . . . . . . . .
106
107
110
112
113
114
117
119
120
121
123
128
131
132
133
135
140
143
144
144
145
146
147
148
150
35006144 05/2010
www.barr-thorp.com
152
155
158
163
166
168
169
172
178
180
182
192
193
195
196
200
201
203
204
206
207
208
209
212
213
215
220
223
6.2
6.3
6.4
6.5
225
226
227
229
230
231
233
234
235
237
242
244
35006144 05/2010
220
www.barr-thorp.com
245
246
248
249
250
251
251
256
256
259
260
261
263
264
267
268
270
273
275
276
278
280
283
283
285
285
287
287
291
292
296
298
305
306
308
311
315
317
319
320
322
331
332
35006144 05/2010
www.barr-thorp.com
Link . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Text Object . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Execution Sequence of the FFBs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Change Execution Sequence . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Loop Planning . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Chapter 13
333
335
336
338
342
343
349
359
361
363
367
368
377
379
381
387
388
389
392
393
394
398
402
403
405
406
409
410
412
414
414
415
415
416
417
418
419
419
35006144 05/2010
344
346
347
www.barr-thorp.com
13.9
Single-Token . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Execution Sequence Single-Token . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Alternative String . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Sequence Jumps and Sequence Loops . . . . . . . . . . . . . . . . . . . . . . . . .
Parallel Strings. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Asymmetric Parallel String Selection . . . . . . . . . . . . . . . . . . . . . . . . . . . .
13.10 Multi-Token . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Multi-Token Execution Sequence . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Alternative String . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Parallel Strings. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Jump into a Parallel String . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Jump out of a Parallel String . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
420
421
422
423
426
428
431
432
434
437
441
442
445
14.1
446
447
450
452
454
464
465
467
493
14.2
15.1
15.2
468
469
474
485
494
495
498
500
505
506
507
509
510
511
512
513
515
516
517
518
35006144 05/2010
www.barr-thorp.com
RETURN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Empty Instruction. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Labels and Jumps . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Comment. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
15.3 Calling Elementary Functions, Elementary Function Blocks, Derived
Function Blocks and Procedures. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Calling Elementary Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Call Elementary Function Block and Derived Function Block . . . . . . . . . .
Procedures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
519
520
521
522
545
523
524
529
538
547
548
550
553
554
556
560
562
565
566
568
569
573
574
578
581
583
586
590
593
593
Appendices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
595
597
35006144 05/2010
598
601
602
607
617
625
627
635
www.barr-thorp.com
637
638
638
640
641
653
655
656
657
658
661
663
663
665
665
Glossary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Index . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
667
695
B.2
B.3
B.4
10
35006144 05/2010
www.barr-thorp.com
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.
11
35006144 05/2010
www.barr-thorp.com
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 the installation, and has received safety
training to recognize and avoid the hazards involved.
12
35006144 05/2010
www.barr-thorp.com
At a Glance
Document Scope
This manual describes the elements necessary for the programming of Premium,
Atrium and Quantum PLCs using the Unity Pro programming workshop.
Validity Note
This documentation is valid from Unity Pro v5.0.
Product Related Information
WARNING
UNINTENDED EQUIPMENT OPERATION
The application of this product requires expertise in the design and programming
of control systems. Only persons with such expertise should be allowed to
program, install, alter, and apply this product.
Follow all local and national safety codes and standards.
Failure to follow these instructions can result in death, serious injury, or
equipment damage.
User Comments
We welcome your comments about this document. You can reach us by e-mail at
techcomm@schneider-electric.com.
13
35006144 05/2010
www.barr-thorp.com
14
35006144 05/2010
www.barr-thorp.com
General Presentation
35006144 05/2010
15
35006144 05/2010
www.barr-thorp.com
General Presentation
16
35006144 05/2010
www.barr-thorp.com
Presentation
35006144 05/2010
Presentation
1
Overview
This chapter describes the general design and behavior of a project created with
Unity Pro.
What's in this Chapter?
This chapter contains the following topics:
Topic
Page
18
User Interface
22
Project Browser
23
24
Configurator
28
Data Editor
32
Program Editor
39
42
44
46
Instruction List IL
49
Structured Text ST
50
PLC Simulator
51
Export/Import
52
User Documentation
53
Debug Services
54
Diagnostic Viewer
60
Operator Screen
61
17
35006144 05/2010
www.barr-thorp.com
Presentation
Programming Languages
Unity Pro provides the following programming languages for creating the user
program:
z Function Block Diagram FBD
z Ladder Diagram (LD) language
z Instruction List IL
z Structured Text ST
z Sequential Control SFC
All of these programming languages can be used together in the same project.
All these languages conform to IEC 61131-3.
Block Libraries
The blocks that are included in the delivery of Unity Pro extensive block libraries
extend from blocks for simple Boolean operations, through blocks for strings and
array operations to blocks for controlling complex control loops.
For a better overview the different blocks are arranged in libraries, which are then
broken down into families.
The blocks can be used in the programming languages FBD, LD, IL and ST.
Elements of a Program
A program can be constructed from:
z a Master task (MAST)
z a Fast task (FAST)
z one to four Aux Tasks (not available for Modicon M340)
z sections, which are assigned one of the defined tasks
z sections for processing time controlled events (Timerx)
z sections for processing hardware controlled events (EVTx)
z subroutine sections (SR)
18
35006144 05/2010
www.barr-thorp.com
Presentation
Software Packages
The following software packages are available:
z Unity Pro S
z Unity Pro M
z Unity Pro L
z Unity Pro XL
z Unity Pro XLS
z Unity Developers Edition (UDE)
Performance Scope
The following table shows the main characteristics of the individual software
packages:
Unity Pro S
Unity Pro M
Unity Pro L
Unity Pro XL
Instruction List IL
+( 2)
Structured Text ST
+( 2)
Sequential Language
SFC
+( 2)
Programming languages
Libraries (1)
Standard library
+( 2)
Control library
+( 2)
Communication library
+( 2)
Diagnostics library
+( 2)
+( 2)
System library
+( 2)
+( 2)
optional
optional
optional
optional (2)
Obsolete library
+( 2)
MFB library
+( 2)
Safety library
+( 2)
19
35006144 05/2010
www.barr-thorp.com
Presentation
Unity Pro S
Unity Pro M
Unity Pro L
Unity Pro XL
+( 2)
+( 2)
General information
Operator screen
Diagnostic viewer
System diagnostics
Project diagnostics
+( 2)
Application converter
PL7 converter
PL7 converter
Concept
Converter
PL7 converter
Concept
Converter
PL7 converter
Concept Converter
BMX P34
BMX P34 1000
1000
BMX P34 20
BMX P34 20
Premium
P57 0244M
P57 CA 0244M
P57 CD 0244M
P57 104M
P57 154M
P57 1634M
P57 204M
P57 254M
P57 2634M
H57 24M
All CPUs
except:
P57 554M
P57 5634M
All CPUs
All CPUs
Quantum
CPU 311 10
CPU 534 14 U/A
CPU 651 50
CPU 652 60
CPU 651 60
CPU 671 60
CPU 311 10
CPU 434 12 U/A
CPU 534 14 U/A
CPU 651 50
CPU 651 60
CPU 652 60
CPU 671 60
CPU 651 60 S
CPU 671 60 S
CPU 672 61
20
35006144 05/2010
www.barr-thorp.com
Presentation
Unity Pro S
Unity Pro M
Atrium
PCI 57 204
Simulator
Hyperlinks
Unity Pro L
Unity Pro XL
All CPUs
All CPUs
All CPUs
Openess
OS Loader tool + HW
Firmware
Unity loader
+ = available
+ (1) = Availability of the blocks depends of the hardware platforms.
+ (2) = Available on all PLC except platforms CPU 651 60 S, CPU 671 60 S.
- = not available
Naming Convention
In the following documentation, "Unity Pro" is used as general term for "Unity Pro S",
"Unity Pro M", "Unity Pro L", "Unity Pro XL" and "Unity Pro XLS".
21
35006144 05/2010
www.barr-thorp.com
Presentation
User Interface
Overview
The user interface consists of several, configurable windows and toolbars.
User interface:
Legend:
Number
Description
22
35006144 05/2010
www.barr-thorp.com
Presentation
Project Browser
Introduction
The Project Browser displays all project parameters. The view can be shown as
structural (topological) and/or functional view.
Structural View
The project browser offers the following features in the structural view:
z Creation and deletion of elements
z The section symbol shows the section programming language and if it is
protected (in case of an empty section the symbol is grey)
z View the element properties
z Creation of user directories
z Launching the different editors
z Start the import/export function
Functional View
The project browser offers the following features in functional view:
z Creation of functional modules
z Insertion of sections, animation tables etc. using Drag and Drop from the
structural view
z Creation of sections
z View the element properties
z Launching the different editors
z The section symbol shows the section programming language and other
attributes
23
35006144 05/2010
www.barr-thorp.com
Presentation
STU File
This file type is used for daily working tasks. This format is used by default when
opening or saving a user project.
The following table presents the STU file advantages and drawbacks:
Advantages
Drawbacks
STA File
This file type is used for archiving projects and can be created only after the project
has been generated. This file type allows forward compatibility between the different
versions of Unity Pro.
There is 2 ways to create a STA file:
z STA file can be created manually by accessing the File Save Archive menu
in the Unity Pro main window.
z STA file is created automatically every time the project is saved as a STU file if
it is in Built state.
NOTE: The STA file created automatically is saved into the same directory and with
the same filename as the STU project file, exept that a .Auto suffix is appended
to the filename. If an existing automatic STA file already exists, it is overwritten
without any confirmation.
NOTE: If the project is in Built state, saving a STU file through a Unity Pro Server
creates a STA file as well.
24
35006144 05/2010
www.barr-thorp.com
Presentation
Opening a STA file is done by accessing the File Open menu in the Unity Pro main
window.
NOTE: In the Open menu window, the selected file type must be
Unity Pro Archived Application File (STA).
z
z
The following table presents the STA file advantages and drawbacks:
Advantages
Drawbacks
been generated.
z Projects can be shared vie e-mail or low
25
35006144 05/2010
www.barr-thorp.com
Presentation
XEF File
This file type is used for exporting projects in an XML source format and can be
created at any stage of a project.
Exporting an XEF file is done by accessing the File Export Project menu in the
Unity Pro main window.
Importing an XEF file is done by accessing the File Open menu in the Unity Pro
main window.
NOTE: In the Open menu window, the selected file type must be
Unity Pro Application Exchange File (XEF).
For more information about creating an XEF file, see the
Unity Pro Installation Manual: Create Unity Pro Application Exchange File.
For more information about restoring an XEF file, see the
Unity Pro Installation Manual: Restoring Unity Pro Application Exchange File.
The following table presents the XEF file advantages and drawbacks:
Advantages
Drawbacks
z Medium size.
Important Information
The STU files are not compatible across Unity Pro versions. In order to use a project
with different Unity Pro versions, users must either store, the:
z
26
35006144 05/2010
www.barr-thorp.com
Presentation
STU
STA
XEF
Binary applications
Yes
Yes
No
Source applications
Yes
Yes
Yes
Internal database
Yes
No
No
10
1.6
10
10
Possible
Possible
File backup
Possible
Possible
27
35006144 05/2010
www.barr-thorp.com
Presentation
Configurator
Configurator Window
The configurator window is split into two windows:
Catalog window
A module can be selected from this window and directly inserted in the graphical
representation of the PLC configuration by dragging and dropping.
z Graphical representation of the PLC configuration
z
One of the following shortcut menus is called depending on the position of the
mouse pointer:
z Mouse pointer on the background allows among others:
z Change CPU,
z Selection of different Zoom factors.
z
28
35006144 05/2010
www.barr-thorp.com
Presentation
Module Configuration
The module configuration window (called via the modules shortcut menu or a
double-click on the module) is used to configure the module. This also includes
channel selection, selection of functions for the channel selected, assignment of
State RAM addresses (only Quantum) etc.
Module configuration window for a Premium I/O module:
29
35006144 05/2010
www.barr-thorp.com
Presentation
Module Properties
The module properties window (called via the modules shortcut menu) shows the
modules properties such as the power consumption, number of I/O points (only
Premium) and more.
The module properties window for the power supply shows the total current of the
rack:
Network Configuration
The network configuration is called via the communications folder.
Network configuration:
30
35006144 05/2010
www.barr-thorp.com
Presentation
31
35006144 05/2010
www.barr-thorp.com
Presentation
Data Editor
Introduction
The data editor offers the following features:
Declaration of variable instances
z Definition of derived data types (DDTs)
z Instance declaration of elements and derived function blocks (EFBs/DFBs)
z Definition of derived function block (DFBs) parameters
z
The following functions are available in all tabs of the data editor:
Copy, Cut, Paste
z Expand/collapse structured data
z Sorting according to Type, Symbol, Address etc.
z Filter
z Inserting, deleting and changing the position of columns
z Drag and Drop between the data editor and the program editors
z Undo the last change
z Export/Import
z
Variables
The Variables tab is used for declaring variables.
Variables tab:
32
35006144 05/2010
www.barr-thorp.com
Presentation
33
35006144 05/2010
www.barr-thorp.com
Presentation
34
35006144 05/2010
www.barr-thorp.com
Presentation
Function Blocks
The Function blocks tab is used for the instance declaration of elements and
derived function blocks (EFBs/DFBs).
Tab Function blocks:
35
35006144 05/2010
www.barr-thorp.com
Presentation
DFB Types
The DFB types tab is used for the defining derived function block (DFBs)
parameters.
The creation of DFB logic is carried out directly in one or more sections of the FBD,
LD, IL or ST programming languages.
Tab DFB types:
z
z
z
z
z
z
z
z
z
36
35006144 05/2010
www.barr-thorp.com
Presentation
Data Usage
Data types and instances created using the data editor can be inserted (context
dependent) in the programming editors.
The following functions are available:
z Access to all programming language editors
z Only compatible data is displayed
z View of the functions, function blocks, procedures and derived data types
arranged according to their library affiliation
z Instance declaration during programming is possible
Data selection dialog box:
Online Modifications
It is possible to modify the type of a variable or a Function Block (FB) instance
declared in application or in a Derived Function Block (DFB) directly in online mode.
That means it is not required to stop the application to perform such a type
modification.
These operations can be done either in the data editor or in the properties editor, in
the same way as in offline mode.
37
35006144 05/2010
www.barr-thorp.com
Presentation
CAUTION
UNEXPECTED APPLICATION BEHAVIOR
When changing the type of a variable, the new value of the variable to be modified
depends on its kind:
z In the case of an unlocated variable, the variable is set to the initial value, if
one exists. Otherwise, it is set to the default value.
z In the case of a located variable, the variable restarts with the initial value if
one exists. Otherwise, the current binary value is unchanged.
Before applying the variable type change, check the impact of the new value of the
variable on the application execution.
Failure to follow these instructions can result in injury or equipment damage.
NOTE: It is not possible to modify the type of a variable declared in Derived Data
Type (DDT) in online mode. The application has to be switched into offline mode in
order to build such a modification.
Restrictions About Online Modifications
In the following cases, the online type modification of a variable or of a Function
Block (FB) is not allowed:
z If the variable is used as network global data, the online type modification is not
permitted.
z Whether the current FB can not be removed online, or a new FB can not be
added online, the online type modification of this FB is not allowed. Indeed, some
Elementary Function Blocks (EFB) like the Standard Function Blocks (SFB) do
not allow to be added or removed online. As a result, changing the type of an EFB
instance to a SFB instance is not possible, and conversely.
In both of these cases, the following dialog box is displayed:
NOTE: Due to these limitations, if a Derived Function Block (DFB) contains at least
one instance of a SFB, it is not be possible to add or remove instance of this DFB in
online mode.
38
35006144 05/2010
www.barr-thorp.com
Presentation
Program Editor
Introduction
A program can be built from:
z Tasks, that are executed cyclically or periodically.
Tasks are built from:
z Sections
z Subroutines
z
Example of a Program:
39
35006144 05/2010
www.barr-thorp.com
Presentation
Tasks
Unity Pro supports multiple tasks (Multitasking).
The tasks are executed "parallel" and independently of each other whereby the
execution priorities are controlled by the PLC. The tasks can be adjusted to meet
various requirements and are therefore a powerful instrument for structuring the
project.
A multitask project can be constructed from:
A Master task (MAST)
The Master task is executed cyclically or periodically.
It forms the main section of the program and is executed sequentially.
z A Fast task (FAST)
The Fast task is executed periodically. It has a higher priority than the Master
task. The Fast task is used for processes that are executed quickly and
periodically.
z One to four AUX task(s))
The AUX tasks are executed periodically. They are used for slow processing and
have the lowest priority.
z
The project can also be constructed with a single task. In this case, only the Master
task is active.
Event Processing
Event processing takes place in event sections. Event sections are executed with
higher priority than the sections of all other tasks. They are suited to processing that
requires very short reaction times after an event is triggered.
The following section types are available for event processing:
z Sections for processing time controlled events (Timerx Section)
z Sections for processing hardware controlled events (Evtx Section)
The following programming languages are supported:
z FBD (Function Block Diagram)
z LD (Ladder Diagram Language)
z IL (Instruction List)
z ST (Structured Text)
40
35006144 05/2010
www.barr-thorp.com
Presentation
Sections
Sections are autonomous program units in which the logic of the project is created.
The sections are executed in the order shown in the project browser (structural
view). Sections are connected to a task.
The same section cannot be belong to more than one task at the same time.
The following programming languages are supported:
z FBD (Function Block Diagram)
z LD (Ladder Diagram Language)
z SFC (Sequential Function Chart)
z IL (Instruction List)
z ST (Structured Text)
Subroutine
Subroutines are created as separate units in subroutine sections.
Subroutines are called from sections or from another subroutine.
Nesting of up to 8 levels is possible.
A subroutine cannot call itself (not recursive).
Subroutines are assigned a task. The same subroutine cannot be called by different
tasks.
The following programming languages are supported:
z FBD (Function Block Diagram)
z LD (Ladder Diagram Language)
z IL (Instruction List)
z ST (Structured Text)
41
35006144 05/2010
www.barr-thorp.com
Presentation
Objects
The objects of the FBD (Function Block Diagram) programming language help to
divide a section into a number of:
z Elementary Functions (EFs),
z Elementary Function Blocks (EFBs)
z Derived Function Blocks (DFBs)
z Procedures
z Subroutine calls
z Jumps
z Links
z Actual Parameters
z Text objects to comment on the logic
42
35006144 05/2010
www.barr-thorp.com
Presentation
Properties
FBD sections have a grid behind them. A grid unit consists of 10 coordinates. A grid
unit is the smallest possible space between 2 objects in an FBD section.
The FBD programming language is not cell oriented but the objects are still aligned
with the grid coordinates.
An FBD section can be configured in number of cells (horizontal grid coordinates
and vertical grid coordinates).
The program can be entered using the mouse or the keyboard.
Input Aids
The FBD editor offers the following input aids:
z Toolbars for quick and easy access to the desired objects
z Syntax and semantics are checked as the program is being written.
z Incorrect functions and function blocks are displayed in blue
z Unknown words (e.g. undeclared variables) or unsuitable data types are
marked with a red wavy line
z Brief description of errors in the Quickinfo (Tooltip)
z
z
z
z
z
z
43
35006144 05/2010
www.barr-thorp.com
Presentation
Objects
The objects of the LD programming language help to divide a section into a number
of:
z Contacts,
z Coils,
z Elementary Functions (EFs)
z Elementary Function Blocks (EFBs),
z Derived Function Blocks (DFBs)
z Procedures
z Control elements
z Operation and compare blocks which represent an extension to IEC 61131-3
z Subroutine calls
z Jumps
z Links
z Actual Parameters
z Text objects to comment on the logic
44
35006144 05/2010
www.barr-thorp.com
Presentation
Properties
LD sections have a background grid that divides the section into lines and columns.
The LD programming language is cell oriented, i.e. only one object can be placed in
each cell.
LD sections can be 11-64 columns and 17-2000 lines in size.
The program can be entered using the mouse or the keyboard.
Input Aids
The LD editor offers the following input aids:
z Objects can be selected from the toolbar, the menu or directly using shortcut keys
z Syntax and semantics are checked as the program is being written.
z Incorrect objects are displayed in blue
z Unknown words (e.g. undeclared variables) or unsuitable data types are
marked with a red wavy line
z Brief description of errors in the Quickinfo (Tooltip)
z
z
z
z
z
z
45
35006144 05/2010
www.barr-thorp.com
Presentation
46
35006144 05/2010
www.barr-thorp.com
Presentation
Objects
An SFC section provides the following objects for creating a program:
z Steps
z Macro steps (embedded sub-step sequences)
z Transitions (transition conditions)
z Transition sections
z Action sections
z Jumps
z Links
z Alternative sequences
z Parallel sequences
z Text objects to comment on the logic
Properties
The SFC editor has a background grid that divides the section into 200 rows and 32
columns.
The program can be entered using the mouse or the keyboard.
Input Aids
The SFC editor offers the following input aids:
Toolbars for quick and easy access to the desired objects
z Automatic step numbering
z Direct access to actions and transition conditions
z Syntax and semantics are checked as the program is being written.
z Incorrect objects are displayed in blue
z Unknown words (e.g. undeclared variables) or unsuitable data types are
marked with a red wavy line
z Brief description of errors in the Quickinfo (Tooltip)
z
z
z
z
47
35006144 05/2010
www.barr-thorp.com
Presentation
Step Properties
Step properties:
The step properties are defined using a dialog box that offers the following features:
Definition of initial steps
z Definition of diagnostics times
z Step comments
z Allocation of actions and their qualifiers
z
48
35006144 05/2010
www.barr-thorp.com
Presentation
Instruction List IL
Introduction
The IL editor is used for instruction list programming according to IEC 61131-3.
Representation
Representation of an IL section:
Objects
An instruction list is composed of a series of instructions.
Each instruction begins on a new line and consists of:
z An operator
z A modifier if required
z One or more operands if required
z A label as a jump target if required
z A comment about the logic if required.
Input Aids
The IL editor offers the following input aids:
z Syntax and semantics are checked as the program is being written.
z Keywords and comments are displayed in color
z Unknown words (e.g. undeclared variables) or unsuitable data types are
marked with a red wavy line
z Brief description of errors in the Quickinfo (Tooltip)
z
z
z
z
49
35006144 05/2010
www.barr-thorp.com
Presentation
Structured Text ST
Introduction
The ST editor is used for programming in structured text according to IEC 61131-3.
Representation
Representation of an ST section:
Objects
The ST programming language works with "Expressions".
Expressions are constructions consisting of operators and operands that return a
value when executed.
Operators are symbols representing the operations to be executed.
Operators are used for operands. Operands are variables, literals, function and
function block inputs/outputs etc.
Instructions are used to structure and control the expressions.
Input Aids
The ST editor offers the following input aids:
Syntax and semantics are checked as the program is being written.
z Keywords and comments are displayed in color
z Unknown words (e.g. undeclared variables) or unsuitable data types are
marked with a red wavy line
z Brief description of errors in the Quickinfo (Tooltip)
z
z
z
z
50
35006144 05/2010
www.barr-thorp.com
Presentation
PLC Simulator
Introduction
The PLC simulator enables error searches to be carried out in the project without
being connected to a real PLC.
All project tasks (Mast, Fast, AUX and Event) that run on a real PLC are also
available in the Simulator. The difference from a real PLC is the lack of I/O modules
and communication networks (such as e.g. ETHWAY, Fipio and Modbus Plus) nondeterministic realtime behavior.
Naturally, all debugging functions, animation functions, breakpoints, forcing
variables etc. are available with the PLC simulator.
Representation
Representation of a dialog box:
35006144 05/2010
www.barr-thorp.com
Presentation
Export/Import
Introduction
The export and import functions allow you to use existing data in a new project. The
XML export/import format makes is possible to provide or accept data from external
software.
Export
The following objects can be exported:
Complete projects, including configuration
z Sections of all programming languages
z Subroutine sections of all programming languages
z Derived function blocks (DFBs)
z Derived data types (DDTs)
z Variable declarations
z Operator Screen
z
Import
All objects that can be exported can naturally be imported as well.
There are two types of import:
z Direct import
Imports the object exactly as it was exported.
z Import with the assistant
The assistant allows you to change the variables names, sections or functional
modules. The mapping of addresses can also be modified.
52
35006144 05/2010
www.barr-thorp.com
Presentation
User Documentation
User Documentation
Scope of the user documentation:
The following are just some of the services provided for documenting the project:
z Print the entire project (2) or in sections (3)
z Selection between structural and functional view (1)
z Adjustment of the result (footer, general information, etc.)
z Local printing for programming language editors, configurator, etc.
z Special indication (bold) for keywords
z Paper format can be selected
z Print preview (4)
z Documentation save
53
35006144 05/2010
www.barr-thorp.com
Presentation
Debug Services
Searching for Errors in the User Application
The following are just some of the features provided to optimize debugging in the
project:
z Set breakpoints in the programming language editors
z Step by step program execution, including step into, step out and step over
z Call memory for recalling the entire program path
z Control inputs and outputs
Online Mode
Online mode is when a connection is established between the PC and the PLC.
Online mode is used on the PLC for debugging, for animation and for changing the
program.
A comparison between the project of the PC and project of the PLC takes place
automatically when the connection is established.
This comparison can produce the following results:
z Different projects on the PC and the PLC
In this case, online mode is restricted. Only PLC control commands (e.g. start,
stop), diagnostic services and variable monitoring are possible. Changes cannot
be made to the PLC program logic or configuration. However, the downloading
and uploading functions are possible and run in an unrestricted mode (same
project on PC and PLC).
z Same projects on the PC and the PLC
There are two different possibilities:
z ONLINE SAME, BUILT
The last project generation on the PC was downloaded to the PLC and no
changes were made afterwards, i.e. the projects on the PC and the PLC are
absolutely identical.
In this case, all animation functions are available and unrestricted.
z ONLINE EQUAL, NOT BUILT
The last project generation on the PC was downloaded to the PLC, however
changes were made afterwards.
In this case, the animation functions are only available in the unchanged
project components.
54
35006144 05/2010
www.barr-thorp.com
Presentation
Animation
Different possibilities are provided for the animation of variables:
z Section animation
All programming languages (FBD, LD, SFC, IL and ST) can be animated.
The variables and connections are animated directly in the section.
55
35006144 05/2010
www.barr-thorp.com
Presentation
z
Tooltips
A tooltip with the value of a variable is displayed when the mouse pointer passes
over that variable.
Inspection window
An inspection window can be created for any variable. This window displays the
value of the variable, the address and any comments (if available). This function
is available in all programming languages.
56
35006144 05/2010
www.barr-thorp.com
Presentation
z
Variables window
This window displays all variables used in the current section.
Animation table
The value of all variables in the project can be displayed, changed or forced in
animation tables. Values can be changed individually or simultaneously together.
57
35006144 05/2010
www.barr-thorp.com
Presentation
Watch Point
Watch points allow you to view PLC data at the exact moment at which it is created
(1) and not only at the end of a cycle.
Animation tables can be synchronized with the watch point (2).
A counter (3) determines how often the watch point has been updated.
ST section with watch point:
Breakpoint
Breakpoints allow you to stop processing of the project at any point.
ST section with breakpoint:
58
35006144 05/2010
www.barr-thorp.com
Presentation
59
35006144 05/2010
www.barr-thorp.com
Presentation
Diagnostic Viewer
Description
Unity Pro provides system and project diagnostics.
Errors which occur are displayed in a diagnostics window. The section which
caused the error can be opened directly from the diagnostics window in order to
correct the error.
60
35006144 05/2010
www.barr-thorp.com
Presentation
Operator Screen
Introduction
Operator windows visualize the automation process.
The operator screen editor makes it easy to create, change and manage operator
screens.
Operator screens are created and accessed via the project browser.
61
35006144 05/2010
www.barr-thorp.com
Presentation
z
z
z
z
z
z
z
z
62
35006144 05/2010
www.barr-thorp.com
Application Structure
35006144 05/2010
Application Structure
II
In This Part
This part describes the application program and memory structures associated with
each type of PLC.
What's in this Part?
This part contains the following chapters:
Chapter
2
Chapter Name
Page
65
67
105
Operating Modes
119
System Objects
145
63
35006144 05/2010
www.barr-thorp.com
Application Structure
64
35006144 05/2010
www.barr-thorp.com
PLC Functions
35006144 05/2010
65
35006144 05/2010
www.barr-thorp.com
PLC Functions
Modicon
M340
Premium: TSX
Processors
P34 P34
1000 20
P57 0244
P57 1
P57 2
P57 3
P57 4
H57 24M
H57 44M
P57 5 PCI 57
P57
204/354
6634
31
43
53
651
651 60S
652 60 671 60S
671 60
Master task
cyclic or periodic
Fast task
periodic
Auxiliary tasks
periodic
16Mb
32
64
32
64
128
64
64
128
16
32
32
16
32
64
32
64
128
64
64
128
Atrium:
TSX
64Kb
66
35006144 05/2010
www.barr-thorp.com
Program Structure
35006144 05/2010
3
Subject of this Chapter
This chapter describes the structure and execution of the programs created using
the Unity Pro software.
What's in this Chapter?
This chapter contains the following sections:
Section
Topic
Page
3.1
68
3.2
74
3.3
79
3.4
Multitasking Execution
87
67
35006144 05/2010
www.barr-thorp.com
Program Structure
3.1
Page
69
70
71
73
68
35006144 05/2010
www.barr-thorp.com
Program Structure
Control
The master task can be controlled by program, by bits and system words.
System objects
Description
%SW0
Task period.
%S30
%S11
Watchdog error.
%S19
Period overrun.
%SW27
%SW28
%SW29
%SW30
%SW31
%SW32
69
35006144 05/2010
www.barr-thorp.com
Program Structure
Description
%SW1
Task period.
%S31
%S11
Watchdog error
%S19
Period overrun.
%SW33
%SW34
%SW35
70
35006144 05/2010
www.barr-thorp.com
Program Structure
71
35006144 05/2010
www.barr-thorp.com
Program Structure
Control
The auxiliary tasks can be controlled by program by bits and system words.
System objects
Description
%SW2
%SW3
%SW4
%SW5
%S32
%S33
%S34
%S35
%S11
Watchdog error
%S19
Period overrun.
%SW36
%SW39
%SW42
%SW45
%SW37
%SW40
%SW43
%SW46
%SW38
%SW41
%SW44
%SW47
72
35006144 05/2010
www.barr-thorp.com
Program Structure
These processing tasks are performed with priority over all other tasks. They are
therefore suited to processing tasks requiring a very short response time in relation
to the event.
The number of event processing tasks (see page 66) that can be programmed
depends on the type of processor.
Structure
An event processing task is monosectional, and made up of a single (unconditioned)
section.
It is programmed in either LD, FBD, IL or ST language.
Two types of event are offered:
z
z
Execution
The execution of an event processing task is asynchronous.
The occurrence of an event reroutes the application program to the processing task
associated with the input/output channel or event timer which caused the event.
Control
The following system bits and words can be used to control event processing tasks
during the execution of the program.
System objects
Description
%S38
%S39
%SW48
%SW75
73
35006144 05/2010
www.barr-thorp.com
Program Structure
3.2
Page
Description of Sections
75
77
Description of Subroutines
78
74
35006144 05/2010
www.barr-thorp.com
Program Structure
Description of Sections
Overview of the Sections
Sections are autonomous programming entities.
The identification tags of the instruction lines, the contact networks, etc. are specific
to each section (no program jump to another section is possible).
These are programmed either in:
z
z
z
z
z
75
35006144 05/2010
www.barr-thorp.com
Program Structure
Characteristics of a Section
The following table describes the characteristics of a section.
Characteristic
Description
Name
Language
Task or
processing
Condition
(optional)
Comment
Protection
76
35006144 05/2010
www.barr-thorp.com
Program Structure
The SFC sections are programmable only in the master task (see detailed
description of SFC sections)
Example
The following diagram gives an example of the structure of an SFC section, and
uses the chart to show the macro step calls that are used.
77
35006144 05/2010
www.barr-thorp.com
Program Structure
Description of Subroutines
Overview of Subroutines
Subroutines are programmed as separate entities, either in:
z
z
z
z
The calls to subroutines are carried out in the sections or from another subroutine.
The number of nestings is limited to 8.
A subroutine cannot call itself (non recursive).
Subroutines are also linked to a task. The same subroutine cannot be called from
several different tasks.
Example
The following diagram shows a task structured into sections and subroutines.
Characteristics of a Subroutine
The following table describes the characteristics of a subroutine.
Characteristic
Description
Name
Language
Task
Comment
78
35006144 05/2010
www.barr-thorp.com
Program Structure
3.3
Page
80
82
Periodic Execution
83
84
85
79
35006144 05/2010
www.barr-thorp.com
Program Structure
cyclic
periodic
Illustration
The following illustration shows the operating cycle.
80
35006144 05/2010
www.barr-thorp.com
Program Structure
Description
Acquisition of
inputs
Writing to memory of the status of the data on the inputs of the discrete and
application-specific modules associated with the task,
These values can be modified by forcing values.
Program
processing
Updating of
outputs
NOTE: During the input acquisition and output update phases, the system also
implicitly monitors the PLC (management of system bits and words, updating of
current values of the real time clock, updating of status LEDs and LCD screens (not
for Modicon M340), detection of changes between RUN/STOP, etc.) and the
processing of requests from the terminal (modifications and animation).
Operating Mode
PLC in RUN, the processor carries out internal processing, input acquisition,
processing of the application program and the updating of outputs in that order.
PLC in STOP, the processor carries out:
z
z
z
internal processing,
input acquisition (1),
and depending on the chosen configuration:
z fallback mode: the outputs are set to fallback position.
z maintain mode: the last value of the outputs is maintained.
(1) for Premium , Atrium and Quantum PLCs, input acquisition is inhibited when the
PLC is in STOP.
81
35006144 05/2010
www.barr-thorp.com
Program Structure
%I Reading of inputs
%Q Writing of outputs
Description
This type of operation consists of sequencing the task cycles, one after another.
After having updated the outputs, the system performs its own specific processing
then starts another task cycle, without pausing.
Cycle Check
The cycle is checked by the watchdog (see page 84).
82
35006144 05/2010
www.barr-thorp.com
Program Structure
Periodic Execution
Description
In this operating mode, input acquisition, the processing of the application program
and the updating of outputs are all carried out periodically over a defined period of
1 to 255 ms.
At the start of the PLC cycle, a time out whose current value is initialized to the
defined period starts the countdown.
The PLC cycle must be completed before this time out expires and launches a new
cycle.
Operation
The following diagram shows the execution phases of the PLC cycle.
%I Reading of inputs
%Q Writing of outputs
Operating Mode
The processor carries out internal processing, input acquisition, processing of the
application program and the updating of outputs in that order.
z
z
If the period is not yet over, the processor completes its operating cycle until the
end of the period by performing internal processing.
If the operating time is longer than that assigned to the period, the PLC signals a
period overrun by setting the system bit %S19 of the task to 1. Processing then
continues and is executed fully (however, it must not exceed the watchdog time
limit). The following cycle is started after the outputs have been implicitly written
for the current cycle.
Cycle Check
Two checks are carried out:
z
z
35006144 05/2010
www.barr-thorp.com
Program Structure
NOTE: These different items of information can also be accessed explicitly from the
configuration editor.
84
35006144 05/2010
www.barr-thorp.com
Program Structure
85
35006144 05/2010
www.barr-thorp.com
Program Structure
Description
Phase
Description
Request to update:
z the inputs of the first drop (i=1)
z the outputs of the last drop (i=5)
Request to update:
z the inputs of the third drop (i=3)
z the outputs of the first drop (i=1)
Request to update:
z the inputs of the fourth drop (i=4)
z the outputs of the second drop (i=2)
Request to update:
z the inputs of the last drop (i=5)
z the outputs of the third drop (i=3)
86
35006144 05/2010
www.barr-thorp.com
Program Structure
3.4
Multitasking Execution
Page
88
90
Task Control
92
95
97
98
102
103
87
35006144 05/2010
www.barr-thorp.com
Program Structure
Description
Master
MAST
Fast
FAST
Auxiliary
AUX 0 to 3
Event
EVTi and
TIMERi
(see page 97)
Illustration
The following diagram shows the tasks in a multitasking structure and their level of
priority.
Description
The master (MAST) task is still the application base. The other tasks differ
depending on the type of PLC (see page 66).
Levels of priority are fixed for each task in order to prioritize certain types of
processing.
Event processing can be activated asynchronously with respect to periodic tasks by
an order generated by external events. It is processed as a priority and requires any
processing in progress to be stopped.
88
35006144 05/2010
www.barr-thorp.com
Program Structure
Precautions
Multitasks: golden rules
CAUTION
UNEXPECTED MULTITASK APPLICATION BEHAVIOR
The sharing of Inputs/Outputs between different tasks can lead to unforeseen
behavior by the application.
We specifically recommend you associate each output or each input to one task
only.
Failure to follow these instructions can result in injury or equipment damage.
89
35006144 05/2010
www.barr-thorp.com
Program Structure
Description
The interrupted task takes over again when processing of the priority task is
complete.
Legend:
I: acquisition of inputs
P: program processing
O: updating of outputs
90
35006144 05/2010
www.barr-thorp.com
Program Structure
Task Control
The execution of fast and event processing tasks can be controlled by the program
using the following system bits:
z
z
z
z
%S30 is used to control whether or not the MAST master task is active
%S31 is used to control whether or not the FAST task is active..
%S32 to %S35 are used to control whether or not the auxiliary tasks AUX0 to
AUX3 are active.
%S38 is used to control whether EVTi event processing is active.
NOTE: The elementary functions MASKEVT and UNMASKEVT also allow the
global masking and unmasking of events by the program.
91
35006144 05/2010
www.barr-thorp.com
Program Structure
Task Control
Cyclic and Periodic Operation
In multitasking operation, the highest priority task shall be used in periodic mode in
order to allow enough time for lower priority tasks to be executed.
For this reason, only the task with the lowest priority should be used in cyclic mode.
Thus, choosing cyclic operating mode for the master task excludes using auxiliary
tasks.
Measurement of Task Durations
The duration of tasks is continually measured. This measurement represents the
duration between the start and the end of execution of the task. This measurement
includes the time taken up by tasks of higher priority which may interrupt the
execution of the task being measured.
The following system words give the current, maximum and minimum cycle times for
each task (value in ms)
Measurement
of times
MAST
FAST
AUX0
AUX1
AUX2
AUX3
Current
%SW30
%SW33
%SW36
%SW39
%SW42
%SW45
Maximum
%SW31
%SW34
%SW37
%SW40
%SW43
%SW46
Minimum
%SW32
%SW35
%SW38
%SW41
%SW44
%SW47
NOTE: The maximum and minimum times are taken from the times measured since
the last cold restart.
Task Periods
The task periods are defined in the task properties. They can be modified by the
following system words.
System words
Task
Values
Default
values
Observations
%SW0
MAST
0..255ms
Cyclic
0 = cyclic operation
%SW1
FAST
1..255ms
5ms
%SW2
AUX0
10ms..2.55s
100ms
%SW3
AUX1
10ms..2.55s
200ms
%SW4
AUX2
10ms..2.55s
300ms
%SW5
AUX3
10ms..2.55s
400ms
92
35006144 05/2010
www.barr-thorp.com
Program Structure
When the cycle time of the task exceeds the period, the system sets the system bit
%S19 of the task to 1 and continues with the following cycle.
NOTE: The values of the periods do not depend on the priority of tasks. It is possible
to define the period of a fast task which is larger than the master task.
Watchdog
The execution of each task is controlled by a configurable watchdog by using the
task properties.
The following table gives the range of watchdog values for each of the tasks:
Tasks
Watchdog values
(min...max) (ms)
MAST
10..1500
250
%SW11
FAST
10..500
100
AUX0
100..5000
2000
AUX1
100..5000
2000
AUX2
100..5000
2000
AUX3
100..5000
2000
If watchdog overflow should occur, the application is declared in error, which causes
the PLC to stop immediately (HALT state).
The word %SW11 contains the watchdog value of the master task in ms. This value
is not modifiable by the program.
The bit %S11 indicates a watchdog overflow. It is set to 1 by the system when the
cycle time becomes greater than the watchdog.
NOTE:
z
z
93
35006144 05/2010
www.barr-thorp.com
Program Structure
Task Control
When the application program is being executed, it is possible to activate or inhibit
a task by using the following system bits:
System bits
Task
%S30
MAST
%S31
FAST
%S32
AUX0
%S33
AUX1
%S34
AUX2
%S35
AUX3
The task is active when the associated system bit is set to 1. These bits are tested
by the system at the end of the master task.
When a task is inhibited, the inputs continue to be read and the outputs continue to
be written.
On startup of the application program, for the first execution cycle only the master
task is active. At the end of the first cycle the other tasks are automatically activated
except if one of the tasks in inhibited (associated system bit set to 0) by the program.
Controls on Input Reading and Output Writing Phases
The bits of the following system words can be used (only when the PLC is in RUN)
to inhibit the input reading and output writing phases.
Inhibition of
phases...
MAST
FAST
AUX0
AUX1
AUX2
AUX3
reading of
inputs
%SW8.0
%SW8.1
%SW8.2
%SW8.3
%SW8.4
%SW8.5
writing of
outputs
%SW9.0
%SW9.1
%SW9.2
%SW9.3
%SW9.4
%SW9.5
NOTE: By default, the input reading and output writing phases are active (bits of
system words %SW8 and %SW9 set to 0).
On Quantum, inputs/outputs which are distributed via DIO bus are not assigned by
the words %SW8 and %SW9.
94
35006144 05/2010
www.barr-thorp.com
Program Structure
95
35006144 05/2010
www.barr-thorp.com
Program Structure
96
35006144 05/2010
www.barr-thorp.com
Program Structure
Management of Priorities
z
z
z
z
EVT0 event processing is the highest priority processing. It can itself interrupt
other types of event processing.
EVTi event processing triggered by input/output modules (priority 1) take priority
over TIMERi event processing triggered by timers (priority 2).
On Modicon M340, Premium and Atrium PLCs: types of event processing with
priority level 1 are stored and processed in order.
On Quantum PLC: the priority of priority 1 processing types is determined:
z by the position of the input/output module in the rack,
z by the position of the channel in the module.
The module with the lowest position number has the highest level of priority.
Event processing triggered by timer is given priority level 2. The processing
priority is determined by the lowest timer number.
Control
The application program can globally validate or inhibit the various types of event
processing by using the system bit %S38. If one or more events occur while they are
inhibited, the associated processing is lost.
Two elementary functions of the language, MASKEVT() and UNMASKEVT(), used
in the application program can also be used to mask or unmask event processing.
If one or more events occur while they are masked, they are stored by the system
and the associated processing is carried out after unmasking.
97
35006144 05/2010
www.barr-thorp.com
Program Structure
Value
Default
value
Role
Time base
1 ms, 10ms,
100ms, 1 sec
10ms
Preset
1..1023
10
Phase
0..1023
98
35006144 05/2010
www.barr-thorp.com
Program Structure
Type
Comment
Enable
BOOL
Reset_Timer
BOOL
Hold_Timer
BOOL
Nb_Task_Event
BYTE
Type
Comment
Status_Timer
WORD
Status word.
Current_Value
TIME
99
35006144 05/2010
www.barr-thorp.com
Program Structure
Normal operation
The following table describes the triggering of TIMER-type event processing
operations (see timing diagram above).
Phase
Description
When a rising edge is received on the RESET input, the timer is reset to 0.
The current value VALUE of the timer increases from 0 towards the preset value
at a rate of one unit for each pulse of the time base.
An event is generated when the current value has reached the preset value, the
timer is reset to 0, and then reactivated. The associated event processing is also
triggered, if the event is not masked. It can be deferred if an event processing
task with a higher or identical priority is already in progress.
When the ENABLE input is at 0, the events are no longer sent out. TIMER type
event processing is no longer triggered.
When the HOLD input is at 1, the timer is frozen, and the current value stops
incrementing, until this input returns to 0.
The event processing tasks must have the same time base and preset values.
The RESET and HOLD inputs must not be set to 1.
100
35006144 05/2010
www.barr-thorp.com
Program Structure
Description
ON a STOP RUN transition of the PLC, timing is triggered so that the preset
value is reached at the end of a time period equal to Phase x time base, when
the first event is sent out.
The current value VALUE of the timer increases from 0 towards the preset value
at a rate of one unit for each pulse of the time base.
An event is generated when the current value has reached the preset value, the
timer is reset to 0, and then reactivated. The associated event processing is also
triggered, if the event is not masked. If can be deferred, if there is an event
processing task of higher or identical priority already in progress.
101
35006144 05/2010
www.barr-thorp.com
Program Structure
Description
All the outputs associated with the event processing are updated.
Premium/Atrium PLCs
The inputs acquired and the outputs updated are:
z
z
the inputs associated with the channel which caused the event
the inputs and outputs used during event processing
Quantum PLCs
The inputs acquired and the outputs updated are selected in the configuration. Only
local inputs/outputs can be selected.
Programming Rule
The inputs (and the associated group of channels) exchanged during the execution
of event processing are updated (loss of historical values, and thus edges). You
should therefore avoid testing fronts on these inputs in the master (MAST), fast
(FAST) or auxiliary (AUXi) tasks.
102
35006144 05/2010
www.barr-thorp.com
Program Structure
Action
Unmasking phase
The task which can be interrupted must in particular:
z Enable processing of events at system level: set bit %S38 to 1 (default
value).
z Unmask events with the instruction UNMASKEVT (active by default).
z Unmask the events concerned at channel level (for events triggered by
input/output modules) by setting the input/output module's implicit language
objects for unmasking of events to 1. By default, the events are masked.
z Check that the stack of events at system level is not saturated (bit %S39
must be at 0).
103
35006144 05/2010
www.barr-thorp.com
Program Structure
104
35006144 05/2010
www.barr-thorp.com
Memory Structure
35006144 05/2010
4
Subject of this Chapter
This chapter describes the application memory structure of Premium, Atrium and
Quantum PLCs.
What's in this Chapter?
This chapter contains the following sections:
Section
Topic
Page
4.1
106
4.2
113
105
35006144 05/2010
www.barr-thorp.com
Memory Structure
4.1
Page
107
110
112
106
35006144 05/2010
www.barr-thorp.com
Memory Structure
Structure
The data and program are supported by the processor modules internal RAM.
The following diagram describes the memory structure.
Program Backup
If the memory card is present, working properly and not write-protected, the program
is saved on the memory card:
z Automatically, after:
z a download
z online modification
z a rising edge of the system bit %S66 in the project program
z
Manually:
z with the command PLC Project backup Backup Save
z in an animation table by setting the system bit %S66
107
35006144 05/2010
www.barr-thorp.com
Memory Structure
WARNING
LOSS OF DATA - APPLICATION NOT SAVED
The interruption of an application saving procedure by an untimely or rough
extraction of the memory card, may lead to the loss of saved application.The bit
%S65 (see page 158) allows managing a correct extraction (See help page
%65 bit in system bit chapter)
Failure to follow these instructions can result in death, serious injury, or
equipment damage.
The memory card uses Flash technology, therefore no battery is necessary.
Program Restore
If the memory card is present and working properly, the program is copied from the
PLC memory card to the internal memory:
z Automatically after:
z a power cycle
z
Manually, with the Unity Pro command PLC Project backup Backup
Restore
NOTE: When you insert the memory card in run or stop mode, you have to do a
power cycle to restore the project on the PLC.
Saved Data
Located, unlocated data, diagnostic buffer are automatically saved in the internal
Flash memory at power-off. They are restored at warm start.
Save_Param
The SAVE_PARAM function does both current and initial parameter adjustment in
internal RAM (as in other PLCs). In this case, the internal RAM and the memory card
content are different (%S96 = 0 and the CARDERR LED is on). On cold start (after
application restore), the current parameter are replaced by the last adjusted initial
values only if a save to memory card function (Backup Save or %S66 rising edge)
was done.
Save Current Value
On a %S94 rising edge, the current values replace the initial values in internal
memory. The internal RAM and the memory card content are different (%S96 = 0
and the CARDERR LED is on). On cold start, the current values are replaced by the
most recent initial values only if a save to memory card function (Backup Save or
%S66 rising edge) was done.
108
35006144 05/2010
www.barr-thorp.com
Memory Structure
Delete Files
There are two ways to delete all the files on the memory card:
z
z
Formatting the memory card (delete all files of the file system partition)
Deleting the content of directory \DataStorage\ ( delete only files added by user)
CAUTION
INOPERABLE MEMORY CARD
Do not format the memory card with a non-Schneider tool. The memory card needs
a structure to contain program and data. Formatting with another tool destroys this
structure.
Failure to follow these instructions can result in injury or equipment damage.
%MW Backup
The values of the %MWi can be saved in the internal Flash memory using %SW96
(see page 182). These values will be restored at cold start, including application
download, if the option Initialize of %MW on cold start is unchecked in the
processor Configuration screen.
For %MW words, the values can be saved and restored on cold restart or download if
the option Reset of %MW on cold restart is not checked in the processor Configuration
screen. With the %SW96 word, management of memory action %MW internal words
(save, delete) and information on the actions states %MW internal words is possible.
Memory Card Specifics
Two types of memory card are available:
z
z
application: these cards contain the application program and Web pages
application + file storage: these cards contain the application program, data
files from Memory Card File Management EFBs, and Web pages
109
35006144 05/2010
www.barr-thorp.com
Memory Structure
110
35006144 05/2010
www.barr-thorp.com
Memory Structure
Memory Backup
The internal RAM is backed up by a Ni-Cad battery supported by the processor
module.
The RAM memory cards are backed up by a Ni-Cad battery.
Specificities of Memory Cards
Three types of memory card are offered:
z
z
application: these cards contain the application program. The cards offered use
either RAM or Flash EPROM technology
application + file storage: in addition to the program, these cards also contain
a zone which can be used to backup/restore data using the program. The cards
on offer use either RAM or Flash EPROM technology
file storage: these cards can be used to backup/restore data using the program.
These cards use SRAM technology.
The following diagram describes the memory structure with an application and file
storage card.
NOTE: On processors with 2 memory card slots, the lower slot is reserved for the
file storage function.
111
35006144 05/2010
www.barr-thorp.com
Memory Structure
located data:
z %M, %S Boolean and %MW,%SW numerical data
z data associated with modules (%I, %Q, %IW, %QW,%KW etc.)
unlocated data:
z Boolean and numerical data (instances)
z EFB and DFB instances
executable codes:
z program code
z code associated with EFs, EFBs and the management of I/O modules
z code associated with DFBs
constants:
z KW constant words
z constants associated with inputs/outputs
z initial data values
This zone also contains the necessary information for downloading the application:
graphic codes, symbols etc.
Other Information
Other information relating to the configuration and structure of the application are
also stored in the memory (in a data or program zone depending on the type of
information).
z
z
z
112
35006144 05/2010
www.barr-thorp.com
Memory Structure
4.2
Page
114
117
113
35006144 05/2010
www.barr-thorp.com
Memory Structure
114
35006144 05/2010
www.barr-thorp.com
Memory Structure
Memory Backup
The internal RAM is backed up by a Ni-Cad battery supported by the processor
module.
The RAM memory cards are backed up by a Ni-Cad battery.
Start-up with Application Saved in Backup Memory
The following table describes the different results according to the PLC state,
according to the PLC mem switch (see Quantum with Unity Pro, Hardware,
Reference Manual), and also indicates if the box "Auto RUN" is checked or not
checked.
PLC State
PLC Mem
Auto RUN in
Switch1
Appl2
NONCONF
Start or Off
Off
NONCONF
Start or Off
On
NONCONF
Not Applicable
Configured
Start or Off
Off
Configured
Start or Off
On
Configured
Do not Care
1
2
Results
Start and Stop are valid for the 434 and 534 models only and Off is valid for the 311 only. Mem Prt is valid on all
models.
The Automatic RUN in the application refers to the application that is loaded.
115
35006144 05/2010
www.barr-thorp.com
Memory Structure
application: these cards contain the application program. The cards on offer use
either RAM or Flash EPROM technology
application + file storage: in addition to the program, these cards also contain
a zone which can be used to backup/restore data using the program. The cards
on offer use either RAM or Flash EPROM technology
file storage: these cards can be used to backup/restore data using the program.
These cards use SRAM technology.
The following diagram describes the memory structure with an application and file
storage card.
NOTE: On processors with 2 memory card slots, the lower slot is reserved for the
file storage function.
116
35006144 05/2010
www.barr-thorp.com
Memory Structure
Located Data
This zone contains located data (State Ram):
Address Object address
Data use
0xxxxx
%Qr.m.c.d,%Mi
1xxxxx
%Ir.m.c.d, %Ii
3xxxxx
%IWr.m.c.d, %IWi
4xxxxx
%QWr.m.c.d, %MWi
User Program
This zone contains the executable codes of the application.
z
z
z
z
program code
code associated with EFs, EFBs and the management of I/O modules
code associated with DFBs
initial variable values
This zone also contains the necessary information for downloading the application:
graphic codes, symbols etc.
Operating System
On 140 CPU 31/41/51 processors, this contains the operating system for
processing the application. This operating system is transferred from an internal
EPROM memory to internal RAM on power up.
Application Backup
A Flash EPROM memory zone of 1435K8, available on processors 140 CPU
31/41/51, can be used to backup the program and the initial values of variables.
The application stored in this zone is automatically transferred to internal RAM when
the PLC processor is powered up (if the PLC MEM switch is set to off on the
processor front panel).
117
35006144 05/2010
www.barr-thorp.com
Memory Structure
Other Information
Other information relating to the configuration and structure of the application are
also stored in the memory (in a data or program zone depending on the type of
information).
z
z
z
118
35006144 05/2010
www.barr-thorp.com
Operating Modes
35006144 05/2010
Operating Modes
5
Subject of this Chapter
The chapter describes the operating modes of the PLC in the event of power outage
and restoral, the impacts on the application program and the updating of
inputs/outputs.
What's in this Chapter?
This chapter contains the following sections:
Section
Topic
Page
5.1
120
5.2
132
5.3
144
119
35006144 05/2010
www.barr-thorp.com
Operating Modes
5.1
Page
121
123
128
131
120
35006144 05/2010
www.barr-thorp.com
Operating Modes
Alternating Current
Direct Current
10ms
1ms
Illustration
The following illustration shows the different power cycle phases.
121
35006144 05/2010
www.barr-thorp.com
Operating Modes
Operation
The table describes the power outage processing phases.
Phase
Description
On power outage, the system saves the application context, the values of
application variables, and the state of the system on internal Flash memory.
The system sets all the outputs into fallback state (state defined in
configuration).
On power restoral, some actions and checks are done to verify if warm restart
is available:
z restoring from internal Flash memory application context,
z verification with memory card (presence, application availability),
z verification that the application context is identical to the memory card
context,
If all checks are correct, a warm restart (see page 128) is done, otherwise a cold
start (see page 123) is carried out.
122
35006144 05/2010
www.barr-thorp.com
Operating Modes
Startup characteristics
Loading of an application
Restoral after power supply outage with loss Cold start forced in STOP or RUN mode as
of context
defined in the configuration
CAUTION
LOSS OF DATA ON APPLICATION TRANSFER
Loading or transferring an application to the PLC typically involves initialization of
unlocated variables.
To save the located variables:
z Avoid the initialization of the %MWi by unchecking Initialize %MWi on cold start
in the configuration screen of the CPU.
It is necessary to assign a topological address to the data if the process requires
keeping the current values of the data when transferring the application.
Failure to follow these instructions can result in injury or equipment damage.
123
35006144 05/2010
www.barr-thorp.com
Operating Modes
CAUTION
LOSS OF DATA ON APPLICATION TRANSFER
Do not press the RESET button on the power supply. Otherwise, %MWi is reset
and initial values are loaded.
Failure to follow these instructions can result in injury or equipment damage.
CAUTION
RISK OF LOSS OF APPLICATION
If there is no memory Card in the PLC during a cold restart the application is lost.
Failure to follow these instructions can result in injury or equipment damage.
124
35006144 05/2010
www.barr-thorp.com
Operating Modes
Illustration
The diagram below describes how a cold restart operates.
125
35006144 05/2010
www.barr-thorp.com
Operating Modes
Operation
The table below describes the program execution restart phases on cold restart.
Phase
Description
z
z
z
z
z
z
z
Note : If the number of %MW words exceeds the backup size (see the memory
structure of M340 PLCs (see page 107)) during the save operation the
remaining words are set to 0.
Initializing elementary function blocks on the basis of initial data.
Initializing data declared in the DFBs: either to 0 or to the initial value declared
in the DFB type.
Initializing system bits and words.
Positioning charts to initial steps.
Cancelling any forcing.
Initializing message and event queues.
Sending configuration parameters to all discrete input/output modules and
application-specific modules.
For this first restart cycle the system does the following:
z Relaunches the master task with the %S0 (cold restart) and %S13 (first cycle
in RUN) bits set to 1, and the %SW10 word (detection of a cold restart during
the first task cycle) is set to 0.
z Resets the %S0 and %S13 bits to 0, and sets each bit of the word %SW10 to
1 at the end of this first cycle of the master task.
z Activates the fast task and event processing at the end of the first cycle of the
master task.
126
35006144 05/2010
www.barr-thorp.com
Operating Modes
127
35006144 05/2010
www.barr-thorp.com
Operating Modes
CAUTION
RISK OF LOSS OF APPLICATION
If there is no Memory Card in the PLC during a warm restart the application is lost.
Failure to follow these instructions can result in injury or equipment damage.
Illustration
The diagram below describes how a warm restart operates.
128
35006144 05/2010
www.barr-thorp.com
Operating Modes
Operation
The table below describes the program execution restart phases on warm restart.
Phase
1
Description
Program execution doesnt resume from the element where the power outage
occurred. The remaining program is discarded during the warm start. Each
task will restart from the beginning.
At the end of the restart cycle, the system carries out the following:
restore the applications variable value,
set bit %S1 to 1,
the initialization of message and event queues,
the sending of configuration parameters to all discrete input/output and
application-specific modules,
z the deactivation of the fast task and event processing (until the end of the
master task cycle).
z
z
z
z
master task.
129
35006144 05/2010
www.barr-thorp.com
Operating Modes
On power restoral:
z Clears chart, deregisters diagnostics, keeps set actions
z sets steps from saved area
z sets step times from SFCSTEP_STATE
z restores elapsed time for timed actions
NOTE: SFC interpreter is independent, if the transition is valid, the SFC chart
evolves while %S1 is true.
Output Changes
As soon as a power outage is detected, the outputs are set in the fallback position:
either they are assigned the fallback value,
z or the current value is maintained,
z
130
35006144 05/2010
www.barr-thorp.com
Operating Modes
WARNING
UNEXPECTED SYSTEM BEHAVIOR - UNEXPECTED PROCESS START
The following actions will trigger automatic start in RUN:
z Restoring the application from memory card,
z Unintentional or careless use of the reset button.
To avoid an unwanted restart when in RUN mode use:
z The RUN/STOP input on Modicon M340
Failure to follow these instructions can result in death, serious injury, or
equipment damage.
131
35006144 05/2010
www.barr-thorp.com
Operating Modes
5.2
Page
133
135
140
143
132
35006144 05/2010
www.barr-thorp.com
Operating Modes
Alternating Current
Direct Current
Premium
10ms
1ms
Atrium
30ms
Quantum
10ms
1ms
Illustration
The illustration shows the different types of power restoral detected by the system.
133
35006144 05/2010
www.barr-thorp.com
Operating Modes
Operation
The table below describes the power outage processing phases.
Phase
Description
On power outage the system stores the application context and the time of
outage.
It sets all the outputs in the fallback state (state defined in configuration).
On power restoral, the saved context is compared to the current one, which
defines the type of startup to be performed:
z if the application context has changed (i.e. loss of system context or new
application), the PLC initializes the application: cold start,
z if the application context is the same, the PLC carries out a restart without
initialization of data: warm restart.
134
35006144 05/2010
www.barr-thorp.com
Operating Modes
Startup characteristics
Loading of an application
Restoral after power supply outage with loss Cold start forced in STOP or RUN mode as
of context
defined in the configuration
CAUTION
LOSS OF DATA ON APPLICATION TRANSFER
Loading or transferring an application to the PLC typically involves initialization of
unlocated variables.
To save located variables with Premium and Quantum PLCs:
z Save and restore %M and %MW by clicking PLC Transfer Data.
For Premium PLCs:
z Avoid the initialization of %MW by unchecking Initialize %MWi on cold start in
the configuration screen of the CPU.
For Quantum PLCs:
Avoid the initialization of %MW by unchecking %MWi Reset in the configuration
screen of the CPU.
135
35006144 05/2010
www.barr-thorp.com
Operating Modes
Illustration
The diagram below describes how a cold restart operates.
136
35006144 05/2010
www.barr-thorp.com
Operating Modes
Operation
The table below describes the program execution restart phases on cold restart.
Phase
1
Description
The startup is performed in RUN or in STOP depending on the status of the
Automatic start in RUN parameter defined in the configuration or, if this
is in use, depending on the state of the RUN/STOP input.
Program execution is resumed at the start of the cycle.
The system carries out the following:
z the initialization of data (bits, I/O image, words etc.) with the initial values
z
z
z
z
z
z
z
z
defined in the data editor (value set to 0, if no other initial value has been
defined). For %MW words, the values can be retained on cold restart if the
Reset of %MW on cold restart option is unchecked in the Configuration
screen of the processor
the initialization of elementary function blocks on the basis of initial data
the initialization of data declared in the DFBs: either to 0 or to the initial
value declared in the DFB type
the initialization of system bits and words
the deactivation of tasks, other than the master task, until the end of the first
master task cycle
the positioning of charts to initial steps
the cancellation of any forcing
the initialization of message and event queues
the sending of configuration parameters to all discrete input/output modules
and application-specific modules
For this first restart cycle the system does the following:
z relaunches the master task with the %S0 (cold restart) and %S13 (first cycle
in RUN) bits set to 1, and the %SW10 word (detection of a cold restart
during the first task cycle) is set to 0
z resets the %S0 and %S13 bits to 0, and sets each bit of the word %SW10
to 1 at the end of this first cycle of the master task
z activates the fast task and event processing at the end of the first cycle of
the master task
137
35006144 05/2010
www.barr-thorp.com
Operating Modes
After power restoral, the outputs remain at zero until they are updated by the task.
NOTE: The behavior of forced outputs was changed between Modsoft/NxT/Concept
and Unity Pro.
With Modsoft/NxT/Concept, you cannot force outputs if the Quantum processor
memory protection switch is set to "On".
With Unity Pro, you can force outputs if the Quantum processor memory protection
switch is set to "On".
With Modsoft/NxT/Concept, forced outputs retain their status after a cold start.
With Unity Pro, forced outputs lose their status after a cold start.
CAUTION
UNEXPECTED APPLICATION BEHAVIOR - FORCED VARIABLES
Check your forced variables and memory protection switch when shifting
betweenModsoft/NxT/Concept and Unity Pro.
Failure to follow these instructions can result in injury or equipment damage.
138
35006144 05/2010
www.barr-thorp.com
Operating Modes
139
35006144 05/2010
www.barr-thorp.com
Operating Modes
Illustration
The diagram below describes how a warm restart operates.
140
35006144 05/2010
www.barr-thorp.com
Operating Modes
Operation
The table below describes the program execution restart phases on warm restart.
Phase
1
2
Description
Program execution resumes starting from the element where the power outage
occurred, without updating the outputs.
At the end of the restart cycle, the system carries out the following:
z the initialization of message and event queues
z the sending of configuration parameters to all discrete input/output and
application-specific modules
z the deactivation of the fast task and event processing (until the end of the
141
35006144 05/2010
www.barr-thorp.com
Operating Modes
After power restoral, the outputs remain in the fallback position until they are
updated by the task.
Output Changes, for Extension Rack
If power outage occurs on rack where CPU is located:
Fallback state as soon as CPU loss is detected
z Security state during I/O configuration
z State calculated by CPU after the first run of the task driving this output
z
After power is restored, the outputs remain in the fallback position until they are
updated by the task
142
35006144 05/2010
www.barr-thorp.com
Operating Modes
WARNING
UNEXPECTED SYSTEM BEHAVIOR - UNEXPECTED PROCESS START
The following actions will trigger "automatic start in RUN":
z Inserting the PCMCIA card when the PLC is powered up (Premium, Quantum),
z Replacing the processor while powered up (Premium, Quantum),
z Unintentional or careless use of the reset button,
z If the battery is found to be defective in the event of a power outage (Premium,
Quantum).
To avoid an unwanted restart when in RUN mode:
z We stongly recommend to use the RUN/STOP input on Premium PLCs or the
switch on the front of the panel of the processor for Quantum PLCs
z We strongly recommend not to use memorized inputs as RUN/STOP input of
the PLC.
Failure to follow these instructions can result in death, serious injury, or
equipment damage.
143
35006144 05/2010
www.barr-thorp.com
Operating Modes
5.3
Precautions
Caution; when the PLC is in HALT, all tasks are stopped (see Unity Pro, Operating
Modes, ). Check the behavior of the associated I/Os.
144
35006144 05/2010
www.barr-thorp.com
System Objects
35006144 05/2010
System Objects
6
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's in this Chapter?
This chapter contains the following sections:
Section
Topic
Page
6.1
System Bits
6.2
System Words
168
6.3
195
6.4
208
6.5
220
146
145
35006144 05/2010
www.barr-thorp.com
System Objects
6.1
System Bits
Page
147
148
150
152
155
158
163
166
146
35006144 05/2010
www.barr-thorp.com
System Objects
147
35006144 05/2010
www.barr-thorp.com
System Objects
Function
Description
Initial
state
Modicon Premium
M340
Atrium
%S0
COLDSTART
Cold start
Quantum
YES
YES
YES
YES
(except
for safety
PLCs)
Warm
restart
YES
148
35006144 05/2010
www.barr-thorp.com
System Objects
Bit
Symbol
Function
Description
%S4
TB10MS
Initial
state
Modicon Premium
M340
Atrium
Quantum
YES
YES
YES
(except
for safety
PLCs)
YES
YES
YES
(except
for safety
PLCs)
%S6
TB1SEC
Time
base 1 s
Idem %S4
YES
YES
YES
(except
for safety
PLCs)
%S7
TB1MIN
Time
base
1 min
Idem %S4
YES
YES
YES
(except
for safety
PLCs)
149
35006144 05/2010
www.barr-thorp.com
System Objects
Function
Description
Initial
state
%S9
OUTDIS
Outputs set
to the
fallback
position on
all buses
YES (1)
YES
NO
YES
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 ans %S119.
Failure to follow these instructions can result in injury or equipment damage.
150
35006144 05/2010
www.barr-thorp.com
System Objects
Bit
Symbol
Function
Description
%S11
WDG
Watchdog
overflow
YES
YES
YES
%S12
PLCRUNNING
YES
YES
YES
YES
YES
YES
%S13
First cycle
1RSTSCANRUN after
switching to
RUN
Initial
state
Switching the PLC from STOP mode to RUN mode (including after a cold start
with automatic start in run) is indicated
by setting system bit %S13 to 1. This bit
is reset to 0 at the end of the first cycle of
the MAST task in RUN mode.
151
35006144 05/2010
www.barr-thorp.com
System Objects
Function
%S15
Character
STRINGERROR string fault
%S16
IOERRTSK
Description
Initial
state
YES
YES
YES
(except
for safety
PLCs)
Task
Normally set to 1, this bit is set to 0 by the 1
input/output system when a fault on an in-rack module
fault
or device on Fipio is detected (e.g. noncompliant configuration, exchange fault,
hardware fault, etc.).
This bit must be reset to 1 by the user.
YES
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.
152
35006144 05/2010
www.barr-thorp.com
System Objects
Bit
Symbol
Function
Description
%S17
CARRY
Rotate
shift
output
Normally at 0.
0
During a rotate shift operation, this bit takes
the state of the outgoing bit.
YES
YES
YES
%S18
OVERFLOW
Overflow
or
arithmetic
error
YES
YES
YES
YES
YES
YES
Task
period
overrun
(periodical
scanning)
153
35006144 05/2010
www.barr-thorp.com
System Objects
Bit
Symbol
Function
Description
%S20
INDEXOVF
Index
overflow
YES
YES
YES
(except
for safety
PLCs)
YES
YES
YES
%S21
First task
1RSTTASKRUN cycle
154
35006144 05/2010
www.barr-thorp.com
System Objects
Function
Description
%S30
MASTACT
Activation/
deactivation
of the master
task
%S31
FASTACT
Initial
state
Modicon Premium
M340
Atrium
Quantum
YES
YES
YES
(except for
safety
PLCs)
Activation/
deactivation
of the fast
task
YES
YES
YES
(except for
safety
PLCs)
%S32
AUX0ACT
Activation/
deactivation
of the
auxiliary task
0
NO
YES
YES
(except for
safety
PLCs)
%S33
AUX1ACT
Activation/
deactivation
of the
auxiliary task
1
NO
YES
YES
(except for
safety
PLCs)
%S34
AUX2ACT
Activation/
deactivation
of the
auxiliary task
2
NO
YES
YES
(except for
safety
PLCs)
%S35
AUX3ACT
Activation/
deactivation
of the
auxiliary task
3
NO
YES
YES
(except for
safety
PLCs)
%S38
ACTIVEVT
Enabling/
inhibition of
events
1
Normally set to 1. Events are inhibited
when the user sets the bit to 0.
This bit is not available on Quantum safety
PLCs.
YES
YES
YES
(except for
safety
PLCs)
155
35006144 05/2010
www.barr-thorp.com
System Objects
Bit
Symbol
Function
%S39
EVTOVR
%S40
RACK0ERR
Rack 0
input/output
fault
Description
Initial
state
Modicon Premium
M340
Atrium
Quantum
YES
YES
YES
(except for
safety
PLCs)
1
The %S40 bit is assigned to rack 0.
Normally set to 1, this bit is set to 0 when a
fault occurs on the rack's I/Os.
In this case:
z the %S10 bit is set to 0,
z the I/O processor LED is on,
z the %Ir.m.c.Err module bit is set to 1.
YES
YES
NO
Rack 1
input/output
fault
YES
YES
NO
%S4 2
RACK2ERR
Rack 2
input/output
fault
YES
YES
NO
%S43
RACK3ERR
Rack 3
input/output
fault
YES
YES
NO
%S44
RACK4ERR
Rack 4
input/output
fault
YES
YES
NO
%S45
RACK5ERR
Rack 5
input/output
fault
YES
YES
NO
%S46
RACK6ERR
Rack 6
input/output
fault
YES
YES
NO
%S47
RACK7ERR
Rack 7
input/output
fault
YES
YES
NO
156
35006144 05/2010
www.barr-thorp.com
System Objects
Bit
Symbol
Function
Description
%S50
RTCWRITE
Updating of
time and
date via
words
%SW50 to
%SW53
%S51
RTCERR
Initial
state
Modicon Premium
M340
Atrium
Quantum
YES
YES
YES
Time loss in
real time
clock
YES
YES
YES
%S59
Incremental
RTCTUNING update of the
time and
date via
word
%SW59
YES
YES
YES
157
35006144 05/2010
www.barr-thorp.com
System Objects
Function
Description
%S60
BACKUPCHVOV
Voluntary
switching
command
%S65
CARDIS
158
Quantum
NO
YES
NO
YES
NO
NO
35006144 05/2010
www.barr-thorp.com
System Objects
Bit
Symbol
Function
Description
%S66
LEDBATT
APPLIBCK
Application
backup
YES
NO
Quantum
NO
159
35006144 05/2010
www.barr-thorp.com
System Objects
Bit
Symbol
Function
Description
%S67
PCMCIABAT0
State of the
application
memory
card battery
This bit is used to monitor the status of the main battery when the memory
card is in the upper PCMCIA slot. This
applies to Atriums, Premiums and
Quantums
(CPU 140 CPU 671 60/60S,
140 CPU 651 60/60S,
140 CPU 652 60 and
140 CPU 651 50):
z set to 1: main voltage battery is low.
The application is kept but the
battery must be replaced following
the predictive maintenance
(see Premium and Atrium using
Unity Pro, Processors, racks and
power supply modules,
Implementation manual)
procedure),
z set to 0: main battery voltage is
sufficient (application always kept).
Quantum
NO
YES
YES
NO
YES
YES
version 2.02.
NOTE: With blue PCMCIAs
(PV>=04), bit %S67 is not set to 1
when main battery is absent, though
with green PCMCIAs (PV<04), bit
%S67 is set to 1 in the same condition.
%S68
PLCBAT
State of
processor
battery
160
35006144 05/2010
www.barr-thorp.com
System Objects
Bit
Symbol
Function
Description
%S75
PCMCIABAT1
State of the
data storage
memory
card battery
Quantum
NO
YES
YES
YES
YES
YES
YES
YES
YES
Configured
diagnostics
buffer
%S77
Full
DIAGBUFFFFULL diagnostics
buffer
161
35006144 05/2010
www.barr-thorp.com
System Objects
Bit
Symbol
Function
Description
%S78
HALTIFERROR
Stop in the
event of
error
%S79
MBFBCTRL
Modbus
forced bit
control
Quantum
YES
YES
YES
NO
NO
YES
162
35006144 05/2010
www.barr-thorp.com
System Objects
Function
Description
%S80
RSTMSGCNT
YES
YES
YES
%S82
MB+PCMCIA
polling adjust
NO
YES
NO
%S90
COMRFSH
Refresh
Normally set to 0, this bit is set to 1 on 0
common words receiving common words from
another network station.
This bit can be set to 0 by the
program or the terminal to check the
common words exchange cycle.
NO
YES
NO
%S91
LCKASYNREQ
NO
YES
NO
163
35006144 05/2010
www.barr-thorp.com
System Objects
Bit
Symbol
Function
Description
%S92
EXCHGTIME
Measurement
mode of the
communication
function
YES
YES
NO
%S94
SAVECURRVAL
Saving
adjustment
values
YES
YES
YES
(except
for safety
PLCs)
164
35006144 05/2010
www.barr-thorp.com
System Objects
Bit
Symbol
Function
%S96
Backup
BACKUPPROGOK program OK
Description
YES
NO
NO
CAUTION
APPLICATION UPLOAD NOT SUCCESSFUL
The bit %S94 must not be set to 1 during an upload.
If the bit %S94 is set to 1 then the upload may be impossible.
Failure to follow these instructions can result in injury or equipment damage.
CAUTION
LOSS OF DATA
The bit %S94 must not be used with the TSX MFP or the TSX MCP flash
PCMCIA memory. The function of this system bit is not available with this type of
memory.
Failure to follow these instructions can result in injury or equipment damage.
165
35006144 05/2010
www.barr-thorp.com
System Objects
Function
Description
Initial
state
%S100
PROTTERINL
NO
YES
NO
%S118
REMIOERR
General
Normally set to 1, this bit is set to 0 by the Remote I/O system when a fault occurs on a device
fault
connected to the RIO (Fipio for Premium or
Drop S908 for Quantum) remote
input/output bus.
This bit is reset to 1 by the system when the
fault disappears.
This bit is not updated if an error occurs on
the other buses (DIO, ProfiBus, ASI).
YES
YES
YES
%S119
LOCIOERR
YES
YES
YES
Normally set to 1, this bit is set to 0 by the system when a fault occurs on an I/O
module placed in one of the racks.
This bit is reset to 1 by the system when the
fault disappears.
CAUTION
%S119 for Quantum PLCs
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.
166
35006144 05/2010
www.barr-thorp.com
System Objects
Bit
Symbol
Function
Description
Initial
state
%S120
DIOERRPLC
Normally set to 1, this bit is set to 0 by the system when a fault occurs on a device
connected to the DIO bus managed by
the Modbus Plus link built into the CPU.
This bit is not available on Quantum
safety PLCs.
In the Diagnostic viewer some
information are available (if the entry is
selected) to clarify error type on the bus.
This information can identify the correct
remote bus with the bus number (RIO,
DIO).
NO
NO
YES
(except
for safety
PLCs)
%S121
DIOERRNOM1
DIO bus fault Normally set to 1, this bit is set to 0 by the (NAME No. 1) system when a fault occurs on a device
connected to the DIO bus managed by
the first 140 NAME 2 module.
This bit is not available on Quantum
safety PLCs.
In the Diagnostic viewer some
information are available (if the entry is
selected) to clarify error type on the bus.
This information can identify the correct
remote bus with the bus number (RIO,
DIO).
NO
NO
YES
(except
for safety
PLCs)
%S122
DIOERRNOM2
DIO bus fault Normally set to 1, this bit is set to 0 by the (NAME No. 2) system when a fault occurs on a device
connected to the DIO bus managed by
the second 140 NAME 2 module.
This bit is not available on Quantum
safety PLCs.
In the Diagnostic viewer some
information are available (if the entry is
selected) to clarify error type on the bus.
This information can identify the correct
remote bus with the bus number (RIO,
DIO).
NO
NO
YES
(except
for safety
PLCs)
%S123
ADJBX
Adjust Bus X
YES
YES
NO
This bit is used by the system and cannot be used by the user application.
167
35006144 05/2010
www.barr-thorp.com
System Objects
6.2
System Words
Page
169
172
178
180
182
192
193
168
35006144 05/2010
www.barr-thorp.com
System Objects
Function
%SW0
MASTPERIOD
Description
Initial
state
Modicon Premium
M340
Atrium
Quantum
YES
YES
YES
(except
for safety
PLCs)
%SW1
FASTPERIOD
Fast task
scanning
period
YES
YES
YES
(except
for safety
PLCs)
%SW2
AUX0PERIOD
%SW3
AUX1PERIOD
%SW4
AUX2PERIOD
%SW5
AUX3PERIOD
Auxiliary
task
scanning
period
NO
YES (1)
YES (1)
(except
for safety
PLCs)
%SW6
%SW7
IP Address
YES
NO
NO
169
35006144 05/2010
www.barr-thorp.com
System Objects
Word
Symbol
Function
Description
%SW8
TSKINHIBIN
Initial
state
Modicon Premium
M340
Atrium
Quantum
YES(1)
YES
YES(2)
(except
for safety
PLCs)
YES (3)
YES
YES (4)
(except
for safety
PLCs)
Monitoring
of task
output
update
170
35006144 05/2010
www.barr-thorp.com
System Objects
CAUTION
HAZARD OF UNEXPECTED BEHAVIOR
On Premium/Atrium:
Module outputs located on the X Bus automatically switch to the configured mode
(fallback or maintain). On the Fipio bus, certain devices do not manage fallback
mode. Here, only maintain mode is possible.
On Quantum:
All outputs, as well as the local or remote rack (RIO) are maintained in the state
that preceded the switch to 1 of the %SW9 bit corresponding to the task.
The Distributed Inputs/Outputs (DIO) are not assigned by the system word %SW9.
Failure to follow these instructions can result in injury or equipment damage.
Word
Symbol
Function
Description
Initial
state
Modicon Premium
M340
Atrium
Quantum
%SW10
TSKINIT
First cycle
after cold
start
YES
YES
YES
(except
for safety
PLCs)
YES
YES
YES
Watchdog
duration
171
35006144 05/2010
www.barr-thorp.com
System Objects
Function
Description
Initial
state
%SW12
UTWPORTADDR
Processor
serial port
address
YES
YES
NO
(see
%SW12
below)
%SW12
APMODE
Mode of the
application
processor
NO
NO
YES
Only on
safety
PLCs
YES
NO
(see
%SW13
below)
NO
This word indicates the following 254
(16#00FE)
for the main network (Fipway or
Ethway):
z the station number (least
significant byte) from 0 to 127,
z the network number (most
significant byte) from 0 to 63,
(value of the micro-switches on
the PCMCIA card).
172
35006144 05/2010
www.barr-thorp.com
System Objects
Word
Symbol
Function
Description
Initial
state
%SW13
INTELMODE
Mode of the
Intel
processor
For Quantum safety PLC only, this word indicates the operating
mode of the Intel Pentium
processor of the CPU module.
z 16#501A = maintenance mode
z 16#5AFE = safe mode
NO
YES
Only on
safety
PLCs
Commercial
version of
PLC
processor
YES
YES
YES
%SW15
OSCOMMPATCH
PLC
processor
patch
version
YES
YES
YES
%SW16
OSINTVERS
Firmware
version
number
YES
YES
YES
173
35006144 05/2010
www.barr-thorp.com
System Objects
Word
Symbol
Function
Description
Initial
state
%SW17
FLOATSTAT
Error status
on floating
operation
YES
YES
Only on
safety
PLCs
174
35006144 05/2010
www.barr-thorp.com
System Objects
Word
Symbol
Function
%SD18:
Absolute
%SW18 and
time counter
%SW19
100MSCOUNTER
Description
Initial
state
YES
YES
YES
175
35006144 05/2010
www.barr-thorp.com
System Objects
Word
Symbol
Function
Description
%SD20:
%SW20 and
%SW21
MSCOUNTER
Absolute
For M340 and Quantum PLCs
0
time counter %SD20 is incremented every
1/1000th of a second by the
system (even when the PLC is in
STOP, %SD20 is no longer
incremented if the PLC is powered
down). %SD20 can be read by the
user program or by the terminal.
%SD20 is reset on a cold start.
%SD20 is not reset on a warm
start.
For Premium
TSX P57 14M/24M/34M/C024
M/024M and
TSX PCI57 204M/354M PLCs,
%SD20 is incremented by 5 every
5/1000th of a second by the
system. For all the others
Premium PLCs, %SD20 is time
counter at 1 ms like Quantum and
M340 PLCs.
For Quantum safety PLC,
knowing that the 2 processors
must process exactly the same
data, the value of %SD18 is
updated at the beginning of the
mast task, and then frozen during
the application execution.
YES
YES
YES
%SW23
Rotary
The least significant byte contains switch value the Ethernet processor rotary
switch.
It can be read by the user program
or by the terminal.
YES
NO
NO
%SW26
Number of
requests
processed
YES
YES
YES
Initial
state
176
35006144 05/2010
www.barr-thorp.com
System Objects
Word
Symbol
Function
Description
Initial
state
%SW27
%SW28
%SW29
System
overhead
time
YES
NO
NO
overhead time.
z %SW28 contains the maximum
system overhead time.
z %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.
177
35006144 05/2010
www.barr-thorp.com
System Objects
Function
Description
%SW30
Master task
MASTCURRTIME execution time
This word indicates the execution time of the last master task cycle (in ms).
YES
YES
YES
%SW31
MASTMAXTIME
Maximum
master task
execution time
YES
YES
YES
%SW32
MASTMINTIME
Minimum
master task
execution time
YES
YES
YES
%SW33
Fast task
FASTCURRTIME execution time
This word indicates the execution time of the last fast task cycle (in ms).
This word is not available on Quantum
safety PLCs.
YES
YES
YES
(except
for safety
PLCs)
%SW34
FASTMAXTIME
Maximum fast
task execution
time
YES
YES
YES
(except
for safety
PLCs)
%SW35
FASTMINTIME
Minimum fast
task execution
time
This word indicates the shortest fast task execution time since the last cold
start (in ms).
This word is not available on Quantum
safety PLCs.
YES
YES
YES
(except
for safety
PLCs)
NOTE: Execution time is the time elapsed between the start (input acquisition) and
the end (output update) of a scanning period. This time includes the processing of
event tasks, the fast task, and the processing of console requests.
178
35006144 05/2010
www.barr-thorp.com
System Objects
Function
Description
Initial
state
%SW36
Auxiliary task
AUX0CURRTIME execution time
%SW39
AUX1CURRTIME
%SW42
AUX2CURRTIME
%SW45
AUX3CURRTIME
Those words indicate the execution time of the last cycle of the AUX 0...3
tasks (in ms).
%SW37
AUX0MAXTIME
%SW40
AUX1MAXTIME
%SW43
AUX2MAXTIME
%SW46
AUX3MAXTIME
Maximum
auxiliary task
execution time
%SW38
AUX0MINTIME
%SW41
AUX1MINTIME
%SW44
AUX2MINTIME
%SW47
AUX3MINTIME
Minimum
auxiliary task
execution time
YES (1)
YES (1)
(except
for safety
PLCs)
NO
YES (1)
YES (1)
(except
for safety
PLCs)
NO
YES (1)
YES (1)
(except
for safety
PLCs)
179
35006144 05/2010
www.barr-thorp.com
System Objects
Function
Description
Initial
state
Modicon
M340
Premium
Atrium
Quantum
%SW48
IOEVTNB
Number of
events
YES
YES
YES
(except
for safety
PLCs)
%SW49
DAYOFWEEK
%SW50
SEC
%SW51
HOURMIN
%SW52
MONTHDAY
%SW53
YEAR
Real-time
clock
function
YES
YES
YES
(16#HHMM),
z %SW52: Month and Day
(16#MMDD),
z %SW53: Year (16#YYYY).
180
35006144 05/2010
www.barr-thorp.com
System Objects
Word
Symbol
Function
Description
Initial
state
Modicon
M340
Premium
Atrium
Quantum
%SW54
STOPSEC
%SW55
STOPHM
%SW56
STOPMD
%SW57
STOPYEAR
%SW58
STOPDAY
Real-time
clock
function on
last stop
YES
YES
YES
%SW59
ADJDATETIME
Adjustment
of current
date
YES
YES
YES
181
35006144 05/2010
www.barr-thorp.com
System Objects
Function
Description
Initial
state
%SW70
WEEKOFYEAR
Real-time clock
function
YES
YES
YES
%SW71
KEY_SWITCH
Position of the
switches on the
Quantum front
panel
NO
NO
YES
%SW75
TIMEREVTNB
Timer-type
event counter
YES
YES (1)
YES
(except
for safety
PLCs)
%SW76
DLASTREG
Diagnostics
function:
recording
0
Result of the last registration
z = 0 if the recording was
successful,
z = 1 if the diagnostics buffer has not
been configured,
z = 2 if the diagnostics buffer is full.
YES
YES
YES
182
35006144 05/2010
www.barr-thorp.com
System Objects
Word
Symbol
Function
Description
Initial
state
%SW77
DLASTDEREG
Diagnostics
function:
non-recording
YES
YES
YES
%SW78
DNBERRBUF
Diagnostics
function:
number of
errors
YES
YES
YES
%SW80
MSGCNT0
%SW81
MSGCNT1
Message
management
YES
YES
YES
183
35006144 05/2010
www.barr-thorp.com
System Objects
Word
Symbol
Function
Description
Initial
state
%SW82
%SW83
Message
management
YES
YES
YES
YES
NO
YES
YES
NO
For Quantum:
z %SW82: Number of Modbus
Premium:
Telegram
management
Modicon M340:
Message
management
0
These words are updated by the
system, and can also be reset using
%S80.
For Premium:
z %SW84: Number of telegrams sent
by the system,
z %SW85: Number of telegrams
received by the system.
For Modicon M340:
z %SW84: Number of messages
Message
management
184
35006144 05/2010
www.barr-thorp.com
System Objects
Word
Symbol
Function
Description
%SW87
MSTSERVCNT
YES
YES
YES
%SW88
ASNSERVCNT
%SW89
APPSERVCNT
Premium:
Communication
flow
management
Modicon M340:
HTTP and FTP
requests
received by the
processors
Web server and
FTP server per
second
YES
YES
NO
For Premium:
z %SW88: Number of requests
processed by asynchronous
server per master (MAST) task
cycle,
z %SW89: Number of requests
processed by server functions
(immediately) per master (MAST)
task cycle.
Initial
state
185
35006144 05/2010
www.barr-thorp.com
System Objects
Word
Symbol
Function
Description
Initial
state
%SW90
MAXREQNB
Maximum
number of
requests
processed per
master task
cycle
YES
YES
maximum 4 + 4 = 9),
z TSX 57 1: N = 4 (minimum 2,
maximum 4 + 4 = 8),
z TSX 57 2: N = 8 (minimum 2,
maximum 8 + 4 = 12),
z TSX 57 3: N = 12 (minimum 2,
maximum 12 + 4 = 16),
z TSX 57 4: N = 16 (minimum 2,
maximum 16 + 4 = 20),
z TSX 57 5: N = 16 (minimum 2,
maximum 16 + 4 = 20)
For Quantum range:
z 140 CPU 31/43/53/ : N = 10
(minimum 5, maximum 10 + 4 =
14),
z 140 CPU 6 : N = 20 (minimum 5,
maximum 20 + 4 = 24),
186
35006144 05/2010
www.barr-thorp.com
System Objects
Word
Symbol
Function
Description
Initial
state
Continued
%SW90
MAXREQNB
Maximum
number of
requests
processed per
master task
cycle
YES
YES
YES
%SW91-92
Function blocks
message rates
YES
YES
NO
187
35006144 05/2010
www.barr-thorp.com
System Objects
Word
Symbol
Function
Description
Initial
state
%SW93
Memory card
file system
format
command &
status
NO
NO
YES
NO
NO
Application
modification
signature
188
35006144 05/2010
www.barr-thorp.com
System Objects
Word
Symbol
Function
Description
Initial
state
%SW96
CMDDIAGSAVEREST
Command and
Diagnostic of
Save and
Restore
NO
NO
z
z
%SW96.9 = 1 and
%SW96.10 = 1 indicate a
write error in internal flash
memory.
189
35006144 05/2010
www.barr-thorp.com
System Objects
Word
Symbol
Function
Description
%SW97
CARDSTS
Card status
Can be read by the user program or by the terminal. Indicates the status of
the card.
%SW97:
0000 = no error.
0001 = application backup or file write
sent to a write-protected card.
0002 = card not recognized, or
application backup damaged.
0003 = backup of the application
requested, but no card available.
0004 = card access error, for example
after a card has been removed not
properly.
0005 = no file system present in the
card, or file system not compatible.
Use %SW93.0 to format the card.
%SW99 1
INPUTADR/
SWAP 1
Initial
state
NO
NO
NO
YES1
NO
190
35006144 05/2010
www.barr-thorp.com
System Objects
Word
Symbol
Function
Description
Initial
state
%SW99 2
CRA_COMPAT_
CRA
compatibility
high status
register
NO
NO
YES2
CCOTF
counting status
register
NO
NO
YES
HIGH 2
%SW100
CCOTF_COUNT
191
35006144 05/2010
www.barr-thorp.com
System Objects
Function
Description
Initial
state
Modicon
M340
Quantum Premium
Atrium
%SW108
Number of
FORCEDIOIM forced I/O
module
bits
YES
YES
YES
%SW109
FORCEDANA
Number of
forced
analog
channels
YES
NO
YES
%SW116
REMIOERR
Fipio I/O
error
NO
NO
YES
192
35006144 05/2010
www.barr-thorp.com
System Objects
Function
Description
%SW123
ADJBUSX
System
allowance
to BUS X
%SW124
CPUERR
Type of
processor
or system
error
Initial
state
Modicon
M340
Premium Quantum
Atrium
YES
YES
NO
The last type of system fault encountered is written into this word by the system
(these codes are unchanged on a cold
restart):
z 16#30: system code fault
z 16#53: time-out fault during I/O
exchanges
z 16#60 to 64: stack overrun
z 16#65: Fast task period of execution is
too low
z 16#81: detection of backplane error
NOTE: 16#81 system code is not
managed by Quantum PLCs
NOTE: If this error is detected, all racks
have to be re-initialized.
z 16#90: system switch fault: Unforeseen
IT
YES
YES
YES
193
35006144 05/2010
www.barr-thorp.com
System Objects
Word
Symbol
Function
%SW125
Last fault
BLKERRTYPE detected
Description
Initial
state
Modicon
M340
Premium Quantum
Atrium
YES
YES
YES
YES
YES
YES
Blocking
error
instruction
address
194
35006144 05/2010
www.barr-thorp.com
System Objects
6.3
Page
196
200
201
203
204
206
207
195
35006144 05/2010
www.barr-thorp.com
System Objects
Function
Description
%SW60
HSB_CMD
Premium
Hot
Standby
command
register
z %SW60.1
z =0 sets PLC A to OFFLINE mode.
z =1 sets PLC A to RUN mode.
YES
NO
z %SW60.2
z =0 sets PLC B to OFFLINE mode.
z =1 sets PLC B to RUN mode.
z %SW60.4 OS Version Mismatch
z =0 If OS Versions Mismatch with Primary,
196
35006144 05/2010
www.barr-thorp.com
System Objects
Word
Symbol
Function
Description
%SW61
HSB_STS
Premium
Hot
Standby
status
register
YES
NO
mode.
z %SW61.3=1 and %SW61.2=0: Primary mode.
z %SW61.3=1 and %SW61.2=1: Standby mode.
z %SW61.3=0 and %SW61.2=0: the remote
197
35006144 05/2010
www.barr-thorp.com
System Objects
Word
Symbol
Function
Description
%SW61
HSB_STS
Premium
Hot
Standby
status
register
YES
NO
YES
NO
Premium
Hot
Standby
status
register
198
35006144 05/2010
www.barr-thorp.com
System Objects
Word
Symbol
Function
Description
%SW62
HSBY_REVERSE0
%SW63
HSBY_REVERSE1
%SW64
HSBY_REVERSE2
%SW65
HSBY_REVERSE3
Premium
Transfer
word
YES
199
35006144 05/2010
NO
www.barr-thorp.com
System Objects
Function
Description
Initial
state
%SW128...143
ERRORCNXi
where i = 0 to 15
Faulty Fipio Each bit in this group of words indicates the state of a device connected 0
connection to the Fipio bus.
point
Normally set to 1, the presence of a 0 in one of these bits indicates the
occurrence of a fault on this connection point. For a non-configured
connection point, the corresponding bit is always 1.
Table showing correspondence between word bits and connection point address:
Bit 0 Bit 1 Bit 2 Bit 3 Bit 4 Bit 5 Bit 6 Bit 7 Bit 8 Bit 9 Bit
10
Bit
11
Bit
12
Bit
13
Bit
14
Bit
15
%SW128
10
11
12
13
14
15
%SW129
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
%SW130
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
%SW131
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
%SW132
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
%SW133
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
%SW134
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
%SW135
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
%SW136
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
%SW137
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
%SW138
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
%SW139
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
%SW140
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
%SW141
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
%SW142
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
%SW143
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
200
35006144 05/2010
www.barr-thorp.com
System Objects
Function
Description
Initial
state
%SW144
BAOPMOD
Fipio bus
arbiter function
operating
mode
This system word is used to start and stop the bus arbiter function and the
producer / consumer function. It can modify the starting, automatic and
manual modes of the bus in the event of a stop.
z %SW144.0
z = 1: producer / consumer function in RUN.
z = 0: producer / consumer function in STOP (no variables are
exchanged on the bus).
z %SW144.1
z = 1: bus arbiter is in RUN 0.
z = 0: bus arbiter is in STOP (no variables or message scanning is
%SW145
BAPARAM
Modification of
Fipio Bus
Arbiter
Parameters
The bits are set to 1 by the user, and reset to 0 by the system when
initialization has been carried out.
z %SW145.0 = 1: modification of the priority of the bus arbiter; the most
significant byte for this system word contains the value of the priority of
the bus arbiter which is to be applied to the bus.
z %SW145.1 and %SW145.2 are reserved.
z %SW145.3 to %SW145.7 reserved on 0.
z %SW145.8 to %SW145.15: this byte contains the value which is applied
to the bus, according to the value of bit 0.
These parameters can be modified when the bus arbiter is in RUN, but for
them to be taken into account by the application, the BA must be stopped
then restarted.
201
35006144 05/2010
www.barr-thorp.com
System Objects
Word
Symbol
Function
Description
Initial
state
The least significant byte indicates the status of the producer / consumer
function.
The most significant byte indicates the status of the bus arbiter function.
Byte value:
z 16#00: the function does not exist (no Fipio application).
z 16#70: the function has been initialized but is not operational (in STOP).
z 16#F0: the function is currently being executed normally (in RUN).
CAUTION
UNINTENDED SYSTEM BEHAVIOR
Modifying the %SW144 and %SW145 system words can cause the PLC to stop.
Failure to follow these instructions can result in injury or equipment damage.
202
35006144 05/2010
www.barr-thorp.com
System Objects
Function
Description
Initial
state
%SW147
TCRMAST
MAST network
cycle time
A value which is not zero indicates (in ms) the value of the MAST task 0
network cycle time (TCRMAST).
%SW148
TCRFAST
FAST network
cycle time
A value which is not zero indicates (in ms) the value of the first FAST
task network cycle time (TCRFAST).
%SW150
NBFRSENT
Number of
frames sent
This word indicates the number of frames sent by the Fipio channel
manager.
%SW151
NBFRREC
Number of
frames received
%SW152
NBRESENTMSG
Number of
This word indicates the number of messages resent by the Fipio
messages resent channel manager.
203
35006144 05/2010
www.barr-thorp.com
System Objects
Function
Description
Initial
state
%SW153
FipioERR0
List of Fipio
channel
manager faults
204
35006144 05/2010
www.barr-thorp.com
System Objects
z
z
z
bit 12 = "unknown frame type received": within the frame body, the first byte
identifies the type of frame link. A set number of frame types are defined in the
WorldFip standard link protocol. Any other code found within a frame is therefore
an unknown frame type.
bit 13 = "a truncated frame has been received": a frame section is recognized by
a sequence of symbols delimiting the end of the frame, while the destination
station awaits the arrival of a delimiter sequence for the start of the frame.
bit 14 = "unused, non-significant value".
bit 15 = "unused, non-significant value"
205
35006144 05/2010
www.barr-thorp.com
System Objects
Function
Description
Initial
state
%SW154
FipioERR1
z
z
z
z
z
206
35006144 05/2010
www.barr-thorp.com
System Objects
Function
Description
Initial
state
%SW155
NBEXPLFIP
Number of explicit
exchanges on Fipio
%SW160 to
Operating status of
%SW167
the PLC modules
PREMRACK0 to
PREMRACK7
207
35006144 05/2010
www.barr-thorp.com
System Objects
6.4
Page
209
212
213
215
208
35006144 05/2010
www.barr-thorp.com
System Objects
Function Description
Initial
state
%SW60
HSB_CMD
z %SW60.2
z =0 sets PLC B to OFFLINE mode.
z =1 sets PLC B to ONLINE mode.
NOTE: The Primary CPU controller goes to RUN Offline only if the secondary
CPU is RUN Standby.
At Startup of the Secondary PLC, the secondary CPU goes to Online mode
(RUN Standby) only if both bits %SW60.1 and %SW60.2 are set to 1
(regardless of A/B assignment).
If bits %SW60.1 and %SW60.2 are set to 0 simultaneously, a switchover
occurs:
z the Primary controller goes RUN Offline, and,
z the Standby controller now operates as RUN Primary.
To complete the switchover, bits %SW60.1 and %SW60.2 must be set back
to 1. This makes the Offline CPU going back to Online mode (Run Standby).
The OFFLINE/ONLINE mode controlled by the %SW60.1 and %SW60.2 bits
is not linked to the LCD Keypad ONLINE/OFFLINE mode.
z %SW60.3=0 forces Standby PLC to OFFLINE mode if the applications
are different.
z %SW60.4
z =0 authorizes an update of the firmware only after the application has
stopped.
z =1 authorizes an update of the firmware without the application
stopping.
z %SW60.5=1 application transfer request from the Standby to the primary.
z %SW60.8
z =0 address switch on Modbus port 1 during a primary swap.
z =1 no address switch on Modbus port 1 during a primary swap.
z %SW60.9
z =0 address switch on Modbus port 2 during a primary swap.
z =1 no address switch on Modbus port 2 during a primary swap.
209
35006144 05/2010
www.barr-thorp.com
System Objects
Word
Symbol
Function Description
Initial
state
z %SW60.10
z =0 address switch on Modbus port 3 during a primary swap.
z =1 no address switch on Modbus port 3 during a primary swap.
%SW61
HSB_STS
Quantum
status
register
significant.
z =1 the CPU-sync link is not valid. In this case, the contents of the bit 5
210
35006144 05/2010
www.barr-thorp.com
System Objects
Word
Symbol
Function Description
%SW62
Transfer
HSBY_REVERSE0 word
%SW63
HSBY_REVERSE1
%SW64
HSBY_REVERSE2
%SW65
HSBY_REVERSE3
Initial
state
These 4 words may be modified by the master task first section user .
They are then transferred automatically from the Standby processor to
update the primary PLC.
They may be read on the primary PLC and be used as primary application
parameters.
211
35006144 05/2010
www.barr-thorp.com
System Objects
Function
Description
Initial
state
%SW98
CRA_COMPAT_LOW
CRA
Different bits meaning of the word %SW98:
compatibility z %SW98.0 is not used and is set to 0 by default.
low status
z %SW98.1 to %SW98.15
z =0 sets the drop 2 to 16 is not compatible.
register
z =1 sets the drop 2 to 16 is compatible.
%SW99
CRA
Meaning of the different bits of the word %SW99:
CRA_COMPAT_HIGH compatibility z %SW99.0 to %SW99.15
z =0 sets the drop 17 to 32 is not compatible.
high status
z =1 sets the drop 17 to 32 is compatible.
register
%SW100
CCOTF_COUNT
CCOTF
counting
status
register
212
35006144 05/2010
www.barr-thorp.com
System Objects
Function
Description
Initial
state
%SW110
number of
This system word gives information on the size of the
unrestricted memory unrestricted memory area for %M.
area for %M
%SW111
number of
This system word gives information on the size of the
unrestricted memory unrestricted memory area for %MW.
area for %MW
%SW128
NB_P502_CNX
Number of
connections open
%SW129
NB_DENIED_CNX
Number of
This word indicates the number of TCP connections refused
connections refused on the Ethernet link TCP/IP port 502.
%SW130
NB_P502_REF
Number of
messages refused
%SW132 and
%SW133
NB_SENT_MSG
Number of
messages sent
%SW134 and
%SW135
NB_RCV_MSG
Number of
messages received
%SW136
NB_IOS_CNX
Number of devices
scanned
%SW137
NB_IOS_MSG
Number of IO
This word indicates the number of messages received per
Scanning messages second from the IO Scanning service on the Ethernet link
received
TCP/IP port 502.
%SW138
GLBD_ERROR
Global Data
coherence error
%SW139
BW_GLBD_IOS
%SW140
BW_OTHER_MSG
213
35006144 05/2010
www.barr-thorp.com
System Objects
Word
Symbol
Function
Description
Initial
state
%SW141 and
%SW142
IP_ADDR
IP Address
%SW143 and
%SW144
IP_NETMASK
IP subnetwork mask This double word %SDW143 receives the subnetwork mask of 0
the Ethernet link.
%SW145 and
%SW146
IP_GATEWAY
Default Ethernet
gateway address
%SW147 to
%SW149
MAC_ADDR1 to 3
MAC Addresses
%SW150
Coprocessor version This word codes the coprocessor version for 140 CPU 671-60 0
PLCs.
The version is displayed in hexadecimal format.
%SW151
BOARD_STS
Status of Ethernet
link
%SW160 to
%SW167
REFRESH_IO
Device operating
The bits of words %SW160 to %SW167 are associated with
status determined by devices that have been IO scanned.
IO scanning
The bit is set to 0 if the device is faulty, and set to 1 if the device
is operating correctly.
%SW160.0: device No. 1.
%SW160.1: device No. 2.
...........
%SW167.15: device No. 128.
Note: These system words are only available for Quantum
coprocessors, and are unavailable for NOE modules.
%SW168 to
%SW171
VALID_GD
Operating status of
Global Data
0
This word codes the status of the Ethernet link.
Bit 0 =0 if the Ethernet link is stopped
Bit 1 =0
Bit 2: 0= half duplex mode, 1=full duplex
Bit 3 =0
Bits 4 to 11: =7 for Quantum, =6 for Hot Standby Quantum
Bit 12: 0 = 10 Mbits link, 1= 100 Mbits link
Bit 13: 0 = 10/100Base-TX link (twisted pair)
Bit 14: 0
Bit 15: 0 = Ethernet link inactive, 1= Ethernet link active
z
z
z
z
z
z
z
z
z
214
35006144 05/2010
www.barr-thorp.com
System Objects
Function
Description
Initial
state
%SW180 to %SW339
IOHEALTHij
i=1..32, j=1..5
Operating
status of the
PLC modules
%SW340
MB+DIOSLOT
Slot number of
the processor
with Modbus
Plus link
Slot number of the processor with the built-in Modbus Plus link for connection to the first DIO network. The slot number is coded
from 0 to 15.
This word is not available on Quantum safety PLCs.
%SW341 to %SW404
MB+IOHEALTHi
i=1..64
Operating
status of the
distributed
station modules
of the first DIO
network
215
35006144 05/2010
www.barr-thorp.com
System Objects
Word
Symbol
Function
Description
Initial
state
%SW405
NOM1DIOSLOT
Slot number of
the first
interface
module of the
DIO network
%SW406 to %SW469
NOM1DIOHEALTHi
i=1..64
Operating
status of the
distributed
station modules
of the second
DIO network
%SW470
NOM2DIOSLOT
Slot number of
the second
interface
module of the
DIO network
Slot number of module 140 NAME 2 for connection to the third DIO network.
The slot number is coded from 0 to 15.
This word is not available on Quantum safety PLCs.
%SW471 to %SW534
NOM2DIOHEALTHi
i=1..64
Operating
status of the
distributed
station modules
of the third DIO
network
216
35006144 05/2010
www.barr-thorp.com
System Objects
Word
Symbol
Function
Description
Initial
state
%SW535
RIOERRSTAT
RIO error on
start-up
This word stores the start-up error code. This word is always set to 0 when the system is running; in the event of error, the PLC
does not start up, but generates a stop status code
01: I/O assignment length
02: Remote I/O link number
03: Number of stations in the I/O assignment
04: I/O assignment checksum
10: Length of the station descriptor
11: I/O station number
12: Station autonomy time
13: ASCII port number
14: Number of station modules
15: Station already configured
16: Port already configured
17: More than 1024 output points
18: More than 1024 input points
20: Module slot address
21: Module rack address
22: Number of output bytes
23: Number of input bytes
25: First reference number
26: Second reference number
28: Internal bits outside the 16 bit range
30: Unpaired odd output module
31: Unpaired odd input module
32: Unpaired odd module reference
33: Reference 1x after register 3x
34: Reference of dummy module already used
35: Module 3x is not a dummy module
36: Module 4x is not a dummy module
z %SW537:
z most significant byte: counts receiver errors
z least significant byte: counts incorrect station receptions.
z %SW538:
z %SW538.15 = 1, short frame
z %SW538.14 = 1, no end-of-frame
z %SW538.3 = 1, CRC error
z %SW538.2 = 1, alignment error
z %SW538.1 = 1, overrun error
z %SW538.13 to 4 and 0 are unused
217
35006144 05/2010
www.barr-thorp.com
System Objects
Word
Symbol
Function
Description
Initial
state
%SW539
CBERRCNT0
%SW540
CBERRCNT1 to
%SW541
CBERRCNT2
z %SW540:
z most significant byte: counts receiver errors
z least significant byte: counts incorrect station receptions.
z %SW541:
z %SW541.15 = 1, short frame
z %SW541.14 = 1, no end-of-frame
z %SW541.3 = 1, CRC error
z %SW541.2 = 1, alignment error
z %SW541.1 = 1, overrun error
z %SW541.13 to 4 and 0 are unused
%SW542
GLOBERRCNT0
%SW543
GLOBERRCNT1
%SW544
GLOBERRCNT2
Global
communication
status
The words %SW542 to %SW544 are the global communication error words.
z %SW542: displays the global communication status.
z %SW542.15 = 1, communication operating correctly
z %SW542.14 = 1, communication on cable A operating
correctly
z %SW542.13 = 1, communication on cable B operating
correctly
z %SW542.11 to 8 = lost communications counter
z %SW542.7 to 0 = retry totalizer counter.
z %SW543: is the global error totalizer counter for cable A:
z most significant byte: counts the errors detected
z least significant byte: counts "non responses".
z %SW544: is the global error totalizer counter for cable B:
z most significant byte: counts the errors detected
z least significant byte: counts "non responses".
218
35006144 05/2010
www.barr-thorp.com
System Objects
Word
Symbol
Function
Description
Initial
state
%SW545 to %SW547
MODUNHEALTH1
IOERRCNT1
IORETRY1
Status of the
local station
For the PLCs where station 1 is reserved for local input/outputs, the status words %SW545 to %SW547 are used in the following
way.
z %SW545: status of the local station.
z %SW545.15 = 1, all modules are operating correctly.
z %SW545.14 to 8 = unused, always set to 0.
z %SW545.7 to 0 = number of times the module has
appeared defective; the counter loops back at 255.
z %SW546: this is used as a counter for 16-bit input/output
bus errors.
z %SW547: this is used as a counter for 16-bit input/output
bus repetitions.
%SW548 to %SW640
MODUNHEALTHi
IOERRCNTi
IORETRYi
(i=2..32)
Status of
decentralized
stations
station 2:
z most significant byte: counts the errors detected
z least significant byte: counts "non responses".
z %SW550: is the global error totalizer counter for cable B
station 2:
z most significant byte: counts the errors detected
z least significant byte: counts "non responses".
The words:
%SW551 to 553 are assigned to station 3
%SW554 to 556 are assigned to station 4
.......
%SW638 to 640 are assigned to station 32
219
35006144 05/2010
www.barr-thorp.com
System Objects
6.5
Function
Description
Initial
State
Inhibit the I/O error raised by the system when a configured device on the CANopen bus is not present.
This inhibition can be managed with 4 system words
%SW142,143,144,145.
These System words implement a bitlist indicating CANopen
node error to inhibit:
z bit 0 of %SW142 concerns device at node address 1.
z bit 1 of %SW142 concerns device at node address 2.
z ...
z bit15 of %SW145 concerns device at node address 64.
Bit values :
z If the bit is at 0 and device not present, then an error is
raised.
z If the bit is at 1 and device not present, then no error is
raised.
NOTE: The default value is 0.
NOTE: This inhibition can be performed on the fly, but in
order for it to be taken into account, the CANopen Master
must be reset (by setting bit 5 of the output word
.%QW0.0.2.0 to 1).
%SW146 and
%SW147
Modicon M340
220
35006144 05/2010
www.barr-thorp.com
System Objects
Word
Symbol
Function
Description
Initial
State
z
z
z
z
z
221
35006144 05/2010
www.barr-thorp.com
System Objects
222
35006144 05/2010
www.barr-thorp.com
Data Description
35006144 05/2010
Data Description
III
In This Part
This part describes the different data types that can be used in a project, and how
to implement them.
What's in this Part?
This part contains the following chapters:
Chapter
Chapter Name
Page
225
Data Types
233
Data Instances
291
Data References
305
10
223
35006144 05/2010
www.barr-thorp.com
Data Description
224
35006144 05/2010
www.barr-thorp.com
7
Subject of this Chapter
This chapter provides a general overview of:
z
z
z
Page
General
226
227
229
230
231
225
35006144 05/2010
www.barr-thorp.com
General
Introduction
A data item designates an object which can beinstantiated such as:
z
z
a variable,
a function block.
the data instances phase, which defines its storage location and property, which
is:
z located, or
z unlocated.
Illustration
The following are the three phases that characterize the data:
Instantiating a data item consists in allocating it a memory slot according to its type.
Referencing a data item consists in defining a reference for it (name, address, etc.)
allowing it to be accessed in the memory.
226
35006144 05/2010
www.barr-thorp.com
its structure
its format
a list of its attributes
its behavior
227
35006144 05/2010
www.barr-thorp.com
Definitions
Data type families and their definitions.
Family
Definition
EDT
DDT
DFB
228
35006144 05/2010
www.barr-thorp.com
unlocated or
located
Illustration
Memory allocation of instances (dark gray) belonging to the different types.
Definitions
Definition of the memory allocations of data instances.
Data instance
Definition
Unlocated
Located
229
35006144 05/2010
www.barr-thorp.com
Illustration
Possible data references according to data type (dark gray).
230
35006144 05/2010
www.barr-thorp.com
With Allow extended character set option selected, the application is compliant
with the IEC standard
With Allow extended character set option not selected, the user has a certain
degree of flexibility, but the application is not compliant with the IEC standard
The extended character set used for names entered into the application concerns:
z
z
z
DFB (Derived Function Block) user function blocks or DDT (Derived data type)
the internal elements composing a DFB/EFB function block data type or a derived
data type (DDT)
the data instances
characters corresponding to ASCII codes 192 to 223 (except for code 215)
characters corresponding to ASCII codes 224 to 255 (except for code 247)
231
35006144 05/2010
www.barr-thorp.com
232
35006144 05/2010
www.barr-thorp.com
Data Types
35006144 05/2010
Data Types
8
Subject of this Chapter
This chapter describes all the data types that can be used in an application.
What's in this Chapter?
This chapter contains the following sections:
Section
Topic
Page
8.1
8.2
245
8.3
251
8.4
256
8.5
259
8.6
263
8.7
275
8.8
283
8.9
285
8.10
287
234
233
35006144 05/2010
www.barr-thorp.com
Data Types
8.1
Boolean types
Integer types
Time types
Page
235
Boolean Types
237
Integer Types
242
244
234
35006144 05/2010
www.barr-thorp.com
Data Types
235
35006144 05/2010
www.barr-thorp.com
Data Types
Designation
Format
(bits)
Default
value
BOOL
Boolean
0=(False)
EBOOL
0=(False)
INT
Integer
16
DINT
Double integer
32
UINT
Unsigned integer
16
UDINT
32
TIME
32
T=0s
236
35006144 05/2010
www.barr-thorp.com
Data Types
Boolean Types
At a Glance
There are two types of Boolean. These are:
z
z
BOOL type, which contains only the value FALSE (=0) or TRUE (=1)
EBOOL type, which contains the value FALSE (=0) or TRUE (=1) but also
information concerning the management of falling or rising edges and forcing
In the case of the word extracted bit, it is accessible via an address containing the
following information:
z
z
237
35006144 05/2010
www.barr-thorp.com
Data Types
Address settings:
The default value for the bits associated with the EBOOL type is FALSE (=0).
It is accessible via an address specifying the offset of the corresponding byte:
Address settings:
238
35006144 05/2010
www.barr-thorp.com
Data Types
239
35006144 05/2010
www.barr-thorp.com
Data Types
Type
Internal bit
EBOOL
System bit
BOOL
BOOL
%I inputs
Module error bit
BOOL
BOOL
Input bit
EBOOL
%Q outputs
Output bit
EBOOL
value copying
address copying
EBOOL destination
BOOL source
Yes
Yes
EBOOL source
Yes
Yes
BOOL
Yes
No
EBOOL
In ->Yes
In-Out ->No
Out ->Yes
Yes
240
35006144 05/2010
www.barr-thorp.com
Data Types
BOOL
Yes
In ->Yes
In-Out ->No
Out -> Yes
EBOOL
In ->Yes
In-Out ->No
Out -> Yes
Yes
ARRAY[i..j) OF EBOOL
destination
No
ARRAY[i..j) OF
EBOOL source
Yes
No
BOOL (Var:BOOL)
declared variable
Yes
No
EBOOL (Var:EBOOL)
declared variable
No
Yes
Compatibility
EBOOL data types follow the rules below:
z
z
z
z
241
35006144 05/2010
www.barr-thorp.com
Data Types
Integer Types
At a Glance
Integer types are used to represent a value in different bases. These are:
z
z
z
z
NOTE: In decimal representation, if the chosen type is signed, the value can be
preceded by the + sign or - sign (the + sign is optional).
Integer Type (INT)
Signed type with a 16-bit format.
This table shows the range in each base.
Base
from...
to...
Decimal
-32768
32767
Binary
2#1000000000000000
2#0111111111111111
Octal
8#100000
8#077777
Hexadecimal
16#8000
16#7FFF
from...
to...
Decimal
-2147483648
2147483647
Binary
2#100000000000000000000000000 2#011111111111111111111111111
00000
11111
Octal
8#20000000000
8#17777777777
Hexadecimal
16#80000000
16#7FFFFFFF
242
35006144 05/2010
www.barr-thorp.com
Data Types
from...
to...
Decimal
65535
Binary
2#0
2#1111111111111111
Octal
8#0
8#177777
Hexadecimal
16#0
16#FFFF
from...
to...
Decimal
4294967295
Binary
2#0
2#11111111111111111111111111111111
Octal
8#0
8#37777777777
Hexadecimal
16#0
16#FFFFFFFF
243
35006144 05/2010
www.barr-thorp.com
Data Types
days (D)
hours (H)
minutes (M)
seconds (S)
milliseconds (MS)
Entering a Value
This table shows the possible ways of entering the maximum value of the Time type,
according the authorized units of time.
Diagram
Comment
T#4294967295MS
value in milliseconds
T#4294967S_295MS
value in seconds\milliseconds
T#71582M_47S_295MS
value in minutes\seconds\milliseconds
T#1193H_2M_47S_295MS
value in hours\minutes\seconds\milliseconds
T#49D_17H_2M_47S_295MS
value in days\hours\minutes\seconds\milliseconds
244
35006144 05/2010
www.barr-thorp.com
Data Types
8.2
Date type
Time of Day type (TOD)
Date and Time (DT) type
Page
246
248
249
250
245
35006144 05/2010
www.barr-thorp.com
Data Types
Binary
0000
0001
0010
0011
0100
0101
0110
0111
1000
1001
1010 (unused)
1011 (unused)
1100 (unused)
1101 (unused)
1110 (unused)
1111 (unused)
246
35006144 05/2010
www.barr-thorp.com
Data Types
Binary value
0010
0100
0101
0000
Binary value
0111
1000
1001
1001
0011
0000
0001
0110
Designation
Scale (bits)
Default value
DATE
Date
32
D#1990-01-01
TIME_OF_DAY
Time of day
32
TOD#00:00:00
DATE_AND_TIME
64
DT#1990-01-01-00:00:00
247
35006144 05/2010
www.barr-thorp.com
Data Types
Month (09)
Day (20)
0000 1001
0010 0000
Syntax Rules
The Date type is entered as follows: D#<Year>-<Month>-<Day>
This table shows the lower/upper limits in each field.
Field
Limits
Year
[1990,2099]
Month
[01,12]
Day
Comment
[01,31]
[01,30]
[01,29]
[01,28]
Example:
Entry
Comments
D#2001-1-1
d#1990-02-02
248
35006144 05/2010
www.barr-thorp.com
Data Types
Minutes (25)
Seconds (47)
0001 0011
0010 0101
0100 0111
Unused
Syntax Rules
The Time of Day type is entered as follows: TOD#<Hour>:<Minutes>:<Seconds>
This table shows the lower/upper limits in each field.
Field
Limits
Comment
Hour
[00,23]
The left 0 is always displayed, but can be omitted at the time of entry
Minute
[00,59]
The left 0 is always displayed, but can be omitted at the time of entry
Second
[00,59]
The left 0 is always displayed, but can be omitted at the time of entry
Example:
Entry
Comment
TOD#1:59:0
tod#23:10:59
Tod#0:0:0
249
35006144 05/2010
www.barr-thorp.com
Data Types
0010 0000
Hour (13)
Minute (25)
Seconds (47)
Least
significant byte
0001 0011
0010 0101
0100 0111
Unused
Syntax Rules
The Date and Time type is entered as follows:
DT#<Year>-<Month>-<Day>-<Hour>:<Minutes>:<Seconds>
This table shows the lower/upper limits in each field.
Field
Limits
Year
[1990,2099]
Month
[01,12]
Day
[01,31]
Hour
Comment
[01,30]
[01,29]
[01,28]
[00,23]
Minute
[00,59]
Second
[00,59]
Example:
Entry
Comment
DT#2000-1-10-0:40:0
250
35006144 05/2010
www.barr-thorp.com
Data Types
8.3
Representation:
The value of the fixed-point part (Mantissa) is between [0, 1[, and is calculated using
the following formula.
251
35006144 05/2010
www.barr-thorp.com
Data Types
This table gives the values in the different fields according to number type.
e
]0, 255[
[0, 1[
0 or 1
[0, 1[
near
Number type
(1.4E-45)
normalized
denormalized DEN
255
+ infinity (INF)
255
- infinity (-INF)
255
0 or 1
SNAN
255
0 or 1
QNAN
+0
-0
NOTE:
Standard IEC 559 defines two classes of NAN (not a number): QNAN and SNAN.
z QNAN: is a NAN whose bit 22 is set to 1
z SNAN: is a NAN whose bit 22 is set to 0
They behave as follows:
z QNAN do not trigger errors when they appear in operands of a function or an
expression.
z SNAN trigger an error when they appear in operands of a function or an arithmetic
expression (See %SW17 (see page 172) and %S18 (see page 152)).
252
35006144 05/2010
www.barr-thorp.com
Data Types
This table gives the calculation formula of the value of the floating-point number:
Floating-point number
Value
Normalized
Denormalized (DEN)
Scale (bits)
Default value
REAL
32
0.0
253
35006144 05/2010
www.barr-thorp.com
Data Types
E=129
M=8359248
1000001
11111111000110101010000
The gap becomes very important for big values as shown below:
Value
M=8359248
2127
2127
o
NOTE: The gap corresponds to the weight of the less significant bit.
In order to get an expected resolution, it is necessary to define the maximum range
for the calculation according the following formula:
254
35006144 05/2010
www.barr-thorp.com
Data Types
For instance, if the accuracy needs to be = 0.001, the fixed-point part will be:
with:
F (minimum)
3300...65536
0.004
65536...131072
0.008
...
...
524288...1000000
0.063
255
35006144 05/2010
www.barr-thorp.com
Data Types
8.4
The size of the character string can be optimized during the definition of the type
using the STRING[<size>] command, <size> being an unsigned integer UINT
capable of defining a string of between 1 and 65535 ASCII characters.
NOTE: The ASCII characters 0-127 are common to all languages, but the
characters 128-255 are language dependent. Be careful is the language of the Unity
Pro is not the same as the OS language. If the two languages are not the same,
CHAR MODE communication can be disturbed and sending characters greater than
127 cannot be guaranteed to be correct. In particular, if the Stop on Reception
character is greater than 127, it is not taken into account.
256
35006144 05/2010
www.barr-thorp.com
Data Types
Syntax Rules
The entry is preceded by and ends with the quote character "" (ASCII code 16#27).
The $ (dollar) sign is a special character, followed by certain letters which indicate:
z $L or $l, go to the next line (line feed)
z $N or $n, go to the start of the next line (new line)
z $P or $p, go to the next page
z $R or $r, carriage return
z $T or $t tabulation (Tab)
z $$, represents the character $ in a string
z $, represents the quote character in a string
The user can use the syntax $nn to display, in a STRING variable, caracters which
must not be printed. It can be a carriage return (ASCII code 16#0D) for instance.
Examples
Entry examples:
Type
Entry
STRING
ABCD
STRING[4]
john
john
STRING[10]
It$s john
Its john*
STRING[5]
*****
STRING[5]
****
STRING[5]
the number
the no
STRING[13]
0123456789
0123456789***
STRING[5]
$R$L
<cr><lf>***
STRING[5]
$$1.00
$1.00
257
35006144 05/2010
www.barr-thorp.com
Data Types
Variable
declaration
EF output parameter
FB output
parameter
STRING
Fixed size:
16 characters
Fixed size of
16 characters
STRING[<n>]
Fixed size:
n characters
The FB writes a
maximum of
n characters.
258
35006144 05/2010
www.barr-thorp.com
Data Types
8.5
Byte type
Word type
Dword type
Page
260
261
259
35006144 05/2010
www.barr-thorp.com
Data Types
hexadecimal (16#)
octal (8#)
binary (2#)
Scale
(bits)
Default value
BYTE
WORD
16
DWORD
32
260
35006144 05/2010
www.barr-thorp.com
Data Types
Lower limit
Upper limit
Hexadecimal
16#0
16#FF
Octal
8#0
8#377
Binary
2#0
2#11111111
Representation examples:
Data content
00001000
16#8
00110011
8#63
00110011
2#110011
Lower limit
Upper limit
Hexadecimal
16#0
16#FFFF
Octal
8#0
8#177777
Binary
2#0
2#1111111111111111
Representation examples:
Data content
0000000011010011
16#D3
1010101010101010
8#125252
0000000011010011
2#11010011
261
35006144 05/2010
www.barr-thorp.com
Data Types
Lower limit
Upper limit
Hexadecimal
16#0
16#FFFFFFFF
Octal
8#0
8#37777777777
Binary
2#0
2#11111111111111111111111111111111
Representation examples:
Data content
00000000000010101101110011011110
16#ADCDE
00000000000000010000000000000000
8#200000
00000000000010101011110011011110
2#10101011110011011110
262
35006144 05/2010
www.barr-thorp.com
Data Types
8.6
tables (DDT)
structures
z structures concerning input/output data (IODDT)
z structures concerning other data (DDT)
Page
Arrays
264
Structures
267
268
270
273
263
35006144 05/2010
www.barr-thorp.com
Data Types
Arrays
What Is an Array?
It is a data item that contains a set of data of the same type, such as:
elementary data (EDT),
for example:
z a group of BOOL words,
z a group of UINT integer words,
z etc.
Characteristics
An array is characterized by two parameters:
z a parameter which defines its organization (array dimension(s)),
z a parameter that defines the type of data it contains.
NOTE: The most complex organization is the array with six dimensions.
The syntax comprising these two parameters is:
264
35006144 05/2010
www.barr-thorp.com
Data Types
Instancing an array
The instances Tab_1 and Tab_2 are of the same type and the same dimension, the
only difference being that during instancing:
z the Tab_1 type takes the name X,
z the Tab_2 type must be defined (unnamed table).
NOTE: It is beneficial to name the type, as any modification that has to be made will
only be done so once, otherwise there will be as many modifications as there are
instances.
Examples
This table presents the instances of arrays of different dimensions:
Entry
Comments
NOTE: Many functions (READ_VAR, WRITE_VAR for example) dont recognize the
index of an array of words starting by a number different from 0. If you use such an
index the functions will look at the number of words in the array, but not at the
starting index set in the definition of the array.
WARNING
UNEXPECTED APPLICATION BEHAVIOR - INVALID ARRAY INDEX
When applying functions on variables of array type, check that the functions are
compatible with the arrays starting index value when this value is greater than 0.
Failure to follow these instructions can result in death, serious injury, or
equipment damage.
265
35006144 05/2010
www.barr-thorp.com
Data Types
266
35006144 05/2010
www.barr-thorp.com
Data Types
Structures
What is a Structure?
It is a data item containing a set of data of a different type, such as:
z
z
z
NOTE: You can create nested structures (nested DDTs) over 8 levels. Recurring
structures (DDT) are not allowed.
Characteristics
A structure is composed of data which are each characterized by:
z
z
z
a type,
a name, which enables it to be identified,
a comment (optional) describing its role.
267
35006144 05/2010
www.barr-thorp.com
Data Types
tables
structures
Illustration:
Characteristics
A data item belonging to the DDT family is made up of:
z
z
z
z
the type name (see page 231) (32 characters maximum) defined by the user (not
obligatory for tables but recommended) (see page 265)
the type (structure or table)
an optional comment (of a maximum of 1024 characters). Authorized characters
correspond to the ASCII codes 32 to 255
the description (in the case of a structure) of these elements
z the element name (see page 231) (32 characters maximum)
z
NOTE: The total size of a table or of a structure does not exceed 64 Kbytes.
268
35006144 05/2010
www.barr-thorp.com
Data Types
Examples
Definition of types
269
35006144 05/2010
www.barr-thorp.com
Data Types
WARNING
RISK OF INCOMPATIBILITY AFTER CONCEPT CONVERSION
With the Concept programming application, the data structures do not handle any
shift in offsets (each element is set one after the other in the memory, regardless
of its type). Consequently, we recommend that you check everything, in particular
the consistency of the data when using DDTs located on the "State RAM" (risk of
shifts) or functions for communication with other devices (transfers with a different
size from those programmed in Concept).
Failure to follow these instructions can result in death, serious injury, or
equipment damage.
Principle for Modicon M340
The storage principle for Modicon M340 PLCs is as follows:
z elements are stored in the order in which they are declared in the structure,
z the basic element is the byte,
z one alignment rule and function of the element:
z the BOOL and BYTE types are aligned on either even or uneven bytes,
z the INT, WORD and UINT types are aligned on even bytes,
z the DINT, UDINT, REAL, TIME, DATE, TOD, DT and DWORD are aligned on
double words,
z structures and tables are aligned according to the rules of their elements.
270
35006144 05/2010
www.barr-thorp.com
Data Types
WARNING
BAD EXCHANGES BETWEEN A MODICON M340 AND A PREMIUM OR
QUANTUM.
Check if the structure of the exchanged data have the same alignments in the two
projects.
Otherwise, the data will not be exchanged properly.
Failure to follow these instructions can result in death, serious injury, or
equipment damage.
NOTE: It is possible that the alignment of data are not the same when the project is
transferred from the simulator of Unity Pro to a M340 PLC. So check the structure
of the data of the project.
NOTE: Unity Pro indicates where the alignment seems to be different. Check the
corresponding instances in the data editor. See the page of Project settings to know
how enable this option.
Examples
The table below gives some examples of data structures. In the following examples,
structure type DDTs are addressed to %MWi. The words 1st byte corresponds to the
least significant 8 bits and the words 2nd byte corresponds to the most significant
8 bits.
For all the following structures, the first variable is mapped to the address %MW100:
First Memory Address
Modicon M340
Para_PWM1
%MW100 (1 byte)
%MW100 (1 byte)
t_period: TIME
t_min: TIME
in_max: REAL
st
st
Mode_TOTALIZER
byte)
%MW100 (1 byte)
hold: BOOL
rst: BOOL
%MW100
(1st
st
271
35006144 05/2010
www.barr-thorp.com
Data Types
%MW100
(1st
byte)
%MW100
(1st
byte)
outc: REAL
cter: UINT
done: BOOL
The table below gives two examples of data structures with arrays:
First Memory Address
Modicon M340
Premium
EHC105_Out
Quit: BYTE
CPCfg_ex
%MW100 (1st byte)
Profile_type: INT
Interp_type: INT
Nb_of_coords: INT
Nb_of_points: INT
Master_offset: DINT
%MW110
(1st
byte)
%MW109
-
(1st
byte)
Follower_offset: INT
Reserved for the alignment
272
35006144 05/2010
www.barr-thorp.com
Data Types
The IODDT types are structures whose size (the number of elements of which they
are composed) depends on the channel or the input\output module that they
represent.
A given input\output module can have more than one IODDT.
The difference with a conventional structure is that:
z
z
273
35006144 05/2010
www.barr-thorp.com
Data Types
Examples
IODDT structure for an input\output channel of an analog module
274
35006144 05/2010
www.barr-thorp.com
Data Types
8.7
Page
276
278
280
275
35006144 05/2010
www.barr-thorp.com
Data Types
the Elementary Function Block (EFB) (see page 227) type family
the User function block (DFB) (see page 227) type family
Illustration:
Illustration
Function block:
276
35006144 05/2010
www.barr-thorp.com
Data Types
Ladder language
Structured Text language
Instruction List language
Functional block language FBD
A DFB type can have one or more instances where each instance is referenced by
a name (symbol) and possesses DFB data types.
Elementary Function Block (EFB)
Elementary Function Blocks (EFBs) are provided by the manufacturer and are
programmed in C language.
The user can create his own EFB for which he will need an optional software tool
"SDKC".
An EFB type can have one or more instances where each instance is referenced by
a name (symbol) and possesses EFB type data.
277
35006144 05/2010
www.barr-thorp.com
Data Types
the type name (see page 231), defined by the user for the DFBs,
an optional comment. The authorized characters correspond to the ASCII codes
32 to 255,
the application interface data:
z the inputs, not accessible in read\write mode from the application, but read by
the function block code,
z the inputs\outputs, not accessible in read\write mode from the application, but
read and written by the function block code,
z the outputs, accessible in read only from the application and read and written
by the function block code.
the code:
z for DFBs, this is written by the user in PLC language (Structured Text,
Instruction List, Ladder language, function block language), and is structured
in a single section if the IEC option is active, or may be structured in several
sections if this option is inactive
z for EFBs, this is written in C language.
278
35006144 05/2010
www.barr-thorp.com
Data Types
Characteristics
This table gives the characteristics of the elements that make up a type:
Element
EFB
DFB
Name
32 characters
32 characters
Comment
1024 characters
1024 characters
Input Data
32 maximum
32 maximum
Input/Output data
32 maximum
32 maximum
Output data
32 maximum
32 maximum
Number of interfaces
(Inputs+Outputs+Inputs/Outputs)
32 maximum (2)
32 maximum (2)
Public data
No limits (1)
No limits (1)
Private data
No limits (1)
No limits (1)
Programming language
C language
Language:
Structured Text,
Instruction List,
Ladder language,
function block.
z
z
z
z
Section
279
35006144 05/2010
www.barr-thorp.com
Data Types
z
z
z
z
z
EDT
types
DDT types
ANY... Function
block
types
IODDT
Unname
d tables
ANY_A
RRAY
other
Input data
Yes
No
Yes
Yes
Yes
Yes
(2)
No
Input/output data
Yes (1)
Yes
Yes
Yes
Yes
Yes
(2)
No
Output data
Yes
No
Yes
No
Yes
Yes
(2) (3)
No
Public data
Yes
No
Yes
No
Yes
No
No
Private data
Yes
No
Yes
No
Yes
No
Yes
(1): not authorized for the EBOOL type static data used on Quantum PLCs
(2): not authorized for BOOL and EBOOL type data
(3): must be completed during the execution of the DFB, and not usable outside the
DFB
280
35006144 05/2010
www.barr-thorp.com
Data Types
EDT
types
DDT types
IODDT
Unnamed
tables
ANY_A
RRAY
other
ANY...
Function
block
types
Input data
Yes
No
No
Yes
Yes
Yes (1)
No
Input/output data
Yes
Yes
No
Yes
Yes
Yes (1)
No
Output data
Yes
No
No
No
Yes
No
Public data
Yes
No
No
No
Yes
No
No
Private data
Yes
No
No
No
Yes
No
Yes
Yes
Yes
No
No
Input/output data
No
No
Yes
Yes
No
No
Public data
Yes
Yes
Private data
Yes
No
281
35006144 05/2010
www.barr-thorp.com
Data Types
Yes
Yes
No
No
Input/output data
No
No
Yes
No
No
Public data
Yes
Yes
Private data
Yes
No
WARNING
UNEXPECTED APPLICATION BEHAVIOR - INVALID ARRAY INDEX
When using EFBs and DFBs on variables of array type, only use arrays with
starting index=0.
Failure to follow these instructions can result in death, serious injury, or
equipment damage.
282
35006144 05/2010
www.barr-thorp.com
Data Types
8.8
inputs
input/outputs
outputs
ANY_ARRAY_WORD
ANY_ARRAY_UINT
ANY_ARRAY_UDINT
ANY_ARRAY_TOD
ANY_ARRAY_TIME
ANY_ARRAY_STRING
ANY_ARRAY_REAL
ANY_ARRAY_INT
ANY_ARRAY_EBOOL
ANY_ARRAY_DWORD
ANY_ARRAY_DT
ANY_ARRAY_DINT
ANY_ARRAY_DATE
ANY_ARRAY_BYTE
ANY_ARRAY_BOOL
283
35006144 05/2010
www.barr-thorp.com
Data Types
Example
This gives us the following DFB:
NOTE: The authorized objects for the various parameters are defined in this table
(see page 555).
284
35006144 05/2010
www.barr-thorp.com
Data Types
8.9
Illustration:
NOTE: The two structure types SFCSTEP_STATE and SFCSTEP_TIMES are also
linked to each Macro step of the sequential function chart.
Definition of the SFCSTEP_STATE Structure Type
This structure includes all types of data linked to the status of the step or of the
Macro step.
These data types are:
z
z
z
z
x: BOOL elementary data type (EDT) containing the value TRUE when the step
is active,
t: TIME elementary data type (EDT) containing the activity time of the step. When
deactivated, the step value is maintained until the next activation,
tminErr: BOOL elementary data type (EDT) containing the value TRUE if the
activity time of the step is less than the minimum programmed activity time,
tmaxErr: BOOL elementary data type (EDT) containing the value TRUE if the
activity time of the step is greater than the maximum programmed activity time,
These data types are accessible from the application in read only mode.
285
35006144 05/2010
www.barr-thorp.com
Data Types
delay: TIME elementary data type (EDT), defining the polling delay time of the
transition situated downstream from the active step,
tmin: TIME elementary data type (EDT) containing the minimum value during
which the step must at least be executed. If this value is not respected the data
tmin.Err switches to the value TRUE,
tmax: TIME elementary data type (EDT) containing the maximum value during
which the step must at least be executed. If this value is not respected the data
tmax.Err switches to the value TRUE.
These data types are only accessible from the SFC editor.
Data Access Syntax of the Structure SFCSTEP_STATE
The instance names of this structure correspond to the names of the steps or macro
steps of the sequential function chart
Syntax
Comment
Name_Step.x
Name_Step.t
Used to find out the current or total activation time for the step
Name_Step.tminErr
Used to find out if the minimum activation time of the step is less than
the time programmed in Name_Step.tmin
Name_Step.tmaxErr
Used to find out if the maximum activation time of the step is greater
than the time programmed in Name_Step.tmax
286
35006144 05/2010
www.barr-thorp.com
Data Types
8.10
There is no compatibility whatsoever between two data types, even if they belong to
the same sub-family.
Derived Data Type (DDT) Family
The Derived Data Type (DDT) family contains the following sub-families:
z
z
287
35006144 05/2010
www.barr-thorp.com
Data Types
ELEMENT_1
ELEMENT_1
ELEMENT_2
ELEMENT_3
ELEMENT_4
YES
NO
NO
NO
NO
ELEMENT_2
YES
ELEMENT_3
NO
NO
ELEMENT_4
NO
NO
NO
NO
288
35006144 05/2010
www.barr-thorp.com
Data Types
and type...
are...
TAB_1
TAB_2
incompatible
TAB_2
TAB_3
compatible
TAB_4
TAB_5
compatible
TAB_4[25]
TAB_5[28]
compatible
289
35006144 05/2010
www.barr-thorp.com
Data Types
Rules:
A conventional data type is compatible with the genetic data types related to it
hierarchically.
A generic data type is compatible with the generic data types related to it
hierarchically.
Example:
290
35006144 05/2010
www.barr-thorp.com
Data Instances
35006144 05/2010
Data Instances
9
What's in this Chapter?
This chapter describes data instances and their characteristics.
These instances can be:
z
z
z
Page
292
296
298
291
35006144 05/2010
www.barr-thorp.com
Data Instances
NOTE: Sequential Function Chart (SFC) data type instances are created when they
are inserted in the application program, with a default name that the user can modify.
292
35006144 05/2010
www.barr-thorp.com
Data Instances
293
35006144 05/2010
www.barr-thorp.com
Data Instances
Examples:
NOTE: Sequential Function Chart (SFC) data type instances are created the
moment they are inserted in the application program, with a default name that the
user can modify.
294
35006144 05/2010
www.barr-thorp.com
Data Instances
Constant
%Mi
System
Input/Output
%Si
%Q, %I
%MWi
%KWi
%MDi (1)
%KDi (1)
%SWi
%QD, %ID
%QW, %IW
%MFi (1)
%KFi (1)
%QF, %IF
Network
%NW
Legend
(1) Not available for Modicon M340
NOTE: Located data instances can be used by a direct addressing in the program
Example:
z Var_1: DINT AT %MW10
;%MW10 and %MW11 are both used. %MD10 direct adressing can be used or
Var_1 in the program.
295
35006144 05/2010
www.barr-thorp.com
Data Instances
its name (see page 231) (except for the direct addressing data instances
(see page 298))
its topological address (except for unlocated data type instances)
its data type, which can belong to one of the following families:
z Elementary Data Type (EDT)
z Derived Data Type (DDT)
z Function Block data type (EFB\DFB)
z Sequential Function Chart data type (SFC)
an optional descriptive comment (1024 characters maximum). Authorized
characters correspond to the ASCII codes 32 to 255
Name
Step
Macro step
296
35006144 05/2010
www.barr-thorp.com
Data Instances
SFC object
Name
Transition
NOTE: Instance names do not include the name of the section in which the instance
is used, since it can be used in different sections of the application.
Access to an Element of a DDT Family Instance
The access syntax is as follows:
Rule:
The maximum size of the access syntax is 1024 characters, and the possible limits
of a derived data type are as follows:
z
z
z
297
35006144 05/2010
www.barr-thorp.com
Data Instances
%M Internal Variables
Access syntax:
Syntax
Format
Example
Program
access rights
Bit
%M<i> or
%MX<i>
R/W
Word
%MW<i>
16 bits (INT)
%MW10
R/W
Word extracted
bit
%MW<i>.<j>
1 bit (BOOL)
%MW15.5
R/W
Double word
%MD<i> (1)
32 bits (DINT)
%MD8
R/W
Real (floating
point)
%MF<i> (1)
32 bits (REAL)
%MF15
R/W
Legend
(1): Not available for Modicon M340.
<i> represents the instance number (starts a 0 for Premium and 1 for Quantum).
For Modicon M340 double-type instance (double word) or floating instance (real)
must be located in an integer type %MW. The index <i> of the %MW has to be even.
NOTE: The %M<i> or %MX<i> data detect edges and manage forcing.
298
35006144 05/2010
www.barr-thorp.com
Data Instances
Memory organization:
Format
Program access
rights
Word constant
%KW<i>
16 bits (INT)
%KD<i> (1)
32 bits (DINT)
%KF<i> (1)
32 bits (REAL)
Legend
(1): Not available for Modicon M340.
299
35006144 05/2010
www.barr-thorp.com
Data Instances
%I Constants
Access syntax:
Syntax
Format
Program access
rights
Bit constant
%I<i>
3 bits (EBOOL)
Word constant
%IW<i>
16 bits (INT)
Format
Program
access rights
Bit
R/W or R
Word
%SW<i>
R/W or R
32 bits (INT)
Format
Program
access rights
Common word
%NW<n>.<s>.<d>
16 bits (INT)
R\W or R
%NW<n>.<s>.<d>.<j>
1 bit (BOOL)
R\W or R
300
35006144 05/2010
www.barr-thorp.com
Data Instances
Example
Program
access rights
%CH<@mod>.<c>
%CH4.3.2
%I<@mod>.MOD.ERR
%I4.2.MOD.ERR
%I<@mod>.<c>.ERR
%I4.2.3.ERR
%I<@mod>.<c>
%I4.2.3
%I<@mod>.<c>.<d>
%I4.2.3.1
%IW<@mod>.<c>
%IW4.2.3
%IW<@mod>.<c>.<d>
%IW4.2.3.1
%ID<@mod>.<c>
%ID4.2.3
%ID<@mod>.<c>.<d>
%ID4.2.3.2
%IF<@mod>.<c>
%IF4.2.3
%IF<@mod>.<c>.<d>
%IF4.2.3.2
%Q<@mod>.<c>
%Q4.20.3
R/W
%Q<@mod>.<c>.<d>
%Q4.20.30.1
R/W
%QW<@mod>.<c>
%QW4.2.3
R/W
%Q outputs
EBOOL type bit
%QW<@mod>.<c>.<d>
%QW4.2.3.1
R/W
%QD<@mod>.<c>
%QD4.2.3
R/W
%QD<@mod>.<c>.<d>
%QD4.2.3.2
R/W
%QF<@mod>.<c>
%QF4.2.3
R/W
%QF<@mod>.<c>.<d>
%QF4.2.3.2
R/W
%MW<@mod>.<c>
%MW4.2.3
R/W
%MW<@mod>.<c>.<d>
%MW4.2.3.1
R/W
%MD<@mod>.<c>
%MD4.2.3
R/W
%MD<@mod>.<c>.<d>
%MD4.2.3.2
R/W
%M variables (Premium)
INT type word
%MF<@mod>.<c>
%MF4.2.3
R/W
%MF<@mod>.<c>.<d>
%MF4.2.3.2
R/W
301
35006144 05/2010
www.barr-thorp.com
Data Instances
Syntax
Example
Program
access rights
%KW<@mod>.<c>
%KW4.2.3
%KW<@mod>.<c>.<d>
%KW4.2.3.1
%KD<@mod>.<c>
%KD4.2.3
%KD<@mod>.<c>.<d>
%KD4.2.3.12
%KF<@mod>.<c>
%KF4.2.3
%KF<@mod>.<c>.<d>
%KF4.2.3.12
<@mod = \<b>.<e>\<r>.<m>
<b> bus number (omitted if station is local).
<e> device connection point number (omitted if station is local, the connection point
is also called Drop for Quantum users).
<r> rack number.
<m> module slot
<c> channel number (0 to 999) or MOD reserved word.
<d> data number (0 to 999) or ERR reserved word (optional if 0 value). For
Modicon M340 <d> is always even.
302
35006144 05/2010
www.barr-thorp.com
Data Instances
Examples: local station and station on bus for Modicon M340 PLCs.
303
35006144 05/2010
www.barr-thorp.com
Data Instances
Examples: local station and station on bus for Quantum and Premium PLCs.
304
35006144 05/2010
www.barr-thorp.com
Data References
35006144 05/2010
Data References
10
What's in this Chapter?
This chapter provides the references of data instances.
These references can be:
z
z
z
value-based references,
name-based references,
address-based references.
Page
306
308
311
315
305
35006144 05/2010
www.barr-thorp.com
Data References
Booleans
z BOOL
z EBOOL
integers
z INT
z UINT
z DINT
z UDINT
z TIME
reals
z REAL
character strings
z STRING
The programming software goes beyond the scope of the standard by adding the bit
string types.
z
z
z
BYTE
WORD
DWORD
306
35006144 05/2010
www.barr-thorp.com
Data References
Type of instance
I am a character string
STRING
T#1s
TIME
D#2000-01-01
DATE
TOD#12:25:23
TIME_OF_DAY
DT#2000-01-01-12:25:23
DATE_AND_TIME
16#FFF0
WORD
UINT
DWORD
307
35006144 05/2010
www.barr-thorp.com
Data References
308
35006144 05/2010
www.barr-thorp.com
Data References
Structures:
The user chooses a name (symbol) which can be used to access the data instance:
309
35006144 05/2010
www.barr-thorp.com
Data References
310
35006144 05/2010
www.barr-thorp.com
Data References
NOTE: Instances %MD<i>, %MF<i>, %KD<i>, and %KF<i> are not available for
Modicon M340.
Reference by Direct Addressing
Addressing is considered direct when the address of the instance is fixed, or, in
other words, when it is written into the program.
Examples:
311
35006144 05/2010
www.barr-thorp.com
Data References
Object<j>
%M<i>[index]
<j>=<i> + <index>
%MW<i>[index]
<j>=<i> + <index>
%KW<i>[index]
<j>=<i> + <index>
%MD<i>[index]
<j>=<i> + (<index> x 2)
%KD<i>[index]
<j>=<i> + (<index> x 2)
%MF<i>[index]
<j>=<i> + (<index> x 2)
%KF<i>[index]
<j>=<i> + (<index> x 2)
Examples:
312
35006144 05/2010
www.barr-thorp.com
Data References
Examples:
Example:
MyByte is a variable of type BYTE. MyByte.i is a valid BOOL if 0 <= i <= 7
MyByte.0, MyByte.3 and MyByte.7 are valid BOOL.
MyByte.8 is invalid.
313
35006144 05/2010
www.barr-thorp.com
Data References
Address
Write access
%Ix.i:L
No
%Qx.i:L
Yes
Internal bits
%Mi:L
Yes
Address
Write access
Internal words
%MWi:L
%MDi:L
%MFi:L
Yes
Constant words
%KWi:L
%KDi:L
%KFi:L
No
System words
%SW50:4
Yes
Examples:
314
35006144 05/2010
www.barr-thorp.com
Data References
Some rules have been defined in order to avoid conflicts occurring. This means that
it is necessary to differentiate between the different domains of application of data
What is a Domain?
It is an area of the application from which a variable can or cannot be accessed, such
as:
z
315
35006144 05/2010
www.barr-thorp.com
Data References
Rules
This table defines whether or not it is possible to use a name that already exists in
the application for newly-created elements:
Application
Content ->
New elements
(below)
Section
SR
DDT/IO
DDT
FB
type
FB
Instances
EF
Variable
Section
No
No
Yes
Yes
Yes
Yes
Yes
SR
No
No
Yes
Yes
No
(1)
No
DDT/IODDT
No
No
No
No (4)
No
No (4) No
FB type
Yes
Yes
No
No
(3)
No
(3)
FB Instances
No
No
No
Yes
No
Yes
No
EF
Yes
(2)
No
No
No
No
No
Variable
Yes
No
Yes
Yes
No
(1)
No
(1): An instance belonging to the application domain cannot have the same name as
an EF.
(2): An instance belonging to the type domain (internal variable) can have the same
name as an EF. The EF in question cannot be used in this type.
(3): The creation or import of EFB/DFBs with the same name as an existing instance
are prohibited.
(4): An DDT/IODDT element might have the same name of an FB/EF, however it is
not advised as the FB/EF should not be used in the application.
NOTE: A number of additional considerations to the rules given in the table are listed
below, specifying that:
z
z
z
Within a type, an instance (internal variable) cannot have the same name as the
type name of the object to which it belongs,
There is no conflict between the name of an instance belonging to a section of
the application and the name of the instance belonging to a section of a DFB,
There is no conflict between the name of a section belonging to a task and the
name of the section belonging to a DFB.
316
35006144 05/2010
www.barr-thorp.com
Programming Language
35006144 05/2010
Programming Language
IV
Contents of this Part
This part describes the syntax of the programming languages that are available.
What's in this Part?
This part contains the following chapters:
Chapter
Chapter Name
Page
11
319
12
343
13
387
14
445
15
493
317
35006144 05/2010
www.barr-thorp.com
Programming Language
318
35006144 05/2010
www.barr-thorp.com
11
Overview
This chapter describes the function block language FBD which conforms to
IEC 61131.
What's in this Chapter?
This chapter contains the following topics:
Topic
Page
320
322
Subroutine Calls
331
Control Elements
332
Link
333
Text Object
335
336
338
Loop Planning
342
319
35006144 05/2010
www.barr-thorp.com
Objects
The objects of the FBD programming language (Function Block Diagram) help to
divide a section into a number of:
z EFs and EFBs (Elementary Functions (see page 322) and Elementary Function
Blocks (see page 322)),
z DFBs (Derived Function Blocks) (see page 323),
z Procedures (see page 324) and
z Control Elements (see page 332).
These objects, combined under the name FFBs, can be linked with each other by:
z Links (see page 333) or
z Actual Parameters (see page 324).
Comments regarding the section logic can be provided using text objects (see Text
Object, page 335).
320
35006144 05/2010
www.barr-thorp.com
Section Size
One FBD section consists of a window containing a single page.
This page has a grid background. A grid unit consists of 10 coordinates. A grid unit
is the smallest possible space between 2 objects in an FBD section.
The FBD programming language is not cell oriented but the objects are still aligned
with the grid coordinates.
An FBD section can be configured in number of cells (horizontal grid coordinates
and vertical grid coordinates).
IEC Conformity
For a description of the extent to which the FBD programming language conforms
to IEC, see IEC Conformity (see page 637).
321
35006144 05/2010
www.barr-thorp.com
Elementary Function
Elementary functions (EF) have no internal states. If the input values are the same,
the value on the output is the same every time the function is called. For example,
the addition of two values always gives the same result.
An elementary function is represented graphically as a frame with inputs and one
output. The inputs are always represented on the left and the output is always on the
right of the frame.
The name of the function, i.e. the function type, is displayed in the center of the
frame.
The execution number (see page 336) for the function is shown to the right of the
function type.
The function counter is shown above the frame. The function counter is the
sequential number of the function within the current section. Function counters
cannot be modified.
Elementary Function
322
35006144 05/2010
www.barr-thorp.com
DFB
Derived function blocks (DFBs) have the same properties as elementary function
blocks. The user can create them in the programming languages FBD, LD, IL, and/or
ST.
The only difference to elementary function blocks is that the derived function block
is represented as a frame with double vertical lines.
Derived Function Block
323
35006144 05/2010
www.barr-thorp.com
Procedure
Procedures are functions viewed technically.
The only difference to elementary functions is that procedures can occupy more
than one output and they support data type VAR_IN_OUT.
Procedures are a supplement to IEC 61131-3 and must be enabled explicitly.
To the eye, procedures are no different than elementary functions.
Procedure
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.
Formal and 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.
324
35006144 05/2010
www.barr-thorp.com
Only one object (actual parameter) of the following types may be linked to FFB
inputs:
z Variable
z Address
z Literal
z ST Expression (see page 495)
ST expressions on FFB inputs are a supplement to IEC 61131-3 and must be
enabled explicitly.
z Link
The following combinations of objects (actual parameters) can be linked to FFB
outputs:
z one variable
z a variable and one or more connections (but not for VAR_IN_OUT
(see page 330) outputs)
z an address
z an address and one or more connections (but not for VAR_IN_OUT
(see page 330) outputs)
z one or more connections (but not for VAR_IN_OUT (see page 330) outputs)
The data type of the object to be linked must be the same as that of the FFB
input/output. If all actual parameters consist of literals, a suitable data type is
selected for the function block.
Exception: For generic FFB inputs/outputs with data type ANY_BIT, it is possible to
link objects of data type INT or DINT (not UINT and UDINT).
This is a supplement to IEC 61131-3 and must be enabled explicitly.
Example:
Allowed:
Not allowed:
325
35006144 05/2010
www.barr-thorp.com
Not all formal parameters have to be assigned an actual parameter. However, this
does not apply in the case of negated pins. These must always be assigned an
actual parameter. This is also the case with some formal parameter types. These
types are shown in the following table.
Table of formal parameter types:
Parameter type
EDT
EFB: Input
STRING
ARRAY
ANY_ARRAY IODDT
STRUCT FB
ANY
EFB: VAR_IN_OUT +
EFB: Output
DFB: Input
DFB: VAR_IN_OUT +
DFB: Output
EF: Input
EF: VAR_IN_OUT
EF: Output
Procedure: Input
Procedure:
VAR_IN_OUT
Procedure: Output
not applicable
FFBs that use actual parameters on the inputs that have not yet received any value
assignment, work with the initial values of these actual parameters.
If no value is allocated to a formal parameter, then the initial value will be used for
executing the function block. If no initial value has been defined then the default
value (0) is used.
If a formal parameter is not assigned a value and the function block/DFB is
instanced more than once, then the subsequent instances are run with the old value.
Public Variables
In addition to inputs and outputs, some function blocks also provide public variables.
These variables transfer statistical values (values that are not influenced by the
process) to the function block. They are used for setting parameters for the function
block.
Public variables are a supplement to IEC 61131-3.
The assignment of values to public variables is made using their initial values.
326
35006144 05/2010
www.barr-thorp.com
Public variables are read via the instance name of the function block and the names
of the public variables.
Example:
Private Variables
In addition to inputs, outputs and public variables, some function blocks also provide
private variables.
Like public variables, private variables are used to transfer statistical values (values
that are not influenced by the process) to the function block.
Private variables can not be accessed by user program. These type of variables can
only be accessed by the animation table.
NOTE: Nested DFBs are declared as private variables of the parent DFB. So their
variables are also not accessible through programming, but trough the animation
table.
Private variables are a supplement to IEC 61131-3.
Programming Notes
Attention should be paid to the following programming notes:
z FFBs are only executed if the input EN=1 or if the input EN is grayed out (see
also).EN and ENO (see page 328)
z Boolean inputs and outputs can be inverted.
z Special conditions apply when using VAR_IN_OUT variables (see page 330).
z Function block/DFB instances can be called multiple times (also see Multiple
Function Block Instance Call (see page 328)).
327
35006144 05/2010
www.barr-thorp.com
328
35006144 05/2010
www.barr-thorp.com
EN/ENO handling with function blocks that have one variable and one link as
output parameters:
Functions/Procedures
As defined in IEC61131-3, the outputs from deactivated functions (EN input set to
"0") are undefined. (The same applies to procedures.)
Here nevertheless an explanation of the output statuses in this case:
z EN/ENO handling with function/procedure blocks that (only) have one link as
an output parameter:
35006144 05/2010
www.barr-thorp.com
The following special features are to be noted when using FFBs with VAR_IN_OUT
variables.
z All VAR_IN_OUT inputs must be assigned a variable.
z Via graphical links only VAR_IN_OUT outputs with VAR_IN_OUT inputs can be
connected.
z Only one graphical link can be connected to a VAR_IN_OUT input/output.
z A combination of variable/address and graphical connections is not possible for
VAR_IN_OUT outputs).
z No literals or constants can be connected to VAR_IN_OUT inputs/outputs.
z No negations can be used on VAR_IN_OUT inputs/outputs.
z Different variables/variable components can be connected to the VAR_IN_OUT
input and the VAR_IN_OUT output. In this case the value of the variables/variable
component on the input is copied to the at the output variables/variable
component.
330
35006144 05/2010
www.barr-thorp.com
Subroutine Calls
Calling a Subroutine
In FBD, subroutines are called using the following blocks.
The subroutine to be called must be located in the same task as the FBD section
called.
Subroutines can also be called from within subroutines.
Subroutine calls are a supplement to IEC 61131-3 and must be enabled explicitly.
In SFC action sections, subroutine calls are only allowed when Multitoken Operation
is enabled.
331
35006144 05/2010
www.barr-thorp.com
Control Elements
Introduction
Control elements are used for executing jumps within an FBD section and for
returning from a subroutine (SRx) or derived function block (DFB) to the main
program.
Control Elements
The following control elements are available.
Designation Representation
Description
Jump
Label
Return
LABEL:
35006144 05/2010
www.barr-thorp.com
Link
Description
Links are vertical and horizontal connections between FFBs.
Representation
The link coordinates are identified by a filled circle.
333
35006144 05/2010
www.barr-thorp.com
Programming Notes
Attention should be paid to the following programming notes:
Links can be used for any data type.
z The data types of the inputs/outputs to be linked must be the same.
z Several links can be connected with one FFB output. Only one may be linked with
an FFB input however.
z Inputs and outputs may be linked to one-another. Linking more than one output
together is not possible. That means that no OR connection is possible using
links in FBD. An OR function is to be used in this case.
z Overlapping links with other objects is permitted.
z Links may not be used to create loops since the sequence of execution in this
case cannot be clearly determined in the section. Loops must be created using
actual parameters (see Loop Planning, page 342).
z To avoid links crossing each other, links can also be represented in the form of
connectors.
The source and target for the connection are labeled with a name that is unique
within the section.
The connector name has the following structure depending on the type of source
object for the connection:
z For functions: "Function counter/formal parameter" for the source of the
connection
z
For function blocks: "Instance name/formal parameter" for the source of the
connection
334
35006144 05/2010
www.barr-thorp.com
Text Object
Description
Text can be positioned as text objects using FBD Function Block language. The size
of these text objects depends on the length of the text. The size of the object,
depending on the size of the text, can be extended vertically and horizontally to fill
further grid units. Text objects may not overlap with FFBs; however they may
overlap with links.
335
35006144 05/2010
www.barr-thorp.com
336
35006144 05/2010
www.barr-thorp.com
Priorities
Priorities in Defining the Signal Flow Within a Section.
Priority
Rule
Description
Link
User Definition
Network by
Network
Output Sequence
Rung by Rung
Example
Example of the Execution Sequence of Objects in an FBD Section:
337
35006144 05/2010
www.barr-thorp.com
338
35006144 05/2010
www.barr-thorp.com
Network Positions
The correct execution sequence can be achieved by changing the position of the
networks in the section (see also Original Situation, page 338).
339
35006144 05/2010
www.barr-thorp.com
Explicit Definition
The correct execution sequence can be achieved by explicitly changing the
execution sequence of an FFB. To indicate that which FFBs had their execution
order changed, the execution number is shown in a black field (see also Original
Situation, page 338).
NOTE: Only one reference of an instance is allowed, e.g. the instance ".7" may only
be referenced once.
340
35006144 05/2010
www.barr-thorp.com
FFB Positions
The position of FFBs only influences the execution sequence if more than one FFB
is linked to the same output of the "calling" FFB (see also Original Situation,
page 338).
In the first network, block positions .4 and .5 are switched. In this case (common
origins for both block inputs) the execution sequence of both blocks is switched as
well (processed from top to bottom).
In the second network, block positions .7 and .8 are switched. In this case (different
origins for the block inputs) the execution sequence of the blocks is not switched
(processed in the order the block outputs are called).
341
35006144 05/2010
www.barr-thorp.com
Loop Planning
Non-Permitted Loops
Configuring loops exclusively via links is not permitted since it is not possible to
clearly specify the signal flow (the output of one FFB is the input of the next FFB,
and the output of this one is the input of the first).
Non-permitted Loops via Links
342
35006144 05/2010
www.barr-thorp.com
12
Overview
This chapter describes the ladder diagram language LD which conforms to
IEC 611311.
What's in this Chapter?
This chapter contains the following topics:
Topic
Page
344
Contacts
346
Coils
347
349
Control Elements
359
361
Links
363
Text Object
367
Edge Recognition
368
377
Loop Planning
379
381
343
35006144 05/2010
www.barr-thorp.com
344
35006144 05/2010
www.barr-thorp.com
Objects
The objects of the LD programming language help to divide a section into a number
of:
z Contacts (see page 346)
z Coils (see page 347)
z EFs and EFBs (Elementary Functions (see page 349) and Elementary Function
Blocks (see page 350))
z DFBs (Derived Function Blocks (see page 351))
z Procedures (see page 351)
z Control Elements (see page 359) and
z Operation and Comparison blocks (see page 361) that represent an extension to
IEC 61131-3
These objects can be connected with each other by means of:
z Links (see page 363) or
z Actual Parameters (see page 352) (FFBs only).
Comments regarding the section logic can be provided using text objects (see Text
Object, page 367).
Section Size
One LD section consists of a window containing a single page.
This page has a grid that divides the section into rows and columns.
A width of 11-64 columns and 17-2000 lines can be defined for LD sections.
The LD programming language is cell oriented, i.e. only one object can be placed in
each cell.
Processing Sequence
The processing sequence of the individual objects in an LD section is determined by
the data flow within the section. Networks connected to the left power rail are
processed from top to bottom (link to the left power rail). Networks that are
independent of each other within the section are processed according to their
position (from top to bottom) (see also Execution Sequence and Signal Flow,
page 377).
IEC Conformity
For a description of IEC conformity for the LD programming language, see IEC
Conformity (see page 637).
345
35006144 05/2010
www.barr-thorp.com
Contacts
Introduction
A contact is an LD element that transfers a status on the horizontal link to its right
side. This status is the result of a Boolean AND operation on the status of the
horizontal link on the left side with the status of the relevant Boolean actual
parameter.
A contact does not change the value of the relevant actual parameter.
Contacts take up one cell.
The following are permitted as actual parameters:
Boolean variables
z Boolean constants
z Boolean addresses (topological addresses or symbolic addresses)
z ST expression (see page 495) delivering a Boolean result (e.g. VarA OR VarB)
ST expressions as actual parameters for contacts are a supplement to IEC
61131-3 and must be enabled explicitly
z
Contact Types
The following contacts are available:
Designation
Representation
Description
Normally
open
Normally
closed
Contact for
detecting
positive
transitions
Contact for
detecting
negative
transitions
346
35006144 05/2010
www.barr-thorp.com
Coils
Introduction
A coil is an LD element which transfers the status of the horizontal link on the left
side, unchanged, to the horizontal link on the right side. The status is stored in the
respective Boolean actual parameter.
Normally, coils follow contacts or FFBs, but they can also be followed by contacts.
Coils take up one cell.
The following are permitted as actual parameters:
z Boolean variables
z Boolean addresses (topological addresses or symbolic addresses)
Coil Types
The following coils are available:
Designation
Representation
Description
Coil
negated coil
Coil for
detecting
positive
transitions
Coil for
detecting
negative
transitions
347
35006144 05/2010
www.barr-thorp.com
Designation
Representation
Description
Set coil
With set coils, the status of the left link is copied onto the
right link. The relevant Boolean actual parameter
(indicated by xxx) is set to ON if the left link has a status
of ON, otherwise it remains unchanged. The relevant
Boolean actual parameter can be reset through the reset
coil.
Also see Edge Recognition, page 368.
Reset coil
With reset coils, the status of the left link is copied onto
the right link. The relevant Boolean actual parameter
(indicated by xxx) is set to OFF if the left link has a status
of ON, otherwise it remains unchanged. The relevant
Boolean actual parameter can be set through the set
coil.
Also see Edge Recognition, page 368.
Stop coil
Call coil
With call coils, the status of the left link is copied to the
right link. If the status of the left link is ON then the
respective sub-program (indicated by xxx) is called.
The subroutine to be called must be located in the same
task as the calling LD section. Subroutines can also be
called from within subroutines.
Subroutines are a supplement to IEC 61131-3 and must
be enabled explicitly.
In SFC action sections, call coils (subroutine calls) are
only allowed when Multitoken Operation is enabled.
348
35006144 05/2010
www.barr-thorp.com
349
35006144 05/2010
www.barr-thorp.com
350
35006144 05/2010
www.barr-thorp.com
DFB
Derived function blocks (DFBs) have the same properties as elementary function
blocks. The user can create them in the programming languages FBD, LD, IL, and/or
ST.
The only difference to elementary function blocks is that the derived function block
is represented as a frame with double vertical lines.
Derived Function Block
Procedure
Procedures are functions viewed technically.
The only difference to elementary functions is that procedures can occupy more
than one output and they support data type VAR_IN_OUT.
To the eye, procedures are no different than elementary functions.
Procedures are a supplement to IEC 61131-3 and must be enabled explicitly.
Procedure
351
35006144 05/2010
www.barr-thorp.com
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.
Formal and 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.
Only one object (actual parameter) of the following types may be linked to FFB
inputs:
z Contact
z Variable
z Address
z Literal
z ST Expression
ST expressions on FFB inputs are a supplement to IEC 61131-3 and must be
enabled explicitly.
z Link
The following combinations of objects (actual parameters) can be linked to FFB
outputs:
z one or more coils
z one or more contacts
z one variable
z a variable and one or more connections (but not for VAR_IN_OUT
(see page 358) outputs)
z an address
z an address and one or more connections (but not for VAR_IN_OUT
(see page 358) outputs)
z one or more connections (but not for VAR_IN_OUT (see page 358) outputs)
352
35006144 05/2010
www.barr-thorp.com
The data type of the object to be linked must be the same as that of the FFB
input/output. If all actual parameters consist of literals, a suitable data type is
selected for the function block.
Exception: For generic FFB inputs/outputs with data type ANY_BIT, it is possible to
link objects of data type INT or DINT (not UINT and UDINT).
This is a supplement to IEC 61131-3 and must be enabled explicitly.
Example:
Allowed:
Not allowed:
EDT
STRING
ARRAY
ANY_ARRAY IODDT
STRUCT FB
ANY
EFB: Input
DFB: Output
EFB: VAR_IN_OUT +
DFB: Input
DFB: VAR_IN_OUT +
EFB: Output
EF: Input
EF: VAR_IN_OUT
EF: Output
Procedure: Input
Procedure:
VAR_IN_OUT
353
35006144 05/2010
www.barr-thorp.com
Parameter type
EDT
STRING
ARRAY
ANY_ARRAY IODDT
STRUCT FB
ANY
Procedure: Output
not applicable
FFBs that use actual parameters on the inputs that have not yet received any value
assignment, work with the initial values of these actual parameters.
If no value is allocated to a formal parameter, then the initial value will be used for
executing the function block. If no initial value has been defined then the default
value (0) is used.
If a formal parameter is not assigned a value and the function block/DFB is
instanced more than once, then the subsequent instances are run with the old value.
Public Variables
In addition to inputs/outputs, some function blocks also provide public variables.
These variables transfer statistical values (values that are not influenced by the
process) to the function block. They are used for setting parameters for the function
block.
Public variables are a supplement to IEC 61131-3.
The assignment of values to public variables is made using their initial values.
Public variables are read via the instance name of the function block and the names
of the public variables.
Example:
354
35006144 05/2010
www.barr-thorp.com
Private Variables
In addition to inputs, outputs and public variables, some function blocks also provide
private variables.
Like public variables, private variables are used to transfer statistical values (values
that are not influenced by the process) to the function block.
Private variables can not be accessed by user program. These type of variables can
only be accessed by the animation table.
NOTE: Nested DFBs are declared as private variables of the parent DFB. So their
variables are also not accessible through programming, but trough the animation
table.
Private variables are a supplement to IEC 61131-3.
Programming Notes
Attention should be paid to the following programming notes:
z FFBs will only be processed when they are directly or indirectly connected to the
left bus bar.
z If the FFB will be conditionally executed, the EN input may be pre-linked through
contacts or other FFBs (also see EN and ENO (see page 356)).
z Boolean inputs and outputs can be inverted.
z Special conditions apply when using VAR_IN_OUT variables (see page 358).
z Function block/DFB instances can be called multiple times (also see ).Multiple
Function Block Instance Call (see page 355)
Multiple Function Block Instance Call
Function block/DFB instances can be called more than once; other than instances
from communication EFBs and function blocks/DFBs with an ANY output but no ANY
input: these can only be called once.
Calling the same function block/DFB instance more than once makes sense, for
example, in the following cases:
z If the function block/DFB has no internal value or it is not required for further
processing.
In this case, memory is saved by calling the same function block/DFB instance
more than once since the code for the function block/DFB is only loaded once.
The function block/DFB is then handled like a "Function".
z If the function block/DFB has an internal value and this is supposed to influence
various program segments, for example, the value of a counter should be
increased in different parts of the program.
In this case, calling the same function block/DFB means that temporary results
do not have to be saved for further processing in another part of the program.
355
35006144 05/2010
www.barr-thorp.com
EN and ENO
One EN input and one ENO output can be used in all 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 an error occurs 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 ENO is set to "0" (caused by EN=0 or an error during execution):
Function blocks
z EN/ENO handling with function blocks that (only) have one link as an output
parameter:
Functions/Procedures
As defined in IEC61131-3, the outputs from deactivated functions (EN input set to
"0") are undefined. (The same applies to procedures.)
Here nevertheless an explanation of the output statuses in this case:
356
35006144 05/2010
www.barr-thorp.com
EN/ENO handling with function/procedure blocks that (only) have one link as
an output parameter:
357
35006144 05/2010
www.barr-thorp.com
VAR_IN_OUT-Variable
FFBs are often used to read a variable at an input (input variables), to process it and
to output the altered values of the same variable (output variables).
This special type of input/output variable is also called a VAR_IN_OUT variable.
The link between input and output variables is represented by a line in the FFB.
VAR_IN_OUT variable
The following special features are to be noted when using FFBs with VAR_IN_OUT
variables.
z All VAR_IN_OUT inputs must be assigned a variable.
z Via graphical links only VAR_IN_OUT outputs with VAR_IN_OUT inputs can be
connected.
z Only one graphical link can be connected to a VAR_IN_OUT input/output.
z A combination of variable/address and graphical connections is not possible for
VAR_IN_OUT outputs.
z No literals or constants can be connected to VAR_IN_OUT inputs/outputs.
z No negations can be used on VAR_IN_OUT inputs/outputs.
z Different variables/variable components can be connected to the VAR_IN_OUT
input and the VAR_IN_OUT output. In this case the value of the variables/variable
component on the input is copied to the at the output variables/variable
component.
358
35006144 05/2010
www.barr-thorp.com
Control Elements
Introduction
Control elements are used for executing jumps within an LD section and for
returning from a subroutine (SRx) or derived function block (DFB) to the main
program.
Control elements take up one cell.
Control Elements
The following control elements are available.
Designation Representation
Description
Jump
Label
LABEL:
359
35006144 05/2010
www.barr-thorp.com
Designation Representation
Return
Description
RETURN objects can not be used in the main program.
z In a DFB, a RETURN object forces the return to the
360
35006144 05/2010
www.barr-thorp.com
Description
Operate
block
361
35006144 05/2010
www.barr-thorp.com
Designation Representation
Description
Horizontal
Matching
Block
362
35006144 05/2010
www.barr-thorp.com
Links
Description
Links are connections between LD objects (contacts, coils and FFBs etc.).
There are 2 different types of links:
z Boolean Links
Boolean links consist of one or more segments linking Boolean objects (contacts,
coils) with one another.
There are different types of Boolean links as well:
z Horizontal Boolean Links
Horizontal Boolean links enable sequential contacts and coil switching.
z Vertical Boolean Links
Vertical Boolean links enable parallel contacts and coil switching.
z
FFB Links
FFB connections are a combination of horizontal and vertical segments that
connect FFB inputs/outputs with other objects.
Connections:
363
35006144 05/2010
www.barr-thorp.com
364
35006144 05/2010
www.barr-thorp.com
Connection points between more FFB links are shown with a filled circle.
To avoid links crossing each other, FFB links can also be represented in the form
of connectors.
The source and target for the FFB connection are labeled with a name that is
unique within the section.
The connector name has the following structure depending on the type of source
object for the connection:
z For functions: "Function counter/formal parameter" for the source of the
connection
For function blocks: "Instance name/formal parameter" for the source of the
connection
365
35006144 05/2010
www.barr-thorp.com
Vertical Links
The "Vertical Link" is special. The vertical link serves as a logical OR. With this form
of the OR link, 32 inputs (contacts) and 64 outputs (coils, links) are possible.
366
35006144 05/2010
www.barr-thorp.com
Text Object
Introduction
Text can be positioned as text objects in the Ladder Diagram (LD). The size of these
text objects depends on the length of the text. The size of the object, depending on
the size of the text, can be extended vertically and horizontally to fill further grid
units. Text objects may overlap with other objects.
367
35006144 05/2010
www.barr-thorp.com
Edge Recognition
Introduction
During the edge recognition, a bit is monitored during a transition from 0 -> 1
(positive edge) or from 1 -> 0 (negative edge).
For this, the value of the bit in the previous cycle is compared to the value of the bit
in the current cycle. In this case, not only the current value, but also the old value,
are needed.
Instead of a bit, 2 bits are therefore needed for edge recognition (current value and
old value).
Because the data type BOOL only offers one single bit (current value), there is
another data type for edge recognition, EBOOL (expanded BOOL). In addition to edge
recognition, the data type EBOOL provides an option for forcing. It must also be
saved whether forcing the bit is enabled or not.
The data type EBOOL saves the following data:
the current value of the bit in Value bit
z the old value of the bit in History bit
(the content of the value bit is copied to the History bit at the beginning of each
cycle)
z Information whether forcing of the bit is enabled in Force-Bit
(0 = Forcing disabled, 1 = Forcing enabled)
z
CAUTION
UNINTENDED EQUIPMENT OPERATION
To perform a good edge detection the %M must be updated at each task cycle.
When performing a unique writing, the edge will be infinite.
Failure to follow these instructions can result in injury or equipment damage.
368
35006144 05/2010
www.barr-thorp.com
Using an EBOOL variable for contacts to recognize positive (P) or negative (N) edges
or with an EF called RE or FE, you have to adhere to the restrictions described
below.
EBOOL with %M not written inside program
An EBOOL variable with a %M address, which is not written inside your program but
directly, for example by an animation table, an operator screen or an HMI, will not
work in the expected way. The edge is TRUE infinitely because the %M is only written
one time.
NOTE: To avoid this issue the %M has to be written at the end of the task to update
the old value information.
The old value is only updated, when the %M bit is written, so if you write the bit only
one time, the edge detection will be infinite.
Old Value
Current Value
Edge Detect
Description
369
35006144 05/2010
www.barr-thorp.com
Anytime the value bit of A equals 1 and the history bit equals 0, B is set to 1 for a
cycle (cycle 1, 4, and 9).
370
35006144 05/2010
www.barr-thorp.com
Anytime the value bit of A equals 0 and the history bit equals 1, B is set to 1 for a
cycle (cycle 2 and 8).
Forcing Bits
When forcing bits, the value of the variable determined by the logic will be
overwritten by the force value.
In the example, a negative edge of the variable A is supposed to be recognized and
B should therefore be set for a cycle.
Anytime the value bit or force bit of A equals 0 and the history bit equals 1, B is set
to 1 for a cycle (cycle 1 and 8).
371
35006144 05/2010
www.barr-thorp.com
The following examples show the different behavior depending on the variable type.
Variable A is define as BOOL, whenever A is set to 1, %MW1 is incremented by 1.
372
35006144 05/2010
www.barr-thorp.com
Variable C is defined as EBOOL, the behavior is identical than variable A. The history
bit is updated.
373
35006144 05/2010
www.barr-thorp.com
At the beginning of the second cycle, the value bit of B equals 0. When forcing B
within this cycle, the force bit and value bit are set to 1. While processing the first
line of the logic in the third cycle, the history bit of the coil (B) will also be set to 1.
Problem:
During edge recognition (comparison of the value bit and the history bit) in the
second line of the logic, no edge is recognized, because due to the updating, the
value bit and history bit on line 1 of B are always identical.
Solution:
374
35006144 05/2010
www.barr-thorp.com
In this example, the variable B is first assigned to the link to recognize positive edges
and then the coil.
At the beginning of the second cycle, the value bit of B equals 0. When forcing B
within this cycle, the force bit and value bit are set to 1. While processing the first
line of the logic in the third cycle, the history bit of the link (B) will remain set to 0.
Edge recognition recognizes the difference between value bits and history bit and
sets the coil (C) to 1 for one cycle.
Using Set Coil or Reset Coil Can Cause the Loss of Edge Recognition
Using set coil or reset coil can cause the loss of edge recognition with EBOOL
variables.
The variable above the set/reset coil (variable C in the example) is always affected
by the value of the left link.
If the left link is 1, the value bit (variable C in the example) is copied to the history bit
and the value bit is set to 1.
If the left link is 0, the value bit (variable C in the example) is copied to the history bit,
but the value bit is not changed.
This means that whatever value the left link has before the set or reset coil, the
history bit is always updated.
375
35006144 05/2010
www.barr-thorp.com
In the example, a positive edge of the variable C should be recognized and set D for
a cycle.
Code
line
Behavior in LD
Corresponds to in ST
IF A AND B
THEN C := 1;
ELSE C := C;
END_IF;
A = 1,
B = 1,
C = 1, History bit = 0
IF NOT(A) AND NOT(B)
THEN C := 0;
ELSE C := C;
END_IF;
A = 1,
B = 1,
C = 1, History = 1
3
C = 1, History = 1
D = 0, as the value bit and history bit of C are
identical.
The rising edge of C, shown in code line 1, is not
recognized by the code in line 2, as this forces the
history bit to be updated.
(If the condition is FALSE, the present value of C is
again assigned to C, see ELSE statement in code
line 2 in ST example.)
376
35006144 05/2010
www.barr-thorp.com
The signal flow with FFB links is from the FFB output to the FFB input, regardless
of which direction they are made in.
An FFB is only processed if all elements (FFB outputs etc.) to which its inputs are
linked are processed.
The execution sequence of FFBs that are linked with various outputs of the same
FFB runs from top to bottom.
The execution sequence of objects is not influenced by their positions within the
network.
The execution sequence for FFBs is represented as execution number by the
FFB.
377
35006144 05/2010
www.barr-thorp.com
Priorities
Priorities when defining the signal flow within a section:
Priority
Rule
Description
Link
Network by
Network
Output sequence
Rung by Rung
Example
Example of the execution sequence of objects in an LD section:
NOTE: The execution numbers for contacts and coils is not shown. They are only
shown in the graphic to provide a better overview.
378
35006144 05/2010
www.barr-thorp.com
Loop Planning
Non-Permitted Loops
Creating loops using links alone is not permitted because it is not possible to clearly
define the signal flow (the output of one FFB is the input of the next FFB, and the
output of this one is the input of the first again).
Non-permitted loops via links:
379
35006144 05/2010
www.barr-thorp.com
380
35006144 05/2010
www.barr-thorp.com
381
35006144 05/2010
www.barr-thorp.com
382
35006144 05/2010
www.barr-thorp.com
Network Positions
The correct execution sequence can be achieved by changing the position of the
networks in the section (see also Original Situation, page 381).
383
35006144 05/2010
www.barr-thorp.com
Positioning of Objects
The position of objects can only have an influence on the execution order if several
inputs (left link of Contacts/Coils, FFB inputs) are linked with the same output of the
object "to be called" (right link of Contacts/Coils, FFB outputs) (see also Original
Situation, page 381).
Original situation:
In the first network, block positions 0.1 and 0.2 are switched. In this case (common
origins for both block inputs) the execution sequence of both blocks is switched as
well (processed from top to bottom). The same applies when switching coils C and
D in the second network.
384
35006144 05/2010
www.barr-thorp.com
In the third network, block positions 0.4 and 0.5 are switched. In this case (different
origins for the block inputs) the execution sequence of the blocks is not switched
(processed in the sequence that the block outputs are called in). The same applies
when switching coils G and H in the last network.
385
35006144 05/2010
www.barr-thorp.com
386
35006144 05/2010
www.barr-thorp.com
13
Overview
This chapter describes the SFC sequence language which conforms to IEC 611311.
What's in this Chapter?
This chapter contains the following sections:
Section
Topic
Page
13.1
388
13.2
393
13.3
402
13.4
409
13.5
Jump
414
13.6
Link
415
13.7
416
13.8
Text Objects
419
13.9
Single-Token
420
13.10
Multi-Token
431
387
35006144 05/2010
www.barr-thorp.com
13.1
Overview
This section contains a general overview of the SFC sequence language.
What's in this Section?
This section contains the following topics:
Topic
Page
389
Link Rules
392
388
35006144 05/2010
www.barr-thorp.com
389
35006144 05/2010
www.barr-thorp.com
35006144 05/2010
www.barr-thorp.com
SFCCHART_STATE Variable
When an SFC section is created, it is automatically assigned a variable of data type
SFCCHART_STATE. The variable that is created always has the name of the
respective SFC section.
This variable is used to assign the SFC control blocks to the SFC section to be
controlled.
Token Rule
The behavior of an SFC network is greatly affected by the number of tokens
selected, i.e. the number of active steps.
Explicit behavior is possible by using one token (single token). (Parallel branches
each with an active token [step] per branch as a single token). This corresponds to
a step chain as defined in IEC 61131-3).
A step chain with a number of maximum active steps (Multi Token) defined by the
user increases the degree of freedom. This reduces/eliminates the restrictions for
enforcing unambiguousness and non-blocking and must be guaranteed by the user.
Step chains with Multi Token do not conform to IEC 61131-3.
Section Size
z
z
z
z
z
z
z
z
z
z
IEC Conformity
For a description of the extent to which the SFC programming language conforms
to IEC, see IEC Conformity (see page 637).
391
35006144 05/2010
www.barr-thorp.com
Link Rules
Link Rules
The table indicates which object outputs can be linked with which object inputs.
From object output of
To object input of
Step
Transition
Alternative Branch
Parallel joint
Transition
Step
Jump
Parallel Branch
Alternative joint
Alternative Branch
Transition
Alternative joint
Step
Jump
Parallel Branch
Alternative joint
Parallel Branch
Step
Jump
Alternative joint (only with Multi-Token
(see page 431))
Parallel joint
Transition
Alternative branch (only with Multitoken
(see page 431))
Alternative joint
392
35006144 05/2010
www.barr-thorp.com
13.2
Overview
This section describes the step and macro step objects of the SFC sequence
language.
What's in this Section?
This section contains the following topics:
Topic
Page
Step
394
398
393
35006144 05/2010
www.barr-thorp.com
Step
Step Types
The following types of steps exist:
Type
Representation
Description
"Normal" Step
Initial step
Macro Step
Input step
Output step
394
35006144 05/2010
www.barr-thorp.com
Step Names
When creating a step, it is assigned with a suggested number. The suggested
number is structured as follows S_i_j, whereas i is the (internal) current number
of the section and j is the (internal) current step number in the current section.
You can change the suggested numbers to give you a better overview. Step names
(maximum 32 characters) must be unique over the entire project, i.e. no other step,
variable or section etc. may exist with the same name. There are no case
distinctions. The step name must correspond with the standardized name
conventions.
Step Times
Each step can be assigned a minimum supervision time, a maximum supervision
time and a delay time:
z Minimum Supervision Time
The minimum supervision time sets the minimum time for which the step should
normally be active. If the step becomes inactive before this time has elapsed, an
error message is generated. In animation mode, the error is additionally identified
by a colored outline (yellow) around the step object.
If no minimum supervision time or a minimum supervision time of 0 is entered,
step supervision is not carried out.
The error status remains the same until the step becomes active again.
z Maximum Supervision Time
The maximum supervision time specifies the maximum time in which the step
should normally be active. If the step is still active after this time has elapsed, an
error message is generated. In animation mode, the error is additionally identified
by a colored outline (pink) around the step object.
If no maximum supervision time or a maximum supervision time of 0 is entered,
step supervision is not carried out.
The error status remains the same until the step becomes inactive.
z Delay Time
The delay time (step dwell time) sets the minimum time for which the step must
be active.
NOTE: The defined times apply for the step only, not for the allocated actions.
Individual times can be defined for these.
Setting the Step Times
The following formula is to be used for defining/determining these times:
Delay time< minimum supervision time< maximum supervision time
There are 2 ways to assign the defined values to a step:
z As a duration literal
z Use of the data structure SFCSTEP_TIMES
395
35006144 05/2010
www.barr-thorp.com
SFCSTEP_TIMES Variable
Every step can be implicitly allocated a variable of data type SFCSTEP_TIMES. The
elements for this data structure can be read from and written to (read/write).
The data structure is handled the same as any other data structure, i.e. they can be
used in variable declarations and therefore accessing the entire data structure (e.g.
as FFB parameter) is possible.
Structure of the Data Structure:
Element Name
Data type
Description
"VarName".delay
TIME
Delay Time
"VarName".min
TIME
"VarName".max
TIME
SFCSTEP_STATE Variable
Every step is implicitly allocated a variable of data type SFCSTEP_STATE. This step
variable has the name of the allocated step. The elements for this data structure can
only be read (read only).
You can see the SFCSTEP_STATE variables in the Data Editor. The Comment for
a SFCSTEP_STATE variable is the comment entered as a property of the step itself.
Please refer to "Defining the properties of steps" (see Unity Pro, Operating Modes,
) in the Unity Pro Operating Modes Manual.
The data structure cannot be used in variable declarations. Therefore, accessing the
entire data structure (e.g. as FFB parameter) is not possible.
396
35006144 05/2010
www.barr-thorp.com
Data type
Description
"StepName".t
TIME
"StepName".x
BOOL
1: Step active
0: Step inactive
"StepName".tminErr BOOL
"StepName".tmaxErr BOOL
397
35006144 05/2010
www.barr-thorp.com
Macro steps are a supplement to IEC 61131-3 and must be enabled explicitly.
Input Step
Every macro section begins with an input step.
Representation of an input step:
398
35006144 05/2010
www.barr-thorp.com
Output Step
Every macro section ends with an output step.
Representation of an output step:
Multi-Token
A maximum of 100 initial steps can be placed per section (including all their
macro sections).
399
35006144 05/2010
www.barr-thorp.com
The name of the macro section is identical to the name of the macro step that it is
called from. If the name of the macro step is changed then the name of the
respective macro section is changed automatically.
A macro section can only be used once.
Macro Step Processing
Macro Step Processing:
Phase
Description
If the output step of the macro section is active then the transitions following the
macro step are enabled.
The macro step becomes inactive when the output step is activated which
causes the following transition conditions to be enabled and the transition
condition to be TRUE. At the same time, the output step in the macro section is
activated.
400
35006144 05/2010
www.barr-thorp.com
Step Names
When creating a step, it is assigned with a suggested number.
Meanings of the Suggested Numbers:
Step Type
Macro Step
MS_i_j
MS = Macro Step
i = (internal) current (sequential) number of the
current section
j = (internal) current (sequential) macro step number
of the current section
Input step
MS_k_l_IN
MS = Macro Step
k = (internal) current (sequential) number of the
calling section
l = (internal) current (sequential) macro step number
of the calling section
IN = Input Step
Output step
MS_k_l_OUT
MS = Macro Step
k = (internal) current (sequential) number of the
calling section
l = (internal) current (sequential) macro step number
of the calling section
OUT = Output Step
S = Step
k = (internal) current (sequential) number of the
calling section
m = (internal) current (sequential) step number of the
calling section
You can change the suggested numbers to give you a better overview. Step names
(maximum 28 characters for macro step names, maximum 32 characters for step
names) must be unique within the entire project, i.e. no other step, variable or
section (with the exception of the name of the macro section assigned to the macro
step) etc. may exist with the same name. There are no case distinctions. The step
name must correspond with the standardized name conventions.
If the name of the macro step is changed then the name of the respective macro
section and the steps within it are changed automatically.
For example If MS_1_1 is renamed to MyStep then the step names in the macro
section are renamed to MyStep_IN, MyStep_1, ..., MyStep_n, MyStep_OUT.
401
35006144 05/2010
www.barr-thorp.com
13.3
Overview
This section describes the actions and action sections of the SFC sequence
language.
What's in this Section?
This section contains the following topics:
Topic
Page
Action
403
Action Section
405
Qualifier
406
402
35006144 05/2010
www.barr-thorp.com
Action
Introduction
Actions have the following properties:
z An action can be a Boolean variable (action variable (see page 403)) or a section
(action section (see page 405)) of programming language FBD, LD, IL or ST.
z A step can be assigned none or several actions. A step which is assigned no
action has a waiting function, i.e. it waits until the assigned transition is
completed.
z If more than one action is assigned to a step they are processed in the sequence
in which they are positioned in the action list field.
Exception: Independent of their position in the action list field, actions with the
qualifier (see page 406) P1 are always processed first and actions with the
qualifier P0 are processed last.
z The control of actions is expressed through the use of qualifiers (see page 406).
z A maximum of 20 actions can be assigned to each step.
z The action variable that is assigned to an action can also be used in actions from
other steps.
z The action variable can also be used for reading or writing in any other section of
the project (multiple assignment).
z Actions that are assigned an qualifier with duration can only be activated one
time.
z Only Boolean variables/addresses or Boolean elements of multi-element
variables are allowed as action variables.
z Actions have unique names.
The name of the action is either the name of the action variable or the name of
the action section.
Action Variable
The following are authorized as action variables:
z Address of data type BOOL
An action can be assigned to a hardware output using an address. In this case,
the action can be used as enable signal for a transition, as input signal in another
section and as output signal for the hardware.
z Simple variable or element of a multi-element variable of data type BOOL
The action can be used as an input signal with assistance from a variable in
another section.
z Unlocated Variable
With unlocated variables, the action can be used as enable signal for a
transition and as input signal in another section.
z Located Variable
With located variables the action can be used as an enabling signal for a
transition, as an input signal in another section and as an output signal for the
hardware.
403
35006144 05/2010
www.barr-thorp.com
Action Names
If an address or a variable is used as an action then that name (e.g. %Q10.4,
Variable1) is used as the action name.
If an action section is used as an action then the section name is used as the action
name.
Action names (maximum 32 characters) must be unique over the entire project, i.e.
no other transition, variable or section etc. may exist with the same name. There are
no case distinctions. The action name must correspond with the standardized name
conventions.
404
35006144 05/2010
www.barr-thorp.com
Action Section
Introduction
An action section can be created for every action. This is a section which contains
the logic of the action and it is automatically linked with the action.
Name of the Action Section
The name of the action section is always identical to the assigned action, see Action
Names, page 404.
Programming Languages
FBD, LD, IL and ST are possible as programming languages for action sections.
Properties of Action Sections
Action sections have the following properties:
z Action sections can have any amount of outputs.
z Subroutine calls are only possible in action sections when Multitoken operation is
enabled.
Note: The called subroutines are not affected by the controller of the sequence
string, i.e.
z the qualifier assigned to the called action section does not affect the
subroutine
z the subroutine also remains active when the called step is deactivated
z
z
z
z
z
405
35006144 05/2010
www.barr-thorp.com
Qualifier
Introduction
Each action that is linked to a step must have an qualifier which defines the control
for that action.
Available Qualifiers
The following qualifiers are available:
Qualifier
Meaning
Description
N / None
Not Stored
If the step is active then action is 1 and if the step is inactive the
action is 0.
Overriding
reset
The action, which is set in another step with the qualifier S, is reset.
The activation of any action can also be prevented.
Note: Qualifiers are automatically declared as unbuffered. This
means that the value is reset to 0 after stop and cold restart, e.g.
when voltage is on/off. Should a buffered output be required,
please use the RS or SR function block from the standard block
library.
406
35006144 05/2010
www.barr-thorp.com
Qualifier
Meaning
Description
Set (saved) The set action also remains active, when the associated step is
inactive. The action only becomes inactive when it is reset in
another step in the current sequence string using the qualifier R,
i.e. resetting the action from another section is not possible for
example.
Time
limited
If the step is active, the action is also active. After the process of
the time duration, defined manually for the action, the action
returns to 0, even if the step is still active. The action also becomes
0 if the step is inactive.
Note: For this qualifier, an additional duration of data type TIME
must be defined.
407
35006144 05/2010
www.barr-thorp.com
Qualifier
Meaning
Description
Delayed
If the step is active, the internal timer is started and the action
becomes 1 after the process of the time duration, which was
defined manually for the action. If the step becomes inactive after
that, the action becomes inactive as well. If the step becomes
inactive before the internal time has elapsed then the action does
not become active.
Note: For this qualifier, an additional duration of data type TIME
must be defined.
Pulse
If the step becomes active, the action becomes 1 and this remains
for one program cycle, independent of whether or not the step
remains active.
DS
Delayed
and saved
If the step becomes active, the internal timer is started and the
action becomes active after the process of the manually defined
time duration. The action first becomes inactive again when
qualifier R is used for a reset in another step. If the step becomes
inactive before the internal time has elapsed then the action does
not become active.
Note: For this qualifier, an additional duration of data type TIME
must be defined.
P1
Pulse
(rising
edge)
P0
Pulse
(falling
edge)
408
35006144 05/2010
www.barr-thorp.com
13.4
Overview
This section describes the transition objects and transition sections of the SFC
sequence language.
What's in this Section?
This section contains the following topics:
Topic
Page
Transition
410
Transition Section
412
409
35006144 05/2010
www.barr-thorp.com
Transition
Introduction
A transition provides the condition through which the checks of one or more pretransition steps pass on one or more consecutive steps along the corresponding
link.
Transition Condition
Every transition is allocated with a transition condition of data type BOOL.
The following are authorized as transaction conditions:
z an address (input or output)
z a variable (input or output)
z a Literal or
z a Transition Section (see page 412)
The type of transition condition determines the position of the name.
Transition Condition
z Address
z Variable
z Literal
z Transition Section
Transition Name
If an address or a variable is used as a transition condition then the transition name
is defined with that name (e.g. %I10.4, Variable1).
If a transition section is used as a transition condition then the section name is used
as the transition name.
Transition names (maximum 32 characters) must be unique over the entire project,
i.e. no other transition, variable or section (with the exception of the assigned
transition section) etc., may exist with the same name. There are no case
distinctions. The transition name must correspond with the standardized name
conventions.
410
35006144 05/2010
www.barr-thorp.com
Enabling a Transition
A transition is enabled if the steps immediately preceding it are active. Transitions
whose immediately preceding steps are not active are not normally analyzed.
NOTE: If no transition condition is defined, the transition will never be active.
Triggering a Transition
A transition is triggered when the transition is enabled and the associated transition
conditions are satisfied.
Triggering a transition leads to the disabling (resetting) of all immediately preceding
steps that are linked to the transition, followed by the activation of all immediately
following steps.
Trigger Time for a Transition
The transition trigger time (switching time) can theoretically be as short as possible,
but can never be zero. The transition trigger time lasts at least the duration of a
program cycle.
411
35006144 05/2010
www.barr-thorp.com
Transition Section
Introduction
For every transition, a transition section can be created. This is a section containing
the logic of the transition condition and it is automatically linked with the transition.
Name of Transition Section
The name of the transition section is always identical to the assigned transition, see
Transition Name, page 410.
Programming Languages
FBD, LD, IL and ST are possible as programming languages for transition sections.
Suggested Networks for Transition Section:
Language Suggested Network
Description
FBD
LD
IL
412
35006144 05/2010
www.barr-thorp.com
Description
ST
413
35006144 05/2010
www.barr-thorp.com
13.5
Jump
Jump
General
Jumps are used to indicate directional links that are not represented in their full
length.
Representation of a jump:
Properties of Jumps
Jumps have the following properties:
More than one jump may have the same target step.
z In accordance with IEC 61131-3, jumps into a parallel sequence (see page 418)
or out of a parallel sequence are not possible.
If it should also be used again then it must be enabled explicitly.
z With jumps, there is a difference between a Sequence Jump (see page 423) and
a Sequence Loop (see page 424).
z The jump target is indicated by the jump target symbol (>).
z
Jump Name
Jumps do not actually have their own names. Instead, the name of the target step
(jump target) is shown inside of the jump symbol.
414
35006144 05/2010
www.barr-thorp.com
13.6
Link
Link
Introduction
Links connect steps and transitions, transitions and steps etc.
Properties of Links
Links have the following properties:
z Links between objects of the same type (step with step, transition with transition,
etc.) are not possible
z Links are possible between:
z unlinked object outputs and
z unlinked or linked step inputs
(i.e. multiple step inputs can be linked)
z
z
z
z
z
Overlapping links and other SFC objects (step, transition, jump, etc.) is not
possible
Overlapping links and links is possible
Crossing links with links is possible and is indicated by a "broken" link:
With links, there is a difference between a String Jump (see page 423) and a
String Loop (see page 424)
415
35006144 05/2010
www.barr-thorp.com
13.7
Overview
This section describes the branch and merge objects of the SFC sequence
language.
What's in this Section?
This section contains the following topics:
Topic
Page
417
418
416
35006144 05/2010
www.barr-thorp.com
35006144 05/2010
www.barr-thorp.com
35006144 05/2010
www.barr-thorp.com
13.8
Text Objects
Text Object
Introduction
Text can be positioned in the form of text objects using SFC sequence language.
The size of these text objects depends on the length of the text. This text object is
at least the size of a cell and can be vertically and horizontally enlarged to other cells
according to the size of the text. Text objects can overlap with other SFC objects.
419
35006144 05/2010
www.barr-thorp.com
13.9
Single-Token
Overview
This section describes the "Single-Token" operating mode for sequence controls.
What's in this Section?
This section contains the following topics:
Topic
Page
421
Alternative String
422
423
Parallel Strings
426
428
420
35006144 05/2010
www.barr-thorp.com
421
35006144 05/2010
www.barr-thorp.com
Alternative String
Alternative Strings
According to IEC 61131-3, only one switch (1-off-n-select) can be made from the
transitions. The branch to be run is determined by the result of the transition
conditions of the transitions that follow the alternative branch. Branch transitions are
processed from left to right. If a transition condition is satisfied, the remaining
transitions are no longer processed The branch with the satisfied transition is
activated. This results in a left to right priority for branches.
If none of the transitions are switched, the step that is currently set remains set.
Alternative Strings:
If...
Then
422
35006144 05/2010
www.barr-thorp.com
If...
Then
423
35006144 05/2010
www.barr-thorp.com
Sequence Loop
A sequence loop is a special type of alternative branch with which one or more
branches lead back to a previous step.
A sequence loop can be made with jumps or with links.
Sequence loop:
If...
Then
The loop from S_1_12 by means of transition conditions c and f back to S_1_12 is
repeated until transition condition b is true or c is false and d is true.
If transition conditions b and c are false and d then a jump is made from S_1_12 directly
is true,
back to S_1_11.
The loop from S_1_11 to S_1_12 and back to S_1_11 via transition conditions a and d is
repeated until transition condition b or c is true.
424
35006144 05/2010
www.barr-thorp.com
If...
Then
The loop from S_1_3 via transition condition e, to S_1_4 via transition condition f and a
jump back to S_1_3 again, is now repeated infinitely.
425
35006144 05/2010
www.barr-thorp.com
Parallel Strings
Parallel Strings
With parallel branches, switching a single transition leads to a parallel activation of
more than one (maximum 32) steps (branches). This applies with Single-Token as
well as with Multi-Token.
Processing Parallel Strings:
If...
Then
If steps S_5_11, S_5_12 and S_5_13 are activated, then the strings run independently of
one another.
If S_5_14, S_5_15 and S_5_16 are active at the
same time and transition condition e, which belongs
to the common transition, is true,
426
35006144 05/2010
www.barr-thorp.com
If...
Then
427
35006144 05/2010
www.barr-thorp.com
If...
Then
428
35006144 05/2010
www.barr-thorp.com
If...
Then
If steps S_19_2 and S_19_3 are activated, then the strings run independently of one
another.
If transition condition b is true,
If steps S_19_4 and S_19_5 are activated, then the strings run independently of one
another.
If steps S_19_2, S_19_4 and S_19_5 are
active and transition condition c is true,
429
35006144 05/2010
www.barr-thorp.com
If...
Then
If steps S_8_13 and S_8_14 are active then a sequence runs to S_8_17.
and transition condition d, is true,
If steps S_8_12 and S_8_17 are active then a sequence runs to S_8_18.
and transition condition e, is true,
...
...
430
35006144 05/2010
www.barr-thorp.com
13.10
Multi-Token
Overview
This section describes the "Multi-Token" operating mode for sequence controls.
What's in this Section?
This section contains the following topics:
Topic
Page
432
Alternative String
434
Parallel Strings
437
441
442
431
35006144 05/2010
www.barr-thorp.com
432
35006144 05/2010
www.barr-thorp.com
433
35006144 05/2010
www.barr-thorp.com
Alternative String
Alternative Strings
The user can define the behavior for the evaluation of transition conditions in
alternative branches with Multi-Token.
The following are possible:
Processing is from left to right with a stop after the first active transition (1-off-nselect). This corresponds with the behavior of alternative strings with SingleToken (see page 422).
z Parallel processing of all transitions of the alternative branch (x-off-n-select)
z
x-off-n-select
With Multi-Token, more than one parallel switch can be made from the transitions
(1-off-n-select). The branches to be run are determined by the result of the transition
conditions of the transitions that follow the alternative branch. The transitions of the
branches are all processed. All branches with satisfied transitions are activated.
If none of the transitions are switched, the step that is currently set remains set.
x-off-n-select:
434
35006144 05/2010
www.barr-thorp.com
If...
Then
A second token is created by the parallel activation of the two alternative branches. These
two tokens are now running parallel to one another, i.e. S_5_11 and S_5_12 are active at
the same time.
Token 1 (S_5_11)
Token 2 (S_5_12)
If...
Then
If...
Then
If the transition
condition c is true,
then a
sequence is
run from
S_5_11 to
S_5_13.
If transition condition d is
true,
If S_5_13 is still active (token 1) because of the activation of transition condition c, then
token 2 is ended and the string will be further processed as Single-Token. If S_5_13 is no
longer active (token 1), then it is reactivated by token 2 and both tokens continue running
parallel (Multi-Token).
435
35006144 05/2010
www.barr-thorp.com
If...
Then
Since S_6_1 and S_6_2 are linked by a parallel merge, the branch cannot be departed
because S_6_1 and S_6_2 can never be active at the same time.
(Either S_6_1 is activated with transition condition a or S_6_2 with transition condition b.)
Therefore S_6_1 and S_6_2 can never be active at the same time either. The string is
blocked.
This block can be removed, for example, by a second timed token that runs via transition b.
436
35006144 05/2010
www.barr-thorp.com
Parallel Strings
Parallel Strings
With parallel branches, switching a single transition leads to a parallel activation of
more than one (maximum 32) steps (branches). This applies with Single-Token as
well as with Multi-Token
Processing Parallel Strings:
If...
Then
437
35006144 05/2010
www.barr-thorp.com
If...
Then
A second token is created by the sequence running on the alternative merge out of the
parallel string. The two tokens are running parallel to one another, i.e. S_5_2 and S_5_3 are
active at the same time.
Token 1 (S_5_3)
If...
Step S_5_3 is active.
Token 2 (S_5_2)
Then
If...
Then
then a sequence
runs to S_5_3.
If S_5_3 is still active (token 1) then token 2 is ended and the string is further processed as
Single-Token.
If S_5_3 is no longer active (token 1), then it is reactivated by token 2 and both tokens
continue running parallel (Multi-Token).
438
35006144 05/2010
www.barr-thorp.com
If...
Then
A second token is created by the sequence running on the alternative merge out of the
parallel string. These two tokens are now running parallel to one another, i.e. S_5_1 and
S_5_2 are active at the same time.
Token 1 (S_5_2)
If...
Step S_5_2 is active.
Token 2 (S_5_1)
Then
If...
Then
If S_5_2 is still active (token 1) then token 2 is ended and the string is further processed
as Single-Token.
If S_5_2 is no longer active (token 1), then it is reactivated by token 2 and both tokens
continue running parallel (Multi-Token).
439
35006144 05/2010
www.barr-thorp.com
If...
Then
If steps S_7_1 and S_7_2 are activated, then the strings run independently of one
another.
If transition condition d is true,
Since S_7_3, S_7_4 and S_7_5 are linked by a parallel merge, the parallel string cannot
be departed because S_7_3 and S_7_4 can never be active at the same time.
(Either S_7_3 is activated with transition condition b or S_7_4 with transition condition c.)
Therefore S_7_3, S_7_4 and S_7_5 cannot be active at the same time either. The string
is blocked.
This block can be removed for example, by a second timed token that runs via transition c.
440
35006144 05/2010
www.barr-thorp.com
If...
Then
If S_1_2 is active and transition condition then a sequence runs from S_1_2 to S_1_3.
b, is true,
If S_1_1 and S_1_3 are active and
transition condition c, which belongs to
the common transition, is true,
Since S_1_1 and S_1_3 are not active at the same time, the string cannot continue. The
string is blocked.
This block can removed by e.g. a second timed token that is set to reactivate step S_1_2.
441
35006144 05/2010
www.barr-thorp.com
If...
Then
A second token is created by the jump out of the parallel string. Both tokens are running
parallel to one another, i.e. S_2_1 and S_2_3 are active at the same time.
Token 1 (S_2_1)
Token 2 (S_2_3)
If...
Then
If...
Then
then a sequence
runs to S_2_5.
If transition
condition d is true,
then a sequence
runs to S_2_4.
If transition
condition f is true,
then a sequence
runs to S_2_5.
If S_2_5 is still active (token 1) because of the activation of transition condition e, then token
2 is ended and the string will be further processed as Single-Token.
If S_2_5 is no longer active (token 1), then it is reactivated by token 2 and both tokens
continue running parallel (Multi-Token).
442
35006144 05/2010
www.barr-thorp.com
If...
Then
A second token is created by the jump out of a branch string. Both tokens are running
parallel to one another, i.e. S_4_3 and S_4_1 are active at the same time.
Token 1 (S_4_3)
If...
Token 2 (S_4_1)
Then
If...
Then
If step S_4_3 is still active (token 1) during the activation by token 2 then token 2 is ended
and the string will continue to be processed as Single-Token.
If step S_4_3 is no longer active (token 1) because of the activation by token 2 , then it is
reactivated by token 2 and both tokens continue running parallel (Multi-Token).
In both cases, true transition condition d causes the parallel string to be left.
443
35006144 05/2010
www.barr-thorp.com
If...
Then
Token 2 (S_3_5)
Then
If...
Then
If transition condition
d is true,
then a sequence
runs to S_3_6.
If transition condition a is true then a sequence runs to S_3_1 and S_3_2. This ends token
2 and the string is again processed as Single-Token.
If the transition condition a is true,
then a sequence runs to S_3_1 and S_3_2.
If transition condition
b is true and c is
false,
then a sequence
runs to S_3_4.
Since S_3_4 cannot become active, S_3_1 remains (token 1) active until a sequence
appears on S_3_2 (token 2) and the transition is b.
If S_4_4 is no longer active (token 1), then it is reactivated by token 2 and both tokens
continue running parallel (Multi-Token).
(Merging the two tokens can also be done in S_4_3.)
444
35006144 05/2010
www.barr-thorp.com
14
Overview
This chapter describes the programming language instruction list IL which conforms
to IEC 61131.
What's in this Chapter?
This chapter contains the following sections:
Section
Topic
Page
14.1
446
14.2
468
445
35006144 05/2010
www.barr-thorp.com
14.1
Overview
This section contains a general overview of the IL instruction list.
What's in this Section?
This section contains the following topics:
Topic
Page
447
Operands
450
Modifier
452
Operators
454
Subroutine Call
464
465
Comment
467
446
35006144 05/2010
www.barr-thorp.com
447
35006144 05/2010
www.barr-thorp.com
Meaning
LD 10
ADD 25
ST A
Compare operations likewise always refer to the accumulator. The Boolean result of
the comparison is stored in the accumulator and therefore becomes the current
accumulator content.
Example of a comparison:
Command
Meaning
LD B
GT 10
ST A
Section Size
The length of an instruction line is limited to 300 characters.
The length of an IL section is not limited within the programming environment. The
length of an IL section is only limited by the size of the PLC memory.
Syntax
Identifiers and Keywords are not case sensitive.
Spaces and tabs have no influence on the syntax and can be used as and when
required,
448
35006144 05/2010
www.barr-thorp.com
449
35006144 05/2010
www.barr-thorp.com
Operands
Introduction
Operators are used for operands.
An operand can be:
an address
z a literal
z a variable
z a multi-element variable
z an element of a multi-element variable
z an EFB/DFB output or
z an EFB/DFB call
z
Data Types
The operand and the current accumulator content must be of the same type. Should
operands of various types be processed, a type conversion must be performed
beforehand.
In the example the integer variable i1 is converted into a real variable before being
added to the real variable r4.
LD i1
INT_TO_REAL
ADD r4
ST r3
As an exception to this rule, variables with data type TIME can be multiplied or
divided by variables with data type INT, DINT, UINT or UDINT.
Permitted operations:
z LD
timeVar1
DIV dintVar1
ST timeVar2
z LD
timeVar1
MUL intVar1
ST timeVar2
z LD
timeVar1
MUL 10
ST timeVar2
This function is listed by IEC 61131-3 as "undesired" service.
Direct Use of Addresses
Addresses can be used directly (without a previous declaration). In this case the
data type is assigned to the address directly. The assignment is made using the
"Large prefix".
450
35006144 05/2010
www.barr-thorp.com
Example
Data type
no prefix
BOOL
%MX20
BOOL
%QB102.3
BYTE
%KW43
INT
%QD100
DINT
%MF100
REAL
451
35006144 05/2010
www.barr-thorp.com
Modifier
Introduction
Modifiers influence the execution of the operators (see Operators, page 454).
Table of Modifiers
Table of Modifiers:
Modifier
Use of
Operators of
data type
Description
BOOL, BYTE,
WORD, DWORD
BOOL
CN
BOOL
452
35006144 05/2010
www.barr-thorp.com
Modifier
Use of
Operators of
data type
Description
all
The left bracket modifier (is used to move back the evaluation
of the operand, until the right bracket operator) appears. The
number of right parenthesis operations must be equal to the
number of left bracket modifiers. Brackets can be nested.
Example: In the example E is 1, if C and/or D is 1 and A and B
are 1.
LD A
AND B
AND( C
OR D
)
ST E
The example can also be programmed in the following manner:
LD A
AND B
AND(
LD C
OR D
)
ST E
453
35006144 05/2010
www.barr-thorp.com
Operators
Introduction
An operator is a symbol for:
an arithmetic operation to be executed,
z a logical operation to be executed or
z calling an elementary function block - DFBs or subroutines.
z
Operators are generic, i.e. they adapt automatically to the data type of the operands.
Load and Save Operators
IL programming language load and save operators:
Operator Modifier
Meaning
Operands
Description
LD
N
(only for
operands
of data
type
BOOL,
BYTE,
WORD or
DWORD)
Loads the
operands
value into
the
accumulator
Literal,
variable, direct
address of any
data type
ST
N
(only for
operands
of data
type
BOOL,
BYTE,
WORD or
DWORD)
Saves the
Variable, direct The current value of the accumulator is stored in the operand
accumulator address of any using ST. The data type of the operand must be the same as
value in the data type
the "data type" of the accumulator.
operand
Example: In this example the value of A is loaded into the
accumulator, the value of B then added and the result saved
in E.
LD A
ADD B
ST E
The "old" result is used in subsequent calculations,
depending on whether or not an LD follows an ST.
Example: In this example the value of A is loaded into the
accumulator, the value of B then added and the result saved
in E. The value of B is then subtracted from the value of E
(current accumulator content) and the result saved in C.
LD A
ADD B
ST E
SUB 3
ST C
454
35006144 05/2010
www.barr-thorp.com
Modifier
Meaning
Operands
Description
Sets the
operand to 1,
when the
accumulator
content is 1
Variable, direct
address of BOOL
data type
Sets the
operand to 0
when the
accumulator
content is 1
Variable, direct
address of BOOL
data type
455
35006144 05/2010
www.barr-thorp.com
Logical Operators
IL programming language logic operators:
Operator
Modifier
Meaning
Operands
Description
AND
N, N(, (
Logical AND
Literal, variable,
direct address of
BOOL, BYTE, WORD
or DWORD data types
OR
N, N(, (
Logical OR
Literal, variable,
direct address of
BOOL, BYTE, WORD
or DWORD data types
456
35006144 05/2010
www.barr-thorp.com
Operator
Modifier
Meaning
Operands
Description
XOR
N, N(, (
Logical
exclusive OR
Literal, variable,
direct address of
BOOL, BYTE, WORD
or DWORD data types
NOT
Logical
negation
(complement)
Accumulator
contents of data
types BOOL, BYTE,
WORD or DWORD
457
35006144 05/2010
www.barr-thorp.com
Arithmetic Operators
IL programming language Arithmetic operators:
Operator
Modifier
Meaning
Operands
Description
ADD
Addition
Literal, variable,
direct address of
data types INT,
DINT, UINT, UDINT,
REAL or TIME
SUB
Subtraction
Literal, variable,
direct address of
data types INT,
DINT, UINT, UDINT,
REAL or TIME
MUL
Multiplication
Literal, variable,
direct address of
data type INT,
DINT, UINT, UDINT
or REAL
458
35006144 05/2010
www.barr-thorp.com
Operator
Modifier
Meaning
Operands
Description
DIV
Division
Literal, variable,
direct address of
data type INT,
DINT, UINT, UDINT
or REAL
MOD
Modulo
Division
Literal, variable,
direct address of
INT, DINT, UINT or
UDINT data types
459
35006144 05/2010
www.barr-thorp.com
Comparison Operators
IL programming language comparison operators:
Operator
Modifier
Meaning
Operands
Description
GT
Comparison: >
Literal, variable,
direct address of
data type BOOL,
BYTE, WORD, DWORD,
STRING, INT, DINT,
UINT, UDINT, REAL,
TIME, DATE, DT or
TOD
GE
Comparison: >=
Literal, variable,
direct address of
data type BOOL,
BYTE, WORD, DWORD,
STRING, INT, DINT,
UINT, UDINT, REAL,
TIME, DATE, DT or
TOD
EQ
Comparison: =
Literal, variable,
direct address of
data type BOOL,
BYTE, WORD, DWORD,
STRING, INT, DINT,
UINT, UDINT, REAL,
TIME, DATE, DT or
TOD
460
35006144 05/2010
www.barr-thorp.com
Operator
Modifier
Meaning
Operands
NE
LE
LT
Comparison: <
Literal, variable,
direct address of
data type BOOL,
BYTE, WORD, DWORD,
STRING, INT, DINT,
UINT, UDINT, REAL,
TIME, DATE, DT or
TOD
Description
461
35006144 05/2010
www.barr-thorp.com
Call Operators
IL programming language call operators:
Operator
Modifier
Meaning
CAL
C, CN
(only if the
accumulator
contents are
of the BOOL
data type)
Call of a
Instance name of the
function block, function block, DFB
DFB or
or subprogram
subprogram
Operands
Description
A function block, DFB or subprogram is
called up conditionally or unconditionally
with CAL.
see also Calling Elementary Function
Blocks and Derived Function Blocks,
page 474 and Subroutine Call, page 464
FUNCTIONNAME
Executing a
function
Literal, variable,
direct address (data
type is dependent on
function)
PROCEDURENAME -
Executing a
procedure
Literal, variable,
A procedure is performed by specifying
direct address (data the name of the procedure.
type is dependent on see also Calling Procedures, page 485
procedure)
462
35006144 05/2010
www.barr-thorp.com
Structuring Operators
IL programming language structuring operators:
Operator
Modifier
Meaning
Operands
Description
JMP
C, CN
(only if the
accumulator
contents are
of the BOOL
data type)
Jump to label
LABEL
RET
C, CN
(only if the
accumulator
contents are
of the BOOL
data type)
Return to the
next highest
program
organization
unit
Processing
deferred
operations
463
35006144 05/2010
www.barr-thorp.com
Subroutine Call
Call Subroutine
A subroutine call consists of the CAL operator, followed by the name of the
subroutine section, followed by an empty parameter list (optional).
Subroutine calls do not return a value.
The subroutine to be called must be located in the same task as the IL section called.
Subroutines can also be called from within subroutines.
e.g.
ST A
CAL SubroutineName ()
LD B
or
ST A
CAL SubroutineName
LD B
Subroutines are a supplement to IEC 61131-3 and must be enabled explicitly.
In SFC action sections, subroutine calls are only allowed when Multitoken Operation
is enabled.
464
35006144 05/2010
www.barr-thorp.com
465
35006144 05/2010
www.barr-thorp.com
Example
start2: LD A
ST counter.CU
LD B
ST counter.R
LD C
ST counter.PV
CAL counter
JMPCN start4
start1: LD A
AND B
OR C
ST D
JMPC start3
LD A
ADD E
JMP start5
start3: CAL counter (
CU:=A
R:=B
PV:=C )
JMP start1
LD A
OR B
OR C
ST D
start4: JMPC start1
LD C
OR B
start5: ST A
466
35006144 05/2010
www.barr-thorp.com
Comment
Description
In the IL editor, comments always start with the string (* and end in the string *).
Any comments can be entered between these character strings.
Nesting comments is not permitted according to IEC 61131-3. If comments are
nested nevertheless, then they must be enabled explicitly.
467
35006144 05/2010
www.barr-thorp.com
14.2
Overview
Calling Elementary Functions, Elementary Function Blocks, Derived Function
Blocks and Procedures in the IL programming language.
What's in this Section?
This section contains the following topics:
Topic
Page
469
474
Calling Procedures
485
468
35006144 05/2010
www.barr-thorp.com
35006144 05/2010
www.barr-thorp.com
Not all formal parameters must be assigned a value for formal calls. Which formal
parameter types must be assigned a value can be seen in the following table.
Parameter type
EDT
STRING
ARRAY
ANY_ARRAY IODDT
STRUCT FB
ANY
Input
VAR_IN_OUT
Output
not applicable
If no value is assigned to a formal parameter, the initial value will be used when the
function is executed. If no initial value has been defined, the default value (0) is
used.
Programming Notes
Attention should be paid to the following programming notes:
z Functions are only executed if the input EN=1 or the EN input is not used (see also
EN and ENO (see page 473)).
z All generic functions are overloaded. This means the functions can be called with
or without entering the data type.
E.g.
LD i1
ADD i2
ST i3
is identical to
LD i1
ADD_INT i2
ST i3
z In contrast to ST, functions in IL cannot be nested.
z There are two ways of invoking a function:
z Formal call (calling a function with formal parameter names)
z Informal call (calling a function without formal parameter names)
Formal Call
With this type of call (call with formal parameter names), the function is called using
an instruction sequence consisting of the function name, followed by the bracketed
list of value assignments (actual parameters) to the formal parameters. The order in
which the formal parameters are listed is not significant. The list of actual
parameters may be wrapped immediately following a comma. After executing the
function the result is loaded into the accumulator and can be stored using ST.
EN and ENO can be used for this type of call.
470
35006144 05/2010
www.barr-thorp.com
or
LIMIT (
MN:=0,
IN:=var1,
MX:=var2
)
ST out
Calling the same function in FBD:
With formal calls, values do not have to be assigned to all formal parameters (see
also Parameter (see page 469)).
LIMIT (MN:=0, IN:=var1)
ST out
Calling the same function in FBD:
Informal Call
With this type of call (call without formal parameter names), the function is called
using an instruction sequence made up by loading the first actual parameter into the
accumulator, followed by the function name and an optional list of actual
parameters. The order in which the actual parameters are listed is significant. The
list of actual parameters cannot be wrapped. After executing the function the result
is loaded into the accumulator and can be stored using ST.
EN and ENO cannot be used for this type of call.
471
35006144 05/2010
www.barr-thorp.com
NOTE: Note that when making an informal call, the list of actual parameters cannot
be put in brackets. IEC 61133-3 requires that the brackets be left out in this case to
illustrate that the first actual parameter is not a part of the list.
Invalid informal call for a function:
472
35006144 05/2010
www.barr-thorp.com
EN and ENO
With all functions an EN input and an ENO output can be configured.
If the value of EN is equal to "0" when the function is called, the algorithms defined
by the function are not executed and ENO is set to "0".
If the value of EN is equal to 1 when the function is called, the algorithms defined by
the function are executed. After the algorithms have been executed successfully,
the value of ENO is set to "1". If an error occurred while executing the 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").
If ENO is set to "0" (caused when EN=0 or an error occurred during execution), the
output of the function is set to "0".
The output behavior of the function does not depend on whether the function was
called up without EN/ENO or with EN=1.
If EN/ENO are used, the function call must be formal.
LIMIT (EN:=1, MN:=0, IN:=var1, MX:=5, ENO=>var2)
ST out
Calling the same function in FBD:
473
35006144 05/2010
www.barr-thorp.com
The following can be used as actual parameters for function block outputs:
z Variable
z Address
The data type of the actual parameters must match the data type of the formal
parameters. The only exceptions are generic formal parameters whose data type is
determined by the actual parameter.
Exception:
When dealing with generic ANY_BIT formal parameters, actual INT or DINT (not
UINT and UDINT) parameters can be used.
This is a supplement to IEC 61131-3 and must be enabled explicitly.
Example:
Allowed:
AND (AnyBitParam := IntVar1, AnyBitParam2 := IntVar2)
Not allowed:
AND_WORD (WordParam1 := IntVar1, WordParam2 := IntVar2)
(In this case, AND_INT must be used.)
474
35006144 05/2010
www.barr-thorp.com
EDT
EFB: Input
STRING
ARRAY
ANY_ARRAY IODDT
STRUCT FB
ANY
EFB: VAR_IN_OUT +
EFB: Output
DFB: Input
DFB: VAR_IN_OUT +
DFB: Output
not applicable
If no value is allocated to a formal parameter, then the initial value will be used for
executing the function block. If no initial value has been defined then the default
value (0) is used.
If a formal parameter is not assigned a value and the function block/DFB is
instanced more than once, then the following instances are run with the old value.
Public Variables
In addition to inputs and outputs, some function blocks also provide public variables.
These variables transfer statistical values (values that are not influenced by the
process) to the function block. They are used for setting parameters for the function
block.
Public variables are a supplement to IEC 61131-3.
The assignment of values to public variables is made via their initial values or via the
load and save instructions.
Example:
475
35006144 05/2010
www.barr-thorp.com
Public variables are read via the instance name of the function block and the names
of the public variables.
Example:
Private Variables
In addition to inputs, outputs and public variables, some function blocks also provide
private variables.
Like public variables, private variables are used to transfer statistical values (values
that are not influenced by the process) to the function block.
Private variables can not be accessed by user program. These type of variables can
only be accessed by the animation table.
NOTE: Nested DFBs are declared as private variables of the parent DFB. So their
variables are also not accessible through programming, but trough the animation
table.
Private variables are a supplement to IEC 61131-3.
Programming Notes
Attention should be paid to the following programming notes:
Functions are only executed if the input EN=1 or the EN input is not used (see also
EN and ENO (see page 482)).
z The assignment of variables to ANY or ARRAY output types must be made using
the => operator (see also Formal Form of CAL with a List of the Input Parameters
(see page 477)).
Assignments cannot be made outside the function block call.
The instruction
My_Var := My_SAH.OUT
is invalid, if the output OUT of the SAH function block is of type ANY.
The instruction
Cal My_SAH (OUT=>My_Var)
is valid.
z Special conditions apply when using VAR_IN_OUT variables (see page 483).
z The use of function blocks consists of two parts:
z the Declaration (see page 477)
z calling the function block
z
476
35006144 05/2010
www.barr-thorp.com
Function block/DFB instances can be called multiple times; other than instances
of communication EFBs, these can only be called once (see Multiple Call of a
Function Block Instance (see page 482)).
Declaration
Before calling a function block it must be declared in the variables editor.
Formal Form of CAL with a List of Input Parameters
With this type of call (call with formal parameter names), the function block is called
using a CAL instruction which follows the instance name of the function block and a
bracketed list of actual parameter assignments to the formal parameters. The
assignment of the input formal parameter is made using the := assignment and
the output formal parameter is made using the => assignment. The sequence in
which the input formal parameters and output formal parameters are enumerated is
not significant. The list of actual parameters may be continued immediately
following a comma.
EN and ENO can be used for this type of call.
Function block call in the formal form of CAL with a list of input parameters:
or
CAL MY_COUNT (CU:=var1,
R:=reset,
PV:=100,
Q=>out,
CV=>current)
477
35006144 05/2010
www.barr-thorp.com
It is not necessary to assign a value to all formal parameters (see also Parameter
(see page 474)).
CAL MY_COUNT (CU:=var1, R:=reset, Q=>out, CV=>current)
Calling the same function block in FBD:
The value of a function block output can be stored and then saved by loading the
function block output (function block instance name and separated by a full stop or
entering the formal parameter).
Loading and saving function block outputs:
478
35006144 05/2010
www.barr-thorp.com
With informal calls it is not necessary to assign a value to all formal parameters (see
also Parameter (see page 474)).
This is a supplement to IEC 61131-3 and must be enabled explicitly.
An empty parameter field is used to omit a parameter.
Call with empty parameter field:
CAL MY_COUNT (var1, , 100, out, current)
Calling the same function block in FBD:
An empty parameter field does not have to be used if formal parameters are omitted
at the end.
MY_COUNT (var1, reset)
Calling the same function block in FBD:
479
35006144 05/2010
www.barr-thorp.com
FB type
S1, R
SR
S, R1
RS
CLK
R_TRIG
CLK
F_TRIG
CU, R, PV
CD, LD, PV
IN, PT
TP
IN, PT
TON
IN, PT
TOF
480
35006144 05/2010
www.barr-thorp.com
481
35006144 05/2010
www.barr-thorp.com
482
35006144 05/2010
www.barr-thorp.com
VAR_IN_OUT Variable
Function blocks are often used to read a variable at an input (input variables), to
process it and to output the updated values of the same variable (output variables).
This special type of input/output variable is also called a VAR_IN_OUT variable.
The following special features are to be noted when using function blocks/DFBs with
VAR_IN_OUT variables.
z All VAR_IN_OUT inputs must be assigned a variable.
z VAR_IN_OUT inputs may not have literals or constants assigned to them.
z VAR_IN_OUT outputs may not have values assigned to them.
z VAR_IN_OUT variables cannot be used outside the block call.
Calling a function block with a VAR_IN_OUT variable in IL:
CAL MY_FBLOCK(IN1:=V1, IN2:=V2, IO1:=V3,
OUT1=>V4, OUT2=>V5)
Calling the same function block in FBD:
CAL InOutFB
AND V2
483
35006144 05/2010
www.barr-thorp.com
AND InOutFB.inout
ST InOutFB.IN1
CAL InOutFB(inout:=V2)
484
35006144 05/2010
www.barr-thorp.com
Calling Procedures
Procedure
Procedures are provided in the form of libraries. The logic of the procedure is
created in the programming language C and may not be modified in the IL editor.
Procedures - like functions - have no internal states. If the input values are the same,
the value on the output is the same every time the procedure is executed. For
example, the addition of two values gives the same result every time.
In contrast to functions, procedures do not return a value and support VAR_IN_OUT
variables.
Procedures are a supplement to IEC 61131-3 and must be enabled explicitly.
Parameter
"Inputs and outputs" are required to transfer values to or from procedures. These are
called formal parameters.
The current process states are transferred to the formal parameters. These are
called actual parameters.
The following can be used as actual parameters for procedure inputs:
z Variable
z Address
z Literal
The following can be used as actual parameters for procedure outputs:
z Variable
z Address
The data type of the actual parameter must match the data type of the formal
parameter. The only exceptions are generic formal parameters whose data type is
determined by the actual parameter.
When dealing with generic ANY_BIT formal parameters, actual parameters of the
INT or DINT (not UINT and UDINT) data types can be used.
This is a supplement to IEC 61131-3 and must be enabled explicitly.
Example:
Allowed:
AND (AnyBitParam := IntVar1, AnyBitParam2 := IntVar2)
Not allowed:
AND_WORD (WordParam1 := IntVar1, WordParam2 := IntVar2)
(In this case, AND_INT must be used.)
AND_ARRAY_WORD (ArrayInt, ...)
485
35006144 05/2010
www.barr-thorp.com
(In this case an explicit type conversion must be carried out using
INT_ARR_TO_WORD_ARR (...).
Not all formal parameters must be assigned a value for formal calls. Which formal
parameter types must be assigned a value can be seen in the following table.
Parameter type
EDT
STRING
ARRAY
ANY_ARRAY IODDT
STRUCT FB
ANY
Input
VAR_IN_OUT
Output
not applicable
If no value is allocated to a formal parameter, then the initial value will be used for
executing the function block. If no initial value has been defined, the default value
(0) is used.
Programming Notes
Attention should be paid to the following programming notes:
z Procedures are only executed if the input EN=1 or the EN input is not used (see
also EN and ENO (see page 489)).
z Special conditions apply when using VAR_IN_OUT variables (see page 490).
z There are two ways of calling a procedure:
z Formal call (calling a function with formal parameter names)
In this case variables can be assigned to outputs using the => operator (calling
a function block in shortened form).
z Informal call (calling a function without formal parameter names)
Formal Call
With this type of call (call with formal parameter names), the procedure is called
using an optional CAL instruction sequence followed by the name of the procedure
and a bracketed list of actual parameter to formal parameter assignments. The
assignment of the input formal parameter is made using the := assignment and
the output formal parameter is made using the => assignment. The order in which
the input formal parameters and output formal parameters are listed is not
significant.
The list of actual parameters may be wrapped immediately following a comma.
EN and ENO can be used for this type of call.
486
35006144 05/2010
www.barr-thorp.com
or
CAL PROC (IN1:=var1, IN2:=var1, OUT1=>result1,OUT2=>result2)
or
PROC (IN1:=var1,
IN2:=var1,
OUT1=>result1,
OUT2=>result2)
or
CAL PROC (IN1:=var1,
IN2:=var1,
OUT1=>result1,
OUT2=>result2)
Calling the same procedure in FBD:
With formal calls, values do not have to be assigned to all formal parameters (see
also Parameter (see page 485)).
PROC (IN1:=var1, OUT1=>result1, OUT2=>result2)
or
CAL PROC (IN1:=var1, OUT1=>result1, OUT2=>result2)
Calling the same procedure in FBD:
487
35006144 05/2010
www.barr-thorp.com
NOTE: Note that when making an informal call, the list of actual parameters cannot
be put in brackets. IEC 61133-3 requires that the brackets be left out in this case to
illustrate that the first actual parameter is not a part of the list.
Invalid informal call for a procedure:
488
35006144 05/2010
www.barr-thorp.com
or
CAL PROC (var1,
var2,
result1,
result2)
Calling the same procedure in FBD:
NOTE: Unlike informal calls without a CAL instruction, when making informal calls
with a CAL instruction, the value to be processed (first actual parameter) is not
explicitly loaded in the battery. Instead it is part of the list of actual parameters. For
this reason, when making informal calls with a CAL instruction, the list of actual
parameters must be put in brackets.
EN and ENO
With all procedures, an EN input and an ENO output can be configured.
If the value of EN is equal to "0" when the procedure is called, the algorithms defined
by the procedure are not executed and ENO is set to "0".
If the value of EN is "1" when the procedure is called, the algorithms defined by the
function are executed. After the algorithms have been executed successfully, the
value of ENO is set to "1". If an error occurs 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").
If ENO is set to "0" (caused when EN=0 or an error occurred during executing), the
outputs of the procedure are set to "0".
If EN/ENO are used, the procedure call must be formal. The assignment of variables
to ENO must be made using the => operator.
PROC (EN:=1, IN1:=var1, IN2:=var2,
ENO=>error, OUT1=>result1, OUT2=>result2) ;
489
35006144 05/2010
www.barr-thorp.com
VAR_IN_OUT Variable
Procedures are often used to read a variable at an input (input variables), to process
it and to output the updated values of the same variable (output variables). This
special type of input/output variable is also called a VAR_IN_OUT variable.
The following special features are to be noted when using procedures with
VAR_IN_OUT variables.
z All VAR_IN_OUT inputs must be assigned a variable.
z VAR_IN_OUT inputs may not have literals or constants assigned to them.
z VAR_IN_OUT outputs may not have values assigned to them.
z VAR_IN_OUT variables cannot be used outside of the procedure call.
Calling a procedure with VAR_IN_OUT variable in IL:
PROC3 (IN1:=V1, IN2:=V2, IO1:=V3,
OUT1=>V4, OUT2=>V5) ;
Calling the same procedure in FBD:
CAL InOutProc
AND V2
490
35006144 05/2010
www.barr-thorp.com
AND InOutProc.inout
InOutFB V2
491
35006144 05/2010
www.barr-thorp.com
492
35006144 05/2010
www.barr-thorp.com
15
Overview
This chapter describes the programming language structured text ST which
conforms to IEC 61131.
What's in this Chapter?
This chapter contains the following sections:
Section
Topic
Page
15.1
494
15.2
Instructions
505
15.3
523
493
35006144 05/2010
www.barr-thorp.com
15.1
Overview
This section contains a general overview of the structured text ST.
What's in this Section?
This section contains the following topics:
Topic
Page
495
Operands
498
Operators
500
494
35006144 05/2010
www.barr-thorp.com
495
35006144 05/2010
www.barr-thorp.com
Section Size
The length of an instruction line is limited to 300 characters.
The length of an ST section is not limited within the programming environment. The
length of an ST section is only limited by the size of the PLC memory.
Syntax
Identifiers and Keywords are not case sensitive.
Exception: Not allowed - spaces and tabs
keywords
z literals
z values
z identifiers
z variables and
z limiter combinations [e.g. (* for comments)]
z
Execution Sequence
The evaluation of an expression consists of applying the operators to the operands
in the sequence as defined by the rank of the operators (see Table of Operators
(see page 500)). The operator with the highest rank in an expression is performed
first, followed by the operator with the next highest rank, etc., until the evaluation is
complete. Operators with the same rank are performed from left to right, as they are
written in the expression. This sequence can be altered with the use of parentheses.
If, for example, A, B, C and D have the values 1, 2, 3 and 4, and are calculated as
follows:
A+B-C*D
the result is -9.
In the case of the following calculation:
(A+B-C)*D
the result is 0.
If an operator contains two operands, the left operand is executed first, e.g. in the
expression
SIN(A)*COS(B)
the expression SIN(A) is calculated first, then COS(B) and only then is the product
calculated.
496
35006144 05/2010
www.barr-thorp.com
Error Behavior
The following conditions are handled as an error when executing an expression:
z Attempting to divide by 0.
z Operands do not contain the correct data type for the operation.
z The result of a numerical operation exceeds the value range of its data type
If an error occurs when executing the operation, the corresponding Systembit (%S)
is set (if supported by the PLC being used).
IEC Conformity
For a description of IEC conformity for the ST programming language, see IEC
Conformity (see page 637).
497
35006144 05/2010
www.barr-thorp.com
Operands
Introduction
An operand can be:
an address
z a literal
z a variable
z a multi-element variable
z an element of a multi-element variable
z a function call
z an FFB output
z
Data Types
Data types, which are in an instruction of processing operands, must be identical.
Should operands of various types be processed, a type conversion must be
performed beforehand.
In the example the integer variable i1 is converted into a real variable before being
added to the real variable r4.
r3 := r4 + SIN(INT_TO_REAL(i1)) ;
As an exception to this rule, variables with data type TIME can be multiplied or
divided by variables with data type INT, DINT, UINT or UDINT.
Permitted operations:
z timeVar1 := timeVar2 / dintVar1;
z timeVar1 := timeVar2 * intVar1;
z timeVar := 10 * time#10s;
This function is listed by IEC 61131-3 as "undesired" service.
498
35006144 05/2010
www.barr-thorp.com
Example
Data type
no prefix
BOOL
%MX20
BOOL
%QB102.3
BYTE
%KW43
INT
%QD100
DINT
%MF100
REAL
499
35006144 05/2010
www.barr-thorp.com
Operators
Introduction
An operator is a symbol for:
an arithmetic operation to be executed or
z a logical operation to be executed or
z a function edit (call)
z
Operators are generic, i.e. they adapt automatically to the data type of the operands.
Table of Operators
Operators are executed in sequence according to priority, see also Execution
Sequence, page 496.
ST programming language operators:
Operator
Meaning
Order of
rank
possible operands
Description
()
Use of
Brackets:
1 (highest)
Expression
FUNCNAM Function
E (Actual
processing
parameter (call)
-list)
Expression, Literal,
Variable, Address (all data
types)
Negation
Expression, Literal,
Variable, Address of Data
TypeINT, DINT, UINT,
UDINT or REAL
NOT
Complement
Expression, Literal,
Variable, Address of Data
Type BOOL, BYTE, WORD or
DWORD
**
Exponentiation 4
Expression, Literal,
Variable, Address of Data
TypeREAL (Basis) and INT,
DINT, UINT, UDINT or
REAL (Exponent)
500
35006144 05/2010
www.barr-thorp.com
Operator
Meaning
Order of
rank
possible operands
Description
Multiplication
Expression, Literal,
Variable, Address of Data
TypeINT, DINT, UINT,
UDINT or REAL
Division
Expression, Literal,
Variable, Address of Data
TypeINT, DINT, UINT,
UDINT or REAL
MOD
Modulo
Expression, Literal,
Variable, Address of Data
Type INT, DINT, UINT or
UDINT
Addition
Expression, Literal,
Variable, Address of Data
Type INT, DINT, UINT,
UDINT, REAL or TIME
Subtraction
Expression, Literal,
Variable, Address of Data
Type INT, DINT, UINT,
UDINT, REAL or TIME
501
35006144 05/2010
www.barr-thorp.com
Operator
Meaning
Order of
rank
possible operands
Description
<
Less than
comparison
Expression, Literal,
Variable, Address of Data
Type BOOL, BYTE, INT,
DINT, UINT, UDINT, REAL,
TIME, WORD, DWORD,
STRING, DT, DATE or TOD
>
Greater than
comparison
Expression, Literal,
Variable, Address of Data
Type BOOL, BYTE, INT,
DINT, UINT, UDINT, REAL,
TIME, WORD, DWORD,
STRING, DT, DATE or TOD
<=
Less than or
equal to
comparison
Expression, Literal,
Variable, Address of Data
Type BOOL, BYTE, INT,
DINT, UINT, UDINT, REAL,
TIME, WORD, DWORD,
STRING, DT, DATE or TOD
>=
Greater than or 7
equal to
comparison
Expression, Literal,
Variable, Address of Data
Type BOOL, BYTE, INT,
DINT, UINT, UDINT, REAL,
TIME, WORD, DWORD,
STRING, DT, DATE or TOD
502
35006144 05/2010
www.barr-thorp.com
Operator
Meaning
Order of
rank
possible operands
Description
Equality
Expression, Literal,
Variable, Address of Data
Type BOOL, BYTE, INT,
DINT, UINT, UDINT, REAL,
TIME, WORD, DWORD,
STRING, DT, DATE or TOD
<>
Inequality
Expression, Literal,
Variable, Address of Data
Type BOOL, BYTE, INT,
DINT, UINT, UDINT, REAL,
TIME, WORD, DWORD,
STRING, DT, DATE or TOD
&
Logical AND
Expression, Literal,
Variable, Address of Data
Type BOOL, BYTE, WORD or
DWORD
AND
Logical AND
Expression, Literal,
Variable, Address of Data
Type BOOL, BYTE, WORD or
DWORD
503
35006144 05/2010
www.barr-thorp.com
Operator
Meaning
Order of
rank
possible operands
Description
XOR
Logical
Exclusive OR
10
Expression, Literal,
Variable, Address of Data
Type BOOL, BYTE, WORD or
DWORD
OR
Logical OR
11 (lowest)
Expression, Literal,
Variable, Address of Data
Type BOOL, BYTE, WORD or
DWORD
504
35006144 05/2010
www.barr-thorp.com
15.2
Instructions
Overview
This section describes the instructions for the programming language of structured
text ST.
What's in this Section?
This section contains the following topics:
Topic
Page
Instructions
506
Assignment
507
509
510
511
512
513
515
516
517
Subroutine Call
518
RETURN
519
Empty Instruction
520
521
Comment
522
505
35006144 05/2010
www.barr-thorp.com
Instructions
Description
Instructions are the "Commands" of the ST programming language.
Instructions must be terminated with semicolons.
Several instructions (separated by semicolons) can be present in one line.
A single semicolon represents an Empty instruction (see page 520).
506
35006144 05/2010
www.barr-thorp.com
Assignment
Introduction
When an assignment is performed, the current value of a single or multi-element
variable is replaced by the result of the evaluation of the expression.
An assignment consists of a variable specification on the left side, followed by the
assignment operator :=, followed by the expression to be evaluated.
Both variables (left and right sides of the assignment operator) must have the same
data type.
Arrays are a special case. After being explicitly enabled, assignment of two arrays
with different lengths can be made.
Assigning the Value of a Variable to Another Variable
Assignments are used to assign the value of a variable to another variable.
The instruction
A := B ;
is used, for example, to replace the value of the variable A with the current value of
variable B. If A and B are elementary data types, the individual value of B is passed
to A. If A and B are derived data types, the values of all B elements are passed to A.
Assigning the Value of a Literal to a Variable
Assignments are used to assign a literal to variables.
The instruction
C := 25 ;
is used, for example, to assign the value 25 to the variable C.
Assigning the Value of an Operation to a Variable
Assignments are used to assign to a variable a value which is the result of an
operation.
The instruction
X := (A+B-C)*D ;
is used, for example, to assign the result of the operation (A+B-C)*D to the variable
X.
Assigning the Value of an FFB to a Variable
Assignments are used to assign a value returned by a function or a function block to
a variable.
507
35006144 05/2010
www.barr-thorp.com
The instruction
B := MOD(C,A) ;
is used, for example, to call the MOD (Modulo) function and assign the result of the
calculation to the variable B.
The instruction
A := MY_TON.Q ;
is used, for example, to assign the value of the Q output of the MY_TON function block
(instance of the TON function block) to the variable A. (This is not a function block
call) )
Multiple Assignments
Multiple assignments are a supplement to IEC 61131-3 and must be enabled
explicitly.
Even after being enabled, multiple assignments are NOT allowed in the following
cases:
z in the parameter list for a function block call
z in the element list to initialize structured variables
The instruction
X := Y := Z
is allowed.
The instructions
FB(in1 := 1, In2 := In3 := 2) ;
and
strucVar := (comp1 := 1, comp2 := comp3 := 2) ;
are not allowed.
Assignments between Arrays and WORD-/DWORD Variables
Assignments between arrays and WORD-/DWORD variables are only possible if a type
conversion has previously been carried out, e.g.:
%Q3.0:16 := INT_TO_AR_BOOL(%MW20) ;
The following conversion functions are available (General Library, family Array):
MOVE_BOOL_AREBOOL
z MOVE_WORD_ARWORD
z MOVE_DWORD_ARDWORD
z MOVE_INT_ARINT
z MOVE_DINT_ARDINT
z MOVE_REAL_ARREAL
z
508
35006144 05/2010
www.barr-thorp.com
509
35006144 05/2010
www.barr-thorp.com
510
35006144 05/2010
www.barr-thorp.com
COS(B) ;
;
;
;
511
35006144 05/2010
www.barr-thorp.com
See Also
ELSE (see page 510)
512
35006144 05/2010
www.barr-thorp.com
35006144 05/2010
www.barr-thorp.com
514
35006144 05/2010
www.barr-thorp.com
515
35006144 05/2010
www.barr-thorp.com
516
35006144 05/2010
www.barr-thorp.com
517
35006144 05/2010
www.barr-thorp.com
Subroutine Call
Subroutine Call
A subroutine call consists of the name of the subroutine section followed by an
empty parameter list.
Subroutine calls do not return a value.
The subroutine to be called must be located in the same task as the ST section
called.
Subroutines can also be called from within subroutines.
For example:
SubroutineName () ;
Subroutine calls are a supplement to IEC 61131-3 and must be enabled explicitly.
In SFC action sections, subroutine calls are only allowed when Multitoken Operation
is enabled.
518
35006144 05/2010
www.barr-thorp.com
RETURN
Description
RETURN instructions can be used in DFBs (derived function blocks) and in SRs
(subroutines).
RETURN instructions can not be used in the main program.
z
In a DFB, a RETURN instruction forces the return to the program which called the
DFB.
z The rest of the DFB section containing the RETURN instruction is not executed.
z The next sections of the DFB are not executed.
The program which called the DFB will be executed after return from the DFB.
If the DFB is called by another DFB, the calling DFB will be executed after return.
In a SR, a RETURN instruction forces the return to the program which called the
SR.
z The rest of the SR containing the RETURN instruction is not executed.
The program which called the SR will be executed after return from the SR.
519
35006144 05/2010
www.barr-thorp.com
Empty Instruction
Description
A single semicolon ; represents an empty instruction.
For example,
IF x THEN ; ELSE ..
In this example, an empty instruction follows the THEN instruction. This means that
the program exits the IF instruction as soon as the IF condition is 1.
520
35006144 05/2010
www.barr-thorp.com
521
35006144 05/2010
www.barr-thorp.com
Comment
Description
In the ST editor, comments always start with the string (* and end in the string *).
Any comments can be entered between these character strings. Comments can be
entered in any position in the ST editor, except in keywords, literals, identifiers and
variables.
Nesting comments is not permitted according to IEC 61131-3. If comments are
nested nevertheless, then they must be enabled explicitly.
522
35006144 05/2010
www.barr-thorp.com
15.3
Overview
Calling Elementary Functions, Elementary Function Blocks, Derived Function
Blocks and Procedures in the ST programming language.
What's in this Section?
This section contains the following topics:
Topic
Page
524
529
Procedures
538
523
35006144 05/2010
www.barr-thorp.com
524
35006144 05/2010
www.barr-thorp.com
(In this case an explicit type conversion must be carried out using
INT_ARR_TO_WORD_ARR (...);.
Not all formal parameters must be assigned with a value. You can see which formal
parameter types must be assigned with a value in the following table.
Parameter type
EDT
STRING
ARRAY
ANY_ARRAY IODDT
STRUCT FB
ANY
Input
VAR_IN_OUT
Output
not applicable
If no value is allocated to a formal parameter, then the initial value will be used for
executing the function block. If no initial value has been defined then the default
value (0) is used.
Programming Notes
Attention should be paid to the following programming notes:
z All generic functions are overloaded. This means the functions can be called with
or without entering the data type.
E.g.
i1 := ADD (i2, 3);
is identical to
i1 := ADD_INT (i2, 3);
z Functions can be nested (see also Nesting Functions, page 527).
z Functions are only executed if the input EN=1 or the EN input is not used (see also
EN and ENO, page 528).
z There are two ways of calling a function:
z Formal call (calling a function with formal parameter names)
z Informal call (calling a function without formal parameter names)
Formal Call
With formal calls (calls with formal parameter names), the call consists of the actual
parameter of the output, followed by the assignment instruction :=, then the function
name and then by a bracketed list of value assignments (actual parameters) to the
formal parameter. The order in which the formal parameters are enumerated in a
function call is not significant.
EN and ENO can be used for this type of call.
525
35006144 05/2010
www.barr-thorp.com
With formal calls it is not necessary to assign a value to all formal parameters (see
also Parameters, page 524).
out:=LIMIT (MN:=0, IN:=var1) ;
Calling the same function in FBD:
Informal Call
With informal calls (calls without formal parameter names), the call consists of the
actual parameter of the output, followed by the symbol of the assignment instruction
:=, then the function name and then by a bracketed list of the inputs actual
parameters. The order that the actual parameters are enumerated in a function call
is significant.
EN and ENO cannot be used for this type of call.
Calling a function without formal parameter names:
526
35006144 05/2010
www.barr-thorp.com
With informal calls it is not necessary to assign a value to all formal parameters (see
also Parameters, page 524).
This is a supplement to IEC 61131-3 and must be enabled explicitly.
An empty parameter field is used to skip a parameter.
Call with empty parameter field:
out:=LIMIT ( ,var1, 5 + var) ;
Calling the same function in FBD:
An empty parameter field does not have to be used if formal parameters are omitted
at the end.
out:=LIMIT (0, var1) ;
Calling the same function in FBD:
Nesting Functions
A function call can include the call of further functions. The nesting depth is not
limited.
Nested call of array function:
out:=LIMIT (MN:=4, IN:=MUL(IN1:=var1, IN2:=var2), MX:=5) ;
Calling the same function in FBD:
Functions that return a value of the ANY_ARRAY data type can not be used within
a function call.
Unauthorized nesting with ANY_ARRAY:
35006144 05/2010
www.barr-thorp.com
EN and ENO
With all functions an EN input and an ENO output can be configured.
If the value of EN is equal to "0", when the function is called, the algorithms defined
by the function are not executed and ENO is set to "0".
If the value of EN is equal to "1", when the function is called, the algorithms which
are defined by the function are executed. After successful execution of these
algorithms, the value of ENO is set to "1". If an error occurs during execution of these
algorithms, ENO will be 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").
If ENO is set to "0" (caused when EN=0 or an error occurred during executing), the
output of the function is set to "0".
The output behavior of the function does not depend on whether the function was
called up without EN/ENO or with EN=1.
If EN/ENO are used, the function call must be formal.
out:=LIMIT (EN:=1, MN:=0, IN:=var1, MX:=5, ENO=>var2) ;
Calling the same function in FBD:
528
35006144 05/2010
www.barr-thorp.com
35006144 05/2010
www.barr-thorp.com
(In this case an explicit type conversion must be carried out using
INT_ARR_TO_WORD_ARR (...);.)
Not all formal parameters must be assigned with a value. Which formal parameter
types must be assigned a value can be seen in the following table.
Parameter type
EDT
STRING
ARRAY
ANY_ARRAY IODDT
STRUCT FB
ANY
EFB: Input
EFB: VAR_IN_OUT +
EFB: Output
DFB: Input
DFB: VAR_IN_OUT +
DFB: Output
not applicable
If no value is allocated to a formal parameter, then the initial value will be used for
executing the function block. If no initial value has been defined then the default
value (0) is used.
If a formal parameter is not assigned with a value and the function block/DFB is
instanced more than once, then the following instances are run with the old value.
530
35006144 05/2010
www.barr-thorp.com
Public Variables
In addition to inputs and outputs, some function blocks also provide public variables.
These variables transfer statistical values (values that are not influenced by the
process) to the function block. They are used for setting parameters for the function
block.
Public variables are a supplement to IEC 61131-3.
The assignment of values to public variables is made via their initial values or
assignments.
Example:
Public variables are read via the instance name of the function block and the names
of the public variables.
Example:
Private Variables
In addition to inputs, outputs and public variables, some function blocks also provide
private variables.
Like public variables, private variables are used to transfer statistical values (values
that are not influenced by the process) to the function block.
Private variables can not be accessed by user program. These type of variables can
only be accessed by the animation table.
NOTE: Nested DFBs are declared as private variables of the parent DFB. So their
variables are also not accessible through programming, but trough the animation
table.
Private variables are a supplement to IEC 61131-3.
531
35006144 05/2010
www.barr-thorp.com
Programming Notes
Attention should be paid to the following programming notes:
Functions blocks are only executed if the input EN=1 or the EN input is not used
(see also EN and ENO, page 536).
z The assignment of variables to ANY or ARRAY output types must be made using
the => operator (see also Formal Call, page 533).
Assignments cannot be made outside of the function block call.
The instruction
My_Var := My_SAH.OUT;
is invalid, if the output OUT of the SAH function block is of type ANY.
The instruction
Cal My_SAH (OUT=>My_Var);
is valid.
z Special conditions apply when using VAR_IN_OUT variables (see page 536).
z The use of function blocks consists of two parts in ST:
z the Declaration (see page 532)
z calling the function block
z
Function block/DFB instances can be called multiple times; other than instances
of communication EFBs, these can only be called once (see Multiple Function
Block Instance Call, page 535).
Declaration
Before calling a function block it must be declared in the variables editor.
532
35006144 05/2010
www.barr-thorp.com
Formal Call
With formal calls (call with formal parameter names), the function block is called
using an instruction sequence made from the function blocks instance names that
follows a bracketed list of actual parameter assignments to the formal parameters.
Assign input formal parameters via :=Assignment and the assignment of the input
formal parameter using the := assignment. The sequence in which the input formal
parameters and output formal parameters are enumerated is not significant.
EN and ENO can be used for this type of call.
Calling a function block with formal parameter names:
Assigning the value of a function block output is made by entering the actual
parameter name, followed by the assignment instruction :=followed by the instance
name of the function block and loading the formal parameter of the function block
output (separated by a full-stop).
E.g.
MY_COUNT (CU:=var1, R:=reset, PV:=100 + value);
Q := MY_COUNT.out ;
CV := MY_COUNT.current ;
NOTE: Type Array DDTs cannot be assigned this way. However, Type Structure
DDTs may be assigned.
It is not necessary to assign a value to all formal parameters (see also Parameter,
page 529).
MY_COUNT (CU:=var1, R:=reset, Q=>out, CV=>current);
Calling the same function block in FBD:
o
533
35006144 05/2010
www.barr-thorp.com
Informal Call
With informal calls (call without Formal parameter names), the function block is
called using an instruction made from the function block instance names, followed
by a bracketed list of the actual parameters for the inputs and outputs. The order in
which the actual parameters are listed in a function block call is significant.
EN and ENO cannot be used for this type of call.
Calling a function block without formal parameter names:
With informal calls it is not necessary to assign a value to all formal parameters (see
also Parameter, page 529). This does not apply for VAR_IN_OUT variables, for input
parameters with dynamic lengths and outputs of type ANY. It must always be
assigned a variable.
This is a supplement to IEC 61131-3 and must be enabled explicitly.
An empty parameter field is used to skip a parameter.
Call with empty parameter field:
MY_COUNT (var1, , 100 + value, out, current) ;
Calling the same function block in FBD:
An empty parameter field does not have to be used if formal parameters are omitted
at the end.
MY_COUNT (var1, reset) ;
534
35006144 05/2010
www.barr-thorp.com
535
35006144 05/2010
www.barr-thorp.com
EN and ENO
With all function blocks/DFBs, an EN input and an ENO output can be configured.
If the value of EN is equal to "0", when the function block/DFB is called, the
algorithms defined by the function block/DFB are not executed and ENO is set to "0".
If the value of EN is equal to "1", when the function block/DFB is invoked, the
algorithms which are defined by the function block/DFB will be executed. After the
algorithms have been executed successfully, the value of ENO is set to "1". If an error
occurred while executing the 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").
If ENO is set to "0" (results from EN=0 or an error during execution), the outputs of
the function block/DFB retain the status from the last cycle in which they were
correctly executed.
The output behavior of the function blocks/DFBs does not depend on whether the
function blocks/DFBs are called without EN/ENO or with EN=1.
If EN/ENO are used, the function block call must be formal. The assignment of
variables to ENO must be made using the => operator.
MY_COUNT (EN:=1, CU:=var1, R:=reset, PV:=100 + value,
ENO=>error, Q=>out, CV=>current) ;
Calling the same function block in FBD:
VAR_IN_OUT-Variable
Function blocks are often used to read a variable at an input (input variables), to
process it and to restate the altered values of the same variable (output variables).
This special type of input/output variable is also called a VAR_IN_OUT variable.
The following special features are to be noted when using function blocks/DFBs with
VAR_IN_OUT variables.
z All VAR_IN_OUT inputs must be assigned a variable.
z VAR_IN_OUT inputs may not have literals or constants assigned to them.
z VAR_IN_OUT outputs may not have values assigned to them.
z VAR_IN_OUT variables cannot be used outside of the function block call.
Calling a function block with VAR_IN_OUT variable in ST:
MY_FBLOCK(IN1:=V1, IN2:=V2, IO1:=V3, OUT1=>V4, OUT2=>V5);
536
35006144 05/2010
www.barr-thorp.com
537
35006144 05/2010
www.barr-thorp.com
Procedures
Procedure
Procedures are provided in the form of libraries. The logic of the procedure is
created in the programming language C and may not be modified in the ST editor.
Procedures - like functions - have no internal states. If the input values are the same,
the value on the output is the same for all executions of the procedure. For example,
the addition of two values gives the same result at every execution.
In contrast to functions, procedures do not return a value and support VAR_IN_OUT
variables.
Procedures are a supplement to IEC 61131-3 and must be enabled explicitly.
Parameter
"Inputs and outputs" are required to transfer values to or from procedures. These are
called formal parameters.
The current process states are transferred to the formal parameters. These are
called actual parameters.
The following can be used as actual parameters for procedure inputs:
z Variable
z Address
z Literal
z ST Expression
The following can be used as actual parameters for procedure outputs:
z Variable
z Address
The data type of the actual parameters must match the data type of the formal
parameters. The only exceptions are generic formal parameters whose data type is
determined by the actual parameter.
When dealing with generic ANY_BIT formal parameters, actual parameters of the
INT or DINT (not UINT and UDINT) data types can be used.
This is a supplement to IEC 61131-3 and must be enabled explicitly.
Example:
Allowed:
AND (AnyBitParam := IntVar1, AnyBitParam2 := IntVar2);
Not allowed:
AND_WORD (WordParam1 := IntVar1, WordParam2 := IntVar2);
(In this case, AND_INT must be used.)
AND_ARRAY_WORD (ArrayInt, ...);
538
35006144 05/2010
www.barr-thorp.com
(In this case an explicit type conversion must be carried out using
INT_ARR_TO_WORD_ARR (...);.
Not all formal parameters must be assigned with a value. You can see which formal
parameter types must be assigned with a value in the following table.
Parameter type
EDT
STRING
ARRAY
ANY_ARRAY IODDT
STRUCT FB
ANY
Input
VAR_IN_OUT
Output
not applicable
If no value is allocated to a formal parameter, then the initial value will be used for
executing the function block. If no initial value has been defined then the default
value (0) is used.
Programming Notes
Attention should be paid to the following programming notes:
z Procedures are only executed if the input EN=1 or the EN input is not used (see
also EN and ENO, page 542).
z Special conditions apply when using VAR_IN_OUT variables (see page 542).
z There are two ways of calling a procedure:
z Formal call (see page 540) (calling a function with formal parameter names)
This way variables can be assigned to outputs using the => operator.
z Informal call (see page 541) (call without formal parameter names)
539
35006144 05/2010
www.barr-thorp.com
Formal Call
With formal calls (call with formal parameter names), the procedures are called
using an instruction sequence made from the procedure name, followed by a
bracketed list of actual parameter assignments to the formal parameters. The
assignment of the input formal parameter is made using the := assignment and
the output formal parameter is made using the => assignment. The sequence in
which the input formal parameters and output formal parameters are enumerated is
not significant.
EN and ENO can be used for this type of call.
Calling a procedure with formal parameter names:
With formal calls it is not necessary to assign a value to all formal parameters (see
also Parameter, page 538).
PROC (IN1:=var1, OUT1=>result1, OUT2=>result2);
Calling the same procedure in FBD:
540
35006144 05/2010
www.barr-thorp.com
Informal Call
With informal calls (call without formal parameter names), procedures are called
using an instruction made from the procedure name, followed by a bracketed list of
the inputs and outputs actual parameters. The order that the actual parameters are
enumerated in a procedure call is significant.
EN and ENO cannot be used for this type of call.
Calling a procedure without formal parameter names:
With informal calls it is not necessary to assign a value to all formal parameters (see
also Parameter, page 538).
This is a supplement to IEC 61131-3 and must be enabled explicitly.
An empty parameter field is used to skip a parameter.
Call with empty parameter field:
PROC (var1, , result1, result2) ;
Calling the same procedure in FBD:
An empty parameter field does not have to be used if formal parameters are omitted
at the end.
PROC (var1, var2, result1) ;
Calling the same procedure in FBD:
541
35006144 05/2010
www.barr-thorp.com
EN and ENO
With all procedures, an EN input and an ENO output can be configured.
If the value of EN is equal to "0", when the procedure is called, the algorithms defined
by the procedure are not executed and ENO is set to "0".
If the value of EN is "1" when the procedure is called, the algorithms defined by the
function are executed. After successful execution of these algorithms, the value of
ENO is set to "1". If an error occurs during execution of these algorithms, ENO will be
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").
If ENO is set to "0" (caused when EN=0 or an error occurred during executing), the
outputs of the procedure are set to "0".
The output behavior of the procedure does not depend on whether the function is
called without EN or with EN=1.
If EN/ENO are used, the procedure call must be formal. The assignment of variables
to ENO must be made using the => operator.
PROC (EN:=1, IN1:=var1, IN2:=var2,
ENO=>error, OUT1=>result1, OUT2=>result2) ;
Calling the same procedure in FBD:
VAR_IN_OUT Variable
Procedures are often used to read a variable at an input (input variables), to process
it and to restate the altered values of the same variable (output variables). This
special type of input/output variable is also called a VAR_IN_OUT variable.
The following special features are to be noted when using procedures with
VAR_IN_OUT variables.
z All VAR_IN_OUT inputs must be assigned a variable.
z VAR_IN_OUT inputs may not have literals or constants assigned to them.
z VAR_IN_OUT outputs may not have values assigned to them.
z VAR_IN_OUT variables cannot be used outside of the procedure call.
Calling a procedure with VAR_IN_OUT variable in ST:
PROC2 (IN1:=V1, IN2:=V2, IO1:=V3,
OUT1=>V4, OUT2=>V5) ;
542
35006144 05/2010
www.barr-thorp.com
543
35006144 05/2010
www.barr-thorp.com
544
35006144 05/2010
www.barr-thorp.com
DFB
35006144 05/2010
V
In This Part
This part presents:
z
z
z
z
z
Chapter Name
Page
16
547
17
553
18
565
19
573
20
593
545
35006144 05/2010
www.barr-thorp.com
DFB
546
35006144 05/2010
www.barr-thorp.com
Overview of DFBs
35006144 05/2010
16
Page
548
550
547
35006144 05/2010
www.barr-thorp.com
Overview of DFBs
one or more sections written in Ladder (LD), Instruction List (IL), Structured Text
(ST) or Functional Block Diagram (FBD) language
input/output parameters
public or private internal variables
Function blocks can be used to structure and optimize your application. They can be
used whenever a program sequence is repeated several times in your application,
or to set a standard programming operation (for example, an algorithm that controls
a motor, incorporating local safety requirements).
By exporting then importing these blocks, they can be used by a group of
programmers working on a single application or in different applications.
Benefits of Using a DFB
Using a DFB function block in an application enables you to:
z
z
z
z
Furthermore, LD and FBD languages provide a graphic view of the DFBs, facilitating
the design and debugging of your program.
DFB Created with Previous Software Versions
DFBs created using PL7 and Concept must first be converted using the converters
that come with the product, before being used in the application.
548
35006144 05/2010
www.barr-thorp.com
Overview of DFBs
Domain of Use
The following table shows the domain of use for the DFBs.
Function
Domain
Unity Pro
(1) IL: Instruction List , ST: Structured Text, LD: LaDder, FBD: Functional Block
Diagram language.
549
35006144 05/2010
www.barr-thorp.com
Overview of DFBs
Action
Create a copy of this function block, called an instance, every time the DFB is
used in the application.
NOTE: If you use a DFB that is already in the User-Defined Library and modify it,
the new modified type will be used for any additional instances in the open project.
However, the User-Defined Library remains unchanged.
Description of a DFB Type
The following diagram shows a graphic representation of a DFB model.
Name: name of the DFB type (max. 32 characters). This name must be unique in
the libraries, the authorized characters used depend on the choice made in the
Identifiers area of the Language extensions tab in the Project Settings
(see Unity Pro, Operating Modes, ):
Inputs: input parameters (excluding input/output parameters).
550
35006144 05/2010
www.barr-thorp.com
Overview of DFBs
z
z
z
z
z
z
For each type of DFB, a descriptive file is also accessible via a dialog box: size of
the DFB, number of parameters and variables, version number, date of last
modification, protection level, etc.
Online Help for DFB Types
It is possible to link an HTML help file to each DFB in the User-Defined Library. This
file must:
z Have a name that is identical to the linked DFB,
z Be located in the directory \Schneider
Electric\FFBLibset\CustomLib\MyCustomFam\ Language (where Language is
named Eng, Fre, Ger, Ita, Spa or Chs according to the language desired).
Creation of a DFB Instance
Once the DFB type is created, you can define an instance of this DFB via the
variable editor or when the function is called in the program editor.
Use of DFB Instances
A DFB instance is used as follows
z
z
A DFB instance can be used in all application program tasks, except event tasks and
Sequential Function Chart (SFC) transitions.
Storage
The DFB types the user creates can be stored (see Unity Pro, Operating Modes, )
in the function and function block library.
551
35006144 05/2010
www.barr-thorp.com
Overview of DFBs
552
35006144 05/2010
www.barr-thorp.com
Description of DFBs
35006144 05/2010
17
Page
554
DFB Parameters
556
DFB Variables
560
562
553
35006144 05/2010
www.barr-thorp.com
Description of DFBs
The internal data of the DFB must be defined using symbols (this data cannot be
addressed as an address).
Elements to Define for Each Parameter
When the function block is created, the following must be defined for each
parameter:
z Name: Name of DFB type (max. 32 characters). This name must be unique in the
libraries; the authorized characters used depend on the choice made in the
Identifiers area of the Language extensions tab in Project Settings:
z A type of object (BOOL, INT, REAL, etc.).
z A comment of a maximum of 1024 characters (optional). Formatting characters
(carriage return, tab, etc.) are not allowed.
z An initial value.
z The read/write attribute that defines whether the variable may or may not be
written in runtime: R (read only) or R/W (read/write). This attribute must only be
defined for public variables.
z The backup attribute that defines whether the variable may or may not be saved.
Types of Objects
The types of objects that may be defined for the DFB parameters belong to the
following families:
z Elementary data family: EDT. This family includes the following object types:
Boolean (BOOL, EBOOL), Integer (INT, DINT, etc.), Real (REAL), Character
string (STRING), Bit string (BYTE, WORD, etc.), etc.
z Derived data family: DDT. This family includes table (ARRAY) and structure (user
or IODDT) object types.
z Generic data families: ANY_ARRAY_xxx.
z The function block family: FB. This family includes EFB and DFB object types.
554
35006144 05/2010
www.barr-thorp.com
Description of DFBs
EDT
STRING
Anonymous
or DDT array
DDT (1)
IODDT
GDT:
ANY_ARRAY_x
FB
ANY...
Inputs
VAL
L-ADR-LG
L-ADR-LG
L-ADR
No
L-ADR-LG
No
L-ADR-LG
Inputs/out
puts
L-ADR(2)
L-ADR-LG
L-ADR-LG
L-ADR
IOCHS
(see pa
ge 578)
L-ADR-LG
No
L-ADR-LG
Outputs
VAL
VAL
L-ADR-LG
VAL
No
L-ADR-LG
No
L-ADR-LG
Public
variables
VAL
VAL
VAL
VAL
No
No
No
No
Private
variables
VAL
VAL
VAL
VAL
No
No
RTE
No
Key:
(1)
(2)
CAUTION
UNEXPECTED APPLICATION BEHAVIOR - ARRAY INDEX
Take into account the shift of the index for ARRAY variables that have a not null
start index on ANY_ARRAY_x entry (the shift equals the start index value).
Failure to follow these instructions can result in injury or equipment damage.
555
35006144 05/2010
www.barr-thorp.com
Description of DFBs
DFB Parameters
Illustration
This illustration shows some examples of DFB parameters
Maximum
number
Role
Inputs
32 (1)
Outputs
32 (2)
Inputs/Outputs
32
Legend:
(1) Number of inputs + Number of inputs/outputs less than or equal to 32
(2) Number of outputs + Number of inputs/outputs less than or equal to 32
NOTE: The IODDT related to CANopen devices for Modicon M340 cannot be used
as a DFB I/O parameter. During the analyse/build step of a project, the following
message:"This IODDT cannot be used as a DFB parameter" advises the limitations
to the user.
556
35006144 05/2010
www.barr-thorp.com
Description of DFBs
the section(s) that make up the code of the DFB is/are not executed (this is
managed by the system),
the ENO output parameter is set to 0 (FALSE) by the system.
the section(s) that make up the code of the DFB is/are executed (this is managed
by the system),
the ENO output parameter is set to 1 (TRUE) by the system.
557
35006144 05/2010
www.barr-thorp.com
Description of DFBs
If an error is detected (for example a processing error) by the DFB instance, the user
has the option of setting the ENO output parameter to 0 (FALSE). In this case:
z
z
either the output parameters are frozen in the state they were in during the
previous process until the fault disappears,
or the user provides a function in the DFB code whereby the outputs are forced
to the required state until the fault disappears.
VAR_IN_OUT Variable
Function blocks are often used to read a variable at an input (input variables), to
process it and to output the updated values of the same variable (output variables).
This special type of input/output variable is also called a VAR_IN_OUT variable.
The following special features are to be noted when using function blocks/DFBs with
VAR_IN_OUT variables.
z All VAR_IN_OUT inputs must be assigned a variable.
z VAR_IN_OUT inputs may not have literals or constants assigned to them.
z VAR_IN_OUT outputs may not have values assigned to them.
z VAR_IN_OUT variables cannot be used outside the block call.
Calling a function block with a VAR_IN_OUT variable in IL:
CAL MY_FBLOCK(IN1:=V1, IN2:=V2, IO1:=V3,
OUT1=>V4, OUT2=>V5)
Calling the same function block in FBD:
CAL InOutFB
AND V2
558
35006144 05/2010
www.barr-thorp.com
Description of DFBs
AND InOutFB.inout
ST InOutFB.IN1
CAL InOutFB(inout:=V2)
559
35006144 05/2010
www.barr-thorp.com
Description of DFBs
DFB Variables
Description of the Variables
This table shows the role of each type of variable.
Variable
Maximum
number
Role
Public
unlimited
Private
unlimited
NOTE: Nested DFBs are declared as private variables of the parent DFB. So their
variables are also not accessible through programming, but trough the animation
table.
Variables that Can Be Accessed by the Application Program
The only variables that can be accessed by the application program are public
variables. To make this possible, the following syntax must be used in the program:
DFB_Name.Variable_Name
DFB_Name represents the name of the instance of the DFB used (maximum of 32
characters),
Variable_Name represents the name of the public variable (maximum of 8
characters).
Example: Control.Gain indicates the public variable Gain of the DFB instance
called Control
Saving Public Variables
Setting the %S94 system bit to 1 causes the public variables you have modified to
be saved by program or by adjustment, in place of the initial values of these
variables (defined in the DFB instances).
Replacement is only possible if the backup attribute is correctly set for the variable.
560
35006144 05/2010
www.barr-thorp.com
Description of DFBs
CAUTION
APPLICATION UPLOAD NOT SUCCESSFUL
The bit %S94 must not be set to 1 during an upload.
If the bit %S94 is set to 1 upload then the upload may be impossible.
Failure to follow these instructions can result in equipment damage.
561
35006144 05/2010
www.barr-thorp.com
Description of DFBs
Defining a Section
A section is defined by:
z
z
z
z
Programming Rules
When executed, a DFB section can only use the parameters you have defined for
the function block (input, output and input/output parameters and internal variables).
Consequently, a DFB function block cannot use either the global variables of the
application, or the input/output objects, except the system words and bits (%Si,
%SWi and %SDi).
A DFB section has maximum access rights (read and write) for its parameters.
562
35006144 05/2010
www.barr-thorp.com
Description of DFBs
Example of Code
The following program provides an example of Structured Text code
563
35006144 05/2010
www.barr-thorp.com
Description of DFBs
564
35006144 05/2010
www.barr-thorp.com
DFB instance
35006144 05/2010
18
Page
566
568
569
565
35006144 05/2010
www.barr-thorp.com
DFB instance
You must identify each DFB instance you create with a name of a maximum 32
characters, the authorized characters used depend on the choice made in the
Identifiers area of the Language extensions tab in the Project Settings
(see Unity Pro, Operating Modes, ).
The first character must be a letter! Keywords and symbols are prohibited.
Creation of an Instance
From a DFB type, you can create as many instances as necessary; the only
limitation is the size of the PLC memory.
Initial Values
The initial values of the parameters and public variables that you defined when
creating the DFB type can be modified for each DFB instance.
Not all DFB parameters have an initial value.
Modification of the initial values of the elements in the DFB instances
EDT (except String
String type) Type
EDT
DDT
structure
FB
ANY_ARRAY
IODDT
ANY_...
Inputs
Yes
No
No
No
No
Input/Output
No
No
No
No
No
No
No
Outputs
Yes
Yes
No
Yes
No
Public variables
Yes
Yes
Yes
Yes
Private Variables
No
No
No
No
No
No
566
35006144 05/2010
www.barr-thorp.com
DFB instance
String
Type
EDT
DDT
FB
structure
ANY_ARRAY
IODDT
ANY_...
Inputs
Yes
No
No
No
No
No
Input/Output
No
No
No
No
No
No
No
Outputs
Yes
Yes
No
Yes
No
Public variables
Yes
Yes
Yes
Yes
Private Variables
Yes
Yes
Yes
Yes
No
567
35006144 05/2010
www.barr-thorp.com
DFB instance
Action
NOTE: The internal variables of DFBs are not reinitialized when using Build project
online command after an input modification. To reinitialize all internal variables use
Rebuild all project command.
Debugging of DFBs
The Unity Pro software offers several DFB debugging tools:
z
z
z
animation table: all parameters, and public and private variables are displayed
and animated in real-time. Objects may be modified and forced
breakpoint, step by step and program diagnostics
runtime screens: for unitary debugging
568
35006144 05/2010
www.barr-thorp.com
DFB instance
Description
Cpt_parts
Input parameters
Output parameters
569
35006144 05/2010
www.barr-thorp.com
DFB instance
Description
The number of edges it counts is then stored by the variable V_cour. This
variable is reset by a rising edge on the Reset input.
When the number of edges counted is equal to the preset value, the Done output
is set to 1. This variable is reset by a rising edge on the Reset input.
Example of Use
Let us suppose your application needs to count 3 part types (for example, bolts, nuts
and screws). The DFB type Cpt_parts can be used three times (3 instances) to
perform these different counts.
The number of parts to be procured for each type is defined in the words %MD10,
%MD12 and %MD14 respectively. When the number of parts is reached, the
counter sends a command to an output (%Q1.2.1, %Q1.2.2 or %Q1.2.3) which then
stops the procurement system for the corresponding parts.
570
35006144 05/2010
www.barr-thorp.com
DFB instance
571
35006144 05/2010
www.barr-thorp.com
DFB instance
572
35006144 05/2010
www.barr-thorp.com
Use of DFBs
35006144 05/2010
19
Page
574
578
581
583
586
590
573
35006144 05/2010
www.barr-thorp.com
Use of DFBs
unconnected input parameters keep the value of the previous call or the
initialization value defined for these parameters, if the block has never been
called
all of the objects assigned to the input, input/output and output parameters must
be of the same type as those defined when the DFB type was created (for
example: if the type INT is defined for the input parameter "speed", then you
cannot assign it the type DINT or REAL)
The only exceptions are BOOL and EBOOL types for input and output
parameters (not for input/output parameters), which can be mixed.
Example: The input parameter "Validation" may be defined as BOOL and
associated with a %Mi internal bit of type EBOOL. However, in the internal code
of the DFB type, the input parameter actually has BOOL-type properties (it cannot
manage edges).
574
35006144 05/2010
www.barr-thorp.com
Use of DFBs
Assignment of Parameters
The following table summarizes the different possibilities for assigning parameters
in the different programming languages.
Parameter
Type
Assignment
Inputs
EDT (2)
Optional (3)
BOOL
Optional
DDT
Compulsory
ANY_...
Connected or object
Compulsory
ANY_ARRAY
Connected or object
Compulsory
EDT
Connected or object
Compulsory
Inputs/outputs
Outputs
DDT
Connected or object
Compulsory
IODDT
Connected or object
Compulsory
ANY_...
Connected or object
Compulsory
ANY_ARRAY
Connected or object
Compulsory
EDT
Connected or object
Optional
DDT
Connected or object
Optional
ANY_...
Connected or object
Compulsory
ANY_ARRAY
Connected or object
Optional
(1) Connected in Ladder (LD) or Function Block Diagram (FBD) language. Value or
object in Instruction List (IL) or Structured Text (ST) language.
(2) Except BOOL-type parameters
(3) Except for STRING-type parameters that is compulsory.
575
35006144 05/2010
www.barr-thorp.com
Use of DFBs
Assignment of Parameters
The following table summarizes the different possibilities for assigning parameters
in the different programming languages.
Parameter
Type
Assignment
Inputs
EDT (2)
Optional (3)
BOOL
Optional
Inputs/outputs
Outputs
DDT
Compulsory
ANY_...
Connected or object
Compulsory
ANY_ARRAY
Connected or object
Compulsory
EDT
Connected or object
Compulsory
DDT
Connected or object
Compulsory
IODDT
Connected or object
Compulsory
ANY_...
Connected or object
Compulsory
ANY_ARRAY
Connected or object
Compulsory
EDT
Connected or object
Optional
DDT
Connected or object
Optional
ANY_...
Connected or object
Compulsory
ANY_ARRAY
Connected or object
Optional
(1) Connected in Ladder (LD) or Function Block Diagram (FBD) language. Value or
object in Instruction List (IL) or Structured Text (ST) language.
(2) Except BOOL-type parameters
(3) Except for STRING-type parameters that is compulsory.
Rules when using DFBs with arrays
WARNING
UNEXPECTED EQUIPMENT OPERATION
Check the size of arrays when copying from source into target arrays using DFBs.
Failure to follow these instructions can result in death, serious injury, or
equipment damage.
When using dynamic arrays, it is mandatory to check the sizes of arrays that are
identical. In specific case, using dynamic arrays as an output or input/output, an
overflow could lead to improper execution of the program and stop of the PLC.
576
35006144 05/2010
www.barr-thorp.com
Use of DFBs
Use of a DFB with at least one output or I/O parameter of dynamic array type
(ANY_ARRAY_XXX).
In the coding of a DFB, use of a function or function block (FFB of type FIFO,
LIFO, MOVE, MVX, T2T, SAH or SEL). Note that, the function or FFB needs two
ANY type parameters with at least one defined on the output.
The DFB parameter of the dynamic array is used in writting during the FFB call
(on the ANY type parameter). For other ANY parameters, an array with a fixed
size is used.
The size of the fixed size array is bigger than the size of the dynamic array
calculated to store the result.
In this example, Table_1 is an array with a fixed size, Table_2 is a dynamic array
of type ANY_ARRAY_WORD. This program checks the size of each array. The
functions LENGTH_ARWORD compute the size of each array in order to condition the
execution of the MOVE function.
577
35006144 05/2010
www.barr-thorp.com
Use of DFBs
Modicon M340
Premium
Quantum
T_DIS_IN_GEN
No
No
No
T_DIS_IN_STD
No
No
No
T_DIS_EVT
No
No
No
Discrete application
T_DIS_OUT_GEN
No
No
No
T_DIS_OUT_STD
No
No
No
T_DIS_OUT_REFLEX
No
No
No
Analog application
T_ANA_IN_GEN
No
No
No
T_ANA_IN_STD
No
No
No
T_ANA_IN_CTRL
No
Yes
No
T_ANA_IN_EVT
No
Yes
No
T_ANA_OUT_GEN
No
No
No
T_ANA_OUT_STD
No
No
No
T_ANA_IN_BMX
Yes
No
No
T_ANA_IN_T_BMX
Yes
No
No
T_ANA_OUT_BMX
Yes
No
No
T_ANA_IN_VE
No
No
No
T_ANA_IN_VWE
No
No
No
T_ANA_BI_VWE
No
No
No
T_ANA_BI_IN_VWE
No
No
No
T_COUNT_ACQ
No
Yes
No
T_COUNT_HIGH_SPEED
No
Yes
No
T_COUNT_STD
No
Yes
No
Counting application
578
35006144 05/2010
www.barr-thorp.com
Use of DFBs
IODDT families
Modicon M340
Premium
Quantum
T_SIGN_CPT_BMX
Yes
No
No
T_UNSIGN_CPT_BMX
Yes
No
No
T_CNT_105
No
No
No
No
No
No
T_CCY_GROUP1_2_3
No
No
No
No
Yes
No
No
Yes
No
T_INTERPO_STD
No
Yes
No
T_STEPPER_STD
No
Yes
No
T_CSY_CMD
No
Yes
No
T_CSY_TRF
No
Yes
No
T_CSY_RING
No
Yes
No
T_CSY_IND
No
Yes
No
T_CSY_FOLLOW
No
Yes
No
T_CSY_COORD
No
Yes
No
T_CSY_CAM
No
Yes
No
T_COM_STS_GEN
Yes
Yes
No
T_COM_UTW_M
No
Yes
No
T_COM_UTW_S
No
Yes
No
T_COM_MB
No
Yes
No
T_COM_CHAR
No
Yes
No
T_COM_FPW
No
Yes
No
T_COM_MBP
No
Yes
No
T_COM_JNET
No
Yes
No
Sercos application
Communication application
T_COM_ASI
No
Yes
No
T_COM_ETY_1X0
No
Yes
No
T_COM_ETY_210
No
Yes
No
T_COM_IBS_128
No
Yes
No
T_COM_IBS_242
No
Yes
No
T_COM_PBY
No
Yes
No
579
35006144 05/2010
www.barr-thorp.com
Use of DFBs
IODDT families
Modicon M340
Premium
Quantum
T_COM_CPP100
No
Yes
No
T_COM_ETYX103
No
Yes
No
T_COM_ETHCOPRO
No
Yes
No
T_COM_MB_BMX
Yes
No
No
T_COM_CHAR_BMX
Yes
No
No
T_COM_CO_BMX
Yes
No
No
T_COM_ETH_BMX
Yes
No
No
Adjustment application
T_PROC_PLOOP
No
Yes
No
T_PROC_3SING_LOOP
No
Yes
No
T_PROC_CASC_LOOP
No
Yes
No
T_PROC_SPP
No
Yes
No
T_PROC_CONST_LOOP
No
Yes
No
No
Yes
No
No
No
No
Weiging application
T_WEIGHING_ISPY101
Common to all applications
T_GEN_MOD
580
35006144 05/2010
www.barr-thorp.com
Use of DFBs
via a textual call in an operation block in which the syntax and constraints on the
parameters are identical to those of Structured Text language
via a graphic call
The inputs of the function blocks may be connected or assigned a value, an object
or an expression. In any case, the type of external element (value, evaluation of the
expression, etc.) must be identical to that of the input parameter.
A DFB block must have at least one connected Boolean input and an output (if
necessary). For this you may use the EN input parameters and the ENO output
parameter (see the description of these parameters below).
It is compulsory to connect or assign the ANY_ARRAY-type inputs, the generic datatype outputs (ANY_...) and the input/outputs of a DFB block.
Graphic Representation of a DFB Block
The following illustration shows a simple DFB programming example.
581
35006144 05/2010
www.barr-thorp.com
Use of DFBs
Element
Connected input
Input parameters
Output parameters
Input/output parameters
582
35006144 05/2010
www.barr-thorp.com
Use of DFBs
a formal call, when arguments are assignments (parameter = value). In this case,
the order in which the arguments are entered in the list is not important.
The EN input parameter and the ENO output parameter can be used to control
the execution of the function block
an informal call, when arguments are values (expression, object or an immediate
value). In this case, the order in which the arguments are entered in the list must
follow the order of the DFB input parameters, including for non-assigned inputs
(the argument is an empty field)
It is not possible to use EN and ENO parameters.
583
35006144 05/2010
www.barr-thorp.com
Use of DFBs
Meaning
Cpt_1
Input parameters
:=
Clear
100
Done
Output parameter
=>
%Q1.2.1
584
35006144 05/2010
www.barr-thorp.com
Use of DFBs
Meaning
Cpt_1
585
35006144 05/2010
www.barr-thorp.com
Use of DFBs
586
35006144 05/2010
www.barr-thorp.com
Use of DFBs
Example of a DFB
The following example explains the different calls of a DFB in Instruction List. This
is the instance Cpt_1 of the Cpt_parts: type DFB
587
35006144 05/2010
www.barr-thorp.com
Use of DFBs
Meaning
CAL
Cpt_1
Input parameters
:=
Done
Output parameter
=>
%Q1.2.1
Meaning
CAL
Cpt_1
588
35006144 05/2010
www.barr-thorp.com
Use of DFBs
Meaning
LD Clear
ST Cpt_1.Reset
CAL Cpt_1(
589
35006144 05/2010
www.barr-thorp.com
Use of DFBs
590
35006144 05/2010
www.barr-thorp.com
Use of DFBs
Element
Connected input
Input parameters
Output parameter
591
35006144 05/2010
www.barr-thorp.com
Use of DFBs
592
35006144 05/2010
www.barr-thorp.com
Diagnostics DFB
35006144 05/2010
20
Presentation of User Diagnostic DFBs
General
The Unity Pro application is used to create your own diagnostic DFBs (see Unity
Pro, Operating Modes, ).
These diagnostic DFBs are standard DFBs that you will have configured beforehand
with the Diagnostic property and in which you will have used the following two
functions:
z
z
REGDFB (see Unity Pro, Diagnostics, Block Library) to save the alarm date
DEREG (see Unity Pro, Diagnostics, Block Library) to de-register the alarm
The diagnostic is integrated in the project, and can thus be conceived during
development and therefore better meets the user's requirements.
The error dating and recording system is done at the source (in the PLC), which
means the information exactly represents the state of the process.
You can connect a number of Viewers (Unity Pro, Magelis, Factory Cast) which
will transcribe the exact state of the process to the user. Each Viewer is
independent, and any action performed on one (for example, an
acknowledgement) is automatically viewed on the others.
593
35006144 05/2010
www.barr-thorp.com
Diagnostics DFB
594
35006144 05/2010
www.barr-thorp.com
35006144 05/2010
Appendices
At a Glance
The appendix contains additional information.
What's in this Appendix?
The appendix contains the following chapters:
Chapter
Chapter Name
Page
597
IEC Compliance
637
595
35006144 05/2010
www.barr-thorp.com
596
35006144 05/2010
www.barr-thorp.com
A
Introduction
The following tables show the error codes and error values created for the EFBs sort
by library and family.
What's in this Chapter?
This chapter contains the following topics:
Topic
Tables of Error Codes for the Base Library
Page
598
601
602
607
617
625
627
635
597
35006144 05/2010
www.barr-thorp.com
Error code
ENO
state
in
case
of
error
Error
value in
Dec
Error
value in
Hex
DIVTIME
E_DIVIDE_BY_ZERO
-30176
DIVTIME
E_NEGATIVE_INPUT_ FOR_TIME_OPERATION F
-30177
16#8A1F
A negative value
cannot be
converted to data
type TIME
DIVTIME
E_ARITHMETIC_ ERROR
-30170
16#8A26
Arithmetic error
DIVTIME
E_ERR_ARITHMETIC
-30003
16#8ACD Arithmetic
overflow (%S18
set)
DIVTIME
FP_ERROR
MULTIME
E_ERR_ARITHMETIC
-30003
16#8ACD Arithmetic
overflow (%S18
set)
MULTIME
E_ARITHMETIC_ERROR_MUL_OV
-30172
16#8A24
Arithmetic error /
Muliplication
overflow
MULTIME
E_ARITHMETIC_ERROR_ADD_OV
-30173
16#8A23
Arithmetic error /
Addition overflow
MULTIME
E_ARITHMETIC_ERROR_BIG_PAR
-30171
16#8A25
Arithmetic error /
Parameter
exceeds range
598
Error
description
See table
Common Floating
Point Errors,
page 635
35006144 05/2010
www.barr-thorp.com
EFB name
Error code
ENO
state
in
case
of
error
Error
value in
Dec
Error
value in
Hex
Error
description
MULTIME
E_NEGATIVE_INPUT_FOR_TIME_OPERATION
-30177
16#8A1F
A negative value
cannot be
converted to data
type TIME
MULTIME
FP_ERROR
See table
Common Floating
Point Errors,
page 635
599
35006144 05/2010
www.barr-thorp.com
Statistical
Table of error codes and errors values created for EFBs of the Statistical
family.
EFB name
Error code
ENO
state
in
case
of
error
Error
value in
Dec
Error
value in
Hex
Error description
AVE
E_INPUT_VALUE_OUT_OF_RANGE
-30183
16#8A19
AVE
E_DIVIDE_BY_ZERO
-30176
16#8A20
Divide by zero
AVE
FP_ERROR
AVE
E_ARITHMETIC_ ERROR
-30170
16#8A26
Arithmetic error
AVE
E_FP_STATUS_FAILED
-30150
16#8A3A
AVE
E_ARITHMETIC_ ERROR_MUL_OV
-30172
16#8A24
Arithmetic error /
Muliplication overflow
AVE
E_ARITHMETIC_ ERROR_ADD_OV
-30173
16#8A23
Arithmetic error /
Addition overflow
AVE
E_ARITHMETIC_ ERROR_BIG_PAR
-30171
16#8A25
Arithmetic error /
Parameter exceeds
range
AVE
E_ARITHMETIC_ERROR_UNSIGN_OV F
-30174
16#8A22
Arithmetic error /
Unsigned overflow
MAX
FP_ERROR
MIN
FP_ERROR
MUX
E_SELECTOR_OUT_OF_RANGE
-30175
16#8A21
600
35006144 05/2010
www.barr-thorp.com
Error code
ENO
state
in
case
of
error
Error
value in
Dec
Error
value in
Hex
Error description
ONLEVT
E_EFB_ONLEVT
T/F
-30196
16#8A0C
601
35006144 05/2010
www.barr-thorp.com
Error code
ENO
state
in
case
of
error
Error
value in
Dec
Error
value in
Hex
Error description
CREAD_REG
E_EFB_MSTR_ERROR
-30191
16#8A11
CREAD_REG
E_EFB_NOT_STATE_RAM_4X F
-30531
16#88BD
CREAD_REG
8195
16#2003
CREAD_REG
8206
16#200E
CREAD_REG
See tables of :
z Modbus Plus and SY/MAX
EtherNet Error Codes
(see Modicon Quantum
with Unity, Ethernet
Network Modules, User
Manual)
z SY/MAX specific Error
Codes (see Modicon
Quantum with Unity,
Ethernet Network
Modules, User Manual)
z TCP/IP EtherNet Error
Codes (see Modicon
Quantum with Unity,
Ethernet Network
Modules, User Manual)
602
35006144 05/2010
www.barr-thorp.com
EFB name
Error code
ENO
state
in
case
of
error
Error
value in
Dec
Error
value in
Hex
Error description
CWRITE_REG
E_EFB_MSTR_ERROR
-30191
16#8A11
CWRITE_REG
8195
16#2003
CWRITE_REG
8206
16#200E
CWRITE_REG
See tables of :
z Modbus Plus and SY/MAX
EtherNet Error Codes
(see Modicon Quantum
with Unity, Ethernet
Network Modules, User
Manual)
z SY/MAX specific Error
Codes (see Modicon
Quantum with Unity,
Ethernet Network
Modules, User Manual)
z TCP/IP EtherNet Error
Codes (see Modicon
Quantum with Unity,
Ethernet Network
Modules, User Manual)
MBP_MSTR
E_EFB_OUT_OF_RANGE
-30192
16#8A10
MBP_MSTR
E_EFB_NOT_STATE_RAM_4X F
-30531
16#88BD
MBP_MSTR
8195
16#2003
MBP_MSTR
8206
16#200E
603
35006144 05/2010
www.barr-thorp.com
EFB name
Error code
ENO
state
in
case
of
error
Error
value in
Dec
Error
value in
Hex
Error description
MBP_MSTR
See tables of :
z Modbus Plus and SY/MAX
EtherNet Error Codes
(see Modicon Quantum
with Unity, Ethernet
Network Modules, User
Manual)
z SY/MAX specific Error
Codes (see Modicon
Quantum with Unity,
Ethernet Network
Modules, User Manual)
z TCP/IP EtherNet Error
Codes (see Modicon
Quantum with Unity,
Ethernet Network
Modules, User Manual)
READ_REG
W_WARN_OUT_OF_RANGE
30110
16#759E
READ_REG
E_EFB_NOT_STATE_RAM_4X F
-30531
16#88BD
READ_REG
E_EFB_MSTR_ERROR
-30191
16#8A11
READ_REG
8195
16#2003
READ_REG
MBPUNLOC
8206
16#200E
604
35006144 05/2010
www.barr-thorp.com
EFB name
Error code
ENO
state
in
case
of
error
Error
value in
Dec
Error
value in
Hex
Error description
READ_REG
See tables of :
z Modbus Plus and SY/MAX
EtherNet Error Codes
(see Modicon Quantum
with Unity, Ethernet
Network Modules, User
Manual)
z SY/MAX specific Error
Codes (see Modicon
Quantum with Unity,
Ethernet Network
Modules, User Manual)
z TCP/IP EtherNet Error
Codes (see Modicon
Quantum with Unity,
Ethernet Network
Modules, User Manual)
WRITE_REG
W_WARN_OUT_OF_RANGE
30110
16#759E
WRITE_REG
E_EFB_NOT_STATE_RAM_4X F
-30531
16#88BD
WRITE_REG
E_EFB_MSTR_ERROR
-30191
16#8A11
WRITE_REG
8195
16#2003
605
35006144 05/2010
www.barr-thorp.com
EFB name
Error code
ENO
state
in
case
of
error
Error
value in
Dec
Error
value in
Hex
Error description
WRITE_REG
8206
16#200E
WRITE_REG
See tables of :
z Modbus Plus and SY/MAX
EtherNet Error Codes
(see Modicon Quantum
with Unity, Ethernet
Network Modules, User
Manual)
z SY/MAX specific Error
Codes (see Modicon
Quantum with Unity,
Ethernet Network
Modules, User Manual)
z TCP/IP EtherNet Error
Codes (see Modicon
Quantum with Unity,
Ethernet Network
Modules, User Manual)
606
35006144 05/2010
www.barr-thorp.com
Error code
I_FILTER
ENO
state
in
case
of
error
Error
value in
Dec
Error
value in
Hex
Error description
E_EFB_NOT_CONFIGURED F
-30188
16#8A14
I_SET
E_EFB_USER_ERROR_1
-30200
16#8A08
I_SET
E_EFB_USER_ERROR_2
-30201
16#8A07
I_SET
E_EFB_USER_ERROR_3
-30202
16#8A06
MN_RAW MX_RAW
I_SET
E_EFB_USER_ERROR_4
-30203
16#8A05
I_SET
E_EFB_USER_ERROR_5
-30204
16#8A04
I_SET
E_EFB_USER_ERROR_11
-30210
16#89FE
I_SET
E_EFB_USER_ERROR_12
-30211
16#89FD
I_SET
E_EFB_USER_ERROR_13
-30212
16#89FC
O_FILTER
E_EFB_NOT_CONFIGURED F
-30188
16#8A14
O_SET
E_EFB_USER_ERROR_1
-30200
16#8A08
O_SET
E_EFB_USER_ERROR_2
-30201
16#8A07
O_SET
E_EFB_USER_ERROR_3
-30202
16#8A06
MN_RAW MX_RAW
O_SET
E_EFB_USER_ERROR_4
-30203
16#8A05
O_SET
E_EFB_USER_ERROR_5
-30204
16#8A04
35006144 05/2010
www.barr-thorp.com
EFB name
Error code
ENO
state
in
case
of
error
Error
value in
Dec
Error
value in
Hex
Error description
O_SET
E_EFB_USER_ERROR_11
-30210
16#89FE
O_SET
E_EFB_USER_ERROR_12
-30211
16#89FD
O_SET
E_EFB_USER_ERROR_13
-30212
16#89FC
608
35006144 05/2010
www.barr-thorp.com
Error code
ENO
state
in
case
of
error
Error
value in
Dec
Error
value in
Hex
Error
description
I_NORM
E_EFB_NEG_OVER_RANGE
-30187
16#8A15
Negative
overflow
I_NORM
E_EFB_NOT_CONFIGURED
-30188
16#8A14 EFB
configuration
does not
match
hardware
configuration
I_NORM_WARN
E_EFB_NO_WARNING_STATUS_AVAILABLE F
-30189
16#8A13
I_NORM_WARN
E_EFB_POS_OVER_RANGE
-30186
16#8A16 Positive
overflow
I_NORM_WARN
E_EFB_NEG_OVER_RANGE
-30187
16#8A15
I_NORM_WARN
E_EFB_NOT_CONFIGURED
-30188
16#8A14 EFB
configuration
does not
match
hardware
configuration
I_PHYS
E_EFB_NO_WARNING_STATUS_AVAILABLE F
-30189
16#8A13
Module
delivers no
warning
status
I_PHYS
E_INPUT_VALUE_OUT_OF_RANGE
-30183
16#8A19
Input value is
out of range
Internal error
Module
delivers no
warning
status
Negative
overflow
I_PHYS
E_EFB_NO_MEASURING_RANGE
-30185
16#8A17
I_PHYS
E_EFB_POS_OVER_RANGE
-30186
16#8A16 Positive
overflow
I_PHYS
E_EFB_NEG_OVER_RANGE
-30187
16#8A15
Negative
overflow
609
35006144 05/2010
www.barr-thorp.com
EFB name
Error code
ENO
state
in
case
of
error
Error
value in
Dec
Error
value in
Hex
I_PHYS
E_EFB_NOT_CONFIGURED
-30188
16#8A14 EFB
configuration
does not
match
hardware
configuration
I_PHYS_WARN
E_EFB_NO_WARNING_STATUS_AVAILABLE F
-30189
16#8A13
I_PHYS_WARN
E_EFB_FILTER_SQRT_NOT_AVAIL
-30195
I_PHYS_WARN
E_INPUT_VALUE_OUT_OF_RANGE
-30183
16#8A19
Input value is
out of range
I_PHYS_WARN
E_EFB_NO_MEASURING_RANGE
-30185
16#8A17
Internal error
I_PHYS_WARN
E_EFB_POS_OVER_RANGE
-30186
16#8A16 Positive
overflow
I_PHYS_WARN
E_EFB_NEG_OVER_RANGE
-30187
16#8A15
I_PHYS_WARN
E_EFB_NOT_CONFIGURED
-30188
16#8A14 EFB
configuration
does not
match
hardware
configuration
I_RAW
E_EFB_OUT_OF_RANGE
-30192
16#8A10
I_RAW
E_EFB_NOT_CONFIGURED
-30188
16#8A14 EFB
configuration
does not
match
hardware
configuration
610
Error
description
Module
delivers no
warning
status
Negative
overflow
Internal error:
EFB has
detected a
violation e.g.
write exceeds
%MW (4x)
boundaries
35006144 05/2010
www.barr-thorp.com
EFB name
Error code
ENO
state
in
case
of
error
Error
value in
Dec
Error
value in
Hex
Error
description
I_RAWSIM
E_EFB_NOT_CONFIGURED
-30188
16#8A14 EFB
configuration
does not
match
hardware
configuration
I_SCALE
E_EFB_POS_OVER_RANGE
-30186
16#8A16 Positive
overflow
I_SCALE
E_EFB_NEG_OVER_RANGE
-30187
16#8A15
I_SCALE
E_EFB_NOT_CONFIGURED
-30188
16#8A14 EFB
configuration
does not
match
hardware
configuration
I_SCALE_WARN
E_EFB_NO_WARNING_STATUS_AVAILABLE F
-30189
16#8A13
I_SCALE_WARN
E_EFB_POS_OVER_RANGE
-30186
16#8A16 Positive
overflow
I_SCALE_WARN
E_EFB_NEG_OVER_RANGE
-30187
16#8A15
I_SCALE_WARN
E_EFB_NOT_CONFIGURED
-30188
16#8A14 EFB
configuration
does not
match
hardware
configuration
O_NORM
E_EFB_POS_OVER_RANGE
-30186
16#8A16 Positive
overflow
O_NORM
E_EFB_NEG_OVER_RANGE
-30187
16#8A15
Negative
overflow
Module
delivers no
warning
status
Negative
overflow
Negative
overflow
611
35006144 05/2010
www.barr-thorp.com
EFB name
Error code
ENO
state
in
case
of
error
Error
value in
Dec
Error
value in
Hex
O_NORM
E_EFB_NOT_CONFIGURED
-30188
16#8A14 EFB
configuration
does not
match
hardware
configuration
O_NORM_WARN
E_EFB_POS_OVER_RANGE
-30186
16#8A16 Positive
overflow
O_NORM_WARN
E_EFB_NEG_OVER_RANGE
-30187
16#8A15
O_NORM_WARN
E_EFB_NOT_CONFIGURED
-30188
16#8A14 EFB
configuration
does not
match
hardware
configuration
O_PHYS
E_EFB_NO_MEASURING_RANGE
-30185
16#8A17
O_PHYS
E_EFB_POS_OVER_RANGE
-30186
16#8A16 Positive
overflow
O_PHYS
E_EFB_NEG_OVER_RANGE
-30187
16#8A15
O_PHYS
E_EFB_NOT_CONFIGURED
-30188
16#8A14 EFB
configuration
does not
match
hardware
configuration
O_PHYS_WARN
E_EFB_NO_MEASURING_RANGE
-30185
16#8A17
O_PHYS_WARN
E_EFB_POS_OVER_RANGE
-30186
16#8A16 Positive
overflow
O_PHYS_WARN
E_EFB_NEG_OVER_RANGE
-30187
16#8A15
O_PHYS_WARN
E_EFB_NOT_CONFIGURED
-30188
16#8A14 EFB
configuration
does not
match
hardware
configuration
612
Error
description
Negative
overflow
Internal error
Negative
overflow
Internal error
Negative
overflow
35006144 05/2010
www.barr-thorp.com
EFB name
Error code
ENO
state
in
case
of
error
Error
value in
Dec
Error
value in
Hex
Error
description
O_RAW
E_EFB_NEG_OVER_RANGE
-30187
16#8A15
Negative
overflow
O_RAW
E_EFB_NOT_CONFIGURED
-30188
16#8A14 EFB
configuration
does not
match
hardware
configuration
O_SCALE
E_INPUT_VALUE_OUT_OF_RANGE
-30183
16#8A19
O_SCALE
E_EFB_POS_OVER_RANGE
-30186
16#8A16 Positive
overflow
O_SCALE
E_EFB_NEG_OVER_RANGE
-30187
16#8A15
O_SCALE
E_EFB_NOT_CONFIGURED
-30188
16#8A14 EFB
configuration
does not
match
hardware
configuration
O_SCALE_WARN E_INPUT_VALUE_OUT_OF_RANGE
-30183
16#8A19
O_SCALE_WARN E_EFB_POS_OVER_RANGE
-30186
16#8A16 Positive
overflow
O_SCALE_WARN E_EFB_NEG_OVER_RANGE
-30187
16#8A15
O_SCALE_WARN E_EFB_NOT_CONFIGURED
-30188
16#8A14 EFB
configuration
does not
match
hardware
configuration
Input value is
out of range
Negative
overflow
Input value is
out of range
Negative
overflow
613
35006144 05/2010
www.barr-thorp.com
Immediate I/O
Table of error codes and errors values created for EFBs of the Immediate I/O
family.
EFB name
Error code
ENO
state
in
case
of
error
Error
value in
Dec
Error
Error description
value in
Hex
IMIO_IN
0000
0000
Operation OK
IMIO_IN
8193
2001
IMIO_IN
8194
2002
IMIO_IN
8195
2003
IMIO_IN
-4095
F001
Module not OK
IMIO_OUT
0000
0000
Operation OK
IMIO_OUT
8193
2001
IMIO_OUT
8194
2002
IMIO_OUT
8195
2003
IMIO_OUT
-4095
F001
Module not OK
Error
value in
Hex
Error description
E_EFB_NOT_CONFIGURED F
-30188
16#8A14
ACI040
E_EFB_NOT_CONFIGURED F
-30188
16#8A14
ACI040
E_EFB_CURRENT_MODE_
NOT_ALLOWED
-30197
16#8A0B
EFB name
Error code
ACI030
ENO
state
in
case
of
error
614
35006144 05/2010
www.barr-thorp.com
Error
value in
Dec
Error
value in
Hex
Error description
E_EFB_NOT_CONFIGURED F
-30188
16#8A14
ACO130
E_EFB_NOT_CONFIGURED F
-30188
16#8A14
ACO130
E_EFB_CURRENT_MODE_
NOT_ALLOWED
-30197
16#8A0B
AII330
E_EFB_NOT_CONFIGURED F
-30188
16#8A14
AII330
E_EFB_ILLEGAL_CONFIG_
DATA
-30198
16#8A0A
AII33010
E_EFB_NOT_CONFIGURED F
-30188
16#8A14
AII33010
E_EFB_CURRENT_MODE_
NOT_ALLOWED
-30197
16#8A0B
AIO330
E_EFB_NOT_CONFIGURED F
-30188
16#8A14
AIO330
E_EFB_CURRENT_MODE_
NOT_ALLOWED
-30197
16#8A0B
AMM090
E_EFB_NOT_CONFIGURED F
-30188
16#8A14
ARI030
E_EFB_NOT_CONFIGURED F
-30188
16#8A14
ARI030
E_EFB_ILLEGAL_CONFIG_
DATA
-30198
16#8A0A
ATI030
E_EFB_NOT_CONFIGURED F
-30188
16#8A14
AVI030
E_EFB_NOT_CONFIGURED F
-30188
16#8A14
AVO020
E_EFB_NOT_CONFIGURED F
-30188
16#8A14
DROP
E_EFB_NOT_CONFIGURED F
-30188
16#8A14
ERT_854_10
ES_WRONG_SLOT
20480
16#5000
ERT_854_10
E_WRONG_SLOT
-30215
16#89F9
Defined as
E_EFB_USER_ERROR_16
EFB name
Error code
ACO020
ENO
state
in
case
of
error
615
35006144 05/2010
www.barr-thorp.com
EFB name
Error code
ENO
state
in
case
of
error
Error
value in
Dec
Error
value in
Hex
Error description
ERT_854_10
ES_HEALTHBIT
24576
16#6000
ERT_854_10
E_HEALTHBIT
-30216
16#89F8
Defined as
E_EFB_USER_ERROR_17
ERT_854_10
ES_TIMEOUT
32768
16#8000
ERT_854_10
E_TIMEOUT
-30210
16#89FE
Defined as
E_EFB_USER_ERROR_11
ERT_854_10
E_ERT_BASIC - values
-30199
16#8A09
Defined as
E_EFB_USER_ERROR_1 + 1
ERT_854_10
E_WRONG_ANSW
-30211
16#89FD
Defined as
E_EFB_USER_ERROR_12
ERT_854_10
ES_CBUF_OFLOW
28672
16#7000
ERT_854_10
E_CBUF_OFLOW
-30217
16#89F7
Defined as
E_EFB_USER_ERROR_18
ERT_854_10
ES_WRONG_PAKET
8192
16#2000
ERT_854_10
E_WRONG_PAKET
-30212
16#89FC
Defined as
E_EFB_USER_ERROR_13
ERT_854_10
ES_WRONG_FELD
12288
16#3000
ERT_854_10
E_WRONG_FELD
-30213
16#89FB
Defined as
E_EFB_USER_ERROR_14
QUANTUM
E_EFB_NOT_CONFIGURED
-30188
16#8A14
QUANTUM
E_EFB_UNKNOWN_DROP
-30190
16#8A12
XBE
E_EFB_NOT_CONFIGURED
-30188
16#8A14
XBE
E_EFB_UNKNOWN_DROP
-30190
16#8A12
XDROP
E_EFB_NOT_CONFIGURED F
-30188
16#8A14
NOTE: For details about ERT_854_10, please refer to the ERT_854_10 description
(see Quantum with Unity Pro, 140 ERT 854 10 Time Stamp Module, User's manual)
in the IO Management Library.
616
35006144 05/2010
www.barr-thorp.com
Error code
ENO
state
in
case
of
error
Error
value in
Dec
Error
value in
Hex
Error description
DTIME
W_WARN_OUT_OF_RANGE
DTIME
FP_ERROR
30110
16#759E
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
617
35006144 05/2010
www.barr-thorp.com
EFB name
Error code
ENO
state
in
case
of
error
Error
value in
Dec
Error
value in
Hex
Error description
LEAD
E_ERR_DEN
-30152
16#8A38
LEAD
FP_ERROR
MFLOW
W_WARN_OUT_OF_RANGE
30110
16#759E
MFLOW
FP_ERROR
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_CTER_MAX T
30113
16#75A1
TOTALIZER
T/F
618
35006144 05/2010
www.barr-thorp.com
EFB name
Error code
ENO
state
in
case
of
error
Error
value in
Dec
Error
value in
Hex
Error description
VEL_LIM
E_ERR_DEN
-30152
16#8A38
VEL_LIM
E_ERR_AB1_MAX_MIN
-30101
16#8A6B
VEL_LIM
FP_ERROR
Controller
Table of error codes and errors values created for EFBs of the Controller family.
EFB name
Error code
ENO
state
in
case
of
error
Error
value in
Dec
Error
value in
Hex
Error description
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
619
35006144 05/2010
www.barr-thorp.com
EFB name
Error code
ENO
state
in
case
of
error
Error
value in
Dec
Error
value in
Hex
Error description
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 F
-30184
STEP2
W_WARN_OUT_OF_RANGE
30110
STEP2
FP_ERROR
STEP2
T/F
STEP3
W_WARN_OUT_OF_RANGE
30110
STEP3
FP_ERROR
STEP3
T/F
620
35006144 05/2010
www.barr-thorp.com
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
Error
value in
Hex
Error description
COMP_DB
W_WARN_OUT_OF_RANGE
COMP_DB
FP_ERROR
30110
16#759E
K_SQRT
W_WARN_OUT_OF_RANGE
30110
16#759E
K_SQRT
FP_ERROR
MULDIV_W
FP_ERROR
SUM_W
FP_ERROR
621
35006144 05/2010
www.barr-thorp.com
Measurement
Table of error codes and errors values created for EFBs of the Measurement
family.
EFB name
Error code
ENO
state
in
case
of
error
Error
value in
Dec
Error
value in
Hex
Error description
AVGMV
E_ERR_DEN
-30152
AVGMV
W_WARN_AVGMV
30108
AVGMV
FP_ERROR
AVGMV_K
E_ERR_DEN
-30152
AVGMV_K
W_WARN_AVGMV_K
30109
AVGMV_K
FP_ERROR
DEAD_ZONE
E_ERR_DEN
-30152
DEAD_ZONE
E_ERR_DZONE
-30119
DEAD_ZONE
FP_ERROR
LOOKUP_TABLE1
E_ERR_DEN
-30152
LOOKUP_TABLE1
E_ERR_POLY_ANZAHL
-30107
LOOKUP_TABLE1
E_ERR_POLY_FOLGE
-30108
LOOKUP_TABLE1
FP_ERROR
622
35006144 05/2010
www.barr-thorp.com
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
MS
FP_ERROR
MS
T/F
PWM1
WAF_PBM_TMINMAX
-30113
PWM1
FP_ERROR
SERVO
FP_ERROR
SERVO
T/F
SPLRG
W_WARN_OUT_OF_RANGE
30110
SPLRG
E_ERR_NULL_INPUT_SCALE F
-30121
SPLRG
FP_ERROR
SPLRG
T/F
623
35006144 05/2010
www.barr-thorp.com
Setpoint Management
Table of error codes and errors values created for EFBs of the Setpoint
Management family.
Error code
ENO
state
in
case
of
error
Error
value in
Dec
RAMP
W_WARN_OUT_OF_RANGE
30110
RAMP
FP_ERROR
RAMP
T/F
RATIO
FP_ERROR
RATIO
T/F
SP_SEL
W_WARN_OUT_OF_RANGE
30110
SP_SEL
FP_ERROR
SP_SEL
T/F
EFB name
Error
value in
Hex
Error description
624
35006144 05/2010
www.barr-thorp.com
Error code
ENO
state
in
case
of
error
Error
value in
Dec
Error
value in
Hex
Error description
CFG_CP_F
BAD_REVISION
-30200
CFG_CP_F
MMF_BAD_4X
9010
16#2332
CFG_CP_F
MMF_ABORT_SUB
7004
CFG_CP_V
BAD_REVISION
-30200
CFG_CP_V
MMF_BAD_4X
9010
16#2332
CFG_CP_V
MMF_ABORT_SUB
7004
CFG_CS
BAD_REVISION
-30200
CFG_CS
MMF_ABORT_SUB
7004
CFG_FS
BAD_REVISION
-30200
CFG_FS
MMF_ABORT_SUB
7004
CFG_IA
BAD_REVISION
-30200
CFG_IA
MMF_ABORT_SUB
7004
CFG_RA
BAD_REVISION
-30200
CFG_RA
MMF_ABORT_SUB
7004
CFG_SA
BAD_REVISION
-30200
CFG_SA
MMF_ABORT_SUB
7004
DRV_DNLD
BAD_REVISION
-30200
DRV_DNLD
MMF_ABORT_SUB
7004
DRV_UPLD
BAD_REVISION
-30200
DRV_UPLD
MMF_ABORT_SUB
7004
IDN_CHK
BAD_REVISION
-30200
IDN_CHK
MMF_ABORT_SUB
7004
16#1B5C
625
35006144 05/2010
www.barr-thorp.com
EFB name
Error code
ENO
state
in
case
of
error
Error
value in
Dec
Error
value in
Hex
Error description
IDN_XFER
BAD_REVISION
-30200
IDN_XFER
MMF_ABORT_SUB
7004
MMF_BITS
BAD_REVISION
-30200
MMF_ESUB BAD_REVISION
-30200
MMF_ESUB MMF_ABORT_SUB
7004
MMF_IDNX
BAD_REVISION
-30200
MMF_IDNX
MMF_ABORT_SUB
7004
MMF_JOG
BAD_REVISION
-30200
MMF_JOG
MMF_ABORT_SUB
7004
MMF_JOG
MMF_SUB_TIMEOUT T
MMF_MOVE BAD_REVISION
7005
-30200
MMF_MOVE MMF_ABORT_SUB
7004
MMF_RST
BAD_REVISION
-30200
MMF_SUB
BAD_REVISION
-30200
MMF_SUB
MMF_ABORT_SUB
7004
MMF_USUB BAD_REVISION
-30200
MMF_USUB MMF_ABORT_SUB
7004
NOTE: For details about MMF error codes and error values, please refer to the
Faults and Error Reporting (see Unity Pro, Drive control, Block Library) description
in the Motion Library.
626
35006144 05/2010
www.barr-thorp.com
Error code
ENO
state
in
case
of
error
Error
value in
Dec
Error
value in
Hex
Error description
DELAY
E_ERR_DEN
-30152
INTEGRATOR1
E_ERR_DEN
-30152
INTEGRATOR1
E_ERR_IB_MAX_MIN
-30102
INTEGRATOR1
FP_ERROR
LAG1
E_ERR_DEN
-30152
LAG1
FP_ERROR
LEAD_LAG1
E_ERR_DEN
-30152
LEAD_LAG1
FP_ERROR
LIMV
E_ERR_DEN
-30152
LIMV
E_ERR_AB1_MAX_MIN
-30101
LIMV
FP_ERROR
PI1
E_ERR_DEN
-30152
PI1
E_ERR_PI_MAX_MIN
-30103
PI1
FP_ERROR
PID1
E_ERR_DEN
-30152
PID1
E_ERR_PID_MAX_MIN
-30104
PID1
FP_ERROR
627
35006144 05/2010
www.barr-thorp.com
EFB name
Error code
ENO
state
in
case
of
error
Error
value in
Dec
Error
value in
Hex
Error description
PIDP1
E_ERR_DEN
-30152
PIDP1
E_ERR_PID_MAX_MIN
-30104
PIDP1
FP_ERROR
SMOOTH_RATE
E_ERR_DEN
-30152
SMOOTH_RATE
FP_ERROR
THREE_STEP_CON1 E_ERR_DEN
-30152
THREE_STEP_CON1 W_WARN_DSR_TN
30101
16#7595 TN = 0
THREE_STEP_CON1 W_WARN_DSR_TSN
30102
16#7596 TSN = 0
THREE_STEP_CON1 W_WARN_DSR_KP
30103
16#7597 KP <= 0
THREE_STEP_CON1 E_ERR_DSR_HYS
-30105
THREE_STEP_CON1 FP_ERROR
THREEPOINT_CON1 E_ERR_DEN
-30152
THREEPOINT_CON1 W_WARN_ZDR_XRR
30105
THREEPOINT_CON1 W_WARN_ZDR_T1T2
30104
16#7598 T2 > T1
THREEPOINT_CON1 FP_ERROR
THREEPOINT_CON1 E_ERR_ZDR_HYS
-30106
TWOPOINT_CON1
E_ERR_DEN
-30152
TWOPOINT_CON1
W_WARN_ZDR_XRR
30105
TWOPOINT_CON1
W_WARN_ZDR_T1T2
30104
16#7598 T2 > T1
TWOPOINT_CON1
FP_ERROR
TWOPOINT_CON1
E_ERR_ZDR_HYS
-30106
628
35006144 05/2010
www.barr-thorp.com
CLC_PRO
Table of error codes and errors values created for EFBs of the CLC_PRO family.
EFB name
Error code
ENO
state
in
case
of
error
Error
value in
Dec
Error
value in
Hex
Error description
ALIM
E_ERR_DEN
-30152
ALIM
WAF_AB2_VMAX
-30111
16#8A61
vmax <= 0
ALIM
WAF_AB2_BMAX
-30112
16#8A60
bmax <= 0
ALIM
FP_ERROR
COMP_PID E_ERR_DEN
-30152
COMP_PID WAF_KPID_KUZ
-30110
16#8A62
COMP_PID WAF_KPID_OGUG
-30104
16#8A68
COMP_PID WAF_KPID_UZ
-30109
16#8A63
db < 0
COMP_PID FP_ERROR
DEADTIME E_ERR_DEN
-30152
DERIV
E_ERR_DEN
-30152
DERIV
FP_ERROR
FGEN
E_ERR_DEN
-30152
FGEN
WAF_SIG_TV_MAX
-30116
FGEN
WAF_SIG_TH_MAX
-30117
FGEN
WAF_SIG_TA_MAX
30106
FGEN
WAF_SIG_T1_MIN
30107
FGEN
WAF_SIG_FKT
-30118
FGEN
FP_ERROR
INTEG
E_ERR_DEN
-30152
INTEG
E_ERR_IB_MAX_MIN
-30102
INTEG
FP_ERROR
LAG
E_ERR_DEN
-30152
LAG
FP_ERROR
35006144 05/2010
www.barr-thorp.com
EFB name
Error code
ENO
state
in
case
of
error
Error
value in
Dec
Error
value in
Hex
LAG2
E_ERR_DEN
-30152
LAG2
FP_ERROR
LEAD_LAG E_ERR_DEN
-30152
LEAD_LAG FP_ERROR
PCON2
-30152
E_ERR_DEN
Error description
PCON2
W_WARN_ZDR_XRR
30105
16#7599
PCON2
W_WARN_ZDR_T1T2
30104
16#7598
T2 > T1
PCON2
FP_ERROR
PCON2
E_ERR_ZDR_HYS
-30106
PCON3
E_ERR_DEN
-30152
PCON3
W_WARN_ZDR_XRR
30105
16#7599
PCON3
W_WARN_ZDR_T1T2
30104
16#7598
T2 > T1
PCON3
FP_ERROR
PCON3
E_ERR_ZDR_HYS
-30106
PD_OR_PI
E_ERR_DEN
-30152
PD_OR_PI
WAF_PDPI_OG_UG
-30103
16#8A69
PD_OR_PI
FP_ERROR
PDM
PDM_TMAX_TMIN
-30115
16#8A5D
PDM
PDM_OG_UG
-30114
16#8A69
PDM
FP_ERROR
PI
E_ERR_DEN
-30152
PI
E_ERR_PI_MAX_MIN
-30103
PI
FP_ERROR
PID
E_ERR_DEN
-30152
PID
E_ERR_PID_MAX_MIN
-30104
630
35006144 05/2010
www.barr-thorp.com
EFB name
Error code
ENO
state
in
case
of
error
Error
value in
Dec
Error
value in
Hex
Error description
PID
FP_ERROR
PID_P
E_ERR_DEN
-30152
PID_P
E_ERR_PID_MAX_MIN
-30104
PID_P
FP_ERROR
PIP
E_ERR_DEN
-30152
PIP
E_ERR_PI_MAX_MIN
-30103
PIP
FP_ERROR
PPI
E_ERR_DEN
-30152
PPI
E_ERR_PI_MAX_MIN
-30103
PPI
FP_ERROR
PWM
WAF_PBM_TMINMAX
-30113
PWM
FP_ERROR
QPWM
WAF_PBM_TMINMAX
-30113
QPWM
FP_ERROR
SCON3
E_ERR_DEN
-30152
SCON3
W_WARN_DSR_TN
30101
16#7595
TN = 0
SCON3
W_WARN_DSR_TSN
30102
16#7596
TSN = 0
SCON3
W_WARN_DSR_KP
30103
16#7597
KP <= 0
SCON3
E_ERR_DSR_HYS
-30105
SCON3
FP_ERROR
VLIM
E_ERR_DEN
-30152
VLIM
E_ERR_AB1_MAX_MIN
-30101
VLIM
FP_ERROR
631
35006144 05/2010
www.barr-thorp.com
Extension/Compatibility
Table of error codes and errors values created for EFBs of the
Extension/Compatibility family.
EFB name
Error code
ENO
state
in
case
of
error
Error
Error
value in value in
Dec
Hex
Error description
AKF_TA
E_AKFEFB_TIMEBASE_IS_ZERO
-30482
AKF_TE
E_AKFEFB_TIMEBASE_IS_ZERO
-30482
AKF_TI
E_AKFEFB_TIMEBASE_IS_ZERO
-30482
AKF_TS
E_AKFEFB_TIMEBASE_IS_ZERO
-30482
AKF_TV
E_AKFEFB_TIMEBASE_IS_ZERO
-30482
FIFO
E_INPUT_VALUE_OUT_OF_RANGE F
-30183
GET_3X
E_INPUT_VALUE_OUT_OF_RANGE F
-30183
GET_4X
E_INPUT_VALUE_OUT_OF_RANGE F
-30183
GET_BIT
E_INPUT_VALUE_OUT_OF_RANGE F
-30183
IEC_BMDI
E_EFB_USER_ERROR_1
-30200
IEC_BMDI
E_EFB_USER_ERROR_2
-30201
IEC_BMDI
E_EFB_USER_ERROR_3
-30202
IEC_BMDI
E_EFB_USER_ERROR_4
-30203
632
35006144 05/2010
www.barr-thorp.com
EFB name
Error code
ENO
state
in
case
of
error
Error
Error
value in value in
Dec
Hex
Error description
IEC_BMDI
E_EFB_USER_ERROR_5
-30204
IEC_BMDI
E_EFB_USER_ERROR_6
-30205
IEC_BMDI
E_EFB_USER_ERROR_7
-30206
IEC_BMDI
E_EFB_USER_ERROR_8
-30207
IEC_BMDI
E_EFB_USER_ERROR_9
-30208
IEC_BMDI
E_EFB_USER_ERROR_10
-30209
IEC_BMDI
E_EFB_USER_ERROR_11
-30210
IEC_BMDI
E_EFB_USER_ERROR_12
-30211
IEC_BMDI
E_EFB_USER_ERROR_13
-30212
Warning: Address
16#89FC overlap of input and
output addresses.
LIFO
E_INPUT_VALUE_OUT_OF_RANGE F
-30183
633
35006144 05/2010
www.barr-thorp.com
EFB name
Error code
PUT_4X
E_INPUT_VALUE_OUT_OF_RANGE F
Error
Error
value in value in
Dec
Hex
Error description
-30183
-30175
E_INPUT_VALUE_OUT_OF_RANGE F
-30183
MUX_DINTARR_125 E_SELECTOR_OUT_OF_RANGE
SET_BIT
ENO
state
in
case
of
error
634
35006144 05/2010
www.barr-thorp.com
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
-30166
16#8A2A
Internal error
635
35006144 05/2010
www.barr-thorp.com
636
35006144 05/2010
www.barr-thorp.com
IEC Compliance
35006144 05/2010
IEC Compliance
B
Overview
This chapter contains the compliance tables required by IEC 61131-3.
What's in this Chapter?
This chapter contains the following sections:
Section
Topic
Page
B.1
638
B.2
640
B.3
663
B.4
665
637
35006144 05/2010
www.barr-thorp.com
IEC Compliance
B.1
638
35006144 05/2010
www.barr-thorp.com
IEC Compliance
639
35006144 05/2010
www.barr-thorp.com
IEC Compliance
B.2
Overview
This system complies with the requirements of IEC 61131-3 for the language and
feature listed in the following tables.
What's in this Section?
This section contains the following topics:
Topic
Page
Common elements
641
IL language elements
653
ST language elements
655
656
LD language elements
657
Implementation-dependent parameters
658
Error Conditions
661
640
35006144 05/2010
www.barr-thorp.com
IEC Compliance
Common elements
Common elements
IEC compliance table for common elements:
Table No. Feature No.
1
Description of Feature
3a
4a
5a
Comments
3a
Pragmas
Integer literals
Real literals
Base 2 literals
Base 8 literals
Base 16 literals
Typed literals
Dollar sign
Single quote
Line feed
New line
Carriage return
Tab
Double quote
641
35006144 05/2010
www.barr-thorp.com
IEC Compliance
10
12
14
Description of Feature
1a
1b
long prefix
2a
2b
long prefix
10
12
13
14
15
16
17
18
19
642
35006144 05/2010
www.barr-thorp.com
IEC Compliance
Description of Feature
15
Input location
Output location
Memory location
17
18
19
19a
20
Initialization of constants
10
Negated input
Negated output
643
35006144 05/2010
www.barr-thorp.com
IEC Compliance
21
22
23
24
25
Description of Feature
Overloaded functions
Typed functions
ABS function
SQRT function
LN function
LOG function
EXP function
SIN function
COS function
TAN function
ASIN function
10
ACOS function
11
ATAN function
12
ADD function
13
MUL function
14
SUB function
15
DIV function
16
MOD function
17
EXPT function
18
MOVE function
SHL function
SHR function
ROR function
ROL function
644
35006144 05/2010
www.barr-thorp.com
IEC Compliance
Description of Feature
26
AND function
OR function
XOR function
NOT function
SEL function
2a
MAX function
2b
MIN function
LIMIT function
27
28
29
MUX function
GT function
GE function
EQ function
LE function
LT function
10
NE function
645
35006144 05/2010
www.barr-thorp.com
IEC Compliance
Description of Feature
30
1a
1b
ADD_TIME function
33
34
35
2b
ADD_TOD_TIME function
3b
ADD_DT_TIME function
4a
4b
SUB_TIME function
5b
SUB_DATE_DATE function
6b
SUB_TOD_TIME function
7b
SUB_TOD_TOD function
8b
SUB_DT_TIME function
9b
SUB_DT_DT function
10a
10b
MULTIME function
11a
11b
DIVTIME function
1a
2a
2b
3a
4a
4b
4c
646
35006144 05/2010
www.barr-thorp.com
IEC Compliance
Description of Feature
36
1a
1b
1d
2a
2b
2d
3a
3b
3d
2a
3a
39
19
40
3a
7a
7b
7c
7d
2l
37
41
42
43
2f
3s
3i
647
35006144 05/2010
www.barr-thorp.com
IEC Compliance
Description of Feature
44
None - no qualifier
Qualifier N
Qualifier R
Qualifier S
Qualifier L
Qualifier D
Qualifier P
Qualifier DS
11
Qualifier P1
12
Qualifier P0
45a
46
Single sequence
2a
5a
6a
CONFIGURATION...END_CONFIGURATION construction
(Note 12, page 652)
45
49
50
5a
5b
6a
6c
5a
5b
648
35006144 05/2010
www.barr-thorp.com
IEC Compliance
Note 1
List of type conversion functions:
z BOOL_TO_BYTE, BOOL_TO_DINT, BOOL_TO_INT, BOOL_TO_REAL,
BOOL_TO_TIME, BOOL_TO_UDINT, BOOL_TO_UINT, BOOL_TO_WORD,
BOOL_TO_DWORD
z BYTE_TO_BOOL, BYTE_TO_DINT, BYTE_TO_INT, BYTE_TO_REAL,
BYTE_TO_TIME, BYTE_TO_UDINT, BYTE_TO_UINT, BYTE_TO_WORD,
BYTE_TO_DWORD, BYTE_TO_BIT
z DINT_TO_BOOL, DINT_TO_BYTE, DINT_TO_INT, DINT_TO_REAL,
DINT_TO_TIME, DINT_TO_UDINT, DINT_TO_UINT, DINT_TO_WORD,
DINT_TO_DWORD, DINT_TO_DBCD, DINT_TO_STRING
z INT_TO_BOOL, INT_TO_BYTE, INT_TO_DINT, INT_TO_REAL, INT_TO_TIME,
INT_TO_UDINT, INT_TO_UINT, INT_TO_WORD, INT_TO_BCD, INT_TO_DBCD,
INT_TO_DWORD, INT_TO_STRING
z REAL_TO_BOOL, REAL_TO_BYTE, REAL_TO_DINT, REAL_TO_INT,
REAL_TO_TIME, REAL_TO_UDINT, REAL_TO_UINT, REAL_TO_WORD,
REAL_TO_DWORD, REAL_TO_STRING
z TIME_TO_BOOL, TIME_TO_BYTE, TIME_TO_DINT, TIME_TO_INT,
TIME_TO_REAL, TIME_TO_UDINT, TIME_TO_UINT, TIME_TO_WORD,
TIME_TO_DWORD, TIME_TO_STRING
z UDINT_TO_BOOL, UDINT_TO_BYTE, UDINT_TO_DINT, UDINT_TO_INT,
UDINT_TO_REAL, UDINT_TO_TIME, UDINT_TO_UINT, UDINT_TO_WORD,
UDINT_TO_DWORD
z UINT_TO_BOOL, UINT_TO_BYTE, UINT_TO_DINT, UINT_TO_INT,
UINT_TO_REAL, UINT_TO_TIME, UINT_TO_UDINT, UINT_TO_WORD,
UINT_TO_DWORD,
z WORD_TO_BOOL, WORD_TO_BYTE, WORD_TO_DINT, WORD_TO_INT,
WORD_TO_REAL, WORD_TO_TIME, WORD_TO_UDINT, WORD_TO_UINT,
WORD_TO_BIT, WORD_TO_DWORD
z DWORD_TO_BOOL, DWORD_TO_BYTE, DWORD_TO_DINT, DWORD_TO_INT,
DWORD_TO_REAL, DWORD_TO_TIME, DWORD_TO_UDINT, DWORD_TO_UINT,
DWORD_TO_BIT,
The effects of each conversion are described in the help text supplied with the Base
Library.
Note 2
List of types for truncate function:
z REAL_TRUNC_DINT, REAL_TRUNC_INT, REAL_TRUNC_UDINT,
REAL_TRUNC_UINT
The effects of each conversion are described in the help text supplied with the Base
Library.
649
35006144 05/2010
www.barr-thorp.com
IEC Compliance
Note 3
List of types for BCD conversion function:
BCD_TO_INT, DBCD_TO_INT, DBCD_TO_DINT
Data type
Internal bit
%M<i> or %MX<i>
EBOOL
EBOOL
ARRAY [..] OF EBOOL
Internal word
%MW<i>
INT
%MD<i>
DINT
No mapping, because of
overlapping between
%MW<i> and %MD<i> and
%MF<i>.
Internal real
%MF<i>
REAL
No mapping, because of
overlapping between
%MW<i> and %MD<i> and
%MF<i>.
650
35006144 05/2010
www.barr-thorp.com
IEC Compliance
Syntax
Data type
Constant word
%KW<i>
INT
%KD<i>
DINT
No mapping, because of
overlapping between
%KW<i> and %KD<i> and
%KF<i>.
This kind of variables only
exists on Premium PLCs.
Constant real
%KF<i>
REAL
No mapping, because of
overlapping between
%KW<i> and %KD<i> and
%KF<i>.
This kind of variables only
exists on Premium PLCs.
System bit
%S<i> or %SX<i>
EBOOL
EBOOL
System word
%SW<i>
INT
INT
%SD<i>
DINT
DINT
Flat bit
%I<i>
EBOOL
EBOOL
ARRAY [..] OF EBOOL
This kind of variables only
exists on Qantum PLCs.
Flat word
%IW<i>
INT
Common word
%NWi.j.k
INT
INT
Topological variables
...
Same Type
(On some digital I/O
modules it is allowed to
map arrays of EBOOL on
%IX<topo> and
%QX<topo> objects.)
Extract bits
%MWi.j, ...
BOOL
BOOL
651
35006144 05/2010
www.barr-thorp.com
IEC Compliance
Note 6
Only operator "+" (for ADD), "-" (for SUB), "*" (for MUL) or "/" (for DIV) in ST
language.
Note 7
This feature is only presented in the "expanded view" of the chart.
Note 8
This feature is presented in the "expanded view" of the chart, but not as
concatenated blocks, but as a scrollable list of action names with associated
qualifiers inside one single block symbol.
Note 9
There is only a one-to-one mapping of program instance to task. The textual format
is replaced by a property dialog.
Note 10
The textual format is replaced by a property dialog.
Note 11
All variables are retentive (RETAIN qualifier implicitly assumed in variable
declarations).
Note 12
The textual format is replaced by the project browser representation.
Note 13
Using Mask-IT instruction, the user is able to get a non-preemptive behaviour. You
will find MASKEVT (Global EVT masking) and UNMASKEVT (Global EVT unmasking)
in the System functions of the libset.
Note 14
By default, the multi-task system is preemptive.
652
35006144 05/2010
www.barr-thorp.com
IEC Compliance
IL language elements
IL language elements
IEC compliance table for IL language elements:
Table No. Feature No.
Feature description
51b
51b
52
S, R operator
7a
NOT operator
10
11
11a
12
13
14
15
16
17
18
19
20
21
653
35006144 05/2010
www.barr-thorp.com
IEC Compliance
Feature description
53
1a
1b
Note
In DFB only.
654
35006144 05/2010
www.barr-thorp.com
IEC Compliance
ST language elements
ST language elements
IEC compliance table for ST language elements:
Table No. Feature No.
55
56
Feature description
Parenthesization (expression)
Exponentiation: **
Negation: -
Complement: NOT
Multiply: *
Divide: /
Modulo: MOD
Add: +
10
Subtract: -
11
12
Equality: =
13
Inequality: <>
14
15
16
17
Boolean OR: OR
Assignment
IF statement
CASE statement
FOR statement
WHILE statement
REPEAT statement
EXIT statement
10
Empty statement
Note
In DFB only.
655
35006144 05/2010
www.barr-thorp.com
IEC Compliance
58
Feature description
10
12
Note
In DFB only.
656
35006144 05/2010
www.barr-thorp.com
IEC Compliance
LD language elements
LD language elements
IEC compliance table for LD language elements:
Table No. Feature No.
Feature description
59
Horizontal link
Vertical link
60
61
62
Coil
Negated coil
Note
Only graphical representation.
657
35006144 05/2010
www.barr-thorp.com
IEC Compliance
Implementation-dependent parameters
Implementation-dependent parameters
IEC compliance table for implementation-dependent parameters:
Parameters
Limitations/Behavior
32 characters
TIME: precision 1 ms
TIME_OF_DAY: precision 1 s
Not applicable
64 kbytes
no limit
64 kbytes
DINT range
10
16 characters
64 kbytes
658
35006144 05/2010
www.barr-thorp.com
IEC Compliance
Parameters
Limitations/Behavior
Error conditions are described in the onlinehelp. Globally %S18 is set for overflow errors.
ENO is also set. The result is depending on the
specific function.
No assignment
659
35006144 05/2010
www.barr-thorp.com
IEC Compliance
Parameters
Limitations/Behavior
10 ms
Maximum number of transitions per SFC and Limited by the available area for entering
per step
steps/transitions and by the maximum
number of steps per SFC section (1024
Steps).
32 transition per step. Limited by the available
area for entering Alternative/Parallel
branches, maximum is 32 rows.
Maximum number of action blocks per step
20
Target dependent;
always < 100 micro-seconds
32
Not applicable
Not applicable
10 ms
Practically no limit
Practically no limit
Practically no limit
Undefined
No restrictions
660
35006144 05/2010
www.barr-thorp.com
IEC Compliance
Error Conditions
Error Conditions
IEC standards table for error conditions:
Error conditions
Nested comments
Not applicable
Not applicable
Numerical result exceeds range for data type 4) error is reported during execution
Division by zero
Mixed input data types to a selection function 2) error is reported during programming
Result exceeds range for data type
User program attempts to modify step state or 2) error is reported during programming
time
Side effects in evaluation of transition
condition
Not applicable
Not applicable
Numerical result exceeds range for data type 4) error is reported during execution
661
35006144 05/2010
www.barr-thorp.com
IEC Compliance
Error conditions
Division by zero
Numerical result exceeds range for data type 4) error is reported during execution
Invalid data type for operation
Not applicable
Not applicable
Note
Identifications for the treatment of error conditions according to IEC 61131-3,
subclause 1.5.1, d):
z 1) error is not reported
z 2) error is reported during programming
z 3) error is reported during analyzing/loading/linking
z 4) error is reported during execution
662
35006144 05/2010
www.barr-thorp.com
IEC Compliance
B.3
663
35006144 05/2010
www.barr-thorp.com
IEC Compliance
z
664
35006144 05/2010
www.barr-thorp.com
IEC Compliance
B.4
665
35006144 05/2010
www.barr-thorp.com
IEC Compliance
666
35006144 05/2010
www.barr-thorp.com
Glossary
35006144 05/2010
Glossary
0-9
%I
According to the IEC standard, %I indicates a discrete input-type language object.
%ID
According to the IEC standard, %MW indicates an input double word-type language
object.
Only I/O objects make it possible to locate type instances (%MD<i>, %KD<i>, %QD,
%ID, %MF<i>, %KF<i>, %QF, %IF) by using their topological address (for example
%MD0.6.0.11, %MF0.6.0.31).
%IF
According to the IEC standard, %MW indicates an input real-type language object.
Only I/O objects make it possible to locate type instances (%MD<i>, %KD<i>, %QD,
%ID, %MF<i>, %KF<i>, %QF, %IF) by using their topological address (for example
%MD0.6.0.11, %MF0.6.0.31).
%IW
According to the IEC standard, %IW indicates an analog input -type language object.
667
35006144 05/2010
www.barr-thorp.com
Glossary
%KD
According to the IEC standard, %MW indicates a constant double word-type language
object.
For Premium/Atrium PLCs double-type instances of located data (%MD<i>, %KD<i>)
or floating (%MF<i>, %KF<i>) should be located by an integer type (%MW<i>,
%KW<i>). Only I/O objects make it possible to locate type instances (%MD<i>,
%KD<i>, %QD, %ID, %MF<i>, %KF<i>, %QF, %IF) by using their topological address
(for example %MD0.6.0.11, %MF0.6.0.31).
For Modicon M340 PLCs, double-type instances of located data (%MD<i>, %KD<i>)
or floating (%MF<i>, %KF<i>) are not available.
%KF
According to the IEC standard, %MW indicates a constant real-type language object.
For Premium/Atrium PLCs double-type instances of located data (%MD<i>, %KD<i>)
or floating (%MF<i>, %KF<i>) should be located by an integer type (%MW<i>,
%KW<i>). Only I/O objects make it possible to locate type instances (%MD<i>,
%KD<i>, %QD, %ID, %MF<i>, %KF<i>, %QF, %IF) by using their topological address
(for example %MD0.6.0.11, %MF0.6.0.31).
For Modicon M340 PLCs, double-type instances of located data (%MD<i>, %KD<i>)
or floating (%MF<i>, %KF<i>) are not available.
%KW
According to the IEC standard, %KW indicates a constant word-type language object.
For Premium/Atrium PLCs double-type instances of located data (%MD<i>, %KD<i>)
or floating (%MF<i>, %KF<i>) should be located by an integer type (%MW<i>,
%KW<i>). Only I/O objects make it possible to locate type instances (%MD<i>,
%KD<i>, %QD, %ID, %MF<i>, %KF<i>, %QF, %IF) by using their topological address
(for example %MD0.6.0.11, %MF0.6.0.31).
For Modicon M340 PLCs, double-type instances of located data (%MD<i>, %KD<i>)
or floating (%MF<i>, %KF<i>) are not available.
%M
According to the IEC standard, %M indicates a memory bit-type language object.
668
35006144 05/2010
www.barr-thorp.com
Glossary
%MD
According to the IEC standard, %MW indicates a memory double word-type language
object.
For Premium/Atrium PLCs double-type instances of located data (%MD<i>, %KD<i>)
or floating (%MF<i>, %KF<i>) should be located by an integer type (%MW<i>,
%KW<i>). Only I/O objects make it possible to locate type instances (%MD<i>,
%KD<i>, %QD, %ID, %MF<i>, %KF<i>, %QF, %IF) by using their topological address
(for example %MD0.6.0.11, %MF0.6.0.31).
For Modicon M340 PLCs, double-type instances of located data (%MD<i>, %KD<i>)
or floating (%MF<i>, %KF<i>) are not available.
%MF
According to the IEC standard, %MW indicates a memory real-type language object.
For Premium/Atrium PLCs double-type instances of located data (%MD<i>, %KD<i>)
or floating (%MF<i>, %KF<i>) should be located by an integer type (%MW<i>,
%KW<i>). Only I/O objects make it possible to locate type instances (%MD<i>,
%KD<i>, %QD, %ID, %MF<i>, %KF<i>, %QF, %IF) by using their topological address
(for example %MD0.6.0.11, %MF0.6.0.31).
For Modicon M340 PLCs, double-type instances of located data (%MD<i>, %KD<i>)
or floating (%MF<i>, %KF<i>) are not available.
%MW
According to the IEC standard, %MW indicates a memory word-type language object.
For Premium/Atrium PLCs double-type instances of located data (%MD<i>, %KD<i>)
or floating (%MF<i>, %KF<i>) should be located by an integer type (%MW<i>,
%KW<i>). Only I/O objects make it possible to locate type instances (%MD<i>,
%KD<i>, %QD, %ID, %MF<i>, %KF<i>, %QF, %IF) by using their topological address
(for example %MD0.6.0.11, %MF0.6.0.31).
For Modicon M340 PLCs, double-type instances of located data (%MD<i>, %KD<i>)
or floating (%MF<i>, %KF<i>) are not available.
%Q
According to the IEC standard, %Q indicates a discrete output-type language object.
669
35006144 05/2010
www.barr-thorp.com
Glossary
%QD
According to the IEC standard, %MW indicates an output double word-type language
object.
Only I/O objects make it possible to locate type instances (%MD<i>, %KD<i>, %QD,
%ID, %MF<i>, %KF<i>, %QF, %IF) by using their topological address (for example
%MD0.6.0.11, %MF0.6.0.31).
%QF
According to the IEC standard, %MW indicates an output real-type language object.
Only I/O objects make it possible to locate type instances (%MD<i>, %KD<i>, %QD,
%ID, %MF<i>, %KF<i>, %QF, %IF) by using their topological address (for example
%MD0.6.0.11, %MF0.6.0.31).
%QW
According to the IEC standard, %QW indicates an analog output-type language
object.
A
Animating the links
This is also called power flow, and refers to a type of animation used with Ladder
language and the function blocks. The links are displayed in red, green or black
according to the variables connected.
ANY
There is a hierarchy between the different types of data. In the DFB, it is sometimes
possible to declare which variables can contain several types of values. Here, we
use ANY_xxx types.
670
35006144 05/2010
www.barr-thorp.com
Glossary
ARRAY
An ARRAY is a table of elements of the same type.
The syntax is as follows: ARRAY [<terminals>] OF <Type>
671
35006144 05/2010
www.barr-thorp.com
Glossary
Example:
ARRAY [1..2] OF BOOL is a one-dimensional table made up of two BOOL-type
elements.
ARRAY [1..10, 1..20] OF INT is a two-dimensional table made up of 10x20
INT-type elements.
ASCII
ASCII is the abbreviation of American Standard Code for Information Interchange.
This is an American code (but which has become an international standard) that
uses 7 bits to define every alphanumerical character used in English, punctuation
symbols, certain graphic characters and other miscellaneous commands.
Auxiliary tasks
Optional periodic tasks used to process procedures that do not require fast
processing: measurement, adjustment, diagnostic aid, etc.
B
Base 10 literals
A literal value in base 10 is used to represent a decimal integer value. This value can
be preceded by the signs "+" and "-". If the character "_" is employed in this literal
value, it is not significant.
Example:
-12, 0, 123_456, +986
Base 16 literals
An literal value in base 16 is used to represent an integer in hexadecimal. The base
is determined by the number "16" and the sign "#". The signs "+" and "-" are not
allowed. For greater clarity when reading, you can use the sign "_" between bits.
Example:
16#F_F or 16#FF (in decimal 255)
16#F_F or 16#FF (in decimal 224)
Base 2 literals
A literal value in base 2 is used to represent a binary integer. The base is determined
by the number "2" and the sign "#". The signs "+" and "-" are not allowed. For greater
clarity when reading, you can use the sign "_" between bits.
672
35006144 05/2010
www.barr-thorp.com
Glossary
Example:
2#1111_1111 or 2#11111111 (in decimal 255)
2#1110_0000 or 2#11100000 (in decimal 224)
Base 8 literals
A literal value in base 8 is used to represent an octal integer. The base is determined
by the number "8" and the sign "#". The signs "+" and "-" are not allowed. For greater
clarity when reading, you can use the sign "_" between bits.
Example:
8#3_77 or 8#377 (in decimal 255)
8#34_0 or 8#340 (in decimal 224)
BCD
The Binary Coded Decimal (BCD) format is used to represent decimal numbers
between 0 and 9 using a group of four bits (half-byte).
In this format, the four bits used to code the decimal numbers have a range of
unused combinations.
Example of BCD coding:
the number 2450
z is coded: 0010 0100 0101 0000
z
BIT
This is a binary unit for a quantity of information which can represent two distinct
values (or statuses): 0 or 1.
BOOL
BOOL is the abbreviation of Boolean type. This is the elementary data item in
computing. A BOOL type variable has a value of either: 0 (FALSE) or 1 (TRUE).
A BOOL type word extract bit, for example: %MW10.4.
Break point
Used in the "debug" mode of the application.
It is unique (one at a time) and, when reached, signals to the processor to stop the
program run.
673
35006144 05/2010
www.barr-thorp.com
Glossary
LD network,
BYTE
When 8 bits are put together, this is callad a BYTE. A BYTE is either entered in
binary, or in base 8.
The BYTE type is coded in an 8 bit format, which, in hexadecimal, ranges from
16#00 to 16#FF
C
Constants
An INT, DINT or REAL type variable located in the constant field (%K), or variables
used in direct addressing (%KW, %KD or %KF). The contents of these cannot be
modified by the program during execution.
CPU
Is the abbreviation of Control Processing Unit.
This is the microprocessor. It is made up of the control unit combined with the
arithmetic unit. The aim of the control unit is to extract the instruction to be executed
and the data needed to execute this instruction from the central memory, to establish
electrical connections in the arithmetic unit and logic, and to run the processing of
this data in this unit. We can sometimes find ROM or RAM memories included in the
same chip, or even I/O interfaces or buffers.
Cyclic execution
The master task is executed either cyclically or periodically. Cyclical execution
consists of stringing cycles together one after the other with no waiting time between
the cycles.
674
35006144 05/2010
www.barr-thorp.com
Glossary
D
DATE
The DATE type coded in BCD in 32 bit format contains the following information:
z
z
z
Limits
Comment
Year
[1990,2099]
Year
Month
[01,12]
Day
[01,31]
[01,30]
[01,29]
[01,28]
DATE_AND_TIME
see DT
DBCD
Representation of a Double BCD-format double integer.
The Binary Coded Decimal (BCD) format is used to represent decimal numbers
between 0 and 9 using a group of four bits.
In this format, the four bits used to code the decimal numbers have a range of
unused combinations.
Example of DBCD coding:
z the number 78993016
z is coded: 0111 1000 1001 1001 0011 0000 0001 0110
DDT
DDT is the abbreviation of Derived Data Type.
A derived data type is a set of elements of the same type (ARRAY) or of various types
(structure)
675
35006144 05/2010
www.barr-thorp.com
Glossary
DFB
DFB is the abbrevation of Derived Function Block.
DFB types are function blocks that can be programmed by the user ST, IL, LD or
FBD.
By using DFB types in an application, it is possible to:
z
z
z
z
DFB instance
A DFB type instance occurs when an instance is called from a language editor.
The instance possesses a name, input/output interfaces, the public and private
variables are duplicated (one duplication per instance, the code is not duplicated).
A DFB type can have several instances.
DINT
DINT is the abbrevation of Double Integer format (coded on 32 bits).
The lower and upper limits are as follows: -(2 to the power of 31) to (2 to the power
of 31) - 1.
Example:
-2147483648, 2147483647, 16#FFFFFFFF.
Documentation
Contains all the information of the project. The documentation is printed once
compiled and used for maintenance purposes.
The information contained in the documentation cover:
z
the program,
the cross-references.
...
When building the documentation file, you can include all or some of these items.
676
35006144 05/2010
www.barr-thorp.com
Glossary
Driver
A program indicating to your computer's operating system the presence and
characteristics of a peripheral device. We also use the term peripheral device driver.
The best-known drivers are printer drivers. To make a PLC communicate with a PC,
communication drivers need to be installed (Uni-Telway, XIP, Fipway, etc.).
DT
DT is the abbreviation of Date and Time.
The DT type coded in BCD in 64 bit format contains the following information:
z
z
z
z
z
z
Limits
Comment
Year
[1990,2099]
Year
Month
[01,12]
Day
[01,31]
[01,30]
[01,29]
[01,28]
Hour
[00,23]
Minute
[00,59]
Second
[00,59]
DWORD
DWORD is the abbreviation of Double Word.
The DWORD type is coded in 32 bit format.
677
35006144 05/2010
www.barr-thorp.com
Glossary
This table shows the lower/upper limits of the bases which can be used:
Base
Lower limit
Upper limit
Hexadecimal
16#0
16#FFFFFFFF
Octal
8#0
8#37777777777
Binary
2#0
2#11111111111111111111111111111111
Representation examples:
Data content
00000000000010101101110011011110
16#ADCDE
00000000000000010000000000000000
8#200000
00000000000010101011110011011110
2#10101011110011011110
E
EBOOL
EBOOL is the abbrevation of Extended Boolean type. A EBOOL type variable brings
a value (0 (FALSE) or 1 (TRUE) but also rising or falling edges and forcing
capabilities.
An EBOOL type variable takes up one byte of memory.
The byte split up into:
z
z
z
EDT
EDT is the abbreviation of Elementary Data Type.
These types are as follows:
z BOOL,
z EBOOL,
z WORD,
z DWORD,
z INT,
z DINT,
z UINT,
678
35006144 05/2010
www.barr-thorp.com
Glossary
z
z
z
z
z
UDINT,
REAL,
DATE,
TOD,
DT.
EF
Is the abbreviation of Elemantary Function.
This is a block which is used in a program, and which performs a predefined
software function.
A function has no internal status information. Multiple invocations of the same
function using the same input parameters always supply the same output values.
Details of the graphic form of the function invocation can be found in the "[Functional
block (instance)] ". In contrast to the invocation of the function blocks, function
invocations only have a single unnamed output, whose name is the same as the
function. In FBD each invocation is denoted by a unique [number] via the graphic
block, this number is automatically generated and can not be altered.
You position and set up these functions in your program in order to carry out your
application.
You can also develop other functions using the SDKC development kit.
EFB
Is the abbreviation for Elementary Function Block.
This is a block which is used in a program, and which performs a predefined
software function.
EFBs have internal statuses and parameters. Even where the inputs are identical,
the output values may be different. For example, a counter has an output which
indicates that the preselection value has been reached. This output is set to 1 when
the current value is equal to the preselection value.
Elemantary Function
see EF
35006144 05/2010
www.barr-thorp.com
Glossary
ENO means Error NOtification, this is the output associated to the optional input EN.
If ENO is set to 0 (caused by EN=0 or in case of an execution error),
the outputs of function blocks remain in the status they were in for the last correct
executed scanning cycle and
z the output(s) of functions and procedures are set to "0".
z
Event processing
Event processing 1 is a program section launched by an event. The instructions
programmed in this section are executed when a software application event (Timer)
or a hardware event (application specific module) is received by the processor.
Event processes take priority over other tasks, and are executed the moment the
event is detected.
The event process EVT0 is of highest priority. All others have the same level of
priority.
NOTE: For M340, IO events with the same priority level are stored in a FIFO and
are treated in the order in which they are received.
All the timers have the same priority. When several timers end at the same time, the
lowest timer number is processed first.
The system word %SW48 counts the number of IO events processed.
F
Fast task
Task launched periodically (setting of the period in the PC configuration) used to
carry out a part of the application having a superior level of priority to the Mast task
(master).
FBD
FBD is the abbreviation of Function Block Diagram.
FBD is a graphic programming language that operates as a logic diagram. In
addition to the simple logic blocks (AND, OR, etc.), each function or function block of
the program is represented using this graphic form. For each block, the inputs are
located to the left and the outputs to the right. The outputs of the blocks can be linked
to the inputs of other blocks to form complex expressions.
680
35006144 05/2010
www.barr-thorp.com
Glossary
FFB
Collective term for EF (Elementary Function), EFB (Elementary Function Block) and
DFB (Derived Function block)
Flash Eprom
PCMCIA memory card containing the program and constants of the application.
FNES
FNES is the abbreviation of Fichiers Neutres dEntres Sorties (Neutral I/O
Documentation).
FNES format describes using a tree structure the PLCs in terms of rack, cards and
channels.
It is based on the CNOMO standard (comit de normalisation des outillages de
machines outils).
Function
see EF
Function block
see EFB
Function view
View making it possible to see the program part of the application through the
functional modules created by the user (see Functional module definition).
Functional Module
A functional module is a group of program elements (sections, sub-programs, macro
steps, animation tables, runtime screen, etc.) whose purpose is to perform an
automation device function.
A functional module may itself be separated into lower-level functional modules,
which perform one or more sub-functions of the main function of the automation
device.
681
35006144 05/2010
www.barr-thorp.com
Glossary
G
GRAY
Gray or "reflected binary" code is used to code a numerical value being developed
into a chain of binary configurations that can be differentiated by the change in
status of one and only one bit.
This code can be used, for example, to avoid the following random event: in pure
binary, the change of the value 0111 to 1000 can produce random numbers between
0 and 1000, as the bits do not change value altogether simultaneously.
Equivalence between decimal, BCD and Gray:
H
Hyperlink
The hyperlink function enables links to be created between your project and external
documents. You can create hyperlinks in all the elements of the project directory, in
the variables, in the processing screen objects, etc.
The external documents can be web pages, files (xls, pdf, wav, mp3, jpg, gif, etc.).
682
35006144 05/2010
www.barr-thorp.com
Glossary
I/O Object
An I/O object is an implicit or explicit language object for an expert function module
or a I/O device on a fieldbus. They are of the following types: %Ch, %I, %IW, %ID,
%IF, %Q, %QW, % QD, QF, %KW, %KD, %KF, %MW, %MD, and %MF.
The objects' topological address depends on the module's position on the rack or
the device's position on the bus.
For Premium/Atrium PLCs double-type instances of located data (%MD<i>, %KD<i>)
or floating (%MF<i>, %KF<i>) should be located by an integer type (%MW<i>,
%KW<i>). Only I/O objects make it possible to locate type instances (%MD<i>,
%KD<i>, %QD, %ID, %MF<i>, %KF<i>, %QF, %IF) by using their topological address
(for example %MD0.6.0.11, %MF0.6.0.31).
For Modicon M340 PLCs, double-type instances of located data (%MD<i>, %KD<i>)
or floating (%MF<i>, %KF<i>) are not available.
IEC 61131-3
International standard: Programmable Logic Controls
Part 3: Programming languages.
IL
IL is the abbreviation of Instruction List.
This language is a series of basic instructions.
This language is very close to the assembly language used to program processors.
Each instruction is composed of an instruction code and an operand.
INF
Used to indicate that a number overruns the allowed limits.
For a number of Integers, the value ranges (shown in gray) are as follows:
683
35006144 05/2010
www.barr-thorp.com
Glossary
Instanciate
To instanciate an object is to allocate a memory space whose size depends on the
type of object to be instantiated. When an object is instantiated, it exists and can be
manipulated by the program.
INT
INT is the abbreviation of single integer format (coded on 16 bits).
The lower and upper limits are as follows: -(2 to the power of 31) to (2 to the power
of 31) - 1.
Example:
-32768, 32767, 2#1111110001001001, 16#9FA4.
Integer literals
Integer literal are used to enter integer values in the decimal system. The values can
have a preceding sign (+/-). Individual underlines (_ ) between numbers are not
significant.
Example:
-12, 0, 123_456, +986
IODDT
IODDT is the abbreviation of Input/Output Derived Data Type.
The term IODDT designates a structured data type representing a module or a
channel of a PLC module. Each application expert module possesses its own
IODDTs.
K
Keyword
A keyword is a unique combination of characters used as a syntactical programming
language element (See annex B definition of the IEC standard 61131-3. All the key
words used in Unity Proand of this standard are listed in annex C of the IEC standard
61131-3. These keywords cannot be used as identifiers in your program (names of
variables, sections, DFB types, etc.)).
684
35006144 05/2010
www.barr-thorp.com
Glossary
L
LD
LD is the abbreviation of Ladder Diagram.
LD is a programming language, representing the instructions to be carried out in the
form of graphic diagrams very close to a schematic electrical diagram (contacts,
coils, etc.).
Located variable
A located variable is a variable for which it is possible to know its position in the PLC
memory. For example, the variable Water_pressure, is associated with%MW102.
Water_pressure is said to be localized.
M
Macro step
A macro step is the symbolic representation of a unique set of steps and transitions,
beginning with an input step and ending with an output step.
A macro step can call another macro step.
Master task
Main program task.
It is obligatory and is used to carry out sequential processing of the PLC.
Mono Task
An application comprising a single task, and so necessarily the Master task.
Multi task
Application comprising several tasks (Mast, Fast, Auxiliary, event processing).
The order of priority for the execution of tasks is defined by the operating system of
the PLC.
Multiple token
Operating mode of an SFC. In multitoken mode, the SFC may possess several
active steps at the same time.
685
35006144 05/2010
www.barr-thorp.com
Glossary
N
Naming convention (identifier)
An identifier is a sequence of letters, numbers and underlines beginning with a letter
or underline (e.g. name of a function block type, an instance, a variable or a section).
Letters from national character sets (e.g: ,, , ) can be used except in project and
DFB names. Underlines are significant in identifiers; e.g. A_BCD and AB_CD are
interpreted as different identifiers. Multiple leading underlines and consecutive
underlines are invalid.
Identifiers cannot contain spaces. Not case sensitive; e.g. ABCD and abcd are
interpreted as the same identifier.
According to IEC 61131-3 leading digits are not allowed in identifiers. Nevertheless,
you can use them if you activate in dialog Tools Project settings in tab
Language extensions the check box Leading digits.
Identifiers cannot be keywords.
NAN
Used to indicate that a result of an operation is not a number (NAN = Not A Number).
Example: calculating the square root of a negative number.
NOTE: The IEC 559 standard defines two classes of NAN: quiet NAN (QNAN) and
signaling NaN (SNaN) QNAN is a NAN with the most significant fraction bit set and a
SNAN is a NAN with the most significant fraction bit clear (Bit number 22). QNANs are
allowed to propagate through most arithmetic operations without signaling an
exception. SNAN generally signal an invalid-operation exception whenever they
appear as operands in arithmetic operations (See %SW17 and %S18).
Network
Mainly used in communication, a network is a group of stations which communicate
among one another. The term network is also used to define a group of interconnected graphic elements. This group forms then a part of a program which may be
composed of a group of networks.
O
Operator screen
This is an editor that is integrated into Unity Pro, which is used to facilitate the
operation of an automated process. The user regulates and monitors the operation
of the installation, and, in the event of any problems, can act quickly and simply.
686
35006144 05/2010
www.barr-thorp.com
Glossary
P
Periodic execution
The master task is executed either cyclically or periodically. In periodic mode, you
determine a specific time (period) in which the master task must be executed. If it is
executed under this time, a waiting time is generated before the next cycle. If it is
executed over this time, a control system indicates the overrun. If the overrun is too
high, the PLC is stopped.
Procedure
Procedures are functions view technically. The only difference to elementary
functions is that procedures can take up more than one output and they support data
type VAR_IN_OUT. To the eye, procedures are no different than elementary
functions.
Procedures are a supplement to IEC 61131-3.
Protection
Option preventing the contents of a program element to be read (read protected), or
to write or modify the contents of a program element (read/write protected).
The protection is confirmed by a password.
687
35006144 05/2010
www.barr-thorp.com
Glossary
R
REAL
Real type is a coded type in 32 bits.
The ranges of possible values are illustrated in gray in the following diagram:
NOTE: The IEC 559 standard defines two classes of NAN: quiet NAN (QNAN) and
signaling NaN (SNaN) QNAN is a NAN with the most significant fraction bit set and a
SNAN is a NAN with the most significant fraction bit clear (Bit number 22). QNANs are
allowed to propagate through most arithmetic operations without signaling an
exception. SNAN generally signal an invalid-operation exception whenever they
appear as operands in arithmetic operations (See %SW17 and %S18).
NOTE: when an operand is a DEN (Denormalized number) the result is not
significant.
688
35006144 05/2010
www.barr-thorp.com
Glossary
Real literals
An literal real value is a number expressed in one or more decimals.
Example:
-12.0, 0.0, +0.456, 3.14159_26
Real literals with exponent
An Literal decimal value can be expressed using standard scientific notation. The
representation is as follows: mantissa + exponential.
Example:
-1.34E-12 or -1.34e-12
1.0E+6 or 1.0e+6
1.234E6 or 1.234e6
RS 232C
Serial communication standard which defines the voltage of the following service:
z
There is, however, in the case of any attenuation of the signal, detection provided
up to the limits -3 V and +3 V.
Between these two limits, the signal will be considered as invalid.
RS 232 connections are quite sensitive to interferance. The standard specifies not
to exceed a distance of 15 m or a maximum of 9600 bauds (bits/s).
RS 485
Serial connection standard that operates in 10 V/+5 V differential. It uses two wires
for send/receive. Their "3 states" outputs enable them to switch to listen mode when
the transmission is terminated.
RUN
Function enabling the startup of the application program of the PLC.
RUN Auto
Function enabling the execution of the PLC application program to be started
automatically in the case of a cold start.
689
35006144 05/2010
www.barr-thorp.com
Glossary
Rung
A rung is the equivalent of a sequence in LD; other related terms are "Ladder
network" or, more generally, "Network". A rung is inscribed between two potential
bars of an LD editor and is composed of a group of graphic elements interconnected
by means of horizontal or vertical connections. The dimensions of a rung are 17 to
256 lines and 11 to 64 columns maximum.
S
Section
Program module belonging to a task which can be written in the language chosen
by the programmer (FBD, LD, ST, IL, or SFC).
A task can be composed of several sections, the order of execution of the sections
corresponding to the order in which they are created, and being modifiable.
SFC
SFC is the abbreviation of Sequential Function Chart.
SFC enables the operation of a sequential automation device to be represented
graphically and in a structured manner. This graphic description of the sequential
behavior of an automation device, and the various situations which result from it, is
performed using simple graphic symbols.
SFC objects
An SFC object is a data structure representing the status properties of an action or
transition of a sequential chart.
Single token
Operating mode of an SFC chart for which only a single step can be active at any
one time.
ST
ST is the abbreviation of Structured Text language.
Structured Text language is an elaborated language close to computer
programming languages. It enables you to structure series of instructions.
STRING
A variable of the type STRING is an ASCII standard character string. A character
string has a maximum length of 65534 characters.
690
35006144 05/2010
www.barr-thorp.com
Glossary
Structure
View in the project navigator with represents the project structure.
Subroutine
Program module belonging to a task (Mast, Fast, Aux) which can be written in the
language chosen by the programmer (FBD, LD, ST, or IL).
A subroutine may only be called by a section or by another subroutine belonging to
the task in which it is declared.
T
Task
A group of sections and subroutines, executed cyclically or periodically for the MAST
task, or periodically for the FAST task.
A task possesses a level of priority and is linked to inputs and outputs of the PLC.
These I/O are refreshed in consequence.
TIME
The type TIME expresses a duration in milliseconds. Coded in 32 bits, this type
makes it possible to obtain periods from 0 to (2 to the power of 32)-1 milliseconds.
Time literals
The units of type TIME are the following: the days (d), the hours (h), the minutes (m),
the seconds (s) and the milliseconds (ms). A literal value of the type TIME is
represented by a combination of previous types preceded by T#, t#, TIME# or
time#.
Examples: T#25h15m, t#14.7S, TIME#5d10h23m45s3ms
Time Out
In communication projects, The Time out is a delay after which the communication
is stopped if there is no answer of the target device.
TIME_OF_DAY
see TOD
691
35006144 05/2010
www.barr-thorp.com
Glossary
TOD
TOD is the abbreviation of Time of Day.
The TOD type coded in BCD in 32 bit format contains the following information:
z
z
z
Limits
Comment
Hour
[00,23]
Minute
[00,59]
Second
[00,59]
Example: TOD#23:59:45.
Token
An active step of an SFC is known as a token.
692
35006144 05/2010
www.barr-thorp.com
Glossary
U
UDINT
UDINT is the abbreviation of Unsigned Double Integer format (coded on 32 bits)
unsigned. The lower and upper 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 Unsigned integer format (coded on 16 bits). The lower
and upper limits are as follows: 0 to (2 to the power of 16) - 1.
Example:
0, 65535, 2#1111111111111111, 8#177777, 16#FFFF.
Unlocated variable
An unlocated variable is a variable for which it is impossible to know its position in
the PLC memory. A variable which have no address assigned is said to be
unlocated.
V
Variable
Memory entity of the type BOOL, WORD, DWORD, etc., whose contents can be modified
by the program during execution.
Visualization window
This window, also called a watch window, displays the variables that cannot be
animated in the language editors. Only those variables that are visible at a given
time in the editor are displayed.
693
35006144 05/2010
www.barr-thorp.com
Glossary
W
Watch point
Used in the "debug" mode of the application.
It enables the display of animated variables to be synchronized with the execution
of a program element (containing the watch point) in order to ascertain their values
at this precise point of the program.
WORD
The WORD type is coded in 16 bit format and is used to carry out processing on bit
strings.
This table shows the lower/upper limits of the bases which can be used:
Base
Lower limit
Upper limit
Hexadecimal
16#0
16#FFFF
Octal
8#0
8#177777
Binary
2#0
2#1111111111111111
Representation examples
Data content
0000000011010011
16#D3
1010101010101010
8#125252
0000000011010011
2#11010011
694
35006144 05/2010
www.barr-thorp.com
Index
35006144 05/2010
B
AC
Index
Symbols
%S, 146
%SW
generic, 168
Modicon M340, 220
Premium, 195
Quantum, 208
A
ADD
IL, 458
addressing
data instances, 298
input/output, 298
Alignment constraint, 270
AND
IL, 456
ST, 503
ANY_ARRAY, 283
ARRAY, 264
automatic start in RUN, 119
B
BOOL, 237
BYTE, 261
C
CAL, 462
CASE...OF...END_CASE
ST, 512
channel data structure, 273
cold start, 119, 131
comparison
IL, 454
LD, 361
ST, 500
compatibility
data types, 287
D
D
SFC, 406
data instances, 291
data types, 233
DATE, 248
DDT, 263
derived data types (DDT), 263, 267
derived function block (DFB), 545
representation, 276, 550
DFB
representation, 550
diagnostics DFB, 593
DINT, 242
DIV
IL, 459
DS
SFC, 406
DT, 250
DWORD, 261
695
35006144 05/2010
www.barr-thorp.com
Index
E
EBOOL, 237
EDT, 233
EFB, 275
elementary data types (EDT), 233
elementary function block (EFB), 275, 276
ELSE, 510
ELSIF...THEN, 511
EN/ENO
FBD, 328
IL, 473, 482, 489
LD, 356
ST, 528, 536, 542
EQ
IL, 460
error codes, 597
event processing, 87
EXIT, 517
F
FBD
language, 319, 322
structure, 320
floating point, 251
FOR...TO...BY...DO...END_FOR
ST, 513
forced bits, 237
G
GE
IL, 460
GT
IL, 460
H
HALT, 144
IF...THEN...END_IF
ST, 509
IN_OUT
FBD, 330
IL, 483, 490
LD, 358
ST, 536, 542
input/output
addressing, 298
instruction list (IL)
language, 445, 469, 474, 485
operators, 454
structure, 447
INT, 242
J
JMP
FBD, 332
IL, 463, 465
LD, 359
SFC, 414
ST, 521
L
L
SFC, 406
labels
FBD, 332
IL, 465
LD, 359
ST, 521
LD
language, 343, 349
structure, 344
LD operators
IL, 343
LE
IL, 461
LT, 461
I
IEC Compliance, 637
M
memory structures, 105, 107
696
35006144 05/2010
www.barr-thorp.com
Index
MOD
IL, 459
ST, 501
MUL
IL, 458
REPEAT...UNTIL...END_REPEAT, 516
RETURN
FBD, 332
IL, 463
LD, 360
ST, 519
NE
IL, 461
NOT
IL, 457
O
operate, 361
OR
IL, 456
ST, 504
P
P
SFC, 406
P0
SFC, 406
P1
SFC, 406
private variables
DFB, 560
FBD, 327, 355, 476, 531
public variables
DFB, 560
FBD, 326
IL, 475
LD, 354
ST, 531
R
R
IL, 455
LD, 347
SFC, 406
REAL, 251
IL, 455
LD, 347
SFC, 406
sections, 74, 75
SFC
language, 387, 403
structure, 389
SFCCHART_STATE, 391
SFCSTEP_STATE, 396
SFCSTEP_TIMES, 396
STRING, 256
structure, 263
structured text (ST)
instructions, 505
language, 493, 524, 529, 538
operators, 500
structure, 495
SUB
IL, 458
subroutines, 74, 78
system bits, 146
system words, 168
Modicon M340, 220
Premium, 195, 200
Quantum, 208, 213
T
tasks, 67, 71
cyclic, 82
periodic, 83
TIME, 244
TOD, 249
697
35006144 05/2010
www.barr-thorp.com
Index
U
UDINT, 242
UINT, 242
W
warm start, 119
watchdogs
mono-task, 84
multi-task, 92
WHILE...DO...END_WHILE
ST, 515
WORD, 261
X
XOR
IL, 457
ST, 504
698
35006144 05/2010
www.barr-thorp.com