Sie sind auf Seite 1von 9

Automation and Drives - SCE

bung -- d001_7-Segmentanzeige
bersicht:
Der Steuerungsablauf fr die Anzeige der Ziffern 0 bis 9 mittels einer 7-Segmentanzeige soll mit einer
speicherprogrammierbaren Steuerung realisiert werden.

Lehrziele:
Sprungfunktionen, bertragungsfunktionen (Laden & Transferieren), Programmorganisation
Quelle:
SIEMENS AG, A&D - www.siemens.com/sce
Fachhochschule Kln - www.fh-koeln.de/ait

Vorraussetzungen:
Grundlagen der SPS-Programmierung mit SIMATIC S7-300 (Anhang I)
und Grundlegende Programmierbefehle (Anhang III), insbesondere:

Zuweisung
UND- und ODER-Verknpfung
Dezimales, Hexadezimales und Duales Zahlensystem

Zeitaufwand:

d001_7-Segmentanzeige_v02
Ausgabestand: 3/2006

Schwierigkeit:

Seite 1 von 9

SIMATIC-bungen
SCE Application Center

Automation and Drives - SCE

Funktionsbeschreibung:

Mit den Schaltern S1 bis S4


werden die Dezimalzahlen
0 bis 9 im BCD-Code
8-4-2-1-Code) in die
Steuerung eingegeben.

ber eine 7-Segmentanzeige


sollen die Ziffern 0 bis 9
dargestellt werden. Dazu
mssen fr jede einzelne Ziffer
die entsprechenden Segmente
(a bis g) angesteuert werden.

d001_7-Segmentanzeige_v02
Ausgabestand: 3/2006

Seite 2 von 9

SIMATIC-bungen
SCE Application Center

Automation and Drives - SCE

Einfhrung Dezimal-, Hexadezimal-, Duales Zahlensystem, BCD-Zahlensystem:


In diesem Abschnitt werden die genannten Zahlensysteme (zur Erinnerung) kurz vorgestellt, da in der SPSTechnik die Kenntnis darber unverzichtbar ist.
Dezimalsystem:
Wird von jedem im alltglichen Leben gebraucht.
Basiszahl: 10
Das heit: Jede Zahl wird als vielfaches einer Zehnerpotenz dargestellt.
Beispiel an der Dezimalzahl 253:
253 = 200 + 50 + 3 = 2 * 100 + 5 * 10 + 3 * 1 = 2 * 102 + 5 * 101 + 3 * 100
Dualsystem:
Basiszahl: 2
Das heit: Jede Zahl wird als vielfaches einer Zweierpotenz dargestellt.
Fr die Dezimalzahl 253 bedeutet dies:
253 = 128 + 64 + 32 + 16 + 8 + 4 + 0 + 1 = 1 * 27 + 1 * 26 + 1 * 25 + 1 * 24 + 1 * 23 + 1 * 22 + 0 * 21 + 1 * 20
Dies entspricht 11111101 als Bitmuster eines Bytes (8-Bit).
Hexadezimalsystem:
Basiszahl: 16
Das heit: Jede Zahl wird als Vielfaches einer 16er-Potenz dargestellt.
Die zur Verfgung stehenden Ziffern sind neben den aus dem dezimalen System bekannten Ziffern 0 bis 9 auch
A (fr 10) B (fr 11) C (fr 12) D (fr 13) E (fr 14) und F(fr 15)
Fr die Dezimalzahl 253 bedeutet dies:
253 = 240 + 13 = 15 * 161 + 13 * 160
dies entspricht FD in hexadezimaler Darstellung.
BCD-kodierte Darstellung von (dezimalen) Zahlen:
Bei dieser Art der Darstellung wird eine Dezimalstelle durch die ersten 4 Potenzen des Dual-Codes angezeigt:
Beispiel: Darstellung der Dezimalzahl 3 im BCD-Code:
8
0

4
0

2
1

1
1

3
1-er

