27.01.2015 Aufrufe

Steuerung Eingabe Ausgabe Aktoren Sensoren

Steuerung Eingabe Ausgabe Aktoren Sensoren

Steuerung Eingabe Ausgabe Aktoren Sensoren

MEHR ANZEIGEN
WENIGER ANZEIGEN

Erfolgreiche ePaper selbst erstellen

Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.

Vorlesung "Automatisierungstechnik" – Teil 1: "Speicherprogrammierbare <strong>Steuerung</strong>en"<br />

Arbeitsblätter "Abbildungen" [ABB 1]<br />

<strong>Steuerung</strong><br />

SPS<br />

<strong>Eingabe</strong><br />

<strong>Ausgabe</strong><br />

. . . . . .<br />

<strong>Sensoren</strong><br />

<strong>Aktoren</strong><br />

Prozess<br />

Abbildung 1.2a: Komponenten eines Automatisierungssystems<br />

HMI<br />

Leitwarte<br />

SPS<br />

SPS<br />

<strong>Steuerung</strong>en<br />

E/A E/A E/A E/A<br />

Ein- und <strong>Ausgabe</strong>n<br />

<strong>Sensoren</strong><br />

<strong>Aktoren</strong><br />

Abbildung 1.2b: Hierachie eines Automatisierungssystems<br />

Prof. Dr.-Ing. Andreas Kegler [File: AUT1_abb.doc 07.09.05] Seite 1


Vorlesung "Automatisierungstechnik" – Teil 1: "Speicherprogrammierbare <strong>Steuerung</strong>en"<br />

Arbeitsblätter "Abbildungen" [ABB 2]<br />

zentrale <strong>Steuerung</strong><br />

paralleler<br />

Bus<br />

zentrale Einund<br />

<strong>Ausgabe</strong>n<br />

dezentrale <strong>Steuerung</strong><br />

CPU<br />

E / A<br />

CPU<br />

E / A<br />

(Automatisierungsgeräte)<br />

z.B. RS 232<br />

PC<br />

serieller Feldbus<br />

(Kommunikationstechnik)<br />

Programmiergerät<br />

PC<br />

Bedien- und<br />

Darstellgerät (HMI)<br />

E / A<br />

dezentrale Einund<br />

<strong>Ausgabe</strong>n<br />

Abbildung 1.2c: Aufbau eines Automatisierungssystems<br />

Relais-Stromlaufplan der VPS<br />

Kontaktplan der SPS<br />

Abbildung 2.0: Vom Relais-Stromlaufplan der VPS zum Kontaktplan der SPS<br />

Prof. Dr.-Ing. Andreas Kegler [File: AUT1_abb.doc 07.09.05] Seite 2


Vorlesung "Automatisierungstechnik" – Teil 1: "Speicherprogrammierbare <strong>Steuerung</strong>en"<br />

Arbeitsblätter "Abbildungen" [ABB 3]<br />

IEC 61131-3<br />

Internationale Norm für "Programmable Controllers" (PC oder PLC)<br />

- zu deutsch "Speicherprogrammierbare <strong>Steuerung</strong>en" (SPS) –<br />

Teil 3: Programmiersprachen<br />

Teil 1: Allgemeine Information<br />

Teil 2: Betriebsmittelanforderungen und -prüfungen<br />

Teil 4: Anwenderhinweise<br />

Teil 5: Kommunikationsdienste<br />

vom Technical Committee TC65 für "Industrial-Process Measurement<br />

And Control" in der International Electrotechnical Commission<br />

Was wird festgelegt (genormt) Syntax und Semantik von Programmiermethoden für SPS<br />

• Ein SPS Programm sollte schnell, einfach und ohne tiefgreifende Kenntnisse der Mikroelektronik und<br />

diverser Programmiersprachen erstellt werden können.<br />

• Dem geübten „Programmierer“ sollten jedoch auch Hilfsmittel in die Hand gegeben werden, um seinen<br />

Anforderungen nach effektiver Programmierung gerecht zu werden.<br />

Die Normungsbestrebungen haben das Ziel die Programmierung der SPS zu vereinheitlichen.<br />

Dies spart Zeit und Kosten; speziell dann, wenn eine Firma aus verschiedenen Gründen SPS’en<br />

verschiedener Hersteller einsetzt.<br />

• Der Programmierer braucht nicht herstellerspezifische Sprachen zu lernen (Schulungskosten).<br />

• Aufgrund der Standardisierung können Programme teilweise auf anderen Systemen wieder verwendet<br />

werden (Erstellungskosten).<br />

• Die Systeme werden leichter wartbar (sie sind stabil).<br />

Abbildung 2.1a: Was ist die IEC 61131-3 <br />

Sprachen nach IEC 61131-3 Sprachen nach DIN 19239<br />

bzw. VDI 2880 Blatt 4<br />

Bezeichnung (deutsch) Bezeichnung (englisch) Symbolik Bezeichnung (deutsch)<br />

Sprache AWL<br />

(Anweisungsliste)<br />

Language IL<br />

(Instruction List)<br />

LD …<br />

AND …<br />

OR …<br />

AWL<br />

Anweisungsliste<br />

Sprache ST<br />

(Strukturierter Text)<br />

Language ST<br />

(Structured Text)<br />

IF . . .<br />

THEN … ELSE …<br />

Sprache KOP<br />

(Kontaktplan)<br />

Sprache FBS<br />

(Funktionsbaustein-<br />

Sprache)<br />

Language LD<br />

(Ladder Diagram)<br />

Language FBD<br />

(Function Block Diagram)<br />

| |<br />

+--| |-- … -( )—+<br />

| |<br />

+--+<br />

--|& |<br />

--| |--<br />

+--+<br />

KOP<br />

Kontaktplan<br />

FUP<br />

Funktionsplan<br />

Sprache AS<br />

(Ablaufsprache)<br />

Language SFC<br />

