4. Programmierung SPS AWL, FUP, SCL

4. Programmierung SPS – AWL, FUP, SCL † Übersicht Programmiersprachen: Konzentration auf binäre Operationen! † Steuerungseinheit der SPS (CPU) † ...
75 downloads 14 Views 983KB Size
4. Programmierung SPS – AWL, FUP, SCL †

Übersicht Programmiersprachen: Konzentration auf binäre Operationen!

†

Steuerungseinheit der SPS (CPU)

†

Laden und Transferieren von digitalen Daten

†

Elementare Datentypen (BOOL, BYTE, WORD, DWORD)

†

Elementare Datentypen (INT, DINT, REAL, S5TIME)

†

Logische Grundverknüpfungen

†

Zusammengesetzte logische Grundverknüpfungen

†

Direkte Adressierung für E, A, M

†

Zuweisen(=), Setzen(S), Rücksetzen(R)

†

Beispiel: Siloentleerung

†

RS-Flipflop: Prinzip / Gegenseitiges Verriegeln /Reihenfolgeverriegelung

†

Beispiel: Torsteuerung

†

Zeitfunktionen: Allgemein / SE,SV,SE,SS,SA / Beispiel Taktgeber

†

Zähler – Allgemein / Programmierung / Beispiel

†

Sprünge / Vergleichsoperationen

HAW Hamburg Prof. Dr.-Ing. U. Meiners

ST - Steuerungstechnik Sommersemester 2009

ST.ppt / Folie 43 Nur für Lehrzwecke

Übersicht Programmiersprachen

S7-SCL

Sequential Function Chart SFC S7-Graph

Schwerpunkte im Kapitel HAW Hamburg Prof. Dr.-Ing. U. Meiners

ST - Steuerungstechnik Sommersemester 2009

Quelle: IAS Stuttgart ST.ppt / Folie 44 Nur für Lehrzwecke

Steuerungseinheit der SPS (CPU)

Timer

†

Speicher = Ladespeicher + Arbeitsspeicher

†

Systemspeicher:

†

„

Prozessabbild: Eingänge, Ausgänge

„

Merker = Zwischenergebnisse

„

Timer, Zähler = Zahlenwerte der Zeit-/Zählerfunktionen

Akku = Akkumulatoren = Zwischenspeicher für ALU -> S7-300: 2 Stück!

HAW Hamburg Prof. Dr.-Ing. U. Meiners

Quelle: Wellenreuther

ST - Steuerungstechnik Sommersemester 2009

ST.ppt / Folie 45 Nur für Lehrzwecke

AWL: Laden und Transferieren von (digitalen) Daten †

Laden von Daten durch den L : L L L

EB10 MB120 MW10

//Lade Eingangsbyte (8 Bit) EB10 in AKKU1-L-L //Lade Merkerbyte (8 Bit) MB120 in AKKU1-L-L //Lade Merkerwort (16 Bit) MW10 in AKKU1-L

Inhalt von AKKU 1 (32 Bit) vor Ausführung der Ladeoperation nach Ausführung von L MB10 (L ) nach Ausführung von L MW10 (L ) nach Ausführung von L MD10 (L )

†

AKKU1-H-L XXXXXXXX 00000000 00000000

AKKU1-L-H XXXXXXXX 00000000

AKKU1-L-L XXXXXXXX

Transferieren von Daten durch den T-Befehl: Akku1 ->ZielAdr T T

†

AKKU1-H-H XXXXXXXX 00000000 00000000

AB10 MW14

//Transferiere den Inhalt von AKKU1-L-L in das Ausgangsbyte AB10 //Transferiere den Inhalt von AKKU1-L in das Merkerwort MW14

Akku1, Akku2 vorhanden – wichtig bei Ladebefehl!

HAW Hamburg Prof. Dr.-Ing. U. Meiners

ST - Steuerungstechnik Sommersemester 2009

ST.ppt / Folie 46 Nur für Lehrzwecke

Elementare Datentypen (BOOL, BYTE, WORD, DWORD) Typ und Beschreibung

Größe in Bits

Formatoptionen

Bereich und Zahlendarstellung (niedrigster bis höchster Wert)

AWL-Beispiel

BOOL (Bit)

1

