SIMATIC S7 / TIA Portal Spickzettel für Siemens SPS STEP 7

WinSPS Software

KV-Diagramm auflösen

Umwandlungstools

Binary-Decimal Converter

SPS-Forum

SPS-Lehrgang

SPS-Erklärvideos

Bit, Byte, Doppelwort

Zahlensysteme

Das Statuswort in der SPS und die Bedeutung der einzelnen Bits

S7 Byte-Reihenfolge ist BIG Endian. Mit TAD und TAW kann man die Reihenfolge ändern

Befehle/Operationen in AWL

Funktion Beschreibung Funktionsart
= Zuweisung Bitverknüpfung
) Verzweigung schließen Bitverknüpfung
*D AKKU1 und AKKU2 multiplizieren 32-Bit Festpunkt-Funktion
*I AKKU1 und AKKU2 multiplizieren 16-Bit Festpunkt-Funktion
*R AKKU1 und AKKU2 multiplizieren 32-Bit Gleitpunkt-Funktion
/D AKKU2 durch AKKU1 dividieren 32-Bit Festpunkt-Funktion
/I AKKU2 durch AKKU1 dividieren 16-Bit Festpunkt-Funktion
/R AKKU2 durch AKKU1 dividieren 32-Bit Gleitpunkt-Funktion
= = D AKKU2 gleich AKKU1 Vergleicher
<>D AKKU2 ungleich AKKU1 Vergleicher
>D AKKU2 größer als AKKU1 Vergleicher
<D AKKU2 kleiner als AKKU1 Vergleicher
>=D AKKU2 größer oder gleich AKKU1 Vergleicher
<=D AKKU2 kleiner oder gleich AKKU1 Vergleicher
= = I AKKU2 gleich AKKU1 Vergleicher
<>I AKKU2 ungleich AKKU1 Vergleicher
>I AKKU2 größer als AKKU1 Vergleicher
<I AKKU2 kleiner als AKKU1 Vergleicher
>=I AKKU2 größer oder gleich AKKU1 Vergleicher
<=I AKKU2 kleiner oder gleich AKKU1 Vergleicher
= = R AKKU2 gleich AKKU1 Vergleicher
<>R AKKU2 ungleich AKKU1 Vergleicher
>R AKKU2 größer als AKKU1 Vergleicher
<R AKKU2 kleiner als AKKU1 Vergleicher
>=R AKKU2 größer oder gleich AKKU1 Vergleicher
<=R AKKU2 kleiner oder gleich AKKU1 Vergleicher
+ Ganzzahl addieren 16/32-Bit Festpunkt-Funktion
+AR1 AKKU1 zum Adressregister 1 addieren Akkumulatorfunktion
+AR2 AKKU1 zum Adressregister 2 addieren Akkumulatorfunktion
+D AKKU1 und AKKU2 addieren 32-Bit Festpunkt-Funktion
+I AKKU1 und AKKU2 addieren 16-Bit Festpunkt-Funktion
+R AKKU1 und AKKU2 addieren 32-Bit Gleitpunkt-Funktion
-D AKKU1 von AKKU2 subtrahieren 32-Bit Festpunkt-Funktion
-I AKKU1 von AKKU2 subtrahieren 16-Bit Festpunkt-Funktion
-R AKKU1 von AKKU2 subtrahieren 32-Bit Gleitpunkt-Funktion
ABS Absolutwert der Gleitpunktzahl in AKKU1 32-Bit Gleitpunkt-Funktion
ACOS Arcuscosinus bilden 32-Bit Gleitpunkt-Funktion
ASIN Arcussinus bilden 32-Bit Gleitpunkt-Funktion
ATAN Arcustangens bilden 32-Bit Gleitpunkt-Funktion
AUF Datenbaustein aufschlagen Bausteinoperation
BE Bausteinende Programmsteuerung
BEA Bausteinende absolut Programmsteuerung
BEB Bausteinende bedingt Programmsteuerung
BLD Bildbefehl (Nulloperation) Akkumulatorfunktion
BTD BCD in Ganzzahl umwandeln (7 Stellen und eine Stelle Vorzeichen) Umwandler
BTI BCD in Ganzzahl umwandeln (3 Stellen und eine Stelle Vorzeichen) Umwandler
CALL Bausteinaufruf Programmsteuerung
CC Bedingter Bausteinaufruf Programmsteuerung
CLR VKE auf 0 setzen Bitverknüpfung
COS Cosinus eines Winkels bilden 32-Bit Gleitpunkt-Funktion
DEC AKKU1 dekrementieren Akkumulatorfunktion
DTB Ganzzahl in BCD umwandeln (7 Stellen und eine Stelle Vorzeichen) Umwandler
DTR Ganzzahl in Gleitpunktzahl umwandeln Umwandler
ENT Enter AKKU-Stack Akkumulatorfunktion
EXP Exponentialwert bilden 32-Bit Gleitpunkt-Funktion
FN Negative Flanke Bitverknüpfung
FP Positive Flanke Bitverknüpfung
FR Freigabe TIMER, COUNTER Zeiten, Zähler
INC AKKU1 inkrementieren Akkumulatorfunktion
INVD 1er Komplement Ganzzahl Umwandler
INVI 1er Komplement Ganzzahl Umwandler
ITB Ganzzahl in BCD umwandeln (3 Stellen und eine Stelle Vorzeichen) Umwandler
ITD Ganzzahl in Ganzzahl umwandeln Umwandler
L DBLG Länge von Globaldatenbaustein in AKKU1 laden Bausteinoperation
L DBNO Nummer von Globaldatenbaustein in AKKU1 laden Bausteinoperation
L DILG Länge von Instanzdatenbaustein in AKKU1 laden Bausteinoperation
L DINO Nummer von Instanzdatenbaustein in AKKU1 laden Bausteinoperation
L Aktuellen Wert als Ganzzahl in AKKU1 laden Laden und Transferieren
L STW Statuswort in AKKU1 laden Laden und Transferieren
LAR1 Adressregister 1 laden Laden und Transferieren
LAR2 Adressregister 2 laden Laden und Transferieren
LC Aktuellen Zeitwert oder Zählerwert als BCD-Wert in AKKU1 laden Zeiten / Zähler
LEAVE Leave AKKU-Stack Akkumulatorfunktion
LN natürlichen Logarithmus bilden 32-Bit Gleitpunkt-Funktion
LOOP Programmschleife Sprungfunktion
MCR( VKE im MCR-Stack sichern Programmsteuerung
)MCR MCR-Bereich beenden Programmsteuerung
MCRA MCR-Bereich aktivieren Programmsteuerung
MCRD MCR_Bereich aktivieren Programmsteuerung
MOD Divisionsrest Ganzzahl 32-Bit Festpunkt-Funktion
NEGD 2er Komplement Ganzzahl Umwandler
NEGI 2er Komplement Ganzzahl Umwandler
NEGR Vorzeichenwechsel einer Gleitpunktzahl Umwandler
NOP 0 Nulloperation 0 Akkumulatorfunktion
NOP 1 Nulloperation 1 Akkumulatorfunktion
NOT VKE negieren (=0) Bitverknüpfung
O ODER bzw. UND vor ODER Bitverknüpfung
O( ODER mit Verzweigung Bitverknüpfung
OD ODER-Doppelwort Wortverknüpfung
ON ODER NICHT Bitverknüpfung
ON( ODER NICHT mit Verzweigung Bitverknüpfung
OW ODER-Wort Wortverknüpfung
POP Akkumulatoren nach unten verschieben Akkumulatorfunktion
PUSH Akkumulatoren nach oben verschieben Akkumulatorfunktion
R Rücksetzen Bitverknüpfung
RLD Doppelwort nach links rotieren Schiebefunktion
RLDA Akku1 nach links rotieren über A1-Anzeige Schiebefunktion
RND Gleitpunktzahl zur Ganzzahl runden Umwandler
RND- Gleitpunktzahl zur nächstniederen Ganzzahl runden Umwandler
RND+ Gleitpunktzahl zur nächsthöheren Ganzzahl runden Umwandler
RRD Doppelwort nach rechts rotieren Schiebefunktion
RRDA Akku1 nach rechts rotieren über A1-Anzeige Schiebefunktion
S Setzen Bitverknüpfung
SA Zeit mit Ausschaltverzögerung starten Zeitfunktion
SAVE VKE im BIE-Bit sichern Bitverknüpfung
SE Zeit mit Einschaltverzögerung starten Zeitfunktion
SET VKE auf 1 setzen (=1) Bitverknüpfung
SI Zeit als Impuls starten Zeitfunktion
SIN Sinus eines Winkels als Gleitpunktzahl bilden 32-Bit Gleitpunkt-Funktion
SLD Schiebe Doppelwort nach links Schiebefunktion
SLW Schiebe Wort nach links Schiebefunktion
SPA Springe absolut Sprungfunktion
SPB Springe wenn VKE = 1 Sprungfunktion
SPBB Springe wenn VKE = 1 und rette VKE ins BIE Sprungfunktion
SPBI Springe wenn BIE = 1 Sprungfunktion
SPBIN Springe wenn BIE = 0 Sprungfunktion
SPBN Springe wenn VKE = 0 Sprungfunktion
SPBNB Springe wenn VKE = 0 und rette VKE ins BIE Sprungfunktion
SPL Sprungleiste Sprungfunktion
SPM Springe wenn Ergebnis <0 Sprungfunktion
SPMZ Springe wenn Ergebnis <=0 Sprungfunktion
SPN Springe wenn Ergebnis <>0 Sprungfunktion
SPO Springe wenn OV =1 Sprungfunktion
SPP Springe wenn Ergebnis >0 Sprungfunktion
SPPZ Springe wenn Ergebnis >=0 Sprungfunktion
SPS Springe wenn OS = 1 Sprungfunktion
SPU Springe wenn Ergebnis ungültig Sprungfunktion
SPZ Springe wenn Ergebnis = 0 Sprungfunktion
SQR Quadrats einer Gleitpunktzahl bilden 32-Bit Gleitpunkt-Funktion
SQRT Quadratwurzel einer Gleitpunktzahl bilden 32-Bit Gleitpunkt-Funktion
SRD Doppelwort nach rechts schieben Schiebefunktion
SRW Wort nach rechts schieben Schiebefunktion
SS Zeit mit speichernder Einschaltverzögerung starten Zeitfunktion
SSD Vorzeichen einer Ganzzahl nach rechts schieben Schiebefunktion
SSI Vorzeichen einer Ganzzahl nach rechts schieben Schiebefunktion
SV Zeit als Zeit mit verlängertem Impuls starten Zeitfunktion
T Transferieren Laden und Transferieren
TAD Reihenfolge der Bytes im AKKU 1 tauschen Umwandler
TAK AKKU1 mit AKKU2 tauschen Akkumulatorfunktion
TAN Tangens eines Winkels als Gleitpunktzahl bilden 32-Bit Gleitpunkt-Funktion
TAR Adressregister 1 mit 2 tauschen Laden und Transferieren
TAR1 Adressregister 1 transferieren Laden und Transferieren
TAR2 Adressregister 2 transferieren Laden und Transferieren
TAW Reihenfolge der Bytes im AKKU1-L tauschen Umwandler
TDB Globaldatenbaustein und Instanzdatenbaustein tauschen Bausteinoperation
TRUNC Gleitpunktzahl durch Abschneiden runden Umwandler
U UND-Verknüpfung Bitverknüpfung
U( UND mit Verzweigung Bitverknüpfung
UC Unbedingter Aufruf eines Bausteins Programmsteuerung
UD UND-Doppelwort Wortverknüpfung
UN UND NICHT Bitverknüpfung
UN( UND NICHT mit Verzweigung Bitverknüpfung
UW UND-Wort Wortverknüpfung
X Exklusiv-ODER Bitverknüpfung
X( Exklusiv-ODER mit Verzweigung Bitverknüpfung
XN Exklusiv-ODER-NICHT Bitverknüpfung
XN( Exklusiv-ODER-NICHT mit Verzweigung Bitverknüpfung
XOD Exklusiv-ODER-Doppelwort Wortverknüpfung
XOW Exklusiv-ODER-Wort Wortverknüpfung
ZR Rückwärtszählen Zählerfunktion
ZV Vorwärtszählen Zählerfunktion
0D 0A 0B 0C ... ... a +3: a +2: a +1: a : Memory 32-bit integer Big-endian 0A0B0C0D

Beispiel für die Eingabe von Operanden in Variablentabellen

Erlaubter Operand: Datentyp: Beispiel (Mnemonik deutsch):
Eingang | Ausgang | Merker BOOL E 1.0 | A 1.7 | M 10.1
Eingang | Ausgang | Merker BYTE EB 1 | AB 10 | MB 100
Eingang | Ausgang | Merker WORD EW 1 | AW 10 | MW 100
Eingang | Ausgang | Merker DWORD ED 1 | AD 10 | MD 100
Peripherie (Eingang | Ausgang) BYTE PEB 0 | PAB 1
Peripherie (Eingang | Ausgang) WORD PEW 0 | PAW 1
Peripherie (Eingang | Ausgang) DWORD PED 0 | PAD 1
Zeiten TIMER T 1
Zähler COUNTER Z 1
Datenbaustein BOOL DB1.DBX 1.0
Datenbaustein BYTE DB1.DBB 1
Datenbaustein WORD DB1.DBW 1
Datenbaustein DWORD DB1.DBD 1

Symboleditor - Datentyp VAT - Anzeigeformat
alle Datentype Binär
Bool Bool
INT, DINT Dezimal
Word, Dword Hexadezimal
REAL Gleitpunkt
CHAR Zeichen
DATE Datum
TIME Zeit
TIMER Simatic-Zeit
TOD Tageszeit
COUNTER Zähler
Word, Dword (Pointer) Zeiger

Liste der Abkürzungen

BCD – binär codierte Dezimalzahl

CP - Kommunikationsprozessor

CPU- central prozessing unit

DB - Datenbaustein

DP – dezentrale Peripherie

ES – Endlagenschalter

EVA – Eingabe, Verarbeitung, Ausgabe

FB - Funktionsbaustein

FC – Funktion

FM - Fuktionsmodul

HW – Hardware

IM – Interface Modul

MMC – micro-memmory-card

MPI – multi-point-interface

NC – normaly open – Schließer

NO – normaly closed – Öffner

OB - Organisationsbaustein

PG – Programmiergerät

PLC – programable logical controller

PLCSIM – Simulator-Schnittstelle

PN - Profinet

PS – power supply – Netzteil

SM - Signalmodul

SPS – speicherprogrammierbare Steuerung

VAT - Variablentabelle

VPS – verbindungsprogrammierte Steuerung




Elementare Datentypen

Jeder elementare Datentyp hat eine definierte Länge. Die folgende Tabelle listet die elementaren Datentypen auf.

Typ und Beschreibung Größe in Bits Formatoptionen Bereich und Zahlendarstellung (niedrigster bis höchster Wert) 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
Hexadezimalzahl
BCD
Dezimalzahl ohne Vorzeichen
2#0 bis 2#1111_1111_1111_1111 
W#16#0 bis W#16#FFFF
C#0 bis C#999
B#(0,0) bis B#(255,255)
L 2#0001_0000_0000_0000
L W#16#1000
L word#16#1000
L C#998
L B#(10,20)
L byte#(10,20)
DWORD (Doppelwort)
32 Dualzahl
Hexadezimalzahl
Dezimalzahl ohne Vorzeichen
2#0 bis
2#1111_1111_1111_1111_
1111_1111_1111_1111
DW#16#0000_0000 bis DW#16#FFFF_FFFF
B#(0,0,0,0) bis
B#(255,255,255,255)
2#1000_0001_0001_1000_
1011_1011_0111_1111
L DW#16#00A2_1234
L dword#16#00A2_1234
L B#(1, 14, 100, 120)
L byte#(1,14,100,120)
INT (Ganzzahl) 16 Dezimalzahl mit Vorzeichen -32768 bis 32767 L 1
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_0S_0MS
L S5T#0H_1M_0S_0MS
L S5TIME#0H_1H_1M_0S_0MS
TIME (IEC-Zeit) 32 IEC-Zeit in Schritten von 1 ms, Ganzzahl mit Vorzeichen T#-24D_20H_31M_23S_648MS bis
T#24D_20H_31M_23S_647MS
L T#0D_1H_1M_0S_0MS
L TIME#0D_1H_1M_0S_0MS
DATE
(IEC-Datum)
16 IEC-Datum in Schritten von 1 Tag D#1990-1-1 bis
D#2168-12-31
L D#1994-3-15
L DATE#1994-3-15
TIME_OF_DAY
(Uhrzeit)
32 Uhrzeit in Schritten von 1 ms TOD#0:0:0.0 bis
TOD#23:59:59.999
L TOD#1:10:3.3
L TIME_OF_DAY#1:10:3.3
CHAR
(Zeichen)
8 ASCII-Zeichen ’A’,’B’ usw. L ’E’



Zusätzlich zu elementaren und zusammengesetzten Datentypen können Sie Parametertypen für Formalparameter definieren, die zwischen Bausteinen übergeben werden. STEP 7 kennt folgende Parametertypen:

Beispiel für ein Pointerformat zum Adressieren der Daten, die in M 50.0 beginnen: P#M50.0

Ein Parametertyp kann auch ein anwenderdefinierter Datentyp (UDT) sein. Nähere Informationen zu UDTs entnehmen Sie dem Abschnitt "Verwenden von anwenderdefinierten Datentypen für den Datenzugriff".


Parameter Größe Beschreibung
TIMER 2 Bytes Kennzeichnet eine bestimmte Zeit, die vom Programm im aufgerufenen Codebaustein verwendet werden soll. Format: T1
COUNTER 2 Bytes Kennzeichnet einen bestimmten Zähler, der vom Programm im aufgerufenen Codebaustein verwendet werden soll. Format: Z10
BLOCK_FB 2 Bytes Kennzeichnet einen bestimmten Baustein, der vom Programm im aufgerufenen Codebaustein verwendet werden soll.
BLOCK_FC
BLOCK_DB Format: FC101
BLOCK_SDB DB42
POINTER 6 Bytes Kennzeichnet die Adresse. Format: P#M50.0
ANY 10 Bytes Wird verwendet, wenn der Datentyp des Aktualparameters nicht bekannt ist. Format: P#M50.0 BYTE 10 ANY-Format bei Datentypen, P#M100.0 WORD 5, L#1COUNTER 10 ANY-Format bei Parametertypen



Dezimalsystem Dualsystem Hexadezimalsystem BCD-Code
0 0 0 0000
1 1 1 0001
2 10 2 0010
3 11 3 0011
4 100 4 0100
5 101 5 0101
6 110 6 0110
7 111 7 0111
8 1000 8 1000
9 1001 9 1001
10 1010 A 0001 0000
11 1011 B 0001 0001
12 1100 C 0001 0010
13 1101 D 0001 0011
14 1110 E 0001 0100
15 1111 F 0001 0101
16 10000 10 0001 0110
17 10001 11 0001 0111
47 101111 2F 0100 0111
82 1010010 52 1000 0010
99 1100011 63 1001 1001
100 1100100 64 0001 0000 0000

Tipps & Tricks




Programmierstyleguide für S7

Tags Global Constants Basics
start MAX_SPEED - Unique, meaningful identifiers in English
Prefix - - - No special characters (§$%&…_)
Start letter lower case - - Maximum 24 characters
Word Casing camelCasing CAPITAL_LETTERS - Arrays: axesData [0..Max] of type…
Formal Parameters IN OUT INOUT STAT TEMP CONSTANTS
enable done m otorData statVelocity tempVelocity MAX_VELOCITY
Prefix - - - stat' temp' -
Start letter lower case lower case lower case lower case lower case -
Word Casing camelCasing camelCasing camelCasing camelCasing camelCasing CAPITAL_LETTERS
DB Data block GLOBAL Single Instance Multi-instance *Abbreviations
MotorData InstHeater instMotor (only one per identifier)
Prefix - ‘Inst’ ‘inst’ Min / Max minimum / maximum
Start letter upper case upper case lower case Act actual, current
Word Casing PascalCasing PascalCasing camelCasing Next / Prev next / previous
Avg average
Prefix Start letter Word Casing Diff / Sum difference / sum
OB Organization block StationMain - upper case PascalCasing Pos position
FB Function block ConveyorControl - upper case PascalCasing Ris / Fal rising / falling edge
FC Function Filling - upper case PascalCasing Sim simulated
TO Technology object PositioningAxis - upper case PascalCasing Old old value
PLC data types typeMotor - lower case camelCasing Dir direction
Watch tables MotorTags - upper case PascalCasing Err error
PLC tag tables InputTags - upper case PascalCasing Warn warning
Traces SpeedAxis - upper case PascalCasing Cmd command
Measurements HeaterControl - upper case PascalCasing *Recommendation