(Sequential Function<br />

Chart)<br />

|<br />

+<br />

|<br />

+---+<br />

| |<br />

| |<br />

+---+<br />

Abbildung 2.1b: Die genormten Programmiersprachen<br />

Prof. Dr.-Ing. Andreas Kegler [File: AUT1_abb.doc 07.09.05] Seite 3


Vorlesung "Automatisierungstechnik" – Teil 1: "Speicherprogrammierbare <strong>Steuerung</strong>en"<br />

Arbeitsblätter "Abbildungen" [ABB 4]<br />

Marke Operator Operand Kommentar<br />

start: LD Taster (* Lade Wert des Operanden ins aktuelle Ergebnis *)<br />

ANDN Sperre (* Verknüpfe aktuelles Ergebnis über UND NICHT mit Wert des Operanden *)<br />

ST Luefter (* Speichere aktuelles Ergebnis im Operanden *)<br />

Abbildung 2.2a: Beispiel für die Programmierung in AWL<br />

Nr. Operator Modifizierer Operand Bedeutung<br />

1 LD N (Anm.1) Lädt (N: negierten) Wert des Operanden ins aktuelle Ergebnis<br />

2 ST N (Anm.1) Speichert aktuelles Ergebnis im Operanden<br />

3 S (Anm.2) BOOL Setzt booleschen Operand auf 1<br />

R (Anm.2) BOOL Setzt booleschen Operand auf 0 zurück<br />