Bool-Text

TRUE/FALSE

TRUE

BYTE (Byte)

8

Hexadezimalzahl

B#16#0 bis B#16#FF

L B#16#10 L byte#16#10

WORD (Wort)

16

Dualzahl

2#0 bis 2#1111_1111_1111_1111

L 2#0001_0000_0000_0000

Hexadezimalzahl

W#16#0 bis W#16#FFFF

L W#16#1000 L word#16#1000

BCD

C#0 bis C#999

L C#998

Dezimalzahl ohne Vorzeichen

B#(0,0) bis B#(255,255)

L B#(10,20) L byte#(10,20)

Dualzahl

2#0 bis 2#1111_1111_1111_1111_ 1111_1111_1111_1111

L 2#1000_0001_0001_1000_ 1011_1011_0111_1111

Hexadezimalzahl

DW#16#0000_0000 bis DW#16#FFFF_FFFF

L DW#16#00A2_1234 L dword#16#00A2_1234

Dezimalzahl ohne Vorzeichen

B#(0,0,0,0) bis B#(255,255,255,255)

L B#(1, 14, 100, 120) L byte#(1,14,100,120)

DWORD (Doppelwort)

32

HAW Hamburg Prof. Dr.-Ing. U. Meiners

ST - Steuerungstechnik Sommersemester 2009

ST.ppt / Folie 47 Nur für Lehrzwecke

Elementare Datentypen (INT, DINT, REAL, S5TIME) Typ und Beschreibung

Größe in Bits

Formatoptionen

Bereich und Zahlendarstellung (niedrigster bis höchster Wert)

AWL-Beispiel

INT (Ganzzahl)

16

Dezimalzahl mit Vorzeichen

-32768 bis 32767

L1

DINT (Ganzzahl, 32 Bit)

32

Dezimalzahl mit Vorzeichen

L#-2147483648 bis L#2147483647

L L#1

REAL (Gleitpunktzahl)

32

IEEE Gleitpunktzahl

Obere Grenze: 3.402823e+38 Untere Grenze: 1.175 495e-38

L 1.234567e+13

S5TIME (SIMATIC-Zeit)

16

S7-Zeit in Schritten von 10 ms (Default-Wert)

S5T#0H_0M_0S_10MS bis S5T#2H_46M_30S_0MS und S5T#0H_0M_9990S_0MS

L S5T#0H_1M_0S_0MS L S5T#1H_1M_0S_0MS

… weitere elementare und zusammengesetzte Datentypen siehe S7-Online-Hilfe

HAW Hamburg Prof. Dr.-Ing. U. Meiners

ST - Steuerungstechnik Sommersemester 2009

ST.ppt / Folie 48 Nur für Lehrzwecke

Direkte Adressierung für E, A, M †

Zugriff auf Bit, Byte, Word und Doppelwort:

†

Wortadressen:

†

Doppelwortadressen:

ED0 = EW0 + EW2 AD0 = AW0 + AW2

HAW Hamburg Prof. Dr.-Ing. U. Meiners

ST - Steuerungstechnik Sommersemester 2009

ST.ppt / Folie 49 Nur für Lehrzwecke

Binäre (Logische) Grundverknüpfungen †

Grundverknüpfungen UND / ODER / NICHT in Darstellung Boolesche Algebra / Zeitdiagramm / FUP / KOP / AWL / SCL: ST (S7-SCL) A4.0 := E0.1 AND E0.2;

A4.0 := E0.1 OR E0.2;

A = E1+E2 A4.0 := NOT E0.0;

=!E

A4.0 := NOT(E0.1 AND E0.2);

Andere gebräuchliche Notation Quelle: Wellenreuther

HAW Hamburg Prof. Dr.-Ing. U. Meiners

ST - Steuerungstechnik Sommersemester 2009

ST.ppt / Folie 50 Nur für Lehrzwecke

AWL: Abfrageergebnis (AE) / Verknüpfungsergebnis (VKE) Beispiel:

AWL-Code gegeben. Annahme E1.0=0 und E1.1=0 …… …… = A4.0

AE ….

VKE ….

„Bedingte Operation“

UN E1.0 U E1.1

1 0

1 0

„Erstabfrage“ „Abfrageoperation“