Jeweils eine Zehnerpotenz wird durch eine Tetrade (1, 2, 4, 8) des dualen Systems dargestellt. Das Umwandeln
einer BCD-Zahl in eine Dezimalzahl ist aufgrunnd der bersichtlichkeit der Struktur sehr gut durchfhrbar.
In dieser Programmieraufgabe wird daher die Darstellung der Ziffern einer Tetrade gefordert.

d001_7-Segmentanzeige_v02
Ausgabestand: 3/2006

Seite 3 von 9

SIMATIC-bungen
SCE Application Center

Automation and Drives - SCE

bertragungsfunktion:
Allgemeines:
bertragungsfunktionen werden eingesetzt um Daten in den Akkumulator (Arbeitsregister) zu laden bzw.
auszulesen bzw. Daten zwischen den verschiedenen Akkumulatoren auszutauschen.
Einsatzbereich:

Austausch (Transfer) von Daten zwischen verschiedenen Datenbereichen (Eingngen, Ausgngen,


Merker, Konstanten und Datenbausteinen)
Digitale Operationen (z.B. Verknpfungen)
Schiebefunktionen

In der vorliegenden Aufgabe werden Sie Lade- und Transfer-Funktionen einsetzen. Auf den folgenden Seiten
wird die Funktionsweise und die programmtechnische Umsetzung dargestellt.
Lade- und Transferfunktionen:
Um Daten von einem Datenbereich (z.B. Eingnge, Merker) in einen anderen Datenbereich (z.B. Ausgnge,
Datenbaustein) zu bertragen, werden die Quelldaten in den Akkumulator geladen und dann in den
Zieldatenbereich transferiert.
Bei der Anwendung der Lade- und Transferbefehlen ist zu beachten, dass sie unabhngig vom
Verknpfungsergebnis (VKE) und den Statusbits ausgefhrt werden.
Da der Akkumulator normalerweise eine Breite von 32 Bit hat knnen nur die folgenden Operandenlnge bzw.
Variablenformate verwendet werden.
Operand:

Variablen:

Byte
Wort
Doppelwort

INT
DINT
REAL

Allgemeiner Hinweis (Fr diese Aufgabe nicht wichtig.):

Bei den Lade- und Transfer-Befehlen ist je nach Anwendung darauf zu achten, welche Lnge der Operand hat
und auf welche Art und Weise dieser in den Akku geladen wird, da dieser eine Breite von 4 Bytes (32 Bit) hat.
Stichworte dazu: Rechtsbndiges Laden, Highbyte, Lowbyte.
Bei der Anwendung innerhalb dieser Aufgabe (Laden und Transferieren eins Bytes) spielt dies keine
bedeutende Rolle.

d001_7-Segmentanzeige_v02
Ausgabestand: 3/2006

Seite 4 von 9

SIMATIC-bungen
SCE Application Center

Automation and Drives - SCE

Lade- und Transfer-Funktion in der Programmiersprache FUP und KOP:


Im Funktionsplan wird die Lade- und Transferfunktion mit einer MOVE-Box dargestellt. Sie ldt die am Eingang
IN anstehenden Daten in den Akku 1 und transferiert gleich anschlieend den Inhalt von Akku 1 zum
Operanden am Ausgang OUT. Neben dem IN-Eingang und dem OUT-Ausgang hat die MOVE-Box noch den
Freigabeeingang EN und den Freigabeausgang ENO. Nachfolgende Darstellungen zeigen die MOVE-Box im
FUP

und der KOP-Darstellung.

Hinweis:
Die gewhlte Adressierung ist beispielhaft.
Wirkungsweise des Aufrufs:
Hat der Eingang E 5.3 1-Signal, werden die Daten aus der Quelle (IN) an das Ziel (OUT) bertragen. In
diesem Beispiel steht an IN ein Wert in hexadezimalem Format an: 6D.
Der Wert 6D hat den dezimalen Wert 1 * 161 + 13 * 160 = 96 + 13 = 109 (dez).
Der Wert 109 (Dez) hat im dualen Zahlensystem den Wert:
64 + 32 + 8 + 4 + 1 = 1 * 26 + 1 * 25 + 0 * 24 + 1 * 23 + 1 * 22 + 0 * 21 + 1 * 20 = 1101101 als Bitmuster
Dargestellt im 8-Bit-Muster (= 1 Byte): 01101101 (sog. Darstellung mit fhrenden Nullen).
Auch hier wird erst der Wert 6D(hex) rechtsbndig in den Akku 1 geladen, bevor der Wert an das Ausgangsbyte
0 bertragen wird.