4 AND N, ( BOOL Boolesches UND<br />

5 & N, ( BOOL Boolesches UND<br />

6 OR N, ( BOOL Boolesches ODER<br />

7 XOR N, ( BOOL Boolesches Exklusiv-ODER<br />

8 ADD ( (Anm.1) Addition<br />

9 SUB ( (Anm.1) Subtraktion<br />

10 MUL ( (Anm.1) Multiplikation<br />

11 DIV ( (Anm.1) Division<br />

12 GT ( (Anm.1) Vergleich: ><br />

13 GE ( (Anm.1) Vergleich: >=<br />

14 EQ ( (Anm.1) Vergleich: =<br />

15 NE ( (Anm.1) Vergleich<br />

16 LE ( (Anm.1) Vergleich:


Vorlesung "Automatisierungstechnik" – Teil 1: "Speicherprogrammierbare <strong>Steuerung</strong>en"<br />

Arbeitsblätter "Abbildungen" [ABB 5]<br />

1. ODER-vor-UND-Verknügfung e = (a + b) · (c + d)<br />

LD a<br />

OR b<br />

AND( c<br />

OR d<br />

)<br />

ST e<br />

2. diskrete XOR-Verknüpfung c = a · b + a · b<br />

LD a<br />

ANDN b<br />

OR( b<br />

ANDN a<br />

)<br />

ST c<br />

3. diskrete Selbsthaltung mit dominantem Rücksetzen<br />

LDN<br />

AND(<br />

OR<br />

)<br />

ST<br />

r<br />

s<br />

q<br />

q<br />

4. diskrete Selbsthaltung mit dominantem Setzen<br />

LD<br />

OR(<br />

ANDN<br />

)<br />

ST<br />

s<br />

q<br />

r<br />

q<br />

Abbildung 2.2d: Beispiele für logische Operationen in AWL<br />

Prof. Dr.-Ing. Andreas Kegler [File: AUT1_abb.doc 07.09.05] Seite 5


Vorlesung "Automatisierungstechnik" – Teil 1: "Speicherprogrammierbare <strong>Steuerung</strong>en"<br />

Arbeitsblätter "Abbildungen" [ABB 6]<br />

Abbildung 3.1a: EVA-Prinzip<br />

Abbildung 3.1b: Signalkette<br />

Prof. Dr.-Ing. Andreas Kegler [File: AUT1_abb.doc 07.09.05] Seite 6


Vorlesung "Automatisierungstechnik" – Teil 1: "Speicherprogrammierbare <strong>Steuerung</strong>en"<br />

Arbeitsblätter "Abbildungen" [ABB 7]<br />

S p e i c h e r<br />

SPS-Betriebssystem<br />

(Grundsoftware, Firmware)<br />

SPS-Programmspeicher<br />

(Anwenderprogramm)<br />

SPS-Datenspeicher<br />

(Signalspeicher)<br />

zyklische Arbeitsweise<br />

(Tasks)<br />

Anweisungen<br />

(Verknüpfungen)<br />

Variablen<br />

(Eingänge, Ausgänge)<br />

Abbildung 3.1c: Speicheraufteilung<br />

Start<br />

Eingänge<br />

Prozessabbild der Eingänge<br />

einlesen<br />

Einlesen der Signalzustände<br />

von den Eingängen in den<br />

Signalspeicher<br />

(Prozessabbild)<br />

Programm 1<br />

. . .<br />

Programm 2<br />

Bearbeiten der Anweisungen<br />

(Verknüpfungen) im<br />

Anwenderprogramm<br />

unter Verwendung des<br />

Prozessabbildes im<br />

Signalspeicher<br />

Ausgänge<br />

Prozessabbild der Ausgänge<br />

ausgeben<br />

<strong>Ausgabe</strong> des Prozessabbildes<br />

aus dem Signalspeicher an<br />

die Ausgänge<br />

Stopp<br />

Abbildung 3.1d: Zyklische Arbeitsweise<br />

Prof. Dr.-Ing. Andreas Kegler [File: AUT1_abb.doc 07.09.05] Seite 7


Vorlesung "Automatisierungstechnik" – Teil 1: "Speicherprogrammierbare <strong>Steuerung</strong>en"<br />

Arbeitsblätter "Abbildungen" [ABB 8]<br />

Abtasttheorem von Shannon:<br />

f<br />

e<br />

≤<br />

1<br />

2<br />

f<br />

zyk<br />

=<br />

1<br />

2 ⋅T<br />

zyk<br />

t Puls ≥ T zyk und t Pause ≥ T zyk<br />

Einlesezeitpunkte<br />

SPS-Zyklus<br />

T zyk<br />

Eingangssignale<br />

1:<br />

f<br />

e<br />

1<br />

= 2 ⋅T<br />

zyk<br />

t Puls<br />

t Pause<br />

2:<br />

f<br />

e<br />

< 1<br />

2 ⋅T<br />

zyk<br />

3:<br />

f<br />

e<br />

> 1<br />

2 ⋅T<br />

zyk<br />

f a<br />

1<br />

"Alaising" (Unterabtastung)<br />

2 3<br />

f zyk /2<br />

f zyk 3f zyk /2 2f zyk<br />

f e<br />

Abbildung 3.3: Abtasttheorem<br />

Prof. Dr.-Ing. Andreas Kegler [File: AUT1_abb.doc 07.09.05] Seite 8


Vorlesung "Automatisierungstechnik" – Teil 1: "Speicherprogrammierbare <strong>Steuerung</strong>en"<br />

Arbeitsblätter "Abbildungen" [ABB 9]<br />

Konfiguration<br />

Resource Ressource<br />

Resource Ressource<br />

Task Task Task Task<br />

Programm Programm Programm Programm<br />

FB<br />

FB<br />

FB<br />

FB<br />

Globale Variablen<br />

Zugriffspfade<br />

Abbildung 4.1: Softwaremodell<br />

Prof. Dr.-Ing. Andreas Kegler [File: AUT1_abb.doc 07.09.05] Seite 9


Vorlesung "Automatisierungstechnik" – Teil 1: "Speicherprogrammierbare <strong>Steuerung</strong>en"<br />

Arbeitsblätter "Abbildungen" [ABB 10]<br />

Schlüsselwort Datentyp Bits<br />

BOOL boolesche 1<br />

BYTE Bit-Folge 8 8<br />

WORD Bit-Folge 16 16<br />

DWORD Bit-Folge 32 32<br />

LWORD Bit-Folge 64 64<br />

SINT kurze ganze Zahl (short integer) 8<br />

INT ganze Zahl (integer) 16<br />

DINT doppelte ganze Zahl (double integer) 32<br />

LINT lange ganze Zahl (long integer) 64<br />

USINT … ULINT vorzeichenlose Zahlen (unsigned) 8 … 64<br />

REAL Gleitpunkt-Zahl 32<br />

LREAL lange Gleitpunkt-Zahl 64<br />

TIME Zeitdauer *<br />

DATE Datum (nur) *<br />

TIME_OF_DAY oder<br />

TOD<br />

Uhrzeit (nur) *<br />

DATE_AND_TIME oder Datum und Uhrzeit *<br />

DT<br />

STRING variabel-lange Zeichenfolge *<br />

Abbildung 4.2.2: Datentypen (* implementierungsabhängig)<br />

ANY<br />

ANY_NUM<br />

ANY_REAL<br />

LREAL, REAL<br />

ANY_INT<br />

LINT, DINT, …, ULINT, …<br />

ANY_BIT<br />

LWORD, DWORD, …, BOOL<br />

STRING<br />

ANY_DATE<br />

DATE_AND_TIME<br />

DATE<br />

TIME_OF_DAY<br />

TIME<br />

Abbildung 4.2.2.1: Hierarchie der generische Datentypen<br />

Prof. Dr.-Ing. Andreas Kegler [File: AUT1_abb.doc 07.09.05] Seite 10


Vorlesung "Automatisierungstechnik" – Teil 1: "Speicherprogrammierbare <strong>Steuerung</strong>en"<br />

Arbeitsblätter "Abbildungen" [ABB 11]<br />

Aufzählung (Liste, eingeschlossen in Klammern), z.B.<br />

TYPE SIGNAL_FORM_TYPE : (RECHTECK, DREIECK, SAEGEZAHN, SINUS) ;<br />

END_TYPE<br />

Bereich (von .. bis Bereich in Klammern eingeschlossen), z.B.:<br />

TYPE ANALOG_DATA : INT (-4095..4095) ; END_TYPE<br />

Feld (bestimmt durch ARRAY [Bereich von … bis] OF bekannter Datentyp), z.B.:<br />

TYPE ANALOG_16_INPUT_DATA : ARRAY [1..16] OF ANALOG_DATA ; END_TYPE<br />

Struktur (eingeschlossen durch das Konstrukt STRUCT .. END_STRUCT), z.B.:<br />

TYPE<br />

ANALOG_CHANNEL_CONFIGURATION :<br />

STRUCT<br />

RANGE : ANALOG_SIGNAL_RANGE ;<br />

MIN_SCALE : ANALOG_DATA ;<br />

MAX_SCALE : ANALOG_DATA ;<br />

END_STRUCT ;<br />

ANALOG_16_INPUT_CONFIGURATION :<br />

STRUCT<br />

FILTER_PARAMETER : SINT (0..99) ;<br />

CHANNEL : ARRAY [1..16] OF ANALOG_CHANNEL_CONFIGURATION ;<br />

END_STRUCT ;<br />

END_TYPE<br />

Abbildung 4.2.2.2: Abgeleitete (eigene) Datentypen<br />

Beschreibung<br />

Beispiele<br />

Integer Literal -12, 0, 123_456, +986<br />

Real Literale<br />

-12.0, 0.0, 0.456, 3.14159_26<br />

Real Literale mit Exponenten -1.34E-12 oder -1.34e-12<br />

boolesche Literale 0, 1 oder FALSE, TRUE<br />

Basis-2 Literale<br />

2#1111_1111 (255 dezimal)<br />

Basis-8 Literale<br />

8#377 (255 dezimal)<br />

Basis-16 Literale<br />

16#FF oder 16#ff (255 dezimal)<br />

Zeitdauer<br />

T#14ms, T#14.7s, T#14.7m,<br />

T#14.7h, t#14.7d, t#25h15m,<br />

t#5d14h12m18s3.5ms oder<br />

TIME#14ms, time#14.7s,<br />

time#5d_14h_12m_18s_3.5ms<br />

Abbildung 4.2.3: Konstanten („Literale“)<br />

Prof. Dr.-Ing. Andreas Kegler [File: AUT1_abb.doc 07.09.05] Seite 11


Vorlesung "Automatisierungstechnik" – Teil 1: "Speicherprogrammierbare <strong>Steuerung</strong>en"<br />

Arbeitsblätter "Abbildungen" [ABB 12]<br />

Schlüsselwort<br />

VAR<br />

VAR_INPUT<br />

VAR_OUTPUT<br />

VAR_IN_OUT<br />

VAR_EXTERNAL<br />

VAR_GLOBAL<br />

VAR RETAIN<br />

VAR CONSTANT<br />

Gebrauch der Variablen<br />

Innerhalb der Organisationseinheit<br />

Von außerhalb geliefert,<br />

nicht innerhalb der Organisationseinheit änderbar<br />

Von der Organisationseinheit nach außen geliefert<br />

Von außerhalb geliefert,<br />

kann innerhalb der Organisationseinheit geändert werden<br />

Von der Konfiguration geliefert via VAR_GLOBAL<br />

kann innerhalb der Organisationseinheit geändert werden<br />

Deklaration von globalen Variablen<br />

Gepufferte Variablen (Wert bleibt bei Stromausfall erhalten)<br />

Konstante Variablen (Wert kann nicht geändert werden)<br />

Abbildung 4.2.4: Schlüsselwörter für Variablendeklarationen<br />

Schlüsselwortanteil<br />

Bedeutung<br />

%I Eingang<br />

%Q Ausgang<br />

%M Merker<br />

X<br />

Bit-Größe<br />

kein Bit-Größe<br />

B<br />

Byte (8 bits) Größe<br />

W<br />

Wort (16 bits) Größe<br />

D<br />

Doppelwort (32 bits) Größe<br />

L<br />

Langwort (64 bits) Größe<br />

Abbildung 4.2.4.1: Schlüsselwortanteile (Präfixe) für direkte Variablen<br />

VAR<br />

AT %IW6.2 : WORD; (* "direkte" Variable für "physikalische" Adressierung ohne Variablennamen *)<br />

AT %MW6 : INT ; (* "located" Variable mit AT, d.h. vorgegebene Speicherzuteilung *)<br />

conv_start : BOOL AT %QX25; (* Variablenname für "symbolische" Adress. *)<br />

condition_red : BOOL; (* "unlocated" Variable, d.h. automatische Speicherzuteilung *)<br />

valve_pos AT %QW28 : INT := 100; (* mit Anfangswert, "Initialisierung" *)<br />

END_VAR<br />

VAR CONSTANT<br />

pi : REAL := 3.14;<br />

END_VAR<br />

Abbildung 4.2.4.2: Beispiele für Variablen-Deklarationen<br />

Prof. Dr.-Ing. Andreas Kegler [File: AUT1_abb.doc 07.09.05] Seite 12


Vorlesung "Automatisierungstechnik" – Teil 1: "Speicherprogrammierbare <strong>Steuerung</strong>en"<br />

Arbeitsblätter "Abbildungen" [ABB 13]<br />

Programm<br />

Funktion<br />

Funktions-Baustein<br />

Funktion Funktion Funktions-Baustein<br />

Abbildung 4.3: Aufruf-Hierarchie der Programm-Organisationseinheiten<br />

FUNCTION or_and : BOOL ; (* der Name und der Daten-Typ entspricht dem Rückgabewert *)<br />

VAR_INPUT<br />

var1, var2, var3 : BOOL ; (* alle Eingänge erfordern Parameter-Namen *)<br />

END_VAR<br />

or_and := (var1 OR var2) AND var3 ; (* Anweisungsteil der Funktion *)<br />

END_FUNCTION<br />

Abbildung 4.3.1.2: Beispiel zur Deklaration von eigenen Anwender-Funktionen<br />

Darstellung<br />

Deklaration<br />

+-----+<br />

+-----+<br />

S1----------------| >=1 |---Q1<br />

| SR | +---+ | |<br />

BOOL---|S1 Q1|---BOOL R------O| & |----| |<br />

BOOL---|R | Q1------| | | |<br />

+-----+ +---+ +-----+<br />

+---+<br />

+-----+ R1-----------------O| & |---Q1<br />

| RS | +-----+ | |<br />

BOOL---|S Q1|---BOOL S-------| >=1 |----| |<br />

BOOL---|R1 | Q1------| | | |<br />

+-----+ +-----+ +---+<br />

FUNCTION_BLOCK F_TRIG<br />

+--------+ VAR_INPUT CLK: BOOL; END_VAR<br />

| F_TRIG | VAR_OUTPUT Q: BOOL; END_VAR<br />

BOOL---|CLK Q|---BOOL VAR M: BOOL := 1; END_VAR<br />

+--------+ Q := NOT CLK AND NOT M;<br />

M := NOT CLK;<br />

END_FUNCTION_BLOCK<br />

Abbildung 4.3.2.1a: Beispiele für Standard-Funktionsbausteine<br />

Prof. Dr.-Ing. Andreas Kegler [File: AUT1_abb.doc 07.09.05] Seite 13


Vorlesung "Automatisierungstechnik" – Teil 1: "Speicherprogrammierbare <strong>Steuerung</strong>en"<br />

Arbeitsblätter "Abbildungen" [ABB 14]<br />

+-------+<br />

| *** |<br />

*** = TP (PULS)<br />

TON (Einschaltverzögerung)<br />

BOOL---|IN Q|---BOOL TOF (Ausschaltverzögerung)<br />

TIME---|PT ET|---TIME<br />

+-------+<br />

+--------+ ++ ++ +--------+ TP<br />

IN | | || || | |<br />

--+ +-----++-++---+ +---------<br />

t0 t1 t2 t3 t4 t5<br />

+----+ +----+ +----+<br />

Q | | | | | |<br />

--+ +---------+ +--+ +-------------<br />

t0 t0+PT t2 t2+PT t4 t4+PT<br />

PT +---+ + +---+<br />

: / | /| / |<br />

ET : / | / | / |<br />

: / | / | / |<br />

: / | / | / |<br />

0-+ +-----+ +--+ +---------<br />

t0 t1 t2 t4 t5<br />

+--------+ +---+ +--------+ TON<br />

IN | | | | | |<br />

--+ +--------+ +---+ +-------------<br />

t0 t1 t2 t3 t4 t5<br />

+---+ +---+<br />

Q | | | |<br />

-------+ +---------------------+ +-------------<br />

t0+PT t1 t4+PT t5<br />

PT +---+ +---+<br />

: / | + / |<br />

ET : / | /| / |<br />

: / | / | / |<br />

: / | / | / |<br />

0-+ +--------+ +---+ +-------------<br />

t0 t1 t2 t3 t4 t5<br />

+--------+ +---+ +--------+ TOF<br />

IN | | | | | |<br />

---+ +--------+ +---+ +-----------<br />

t0 t1 t2 t3 t4 t5<br />

+-------------+ +---------------------+<br />

Q | | | |<br />

---+ +---+ +------<br />

t0 t1+PT t2 t5+PT<br />

PT +---+ +------<br />

: / | + /<br />

ET : / | /| /<br />

: / | / | /<br />

: / | / | /<br />

0------------+ +---+ +--------+<br />

t1 t3 t5<br />

Abbildung 4.3.2.1b: Zeitverhalten der Standard-Funktionsbausteine TP, TON, TOF<br />

Prof. Dr.-Ing. Andreas Kegler [File: AUT1_abb.doc 07.09.05] Seite 14


Vorlesung "Automatisierungstechnik" – Teil 1: "Speicherprogrammierbare <strong>Steuerung</strong>en"<br />

Arbeitsblätter "Abbildungen" [ABB 15]<br />

FUNCTION_BLOCK puls (* puls ist selbstgewählter Name des FB-Typs *)<br />

(* Beachte: Ein FB hat im Gegensatz zur Funktion keinen Rückgabewert! *)<br />

(* Funktionsbaustein-Kopf = Deklarationsteil *)<br />

VAR_INPUT (* die Eingangsparameter i1, i2 werden links im FBS-Symbol dargestellt *)<br />

i1 : BOOL;<br />

i2 : BOOL;<br />

END_VAR<br />

VAR_OUTPUT (* der Ausgangsparameter g wird rechts im FBS-Symbol dargestellt *)<br />

q : BOOL;<br />

END_VAR<br />

VAR (* die lokale Variable m wird nicht im FBS-Symbol dargestellt *)<br />

m : BOOL;<br />

END_VAR<br />

(* Funktionsbaustein-Rumpf = Anweisungsteil *)<br />

q := i1 AND i2 AND NOT m;<br />

m := q;<br />

END_FUNCTION_BLOCK<br />

Abbildung 4.3.2.2: Beispiel zur Deklaration von eigenen Anwender-Funktionsbausteinen<br />

PROGRAM test (* test ist selbstgewählter Name des Programms *)<br />

(* Programm-Kopf = Deklarationsteil in ST *)<br />

VAR<br />

start_puls, sperr_puls : puls; (* start_puls und sperr_puls sind die Namen der FB-Instanzen<br />

(* puls ist der FB-Typ *)<br />

sensor AT %IX0.0 : BOOL; (* located Variablen vom Daten-Typ BOOL *)<br />

schalter AT %IX0.1 : BOOL;<br />

start, sperre : BOOL; (* unlocated Variablen *)<br />

freigabe : BOOL := 1; (* Variablen-Anfangswert 1 *)<br />

…<br />

END_VAR<br />

(* Programm-Rumpf = Anweisungsteil in FBS *)<br />

(* Aufruf der FB-Instanz start_puls mit Werteübergabe der Variablen sensor an den Parameter i1 *)<br />

freigabe<br />

start_puls<br />

EN<br />

puls<br />

ENO<br />

sperr_puls<br />

puls<br />

ENO<br />

sensor<br />

i1 q<br />

start schalter<br />

i1 q<br />

sperre<br />

1 i2<br />

…<br />

i2<br />

EN<br />

…<br />

END_PROGRAM<br />

Abbildung 4.3.2.3: Beispiel zum Aufruf von Funktionsbausteinen<br />

Prof. Dr.-Ing. Andreas Kegler [File: AUT1_abb.doc 20.10.05] Seite 15


Vorlesung "Automatisierungstechnik" – Teil 1: "Speicherprogrammierbare <strong>Steuerung</strong>en"<br />

Arbeitsblätter "Abbildungen" [ABB 16]<br />

Abbildung 5.1: Der Weg von der Programmerstellung bis zur Übertragung in die SPS<br />

Abbildung 5.2: Fehlerverteilung in SPS-gesteuerten Anlagen<br />

Prof. Dr.-Ing. Andreas Kegler [File: AUT1_abb.doc 07.09.05] Seite 16


Vorlesung "Automatisierungstechnik" – Teil 1: "Speicherprogrammierbare <strong>Steuerung</strong>en"<br />

Arbeitsblätter "Abbildungen" [ABB 17]<br />

Beispiel<br />

Beschreibung<br />

|<br />

+=========+<br />

|| Start || Anfangsschritt<br />

+=========+<br />

|<br />

+- %IX2.4 & %IX2.3<br />

|<br />

+-------+<br />

|fuellen|<br />

+-------+<br />

|<br />

Transition<br />

mit Bedingung in ST-Sprache<br />

Schritt<br />

|<br />

+=========+<br />

|| start ||<br />

+=========+<br />

|<br />

| %IX2.4 %IX2.3 |<br />

+---||-----||--------+ Bedingung in KOP<br />

| |<br />

+-------+<br />

|fuellen|<br />

+-------+<br />

|<br />

|<br />

+=========+<br />

|| start ||<br />

+-------+ +=========+<br />

| & | |<br />

%IX2.4---| |-------+ Bedingung in FBS<br />

%IX2.3---| | |<br />

+-------+ +-------+<br />

|fuellen|<br />

+-------+<br />

|<br />

Abbildung 6.3: Beispiele zur Darstellung von Schritten und Transitionen<br />

Beispiel<br />

Beschreibung<br />

|<br />

+---------+ +-----+---------------+----+<br />

| fuellen |--| L | fuellaktion_1 |voll| Bestimmungszeichen: L<br />

+---------+ |t#10s| | |<br />

| +-----+---------------+----+ Aktionsname: fuellaktion_1<br />

+ voll | P | fuellaktion_2 | |<br />

| +-----+---------------+----+ Rückkopplungsvariable (optional): voll<br />

| | N | fuellaktion_3 | |<br />

| +-----+---------------+----+<br />

Abbildung 6.4a: Beispiel zur Darstellung von Aktionen<br />

Prof. Dr.-Ing. Andreas Kegler [File: AUT1_abb.doc 07.09.05] Seite 17


Vorlesung "Automatisierungstechnik" – Teil 1: "Speicherprogrammierbare <strong>Steuerung</strong>en"<br />

Arbeitsblätter "Abbildungen" [ABB 18]<br />

+-----+--------------+-----+<br />

---| "a" | "b" | "c" |--- "a" : Bestimmungszeichen<br />

+-----+--------------+-----+<br />

| "d" | "b" : Aktionsname<br />

| |<br />

+--------------------------+ "c" : boolesche Rückkopplungsvariable<br />

"d" : Anweisungsteil der Aktion<br />

Abbildung 6.4b: Elemente eines Aktionsblocks<br />

Bestimmungszeichen<br />

Erläuterung<br />

(kein Zeichen)<br />

Nicht-gespeichert<br />

N<br />

Nicht-gespeichert<br />

R<br />

vorrangiges rückssetzen<br />

S<br />

setzen (gespeichert))<br />

L<br />

zeitbegrenzt<br />

D<br />

zeitverzögert<br />

P<br />

Impuls (Flanke)<br />

SD<br />

gespeichert und zeitverzögert<br />

DS<br />

verzögert und gespeichert<br />

SL<br />

gespeichert und zeitbegrenzt<br />

Abbildung 6.4c: Bestimmungszeichen für Aktionen<br />

Abbildung 6.4d: Beispiel für die Verwendung von Bestimmungszeichen<br />

Prof. Dr.-Ing. Andreas Kegler [File: AUT1_abb.doc 07.09.05] Seite 18


Vorlesung "Automatisierungstechnik" – Teil 1: "Speicherprogrammierbare <strong>Steuerung</strong>en"<br />

Arbeitsblätter "Abbildungen" [ABB 19]<br />

Abbildung 6.5: Ablaufkette<br />

Beispiel<br />

Beschreibung<br />

|<br />

+----+ Einfache Kette:<br />

| S3 | Der Wechsel Schritt/Transition<br />

+----+ wird als Folge wiederholt.<br />

|<br />

+ c Beispiel:<br />

| Ein Ablauf von Schritt S3 zu Schritt S4<br />

+----+ findet nur dann statt, wenn<br />

| S4 |<br />

Schritt S3 in aktivem Zustand ist und<br />

+----+<br />

die Transitionsbedingung c wahr ist.<br />

|<br />

Beispiel<br />

Beschreibung<br />

| Kettenauswahl mit Stern:<br />

+----+ Eine Auswahl zwischen mehreren Ketten<br />

| S5 | wird durch so viele Transitionssymbole<br />

+----+ unter der horizontalen Linie dargestellt,<br />

| wie es unterschiedliche mögliche<br />

+-----*----+--... Abläufe gibt. Der Stern (*) gibt an, dass die<br />

| | Transitionen von links nach rechts<br />

+ e + f bearbeitet werden.<br />

| |<br />

+----+ +----+ Beispiel :<br />

| S6 | | S8 | Ein Ablauf von S5 nach S6<br />

+----+ +----+ findet nur statt, wenn S5 aktiv ist und<br />

| | die Transitionsbedingung e wahr ist<br />

oder von S5 nach S8 nur wenn S5 aktiv ist<br />

und f wahr und e falsch ist.<br />

Abbildung 6.6a: Kettenauswahl mit Priorität von links nach rechts<br />

Beispiel<br />

Beschreibung<br />

| Kettenauswahl mit Prioritätsnummern:<br />

+----+ Der Stern gefolgt von numerierten<br />

| S5 | Zweigen zeigt eine anwender-definierte Priorität der<br />

+----+ Transitionsauswertung an, dabei hat der Zweig mit<br />

| der niedersten Nummer die höchste<br />

+-----*-----+--... Priorität.<br />

|2 |1<br />

+ e + f Beispiel:<br />

| | Ein Ablauf von S5 nach S8 findet nur statt, wenn<br />

+----+ +----+ S5 aktiv ist und die Transitionsbedingung<br />

| S6 | | S8 | f wahr ist oder von S5 nach S6<br />

+----+ +----+ nur, wenn S5 aktiv ist und e wahr ist<br />

| | und f falsch ist.<br />

Abbildung 6.6b: Kettenauswahl mit Prioritätsnummern<br />

Prof. Dr.-Ing. Andreas Kegler [File: AUT1_abb.doc 07.09.05] Seite 19


Vorlesung "Automatisierungstechnik" – Teil 1: "Speicherprogrammierbare <strong>Steuerung</strong>en"<br />

Arbeitsblätter "Abbildungen" [ABB 20]<br />

Beispiel<br />

Beschreibung<br />

| Kettenauswahl ohne Priorität:<br />

+----+ Bei einer Kettenauswahl ohne Stern fehlt die Priorität.<br />

| S5 | Der Anwender muss selbst dafür sorgen, dass die<br />

+----+ Transitionsbedingungen sich gegenseitig<br />

| ausschließen!<br />

+-----+-----+--...<br />

| | Beispiel:<br />

+e +NOT e Ein Ablauf von S5 nach S6 findet nur statt, wenn<br />

| | & f S5 aktiv ist und die Transitionsbedingung<br />

+----+ +----+ e wahr ist oder von S5 nach S8<br />

| S6 | | S8 | nur wenn S5 aktiv ist und e falsch ist<br />

+----+ +----+ und f wahr ist.<br />

| |<br />

Abbildung 6.6c: Kettenauswahl ohne Priorität<br />

Beispiel<br />

Beschreibung<br />

| | Zusammenführung einer Kettenauswahl:<br />

+----+ +----+ Das Ende einer Kettenauswahl wird<br />

| S7 | | S9 | durch soviele Transitionssymbole<br />

+----+ +----+ über der horizontalen Linie dargestellt, wie<br />

| | es Auswahlpfade gibt, die zu beenden sind.<br />

+ h + j<br />

| | Beispiel:<br />

+-----+-----+--... Ein Ablauf von S7 nach S10 findet nur statt,<br />

| wenn S7 aktiv ist und die Transitionsbedingung<br />

+----+ h wahr ist oder von S9 nach S10<br />

|S10 | nur, wenn S9 aktiv ist und j wahr ist.<br />

+----+<br />

|<br />

Abbildung 6.6d: Zusammenführung einer Kettenauswahl<br />

Beispiel<br />

Beschreibung<br />

| Verzweigung von Simultanketten:<br />

+----+ Es ist nur ein gemeinsames Transitionssymbol<br />

|S11 | unmittelbar über der doppelten horizontalen<br />

+----+ Synchronisationslinie möglich.<br />

|<br />

+ b Beispiel:<br />

| Ein Ablauf von S11 nach S12, S14,... findet nur<br />

==+=====+=====+==... statt, wenn S11 aktiv ist und<br />

| | die Transitionsbedingung b,<br />

+----+ +----+ die zur gemeinsamen Transition gehört, ebenfalls wahr ist.<br />

| S12| | S14| Nach der simultanen Aktivierung<br />

+----+ +----+ von S12, S14, usw. laufen die Ketten unabhängig von<br />

| | einander ab.<br />

| |<br />

Abbildung 6.7a: Verzweigung von Simultanketten<br />

Prof. Dr.-Ing. Andreas Kegler [File: AUT1_abb.doc 07.09.05] Seite 20


Vorlesung "Automatisierungstechnik" – Teil 1: "Speicherprogrammierbare <strong>Steuerung</strong>en"<br />

Arbeitsblätter "Abbildungen" [ABB 21]<br />

Beispiel<br />

Beschreibung<br />

| | Zusammenführung von Simultanketten:<br />

+----+ +----+ Es ist nur ein gemeinsames Transitionssymbol<br />

| S13| | S15| unmittelbar unter der doppelten horizontalen<br />

+----+ +----+ Synchronisationslinie möglich.<br />

| |<br />

==+=====+=====+==... Beispiel :<br />

| Ein Ablauf von S13, S15,...nach S16 findet nur<br />

+ d statt, wenn alle Schritte aktiv sind, die oberhalb<br />

| und verbunden mit der doppelten horizontalen<br />

+----+ Linie sind und die Transitionsbedingung d, die<br />

|S16 | zur gemeinsamen Transition gehört,<br />

+----+<br />

|<br />

Abbildung 6.7b: Zusammenführung von Simultanketten<br />

Beispiel<br />

Beschreibung<br />

| Ketten-Sprung :<br />

+-----+ Ein "Ketten-Sprung" ist ein Sonderfall der Kettenauswahl,<br />

| S30 | bei der einer oder mehrere Zweige keine Schritte enthalten.<br />

+-----+<br />

| Die Eigenschaften entsprechen den Darstellungs-<br />

+---*---+ möglichkeiten, die in den Abbildungen 6a,b,c<br />

| | angegeben sind.<br />

+ a +d<br />

| |<br />

+-----+ |<br />

| S31 | | Beispiel:<br />

+-----+ | (Eigenschaft der Abb. 6a ist gezeigt)<br />

| | Ein Ablauf von S30 nach S33 findet nur statt,<br />

+ b | wenn a falsch und d wahr ist, d.h.<br />

| | die Kette (S31, S32) wird übersprungen.<br />

+-----+ |<br />

| S32 | |<br />

+-----+ |<br />

| |<br />

+ c |<br />

| |<br />

+---+---+<br />

|<br />

+-----+<br />

| S33 |<br />

+-----+<br />

|<br />

Abbildung 6.8: Beispiel für einen Kettensprung<br />

Prof. Dr.-Ing. Andreas Kegler [File: AUT1_abb.doc 07.09.05] Seite 21


Vorlesung "Automatisierungstechnik" – Teil 1: "Speicherprogrammierbare <strong>Steuerung</strong>en"<br />

Arbeitsblätter "Abbildungen" [ABB 22]<br />

Beispiel<br />

Beschreibung<br />

| Ketten-Schleife:<br />

+-----+ Eine Ketten-Schleife ist ein Sonderfall einer<br />

| S30 | Kettenauswahl in der ein der ein oder mehrere<br />

+-----+ Zweige zu einem Vorgängerschritt zurückführen.<br />

|<br />

+ a Die Eigenschaften entsprechen den Darstellungs-<br />

| möglichkeiten, die in den Abbildungen 6a,b,c<br />

+--- -- + Wenn diese Eigenschaft benutzt wird,<br />

| S33 | muss das entsprechende Zeichen zwischen zwei<br />

+-----+ "-" Zeichen angeordnet sein;<br />

| d.h. als Zeichenfolge "--", wie im<br />

zugehörigen Beispiel gezeigt.<br />

Abbildung 6.9a: Beispiel für eine Kettenschleife<br />

Abbildung 6.9b: Beispiel für eine Kettenschleife mit Hilfe eines Sprungpfeils<br />

Prof. Dr.-Ing. Andreas Kegler [File: AUT1_abb.doc 07.09.05] Seite 22


Vorlesung "Automatisierungstechnik" – Teil 1: "Speicherprogrammierbare <strong>Steuerung</strong>en"<br />

Arbeitsblätter "Abbildungen" [ABB 23]<br />

a |<br />

+------+<br />

| | |<br />

+-----+ +------+ +------+<br />

|STEP10|<br />

|STEP9| |STEP13| |STEP22|<br />

| | | | | * | | * |<br />

+------+ +-----+ +------+ +------+<br />

| | | |<br />

+ X ====+========+=========+====<br />

| |<br />

+------+ + X<br />

|STEP11| |<br />

| | ====+====+===+====<br />

+------+ | |<br />

| +------+ +------+<br />

|STEP15| |STEP16|<br />

| | | |<br />

+------+ +------+<br />

| |<br />

b |<br />

+------+<br />

| | |<br />

+-----+ +------+ +------+<br />

|STEP10|<br />

|STEP9| |STEP13| |STEP22|<br />

| * | | * | | * | | * |<br />

+------+ +-----+ +------+ +------+<br />

| | | |<br />

+ X ====+========+=========+=====<br />

| |<br />

+------+ + X<br />

|STEP11| |<br />

| | ====+====+====+====<br />

+------+ | |<br />

| +------+ +------+<br />

|STEP15| |STEP16|<br />

| | | |<br />

+------+ +------+<br />

| |<br />

c |<br />

+------+<br />

| | |<br />

+-----+ +------+ +------+<br />

|STEP10|<br />

|STEP9| |STEP13| |STEP22|<br />

| | | | | | | |<br />

+------+ +-----+ +------+ +------+<br />

| | | |<br />

+ X * ====+========+=========+====<br />

| |<br />

+------+ + X *<br />

|STEP11| |<br />

| * | ====+====+===+====<br />

+------+ | |<br />

| +------+ +------+<br />

|STEP15| |STEP16|<br />

| * | | * |<br />

+------+ +------+<br />

| |<br />

ANMERKUNG: Der aktive Zustand eines Schrittes bzw. einer Transition ist hier jeweils durch<br />

einen Stern (*) angezeigt. Diese Schreibweise wird hier nur zur Veranschaulichung benutzt!<br />

Abbildung 6.10: Ablaufregeln<br />

a) Transition nicht freigegeben (X = nicht wirksam);<br />

b) Transition freigegeben, aber nicht geschaltet (X = 0);<br />

c) Transition geschaltet (X = 1)<br />

Prof. Dr.-Ing. Andreas Kegler [File: AUT1_abb.doc 07.09.05] Seite 23


Vorlesung "Automatisierungstechnik" – Teil 1: "Speicherprogrammierbare <strong>Steuerung</strong>en"<br />

Arbeitsblätter "Abbildungen" [ABB 24]<br />

+----------------------+<br />

| |<br />

| +=====+<br />

| || A ||<br />

| +=====+<br />

| |<br />

| + t1<br />

| |<br />

| ======+==========+============+=======<br />

| | |<br />

| +-----+ +-----+<br />

| | B | | C |<br />

| +-----+ +-----+<br />

| | |<br />

| | *--------+<br />

| | | |<br />

| | + t2 + t3<br />

| | | |<br />

| | +---+ +---+<br />

| | | D | | E |<br />

| | +---+ +---+<br />

| | | |<br />

| ===+==========+============+=== |<br />

| | |<br />

| + t4 + t5<br />

| | |<br />

| +---+ +---+<br />

| | F | | G |<br />

| +---+ +---+<br />

| | |<br />

| + t6 + t7<br />

| | |<br />

+----------------------+---------------------+<br />

Abbildung 6.10d: Ablauffehler, "unsichere" Ablaufkette<br />

Prof. Dr.-Ing. Andreas Kegler [File: AUT1_abb.doc 07.09.05] Seite 24


Vorlesung "Automatisierungstechnik" – Teil 1: "Speicherprogrammierbare <strong>Steuerung</strong>en"<br />

Arbeitsblätter "Abbildungen" [ABB 25]<br />

+----------------------+<br />

| |<br />

| +=====+<br />

| || A ||<br />

| +=====+<br />

| |<br />

| + t1<br />

| |<br />

| ======+==========+============+=======<br />

| | |<br />

| +-----+ +-----+<br />

| | B | | C |<br />

| +-----+ +-----+<br />

| | |<br />

| | *--------+<br />

| | | |<br />

| | + t2 + t3<br />

| | | |<br />

| | +---+ +---+<br />

| | | D | | E |<br />

| | +---+ +---+<br />

| | | |<br />

| ===+==========+============+=== |<br />

| | |<br />

| + t4 + t5<br />

| | |<br />

| +---+ +---+<br />

| | F | | G |<br />

| +---+ +---+<br />

| | |<br />

| ====+==========+==========+===<br />

| |<br />

| + t6<br />

| |<br />

+---------------------------------+<br />

Abbildung 6.10e: Ablauffehler, "unerreichbare" Ablaufkette<br />

Prof. Dr.-Ing. Andreas Kegler [File: AUT1_abb.doc 07.09.05] Seite 25

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!