=

0

0

„Bedingte Operation“

A8.0

Bedingte Operation Operationen, deren Ausführung vom Verknüpfungsergebnis abhängt. Beispiele = R, S, Starten von Zeiten und Zählern. Verändern das VKE nicht! Erstabfrage Erste nach einer bedingten Operation bearbeitete Abfrageoperation. AE -> VKE! Abfrageergebnis AE UN, ON, XN: Operand = 0/1 -> AE =1/0 U,O,X : Operand= 0/1 -> AE =0/1 Verknüpfungsergebnis VKE Gemäß der Abfrageoperation wird das Verknüpfungsergebnis (VKE) gebildet. HAW Hamburg Prof. Dr.-Ing. U. Meiners

ST - Steuerungstechnik Sommersemester 2009

ST.ppt / Folie 51 Nur für Lehrzwecke

AWL: Zusammengesetzte binäre Grundverknüpfungen

A = E1*E2*!E3+E1*!E2+E3

durch Klammerung

Quelle: Wellenreuther

HAW Hamburg Prof. Dr.-Ing. U. Meiners

ST - Steuerungstechnik Sommersemester 2009

ST.ppt / Folie 52 Nur für Lehrzwecke

AWL: Zusammengesetzte binäre Grundverknüpfungen Klammerfunktionen: O

ODER-Verknüpfung von UND-Verknüpfungen