d001_7-Segmentanzeige_v02
Ausgabestand: 3/2006

Seite 5 von 9

SIMATIC-bungen
SCE Application Center

Automation and Drives - SCE

Nachfolgende Tabelle zeigt die Parameter, die mglichen Operanden und die Datentypen der MOVE-Box:
Parameter:
EN

Operand:
E, A, M, D, L, T oder Z

IN

E, A, M, D, L, P, Konstante
oder Variable

OUT

E, A, M, D, L oder Variable

EN0

E, A, M, D, L, T oder EN

Datentyp:
BOOL
Alle mit 1 Byte,
2 Bytes (Wort) oder
4 Bytes (Doppelwort)
Alle mit 1 Byte,
2 Bytes (Wort) oder
4 Bytes (Doppelwort)
BOOL

Fr den Gebrauch der MOVE-Box sind gewisse Regeln einzuhalten:

An den Eingang IN und an den Ausgang OUT knnen digitale Operanden mit den elementaren
Datentypen auer BOOL gelegt werden.
Die Variablen am Eingang IN und Ausgang OUT knnen unterschiedliche Datentypen aufweisen.
(Umwandlung von Datentypen beachten!).
Die Operandenbreite am Eingang IN und am Ausgang OUT kann unterschiedlich sein. (Stichwort: Was
passiert, wenn an IN ein Operand mit 4 Byte ansteht, und an OUT nur eine Breite von 2 Byte zur
Verfgung steht. Was geht verloren?).
Der Eingang EN und der Ausgang ENO mssen nicht beschaltet werden.
Mit dem Eingang EN kann die Abarbeitung der MOVE-Box bedingt durchgefhrt werden. (Stichwort:
Nicht nur ein Eingangsbit, sondern logische Verknpfungen knnen hierzu verwendet werden: UND,
ODER,...).

EN-/EN0-Mechanismus:
Die Freigabe (EN) und der Freigabeausgang (ENO) der FUP/KOP-Boxen wird mittels des BIE-Bits (Strungsbit
BIERegister) realisiert.
Wenn EN und ENO beschaltet sind, dann gilt:
ENO = EN AND NOT (Fehler der Box)
Wenn kein Fehler auftritt (Fehler der Box = 0), ist somit ENO = EN.
Der EN-/ENO-Mechanismus wird verwendet fr:
arithmetische Operationen,
bertragungs- und Umwandlungsoperationen,
Schiebe und Rotieroperationen,
Bausteinaufrufe.
Dieser Mechanismus wird nicht verwendet fr:
Vergleicher,
Zhler,
Timer.
Um die eigentlichen Befehle der Box werden fr den EN-/ENO-Mechanismus zustzliche AWL-Befehle in
Abhngigkeit von vorhandenen Vor- und Nachverknpfungen generiert.

d001_7-Segmentanzeige_v02
Ausgabestand: 3/2006

Seite 6 von 9

SIMATIC-bungen
SCE Application Center

Automation and Drives - SCE

Darstellung der MOVE-Box in AWL:


Ergnzende Darstellung (Inhalt) der MOVE-Box) in AWL:
Die nachfolgende AWL-Darstellung zeigt den Inhalt der bereits vorgestellten MOVE-Box und deren
Beschaltung.
Funktionsweise: Bedingung wird geprft (E 5.3 = 1?), wenn nein, ist das VKE = 0 und es erfolgt ein bedingter
Sprung (bei VKE = 0) an die angegebene Sprungmarke (_001), damit die Lade- und Transferanweisung
bersprungen werden kann. Sobald E 5.3 1-Signal fhrt, ist das VKE = 1, die Sprungbedingung nicht mehr
erfllt und die Lade- und Transferanweisung wird ausgefhrt. Die NOP-Anweisung ist fr die unterschiedliche
Darstellung in FUP/KOP/AWL notwendig, wie bereits in vorherigen Aufgaben erlutert.

