Sie sind auf Seite 1von 60

Steuerungstechnik

Hochschule Hof
Alfons Goppel Platz 1
95028 Hof

Praktikum zu Grundlagen der Automatisierungstechnik


Lab exercises Fundamentals of Automation Technology

Praktikumsversuch "‘S0"’
Speicherprogrammierbare Steuerungen
Exercise "S0"
Programmable Logic Controllers

Prof. Dr.-Ing. V.Plenk


Simone Isabelle Schneider, Sigmund Karl (V1.0 - SS2001)
Wolfgang Uschold (V2.0 - SS 2015)

Version 2.2a
2
Inhaltsverzeichnis
1 Funktionsweise des TIA - Portals Functionality of the TIA - Portal 5
1.1 Erstellen eines Projekts Creating a project . . . . . . . . . . 5
1.2 Anlegen der Hardware Defining the hardware . . . . . . . . . . 6
2 Programmieren mit dem TIA-Portal
Programming with the TIA Portal 15
2.1 Funktion eines SPS Programms Function of a PLC program . . . . . . 15
2.2 Einführung in den Codeeditor
Introduction to the code editor . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
2.3 Symbolische Programmierung
Symbolic Programming . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
2.4 Simulation mit PLCSIM Simulation with PLCSIM . . . . . . . . 26
2.5 Übungen in FUP Exercises in FBD . . . . . . . . . . . . 33
2.6 Bausteinstruktur Program blocks . . . . . . . . . . . . 36
3 Ablaufsteuerungen mit Graph
Sequence controls with Graph 46
3.1 Neues Projekt erstellen Create new project . . . . . . . . . . 46
3.2 Schrittkette erstellen Creating the step sequence . . . . . . . . . 48

4
1 Funktionsweise des TIA - Portals
Functionality of the TIA - Portal

1.1 Erstellen eines Projekts Creating a project


In dieser Anleitung wird der Umgang mit This document covers the operation of
der Funktionsweise der Software “TIA- the software "’TIA-Portal V13"’ from
Portal V13“ der Firma Siemens behandelt. Siemens. All newer Siemens S7 generation
Mit dieser Programmierumgebung können automation devices can be programmed
alle neueren Automatisierungsgeräte der with this programming environment.
Siemens S7-Generation programmiert wer-
den.
Starten Sie das TIA - Portal über: Start the TIA - Portal via:
Start → Alle Programme → Siemens Automation → TIA Portal V13
Nachdem das Programm gestartet ist, er- After the program starts, the TIA Portal
scheint die TIA-Portal Startseite (die soge- home page (the so-called portal view) ap-
nannte Portalansicht). Wählen Sie hier den pears. Select the project name, the storage
Projektnamen, den Speicherort (Pfad) und location (path) and, if necessary, the author
ggf. den Autor des neuen Projekts. Klicken of the new project. Then click on ’Cre-
Sie anschließend auf „Erstellen“. ate’.

5
1.2 Anlegen der Hardware Defining the hardware

Nachdem das Projekt erfolgreich erstellt After the project has been successfully cre-
wurde, erscheint eine Auswahlseite. ated, a selection page appears.
Auf dieser Seite haben Sie folgende Wahl- On this page you have the following op-
möglichkeiten: tions:

• Anlegen einer neuen Hardwarekonfi- • Create a new hardware configuration


guration
• Create a PLC program
• Erstellen eines SPS-Programms
• Configure technology objects
• Technologieobjekte konfigurieren (fast counters, position detection,
(Schnelle Zähler, Positionserfassung, PID controller...)
PID-Regler...)
• Create a visualization
• Anlegen einer Visualisierung
• Switch to an already existing project
• Wechseln in ein bereits existierendes
Projekt

Da wir bislang nur ein leeres Projekt ange- Since we have only created an empty
legt haben, muss als Erstes die Hardware- project so far, the first thing to do is to cre-
konfiguration erstellt werden. ate the hardware configuration.
Ein Gerät konfigurieren → Neues Gerät hinzufügen

1.2 Anlegen der Hardware Defining the hardware

6
1.2 Anlegen der Hardware Defining the hardware

Hardwarekonfiguration: Hardware configuration:


Die Hardwarekonfiguration beschreibt den The hardware configuration describes the
Aufbau der kompletten SPS-Steuerung structure of the complete PLC control
(Speicher Programmierbare Steuerung). In (Programmable Logic Control). In this
diesem Fall handelt es sich um eine S7- case it refers to a S7-1500 station. Con-
1500 Station. Steuerungen aus dieser Bau- trollers from this series are modular and al-
reihe sind modular aufgebaut und bestehen ways consist of a power supply and a CPU
immer aus einer Spannungsversorgung und (which is available in different performance
einer CPU (welche in verschiedenen Leis- classes).
tungsklassen erhältlich ist).
Um die Sensoren (z.B. Schalter, Taster, In order to connect the sensors (e.g.
Lichtschranken usw.) und Aktoren (z.B. switches, push buttons, light barriers etc.)
Relais, Schütze, Magnetventile usw.) mit and actuators (e.g. relays, contactors,
der Steuerung zu verbinden, sind weitere solenoid valves etc.) to the control system,
Baugruppen nötig. further assemblies are necessary.
Um Sensoren, als eingehende Signale, in In order to integrate sensors as incoming
die Anlage einzubinden, benötigt man Ein- signals into the system, input modules are
gangsbaugruppen. Um Aktoren, also ausge- required. Output modules are required to
hende Signale, einzubinden, werden Aus- integrate actuators, i.e. outgoing signals.
gangsbaugruppen benötigt.
Ein Projekt kann mehrere Stationen (CPUs A project can contain several stations
mit ihren E/A-Baugruppen) beinhalten, (CPUs with their I/O modules), which in-
welche in ihrer Funktion miteinander in- teract with each other in their function.
teragieren. Bei der programmierbaren Bau- The programmable module is the CPU into
gruppe handelt es sich um die CPU, in wel- which the PLC program is loaded.
che das SPS-Programm eingespielt wird.

7
1.2 Anlegen der Hardware Defining the hardware

Um eine neue Station einzufügen, wählen To add a new station, select the desired CPU
Sie im Menü „Controller“ die gewünschte in the menu "Controller". (In our case the
CPU aus. (In unserem Fall die CPU 1516-3 CPU 1516-3 PN/DP with firmware version
PN/DP mit der Firmwareversion 1.8) 1.8)
Sie haben weiterhin auch die Möglichkeit You also have the possibility to create an
eine „unspezifizierte CPU“ anzulegen und "unspecified CPU" and read the configura-
die Konfiguration aus der Hardware auszu- tion from the hardware.
lesen.
Nachdem Sie die gewünschte CPU gewählt After you have selected the desired CPU,
haben, klicken Sie auf den Button „Hinzu- click on the button "Add".
fügen“.

8
1.2 Anlegen der Hardware Defining the hardware

Sie gelangen nun in die „Projektansicht“ The "Project View" (Figure 1.1) is now dis-
(Abbildung 1.1) und sehen die gewählte played and the selected CPU is the only
CPU als bislang einziges Bauteil auf einer component on a mounting rail so far. A pro-
Montageschiene. Für diese CPU könnte be- gram could already be created for this CPU.
reits ein Programm erstellt werden. Jedoch However, we want to complete our station
wollen wir unsere Station vervollständigen and add the digital and analog I/O modules
und legen noch die, an den Labor-SPSen available on the laboratory PLCs.
vorhandenen, digitalen und analogen E/A-
Baugruppen an.
Bevor Sie damit beginnen, machen Sie Before you begin with the definition, fa-
sich jedoch erst einmal mit der TIA- miliarize yourself with the TIA Project
Projektansicht vertraut. View.
• Portalansicht: • portal view:
Dient der komfortablen Verwaltung Serves for the comfortable adminis-
eines Projekts. tration of a project.
(Einfügen neuer Projektteile, Werk- (Inserting new project parts, tool se-
zeugwahl...) lection...)
• Projektansicht: • project view:
Strukturierte Sicht auf die einzelnen Structured view of the individual
Bestandteile eines Projekts. components of a project.
(Erstellen eines SPS-Programms, Va- (Creating a PLC program, variable
riablenverwaltung...) management ...)

9
1.2 Anlegen der Hardware Defining the hardware

Sie können jederzeit zwischen Projekt- und You can switch between project and portal
Portalansicht wechseln. view at any time.

Abbildung 1.1: Die TIA-Projektansicht / The TIA-Project View