U(

Klammer auf mit UND-Verknüpfung

O(

Klammer auf mit ODER-Verknüpfung

X(

Klammer auf mit Exklusiv-ODER-Verknüpfung

UN(

Klammer auf mit Negation und UND-Verknüpfung

ON(

Klammer auf mit Negation und ODER-Verknüpfung

XN(

Klammer auf mit Negation und Exklusiv-ODER-Verknüpfung

)

Klammer zu

Merke: †

Abfrageergebnis (AE) nach Klammer-auf-Anweisung ist immer eine Erstabfrage -> VKE wird neu gebildet

†

Abfrageergebnis (AE) nach Klammer-zu-Anweisung ist nie eine Erstabfrage!

HAW Hamburg Prof. Dr.-Ing. U. Meiners

ST - Steuerungstechnik Sommersemester 2009

ST.ppt / Folie 53 Nur für Lehrzwecke

AWL-Beispiel: Klammerausdrücke (1) Bearbeitung von Klammerausdrücken:

(2) Beispiel für geschachtelte Klammerausdrücke:

Quelle: Berger

HAW Hamburg Prof. Dr.-Ing. U. Meiners

ST - Steuerungstechnik Sommersemester 2009

ST.ppt / Folie 54 Nur für Lehrzwecke

Welche binäre Funktion wurde hier umgesetzt?

AWL-Code 1:

AWL-Code 2:

O O U U =

O O O U U =

HAW Hamburg Prof. Dr.-Ing. U. Meiners

S1 S2 S3 S4 A1

ST - Steuerungstechnik Sommersemester 2009

S1 S2 S3 S4 A2

ST.ppt / Folie 55 Nur für Lehrzwecke

Beispiel: Siloentleerung

Aufgaben = Systematische Lösung: a) Zuordnungstabelle für die Ein- und Ausgänge aufstellen! b) Funktionstabelle: Eingänge S3,S2,S1 -> Ausgänge P1,P2,H aufstellen! c) Boolesche Schaltfunktionen aus der Funktionstabelle ermitteln! (vereinfachen!) d) Kodierung als FUP, AWL und S7-SCL (Ablauf in OB1)!

HAW Hamburg Prof. Dr.-Ing. U. Meiners

ST - Steuerungstechnik Sommersemester 2009

ST.ppt / Folie 58 Nur für Lehrzwecke

Zuweisen(=), Setzen(S), Rücksetzen(R) ST (S7-SCL)

Einfluß vom VKE:

VKE=0/1 -> A/M/D = 0/1

A8.0 := E1.0 AND E1.1;

=

S

R

VKE=1 -> A/M/D wird gesetzt =„1“ Rücksetzen durch R

IF (E1.2=1 AND E1.3=1) THEN A8.1:=1; END_IF;

VKE=1 -> A/M/D wird gelöscht =„0“ Setzen durch S

IF (E1.4=1 OR E1.5=1) THEN A8.1:=0; END_IF;

AWL: VKE gezielt löschen mit CLR VKE gezielt setzen mit SET

HAW Hamburg Prof. Dr.-Ing. U. Meiners

ST - Steuerungstechnik Sommersemester 2009

ST.ppt / Folie 59 Nur für Lehrzwecke

RS-Flipflop: Prinzip FUP

AWL

ST (S7-SCL) IF E0.1=1 THEN A4.0:=1; END_IF; IF E0.0=1 THEN A4.0:=0; END_IF;

FUP

AWL

ST (S7-SCL) IF E0.0=1 THEN A4.1:=0; END_IF; IF E0.1=1 THEN A4.1:=1; END_IF;

RS- Flipflop = Element mit Speicherwirkung mit Setz- (S) und Rücksetzeingang (R); Je nachdem, an welchem Eingang VKE=0->1 anliegt, wird Ausgang bzw. Merker gesetzt/zurückgesetzt Optionen: Vorrangiges Setzen oder Zurücksetzen (üblich): S- oder R-dominant Einsatz: Gegenseitige Verriegelung / Reihenfolgeverriegelung

HAW Hamburg Prof. Dr.-Ing. U. Meiners

ST - Steuerungstechnik Sommersemester 2009

ST.ppt / Folie 60 Nur für Lehrzwecke

RS-Flipflop: Gegenseitiges Verriegeln (1) †

Prinzip Gegenseitige Verriegelung über Rücksetzeingänge (Annahme R-dominant)

„Speicher dürfen nicht gleichzeitig gesetzt sein!“

†

Beispiel Behälter-Füllanlage: Nur ein(!) Behälter soll nach erfolgter Leermeldung befüllt werden. Solange Füllen, bis Vollmeldung da ist! -> Verriegelung! Lösung in FUP (AWL, S7-SCL)?

HAW Hamburg Prof. Dr.-Ing. U. Meiners

ST - Steuerungstechnik Sommersemester 2009

ST.ppt / Folie 61 Nur für Lehrzwecke

RS-Flipflop: Reihenfolgeverriegelung (1) †

Prinzip Reihenfolgeverriegelung über Setzeingang: (R-dominante FFs)

A2 kann nur gesetzt werden, wenn A1 gesetzt=„1“ ist

†

Beispiel Kiesförderanlage

Band 1 darf nur eingeschaltet werden, wenn Band 2 läuft. Band 2 darf nur eingeschaltet werden, wenn Band 3 läuft. Umgekehrt beim Ausschalten. S0 = Not-Aus. Lösung mit R-dominanten FFs?

HAW Hamburg Prof. Dr.-Ing. U. Meiners

ST - Steuerungstechnik Sommersemester 2009

ST.ppt / Folie 63 Nur für Lehrzwecke

Übung Verriegelung: Torsteuerung

Zu Hause!

Aufgaben: a)

Zuordnungstabelle der Ein-/Ausgänge aufstellen!

b)

Mit RS-Tabelle die Bedingungen für die Ansteuerung der Setzund Rücksetzeingänge der beiden R-dominanten RS-FFs K1 und K2 aufstellen!

c)

Kodierung als FUP und in AWL (Ablauf in OB1)!

Hinweis: S0, S4, S5 low-aktiv!

HAW Hamburg Prof. Dr.-Ing. U. Meiners

ST - Steuerungstechnik Sommersemester 2009

ST.ppt / Folie 65 Nur für Lehrzwecke

Zeitfunktionen - Allgemein †

†

Zeitfunktionen zur Generierung „ eines Impulses (SI) „ eines verlängerten Impulses (SV) „ einer Einschaltverzögerung (SE) „ einer Ausschaltverzögerung (SA) und

………

Allgemeiner Aufbau:

Vorgabewert Zeitdauer laden: z.B. in AWL durch L S5T#500ms für 500ms HAW Hamburg Prof. Dr.-Ing. U. Meiners

ST - Steuerungstechnik Sommersemester 2009

ST.ppt / Folie 66 Nur für Lehrzwecke

AWL FUP SCL

Zeitfunktionen SI, SV

SI S_IMPULS S_PULSE

