R360 Systemhandbuch

Transcription

R360 Systemhandbuch
Manual Starter Set
R
Controller family R360
for CoDeSys starting version 2.3
You will find more details at: www.ifm-electronic.com
Starter Set Manual CoDeSys 2.3, 12/2006, from software version V020102
Guarantee note
This manual was written with the utmost care. However, we cannot assume any guarantee for the
contents.
Since errors cannot be totally avoided despite all efforts we appreciate your comments.
We reserve the right to make technical alterations to the product which might result in a change
of contents of the manual.
Starter set manual ecomatmobile type R360
What you can find in this manual
1.
What you should know...........................................................1-1
1.1.
Required previous knowledge............................................................... 1-1
1.2.
Structure of the manual.......................................................................... 1-1
How to find your way around .................................................................... 1-1
1.3.
Overview of the documentation............................................................. 1-2
Printed media............................................................................................ 1-2
Electronic media ....................................................................................... 1-3
1.4.
Hardware ................................................................................................. 1-3
1.5.
Features of a PLC ................................................................................... 1-5
Cycle......................................................................................................... 1-5
Time response .......................................................................................... 1-7
Watchdog.................................................................................................. 1-9
2.
Installation...............................................................................2-1
2.1.
Hardware of the PC................................................................................. 2-1
2.2.
Software setup ........................................................................................ 2-1
2.3.
Program start .......................................................................................... 2-5
2.4.
Settings.................................................................................................... 2-7
New project............................................................................................... 2-7
Target........................................................................................................ 2-7
Subsequent installation of the target......................................................... 2-8
Main program.......................................................................................... 2-10
Directories................................................................................................2-11
Libraries .................................................................................................. 2-13
PLC configuration ................................................................................... 2-16
3.
The start...................................................................................3-1
3.1.
Basics and concepts .............................................................................. 3-1
3.2.
A small ecolog CoDeSys project as a start .......................................... 3-3
R
I
Description ................................................................................................ 3-3
The first step ............................................................................................. 3-3
Add Program............................................................................................. 3-5
Defining variables ..................................................................................... 3-6
Saving ..................................................................................................... 3-13
Other languages ..................................................................................... 3-14
Program test ........................................................................................... 3-15
Visualisation ............................................................................................ 3-19
3.3.
Online test ............................................................................................. 3-31
Preparations............................................................................................ 3-31
Operating system.................................................................................... 3-32
Online program test ................................................................................ 3-37
Sampling Trace ....................................................................................... 3-45
Documentation ........................................................................................ 3-51
4.
Exercises ................................................................................ 4-1
4.1.
Logic functions ....................................................................................... 4-1
Example 1! Error! ...................................................................................... 4-3
Example 2 ................................................................................................. 4-4
4.2.
Higher-level functions ............................................................................ 4-5
Timer and counter function ....................................................................... 4-5
Practical application .................................................................................. 4-6
4.3.
More details ............................................................................................. 4-6
Notes......................................................................................................... 4-6
Cycle time ................................................................................................. 4-7
Visualisation .............................................................................................. 4-9
5.
Appendix ................................................................................. 5-1
5.1.
Buttons .................................................................................................... 5-1
File functions............................................................................................. 5-1
Online functions ........................................................................................ 5-2
General editing functions .......................................................................... 5-2
II
Starter set manual ecomatmobile type R360
Editing functions for SFC .......................................................................... 5-3
Editing functions for LD............................................................................. 5-3
Editing functions for FBD .......................................................................... 5-4
Functions for sampling trace..................................................................... 5-4
Functions for Visualisation ........................................................................ 5-5
5.2.
Quick reference guide ............................................................................ 5-7
New project............................................................................................... 5-7
Libraries and hardware configuration........................................................ 5-8
5.3.
Saving work........................................................................................... 5-10
'Save as...' .............................................................................................. 5-10
'Project' 'Merge...'.....................................................................................5-11
'Export project...' 'Import project...' .......................................................... 5-12
Library..................................................................................................... 5-12
Clipboard ................................................................................................ 5-12
Templates ............................................................................................... 5-12
Other steps ............................................................................................. 5-12
5.4.
Remarks for solutions .......................................................................... 5-13
5.5.
Notes...................................................................................................... 5-14
Declarations............................................................................................ 5-15
Sequence................................................................................................ 5-18
Recap ..................................................................................................... 5-18
Program structure ................................................................................... 5-19
Individually defined function block .......................................................... 5-21
6.
Index ........................................................................................6-1
R
III
1.
What you should know
In this chapter we will give you an overview of the following points:
Why this
manual?
•
What previous knowledge is required to be able to
work with this manual?
•
What is the structure of this manual?
•
How do you find your way around this manual?
•
What information do you find in this manual?
Every user knows the problem: new software and new hardware. You will come
across many unknown issues which at the beginning take up a lot of time and
thus money.
When you work with the system more frequently you will find that many work
steps keep repeating themselves. You no longer concentrate on how to create a
new project or how to declare a variable but on the process to be controlled.
This manual therefore describes in many details, step by step, the procedure of
creating programs and handling the hardware.
When you use this manual as recommended, you will be able to quickly reach
your goal to effectively use the controller system ecomatmobile.
1.1.
Required previous knowledge
This training manual is directed at people who have some basic technical
knowledge. Some experience in controller technology and PLC programming
skills are useful.
1.2.
Structure of the manual
This manual provides learning support for starters. As experience increases
more interim steps can be skipped.
How to find your way around
To facilitate work with this manual we have added some helps for you.
To be able to directly get to a certain subject use the table of contents of this
manual.
The index will also help you get to the term you are looking for.
At the beginning of a chapter we are giving you a brief overview of the contents
of that chapter.
R
1-1
Overview of the documentation
Headers
The header of each page on the right provides you with the title of the current
chapter. On the left you will find the current header of second order.
Footnotes
In the footnotes of each page you will find the chapter-related number of the
page.
Selective
reading
In the marginal column you will find comments which make finding certain
paragraphs easier for you.
There you will also find pictograms and markings the meaning of which is
explained below
Note
Paragraphs marked with this pictogram give safety-related information. Read
these paragraphs very carefully.
Arrow
Here you are given important notes to help you with the correct handling of
ecomatmobile.
1.3.
Overview of the documentation
Working with a controller of the ecomat R360 system requires several
documents. A brief overview should help you to cope.
Printed media
1-2
•
Catalogue
Overview of the units with data sheets
•
Manual for the program development with CoDeSys
Software description
•
System manual ecomatmobile type R360
Technical description, hardware-specific function blocks
•
Mounting and installation instructions
hardware specific, are supplied with the unit
•
Training manual 1
Step-by-step introduction
What you should know
Electronic media
For some devices the system manual is
replaced by the online help..
Online Help
It becomes more and more familiar that the
programmer gets information just when
needed. The search function and the links
make it easy to work fast and effective.
If you prefer to browse in a printed medium
then you may just print out the online help. It is
formatted in a way that you should get a well
formatted print.
Figure 1: Online Help
www.ifmelectronic.com
Each printed medium such as this manual will become obsolete sooner or later;
looking at the speed of technical changes, rather sooner. This also applies to
hardware and software. To find out about the current version, please see the
web address indicated on the left. Usually you will find there updates of the
software and the current version of the documentation for downloading (Æ e.g.
page 2-4). This concerns also the online helpÆ Figure 1.
1.4.
Hardware
In the training manual reference will be made quite often to the hardware. To be
noted:
The different types of the controller ecomatmobile type R360 (e. g. CR2500,
CR0020, CR0505) vary in their different hardware configurations.
For the programming software this means:
R
1-3
Hardware
•
It has to be adapted to the hardware. The process is briefly described
below. Further information is given in the programming or system manual.
•
It might be necessary to change e.g. the addresses of inputs or outputs in
example programs.
It would be much too complicated to write an introduction into the software for
each type. That is why as an example the handling of the controller
CR2500
will be described.
When you work with another type later on, this must, of course, be taken into
account for the examples. Another subdirectory must be set and other libraries
must be loaded. Since the type designation, here CR2500, is also used for the
directory and file name, e.g. subdirectory ifm_CR2500 etc., this should be no
problem. To keep the following text clear, this will not be pointed out separately.
When, for example, you work with the starter set of the controller CR2500, the
only difference is that with the starter set some steps can be skipped. Here
some settings have already been made to facilitate the start, e.g. the operating
system has already been loaded. No harm is done, though, if for example you
load the operating system once again for reasons of practical training.
1-4
What you should know
1.5.
Features of a PLC
Cycle
The advantages of a PLC as compared to a conventional contactor controller
does no longer need to be pointed out today. Now there are also controllers
with mechanical and electrical features which are necessary for use in mobile
machines, e.g. protection IP 67, high mechanical stability and electrical noise
immunity. These may also be the reasons why the reader has decided to use
the ecomat mobile system. For those who do not yet have any experience with
a PLC some features which sometimes present problems will be briefly
described in this chapter.
Cyclical
program
processing
One characteristic of PLC systems is the cyclical program processing. This has
some consequences for programming which will be briefly shown below.
Figure2: Cyclical Program Processing
An example is to explain why this type of programming makes sense. Let us
assume that the following instructions are in the program:
If the selector switch is on 0 (logical FALSE), then switch the output "move
to the left".
If the selector switch is on 1 (logical TRUE), switch the output "move to the
right".
At first glance everything seems to be clear. The switch can either be on 0 or 1.
However, it has to be noted that such a program is processed in sequence, e.g.
instruction after instruction. Nevertheless, sometime the following event may
come up (this is where Murphy's law applies):
The selector switch is on 0, therefore the output "move to the left" is
switched.
R
1-5
Features of a PLC
At that very moment somebody flips the selector switch. If the state of the input
were enquired about again, the condition for the next program step would also
be fulfilled: the output "move to the right" would also be switched with a possibly
spectacular result.
It may also come to conflicts which cannot be seen and prevented during
program creation.
Unambiguous
signal states
Thus the meaning of cyclical program processing is for example to ensure
unambiguous signal states during program processing. The program works
with the process data image.
This is also of importance for the outputs. It is e.g. possible to switch an output
to TRUE and then again to FALSE 10 times during program processing. This
cannot result in "chattering" of the output, i.e. constantly changing its state. The
state is clearly defined. During program processing only the state of one bit in
the process data image changes. The last state is switched, i.e. provided to the
physical outputs. The only objection to be raised is that the program structure is
unclear.
Priority
This may seem quite theoretical but it does have some consequences for
practical use. The priority of instructions can be determined in the program by
their sequence!
If, for example, there is an instruction in the program:
if limit switch reached, then stop drive
then it is usually placed behind the instruction for switch-on. Usually the
conditions for switch-on and switch-off should not be fulfilled at the same time.
If, however, due to a malfunction this does occur, then switch-off takes priority
(compare pages 4-2 and 4-3).
Thanks to the cyclical program processing, reliability is provided due to
unambiguous signal states. However, other consequences have to be put up
with.
1-6
What you should know
Time response
Only timecritical
processes
If the time response is uncritical, if a ms does not matter, then the comments on
the time response do not have to be taken into account.
Cycle time
The time the controller needs for one program cycle is called cycle time.
How long is the
cycle time?
There is no easy answer to this question. It makes sense that it is longer for
long programs and shorter for short ones. It also depends on the type of
instructions. Logical conjunctions are processed considerably faster than for
example arithmetic operations. The answer is not clear if there are jumps, for
example. If the condition for the jump is fulfilled, a program section is skipped.
In that case it is not processed. The cycle is shorter. If the condition for the jump
is not fulfilled, the cycle time becomes longer.
ms
Therefore only an estimate can be given here. You can expect a short time
from an efficient system such as ecomat mobile. It is indeed in the ms range.
For shorter programs it may be shorter, for more complex programs it may be
several ms.
To determine the actual value of the cycle time: Æ page 4-7.
Now it is easy to understand the demands on input signals.
An input signal has to be active at least during one complete program cycle.
If a signal is shorter it depends if it happens to come at that point of time at
which the inputs are read. Only then will it be recognised.
Response
time:
This value is often used to characterise the time response of a PLC. This is the
time that is needed to switch a signal from an input to an output. If you expect
the worst case, this means twice the cycle time.
Frequency
In some cases, for example when evaluating encoder signals, you also have to
ask about the frequencies that can be processed on the input.
If the cycle time is for example 1 ms, the cycle frequency is 1 kHz. However,
this does not mean that the frequency on the input can be 1 kHz. To recognise
a pulse as a pulse, a FALSE signal and a TRUE signal have to be detected;
otherwise the pulse cannot be distinguished from a static state. The signal
frequency must be half the cycle frequency at maximum. To allow possible
fluctuations in practical use it should be significantly lower.
To be more precise, this is only one necessary condition. If the signal frequency
is higher than half the cycle frequency, the pulses can no longer be processed
accurately. If it is lower, the signal shape also has to be taken into account. If,
for example, the cycle frequency is 1 kHz and the signal frequency is 100 Hz,
you could think you were on the safe side. If, however, the FALSE signal is 9.5
ms and the TRUE signal only 0.5 ms, the pulses cannot be processed
accurately. To be on the safe side it is necessary that the FALSE as well as the
TRUE signal, each one separately, is longer than the cycle time.
R
1-7
Features of a PLC
An unfavourable signal shape does indeed occur in practical use. If, for
example, speed is to be monitored by evaluating the pulses of a puck, the
TRUE signal is short if the diameter of the puck is small.
An example is shown on the left side of Figure 3. Often metal screws are used
in a plastic disc. If the signals are not detected reliably, a metal strip can be
used. Its length should be 1/3 to 1/2 of the circumference. The optimum markto-space ratio of 1:1 can thus be easily obtained.
Figure 3: Target Pucks for Rotational Speed Monitoring
Frequency
inputs
Usually there are only higher frequencies if encoders with a high resolution are
used. To be able to process higher frequencies the controllers have so-called
frequency inputs. This ensures that signals up to 50 kHz are reliably detected.
This is an exception from the usual cyclical program cycle.
Filtering
The maximum frequency for standard inputs is limited since they have a lowpass filter. Thus increased protection in the event of noise against interference
peaks is obtained. On the other hand the frequency inputs are more
susceptible.
Optimisation
The experienced PLC programmer knows ways to optimise the cycle time for
time-critical processes. Since this manual is an introduction we will not discuss
this any further here.
Bus systems
Using a bus system provides many advantages. In applications for mobile
machines CAN is used as a rule (Æ Training manual 2: Introduction into
working with CAN). The time response, however, can be negatively affected. If,
for example, the input and the output are on separate CAN modules, the
response time increases by the time needed for the communication.
Time-critical pulses should therefore be put directly on inputs of the controller.
1-8
What you should know
Watchdog
A PLC monitors itself if the cycle is correctly processed. The case that a
program cycle is not complete is dangerous. Then no inputs are read. A change
of the state on the input, e.g. "limit switch reached" cannot be processed. The
status of the output cannot change, e.g. the drive keeps on running although the
limit switch has been reached.
The watchdog function exists to avoid such states. If the end of the cycle has
not been reached within a certain time which is started with each new cycle the
watchdog becomes active. The controller is stopped and the outputs are
disconnected. This time does, of course, depend on a maximum possible cycle
time. In ecomat systems it is approx. 40 ms.
What can cause such an event?
Causes
1. Hardware error
If a processor fails, for example, the controller must pass into a safe state.
2. Program error
We will describe this second point here in more detail. Those who already have
some programming experience, for example on the PC, are especially
vulnerable to such errors. In a PC program a window can be created with the
text "Enter value" and an input field.Then the keyboard is enquired about if a
value has been entered. If so, the value will be processed. If not, the keyboard
will be enquired about again until the input has been made. It does not matter if
the user has a coffee break, a lunch break or does something else during that
time.
There must not be any closed loop in a PLC program; only the program cycle
itself may be such a loop. A possible cause of an unintended closed loop may
be a backward jump. Since this is dangerous, a warning is issued during
compilation of the program.
In the worst case it is possible that the communication between the PC and the
controller is impaired. Log-in is then no longer possible. In this case the
downloader tool (Æ page 3-36) will help.
R
1-9
2.
Installation
2.1.
Hardware of the PC
Minimum
PC with Pentium processor
MS Windows © XP
128 MB RAM
Hard disk with 100 MB available
Mouse and additional serial interface
We recommend to use a current version of the software (operating system) and
hardware, e.g. Ethernet interface.
2.2.
Software setup
Set-up
The installation is started as usual. If the autostart function of the CD-ROM drive
is active, the ecolog software installer starts. The selection will be described
below.
Figure 4: Installer
R
2-1
Software setup
Here we are dealing with CoDeSys 2.3. This is the software for programming
the current hardware. Therefore the programming examples below were
created using this version.
Figure 5: Version
The version you use depends for example on your hardware version, on the
version of its operating systems, etc. If you use different versions it may
become necessary to also install different software versions. You can, of
course, install this and other programs subsequently, for example if you want to
work with a PDM or with CAN modules. You may also want to install the
documentation on your PC. To be able to see or print the documentation here
or on CD you need Acrobat Reader. These installations will not be described in
this training manual.
The software is installed by clicking on Setup. The individual steps will not be
described here.
We recommend to adopt the default settings, e.g. the directory name, paths
etc. This will save unnecessary work. This will also make it easier to
understand the following examples.
2-2
Installation
The following directories are then on the hard disk:
C:\Program files\ifm electronic\CoDeSys V2.3
Program file CoDeSys
There are the directories:
Compile
temporary auxiliary files
1
Documents
device-specific information
Help1
help files
Library
general libraries of 3S
there:
PLCConf
device-specific files
For CAN users: here are the EDS files. If other devices are to be connected via
CAN, their EDS files have to be copied into the directory PLCConf.
Projects2
your projects, examples
The directories with the comment 'Temp' which are created in 'Projects' can
be compared with an automatic backup. They can be deleted without any
problems. The only file that is absolutely necessary is *.pro .
Targets
target systems
there
ifm
files for ifm devices
there
Help
ifm-specific files
and e.g.
ifm_CR2500cfg
there finally the directories with the configuration data files. If
several versions are needed, they have to be in separate
directories, e.g. the directory:
V040001
Library
there: general ifm-specific files, device-specific files in turn are in
subdirectories, e.g.:
ifm_CR2500
in which there is the operating system and the specific library.
1
There are the versions in German, English and French.
2
For a better overview we recommend to create a subdirectory for each project.
R
2-3
Software setup
If you work with different versions, to be seen from the version number, e.g.
V040001, it is important to remember that the versions of the configuration data
files and of the operating system match!
This structure may seem a bit confusing. In general you are not confronted with
it and therefore you do not have to worry about it.
This structure is created by CoDeSys during installation. During program
creation CoDeSys accesses the required files and searches for them in the
defined paths. Therefore we advise against changing the directory structure
after installation.
If you work on several PCs, you have to remember that it makes the exchange
of program files easier if the same directory structure is installed on each of
these PCs.
What does e.g.
V020102
(version
number)
mean?
V02 is the actual version, 01 stands for the date of the update (release), 02 for
the patch number. The current version can be found on the web (Æ 1.3). The
new versions are, for example, required for the new hardware versions. We
recommend to change this version only if it is necessary. It is a lot easier, if all
systems used are of the same version, even if it is not the latest one.
At any rate the downloader should also be installed (Æ page 3-33).
Figure 6: Downloader Setup
2-4
Installation
This is an important tool. Again, not each and every detail can be discussed
here. Usually only the function described on page 3-33 et seqq is needed. In the
event of frequent programming it is worthwhile to study this tool in detail ( Æ
e.g. Notes in Help concerning the downloader).
The installation should not present any problem. We recommend to adopt all
default settings.
2.3.
Program start
CoDeSys is started via the icon in the start menu, for example.
Figure 7: Program start
Info
The information is displayed for a short time. If required, it can be called up
under menu item Help, e.g. for checking which software version (in this case
2.3) has been installed.
An example program is loaded.
R
2-5
Program start
Error message
If one or several error messages are displayed, other paths may have been
selected during set-up. For the time being they can be ignored. Further below
we will describe the adaptations that will have to be made.
The example program may look like this:
Figure 8: Example Program
We will not deal with this any further here. The continuous work on this project
is made easier if the one opened last is loaded automatically during program
start-up. Therefore the example program will open here. If you do not want this,
you can change it via 'Project' 'Options'.
2-6
Installation
Figure 9: Project Options 1
2.4.
Settings
New project
Before starting with the programming of the controller you would normally have
to make some additional settings. This has to be done for a configuration only
once at the beginning, compare page 2-19.
In the starter set all required settings have already been made. The following
descriptions are only for information if you work with it.
These settings are part of each project and they are saved with it. This way you
can easily work on projects for various hardware configurations with the same
user interface. To show how the settings are made we open a new project via
'File' 'new' or
a new project.
Target
A window to create the target system will open.
Figure 10: Target System Settings
R
2-7
Settings
By clicking on the arrow symbol
the selection list will open. There the
hardware you want to work with is marked. It can be identified by the article
number.
Figure 11: Target System Selection
CR2500 is marked and acknowledged with
.
When a concrete target system has been selected, the window is enlarged
considerably. Many tabs are for functions that are not supported by this
hardware. CoDeSys is a universal programming system. The most important
tab is the one for 'Network functionality'. There the parameters for
communication are set via CAN. This is not a topic here (Æ Training manual 2:
Communication with CAN).
But it is easier to prepare us for working with CAN just now. For this reason,
please let the options 'Support parameter manager' and 'Support network
variables' active. Then we have to append the subelement CANopen Master in
the PLC Configuration (Æ Figure 30). Then the topic CAN can be ignored for
the moment.
What has to be done, if the article number is not displayed in the selection
screen?
This will only happen with new hardware. Then the respective file will be
ordered from ifm electronic or loaded from the Internet and installed
subsequently.
Subsequent installation of the target
Since this happens occasionally, the process will be briefly described. If the
required target is already in the selection list, this section can be skipped. You
will continue with the Section 'Main program', page 2-10.
It has to be noted that here files are not simply copied into a directory. To avoid
errors due to an unsuitable directory structure, the Help program
InstallTarget.exe will be used. It is directly in the CoDeSys V2.3 directory.
After starting InstallTarget the following window will open:
2-8
Installation
Figure 12: Start Window InstallTarget
By clicking on the 'Open...' button the usual selection screen for files will open.
In principle a number of control systems can be programmed using CoDeSys.
This does, however, not mean that each target can easily be installed here as
described. Which target is programmed in which way can be taken from 3S.
Figure 13: Selection Screen InstallTarget
In the example the installation CD was inserted in drive (E). Then the directory
E:\CoDeSys_V23\Targets\ifm
R
2-9
Settings
was opened. The files that can be seen there have the extension: TNF (for
target information). As an example ifm_CR0020_V030002.TNF is marked and
'Open' is clicked on. At first you cannot see a big difference. There is only a
new entry in the left box. By clicking on the '+' next to 'ifm' the structure is
shown in detail:
Figure 14: InstallTarget with Systems
In Figure 14 you can see that a CR0020... is already present in the right box.
The installation may, however, make sense if there are different versions. There
is also to be seen that the installation directory on top still has to be adapted, Æ
pages 2-1 and Figure 16.
Then the new target can be installed. When the target has been successfully
installed, the requested one can now be selected. The next step is like in the
previous versions: the main program is added.
Main program
Figure 15: New Project
2-10
Installation
The inputs in this start window are of special importance. This will be described
in more detail further below. For the time being we select the option FBD and
confirm it by OK.
A remark beforehand: Do not change the name PLC_PRG!
Directories
Search path
Since the same programming surface is used for different hardware
configurations, the required files need to be accessible. The device-specific
files are listed in different subdirectories. It would be confusing to provide all
of them right from the start. First, it has to be stated in which subdirectory
they can be found.
This is done via the menu items: 'Project' 'Options'. Select the category
Directories in the displayed dialogue box that opens (Æ Figure 16).
Figure 16: Set Directories
By selecting the target some entries have already been made.
C:\Program files\ifm electronic\CoDeSys V2.3\Library\ etc.
A very important entry is still missing, however. In addition it has to be
indicated where the configuration files of the project are. This entry is not
made automatically to enable working with different version numbers.
By clicking on the button
open.
to the right of the field the selection screen will
R
2-11
Settings
Figure 17: Project Configuration Directory
After acknowledgment with
the entry has been made:
Figure 18: Directories Created
Starter set
If you work with different hardware types in other applications the entry has to
be adapted accordingly. Example:
CR0020
C:\ Program files\ifm electronic\CoDeSys V2.3\targets\ifm\ifm_cr0020cfg\VXXXXXX
XXXXXX means: The version number may be different.
Settings which are usually not preset were already made in the starter set. This
makes it easy to work with the device right away.
2-12
Installation
Libraries
Predefined
functions
A modern programming software to IEC 61131-3 should allow the
administration of self-created program modules. They only have to be created
once and can then be used as often as required. Administration in CoDeSys is
handled via libraries. Furthermore, a number of standard functions and
hardware-specific functions have been predefined. These libraries have to be
loaded if necessary. Standard libraries are automatically integrated.
File size
Each added library makes the project file bigger. Therefore no unnecessary
libraries should be added. At the beginning it may be difficult to judge which
library is necessary and which is not necessary. A hint is given by the name of
the library. If, for example the name is ifm_CR0020_V030002.lib, you will only
need the library if you work with the unit CR0020. As experience increases,
differentiation is getting easier. However, the file size is only critical with very
complex programs.
A consequence resulting from the keyword file size affects the program
modules created. It is unfavourable to combine them all in one library. If they
are separated it is easier to focus on those that are actually needed.
No menu
active
If no project is open, most menu items are not active which can be seen by the
grey colour.
To activate them a project has to be opened. This is done via the menu item
(you will find an overview of the buttons
'File' 'New'or the respective button
in the appendix, Æ page 5-1). The procedure was described above, Æ chapter
2.4. To be sure let us compare:
The top line then reads: 'CoDeSys - (Untitled)*'
The name can be assigned when saving the file.
Step by step
The menus are context sensitive. In other words: the window 'Library
manager' only opens (of course!) when a project is open. Here it becomes
clear what is meant by "step by step" in the instructions. Those who are not
familiar with the system should strictly follow the instructions. As experience
increases more interim steps can be skipped.
CR2500 as an
example
Below we will show how to prepare a project for the controller CR2500 as an
example.
Entries
The menu items 'Window' 'Library Manager' open a window in which no
standard entries can be seen on the top left.
We see the standard.lib and some CAN libraries which are linked
automaticallay. Again CAN is not the subject now.
R
2-13
Settings
Figure 19: Library Manager with standard.lib
A glance at the library manager shows what kind of module it is. This also
explains the name of the library.
Help
If during program creation you are not sure which module is needed or what
the inputs and outputs mean you have the possibility to call help via Help in the
toolbar. There you will find detailed descriptions and examples. Often it is faster
and easier to call the library manager and to mark the respective module there.
Then you can often find the information you are looking for in the declaration
part (ÆFigure 22 top right). This applies in particular to the device-specific
libraries (Æ Figure 22). The help would be much too extensive if all devicespecific modules were explained there. A glance at the library manager can
save leafing through the manual.
More entries can be made via 'Insert' 'Additional library'.
Figure 20: Additional Library
The available libraries are shown on a mouse click.
2-14
Installation
Figure 21: Selection of Libraries
There are device-specific libraries which are in the corresponding subdirectory,
e.g. ifm_CR0020 together with other configuration data files. In addition there
are mostly device-independent libraries which are needed for the operation of
CAN networks, for example.
Library
The directory structure must be observed!
In CoDeSys V2.3 there is also a directory
'Library'. It includes general libraries of 3S but
not the ifm libraries!
Now a library is added as an example. As before reference is made to CR2500.
After adding the library manager looks like this:
Figure 22: Library Manager 2
Right now the PWM100 module is open. It is used to activate PWM outputs
(PWM = Pulse widths modulation, e.g. on proportional valves).
R
2-15
Settings
We are not done yet! Programming not only requires the library files but also
e.g. the operating system or predefined system variables. It is therefore not
sufficient to only insert the libraries in the manager. In addition the settings
have to be verified and possibly adapted during PLC configuration.
PLC configuration
CR2500
Here again we refer to the device CR2500. As mentioned above, the respective
settings have already been made in the starter set so that we do not have to
worry about them. For a new project for the starter set the library
ifm_CR2500_VXXXXXX is added again. Since the features of the hardware
versions are fixed, various variables have also been declared in advance.
Declarations
As is the case with each efficient software, variables are also declared in
CoDeSys. Declarations, presentation, notations etc. are described in detail in
the manual for the program development. In our manual we will describe this
process briefly in the individual steps (Æe.g. page 3-44).
Below we will describe the hardware configuration in brief.
You click on the 'Resources' tab in the
navigation bar and double click on 'PLC
Configuration' (then you can also check
if the libraries have been integrated). At
first the respective window is empty. The
selection
screen
indicates
_not_found:(Figure 24).
Figure 23: Navigation Bar Resources
2-16
Installation
Figure 24: PLC Configuration Empty
If the PLC configuration had been loaded directly together with the target
settings, it would be difficult to work with different versions. Therefore the
hardware configuration is entered “manually”.
To ensure that the next step is successful it is absolutely necessary to enter the
path to the configuration data files in the 'Directories' option, Æ Figure 18.
Then the 'Extras' menu is opened and there you click on 'Standard
configuration'.
Figure 25: Standard Configuration
A question is displayed:
Figure 26: Hardware Configuration
After acknowledgement with 'Yes' the display should change now:
R
2-17
Settings
Figure 27: PLC Configuration
If you now click on '+' next to CR0020 and then double click on '+' next to
'Inputs/Outputs' you can see the precision with which the hardware is
represented in the PLC configuration.
Figure 28: PLC Configuration Open
Variables can be declared very easily (as global).
Figure 29: Inputs for the Declaration
In Figure 29 above is shown that a double-click on 'I00' opens a field into which
a variable name can be entered. In the part below the figure a comment has
been entered.
We have already activated the CAN functions in the target system settings.
Then the system expects that a CAN node exists. To do so we will append a
2-18
Installation
subelement. Right-click on the configuration (Figure 27). Select the CANopen
master in "Append Subelement". This facilitates working with CAN. Now this
appendix need not be considered.
Figure 30: Append Subelement
Figure 31: Subelement appended
Ready!
Preparations are now finished and the work can start!
Now the actual programming can start. For those who find it a little hard at first
to go through the work steps at the beginning of a new project correctly and
completely, the procedure is summarised in the appendix, page 5-7, once again
without any detailed explanation as above.
Master
For those who process new projects quite often it is worthwhile to save the
project as Master_CR2500_V040001, for example. The name says what it is.
Working with a master is facilitated by the menu item 'File' 'New from
master...'. This opens any project with the name '(Untitled)*'. The * indicates
that the project has not been saved yet. The new name is assigned when the
file is saved. The menu item can, of course, also be used to create a new
version of a completed project. You will get the same result as before with 'File'
'Save as...', see page 3-29.
R
2-19
3.
The start
This chapter is a kind of "introductory course for CoDeSys". You will get to know
the operation and the handling of the program, i.e. you will get a brief insight
into almost every function of CoDeSys.
The most important part of this introductory course is the complete creation of a
program example directly on your PC.
3.1.
Basics and concepts
What is
CoDeSys?
CoDeSys is a complete development environment for the ecomatmobile
system.
CoDeSys is an easy-to-handle tool for creating control programs to IEC-611313.
What is IEC61131-3?
IEC-61131-3 is an international standard for the creation of PLC programs. It is
important to know that only the programming language has been standardised,
not the programming surface (window structure, presentation of values in the
online mode, data saving, etc.). The programming languages of CoDeSys meet
this standard.
What is a
project?
In CoDeSys a project is the combination of components. These components
solve a given control task (e.g. sequential control of a device, signal preprocessing for a part of a plant, ...).
Which are the
main
components of
a CoDeSys
project?
The main components of a CoDeSys project are:
What
programming
languages are
available?
CoDeSys supports the following programming languages:
- POUs (executable program)
- structures (data organisation)
- visualisations
- LD
(ladder diagram)
- IL
(instruction list)
- FBD (function block diagram)
- SFC (sequential function chart )
- ST
(structured text)
- CFC (graphical function block diagram)
R
3-1
Basics and concepts
How is a
project
defined?
The definition of a project includes:
●
The hardware configuration
- definition of inputs and outputs
●
The creation of components
POUs
- structures
- visualisations
How do I test
my project?
The true test of a project is the commissioning of the actual system. On the
other hand, the simulation mode of CoDeSys has proven to be a very valuable
possibility for testing the program.
What is the
simulation
mode?
The simulation mode simulates the program run of the controller in the PC.
This type of test without using the control system or the plant enables the
elimination of errors at the desk, thus saving time and nerves. This effect can
be enhanced by displaying the simulated plant by means of corresponding
visualisation screens.
The use of the simulation in conjunction with the versatile debug functions
(troubleshooting functions) in CoDeSys allows a simple and efficient complete
program test.
Which debug
functions does
CoDeSys
have?
CoDeSys includes the following debug functions:
●
Forcing (writing) of I/Os and variables
●
Definition of watch windows for data presentation
●
Setting of breakpoints in the simulation mode (stop of the program run)
●
Execution of programs
- as single scan
- from breakpoint to breakpoint in the simulation mode
●
Sampling Trace (diagram of variables as a function of time)
And the
documentation
?
The complete project can be documented at any time in whole or in parts or
can be exported into a text file.
Conclusion
This overview shows that CoDeSys as a complete development environment
for your ecomat controller exceeds the functions of a common programming
surface. Let's take a small project to show that we are not promising too much.
3-2
The start
3.2.
A small ecolog CoDeSys project as a start
Description
This chapter will describe a short project demonstrating the basic steps in
CoDeSys. The processes are more or less described like a "recipe".
Task
A lamp C is to be ON when two switches A and B are closed. This really simple
system can be shown as in Figure 32.
Figure 32: Problem
CoDeSys is now to
●
implement and
●
visualise this system.
The first step
The first steps usually are as follows:
●
Start CoDeSys
●
Open an existing project or start a new one
●
For a new project: Integrate search path (directories), libraries and
hardware configuration
Starting a new
project
To start a new project select option 'File' 'New' or alternatively click on the
button . This step was already described in 2.4, page 2-7.
Target system
and PLC_PRG
Usually a new object is added via the menu.
The main POU PLC_PRG is of particular importance. For a new project
PLC_PRG should always be added after parameter setting of the target system
as the next step. Therefore the windows 'Target system settings' and then
'New POU' with the preset PLC_PRG open automatically when a new project is
started. FBD is already set as the language.
The setting of the target system is not to be shown here once again. Those who
find it difficult should study pages 2-7 et seqq. Below we will describe
PLC_PRG in more detail.
R
3-3
A small ecolog CoDeSys project as a start
As shown in Figure 15 and then again in Figure 33
●
the object is to get the name PLC_PRG ,
●
the type is to be program and the
●
language is to be FBD.
Check if all these points
correspond
●
Name: PLC_PRG
●
Type: Program
●
Language: FBD
Figure 33: PLC_PRG as FBD
FBD
FBD was chosen because it is the language most frequently used.
After clicking on
a presentation similar to Figure 34 is displayed.
Figure 34: PLC_PRG Window
We have now added the module PLC_PRG to the project. PLC_PRG is
executed cyclically and activates the modules (programs, functions, function
blocks; for details see below) called there.
Please observe the following very important instructions:
All projects must have one and only one PLC_PRG.
All modules to be directly activated via PLC_PRG, must be activated here,
otherwise they will not be executed!
3-4
The start
Point 1 has already been described. To illustrate point 2 we want to add a
second program to the project and activate it with PLC_PRG to ensure its
cyclical execution.
Settings
If you have not yet done so, work through the sections on pages 2-11 to 2-19.
Add Program
Adding an
P_AND
Add a program with the name P_AND to the project with menu item 'Project'
'Object' 'Add... ' (Figure 35).
The name must not be AND, Æ for details about the term 'key words' see page
3-6.
Figure 35: Project Add Object
A window similar to Figure 36 should show.
R
3-5
A small ecolog CoDeSys project as a start
Figure 36: Window POU P_AND
Defining variables
In the context of programming, the definition of the characteristics of a variable
is called a declaration. Variables can be displayed as a table or a text. Below
we will describe the text options.The selection “Declarations as text” is the
default setting. It can be changed in 'Project' 'Options' 'Editor' if requested.
Defining
variables (text
form)
Key word
The new variables A and B are to be defined as binary, i.e. boolean. To do so,
we proceed as follows:
●
Move the cursor to the end of line 0002 and press the Enter key (Figure
37).
●
A new empty line has been added as line 0003.
●
Enter the definition as in Figure 38.
BOOL is a so-called key word. Its meaning is predefined. For example, it
cannot be used as a name for a variable. Since CoDeSys knows the key words,
the programmer is supported during entry. The notation, whether small or
capital letters, is not important. After entering the text is checked and
recognised key words are automatically represented correctly and highlighted in
colour, Æ Figure 38.
Move the cursor to the end of line
0002 and press 'ENTER'. A blank line
0003 shows.
You can enlarge the upper part of the
window by pulling down the
separating line with the mouse.
Figure 37: Declarations as Text
3-6
The start
Do not forget the semicolon
at the end of the line!
Figure 38: Declaration Entered
There is an alternative to the declaration which will be shown shortly (Figure
48).
Add ‘AND’operation
Network 0001 with
dotted rectangle as
cursor
Figure 39: Add box
Mouse click on the first network (grey field with the number 0001 in the bottom
part of the window) as shown in figure 41. The form of the cursor, here shown
as a dotted rectangle, can be changed, if requested, via 'Project' 'Options'
'Editor' ‘Mark'.
Now add the 'AND'
●
by clicking on
●
by activating 'Insert' 'Box’ (Æ Figure 40)
(Box) in the symbol bar or
Figure 40: Menu Add Box
Independent of the method you use, an AND box should now be added to
network 0001 (Figure 41).
R
3-7
A small ecolog CoDeSys project as a start
If windows with such a coloured
background appear on the
screen, remember F2!
Figure 41: Inserted Operator
F2: The key
Here we want to point out a possibility to help you program more efficiently and
avoid typing errors at the same time: the <F2> key. When working with
CoDeSys you often reach points requesting a selection between several input
possibilities.
You can see an example in Figure 41. CoDeSys has entered an AND operator
here as default setting. The field with the coloured background (Windows
standard setting is blue) signals such an option. Press <F2> to open a selection
screen. Try it, and you will get a list of operators that can be used here or other
boxes. You can select the requested operator by means of a double-click. This
option saves a lot of typing and prevents typing errors! In our case the default
setting AND is okay and you should close this selection screen by pressing
(Figure 42).
Move the bar to the
requested operator and
select it with double
click or 'OK'.
Figure 42: Input assistant
Forgotten the
settings
3-8
A common mistake in the early stages is to open a new project and to forget the
libraries and the hardware configuration (pages 2-13 and 2-16) in the heat of
the work. You will become aware of it when you use the Input assistant for a
particular function block, for example. If you do not find it the reason why is that
you probably have not linked any hardware-specific library, for example.
The start
Operands
Add the operands A and B as inputs of the AND operator by replacing ???,
Æ Figure 43. You can also use <F2>, Æ Figure 44.
Figure 43: Highlighted Input Field
Figure 44: Input assistant for Variables
Figure 45 shows the result.
Figure 45: Add Operand
The result of the operation has to be assigned to an operand. This is, for
example, done by clicking on
(Æ Figure 46):
A click to the right of the AND operator symbol generates a cursor (dotted
rectangle) as shown in Figure 45.
R
3-9
A small ecolog CoDeSys project as a start
Position of the
cursor
Here the editor is not very flexible. It happens again and again that you want to
add an element which the editor refuses, however. In most cases the reason
why is that the cursor is not in the right position. This is meant to prevent
incorrect entries. You will usually find the right position of the cursor by trial and
error.
Click on the IM - R icon and replace
??? with C (overwriting)
Figure 46: Add Operand
Figure 47: Operand Added
When you leave the input field (e.g. by simply clicking into the "free space") the
system finds that variable C has not yet been defined and automatically opens a
window for the variable declaration (Figure 48).
Figure 48: Window Declare Variable
The entries in this window can be changed individually. In this case they are
exact. A comment should be added.
You should make it a matter of habit to add many comments. This is taking
some time at the moment. However, you will save a lot of time for
troubleshooting or modification of the program.
After entering the comment you can acknowledge by clicking on
. The
variable declaration is now entered in the top part of our module window.
3-10
The start
Figure 49: Declared Variables
A and B could have been defined in the same simple and comfortable way. We
just wanted to demonstrate the different selection possibilities for declarations.
In Figure 49 you can also see the syntax for entering comments. They can, of
course, also be subsequently added or modified.
Should the variable declaration window not open, the 'Autodeclararation'
option in 'Project' 'Options' 'Editor' has to be activated.
Figure 50: Autodeclaration
R
3-11
A small ecolog CoDeSys project as a start
Local
In the fields class and type the default settings were simply adopted. We just
want to point out that the variables in the example were declared locally. That
means that the declaration only applies to the POU in which it is located, here in
the program And. If a variable, e.g. an input, is to be used in several POUs it is
easier to declare it as a global variable. Using the selection field type helps to
avoid invalid declarations. During declaration the 'Autodeclaration' option also
helps to prevent syntax errors which may cause confusing error messages in
compilation, especially at the beginning.
This completes our little POU.
Activating
P_AND in
PLC_PRG
The program P_AND is to be activated in PLC_PRG. For this purpose activate
the window of PLC_PRG (Figure 51) and call menu item 'Insert' 'Box'(Figure
52).
Box
1. Open
PLC_PRG by
double
clicking
2. Enter the
program call
Figure 51: Enter program call in PLC_PRG
At first the default box, the AND operator, is added. By clicking on F2 the Input
assistant opens. Select the 'User defined Programs' option on the left (Figure
in the box on the right. You activate P_AND
52) . Then select AND and
in network 0001 of PLC_PRG.
3-12
The start
Figure 52: Added POU
And all this just
for an AND?
Of course, an AND operation can also be directly inserted in PLC_PRG. We
have selected the way of activating the subroutine in PLC_PRG for an
important reason. We wanted to demonstrate that all POUs (in this case POU
P_AND) to be activated directly via PLC_PRG need to be listed there. It is
therefore not enough to just create the POU.
The POUs of a project are not activated automatically. They must be directly or
indirectly activated by the PLC_PRG POU.
Only the PLC_PRG POU is automatically processed cyclically. That is why all
other POUs have to be activated directly or indirectly by PLC_PRG.
It is not sufficient for the execution of a module that it is entered in the POU list
of the project!.
Saving
At first, it will take some time for you to achieve this result. Later you will be able
to program an easy link very fast.
In each case it should become normal to save the result after each work step.
This can be done e.g. via 'File' 'Save' or
:
R
3-13
A small ecolog CoDeSys project as a start
Figure 53: Save File
When the project is saved for the first time, the window 'Save file as:...' opens
automatically.
Figure 54: Save File as...
The directory Projects also opens (default). The file is now stored here. At the
beginning it is clearer to save the files here in the default directory. For many
projects it makes sense to create a subdirectory for each project (in Projects).
Other languages
And what about
the other
languages?
At this point it would go too far to explain the other languages in more detail.
Still, we want to show you our little program example in Instruction List, in
Structured Text and in Ladder Diagram (Figure 55).
Figure 55: Examples in Other Languages
The CD contains further program examples giving an overview of the individual
programming languages. They are described in detail in the manual for the
CoDeSys program development saved on the CD as PDF file.
3-14
The start
What have we
achieved so
far?
So far we have written two programs (PLC_PRG and P_AND). The subroutine
P_AND was entered in PLC_PRG so that P_AND is now also activated by
PLC_PRG.
Program test
How do we
continue?
Our project has now reached a stage where we can test if it meets our
expectations. The first program test is normally carried out as follows.
'Online'
'Simulation
Mode'
Select the option 'Online' and make sure that the simulation mode is active.
This is the case when you see a tick (√) before Simulation. Should that not be
the case, click on 'Simulation Mode' (Figure 56).
Figure 56: Simulation Mode
'Online' 'Login'
Selecting the option 'Online' 'Login' ( Æ Figure 56) or clicking on
compiles
the project. If a syntax error is detected, CoDeSys will give you a message in
the Messages window and will refuse login. We cannot explain all possible
syntax errors in this place. Double clicking on the error message automatically
takes you to the faulty line. You can scroll from one error message to the next
by pressing the F4 key.
Let's assume that the program contains no errors or that all errors have been
corrected. In both cases the system should have logged in correctly.
'Online' 'Start'
Activate the program by 'Online' 'Start' (Æ Figure 56) or press the F5 key or
click on . The status line (shown below in the program window) should now
show
.
R
3-15
A small ecolog CoDeSys project as a start
Display the P_And program on the monitor (double click on the program name
in the POU list on the left in the program window). The program window should
look like Figure 57.
ONLINE, SIM and RUN
must now be active.
Figure 57: Program Active
If the status line cannot to be seen at all, activate it via the option 'Project'
'Options' 'Operating range'. Just click to activate the tick √.
Change
variable values
As shown in Figure 57 the values of the three variables A , B and C are FALSE
(OFF). By means of the option 'Online' 'Write Values' the values can be
changed as follows:
Double click on FALSE at A and B and TRUE appears as shown in Figure 58.
This figure shows that the changes are not yet active! They have to be sent to
the (simulated) controller first.
3-16
The start
Figure 58: Change Values
This is done with option 'Online' 'Write Values' (Figure 59) or alternatively with
the key combination <Ctrl.> + <F7>. The values of the variables A and B are
now TRUE (= ON). This causes variable C to change from FALSE to TRUE (the
colour in the bottom part of the window changes to blue) as a result of the And
link (Æ Figure 60).
The colour changes may be difficult to see on the (monochrome) printout of this
manual. This shows that going through this manual does not replace the
practical work with the controller. It is only meant to support you. You will get
most benefit by putting the example in practice and trying own ideas.
Figure 59: Write Values
You can test other combinations of A and B in the same way, e.g. Figure 60.
R
3-17
A small ecolog CoDeSys project as a start
Figure 60: Vary Values
You should make it a matter of habit to use 'Write Values', if possible. The
menu item 'Force Values' may be dangerous in practical use, Æ Pages 3-18
and 4-9!
If you like to work using the keys you had better use <Ctrl><F7> instead of
simply <F7>!
Those who want to know more about the difference should study the following
paragraph.
Forcing
Example
Besides the "manual" preset of input states, e.g. on the simulator box (Æ 3.3), it
is also possible to force the states in the controller. This means that e.g. the
state of an input is defined without any consideration of the actual state. When
playing with the software without any inputs and outputs connected there is,
however, no difference to the off-line program test in the simulation mode. In
practice this function is more useful to the skilled user for debugging. The user
should be skilled because forcing might start unintended processes when the
controller is connected to the peripheral equipment. If you use this function you
should know exactly the kind of damage that might be caused by a possible
avoidance of safety scans in the program.
When a new program or a new machine construction is tested, it is possible that
a drive stops in an interim position without the end position having been
reached. Then the drive has to be driven to the end position "manually". When
the limit switch is used as a condition in a program module to stop the drive, the
output for the drive can be set to TRUE using 'Write Values'. As soon as the
limit switch has been reached, the drive is stopped by the program. Here the
program is of higher priority (Æ also page 4-9). E.g.:
If 'Force Values' is used, the drive will no longer be stopped by the limit switch.
This means that forcing the outputs should be avoided, if possible. It is only for
inputs that forcing cannot be avoided.
3-18
The start
Visualisation
Now that we have tested the function of the system let's move on to
visualisation which will be explained below.
Safety
Visualisation with CoDeSys has to be done offline. To be on the safe side you
should try to remember to stop program processing by
before logging out.
Then log out CoDeSys by activating the option 'Online' 'Logout' or by clicking
on .
The moment the program has not yet been completed, maybe even still
contains errors, dangerous situations may arise. The controller could start e.g.
unintended and unexpected processes, drives, movements, etc. if locking has
not or not yet been programmed correctly.
Select
'Visualisations' and
'Project' 'Object'
'Add...'
Figure 61: Add Visualisation
Do not forget to activate the register card by clicking on the 'Visualisations'
index tab, Æ Figure 61. Now the step described below can be executed. The
menus are context sensitive!
Add new
visualisation
screen
Upon activating the option 'Project' 'Object' 'Add...' you will be asked to
indicate the name of the new visualisation screen (Figure 62). We have chosen
the name AndVis. Once the name has been entered a new empty visualisation
screen appears (Æ Figure 63).
R
3-19
A small ecolog CoDeSys project as a start
Figure 62: Name Visualisation
Figure 63: Visualisation Start Window
Grid
At first a grid is displayed in the default setting. If you do not need it, you can
eliminate it in 'Extras' 'Settings...' .
Drawing a
picture
Eighteen different types of elements can be drawn and animated with the
visualisation. First, we will use the rectangle. The other elements are created
and animated in the same way.
Activate the option 'Insert' 'Rectangle' (Figure 64) or click on the button
draw a rectangle by
●
placing the cursor on the empty screen
●
pressing the left mouse key and keeping it pressed
●
pulling the mouse to the bottom right until a rectangle of the required size
appears
●
releasing the mouse key.
The result should be similar to Figure 65.
3-20
and
The start
Figure 64: Visualisation Insert Object
Figure 65: Inserted Rectangle
Context
To establish a context between picture element and module variable you need
to define a context between (visualisation) action and (variable) value.
These entries are made in the screen 'Regular Element Configuration'. For
entering variables <F2> can be used again. But first, the project needs to be
rebuilt in order to generate the variable list. For this purpose, call option
'Project' 'Rebuild all'. In this case, however, it is not necessary since we were
logged in before (page 3-16 and the project is rebuilt automatically after login.
Configuring
element
A double click on your new rectangle opens the window for the configuration of
picture elements in the visualisation (Figure 66). For each category there are
input fields describing the picture element. It is not necessary to make an entry
for each field. First select the category Variables.
R
3-21
A small ecolog CoDeSys project as a start
Figure 66: Variable Configuration
To change the colour of the picture element (in this case the rectangle) move
the cursor to the field next to Change color: and press <F2> to open a screen
for selecting variables (Figure 67). A double click on the P_AND module
generates a list of the defined variables (Figure 68). Another double click on
variable A generates a correct variable entry in the field Change color: in the
Regular Element Configuration window. The assignment is now complete.
Here you can select different global
variables of the project
Double click on '+' next to 'P_And ' to
open a list of the defined variables
Figure 67: List of Variables
3-22
The start
Figure 68: Variables of the POU
F2
The Input assistant is particularly helpful in this context because it often
happens that only A instead of P_And.A is entered. Then you will not get the
result described further below, however. In this context we would like to remind
you that A, for example, is a local variable. P_And.A means the variable A in
the POU P_And. The assignment is thus clear.
Interaction
Interaction between the user and the variables of the system is to happen via a
mouse click on the picture element. The state (TRUE/FALSE) of the assigned
variable is to be changed and displayed accordingly (the so-called toggling, see
Æ Figure 69).
Change color
The status of the variables is indicated by the colour of the picture element. This
happens after the following assignment between picture element and variable
value has been made:
Activate
interaction
color
→
alarm color
→ variable TRUE
variable FALSE
Click on the category Input:
To allow the user to change the variable value, click on Toggle variable in the
category Input and enter again P_And.A.
R
3-23
A small ecolog CoDeSys project as a start
Figure 69: Input Toggle Variable
Colour
Select the screen 'Regular Element Configuration' and click on 'Colors'.
Figure 70: Regular Element Configuration Color
Click on
to open the colour selection screen in the category
Colors Figure 71. Select a colour by clicking and confirm with
. As this is
the colour for the FALSE state of the variable, we have selected grey for our
example.
Repeat this process for
and, if requested, for the frame of the
. We have selected the colour green for the Alarm Colour
element
Inside (TRUE state). However, as is usually the case with colours, this is, of
course, always a matter of taste and discussion!
3-24
The start
Figure 71. Color Selection
Text
To give our rectangle a name, enter the letter A in the category Text. This
designation is entered in the centre of the element.
The window 'Regular Element Configuration' should now look like Figure 72.
.
If this is the case, close by pressing
Figure 72: Regular Element Configuration: Text
R
3-25
A small ecolog CoDeSys project as a start
Variable B (a
simple copy)
We now want to create another picture element for variable B that should look
like the one for variable A. The option Copy/Paste will be helpful. To do so:
●
Click on element A
●
Click on
→ A copy of the element (with settings) is made (in the clipboard).
●
Click on
→ The copy is inserted in the picture above the original.
Move the cursor to the new element A, press the left mouse key, drag the
element to the requested position and release the mouse key (Æ Figure 73
and Figure 74).
When element A is marked,
click on the Copy icon and
then on the Paste icon. Then
click on the copy and drag it
to the new position.
Figure 73: Copy Element
Double click to set the
new configuration
Figure 74: Element Pasted and Dragged
Now configure the second element:
●
call up the element configuration with a double click,
●
replace A with B for variables, input and text and
●
acknowledge the entry with
.
The element for variable B has been successfully added.
3-26
The start
Variable C
Copy the element of variable A again for the presentation of variable C. Change
the configuration of the new element as follows:
Shape
: ellipse
Input
: no input
Color/Alarm Color/Inside
: red
Variables/Change color
: P_AND.C
Text
:C
The display of the elements has been slightly changed as compared to A and B
to make clear that they are different variables (inputs and outputs).
An entry in the entry field does not make sense here because the presentation
of the variables (of the output) is controlled by the program.
It is an interesting option to control an output "manually" for test or maintenance
purposes, i.e. via visualisation. However, this has to be taken into account to
reliably avoid conflicts, Æ Figure 130.
Whichever way you have taken - the configuration window should look like
Figure 75.
Figure 75: Configuration Element C
The visualisation window should at least resemble Figure 76 (artistic license
granted).
R
3-27
A small ecolog CoDeSys project as a start
Figure 76: Finished Visualisation
Working with
the
visualisation
We can now test the newly created visualisation picture. Log in CoDeSys and
start the program. Proceed as described before. The following points will serve
as a reminder:
●
'Online' 'Simulation' ('√' shows that the simulation is active)
●
‘Online’ ‘Login'
●
‘Online’ ‘Start'
First click on rectangle A in the visualisation, then on rectangle B. The colours
of the two rectangles should change to green (or to another colour, should you
have used your artistic licence). The green colour shows that the variables now
have the state TRUE in the program.
If you now watch the colour of the ellipse of variable C, you will see the result of
the programmed link – the colour of the element changes to red (or to what your
artistic license has defined). The red colour corresponds to the value TRUE of
variable C as a result of the AND operation (C:=A AND B).
By clicking on the rectangles you can set the different plant states and watch
the reaction of the program (Æ Figure 77 and Figure 78).
3-28
The start
Figure 77: Visualisation State 1
Figure 78: Visualisation State 2
And now Save
To save your project, use the option 'File' 'Save as...' (Æ Figure 53).
Figure 79: Window Save As...
Here you enter the name of the project in the field for the file name as is
common in Windows. The file name must have the extension .pro, so replace ' '
*
by e.g. EasyandV01 and acknowledge with
.
R
3-29
A small ecolog CoDeSys project as a start
When the correct option is activated ('Project' 'Options' 'Ask for Project Info')
is activated, a dialogue box for project information is shown automatically before
saving (Figure 80).
Figure 80: Project Information
You can fill it in (or leave it).
We strongly recommend to make abundant use of the various possibilities to
document the project.
Your complete project including the visualisation is now saved in the file
Easyand.pro!
A simple ‘Save' instead of ‘Save as...' would have been sufficient. We have
described the process in detail in case that, in the heat of the work, you have
forgotten to save before (see Figure 53).
But now it's time for a break and we will leave the programming system for the
time being.
For this purpose stop the program ('Online' 'Stop') (Æ page 3-19, then log out
('Online' 'Logout'). Then use the option 'File' 'Exit' or the key combination
<ALT>+<F4 to close the CoDeSys program.
We hope that this quick introduction has given you a little overview of CoDeSys
making you curious to find out more about the other possibilities of the system.
The following chapters will consolidate your knowledge and very quickly turn
you into a CoDeSys expert!
3-30
The start
3.3.
Online test
We now want to load the same program into the controller and test it there.
Preparations
Simulator
We will now work with the physical hardware. You will need to define the input
states and watch the reaction of the outputs. That is what we use the EC 2014
simulator for. It can be used directly for testing simple program functions. A
different simulator box is used for the starter set.
Starter set
When working with the starter set the following section can be skipped.
Familiarise yourself with the accessories of the simulator. It consists of:
EC 2022
a digital box with 6 switches to simulate digital inputs (two pieces).
EC 2023
an analogue box with 6 pots to simulate analogue inputs.
EC 2014
the actual simulator. The plug on its cable is a special version. An additional
socket is brought out of it which permits the connection of another CAN
component.
Adapter RS 232
an adapter, e.g. to connect the PC.
Adapter
We do not need the second adapter right now.
To be connected to the simulator (Æ also the installation instructions of the
simulator supplied):
●
Supply voltage
The 24 V power supply is to be ordered separately. It is to be connected to the
terminals of the multi-way connector strip marked VBB and GND.
●
Controller ecomatmobile R360, CR0020
The connecting cable is firmly connected with the simulator. On the controller
side it has a 55-pin connector used in mobile controllers to ensure the high
protection rating.
●
Control box
To test easy program functions it is sufficient to connect the control box
designated 0 - 5 to the socket designated 00 - 05. In addition to another control
box an analogue box to simulate analogue input signals is also supplied with
the simulator. It can only be connected to the first socket. Therefore it is left
unassigned, the control box is connected to 08 -13.
●
PC
The connection is made via the supplied cable. It has a 9-pole socket on the
side of the PC. If the PC has COM2 as a 25-pole connector, an additional
adapter is required. It has a multi-way connector strip on the side of the
simulator. The corresponding location on the simulator is marked RS 232/RxD
R
3-31
Online test
and RS 232/TxD. Above it there is the marking CANH and CAN L to point out
that the CAN bus can be connected to the unassigned terminals.
A power supply is integrated in the control panel used during the trainings. As
long as you work with the simulator, the supply voltage can be taken via the
CAN connection because the supply voltage is on the same potential in the
whole (simulator) system.
Operating system
In principle, the steps for loading the operating system must be executed only
once. When the system is delivered, no operating system is stored in the
controller. It must be loaded only once. The procedure must only be repeated
(again only once) when a new version of the operating system is required. This
shows how flexible the control system is. For a PC for example the installation
of a new BIOS required the exchange of an EPROM. This was only successful
if hardware compatibility was checked thoroughly. This has only changed for the
current version. For the ecomat R360 only the software has had to be loaded.
For the controller in the starter kit the operating system (and the first test
program) has already been loaded.
If you have to load another operating system version or if you want to load an
operating system into a new controller, use the program downloader. This
program is on the CD "Software, tools and documentation" and can be installed
via the installation platform. Here you will also find the description of the
downloader, Æ 2.2.
If you have not prepared this step, the downloader will now have to be installed.
Start set-up as described in 2.2, Figure 4 to Figure 6. By clicking 'ecolog
downloader' , Figure 81 will take the place of Figure 6.
3-32
The start
Figure 81: Downloader Setup
For detailed information see the 'Description' tab.
Continue
After successful installation the downloader can be started.
Figure 82: Downloader Start
A first test of the correct communication is clicking on 'Get Identity'.
R
3-33
Online test
Figure 83: Get Identity
If there is already an operating system on the controller, its version number is
displayed. This ensures that the communication works reliably.
Load Operating
System (hex
file)
Click on Open File and change to the directory C:\Program Files\ifm
electronic\CoDeSys V2.3\Targets\ifm\Library\ifm_CR0020. Mark the file
ifm_CR2500_V040001.H86 found there.
Figure 84: Open Downloader File
After clicking on Open the name of the file is shown in the title line.
Figure 85: Downloader with Open File
Now the operating system can be loaded.
3-34
The start
If you want to continue working right away, skip the following short overview of
the downloader.
Downloader
For detailed information about the downloader see ‘Documentation’ on the CD.
Using the downloader ensures, e.g.:
- to load the operating system in the controller (which happens in the next step)
- to read the program file from the controller
- to write the previously read program file into a new controller
- to save data from the controller
To be more precise, the program file is read as a hex file. This depends on the
fact that the entire file for the project, the source file, with visualisation,
assignments, declarations, comments, etc. is stored on the hard disk of the PC.
The compiled program file is then loaded into the controller as a hex file. After
reading, this file can virtually not be edited. Reading would make sense, e.g., if
you want to transfer a program from one controller to another and the source
file is not accessible. The other functions are self-explanatory.
To save a program file only use the Downloader tool, not the items 'Write file
into controller' and 'Load file from controller' in the 'Online' menu of
CoDeSys.
We will show you briefly how to load the operating system. Here it would not be
necessary because one system has already been loaded.
The file needed has been opened in the downloader. The only thing that
remains to be done is to click 'Load into controller' (Figure 85) and to wait
until the process is completed.
Interface
If you receive an error message while the connection between the PC and the
controller is being established, (Figure 86 or Figure 83 instead), you should
check if:
- the controller is switched on or
- the correct interface is set up.
E.g.:
Figure 86: Transmission Error
Click on Interface parameter in the menu bar (Figure 85).
R
3-35
Online test
Figure 87: Downloader Interface Parameter
In this case the COM port is set to Com2. Change this setting or the 'Bits per
Second' as required. The other settings are usually not changed.
The downloader is a powerful tool which, however, requires more experience
and background knowledge to make full use of its possibilities.
Figure 88: Interrupt Closed Loop by Boot Command
In this context we do not want to describe all possibilities but only give an
important example. It is possible that the controller gets into an uncertain state.
This hardly ever happens in standard operation but e.g. if a fault occurs while
the program is being loaded. The proven measure of resetting, switching off and
switching on again can help. If necessary, the operating system will have to be
loaded again. In any case the connection to the controller can be made. If,
however, a closed loop caused by a fault in the program occurs, this case is
more critical. This can also happen to an experienced programmer, if for
example a forward skip turns into a backward skip when networks are shifted in
the FBD. In this case a reset will not help because the program gets into the
loop again after restart. The relevant function of the downloader will solve this
problem (Figure 88).
Then another reset has to be made, e.g. by switching the operating voltage of
the controller off and on. A few seconds should be waited in between.
Now the usual process of programming should be continued. The downloader is
terminated and we will return to CoDeSys.
3-36
The start
Online program test
In the following text we will start to gradually leave out the description of the
intermediate steps. When working with CoDeSys a lot will (hopefully) become
routine. You can focus on the important points, the process to be controlled, and
it will not take a long time to find what you need in the menu items. However,
should a problem come up you can find the solution in the step-by-step
instructions above.
It is clear that the first step is to start CoDeSys again.
Copy project
Of course, we have to modify the first project EasyAnd for the online test. For
this purpose we will first create a copy with the name ANDOL with 'Save as...'
as described above.
Login
First of all the connection to the controller is established via 'Online' 'Login' or
('Simulation Mode' off!). If this does not work more settings will have to be
made.
The following message may be displayed:
Figure 89: Error Message during Login
Setting of the interface parameters of the downloader Æ Figure 87 only refers to
the downloader. Once the connection with the downloader has been
established, the same parameters have to be set here in CoDeSys.
Press
for acknowledgement and click on 'Online' 'Communication
Parameters'. The following window will be displayed:
R
3-37
Online test
Figure 90: Communication Parameters 1
The serial interface has not yet been activated. To do so, click on
Another window will open:
.
Figure 91: Gateway 1
Here you click on the arrow symbol
next to Tcp/Ip.
Figure 92: Gateway 2
Select 'Local' in the opened list and acknowledge with
Now,
Figure 90.
3-38
.
can be clicked on in the Communication Parameters window
The start
Figure 93: Communication Parameters 2
For example, the name "serial1" is entered here and the respective entry is
marked. After acknowledgment with the new channel has been entered.
Figure 94: Communication Parameters 3
A comparison with Figure 87 shows that the baud rates do not correspond.
Figure 95: Communication Parameters 4
A double click on the value activates the selection window. With each other
double click the value changes to the next permissible setting. So you will finally
get to the correct value.
Figure 96: Communication Parameters 5
R
3-39
Online test
If other error messages are displayed during log-in, it may help to increase the
baud rate. The advantage is that the program is loaded faster. It has to be noted
that it is not sufficient to increase the baud rate on the PC. The baud rate in the
controller must be adapted to these values. To do so, the downloader has to be
used, see Figure 87,
.
This setting procedure may seem to be somewhat complicated. However, it only
has to be followed once at the beginning.
Let us assume now that communication runs correctly.
After log-in you will get the message to download the program.
Figure 97: Message Download Program
Compilation is only started when the program has been changed. As you have
already started the Login function before, the program file for the controller is
already there and does not need to be generated again.
If no program had been loaded into the controller before, you will receive a
message that is slightly different from Figure 97. If, however, there is already a
program in the memory of the controller, it will be overwritten by the new one
and thus it is lost if the source program is no longer available.
Before overwriting the loaded program you can, if required, save it with the
independent downloader program (Æ page 3-35). You can, of course, only save
the program file of the controller, the source program is not saved in the
controller. The program file has been saved, but cannot be edited.
If you are not sure if a source file is available, a saving process should be
carried out. Otherwise the program in the controller will be overwritten and
cannot be restored without the source file.
The message can now be acknowledged with
Start program
When the program has been loaded in the controller, program processing has
to be started. The line at the bottom, the status line, reads (after starting):
Figure 98: Status line
When the program runs, it can be tested as before.
3-40
.
The start
Assignment
At first you cannot see any difference to the simulation mode. But the simulator
has not even been used yet! The state of the inputs does not influence the state
of the variables A, B and C! This would not be possible anyhow since no
assignment has been made. In our example it would make sense to assign A
and B to inputs and C to an output.
But how can the controller start processing the program without this
assignment? A, B and C were declared as BOOL. This is a declaration for bits
that are not assigned to any input or output. In a PLC such bits are a useful tool.
They are flags. That means that the program is only processed in the flag
range. It is also possible to assign a defined address to a flag. If this
assignment is not made by the programmer, it is done automatically by the
program. In many cases it is of no importance which flag address is used.
So the project still needs some modification before it can be tested with the
simulator.
Declarations
To demonstrate the process again, we will simply delete the declarations. The
common editing functions can be used: Mark and Delete. The new declarations
are entered automatically so that the blank lines can also be deleted.
Figure 99: Edit Declarations
Once again
If variable A is entered again in P_AND (PRG-FBD) of the AND function, the
declaration window will open again (if the Autodeclare option is active). A can
now be assigned to a physical address.
Figure 100: Declaration of an Input
Local or global? The class VAR is left unchanged. Thus the variable is declared to be local, as
stated above. If this input is used in several POUs, it may be easier to declare it
to be global (class VAR_GLOBAL). The advantage is that it only has to be
declared once. The disadvantage is that it does not appear on the list of
variables of the POU during the program test (Æ Figure 57). The separate
window Global Variables has to be opened. To do so, click on the Resources
tab in the navigation bar Æ Figure 23) and then the window opens by double
clicking on Global_Variables.
Below (or above)
opens:
R
3-41
Online test
Figure 101: Global Variables
For a correct assignment it is necessary to observe the correct spelling very
carefully. This will be briefly described below. Refer to the hardware
documentation to find out which addresses are available and which of them are
binary or analogue inputs or outputs.
Syntax of
declarations
%IX0.08
Mark for physical
address
Type
I: Input
Q: Output
M: Flag
depending on the
controller configuration
Length
X: 1 bit (BOOL)
B: 8 bits (BYTE)
W: 16 bits (WORD)
D: 32 bits (DOUBLE WORD)
Figure 102: Syntax of Declarations
The first input is assigned to address %IX0.08. Finish the input with
the other variables will be declared.
3-42
and
The start
Figure 103: Entered Declarations
AT
Note the key word AT which stands for the actual assignment.
The assignment of the inputs results from the location of the control box (Æ
labelling of the simulator). B and C are declared accordingly, C of course as an
output (%IX0.09 and %QX0.04).
The visualisation also needs to be adapted. Above the window Regular Element
Configuration was opened by double clicking the object designated A. In Input
the function Toggle Variable was selected. However, this does not make sense
any longer. It is the real states that are to be displayed. Therefore the tick is
removed in Input for A, B (Æ Figure 69), for C it should not have been possible
before to make an entry.
The project has now been modified for testing in the controller.
Before the online test, you should check if controller and simulator are ready.
Login
The program is then compiled again via menu item 'Online' 'Login' or
(compilation is started automatically after a modification) and loaded in the
controller 'Online' 'Simulation' not active!).
Figure 104: Error Message
The example shows the error message that appears if you have forgotten to
declare C and to insert P_AND in PLC_PRG. This also results in the warning
that a non-declared variable is used in the visualisation. In Figure 104 the
window for messages was already enlarged. By double clicking on the error
message the POU in which the error has occurred will open, Æ page 3-15. You
can scroll from one error message to the next by pressing the F4 key.
If the tick is removed from 'Messages' in the menu 'Window' (simply click on
it), the window will be closed.
After C has been declared, the declaration window should look like in Figure
103.
After a new login the message is displayed again if the program has to be
loaded (Figure 97).
Acknowledge with
and the program is downloaded.
A look at the status line reminds us that the program needs to be started. That's
what we are going to do now.
R
3-43
Online test
Online
The declaration part shows the current states. In addition, the function AND
simplifies the checking of the state of the variables by showing them in different
colours depending on their state. The presentation on the monitor, in AND and
in the visualisation, should show no change as compared to the simulation.
The difference is that we do not work with flags any longer which change their
state via mouse click, but with the physical inputs and outputs. The state of the
inputs is defined by switches of the simulator box.
There is no relay in the controller of the starter set. When working with it you
can skip the next section and go to page 3-45.
Output
So the program should now be processed as in the simulation. The state of the
inputs can now also be verified on the simulator. In doing so it is noticeable that
the state of the output changes according to the state of the inputs in AND as
well as in the visualisation (see page 3-19 above for the description of how to
activate it). However, it does not change on the simulator. Why is that so?
In this context we have to remind you of the monitoring concept, Æ system
manual. There it is described that the RELAY bit has to be set so that the
outputs are not only switched internally like flags but also externally.
RELAY
For the time being, this bit will not be further processed by the program in this
simple example. It can be easily used as the first program network. Before the
first network a new program network is created by 'Add' 'Network (before)' in
the window PLC_PRG . The content reads:
TRUE ─── RELAY
Figure 105: Set Relay
The name and the assignment to a flag address are predefined. This
information is given in the window PLC Configuration. In the Input assistant
(F2) you will find the variable as System variable.
Program test
3-44
After login during which the changed program is compiled again the program
has to be restarted. The relay should now energise with a perceivable click.
Now you can also see on the simulator that the output is switched.
The start
Sampling Trace
For a program test it is very useful that the current states of the variables are
displayed. But there are limits. If, for example, you want to simultaneously
monitor several variables defined in different windows, it is not always possible
to change the windows fast enough. For this purpose you can enter different
variables in a special window, the Watch Window. This is done via 'Window'
'Watch Variables'. We will not go into any further details here. You can find a
detailed description in the Manual for the Program Development.
Trace Tool
It is a matter of luck (even in the Watch window) to detect e.g. short input
pulses on the monitor. In many cases it would be of advantage if the variables
were shown in a timing diagram, like on an oscilloscope. CoDeSys provides this
possibility. It is called Sampling Trace. Since it is an important tool we will give
you a brief example.
Sampling Trace
The states of A, B and C are to be sampled. To do so click on 'Sampling
Trace' in the window 'Resources'.
Figure 106: Sampling Trace
The window Sampling Trace opens.
R
3-45
Online test
Figure 107: Sampling Trace New
Trace
configuration
You find the other functions via the context-sensitive menu Extras. First, we
define the variables to be monitored. This is done via 'Extras' 'Trace
Configuration...'.
Figure 108: Trace Configuration
In this window you enter the variables (maximum 8) the values of which are to
be sampled. Before doing so we will briefly explain the fields of the window.
3-46
The start
Figure 109: Window Trace Configuration
How does it
work?
Let us first explain the background. Max. 500 values of each Trace Variable
can be saved. When the memory is full, sampling starts again from the
beginning. The oldest values are overwritten. If you want to evaluate the
Sampling Trace in peace, for example, you have to stop it so that the values
are not overwritten. That can be done "manually”, via the menu, or
automatically by means of the Trigger Variable. If you enter A here, for
example, the next 50% of the values will be sampled after A has changed its
state from 0 to 1. Sampling would then be stopped.
In the example the Trigger Variable is not used. The field remains empty.
Sample rate
The scanning frequency can be selected in multiples of 10 ms. The default
value 0 means scanning in each cycle. Since the cycle time is in the ms range
for the short program, this would be much too fast. Here a scanning frequency
(sample rate) of 100 ms has been selected.
Trace variables
To enter the Trace variables in the list, enter them in the bottom field first. Use
<F2>. Double-click on P_AND. and A, B and C are displayed. They are
selected and entered in the list. Since they were defined in the P_AND POU,
the POU name, separated by a dot, is used as a prefix.
In the Input assistant the variables can only be found, in visualisation as well as
in sampling trace, if the project has been compiled once, e.g. with 'Project'
'Rebuild all'.
R
3-47
Online test
Figure 110: Input assistant Trace Variable
Click on
Assignment
to finish the configuration.
The window Sampling Trace is empty. The variables now have to be assigned
the colours with which their state is shown. Click on
next to the field below
Var 0 and the variables that can be selected are shown. Click on P_AND.A and
Var 0 is assigned to variable A. Do the same to enter P_AND.B and P_AND.C.
Figure 111: Assignment Trace Variables
Start Trace
To be able to monitor the state of the variables, establish the connection to the
controller via 'Online' 'Login' or .
The trace is sampled in the controller as communication is too slow to save all
values in the PC. The Trace Configuration therefore has to be downloaded to
the controller.
After the program has been started, the Trace configuration has to be
downloaded to the controller and activated with 'Extras' 'Start Trace'.
3-48
The start
At first you see nothing. Sampling is started in the controller but you first have to
give the instruction to transfer the contents of the Trace Buffer to the display.
For this purpose use menu item 'Extras' 'Read Trace'. A kind of snapshot is
loaded. It is more interesting to have a dynamic presentation of the state by
means of 'Extras' 'Auto Read Trace'.
It is worthwhile to have a quiet look at all the possibilities of the sampling trace.
This tool is very powerful. You can say: CoDeSys saves the oscilloscope. And
during the normal hectic during set-up you might lose too much time if you are
not really familiar with the sampling trace.
Buttons
When working with the sampling trace some (context sensitive) buttons appear
which help you speed up your work. These buttons are described in the
appendix, page 5-1
Examples
Figure 112: Sampling Trace 1
R
3-49
Online test
Figure 113: Sampling Trace 2
Figure 114: Sampling Trace 3
3-50
The start
In this short introduction we cannot describe all functions such as saving
sampling trace in detail. We refer you to the manual for program development.
Just one quick note on the sampling trace:
If the signals have such a high frequency that the sampling trace is difficult to
read (e.g. Figure 113), the presentation can be stretched via 'Extras' 'Stretch'
Documentation
A complete project, of course, also requires documentation. Again, please refer
to our Manual for the Program Development. Below we will only show some
examples.
Documenting
In the 'Project' menu you will find e.g. the item 'Document...'.
Figure 115: Document Project
Click on this item, and a window opens:
R
3-51
Online test
Figure 116: Window Document Project
Here you can select what is to be documented. You can also select several
components using the standard marking functions.
Figure 117: Selection of Modules for Documentation
The following points will only be described briefly, not in detail.
Documentation
set-up
3-52
If you don't like the form of the documentation, you can click on e.g. 'File'
'Printer Set-up...'.
The start
Figure 118: Documentation Setup
You will find that you can load predefined formats.
Figure 119: Selection of Formats for the Documentation
In order to modify the file in which the parameters of the frame, as it is called in
CoDeSys, are saved, click on 'Edit...'. The settings can be made in the window
which opens.
Figure 120: Options for Setting up the Documentation
And just to remind you of what we have already mentioned for sampling trace:
We recommend that you take your time to familiarise yourself with all these
options. To create a documentation under time pressure, when the project
should already be finished, will probably not lead to the optimum results.
R
3-53
4.
Exercises
4.1.
Logic functions
In the brief introduction of chapter 3 only a simple logic function (AND) was
used as an example. Those who have studied this chapter should not have any
problems to set up other logic functions or networks from linked logic functions
without any help. This will not be described in detail here. Some exercises
should help you become more familiar with the subject. For some short hints for
the solution see the appendix.
Some brief remarks should help to clearly structure the programs. Experience
has shown that even experienced programmers do not understand their own
program any more after some weeks. The meaning of a good structure
becomes particularly evident if some people work on partial programs or if
several people are to make modifications. In such cases it is necessary to make
exact agreements and to set up rules how the program is to be structured. Even
though this takes quite some time in the beginning and seems to be quite
complex, it will become clear during the first search for errors at the latest, that
this time was a good investment.
Documentation
Besides the item "structure” which will be dealt with in detail below, we also
want to remind you that detailed and clear comments are always helpful.
Program
structure
There is not THE ideal program structure so that you can simply give an
example solution which can serve for orientation. Therefore you will find below
tips which should be seen as suggestions.
Networks
It is confusing to create one network for each link. In principle you could assign
a flag to the result of a link and to further link this flag in the next network. Then
it is pretty tiring to pursue the effects of the change of a bit in the first network
via many other networks.
Vice versa it is also confusing when there are many links in one network. This is
in particular the case if lateral scrolling is necessary because the chain of links
is too long. Then the process described above is of advantage.
Conclusion
As is often the case it is a matter of finding a good compromise between these
extremes.
S/R
It helps to set up the program in a clear way if you regularly use the self-hold
function. This does not have to be done for each auxiliary flag. The author
prefers a program structure that has two networks for each output. At the end of
one of them you find "SET OUTPUT", at the end of the other one "RESET
OUTPUT". This structure has the following advantages:
R
4-1
Logic functions
Division
It is mostly very different conditions with which the output is switched ON or
OFF. In complex situations this easily causes conflicts. The division described
above divides the problem into two partial problems each of which and when
looked at separately can be easily handled.
Troubleshooting
Troubleshooting during program creation or during operation is made easier.
Only two cases are possible:
one output becomes active although it should not (hopefully a rare case
because it is dangerous).
one output does not become active although it should.
In either case the structure described will help to quickly find the cause.
Priority
The priority is also easily defined. An alarm lamp should for example be
protected against unauthorised switching off; a drive, however, should not start
running once the limit position has been reached. The sequence of the two
networks defines the priority.
Consequence
If you decide for the function block diagram - which is often the case - you
should stick to it consistently. You have to bear in mind: The sequence of the
networks has nothing to do with the chronological sequence of the process. An
example for illustration.
Example
conveyor
A conveyor transports a workpiece for processing. After processing the
conveyor transports the workpiece further on. Often the program is structured
as follows:
1 (or several) network(s) conveyor
1 (or several) network(s) processing
1 (or several) network(s) conveyor
This is confusing. This structure can cause many errors when there are several
processing stations. This structure is OK for the sequential flow chart. The
function block diagram does usually not reflect the chronological sequence of
the process. If the conveyor starts twice it does not have to be started in two
networks. In the interest of the switching logic this only means that in one of the
networks there is an OR function with two conditions for starting the conveyor!
Apart from that more interlocks and safety scans are, of course, implemented
by other links.
You will get a clear program structure if you set up the network ”from the back”,
i.e. from the output.
Here other
conditions and
links for Start1 and
Start2 are
inserted.
Here other links such as an AND
operator for safety scans can be
inserted.
Figure 121: Example Program Structure
The following example shows an error that occurs frequently.
4-2
Exercises
Example 1! Error!
Q and I are meant to stand for output and input. Study the following example:
Figure 122: Example of a Program Error
What is the reaction of the output?
R
4-3
Logic functions
Example 2
Material
Length
Position
Cap
OK
ALARM
Reset
Figure 123: Example filling
Task 1
Vessels are to be filled.
1. if the lid and the material are present, the green lamp will light (OK)
2. if the vessel is at the wrong height or in the wrong position, the red lamp will
light (alarm)
The presence of lids and material is indicated by sensors (for the time being
one sensor should be sufficient for the material, the example can be extended
later on to monitor minimum and maximum level).
Task 2
Modification of 2. (new project): In case of a fault a horn blows until it is reset.
To do so another input is required, the reset button.
Implementation
4-4
The correct function of the programs can be tested using a simulator if the
hardware is present and ready for operation. It can also be tested without any
hardware in the simulation mode. A visualisation is a good choice. If more
inputs are needed than there are on the (small) simulator (e.g. maximum level
or reset button), you can work with a combination of physical inputs on the
simulator box and inputs in a "simulated" inputs visualisation.
Exercises
4.2.
Higher-level functions
Timer and counter function
There are very many functions. In the following examples, however, we only
want to practise the most important and most frequently used functions, to be
more precise, function blocks. These are the timers and the counters.
Details about these functions will not be treated here any more. We want to
remind you only where this information can be found.
The library manager is opened in 'Resources' in 'Window' 'Library Manager'.
There you click on STANDARD.LIB. By selecting the function block TON or
CTU (Æ further below) the meaning of the inputs and outputs and/or types of
variables can easily be seen. If you want to get more detailed information, look
at Help. It has to be noted, however, that it is easier to find this information if
you look for the term “TIMER”.
Task 3
Task 1 above is to be slightly modified according to practical experience in real
life.
Sometimes the sensor generates a signal for the wrong position when it detects
the edge of a correct vessel. This is to be avoided by the signal that is to be
present for at least 3 s before an alarm is given (some kind of “debounced”
signal). It is best to create a new project, e.g. testtime1.
Task 4
A ventilator starts running when the light is switched on. There is an after-glow
of 10 s when the light has been turned off (new project).
Now on to the counter:
Task 5
The vessels in the example above (Figure 123) have been filled, closed by
means of the lid and they are counted by a photoelectric sensor when they
arrive at the packing station. The package consists of 12 vessels. One output
(e.g. full: lamp) is set when the preset value 12 has been reached.
Implementation using up counter
Implementation using down counter
What is to happen when the package is full?
R
4-5
More details
Practical application
Start
Drive
Figure 124: Example Slide
Task 6
A workpiece is put onto a pickup plate (e.g. by a handling robot) and detected
by a photoelectric sensor. After activation of the start button the slide moves to
the right. It remains in its right end position for 3 s and then it moves back left. It
remains in the left end position until the next start.
The photoelectric sensor further to the right, at the beginning of the conveyor,
does not need to be considered here.
When this process is simulated, whether in the simulation mode with
visualisation or with the simulator box, in each case it has to be ensured that no
"impossible” situations occur. If e.g. the process has been started, the output
S_off (slide out) has been switched, then the workpiece should be moved on.
That means the slide leaves the left limit switch and the photoelectric sensor at
the workpiece pickup is free again.
If these tasks are not very difficult for you, you are ready for practical
applications.
4.3.
More details
Notes
There are different requirements for each project. We could give more tasks
here and still there would not be an example for each application. In this manual
some more useful functions are given as examples. Other examples will follow.
So as not to take them out of their context, they are only mentioned briefly here:
Self-defined function block (Æpage 5-21)
4-6
Exercises
Watch list (Æ page 5-17)
Call tree (Æ page 5-19)
Cycle time
In this chapter a somewhat special subject will be treated. Those to whom it is
important to get a deeper understanding of a PLC, should study it. It can be
skipped. Then continue on page 4-9.
It is assumed that the contents of chapter 1.5 is known.
When to skip?
Two concrete conditions are mentioned here when it is recommended to skip
this chapter:
●
if the processes in the application are not time-critical (Æ page 1-7 et seqq)
●
Those who are making their first experience with a PLC should study this
chapter later on.
Made on your
own
For test purposes it may be interesting to measure the processing time for
function blocks, networks, combinations of them or program modules yourself.
With some routine it should not be difficult to create such function blocks. Here
we only want to mention some points briefly.
Cycle counter
A cycle timer you have created on your own for the number of processed
program cycles may look like
Figure 125: Cycle counter
This counter is useful if an average value is to be measured from 1,000 cycles.
Internal clock
In some hardware versions there is an internal clock generator with a resolution
of µs. "Reading" is effected with the module 'TIMER_READ_US' from the
hardware-specific library, Æ Figure 22. With hardware versions without clock
generator the module is, of course, not available.
Using this module, very precise measurements are possible. Depending on the
part of the program whose duration is to be determined, the timer command is
used. This can happen twice in the program to start and stop the time. The
difference between these values can be further evaluated. It corresponds to the
individual processing time. It is, for example, possible to calculate the average
or the maximum across 1,000 cycles.
Further processing is left to the reader.
PLC browser
It is necessary, in particular in time-critical processes, to determine the cycle
time. A powerful PLC system such as ecomatmobile supports the user in this
respect. Respective routines are implemented in the operating system. They
have to be activated in the software for programming, CoDeSys. This is done in
the item 'PLC browser' above the tab (of the register card) 'Resources'.
R
4-7
More details
Restriction
Please note, however, that this function is to be used for all targets (that support
such a timer). The method described above with the 'TIMER_READ_US'
module can be used more precisely and flexibly.
Figure 126: PLC Browser
After clicking an empty window opens.
Figure 127: Opened PLC Browser
A command is entered in the first line. After acknowledgment with Enter, the
result is displayed online. You will get a list with the commands by pressing F2
or clicking on the field .
Figure 128: List of Commands in the PLC Browser
Which and how many of these commands appear here depends on the target
system. In Figure 128 it is CR0020.
4-8
Exercises
Most commands are only of use to the experienced programmer. Everybody
who is at a loss to understand the command is well advised not to play around
to find out the purpose.
The 'cycle' command is of interest in connection with the cycle time. The result
may look as follows:
Figure 129: PLC Browser with Cycle
In other systems, e.g. PDM: CR1051, the 'cycle' command is not supported. It
is not in the list. Here the 'tsk' command is useful. It means "task overview".
The time for processing individual tasks is indicated. These are e.g. program
blocks or visualisations. The value is indicated as average and as maximum
value like in Figure 129.
For more information about the PLC browser see e.g. the Online help.
Visualisation
A visualisation is useful to give an overview of the process. This process was
described in detail on pages 3-19 et seqq.
Manual
operation
The many possibilities of visualisation are explained in a short example. The
following situation may e.g. be useful:
For some reason or another, the slide has stopped between the limit switches.
How can it be moved manually into its home position on the left? It is, e.g.
possible with the menu item 'Write values', Æ, page 3-16 or 3-18. However, it
is easier and more elegant to use a visualisation. 'Forcing values' would be
dangerous in this example, see page 3-18.
We assume that the output for the drive of the slide for the travel to the left has
been designated with the declaration 'DriveSI'. It is set in a network of the
corresponding module. An OR operator with another input is added to
'DriveSImanual'.
R
4-9
More details
Figure 130: Manual Operation 1
In the visualisation a button with the text Slide to the left is added under the
text field Manual Mode. In the configuration in item 'Input' the variable
X.DriveSImanual is assigned to this button in the field 'Tap variable'. The
'Toggle variable' field would be wrong here because then the drive would be
started continuously until a new click is made. The X in the variable stands for
the name of the module.
Figure 131: Manual Operation 2
This way it is easy, reliable and clear to control manual operation.
It is a prerequisite, of course, that the drive is reset in the next network (the one
after Figure 130) when the limit switch has been reached. This also ensures
that the limit switch cannot be passed.
So, e.g.
Figure132 Manual Operation 3
Task 7
How does the program have to be extended for the following function?
The slide should only move while the button for manual operation (here the
mouse button when the cursor is on the button) is activated. It is to stop once it
is released.
This was only meant to be a brief example. To test a program you can proceed
as follows. If the manual operation should also be possible later on for the
maintenance people, another program structure is necessary.
The following aspect has to be considered:
In practical use it is required that either manual or automatic Mode is possible
and the other one is blocked.
Below we will mention briefly how this requirement can be met. If the two
operating modes are to be independent from each other, a clear structure is
4-10
Exercises
ensured if two POUs are added to PLC_PRG. This will look somehow like in
Figure 133:
Figure 133: Operating Modes 1
Examples for the first network each in these modules will be shown in the next
two figures.
Figure 134: Operating Modes 2
Figure 135: Operating Modes 3
The signal 'Manual_Mode' is, e.g. generated via a selector switch (keyoperated switch, coding switch...). The 'Return' command means that the POU
is exited once the previous condition is met. In Figure 134 the negation of
'Manual_Mode' is used.
Only one of either POU can be active. This way the programming file gets
bigger but the cycle time hardly increases.
The same effect is also possible by jumps in PLC_PRG or more elegantly with
IF THEN ...ELSE ... in structured text.
R
4-11
5.
Appendix
5.1.
Buttons
Toolbar
This appendix will give you a short overview of the different buttons in the
toolbar.
The toolbar, the third bar from the top, offers a variety of buttons (if activated via
'Options' 'Toolbar'). Regularly used functions can be started with a single
mouse click. They are, of course, also available as menu items. Just like the
menus they are context sensitive. That means the buttons can vary depending
on the open and active windows. Some can be seen at virtually all times and
they will be described first. Later, we will explain those buttons that can e.g. only
be found in the FBD editor.
For detailed descriptions of the functions please refer to the manual for program
development. This short overview will not describe if the function can e.g. be
found in the menu 'Extras' or 'Insert'. In most cases that is obvious in the
context. To save space we do not state "... at the marked position" for each
function. It is self-understood that the position in which e.g. something is to be
inserted requires marking. Neither will we state that it might not make sense to
insert an element in just any place depending on the function. It does not make
sense e.g. to insert an operator following an assignment. Some elements have
a default value, e.g. TRUE for Boolean variable. This default value can be
overwritten with the requested entry. The F2 key can be useful again.
File functions
'File new'
Opens a file named Untitled.
If no file is open (e.g. following the instruction File Close) almost all (context
sensitive) menus are empty or the menu items are shown in grey, i.e. they are
inactive. To do something, a file has to be open.
'Open file...'
Opens the window for selecting a file.
'Save file'
Saves the open file.
It is recommended to click on this button repeatedly during your work.
R
5-1
Buttons
Online functions
'Start'
Starts the program processing.
'Stop'
Stops the program processing.
'Single step to'
Carries out the next instruction (debugging).
'Breakpoint on/off'
Stops the program processing at the current instruction (debugging); useful e.g.
in combination with Single Step To.
'Login'
Establishes the connection to the controller (only if the program is correct).
If the program was changed a new compilation is started.
In the simulation mode, only the compilation is carried out, if required.
Remember: Program processing has to be started additionally.
'Logout'
Separates the connection to the controller.
E.g. to change the program or to configure the trace.
General editing functions
'Cut'
Deletes marked modules or lines and transfers them to the clipboard.
'Copy'
Transfers marked modules or lines to the clipboard.
'Paste'
Inserts the contents of the clipboard.
'Find...'
Opens the window for entering the search criteria.
'Find next'
Finds the next match.
5-2
Appendix
Editing functions for SFC
'Step transition (before)'
Inserts a step with transition before the marked block.
''Step transition (after)'
Inserts a step with transition after the marked block.
'Alternative branch (right)'
Inserts a branch on the right of the marked block.
'Alternative branch (left)'
Inserts a branch on the left of the marked block.
'Parallel branch (right)'
Inserts a parallel branch on the right of the marked block.
'Parallel branch (left)'
Inserts a parallel branch on the left of the marked block.
'Jump'
Inserts a jump at the end of the alternative branch of the marked block.
'Transition jump'
Inserts a transition with jump at the end of the parallel branch of the marked
block.
Editing functions for LD
'Contact'
Inserts a contact (input) to the network before the marked position.
'Parallel contact'
Inserts a contact (input) in the network in parallel to the marked position.
'Coil'
Inserts a coil (output) in the marked position or in parallel.
'Negate'
Inverts a contact (input).
R
5-3
Buttons
Editing functions for FBD
'Input'
Inserts an additional input for an operator, e.g. an AND function.
'Output'
Inserts an additional output, e.g. for an operator.
'Box'
This means operators, functions, function blocks, programs (standard or selfdefined) and conversions. The default setting AND operator has to be
overwritten.
'Assign'
Transfers the result of the linked operators of the network to the address to be
indicated (output).
'Jump'
Inserts a jump.
'Return'
Inserts a return to finish the function.
'Negate'
Inserts a negation for an input or output.
'Set/reset'
The appropriate outputs take on the state TRUE or FALSE (S: 1 click, R: double
click) if the preceding link is TRUE. This value is retained even if the condition is
no longer fulfilled.
Functions for sampling trace
'Start trace'
Loads the trace definition into the controller. Starts the sampling trace.
'Read trace'
Transfers the sampling trace to the PC. Enables the graphical presentation of
the values.
'Stop trace'
Stops the sampling trace.
'Stretch'
Stretches the time axis of the graphical presentation for a better overview of fast
changing states.
'Compress'
The opposite of stretch.
5-4
Appendix
Functions for Visualisation
'Selection'
Selects an element.
'Rectangle'
Inserts a rectangle.
'Rounded rectangle'
Inserts a rounded rectangle.
'Ellipse'
Inserts a circle or an ellipse.
'Polygon'
Inserts a polygon (closed polyline).
'Polyline'
Inserts a polyline.
'Graph'
Inserts a free-hand graph.
'Pie'
Inserts a pie.
'Bitmap'
Inserts a bitmap. Once the size and the position have been defined, a selection
screen for the file opens.
'Visualisation'
Inserts a visualisation. Once the size and the position have been defined, a
selection screen for the file opens.
'Button'
Inserts a button, similar to a rectangle with predefined characteristics.
'WMF file'
Inserts a WMF graphic file. Once the size and the position have been defined, a
selection screen for the file opens.
'Table'
Inserts a table for an array. When a wild-card has been inserted, a window for
configuration opens.
'Trend'
Inserts a trend display for displaying current values as a graph, similar to
sampling trace .
R
5-5
Buttons
'Alarm table'
Inserts an alarm table for an overview of alarms that are defined as events.
When a wild-card has been inserted, a window for configuration opens.
'Pointer instrument'
Inserts a pointer instrument to display values as angled position. When a wildcard has been inserted, a window for configuration opens, e.g. for marking
ranges.
'Bar graph'
Inserts a bar graph, similar to the pointer instrument. When a wild-card has
been inserted, a window for configuration opens.
'Histogram'
Inserts a histogram, similar to a bar graph for displaying an array with several
vertical bars. When a wild-card has been inserted, a window for configuration
opens.
5-6
Appendix
5.2.
Quick reference guide
New project
When a new project has been opened, two windows open automatically.
Target system
First of all the target system is specified. Here the device type is selected that is
to be worked with.
Æ Figure 11
PLC_PRG
Then the PLC_PRG POU is added.
The window 'Project' 'Add Object...' opens automatically with the fixed name.
Æ Figure 33
Please note:
The name of this POU must not be changed!
Click on
to open the window of this POU.
R
5-7
Quick reference guide
Æ Figure 34.
If you prefer another language, the module will, of course, look different.
Add object
The next step should always be to add a new object in 'Project' 'Object' 'Add'.
Æ Figure 35
In the example in chapter 3 it was the object P_And in FBD.
The program becomes very confusing if you write everything in PLC_PRG.
There may, of course, be exceptions. One exception is e.g. setting the RELAY,
Æ Figure 105.
Libraries and hardware configuration
Should you have tried to set the relay right away, you will find that it has not yet
been declared. The reason why is that for each new project the libraries and the
hardware configuration have to be integrated. We do not want to describe it
here again in detail, Æ pages 2-11 to 2-19.
We will only recall the necessary steps by means of some screenshots.
5-8
Appendix
Æ Figure 18
Æ Figure 22
R
5-9
Saving work
Æ Figure 27
Æ Figure 31
Relay
When the relay has been set (if applicable), the preparations are completed.
Now the actual programming can start.
5.3.
Saving work
Under this hopefully interesting headline we will describe briefly how already
created programs, modules, networks, etc. can be transferred from one project
to another. As usual there are several ways to reach the goal. Not all of them
can be shown here; we have to refer to the programming manual. Here we only
want to discuss some of the most frequently used methods.
'Save as...'
This is the easiest and probably best known way. The following procedure
makes sense to program an R360 controller, for example. It is relatively
complex to always integrate the hardware configuration etc. for each new
project if always the same hardware version, e.g. CR0020, is used. Then it is
worthwhile to create an empty project as master in which all settings have
already been made. With 'Save as...' you will get a project in which you can
work right away, without any other preparation.
5-10
Appendix
'Project' 'Merge...'
This function is not often used, perhaps because the name may be misleading.
No copy of the project is created. This is simply done by 'File' 'Save as...'.
With this function another project or parts of it can be inserted in the currently
processed project.
In the example above not much work is needed to create the P_AND module.
Nevertheless we want to show how it can be copied into another project. If this
menu item is clicked on in an open project, a selection screen will open.
Figure 136: Merge Project
After selection and click on 'Open' the list of the modules is displayed.
Figure 137: Merge Objects
Here the P_AND POU can be marked and acknowledged by clicking on 'OK'.
Then it appears in the new project in the list of modules. In Figure 137 you can
see that not only program modules but also visualisations can be copied in the
same way.
R
5-11
Saving work
'Export project...' 'Import project...'
Similar to Figure 137 objects can also be exported and imported. Then they are
available as a separate file (or files) for import to other projects.
Library
Projects that in this case must not contain a PLC_PRG with one or several
objects can be saved as library by means of 'Save as...'. As above they can be
integrated in other projects. This is e.g. useful if you do not want the operator of
a plant to change certain function blocks, if he has access to CoDeSys. It is not
possible to edit in a library; a source code has to be available. Another aspect is
that in this way special know-how can be "hidden".
Clipboard
Everybody working with Windows is familiar with the clipboard. Therefore we
will not go into any further details here.
Templates
An already created project can be opened as a template in 'File' 'New from
template...'. A copy with the name (Untitled)* is created. If the file is copied with
another name, you will virtually get the same result as with 'File 'Save file
as...’, Æ page 5-10. It is especially recommended to create a file as template
with all configuration settings if new projects for the same hardware are created
often, Æ page 2-19.
Another possibility is to click on 'Save as template' (right mouse click) in the
context menu, e.g. a program module for an object, e.g. a program module.
Then all declarations are saved and not only the links.
Other steps
Adapt
Irrespective of the method used it must be checked in any case if other
adaptations have to be made. If e.g. a network of a function block was copied
via the clipboard, the respective declarations of the variables also have to be
copied or entered again. Possibly addresses have to be changed etc.
Done?
When the module has been completely edited, you are not done yet.
Remember!
In the heat of the moment it also happens to the experienced programmer that
he forgets to integrate the completely edited POU in his project. It is absolutely
necessary to take the following step!
Activating
P_AND in
PLC_PRG
The program P_AND is now to be activated in PLC_PRG. For this purpose
activate the window of PLC_PRG (Figure 34) and activate menu item 'Add'
Function Block' (Figure 35).
5-12
Appendix
5.4.
Remarks for solutions
We pointed out above:
There is hardly ever one and the optimum solution.
Furthermore it is better at the beginning to find solutions on one's own instead
of adopting ready-made patterns.
Therefore we will give only some hints as suggestions.
Example 1
(page 4-3)
The second network defines the state of the output. The first one can be left
out.
It would serve the obviously intended purpose to combine the two networks and
to link the results of the AND operation with an OR operator. Here you can see
again that an S (set) function is of advantage. If you had an S before the output
of networks 1 and 2 there could be no conflicts. You need, however, more
networks for resetting.
Task 1 (page 44)
To begin with, simple logic functions are sufficient. Using SET/RESET is
somewhat more complex. This could only become necessary for a more precise
or changed definition of the task. An example in this context:
Task 2 (page44)
Should be no problem (remember the priority!)
Task 3 (page 45)
It is confusing to program very many links in one network. It is also confusing to
have one network for each link. The point is find a happy medium. In the
example network 2 does not look too confusing. What can you find in network 1
(remember useful priorities!)?
Figure 138: Example 1
We should briefly comment on the timer function. The preset value PT (preset
time) is fixed here. It cannot be changed while the program is running. The only
possibility is to change the source program. This may be useful in some cases.
If, however, it should be possible to change the value, e.g. by the engine driver
via an input device, this value has to be declared to be a symbolic variable
which can be changed by other POUs. The actual value ET (elapsed time) does
not have to be assigned to a variable in each case. In Figure 138 above you
can see when this may be useful, e.g. for displaying this value.
R
5-13
Notes
Other variants are conceivable, e.g.
Task 4 (page 45)
●
OR operator before the timer function, then both inputs are debounced or
●
other timer functions between ‘Length' and OR operator so that the second
input can be debounced with another timer value, etc.
The easiest solution is to use the function block TOF.
A little additional task in this context: The output should only switch after the
input (e.g. with 1 s) has been debounced.
Here it is easiest to use two function blocks TON in conjunction with S and R.
Task 5 (page 45)
Hopefully, the timer functions CTU or CTD should not be too difficult. Only the
case "package full" has to be considered more closely. If you simply use the
condition "actual value = preset value" to reset the counter, then the output Q of
the counter is on TRUE for just a short time. The signal has to be "retained".
Task 6 (page 46)
Here we want to recall the remarks about the program structure, Æ page 4-1 et
seqq and Fehler! Textmarke nicht definiert.. At any rate a program module,
e.g. name 'Slide' type 'Program' and language 'FBD', should be created with
'Project' 'Object' 'Add...'. Then there are two alternatives:
●
For this relatively easy and clear process all networks for controlling the
slide can be integrated in this module.
●
Those who program separate processes consistently in separate modules
will create two more modules, e.g. 'Slide_out' and 'Slide_in'. Then they
will be added to the module 'Slide'.
'Slide' has to be added to the main program PLC_PRG in any case.
Then 'Slide_out' consists of e.g. two networks. On the right-hand side of the
network there is the set ’Drive_slide_out' or in the second network reset
'Drive_slide_out' (set and reset are abbreviated by S and R in programming, in
FBD there is a button in the toolbar). Then there are only the tasks left to find
meaningful conditions or links so that the process runs as desired. Since in this
structure the entire task was divided into small partial tasks, these steps should
no longer be difficult.
If only the module 'Slide' was created, it should consist of four networks.
5.5.
Notes
Some more examples.
5-14
Appendix
Declarations
In the examples given so far the variables were declared locally. This is, of
course, also possible for the models. Below an example will be given how to
declare the variables directly during hardware configuration.
Figure 139: Standard PLC Configuration
As shown in Figure 28, e.g., the entries are opened by clicking on '+' in
'Resources' 'PLC configuration'. Then you can directly edit here. (compare
Figure 29). The result then looks like this:
R
5-15
Notes
Figure 140: Declarations in the PLC Configuration
As already mentioned, there are several ways to proceed. The advantage of the
possibilities shown here is that once declarations have been made the variables
are available in the entire project and can easily be added by using F2. The
disadvantage is that in an open program module, e.g. 'Slide' (Æ page 4-6 or 519), they cannot be displayed in the declaration window. Especially online or
with poor lighting it may be difficult to recognise a change in colour which
indicates the change in state.
5-16
Appendix
Consistent
Whichever possibility you may decide for: You should always be consistent and
declare in the same way!
Watch list
A method to help is to create a watch list. It is also very useful for maintenance
(troubleshooting). You collect all variables that are important for a certain
context and save the list as a freely selectable name.
This is done in 'Resources' Watch and recipe manager'.
Figure 141: Watch List Slide
This watch list was saved as 'Slidew'.
Figure 142: Watch List Online
When you have logged in and the module 'Slide' was possibly open, all
information you need to check the function of the slide is available.
R
5-17
Notes
Sequence
It is confusing to program the conveyor and the drill in only one program
module. This easily leads to an unfavourable arrangement of the networks like
in the example below (see page 4-2):
- network for starting the conveyor
- network for stopping the conveyor
- various networks for the drilling process
- network for another start of the conveyor
- network for another stop of the conveyor.
The basis is the sequence of the individual processes. This can also produce
the desired result. As soon as there is a malfunction of the conveyor, it is twice
as difficult to find the cause since the conveyor is found twice. The sequence of
the networks described above would be suited for the structure of a module in
SFC. However, it does not come up to the idea of the FBD. It would be
considerably clearer to use one single POU for the conveyor and one for the
drilling process. The process will also be less susceptible to interference if these
two POUs are combined with only very few links.
The conveyor starts twice. This simply corresponds to the logic OR function.
You only have to consider which conditions or links are required for the first and
which for the second start. Then the necessary considerations for the stops are
made. The sequence of the conditions is absolutely irrelevant for the switching
logic. Only the conditions are important for the correct process and not the OR
function. Once the program module for the conveyor has been completely
programmed, it can be tested, independently of the drill.
This leads to the question: How can the conveyor be tested without the drill
running?
Flag
Using a flag is a good solution. It does not simply have the function "auxiliary
flag" but it can rather be called a "control flag". It is simply given the name
'drilled'. It is to have the state TRUE when the drilling process is completed and
FALSE when drilling is still performed. For the program test this process can at
first be controlled "manually" by changing its value via 'Online' 'Write values'.
Once you have ensured that it is used so that the process is running correctly,
you can take a next step and consider meaningful conditions changing the state
of the flag automatically (see page 5-19).
Recap
This effect can e.g. be found with programming of the drill head. You gather
conditions, e.g. workpiece in drilling position, conveyor stands still and drill (tool)
is running. They are linked with logical AND. With the result the drive is set that
moves the drill head downwards. This looks completely right. Let us assume
that the further process (stopping the movement downwards, waiting for the
drilling process and movement of the drill upwards) has been correctly
programmed and then the following happens during the program test:
5-18
Appendix
As soon as the drill head has arrived its upper position, these conditions have
been met (it is better if the conveyor starts moving when the head is in its upper
position so that the tool does not break off and the drill head should leave the
workpiece with the tool running). The consequence is that the drill head moves
downwards etc. in all eternity. Therefore the model has got its nickname
"sewing machine".
What is to be
done?
The flag 'drilled' that was described above in section Sequence is also very
useful in this case. It is also useful for the program test of the module for the
conveyor.
An edge detection e.g. R_TRIG of a suitable variable is also a good solution.
Flag
Only those who do not have any idea how the flag is controlled by the program
should go on reading here. There are several solutions, as usual. Then there
will be some notes for an example
When a new workpiece has been placed, it has not been drilled yet.
When the drill head is in its lower position, drilling has been effected.
Program structure
Those who prefer to program on their own should skip this section or compare
their own program with the following examples upon completion. A possible
program structure will be presented. We do not claim to give a perfect solution
here. The example can certainly be improved, e.g. by additional enquiries to
increase the safety of the process. In this respect it is not only the list of
modules that is shown. The program structure cannot be directly seen from this
list in alphabetical order. The structure becomes clear when you select 'Project'
'Show Call Tree'.
Figure 143: Call Tree
Various possibilities are shown here. In the first main branch a single
subprogram was added for the slide. In the second main branch two
subprograms were used as an example for the movement of the arms
('ARMDOWN' and 'ARMUP'). They are called by the subprogram 'ROARM'. It
would have been more consistent to use only the program 'ROARM' and to
R
5-19
Notes
program the entire movement of the arm there. Above we already pointed out
that the preset structure is nothing but an example.
Consistent
The user should see to it that a uniform structure is used. This is in particular
important if several people are to work with the program, e.g. also in
maintenance (troubleshooting).
The numerous CAN functions are implemented automatically. They need not be
taken into account here.
POUs with
folders
The program structure will become clearer if the subdirectories are inserted via
the context menu (right mouse button) (see Figure 144). Please note that this
tree is only a view. It does not reflect the actual call hierarchy like the call tree
(see Figure 143).
Figure 144: POUs with folders
Please note: Be careful when you assign names. In any case you should avoid
using the same name for a variable, a box you have defined yourself or a POU.
Below we will give an example how to implement the notes on the program
structure on pages 4-1 et seqq for a concrete module.
5-20
Appendix
Figure 145: Example Conveyor Drill
Here the hints given in Figure 121 were carried out. You can find more
information on the program structure in the comments.
Individually defined function block
The slide is not discussed in more detail here. Some information was already
given on page 5-14. We use its controller as an example to show how to define
a function block on your own. If you compare the movement of the slide with
that of the drill head, the robot arm etc. in general, it stands out that the same
movement occurs 5 times even in this small model.
It is worthwhile to define a function block for such frequently recurring
processes which can be used several times in the project. To be more precise,
each time it is an instance of the function block. Below we will show briefly how
to proceed.
In 'Project' 'Object' 'Add...' a new function block is created.
Figure 146: Create Function Block
R
5-21
Notes
It gets e.g. the name To_and_Fro for moving it away from its home position
and back. The language used is again FBD.
Figure 147: New Function Block
It stands out that there are more variable classes than with a program. It will
become clear soon what this is all about. The condition for starting the
movement from the home position is declared as the first variable. Class
VAR_INPUT is used.
Figure 148: Declaration as VAR_INPUT
Some interim steps are skipped. The reader should be able by now to edit this
function block on his/her own. The next figure shows the complete function
block. The meaning of the individual steps will be explained afterwards or is
self-explanatory in the application example in Figure 153.
5-22
Appendix
Figure 149: Function block To_and_Fro
At last we will show how this function block can be used for the slide, for
example.
A new program by the name slide1 is added via 'Project' 'Object' 'Add...'.
Figure 150: New Program Slide1
The function block is now added to the first network. At first a box is added with
. Then the function block is selected pressing F2.
R
5-23
Notes
Figure 151: Add Defined Function Block
Figure 152: Added Function Block
Now the meaning of the variable classes becomes clear. The variables in the
function block are also called internal variables. You can access them from the
outside if they were declared as VAR_INPUT or VAR_OUTPUT. If, e.g.,
time_value had not been declared as VAR_INPUT, then it would not be
possible to influence the preset time value. The function block for controlling the
slide is used as follows (Figure 153).
Figure 153: Function Block for Slide
If the timer operation is not to be observed directly, the output time_display of
the function block can be released.
5-24
6.
Index
%IX0.08 .......................................................3-42
'Coil'............................................................... 5-3
.pro ...............................................................3-29
Color............................................................. 3-23
??? ................................................................. 3-9
Compilation...........................................3-40, 5-2
‘New project' .................................................. 5-7
Compilation.................................................. 3-43
3S................................................................... 2-3
'Compress' ................................................... 5-4
Adapt............................................................5-12
Configuring element .................................... 3-21
Add object...................................................... 5-8
'Contact'........................................................ 5-3
Address........................................................3-42
Context sensitive ........................................... 5-1
Alarm colour.................................................3-23
Conveyor ..............................................4-2, 5-18
'Alarm table'.................................................. 5-6
Copy....................................................3-37, 5-11
'Alternative branch (left)' ............................ 5-3
'Copy' ............................................................ 5-2
'Alternative branch (right)'.......................... 5-3
Copy project................................................. 5-11
Append Subelement....................................2-19
Counting function........................................... 4-5
'Assign' ......................................................... 5-4
CR0020.......................................................... 1-3
Assignment ............................... 3-41, 3-42, 3-43
CR0505.......................................................... 1-3
AT.................................................................3-43
CR2500.......................................................... 1-3
Auto load........................................................ 2-6
Current version .............................................. 1-3
Auto Read Trace .........................................3-49
'Cut'................................................................ 5-2
Autodeclaration............................................3-11
Cycle frequency............................................. 1-7
'Bar graph' .................................................... 5-6
Cycle time ...............................................1-7, 4-7
'Bitmap' ......................................................... 5-5
Cyclical........................................................... 1-5
Box ................................................................. 3-7
Data sheets.................................................... 1-2
Breakpoint...................................................... 3-2
Debugging .................................... 3-2, 3-18, 5-2
'Breakpoint on/off' ....................................... 5-2
Declaration................. 2-16, 3-6, 3-7, 3-41, 3-42
Bus system .................................................... 1-8
Declarations ............................................... 5-15
Button...........................................................4-10
Default...................................................3-14, 5-1
'Button'.......................................................... 5-5
Defining variables .......................................... 3-6
Buttons........................................................... 5-1
device-specific ............................................... 2-3
CAN................................................................ 2-3
Directory........................................ 1-4, 2-3, 2-11
Catalogue....................................................... 1-2
Documentation .....................................1-2, 3-51
CFC................................................................ 3-1
Downloader..........................1-9, 2-4, 3-32, 3-35
Change color ......................................3-22, 3-23
Drilled ..................................................5-18, 5-19
Clipboard......................................................5-12
ecolog software installer................................ 2-1
Closed loop.................................................... 1-9
ecomat mobile ............................................... 1-5
CoDeSys........................................................ 3-1
Editing functions for FBD .............................. 5-4
R
6-1
Editing functions for LD..................................5-3
'Histogram'....................................................5-6
Editing functions for SFC ...............................5-3
IEC-61131-3...................................................3-1
EDS ................................................................2-3
IL ....................................................................3-1
Element ....................................................... 3-20
Import ...........................................................5-12
'Ellipse' ..........................................................5-5
Import project ...............................................5-12
Error message...................................... 2-6, 3-35
Individually defined function block.........5-21
Error Message............................................. 3-43
Input..............................................................3-23
Example 1 ................................................... 5-13
'Input' .............................................................5-4
Export .......................................................... 5-12
Input assistant ..................... 3-8, 3-23, 3-47, 5-1
Export project .............................................. 5-12
Installation .............................................. 1-2, 2-1
F2.......................................................... 3-8, 3-22
InstallTarget....................................................2-8
FBD ................................................................3-1
Instruction list ....................................... 3-1, 3-14
File ..................................................................2-4
Interface parameter......................................3-35
File functions ..................................................5-1
Internal clock ..................................................4-7
'File new'........................................................5-1
Internal variable............................................5-24
File size ....................................................... 2-13
Internet ................................................... 1-3, 2-4
'Find next'......................................................5-2
'Jump' .................................................... 5-3, 5-4
'Find...' ...........................................................5-2
Key .................................................................3-8
Fixed............................................................ 5-13
Key word .............................................. 3-6, 3-43
Flag..................................................... 5-18, 5-19
Ladder diagram.................................... 3-1, 3-14
Forcing......................................................... 3-18
LD ...................................................................3-1
Frequency ......................................................1-7
Library..........................................2-14, 5-8, 5-12
Frequency inputs............................................1-8
Library manager................................. 2-13, 2-15
Function block ............................................. 5-23
Local ................................ 3-12, 3-23, 3-41, 5-15
Function block ............................................. 5-12
Logging out...................................................3-19
Function block diagram..................................3-1
Login.............................................................3-15
Functions for sampling trace .........................5-4
'Login' ............................................................5-2
Functions for Visualisation.............................5-5
'Logout'..........................................................5-2
General editing functions ...........................5-2
Low-pass filter ................................................1-8
Global ........................................3-12, 3-41, 5-15
Manual............................................................4-9
'Graph' ...........................................................5-5
Manual for the program development...........1-2
Graphical function block ................................3-1
Manual mode ...............................................4-10
Grid .............................................................. 3-20
Manual operation ................................. 4-9, 4-10
Guarantee .........................................................II
Mark................................................................3-7
Hardware configuration2-16, 3-2, 3-3, 5-8, 510, 5-15
Mark-to-space ratio ........................................1-8
Hardware of the PC......................................2-1
Mounting.........................................................1-2
Help ...................................................... 2-14, 4-5
ms...................................................................1-7
Hex file......................................................... 3-34
6-2
Mobile.............................................................1-5
Index
Name ............................................................. 3-6
Program start ............................................... 2-5
'Negate' ..................................................5-3, 5-4
Program structure........................................ 5-19
Network.......................................................... 3-7
Program test .......................................3-15, 3-45
New project.............................................2-7, 3-3
Programming Languages.....................3-1, 3-14
New Visualisation Screen ...........................3-19
Programming system exit ........................... 3-30
Notes.....................................................1-2, 5-14
Project.....................................................2-7, 3-1
Online.................................................3-28, 3-37
Protection....................................................... 1-5
Online functions............................................. 5-2
Read from the controller.............................. 3-35
Online Help .................................................... 1-3
Read Trace.................................................. 3-49
Online Test...................................................3-37
'Read trace'................................................... 5-4
'Open file...'................................................... 5-1
Rebuild all .................................................... 3-21
Operand ......................................................... 3-9
Recap .......................................................... 5-18
Operating modes.........................................4-11
Rectangle..................................................... 3-20
Operating system ........................................3-32
'Rectangle'.................................................... 5-5
Operator......................................................... 3-9
Relay.....................................................3-44, 5-8
'Operator' ...................................................... 5-4
RELAY ........................................................... 5-8
Orientation guides
Resources ............................... 2-16, 3-41, 3-45
Footnotes ...................................................... 1-2
Response time............................................... 1-7
Headers ........................................................ 1-2
Result............................................................. 3-9
Pictograms .................................................... 1-2
Oscilloscope ................................................3-45
Other languages ..........................................3-14
'Output'.......................................................... 5-4
'Parallel branch (left)' .................................. 5-3
'Parallel branch (right)'................................ 5-3
'Parallel contact' .......................................... 5-3
'Paste'............................................................ 5-2
Path................................................................ 2-4
Physical address .........................................3-41
'Pie' ................................................................ 5-5
PLC ................................................................ 1-5
PLC browser.................................................. 4-7
PLC_PRG.................... 3-3, 3-4, 3-13, 5-7, 5-12
'Pointer instrument'..................................... 5-6
'Polygon' ....................................................... 5-5
'Polyline'........................................................ 5-5
POUs ......................................................3-1, 3-2
Previous knowledge ...................................... 1-1
Priority ............................................................ 1-6
'Return'.......................................................... 5-4
'Rounded rectangle'.................................... 5-5
Sample rate ................................................. 3-47
Sampling trace............................ 3-2, 3-45, 3-47
Sampling trace............................................. 3-45
Save....................................................3-29, 3-30
'Save file'....................................................... 5-1
Saving .................................................3-13, 3-35
Saving work ................................................. 5-10
Search path ................................................. 2-11
'Selection' ..................................................... 5-5
Sequence..................................................... 5-18
Sequential function chart............................... 3-1
'Set/reset' ...................................................... 5-4
Settings .......................................................... 2-7
SFC................................................................ 3-1
Show call tree .............................................. 5-19
Signal shape.................................................. 1-8
Simulation mode...................................3-2, 3-15
R
6-3
Simulator ..................................................... 3-31
Task 5................................................... 4-5, 5-14
'Single step to' ..............................................5-2
Task 6................................................... 4-6, 5-14
Slide...................................................... 4-6, 5-21
Task 7...........................................................4-10
Software setup .............................................2-1
Template ............................................ 5-10, 5-12
Solutions...................................................... 5-13
Test....................................................... 3-2, 3-45
Source file.................................................... 3-35
Text...............................................................3-25
ST ......................................................... 3-1, 4-11
Time characteristics .......................................1-7
Start .................................................... 3-15, 3-40
Timer function ................................................4-5
'Start'..............................................................5-2
TNF...............................................................2-10
Start Trace................................................... 3-48
Toggle variable.............................................3-23
'Start trace' ....................................................5-4
Toggling........................................................3-23
Starter set.......................................................2-7
Toolbar ...........................................................5-1
Starter set.................................................... 2-12
Trace Buffer..................................................3-49
State ...............................................................1-6
Trace configuration ......................................3-46
Status line........................................... 3-15, 3-43
Training manual .............................................1-2
Status Line .................................................. 3-40
'Transition jump' ..........................................5-3
''Step transition (after)' ................................5-3
'Trend'............................................................5-5
'Step transition (before)'..............................5-3
Trigger variable ............................................3-47
'Stop' ..............................................................5-2
Unambiguous.................................................1-6
'Stop trace' ....................................................5-4
User-defined Programs ...............................3-12
'Stretch'..........................................................5-4
VAR_INPUT....................................... 5-22, 5-24
Structured text...................................... 3-1, 3-14
Variable .............................................. 2-16, 3-11
Structures ............................................... 3-1, 3-2
Variable classes...........................................5-22
Subdirectory ................................................ 2-11
Variables ........................................................3-6
Subelement ................................................. 2-19
Version ................................................. 2-4, 3-34
Subsequent installation of the target .............2-8
Visualisation ..... 3-1, 3-2, 3-19, 3-35, 3-47, 5-11
System manual ..............................................1-2
'Visualisation' ...............................................5-5
System variable......................................... 3-44
Watch list......................................................5-17
'Table'.............................................................5-5
Watch variables ...........................................3-45
Target information....................................... 2-10
Watch window...................................... 3-2, 3-45
Target system ........................................ 2-7, 5-7
Watchdog .......................................................1-9
Task 1................................................... 4-4, 5-13
'WMF file'.......................................................5-5
Task 2................................................... 4-4, 5-13
Write into the controller ................................3-35
Task 3................................................... 4-5, 5-13
Write Values....................................... 3-16, 3-17
Task 4................................................... 4-5, 5-14
6-4