Hinweis:
Die gewhlte Adressierung ist beispielhaft.
Die Ladeanweisung (IN) wird in AWL mit einem L gekennzeichnet, die Transferanweisung (OUT) mit einem T.
Die Sprunganweisung SPBNB hat folgende Bedeutung:
Springe bedingt bei VKE = "0" und
Retten des VKE in BIE-Bit
Der Sprung an die angegebene Marke innerhalb des Programms
erfolgt nur, wenn das VKE = "0" ist. Das aktuelle VKE wird im Statuswort
in Bit 8 (*BIE-Bit) gerettet (gespeichert).

SPBNB

MARKE

BIE = Binrergebnisbit: Wenn Sie einen Funktionsbaustein oder eine Funktion in AWL schreiben und in KOP
aufrufen wollen, mssen Sie das VKE im BIE-Bit speichern, um so den Freigabeausgang ENO (Stichwort
MOVE-BOX) fr die MOVE-Box zu liefern.
Die angegebene Sprungmarke _001 wird dabei automatisch erzeugt, wenn die Programmierung in FUP bzw.
KOP erfolgt und anschlieend auf die Darstellung AWL umgeschaltet wird.

d001_7-Segmentanzeige_v02
Ausgabestand: 3/2006

Seite 7 von 9

SIMATIC-bungen
SCE Application Center

Automation and Drives - SCE

Zuordnungsliste:
OPERAND

SYMBOL

KOMMENTAR

E0.0
E0.1
E0.2
E0.3
A0.0
A0.1
A0.2
A0.3
A0.4
A0.5
A0.6
E0.0

S1
S2
S3
S4
a
b
c
d
e
f
g
S1

Dezimalwert 1
Dezimalwert 2
Dezimalwert 4
Dezimalwert 8
Segment a
Segment b
Segment c
Segment d
Segment e
Segment f
Segment g
Dezimalwert 1

SPS-Schema:
Anschluss der Schalter (S1 bis S4) und der einzelnen LED-Segmente (a bis g) an die Steuerung.

d001_7-Segmentanzeige_v02
Ausgabestand: 3/2006

Seite 8 von 9

SIMATIC-bungen
SCE Application Center

Automation and Drives - SCE

Aufgabenstellung:
Erstellen Sie ein SPS-Programm, welches die geforderte Funktion erfllt. Beachten Sie dabei, dass Sie bei
einem undefinierten Zustand der Eingnge, alle Segmente ausschalten.
Verwenden Sie dazu die im Einfhrungsteil dieser Aufgabe behandelten STEP 7-Anweisungen (MOVE-Box).
In der folgenden Tabelle sind die notwendigen Bitmuster (AB0) und die zugehrigen Hex-Zahlen fr den INEingang der MOVE-BOX aufgefhrt.
Ziffer:
0
1
2
3
4
5
6
7
8
9

BCD (E0.3 - E0.0):


0000
0001
0010
0011
0100
0101
0110
0111
1000
1001

Segmente:
f, e, d, c, b, a
c, b
a, b, d, e, g
a, b, c, d, g
b, c, f, g
a, c, d, f, g
a, c, d, e, f, g
a, b, c
a, b, c, d, e, f, g
a, b, c, d, f, g

Bitmuster (AB0):
00111111
00000110
01011011
01001111
01100110
01101101
01111101
00000111
01111111
01101111

Hex-Zahl:
3F
6
5B
4F
66
6D
7D
7
7F
6F

ergnzend: Dez-Zahl:
63
6
91
79
102
109
125
7
127
111

Als Lsungsansatz steht Ihnen nachfolgend ein Flussdiagramm zur Verfgung.

d001_7-Segmentanzeige_v02
Ausgabestand: 3/2006

Seite 9 von 9

SIMATIC-bungen
SCE Application Center