SV S_VIMP S_PEXT

HAW Hamburg Prof. Dr.-Ing. U. Meiners

ST - Steuerungstechnik Sommersemester 2009

ST.ppt / Folie 67 Nur für Lehrzwecke

Beispiel für AWL/SCL-Programmierung SV Aufgabe: Eingang E0.1 erzeugt verlängerten Impuls der Länge 1,5s am Ausgang A4.1 AWL:

SCL:

U L SV

E0.1 S5T#1S_500MS T1

L T LC T U =

T1 MW0 T1 AW12 T1 A4.1

// E0.1 als Starteingang nutzen // Zeitdauer vorbesetzen in Akku1 // Flankenwechsel 0->1 von Signal E0.1 // startet SV mit T1 // Restzeit binär codiert von T1 // in Merker MW0 transferieren // Restzeit BCD-codiert von T1 // in das Ausgang AW12 transferieren // Abfrage Zeitoperand T1 („Q-Ausgang von T1“)

BCD_ZEITWERT := S_PEXT ( T_NO:= T1, // BCD_ZEITWERT ist vom Typ S5TIME! S:= E0.1, TV:= t#1S_500MS, BI:= MW0, Q:= A4.1 );

Rot = „Essentials“ HAW Hamburg Prof. Dr.-Ing. U. Meiners

ST - Steuerungstechnik Sommersemester 2009

ST.ppt / Folie 68 Nur für Lehrzwecke

AWL FUP SCL

Zeitfunktionen SE, SS, SA SE S_EVERZ S_ODT

SS S_SEVERZ S_ODTS

!

SA S_AVERZ S_OFFDT

HAW Hamburg Prof. Dr.-Ing. U. Meiners

ST - Steuerungstechnik Sommersemester 2009

ST.ppt / Folie 69 Nur für Lehrzwecke

Zeitfunktionen - Beispiel Taktgeber Schritt 1: - Verwendung SE-Funktion - bei Programmstart TIO=0 -> S=1 - TIO Ausgang führt nach jeweils 1Sekunde für die Dauer eines Programmzyklus lang ein „1“ Signal

Schritt 2: TIO Signal steuert Binäruntersetzer an: -> periodisches Taktsignal

HAW Hamburg Prof. Dr.-Ing. U. Meiners

ST - Steuerungstechnik Sommersemester 2009

ST.ppt / Folie 70 Nur für Lehrzwecke

Zähler - Allgemein †

Benötigt für: - Mengen oder Positionen durch Aufzählen zu erfassen - Realisierung von Steuerwerken

†

Allgemeiner Aufbau:

Muss als BCD-Zahl gesetzt werden!

Zählbereich von 000…999. Kein Überlauf. Zähler=0 -> Q=0.

Zähler0 -> Q=1.

Vorwärts- / Rückwärtszählen

HAW Hamburg Prof. Dr.-Ing. U. Meiners

ST - Steuerungstechnik Sommersemester 2009

ST.ppt / Folie 72 Nur für Lehrzwecke

AWL: Zähler – Programmierung

U L S

E0.3 C#20 Z5

// Bei positiver Flanke an E0.3 wird // Zähler Z5 mit Zahlenwert 20 vorbesetzt //

U ZV

E0.4 Z5

// Bei positiver Flanke an E0.4 wird // Zähler Z5 um eins erhöht

U ZR

E0.5 Z5

// Bei positiver Flanke an E0.5 wird // Zähler um eins erniedrigt

U R

E0.7 Z5

// Bei E0.7=1 wird Zähler zurückgesetzt //

LC T

Z5 AW12

// Zählerstand wird als BCD Zahl ausgelesen // und nach AW12 transferiert

L T

Z5 MW4

// Zählerstand dual codiert ins // Merkerwort MW4 transferieren

U =

Z5 A8.3

// A8.3=1 falls Zählerstand0 („Ausgang Q von Z5“)

HAW Hamburg Prof. Dr.-Ing. U. Meiners

ST - Steuerungstechnik Sommersemester 2009

ST.ppt / Folie 73 Nur für Lehrzwecke

SCL: Zähler – Programmierung

BCD_WERT

:= S_CUD (

// S_CUD = Vorwärts-, Rückwärtszähler

C_NO:= Z5,

// Zähler Z5 verwenden

CU:= E0.4,

// UP bei positiver Flanke auf E0.4

CD:= E0.5,

// DOWN bei positiver Flanke auf E0.5

S:= E0.3,

// Vorgabewert setzen bei positiver Flanke auf E0.3

PV:= 16#20,

// Vorgabewert (BCD) codiert

R:= E0.7,

// Rücksetzen bei E0.7=1

CV:= MW4,

// Zählwert dual in MW4 speichern

Q := A8.3

// A8.3=1 falls Zählerstand0

(„Ausgang Q von Z5“)

);

HAW Hamburg Prof. Dr.-Ing. U. Meiners

ST - Steuerungstechnik Sommersemester 2009

ST.ppt / Folie 74 Nur für Lehrzwecke

AWL: Zähler – Beispiel „Lagerbereich mit Zähler“ (1)

Das folgende Bild zeigt ein System mit zwei Förderbändern und einem temporären Lagerbereich dazwischen. Förderband 1 transportiert die Pakete zum Lagerbereich. Eine Lichtschranke am Ende des Förderbandes 1 neben dem Lagerbereich ermittelt, wie viele Pakete in den Lagerbereich transportiert werden. Förderband 2 transportiert Pakete von diesem temporären Lagerbereich zu einer Laderampe, wo sie zur Auslieferung beim Kunden auf LKW verladen werden. Eine Lichtschranke am Ende des Förderbandes 2 neben dem Lagerbereich ermittelt, wie viele Pakete aus dem Lagerbereich heraus zur Laderampe transportiert werden. Fünf Anzeigeleuchten zeigen an, wie weit der temporäre Lagerbereich gefüllt ist. HAW Hamburg Prof. Dr.-Ing. U. Meiners

ST - Steuerungstechnik Sommersemester 2009

ST.ppt / Folie 75 Nur für Lehrzwecke

AWL: Zähler – Beispiel „Lagerbereich mit Zähler“ (2) U ZV

U ZR

E12.0 // Jeder durch die Lichtschranke 1 generierte Impuls erhöht Z1 // den Zählwert des Zählers Z1 um "1", wodurch die Zahl der // Pakete gezählt wird, die in den Lagerbereich transportiert // werden. E12.1 // Jeder durch die Lichtschranke 2 generierte Impuls Z1 // vermindert den Zählwert des Zählers Z1 um "1", // wodurch die Zahl der Pakete gezählt wird, die // den Lagerbereich verlassen

UN =

Z1 // Wenn der Zählwert "0" beträgt, schaltet sich die A12.0 // Anzeigeleuchte für die Meldung "Lagerbereich leer" ein.

U =

Z1 // Beträgt der Zählwert nicht "0", A12.1 // schaltet sich die Anzeigeleuchte für die Meldung "Lagerbereich nicht leer" ein.

L L =I =

Z1 90

L L >=I =

Z1 100

// Ist 50 kleiner oder gleich Zählwert, A15.2 // dann schaltet sich die Anzeigeleuchte für die Meldung "Lagerbereich zu 50% voll" ein.

// Ist der Zählwert größer oder gleich 90, A15.3 // dann schaltet sich die Anzeigeleuchte für die Meldung "Lagerbereich zu 90% voll" ein.

// Ist der Zählwert größer oder gleich 100, A15.4 // dann schaltet sich die Anzeigeleuchte für die Meldung "Lagerbereich voll" ein.

HAW Hamburg Prof. Dr.-Ing. U. Meiners

ST - Steuerungstechnik Sommersemester 2009

ST.ppt / Folie 76 Nur für Lehrzwecke

AWL: Sprünge / Vergleichfunktionen Operation

Operand

Bedeutung

SPA

Marke

Springe unbedingt

SPB

Marke

Springe bedingt bei VKE=1

SPBN

Marke

Springe bedingt bei VKE=0

SPZ

Marke

Springe bei AKKU1=0

SPN

Marke

Springe bei AKKU10

SPP

Marke

Springe bei AKKU1>0

SPM

Marke

Springe bei AKKU= größer gleich

L Zahl_1 L Zahl_2 >=I = Ergeb_1

Weitere Funktionen: >,