Projektansicht (Abbildung 1.1: project view (Figure 1.1:


1. Funktionsleiste: 1. toolbar:
Dient der Auswahl bestimmter Pro- Used to select certain program func-
grammfunktionen. tions.
2. Projektnavigation: 2. Project navigation:
Bietet Zugang zu allen Komponenten Provides access to all components
und Daten eines Projekts. and data of a project.
3. Task Cards: 3. Task Cards:
Enthalten den Hardwarekatalog, die Contains the hardware catalog, the
einzelnen Anweisungen und die Bi- individual instructions and the li-
bliotheken. braries.
(z.B. vorgegebene Logikverknüpfun- (e.g. drag predefined logic links into
gen in den Arbeitsbereich ziehen) the work area)
4. Arbeitsbereich: 4. workspace:
Dient der Bearbeitung geöffneter Ob- Used to edit open objects.
jekte. (e.g. program blocks, device configu-
ration...)

10
1.2 Anlegen der Hardware Defining the hardware

(z.B. Programmbausteine, Geräte- 5. inspector’s window:


konfiguration...) Provides additional information on
selected objects.
5. Inspektorfenster:
Bietet zusätzliche Informationen zu
selektierten Objekten.
Um die Hardwarekonfiguration zu vervoll- To complete the hardware configuration, we
ständigen, fügen wir nun die noch fehlen- now add the missing components to the
den Komponenten in das Projekt ein. Per project. Using Drag & Drop, the individual
Drag & Drop werden die einzelnen Bau- components are dragged next to the CPU
gruppen neben die CPU in den Arbeitsbe- into the work area (onto the virtual mount-
reich (auf die virtuelle Montageschiene) ge- ing rail).
zogen.

Zur Vervollständigung der Hardware- To complete the hardware configuration


Konfiguration werden noch folgende the following modules are required:
Baugruppen benötigt: These are dragged from the catologue (Task
Diese werden aus dem Katolog (Task Card Card - right side) into the work area.
- rechte Seite) in den Arbeitsbereich gezo-
• Digital input module with 32 inputs
gen.
DI 32X24VDC HF (6ES7521-
• Digitale Eingangsbaugruppe mit 32 1BL00-0AB0)
Eingängen:
• Digital output module with 32 out-
DI 32X24VDC HF (6ES7521-
puts

11
1.2 Anlegen der Hardware Defining the hardware

1BL00-0AB0) DQ 32X24VDC/0.5A ST (6ES7522-


1BL00-0AB0)
• Digitale Ausgangsbaugruppe mit 32
Ausgängen: • Analog input module with 8 inputs
DQ 32X24VDC/0,5A ST (6ES7522- AI 8XU/I/RTD/TC ST (6ES7531-
1BL00-0AB0) 7KF00-0AB0)
• Analoge Eingangsbaugruppe mit 8 • Analog output module with 4 outputs
Eingängen: AQ 4XU/I ST (6ES7532-7HD00-
AI 8XU/I/RTD/TC ST (6ES7531- 0AB0)
7KF00-0AB0)
• Analoge Ausgangsbaugruppe mit 4
Ausgängen:
AQ 4XU/I ST (6ES7532-7HD00-
0AB0)
Nachdem Sie die Station vervollständigt After you have completed the station, you
haben, können nun Einstellungen zu den can now make settings for the assemblies.
verschiedenen Baugruppen vorgenommen For this purpose, the corresponding assem-
werden. Dazu müssen im Arbeitsbereich bly must be marked in the work area and
die entsprechende Baugruppe markiert und then the desired settings can be made in the
im darunterliegenden Inspektorfenster die inspector window below.
gewünschten Einstellungen ausgeführt wer-
den.
Insbesondere sollte als erstes die IP- Especially the IP address should be set first.
Adresse eingestellt werden. Dazu ist die For this the CPU must be marked. If you
CPU zu markieren. Arbeitet man mit einer are working with a hardware PLC, you have
Hardware-SPS ist die entsprechende Adres- to enter the according address of the PLC
se der SPS einzugeben unter: under :
Eigenschaften → Allgemein → PROFINET-Schnittstelle [X1] →
Ethernet-Adressen

12
1.2 Anlegen der Hardware Defining the hardware

Die Labor-SPSen haben die Adressen: The laboratory PLCs have the addresses:
10.50.80.17 und 18 (wird auf dem SPS- 10.50.80.17 and 18 (shown on the PLC dis-
Display angezeigt). Beim Arbeiten mit ei- play). When working with a simulator, the
nem Simulator kann die voreingestellte preset address 192.168.0.1 can be used.
Adresse 192.168.0.1 verwendet werden.
Des Weiteren ist es sinnvoll noch System Furthermore, it is useful to define the sys-
und Taktmerker zu bestimmen: tem and clock flags:
Allgemein → System und Taktmerker
Auch die Adressierung der einzelnen I/O- The addresses of the individual I/O modules
Baugruppen kann eingesehen, bzw. geän- can also be viewed or changed. (marking of
dert werden. (Markieren der jeweiligen the respective module is required)
Baugruppe vorausgesetzt)
Dies ist jedoch für dieses Praktikum nicht However, this is not necessary for this lab
nötig! exercise.
Sind alle Einstellungen vorgenommen wor- Once all settings have been made, the con-
den, muss die Konfiguration noch gespei- figuration must be saved and compiled.
chert und übersetzt werden.
Klicken Sie hierzu auf dieses Icon in To do this, click on this icon in the tool-
der Funktionsleiste, oder wählen über die bar, or select the menu item „Übersetzen“
rechte Maustaste den Menüpunkt „Überset- via the right mouse button.
zen“.

13
1.2 Anlegen der Hardware Defining the hardware

Damit ist die Hardware Konfiguration This concludes the hardware defini-
abgeschlossen. tion.
(Die erstellte Konfiguration entspricht nun (The created configuration now corre-
der Konfiguration der Labor-SPSen) sponds to the configuration of the labora-
tory PLCs)

14
2 Programmieren mit dem TIA-Portal
Programming with the TIA Portal

2.1 Funktion eines SPS Programms Function of a PLC


program
1. Nachdem die SPS eingeschaltet wur- After the PLC has been switched on,
de, fragt der Prozessor ab, ob die the processor queries whether the in-
einzelnen Eingänge Spannung füh- dividual inputs are energized or not.
ren oder nicht. Dieser Status der Ein- This status of the inputs is stored
gänge wird in dem Prozessabbild der in the process image of the inputs
Eingänge (PAE) gespeichert. (PAE).
Dabei wird für die Spannung führen- The information "1" or "TRUE" is
den Eingaänge die Information „1“ stored for the inputs carrying voltage,
oder „TRUE“, für die keine Span- "0" or "FALSE" for the inputs not
nung führenden die Information „0“ carrying voltage.
oder „FALSE“ hinterlegt.
2. Der Prozessor arbeitet dann das im The processor then processes the pro-
Programmspeicher hinterlegte Pro- gram stored in the program memory.
gramm ab. Dies besteht aus einer Lis- This consists of a list of logical links
te von logischen Verknüpfungen und and instructions that are processed
Anweisungen, die nacheinander ab- one after the other. The process-
gearbeitet werden. Die Abarbeitung ing always starts with the block OB1.
beginnt dabei immer beim Baustein All other functions must be called
OB1. Alle anderen Funktionen müs- from this block. The only exception
sen aus diesem Baustein heraus auf- is hardware interrupts, such as the
gerufen werden. Ausnahme bilden block OB35, which is called at a fixed
hierbei lediglich Hardwareinterrupts, time interval if it has been configured.
wie z.B. der Baustein OB35, wel- With these interrupts the main pro-
cher in einem fest einstellbaren Zeit- gram is interrupted and the program
intervall aufgerufen wird, falls er pro- of the respective interrupt (wake-up
jektiert worden ist. Bei diesen Inter- alarm) OB is processed. During the
rupts wird das Hauptprogramm un- interrupts, the PAE already read in
terbrochen und das Programm des je- before is accessed for the required in-
weiligen Interrupt (Weckalarm) OBs put information and the program re-

15
2.1 Funktion eines SPS Programms Function of a PLC program

abgearbeitet. Bei den Zugriffen wird sults are written to a so-called process
für die benötigte Eingangsinforma- output image (PAA). The processor
tion auf das bereits vorher eingele- may also access other memory areas
sene PAE zugegriffen und die Ver- for counters, timers and flags during
knüpfungsergebnisse werden in ein program processing.
sogenanntes Prozessabbild der Aus-
gänge (PAA) geschrieben. Auch auf
andere Speicherbereiche für Zäh-
ler, Zeiten und Merker wird wäh-
rend der Programmbearbeitung gege-
benenfalls vom Prozesssor zugegrif-
fen.
3. Im dritten Schritt wird nach Abar- In the third step, the status is trans-
beitung des Anwenderprogramms der ferred from the PAA to the out-
Status aus dem PAA an die Ausgänge put terminals after the user program
übertragen und diese ein- bzw. ausge- has been processed. Thus these are
schaltet. switched on or off.
4. Dieser Vorgang wiederholt sich, so- This process is repeated as long as the
lange sich die SPS im Zustand PLC is in the "Run" or "Run-P" state.
„RUN“ oder „RUN-P“ befindet. (Ab- (Figure 2.1)
bildung 2.1)

16
2.2 Einführung in den Codeeditor
Introduction to the code editor

Abbildung 2.1: Zyklische Programmbearbeitung in der SPS

2.2 Einführung in den Codeeditor


Introduction to the code editor
Für die SPS-Programmierung können ver- Various syntaxes can be used for PLC pro-
schiedene Syntaxen verwendet werden gramming (Figure 2.2). A distinction is
(Abbildung 2.2). Man unterscheidet da- made between ladder diagram (LD), func-
bei in Kontaktplan (KOP), Funktionsplan tion block diagram (FBD) and instruction
(FUP) und Anweisungsliste (AWL). list (IL).
Im Praktikum wird FUP verwendet, da FBD is used in the lab exercises, as it is best
dieser sich für den Einstieg in die SPS- suited for an introduction to PLC program-
Programmierung durch seine Anschaulich- ming due to its clarity. In the folder „Pro-
keit am besten eignet. Im Ordner „Pro- grammbausteine“ the organization block 1
grammbausteine“ ist bereits der Organisa- (OB1) is already present. This block is the
tionsbaustein 1 (OB1) vorhanden. Dieser first block called by the operating system.
Baustein wird als Erstes vom Betriebssys- This is where the cyclic processing of the
tem aufgerufen. Dort beginnt das zykli- program instructions begins.
sche Abarbeiten der Anweisungen des Pro-
gramms.

17
2.2 Einführung in den Codeeditor
Introduction to the code editor

Abbildung 2.2: Darstellung Kontaktplan, Funktionsplan, Anweisungsliste

18
2.2 Einführung in den Codeeditor
Introduction to the code editor

Öffnen Sie nun den Baustein OB1 durch Now open the block OB1 by double-
Doppelklick. Sie können nun im Arbeitsbe- clicking it. You can now edit the program
reich das Programm editieren. Auch die Er- in the work area. You can also set the cre-
stellsprache kann eingestellt werden. ation language.
Überprüfen Sie nun, ob die Erstellsprache Make sure that the creation language is
FUP ist. FBD.

Das Programm wird im eigentlichen Pro- The program is edited in the actual pro-
grammierbereich editiert. Die dazu benötig- gramming area. The operations required for
ten Operationen finden sich in den Funk- this purpose can be found in the function li-
tionsbibliotheken. Werden die Funktions- braries. If the function libraries are not dis-
bibliotheken nicht angezeigt, können diese played, they can be opened by selecting the
durch das Anwählen der Task Card „An- Task Card „Anweisungen“ .
weisungen“ geöffnet werden.

19
2.2 Einführung in den Codeeditor
Introduction to the code editor

In der Funktionsbibliothek werden alle The function library lists all operations that
Operationen aufgelistet, die im Befehlsum- are included in the S7’s scope of com-
fang der S7 enthalten sind. In den Program- mands. Individual operations from the
mierbereich können einzelne Operationen function library can be dragged into the pro-
aus der Funktionsbibliothek per Drag & gramming area using Drag & Drop.
Drop hineingezogen werden.

Um nun eine einfache „UND“ Verknüpfung To create a simple "AND" operation, you
erstellen zu können, benötigt man zwei Ele- need two elements from the function li-
mente aus der Funktionsbibliothek: brary:
1. Zuweisung 1. assignment
2. UND - Verknüpfung 2. AND - Operation
Öffnen Sie dazu die „Bitverknüpfungen“ Open the „Bitverknüpfungen“ and drag the
und ziehen die benötigten Anweisungen in required instructions into the programming
den Programmierbereich. Beginnen Sie mit area. Start with the assignment (the result
der Zuweisung (das Ergebnis der Verknüp- of the link) and then drag the AND block to
fung) und ziehen anschließend die UND - the input of the assignment.
Verknüpfung an den Eingang der Zuwei-
sung.

20
2.2 Einführung in den Codeeditor
Introduction to the code editor

Um die Verknüpfung fertig zu stellen muss In order to complete the operation, it only
sie nur noch mit den Ein- und Ausgängen needs to be provided with the inputs and
versehen werden. Jetzt kommen die in der outputs. Now the I/O ranges set in the hard-
Hardwarekonfiguration eingestellten E/A- ware configuration come into effect (Figure
Bereiche zum Tragen (Abbildung 2.3). 2.3).

Abbildung 2.3: Die byteweise Organisation von Eingängen, Ausgängen und Merkern

21
2.2 Einführung in den Codeeditor
Introduction to the code editor

Wählen Sie zwei Eingänge und einen Select two inputs and one output from the
Ausgang aus dem E/A Bereich der HW- I/O section of the hardware configuration
Konfiguration und schreiben Sie sie an die and write them to the appropriate places in
entsprechenden Stellen in Ihrer Verknüp- your operation.
fung.
Achtung: Attention:
Das TIA-Portal benutzt die „neue“ interna- The TIA portal uses the "new" international
tionale Syntax nach Norm IEC 61131. syntax according to the IEC 61131 stan-
dard.
Bei der IEC-Syntax wird die Adressierung In IEC syntax, addressing is initiated with
mit einem „%“ eingeleitet, welchem die a "‘%"’ followed by the address type (I for
Adressart folgt (I für Eingang, Q für Aus- input, Q for output and M for flag) and then
gang und M für Merker) und anschließend the actual address. This is completed by the
die eigentliche Adresse. Diese wird durch addressed bit (byte and bit separated by a
die Angabe des adressierten Bits (Byte dot). A global variable with this address is
und Bit durch einen Punkt getrennt) ver- automatically created. (Tag_...)
vollständigt. Es wird eine globale Variable
mit dieser Adresse automatisch angelegt.
(Tag_...)
Soll jedoch die „alte“ Step 7 Syntax (z.B. However, if the "‘old"’ Step 7 syntax (e.g.
E0.0 für Eingangsbyte 0, Bit 0) verwen- E0.0 for input byte 0, bit 0) is to be used,
det werden, kann die Mnemonik unter den the mnemonics can be changed under „all-
„allgemeinen Einstellungen“ geändert wer- gemeinen Einstellungen“.
den.

Dieses Programm würde, wenn an den Ein- This program would output a voltage of
gängen 0.0 und 0.1 Spannung anläge, am 24V at output 0.0 if a voltage is present at
Ausgang 0.0 eine Spannung von 24V aus- the inputs 0.0 and 0.1.
geben.

22
2.3 Symbolische Programmierung
Symbolic Programming

Nun kann das Programm gespeichert Now, the program can be saved to disk.
werden.

2.3 Symbolische Programmierung


Symbolic Programming
Symbolische Programmierung: Aus Symbolic Programming: For reasons of
Gründen der besseren Verständlichkeit better comprehensibility, each operand/-
kann für jeden Operanden/Variable ein variable can be given an understand-
verständlicher Name vergeben werden, da able name, since in larger programs, the
bei absoluter Adressierung, in größeren overview is quickly lost when using abso-
Programmen, schnell die Übersicht ver- lute addresses. It is useful to assign un-
loren geht. Es ist sinnvoll verständliche, derstandable, plant-related names. The pro-
anlagenbezogene Namen zu vergeben. gram becomes much more comprehensi-
Das Programm wird so wesentlich ver- ble. Additional comments can often be dis-
ständlicher. Es kann häufig auf zusätzliche pensed with.
Kommentare verzichtet werden.
Das neue TIA-Portal ist für symbolische The new TIA portal has been optimized for
Programmierung optimiert worden. Da- symbolic programming. This results in a
durch ergibt sich eine Reihe von Vorteilen, number of advantages, as the control sys-
da sich dann die Steuerung darum kümmert, tem then takes care that the data is stored in
daß die Daten speicheroptimiert abgelegt a memory optimized manner.
werden.

• Leichter lesbare Programme durch • Easier to read programs through un-


verständliche Variablennamen derstandable variable names
• Automatische Aktualisierung der • Automatic update of the variable
Variablennamen im gesamten Pro- names in the entire program after
gramm nach Änderungen Changes
• Speicherablage der Programmdaten • Memory storage of the program data
muss nicht selbst verwaltet werden does not have to be managed by the
user
• Schnellerer Zugriff auf die Daten
• Faster access to data
• Weniger Programmfehler durch Da-
tentypprüfung (Gültigkeit) im gesam- • Fewer program errors due to typed
ten Programm data (validity) in the entire program

Anlegen der Symbole: Assigning of Symbols:


Es gibt zwei Möglichkeiten symbolische There are two ways to assign symbolic
Namen zu vergeben: names:

23
2.3 Symbolische Programmierung
Symbolic Programming

1. Anlegen in der Variablentabelle: 1. Assignment in the variable table:


Dazu muss in der Projektnavigation For this purpose the menu item „PLC
der Menuepunkt „PLC - Variablen“ - Variablen“ must be opened in the
geöffnet werden. Unter „Alle Varia- project navigation. Under „Alle Va-
blen anzeigen“ ist es nun möglich riablen anzeigen“ it is now possible to
neue Variablen mit Namen, Datentyp create new variables with name, data
und Adresse anzulegen, oder bereits type and address, or to change exist-
bestehende zu ändern. ing ones.
(siehe Abbildung 2.4) (see figure 2.4)
2. Vergabe der symbolischen Namen di- 2. Assignment directly in the program:
rekt im Programm: As soon as you specify a variable in
Sobald Sie im Programm eine Va- the program, it can be redefined or re-
riable angeben, kann diese neu defi- named. (right mouse button opens a
niert oder umbenannt werden. (rechte selection menu)
Maustaste öffnet ein Auswahlmenue) The new variable created in this way
Die so angelegte neue Variable er- also appears immediately in the vari-
scheint sogleich auch in der Varia- able table.
blentabelle. (see figure 2.5)
(siehe Abbildung 2.5)

24
2.3 Symbolische Programmierung
Symbolic Programming

Abbildung 2.4: Anlegen der Variablen in der Variablentabelle

Abbildung 2.5: Anlegen der Variablen direkt im Programm

25
2.4 Simulation mit PLCSIM Simulation with PLCSIM

2.4 Simulation mit PLCSIM Simulation with PLCSIM


Generell steht zum Testen der Program- In practice, there is often no hardware setup
me häufig kein Hardwareaufbau zur Ver- available for testing the programs. Either
fügung. Entweder, weil die entsprechenden because the corresponding equipment is too
Anlagen zu teuer sind, oder weil Fehlpro- expensive, or because faulty programming
grammierungen und somit potentielle Schä- and thus potential damage to the hardware
den an der Hardware vermieden werden should be avoided. PLCSIM runs on the
sollen. PLCSIM läuft auf demselben Rech- same computer as Step 7 and simulates a
ner wie Step 7 und simuliert eine vollstän- complete PLC. You can configure your PLC
dige SPS. Sie können Ihre SPS und al- and all related modules in STEP 7, pro-
le zugehörigen Module in STEP 7 konfi- gram your application logic and then load
gurieren, Ihre Anwendungslogik program- the hardware configuration and the program
mieren und dann die Hardwarekonfigura- into the simulated PLC in PLCSIM. The
tion und das Programm in die simulierte program can now be executed (also step by
SPS in PLCSIM laden. Das Programm kann step) and the variables or the inputs and out-
nun (auch schrittweise) ausgeführt und die puts can be observed. Once activated, it
Variablen bzw. die Ein- und Ausgänge be- simulates the complete communication be-
obachtet werden. Einmal aktiviert fängt es tween Step 7 and the PLC. It should be
die vollständige Kommunikation zwischen noted that the cycle times are significantly
Step 7 und der SPS ab. Es ist zu beachten, shorter than with the real PLC due to the
dass die Zykluszeiten durch die Simulati- simulation. In order to test the program just
on deutlich geringer sind als bei der realen created with PLCSIM, the simulator must
SPS. Um das eben angefertigte Programm be started. This is best done from the TIA
mit PLCSIM testen zu können, muss der Si- Portal.
mulator gestartet werden. Das geschieht am
Besten aus dem TIA - Portal heraus.
Dazu wählen Sie den Menuepunkt: To do so choose the menu item:
„Online“ → „Simulation“ → „Starten“
oder klicken den entsprechenden Button in or click on the respective button in the func-
der Funktionsleiste. tion bar.

26
2.4 Simulation mit PLCSIM Simulation with PLCSIM

Abbildung 2.6: PLCSIM Projektansicht

Bestätigen Sie anschliessend die Meldung, Then confirm the message that all other in-
daß alle anderen Schnittstellen deaktiviert terfaces are deactivated and wait until PLC-
werden und warten bis PLCSIM gestartet SIM is started. (This may take some sec-
ist. (Das kann durchaus einige Sekunden onds!)
dauern!)
Im Simulator stehen nun zwei Ansichtsmo- The simulator now offers two view modes,
di, die Projektansicht (Abbildung 2.6), oder the project view (Figure 2.6), or the com-

27
2.4 Simulation mit PLCSIM Simulation with PLCSIM

Abbildung 2.7: PLCSIM Kompaktansicht

die Kompaktansicht (Abbildung 2.7), zur pact view (Figure 2.7).


Verfügung.
Zwischen beiden Ansichten kann jederzeit You can switch between the two views at
gewechselt werden. any time.
Achtung! Beachten Sie bitte, daß Sie für äl- Attention! Please note that for older PLCs
tere SPSen (z.B. 300) den Simulator V5.x (e.g. 300) you have to use the Simula-
und für die neuen 1200/1500 er CPUs PLC- tor V5.x and for the new 1200/1500 CPUs
SIM 1200/1500 starten müssen! PLCSIM 1200/1500!
Um das Programm in die Simulator CPU To load the program into the simulator
einzuspielen, markieren Sie den Ordner CPU, mark the folder Blocks (in this case
Bausteine (in diesem Fall der OB1) und the OB1) and click on „Laden“ (marked
klicken auf „Laden“ (in der Abbildung 2.8 with a red arrow in figure 2.8 ) and select the
mit einem roten Pfeil markiert) und wählen parameters of the interface (figure 2.9)
die Parameter der Schnittstelle (Abbildung
2.9)

28
2.4 Simulation mit PLCSIM Simulation with PLCSIM

Abbildung 2.8: Laden der Bausteine in PLCSIM

Abbildung 2.9: Einstellen der Schnittstelle beim Laden

29
2.4 Simulation mit PLCSIM Simulation with PLCSIM

Jetzt ist das Programm in der Simulation Now the program is in the simulation and
und kann getestet werden. can be tested.
Um das Programm zu testen, benötigen Sie To test the program, you need a SIM table
eine SIM-Tabelle auf dem Simulator. Schal- on the simulator. To do this, switch to the
ten Sie diesen dazu in die Projektansicht project view and create a new table in which
und legen eine neue Tabelle an, in welche you enter the required variables (here the
Sie die benötigten Variablen (hier die bei- two inputs and the output). (Sim table 1 is
den Eingänge und der Ausgang) eintragen. already available and can be used)
(Sim table 1 steht bereits zur Verfügung und
kann verwendet werden)

Haben Sie eine, oder mehrere SIM-Tabellen If you have created one or more SIM ta-
erstellt, können diese auch als Projekt (im bles, they can also be saved as a project (in
Simulator!) gespeichert werden und stehen the simulator!) and are available for further
so zur weiteren Verwendung immer wieder use.
zur Verfügung.
„Projekt“ → „Speichern unter“
Nachdem das Programm erfolgreich gela- After the program has been loaded success-
den und eine SIM-Tabelle erstellt wurde, ist fully and a SIM table has been created, it
es notwendig die simulierte CPU zu starten. is necessary to start the simulated CPU. To
Klicken Sie dazu auf den entsprechenden do this, click on the corresponding button
Button im Simulator und schalten im TIA in the simulator and switch on „Beobachten
- Portal den „Beobachten Modus“ ein . Modus“ in the TIA Portal.

30
2.4 Simulation mit PLCSIM Simulation with PLCSIM

Tipp: Merker können auch direkt aus dem Hint: Flags can also be controlled directly
Programm heraus (über die rechte Maustas- from within the program (using the right
te) gesteuert werden. Dazu muss „Beobach- mouse button). For this purpose „Beobach-
ten“ aktiviert sein. (siehe Abbildung 2.10) ten“ must be activated. (see figure 2.10)
Bei Eingängen ist das nicht möglich. This funcrion is not available for inputs.

Abbildung 2.10: Steuern von Merkern aus dem Programm heraus

Sie können nun damit beginnen Ihr Pro- You can now start testing your program. To
gramm zu testen. Wechseln Sie dazu wieder do so, switch back to the simulator and con-
in den Simulator und steuern Sie die ent- trol the corresponding inputs.
sprechenden Eingänge.
You have several possibilities for this: (Fig-
Sie haben dazu mehrere Möglichkeiten: ure 2.11)

31
2.4 Simulation mit PLCSIM Simulation with PLCSIM

Abbildung 2.11: Steuern der Eingänge im Simulator

(Abbildung 2.11)

1. Direktes Steuern des entsprechenden Direct control of the corresponding


Eingangsbits: input bit:
Dazu muss im Simulator in die Zeile, For this purpose, select the line con-
die den zu steuernden Eingang ent- taining the input to be controlled in
hält, gewechselt und der Haken un- the simulator and set or remove the
ter „Bits“ gesetzt oder weggenom- check mark under "Bits".
men werden.
2. Steuern der einzelnen Bits eines ge- Control the individual bits of an en-
samten Eingangsbytes: tire input byte:
Dazu muss eine Variable vom Daten- For this purpose, a variable of data
typ (Eingangs) Byte im TIA - Por- type (input) byte must be created in
tal erstellt und in den Simulator gela- the TIA Portal and loaded into the
den werden. Es erscheinen nun unter simulator. All 8 bits of the byte now
„Bits“ alle 8 Bit des Bytes und kön- appear under "‘Bits"’ and can be con-
nen gesteuert werden. trolled.
3. Steuern von anderen Werten: Control of other values:
Standardmässig können in PLCSIM By default, only inputs can be con-
nur Eingänge gesteuert werden. Um trolled in PLCSIM. In order to con-
auch andere Variablen (Ausgänge, trol other variables (outputs, flags...),
Merker...) steuern zu können, muss the function „Änderung von Nicht -
zuerst die Funktion „Änderung von Eingängen aktivieren / deaktivieren“
Nicht - Eingängen aktivieren / deak- must be selected first. Click on this
tivieren“ angewählt werden. Klicken icon in the function bar of the
Sie hierzu auf dieses Icon in der simulator. Now other values, e.g. in-

32
2.5 Übungen in FUP Exercises in FBD

Funktionsleiste des Simulators. Jetzt teger variables, can also be updated.


können auch andere Werte, z.B. In- To do so, enter the new value in
teger Variablen, aktualisiert werden. the column „Direkte Änderung“ and
Geben Sie dazu den neuen Wert in der press the return key. The new values
Spalte „Direkte Änderung“ ein und take effect immediately.
drücken die Eingabetaste. Die neuen
Werte werden augenblicklich über-
nommen.

Testen Sie nun den Simulator. Now test the simulator.


Verändern Sie auch den Code (z.B. Austau- Try changing the code (e.g. exchange the
schen der „UND“ gegen eine „XOR“ Ver- "AND" with a "XOR" operation) and load
knüpfung) und laden den Baustein erneut in the block into the simulator again. After
den Simulator. Nach dem Laden des Bau- loading the block you can see that the logic
steins kann man beobachten, daß sich die of the program has changed.
Logik des Programmes geändert hat.

2.5 Übungen in FUP Exercises in FBD


1. Ausgang %Q 0.0 soll aktiv sein, so- Output %Q 0.0 shall be active as long
lange die Eingänge %I 0.0 und %I 0.1 as the inputs %I 0.0 and %I 0.1 are
nicht eingeschaltet sind. not switched on.
2. Ausgang %Q 0.1 soll aktiv sein, Output %Q 0.1 shall be active when
wenn Eingang %I 0.2 (Ein) einge- input %I 0.2 (On) is switched on. If
schaltet wird. Wird %I 0.2 wieder %I 0.2 is switched off again, then
ausgeschaltet, soll Ausgang %Q 0.1 Output %Q 0.1 remains active un-
solange weiterleuchten, bis Eingang til input %I 0.7 (Off) is activated.
%I 0.7 (Aus) betätigt wird. (Nicht mit (Do not program with Set and Reset!)
Setzen und Rücksetzen programmie- Tip: Implement the logic of the self-
ren!) Tipp: Logik der Selbsthaltung hold state in the PLC program.
in SPS-Programm umsetzen.
3. Lösen Sie die gleiche Aufgabe (ande- Solve the same task (use other out-
re Ausgänge verwenden) mit einem puts) with an SR gate and also with
SR- und auch mit einem RS-Gatter. an RS gate.
„Einfache Anweisungen“ → „Bitverknüpfungen“

Was beobachten Sie, wenn Setzen What do you observe when setting
und Rücksetzen gleichzeitig aktiviert and resetting are activated simultane-
werden? ously?

33
2.5 Übungen in FUP Exercises in FBD

Wichtig → Drahtbruchsicherheit: Important → wire break safety:


Aus Gründen der Drahtbruchsicher- For reasons of wire breakage pro-
heit werden Ein-Taster immer als tection, ON switches are always
„Schliesser“ und Aus-Taster immer configured as "normally open" and
als „Öffner“ projektiert. Würde näm- OFF switches always as "normally
lich ein „Schliesser“ als Aus-Taster closed". If a "normally open" button
verwendet werden, ließe sich die An- was used as the "off" button, the sys-
lage bei einer Unterbrechung des tem could no longer be switched off
Aus-Stromkreises, nicht mehr aus- if the off circuit was interrupted!
schalten!
• "Normally open" always returns
• „Schliesser“ liefern unbetätigt FALSE if not operated and
immer FALSE und betätigt TRUE if operated.
TRUE.
• "Normally closed"’ always re-
• „Öffner“ liefern unbetätigt im- turns TRUE and FALSE if
mer TRUE und betätigt FALSE. pressed.

34
2.5 Übungen in FUP Exercises in FBD

4. Schreiben Sie ein Programm, wel- Write a program that displays the sig-
ches den Signalzustand der 8 Ein- nal state of the 8 inputs %I 1.0...%I
gänge %I 1.0...%I 1.7 am Aus- 1.7 at the output byte %QB 1. (Out-
gangsbyte %QB 1 anzeigt. (Aus- put byte 1 contains the output %Q
gangsbyte 1 beinhaltet die Ausgän- 1.0...%Q 1.7) If, for example %I 1.0
ge %Q 1.0...%Q 1.7) Wird z.B. %I becomes TRUE, %Q 1.0 should be-
1.0 TRUE, soll %Q 1.0 TRUE wer- come TRUE, %I 1.1 becomes TRUE,
den, wird %I 1.1 TRUE, soll %Q 1.1 %Q 1.1 should become TRUE, etc.
TRUE werden usw.
Please note that the state of a whole
Beachten Sie, daß der Zustand eines byte is "transferred" to another byte,
ganzen Bytes auf ein anderes Byte and therefore there may already be
„übertragen“ wird und dafür mögli- a finished function available in the
cherweise bereits eine fertige Funk- function library! (of course now NOT
tion in den Anweisungen zur Ver- under „Bitverknüpfungen“ anymore)
fügung steht! (natürlich nun NICHT
mehr unter „Bitverknüpfungen“)
5. Schreiben Sie ein Programm, in dem Write a program in which an output is
ein Ausgang um 10 Sekunden verzö- switched with a delay of 10 seconds
gert eingeschaltet wird, nachdem ein after an input (or flag) delivers TRUE
Eingang (oder Merker) TRUE-Signal signal.
liefert.
Sie werden für diese Aufgabe eine You will need a time function for this
Zeitfunktion benötigen. Diese finden task. You can find this under:
Sie unter:
„Einfache Anweisungen“ → „Zeiten“ → „IEC-Zeiten“

Wählen Sie die geeignete Funktion Select the appropriate function for
für diese Aufgabe und lassen sich this task and let the required data
den benötigten Datenbaustein auto- block be automatically generated.
matisch erzeugen.
Vergeben Sie eine Zeit von 10s (Syn- Assign a time of 10s (syntax: T#10s).
tax: T#10s). Laden Sie Ihr Programm Load your program into the simulator
in den Simulator und schalten im and switch on the „Beobachten Mo-
Programmierbereich den „Beobach- dus“ (glasses) in the programming
ten Modus“ (Brille) ein. area.
Was beobachten Sie, wenn Sie das What do you observe if you switch
„Ein“-Signal am Starteingang des Ti- off the "On" signal at the start input of
mers, vor Ablauf der projektierten the timer before the configured time
Zeit, wieder wegschalten? Wie könn- has elapsed? How could you change
ten Sie dieses Verhalten - falls uner- this behaviour - if unwanted?

35
2.6 Bausteinstruktur Program blocks

wünscht - ändern?

Schreiben Sie jede Übung in ein eige- Write each exercise in a separate net-
nes Netzwerk und testen Ihre Program- work and test your programs. Save your
me. Speichern Sie Ihr Programm auf program on USB stick or network drive.
USB-Stick oder Netzlaufwerk. Verwen- Use the specified inputs and outputs, or
den Sie die angegebenen Ein- und Aus- adequate flags (for controlling in the pro-
gänge, oder adäquate Merker (zum Steu- gram)
ern im Programm)

2.6 Bausteinstruktur Program blocks


In Industrieanlagen findet man norma- In industrial plants you normally do not find
lerweise keine Anlage in der ein SPS- a plant where a PLC program with only one
Programm mit nur einem Baustein verwen- program block is used.
det wird.
Man unterscheidet in unterschiedliche Ar- A distinction is made between different
ten von Bausteinen: types of blocks:

1. Organisationsbausteine (OB): bilden Organization blocks (OB): form the


die Schnittstelle zwischen dem Be- interface between the operating sys-
triebssystem der CPU und dem An- tem of the CPU and the user program.
wenderprogramm. Mit Hilfe von OBs With the help of OBs, program parts
können Programmteile gezielt zur can be executed in a targeted manner,
Ausführung gebracht werden, z.B. e.g. when the CPU starts up, in cyclic
beim Anlauf der CPU, in zyklischer or time-clocked execution, when er-
oder auch zeitlich getakteter Ausfüh- rors occur, when process alarms oc-
rung, beim Auftreten von Fehlern, cur, etc.
beim Auftreten von Prozessalarmen,
usw.
Organisationsbausteine werden also Organization blocks are thus started
von der Hardware initiiert. by the hardware.
Laut Norm sollten nur hier globale According to the standard, global
Variablen verwendet werden. variables should only be used here.
2. Funktionen (FC): sind die eigent- Functions (FC): are the actual pro-
lichen Programme der SPS. Hier grams of the PLC. Here the read-
werden die Abläufe und die Re- ings and reactions to input signals are
aktionen auf Eingangssignale abge- stored. They are used to structure
legt. Sie dienen dazu, um Program- programs and to assign their func-
me zu strukturieren und ihre Funk- tions to corresponding plant sections.

36
2.6 Bausteinstruktur Program blocks

tionen entsprechenden Anlagentei- Functions can be programmed in ex-


len zuzuordnen. Funktionen können actly the same way as an organization
genau so programmiert werde wie block. However, they can also be pro-
ein Organisationsbaustein. Sie kön- grammed with parameters. This tech-
nen aber auch parametrierbar pro- nique is used when certain identical
grammiert werden. Diese Technik functions are required repeatedly in a
wird dann verwendet, wenn in einer system (e.g. control of motors).
Anlage bestimmte identische Funk-
tionen immer wieder benötigt werden
(z.B. Ansteuerung von Motoren).
3. Funktionsbausteine (FB): Funktions- Function blocks (FB): Function
bausteine stellen Funktionen mit der blocks represent functions with the
Möglichkeit zum Übergeben von possibility of "passing values" when
Werten bei Funktionsaufruf dar, je- the function is called, but variables
doch können hier zusätzlich Va- can also be statically stored tem-
riablen statisch zwischengespeichert porarily. This means that an FB must
werden. Das bedeutet, daß bei Ver- be used when using SR blocks or
wendung von SR-Bausteinen oder edges, since values must be stored
Flanken zwingend ein FB verwen- "beyond one PLC cycle"!
det werden muss, da hier Werte über
einen SPS-Zyklus hinaus gespeichert
werden müssen!
4. Datenbausteine (DB): Informationen Data blocks (DB): Information about
über den Zustand des Prozesses las- the state of the process can only be
sen sich nur in Merkern oder Da- stored in flags or data blocks. In con-
tenbausteinen hinterlegen. Datenbau- trast to flags, data blocks can archive
steine können, im Gegensatz zu Mer- considerably larger amounts of data
kern, deutlich größere Datenmengen more flexibly, but are also slower to
flexibler archivieren, sind aber auch access.
im Zugriff langsamer.

Um eine parametrierbare Funktion zu er- To create a parameterizable function, a


stellen, muss im TIA-Portal zum OB1 eine function (FC1) must be added to OB1 in the
Funktion (FC1) hinzugefügt werden. TIA portal.

37
2.6 Bausteinstruktur Program blocks

In der Projektnavigation unter „Programm- In the project navigation under „Pro-


bausteine“ → „Neuen Baustein hinzufü- grammbausteine“ → „Neuen Baustein hin-
gen“ wählen Sie den Bausteintyp „Funkti- zufügen“ select the block type „Funkti-
on“ aus. Entscheiden Sie sich für die Pro- on“. Choose the programming language
grammiersprache die Sie in dem Baustein you want to use in the block (it doesn’t
verwenden wollen (das muss nicht die glei- have to be the same language as the other
che Sprache wie in den anderen Bausteinen blocks!), give it a name and press the "OK"
sein!), vergeben eventuell noch einen Na- button.
men und drücken den „OK-Button“.
Die Funktion wird nun erstellt und erscheint The function is now created and appears
kurz darauf in der Projektnavigation unter shortly afterwards in the project navigation
den Programmbausteinen. below the program blocks.

38
2.6 Bausteinstruktur Program blocks

Wenn man nun die Funktion doppelklickt, If you now double-click the function, the
öffnet sich der Programmierbereich mit programming area opens with the usual
dem gewohnten Fenster für das Programm. window for the program. In addition, there
Darüber hinaus gibt es nun die Mög- is now the possibility to declare function-
lichkeit funktionsinterne Variablen (Temp, internal variables (Temp, Constant) and to
Constant) zu deklarieren und die Schnitt- define the interfaces (Input, Output, InOut,
stellen (Input, Output, InOut, Return) der Return) of the function.
Funktion festzulegen.
Funktionsinterne (lokale) Variablen: Function internal (local) variables:
• Temp: temporäre Lokaldaten, zum • Temp: tempory local data, for saving
Speichern von Zwischenergebnissen. intermediate results. These are only
Diese bleiben nur einen SPS-Zyklus retained for one PLC cycle!
lang erhalten!
• Constant: Constants used within the
• Constant: Konstanten, die innerhalb block.
des Bausteins verwendet werden.
Schnittstellen der Funktion: Interfaces of the function:
• Input: Parameter, deren Werte in den • Input: Parameters whose values are
Baustein eingelesen werden. read into the block.
• Output: Parameter, deren Werte vom • Output: Parameters whose values are
Baustein ausgegeben werden. output by the block.
• InOut: Parameter, die in den Bau- • InOut: Parameters which are read
stein eingelesen und nach der Bear- into the block and output again into
beitung innerhalb des Bausteins wie-

39
2.6 Bausteinstruktur Program blocks

der in denselben Parameter ausgege- the same parameter after processing


ben werden. within the block
• Return: Der Rückgabewert der Funk- • Return: The return value of the func-
tion. (Wird an den aufrufenden Bau- tion. (Returned to the calling block.
stein zurückgegeben. Verwendung Use optional)
optional)
Definieren Sie zwei Eingangsparameter Define two input parameters and one output
und einen Ausgangsparameter des Typs parameter of type "BOOL". (By the way,
„BOOL“. (Es können übrigens nicht nur not only single bits can be transferred, but
einzelne Bits übergeben werden, son- also bytes, words, times, counters... etc.)
dern auch Bytes, Wörter, Zeiten, Zähler...
usw.)
Nachdem die Parameter bestimmt wurden, After the parameters have been defined,
kann nun eine beliebige Verknüpfung im you can now create any operation in the
Baustein erstellt werden. block.

Benutzen Sie bei der Beschreibung der Ver- When describing the link with variables,
knüpfung mit Variablen die entsprechenden use the corresponding function-internal pa-
funktionsinternen Parameter (Schnittstellen rameters (interfaces or internal variables).
bzw. interne Variablen). Es könnten aber Global variables can also be used. (In con-
auch globale Variablen benutzt werden. (im trast to the function-internal variables, these
Gegensatz zu den funktionsinternen Varia- are valid for the entire program and not only
blen sind diese im gesamten Programm und in a single block)

40
2.6 Bausteinstruktur Program blocks

nicht nur in einem einzelnen Baustein gül-


tig)
Die Verwendung von globalen Variablen The use of global variables (e.g. %I0.0) has
(z.B. %I0.0) hat den Effekt, daß bei den the effect that the fixed input is not included
Aufrufen des Bausteins der feste Eingang as a parameter in the function when the
nicht als Parameter in die Funktion ge- block is called and is therefore taken into
führt und so bei jedem Aufruf der Funk- account each time the function is called.
tion gleich berücksichtigt wird. (Ausgän- (Outputs, flags etc. can be used in the same
ge, Merker usw. können gleichermaßen ver- way)
wendet werden)
Beschalten Sie nun die Logikverknüpfun- Now connect the logic links (as shown in
gen und speichern den Baustein ab. figure and save the block.

Um nun die Funktion nutzen zu können In order to use the function, it must be
muss sie aufgerufen werden. Rufen Sie nun called. Now call the function from OB1.
die Funktion aus dem OB1 heraus auf.
Wechseln Sie dazu in den Baustein To do so, change to the block "Main[OB1]"
„Main[OB1]“ und ziehen die Funktion and drag the function "FC1" from the pro-
„FC1“ aus den Programmbausteinen in ein gram blocks into an empty network of
leeres Netzwerk des OB1. OB1.

41
2.6 Bausteinstruktur Program blocks

Nun können die Schnittstellen mit richti- Now the interfaces can be described with
gen Ein- und Ausgangsvariablen beschrie- correct input and output variables. EN and
ben werden. EN und ENO brauchen bei der ENO need not be taken into account in the
Beschreibung nicht berücksichtigt zu wer- description. These bits are used to enable
den. Diese Bits fungieren nur zur Freiga- the call. (A function call can thus also be
be des Aufrufs. (Ein Funktionsaufruf kann executed "conditionally" – i.e. depending
also auch „bedingt“ ausgeführt werden – on e.g. fulfilled interlocking conditions, or
also abhängig von z.B. erfüllten Verriege- correctly processed other functions. . . )
lungsbedingungen, oder korrekt abgearbei-
teten anderen Funktionen. . . )
Starten Sie nun den Simulator und übertra- Now start the simulator and transfer the
gen das komplette Programm. complete program.
Testen Sie Ihre Funktion nun mit PLCSIM Now test your function with PLCSIM or on
oder auf der SPS. the PLC.
Achtung: Attention:
Es muss immer die Funktion UND der auf- The function AND the calling block must
rufende Baustein übertragen werden, da ei- always be transferred, since a function sim-
ne Funktion ohne Aufruf einfach nur nicht ply does not work without a call. On the
funktioniert. Dagegen führt ein Aufruf ohne other hand, a call without "transferred func-
übertragene Funktion zu einem Fehler! tion" leads to an error!
Tipp: Hint:
• Definieren Sie Ihre Ein- und Ausgän- • Define your inputs and outputs byte-
ge Byteweise (PLC Variablen) für die wise (PLC variables) for the simula-

42
2.6 Bausteinstruktur Program blocks

Simulation tion
• Lösen Sie die Simulationstabelle vom • Detach the simulation table from the
Simulator ab, um den Bildschirm simulator to keep the screen clear.
übersichtlich zu halten. (siehe Pfeil) (see arrow) You can now place the ta-
ble (without simulator) freely on the
Sie können nun die Tabelle (ohne Si-
screen.
mulator) frei am Bildschirm platzie-
ren.

Rufen Sie nun den Funktionsbaustein mehr- Now call the function module several times.
fach auf. Nach dem Speichern und folgen- After saving and subsequent loading of
dem Laden ALLER Bausteine in den Si- ALL blocks into the simulator the status in
mulator kann der Status im OB1 beobachtet OB1 can be observed.
werden.

43
2.6 Bausteinstruktur Program blocks

Wenn Sie die einzelnen Funktionsaufrufe If you test the individual function calls with
mit verschiedenen Ein- und Ausgängen tes- different inputs and outputs, you will find
ten, werden Sie feststellen, daß die in der that the global variable used in the function
Funktion verwendete globale Variable in al- has the same effect in all calls.
len Aufrufen gleich wirkt.
Achtung: Deshalb ist davon abzuraten in Attention: It is therefore not advisable to
Funktionen oder Funktionsbausteinen glo- use global variables in functions or function
bale Variablen zu verwenden, da die Bau- blocks, since the blocks are then difficult to
steine dann nur schwer mehrfach aufrufbar call or reuse several times!
oder wiederverwendbar sind!
Soll also eine Funktion mehrfach ver- If a function is to be used several
wendet werden, sollten die Schnittstel- times, the interface parameters should be
lenparameter verwendet und nur mit used and you should only program with
funktionsinternen Variablen program- function-internal variables!
miert werden!
Beobachten der einzelnen Aufrufe: Observing the individual calls:
Das Beobachten der einzelnen Aufrufe Observing the individual calls is easy. Click
ist leicht. Den einzelnen Funktionsaufruf on the individual function call and select
anklicken und mit der rechten Maustas- with the right mouse button from a menu
te aus einem Menue den Punkt ‘Öffnen the item ‘Öffnen und beobachten“ . Now
und beobachten“ wählen. Nun kann das the program of the selected function call

44
2.6 Bausteinstruktur Program blocks

Programm des gewählten Funktionsaufru- can be observed.


fes beobachtet werden.

45
3 Ablaufsteuerungen mit Graph
Sequence controls with Graph

3.1 Neues Projekt erstellen Create new project


Erstellen Sie zuerst ein neues Projekt, mit First create a new project with the same
der gleichen Hardware wie in den Übungen hardware as in the "Exercises before but
zuvor, jedoch mit einem neuen Projektna- with a new project name.
men.
Tipp: Speichern Sie das alte Projekt un- Hint: Save the old project under a differ-
ter anderem Namen ab und löschen alle ent name and delete all blocks except OB1.
Bausteine außer dem OB1. Im OB1 lö- In OB1 you delete all links from the indi-
schen Sie alle Verknüpfungen aus den ein- vidual networks. Don’t forget to delete all
zelnen Netzwerken. Nicht vergessen, auch self-created variables (not the system and
alle selbst erstellten Variablen (nicht die clock flags) from the PLC variables, too.
System- und Taktmerker) aus den PLC- You have now created a new project with
Variablen zu löschen. Sie haben nun ein minimum time expenditure. This is empty,
neues Projekt mit minimalem Zeitaufwand but with hardware that has already been pa-
erstellt. Dieses ist leer, jedoch mit bereits rameterized.
fertig parametrierter Hardware.
Fügen Sie nun in der Projektnavigation Now add a new block in the project navi-
einen neuen Baustein hinzu und wählen gation and select "Function block" as block
als Bausteintyp „Funktionsbaustein“. Än- type. "Change the language to "Graph",
dern Sie die Sprache auf „Graph“, verge- optionally assign a name and confirm the
ben optional einen Namen und bestätigen block settings with "OK".
die Bausteineinstellungen mit „OK“.

46
3.1 Neues Projekt erstellen Create new project

Es öffnet sich ein graphischer Editor für die A graphical editor opens for the creation of
Erstellung von Schrittketten. step sequences.

Ändern Sie die Sprache für die einzel- Change the language for the individual net-
nen Netzwerke des Funktionsbausteins in works of the function block in FBD.
FUP.
Unter „Eigenschaften“ → „Allgemein“ → „Sprache in Netzwerken“

Die anderen Einstellungen können Sie so You can leave the other settings as they

47
3.2 Schrittkette erstellen Creating the step sequence

belassen. are.
Jetzt kann mit der Erstellung der Now you can start creating the step se-
Schrittkette begonnen werden. quence.

3.2 Schrittkette erstellen Creating the step sequence


Definitions:
• Eine Schrittkette besteht aus Schrit- A step sequence consists of steps and
ten und Transitionen. transitions.
• Ein Schritt dient dazu, Automati- Steps serve to break down automation
sierungsaufgaben in Teilaufgaben zu tasks into subtasks. A step is associ-
zerlegen. Ein Schritt ist mit Aktio- ated with actions, such as switching
nen verbunden, wie z.B. Motoren ein- motors on or off or operating valves.
oder ausschalten oder Ventile betäti- Steps are processed in a defined se-
gen. Schritte werden in einer festge- quence.
legten Reihenfolge abgearbeitet.
• Aktionen enthalten die „Aufgaben“, Actions contain the "tasks" that are
die während der Bearbeitung eines performed while a step is being pro-
Schrittes ausgeführt werden. Aktio- cessed. Actions can be linked to con-
nen können mit Bedingungen ver- ditions or supervised. (Interlock and
knüpft oder überwacht werden. (In- Supervision)
terlock und Supervision)
• Transitionen stehen zwischen den Transitions stand between the indi-
einzelnen Schritten und enthalten die vidual steps and contain the condi-
Weiterschaltbedingungen von einem tions for advancing from one step to
Schritt zum Nächsten. the next.
• Der Initialschritt ist der Schritt einer The initial step is the step in a se-
Ablaufkette, der beim ersten Aufruf quence chain that is active when a
eines Graph-Funktionsbausteins, oh- graph function module is called for
ne vorherige Abfrage von Bedingun- the first time, without any prior con-
gen, als Erstes aktiv ist. dition queries.
• Mit dem Element „Kettenende“ kann A step sequence can be terminated
eine Ablaufkette beendet werden. with the element „Kettenende“ .
• Mit dem Element „Sprung“ kann die With the „Sprung“ element the pro-
Programmausführung bei einem be- gram execution can be continued at
liebigen Schritt der Kette fortgesetzt any step of the sequence.
werden.

48
3.2 Schrittkette erstellen Creating the step sequence

• Eine „Alternativverzweigung“ ent- An „Alternativverzweigung“ corre-


spricht einer ODER-Verzweigung. Es sponds to an OR branch. Only one
wird, abhängig von den erfüllten Be- branch is passed through, depending
dingungen, nur ein Zweig durchlau- on the conditions met.
fen.
• Eine „Simultanverzweigung“ ent- A „Simultanverzweigung“ corre-
spricht einer UND-Verzweigung. Die sponds to an AND branch. The
Zweige einer Simultanverzweigung branches of a simultaneous branch
werden „gleichzeitig“ durchlaufen. are executed simultaneously.

In der Grundeinstellung ist bereits auto- In the basic setting, an initial step and a
matisch ein Initialschritt und eine Transi- transition have already been automatically
tion eingefügt worden. Jedoch fehlt noch inserted. However, an end of chain or jump
ein Kettenende, bzw. Sprung. → Ein Auf- is still missing. → Calling the step se-
ruf des Schrittkettenbausteins in diesem Zu- quence block in this state would therefore
stand würde also zu einem Fehler führen, lead to an error, as step sequences must al-
da Schrittketten immer abgeschloßen sein ways be completed in order to be loaded
müssen, um auf die SPS geladen werden zu onto the PLC!
können!
Tipp: Hint:
Brauchen Sie zu einem Element mehr Infor- If you need more information about an el-
mationen, markieren Sie das Element (z.B. ement, select the element (e.g. a step) and
einen Schritt) und drücken die F1-Taste press the F1 key to Open the help for the
zum Öffnen der Hilfe zum markierten Ob- selected object.
jekt.
Um einen Schritt (oder andere Elemen- To insert a step (or other elements), mark
te) einzufügen, markieren Sie „T1“ und "T1" and press the right mouse button:
drücken die rechte Maustaste:
„Element einfügen“ → ‘Schritt und Transition“

49
3.2 Schrittkette erstellen Creating the step sequence

Um den neuen Schritt aktivieren zu können, To activate the new step, "T1" must be as-
muss „T1“ mit einer Weiterschaltbedingung signed a condition that enables the step.
versehen werden. Markieren Sie die Tran- Mark the transition as shown in the picture
sition, wie im Bild gezeigt und öffnen die- and open it.
se.

Sie haben nun mehrere Möglichkeiten eine You now have several possibilities to create
Weiterschaltbedingung zu erstellen. a transition condition.

1. Ein Boolscher Operand als Bedin- You can directly enter a boolean
gung kann direkt angegeben werden. operand as condition.

50
3.2 Schrittkette erstellen Creating the step sequence

Auch mehrere Operanden können Several operands can also be linked


miteinander verknüpft werden. Da- together. To do this, mark the input of
zu den Eingang der Transition mar- the transition and insert an „Leerbox“
kieren und eine „Leerbox“ einfü- (right click). Here you can choose be-
gen (Rechtsklick). Hier kann zwi- tween several possible links.
schen mehreren Verknüpfungsmög-
lichkeiten gewählt werden.

2.
Es kann auch ein Vergleich auf A comparison can also be made to
die Schrittaktivierungszeit (CMP>T the step activation time (CMP>T /
/ CMP>U) durchgeführt werden. So CMP>U). This is how you can switch
kann zeitabhängig weitergeschaltet on according to the time
werden

3.

Als nächstes weisen wir den einzelnen Now we assign actions to the individual
Schritten Aktionen zu. steps.

51
3.2 Schrittkette erstellen Creating the step sequence

Aktionen: In den einzelnen Schritten wer- Actions: In the individual steps, actions
den Aktionen programmiert, die z.B. Aus- are programmed which, for example, con-
gänge oder Merker steuern, Werte setzen... trol outputs or flags, set values... → actions
→ Aktionen enthalten also Programman- contain program instructions.
weisungen. A step can contain several actions, which
Ein Schritt kann mehrere Aktionen enthal- are processed from ’Up’ to ’Down’.
ten, welche von „Oben“ nach „Unten“ ab-
gearbeitet werden.
Um eine Aktion einzugeben, öffnen Sie die To enter an action, open the action table.
Aktionstabelle. To do this, click in the upper right edge of
Dazu klicken Sie in den oberen, rechten the step.
Rand des Schrittes).

Jetzt können Sie folgendes festlegen: Now you can define the following:

• Ein Ereignis (Wann wird etwas ge- An event (When is something done;
macht; z.B. „S1“ = zu Beginn des e.g. "S1" = at the beginning of the
Schrittes...) step...)
→ wird hier nichts gewählt, gilt die → if nothing is chosen here, the ac-
gesamte Schrittdauer) tion is active for the whole duration
of the step)
• Die Kennung (Was wird gemacht → The identifier (What is done → S set,
Setzen, Rücksetzen, Nichtspeichernd R reset, N set, but don’t save. . . )
Setzen. . . )
• Die Aktion (Womit soll es gemacht The action (What is to be done → the
werden → der Operand) operand)

52
3.2 Schrittkette erstellen Creating the step sequence

Versuchen Sie nun folgende Schrittkette Now try to program the following step se-
mit den obigen Verfahren zu program- quence with the above procedures.
mieren.
Hint:
Hinweis:
• In step 1 not only output 0.0 is set,
• In Schritt 1 wird nicht nur Ausgang but all outputs are reset "for safety’s
0.0, sondern es werden „sicherheits- sake".
halber“ alle Ausgänge rückgesetzt.
• The step-on condition of the third
• Die Weiterschaltbedingung der drit- transition consists of a comparator,
ten Transition besteht aus einem Ver- which asks whether the 1st compar-
gleicher, bei dem abgefragt wird ob ison value (the step activation time)
der 1. Vergleichswert (die Schrittak- is greater than the 2nd comparison
tivierungszeit) größer als der 2. Ver- value (a fixed time).
gleichswert (eine feste Zeit) ist.
• After the last transition there is no
• Nach der letzten Transition folgt step, but a jump to "Step 1".
kein Schritt, sondern ein Sprung auf
„Schritt 1“.

53
3.2 Schrittkette erstellen Creating the step sequence

54
3.2 Schrittkette erstellen Creating the step sequence

Haben Sie die Kette erfolgreich program- Once you successfully programmed the
miert (Der Übersetzungsvorgang meldet chain (the translation process does not re-
keinen Fehler), können Sie jetzt abspei- port an error), you can save and finish your
chern und die Arbeit im Graph Editor work in the Graph Editor. Now switch
beenden. Wechseln Sie nun in den OB1 to OB1 (Main), drag the step chain block
(Main), ziehen den Schrittketten Baustein (FB1) into the programming area and let
(FB1) in den Programmierbereich und las- the instance data block be created automat-
sen sich den Instanzdatenbaustein automa- ically. The interface parameters of the call
tisch erzeugen. Die Schnittstellenparameter can remain unassigned for the ’S0’ lab ex-
des Aufrufs können für das „S0“-Praktikum ercise. However, these are extremely use-
unbelegt bleiben. Diese sind jedoch zur ful for controlling the step chain! (Help:
Steuerung der Schrittkette äußerst hilfreich! „Schnittstellenparametersatz")
(Hilfe: „Schnittstellenparametersatz“)
Anschließend kann auch der OB1 gespei- Subsequently the OB1 may also be stored.
chert werden. Die Ablaufkette ist jetzt fer- The step sequence is now ready.
tig.

Hinweis: Note:
→ Was Sie im Bild sehen ist der Aufruf → What you see in the picture is the func-
des Funktionsbausteins. tion module call.
Jeder Baustein der in den Programmablauf Every module that is to be included in the
eingebunden werden soll, muss aufgerufen program flow must be called! This does not
werden! Dies muss nicht zwingend im OB1 have to be done in OB1. Blocks can also be
geschehen. Bausteine können auch aus an- called from other FBs or FCs.

55
3.2 Schrittkette erstellen Creating the step sequence

deren FBs oder FCs heraus aufgerufen wer-


den.
Werden Funktionsbausteine (NICHT Funk- If function blocks (NOT functions) are
tionen) aufgerufen, benötigen diese einen called, they require an associated instance
zugehörigen Instanzdatenbaustein. (In die- data block. (In this data block, signal states
sem Datenbaustein werden Signalzustände, that arise during the processing of the FB
die sich während der Abarbeitung des FB are temporarily stored)
ergeben, zwischengespeichert)
Es ist (meistens) sinnvoll sich den so- It is (mostly) useful to have the so-called
genannten „Instanzdatenbaustein“ automa- "instance data block" created automati-
tisch erzeugen zu lassen. cally.
Starten Sie den Simulator Start the simulator
Online → Simulation → Start
und laden alle Bausteine in den Simula- and load all blocks into the simulator.
tor.
Set up a meaningful simulation table
Richten Sie sich eine sinnvolle Simulations-
tabelle ein.
Vorschlag: Proposal:

Ist die simulierte CPU im Betriebszustand If the simulated CPU is in operating state
„Run“ und die richtigen Eingangs- und "Run" and the correct input and output
Ausgangsbytes eingestellt, kann der FB1 bytes are set, FB1 may be tested.
getestet werden.
Es wird nur zum nächsten Schritt weiterge- The system only advances to the next step
schaltet, wenn die vorhergehende Transiti- if the previous transition condition has been
onsbedingung erfüllt worden ist. met.
Hinweis: Hint:
Deaktivieren Sie jedes Mal die vorherge- Deactivate the previous transition each time
hende Transition (z.B. bei T1 durch ein (e.g. at T1 by a low signal at input 0.0), oth-
Low-Signal an Eingang 0.0), ansonsten erwise the chain will skip through all steps

56
3.2 Schrittkette erstellen Creating the step sequence

läuft die Kette nach der letzten Transition after the last transition, because from this
durch, da ab diesem Moment alle Weiter- moment on all conditions for switching are
schaltbedingungen erfüllt sind. fulfilled.
Erweitern Sie nun die Schrittkette um ei- Now extend the step chain with an "alterna-
ne „Alternativverzweigung“. Markieren Sie tive branch". Mark the 3rd step and add an
dazu den 3.Schritt und fügen über rechten alternative branch by right-clicking.
Mausklick einen Alternativzweig ein.
Alternativverzweigung: Mit Alter- Alternative branches can be used to pro-
nativverzweigungen können ODER- gram OR branches. Alternative branches
Verzweigungen programmiert werden. are inserted after a step and start with a
Alternativzweige werden nach einem transition. Depending on which transition
Schritt eingefügt und beginnen mit ei- is met first, the corresponding branch is
ner Transition. Abhängig davon, welche passed through. If several transitions are
Transition zuerst erfüllt ist, wird der met at the same time, the transition furthest
entsprechende Zweig durchlaufen. Sind to the left takes precedence. Alternative
mehrere Transitionen gleichzeitig erfüllt, branches end with a transition.
hat jeweils die am weitesten links stehen-
de Transition Vorrang. Alternativzweige
enden wieder mit einer Transition.

57
3.2 Schrittkette erstellen Creating the step sequence

Ergänzen Sie nun jeden der beiden Zweige Now add one more step and one more tran-
um einen weiteren Schritt und eine weitere sition to each of the two branches (see fig-
Transition (siehe Abbildung 3.1). ure 3.1).
(Die Aktionen in den einzelnen Schritten (The actions in the individual steps are hid-
sind ausgeblendet, da hier nicht wichtig) den, as they are not important here)

• Rechtsklick auf eine Transition → • right click on a transition → Element


Element einfügen → Schritt und einfügen → Schritt und Transition
Transition
• Define different switching conditions
• Legen Sie unterschiedliche Weiter- for the two branches. (e.g. Transi-
schaltbedingungen für die beiden tion3 → Input 4 negated and Transi-
Zweige fest. (z.B. Transition3 → Ein- tion 4 → Input 4 NOT negated)
gang 4 negiert und Transition 4 →
• Insert the last two conditions (Transi-
Eingang 4 NICHT negiert)
tion 5 and Transition 6) (Here in the
• Fügen Sie noch die letzen beiden example 2 comparators)
Weiterschaltbedingungen (Transition
• Close each branch with a jump.

58
3.2 Schrittkette erstellen Creating the step sequence

5 und Transition 6) ein. (Hier im Bei-


spiel 2 Vergleicher)
• Schließen Sie jeden Zweig mit einem
Sprung ab.

Abbildung 3.1: Erweitern der Ablaufkette

Um diese Übung abzuschließen öffnen Sie To complete this "exercise" open the action
die Aktionstabellen der einzelnen Schrit- tables of the individual steps and insert ac-
te und fügen Aktionen ein. Speichern Sie tions. Then save the completed sequence
anschließend die fertige Ablaufkette, laden chain, load the blocks to the PLC (the sim-
die Bausteine erneut auf die SPS (den Si- ulator) again and test the completed step se-
mulator) und testen die fertige Schrittkette quence (Fig. 3.2).
(Abb. 3.2).

59
3.2 Schrittkette erstellen Creating the step sequence

Abbildung 3.2: Ausschnitt aus der fertigen Ablaufkette

60