Datentypen in Step7

siehe auch Timer S7

Die Norm DIN EN 61131-3 hat für die Steuerungstechnik eine gewisse Menge von bekannten Datentypen zur Benutzung anerkannt und für normgerechte SPS Programmiersysteme festgelegt. Damit wurde auch die Schreibweise von Datentypen durch reservierte Schlüsselwörter festgelegt. Diese Schlüsselwörter dürfen nicht für andere Zwecke verwendet werden.

Vor allem bei der Deklaration von Variablen eines Steuerungsprogramms werden diese Datentypen benötigt. Innerhalb des Steuerungsprogramms haben diese Datentypen einen bestimmenden Einfluß auf die zulässigen Operationen sowie auf den möglichen Wertebereich von Daten.

Nachfolgend sind die wichtigsten elementaren Datentypen und die zusammengesetzten Datentypen tabellarisch aufgelistet welche man beim Programmieren mit Step7 kennen muß. Allerdings muß bemerkt werden das bei der Auflistung der elementaren Datentypen der in Step7 benutzte Datentyp S5TIME außerhalb der SPS-Norm liegt.

Elementare Datentypen sind maximal 32 Bit lang. Dies entspricht auch der Wortlänge eines Akkumulators einer S7-CPU. Die elementaren Datentypen sind vordefiniert was bedeutet das sie unveränderbar festgelegt sind. Für einen S7-Programmierer heißt das dass er einer deklarierten Variablen einen elementaren Datentyp zuordnen muß (Beispiel: Der Eingang E3.2 ist vom Datentyp BOOL). Bei den zusammengesetzten Datentypen ist das anders.

Elementare Datentypen in Step7

Schlüsselwort Datentyp Größe Schreibweise und Wertebereich
Bit-Datentyp  
BOOL Boolesche Variable 1Bit False (logisch "0"), True (logisch "1")
BYTEZusammenhängende Bit-Folge (8 Bit) und 8-BitHex-Zahlen 8 Bit B#16#0 bis B#16#FF
WORDZusammenhängende Bitfolge (16 Bit) und 16 Bit-Hex-Zahlen 16 Bit Dualzahlen von 0 bis 1111 1111 1111 1111
Hexadezimalzahlen von W#16#0 bis W#16#FFFF
BCD-Zahlen von 0 bis 999
Dezimalzahlen ohne Vorzeichen von B#(0,0) bis B#(255,255)
DWORD Zusammenhängende Bitfolge (32 Bit) und 32 Bit-Hex-Zahlen 32 Bit Dualzahlen von 0 bis 1111 1111 1111 1111 1111 1111 1111 1111
Hexadezimalzahlen von DW#16#0000 0000 bis DW#16#FFFF FFFF
Dezimalzahlen ohne Vorzeichen von B#(0,0,0,0) bis B#(255,255,255,255)
CHAR ASCII-Zeichen 8 Bit ’A’
Arithmetische Typen  
INT Ganze Zahlen mit Vorzeichen(Festpunktzahlen) 16 Bit -32768 bis +32768
DINT Ganze Zahlen mit Vorzeichen (Festpunktzahlen) 32 Bit -2147483648 bis +2147483648
REALReelle Zahlen
(IEEE Gleitpunktzahlen)
32 Bit Dezimalzahl mit Punkt (156,235)
Exponentialdarstellung (1.568 E+04)
Zeittypen
Timer Step7®
 
S5TIME Zeitdauer im S5T#-Format
Step7® Zeit in Schritten von 10ms
16 Bit S5T#0H_0M_0S_10MS bis
S5T#2H_46M_30S_0MS und
S5T#0H_0M_0S_0MS
TIME Zeitdauer im IEC-Format
IEC-Zeit in Schritten von 1ms, Ganzzahl mit Vorzeichen
32 Bit -T#24D_20H_31M_23S_648MS
bis
T#24D_20H_31M_23S_647MS
TIME_OF_DAY Uhrzeit (Tageszeit)
in Schritten von 1ms
32 Bit TOD#0:0:0.0 bis TOD#23:59:59.999
z.B. TIME_OF_DAY#23:59:59,9
DATE IEC-Datum in Schritten von
1 Tag
16 Bit D#1990-1-1 bis D#2168-12-31
z.B. DATE#2006-05-10


Für BCD-Zahlen gibt es keinen besonderen Datentypen in der Norm, auch nicht in Step7. BCD-Zahlen werden als Hexadezimalzahlen eingegeben wobei man die Datentypen BYTE, WORD und DWORD und die Ziffern 0 bis 9 verwendet. Am Beispiel des Datentyps WORD würde die Eingabe zur Erzeugung der vierstelligen BCD-Zahlen "1234" so aussehen: (W#)16#1234. Davon unberührt existiert nach wie vor auch noch das BCD-Zahlenformat. Dafür gibt es entsprechende Codeumsetzer, z.B. ITB (INTEGER nach BCD).

Zusammengesetzte Datentypen in Step7

In Step7 benutzt man neben den elementaren Datentypen auch noch die zusammengesetzten Datentypen. Mit den zusammengetzten Datentypen werden Datengruppen definiert die größer als 32 Bit sind. In Step7 kann man folgende zusammengesetzte Datentypen definieren:

  • DATE_AND_TIME, DT
  • STRING
  • ARRAY (Feld)
  • STRUCT (Struktur)
  • UDT (User Defined Data Typ, Anwenderdefinierte Datentypen)
  • FB (Funktionsbaustein)
  • SFB (Systemfunktionsbaustein)
Schlüsselwort Datentyp Schreibweise und Erklärung
DATE_AND_
TIME
DATE_AND_TIME definiert einen Bereich mit 64 Bits (8 Bytes) und wird in einem binärcodierten Dezimalformat gespeichert. DT#1990-1-1-0:0:0.0 bis DT#2089-12-31-23:59:59.999 (erlaubter Bereich für die Eingabe von Datum und Zeit)
ARRAY Mit diesem Datentyp definiert man ein Feld bzw. eine Gruppierung von Komponenten gleichen Datentyps (entweder elementar oder zusammengesetzt). Man kann maximal 6 Dimensionen in einem Feld definieren.

Messwerte: ARRAY[1...3] OF INT; Jede
Feldkomponente kann über einen Feldindex
angesprochen werden:

  L Messwerte [Index]
  T Messwerte [Index]

Index ist ein fester Wert und kann zur Laufzeit des Programms nicht verändert werden, d.h. es ist keine Variablen-indizierung möglich. Der Index kann ein beliebiger ganzzahliger Wert von -32768 bis +32767 sein.

Der Inhalt einer ARRAY-Variablen ist mit der Systemfunktion SCF 20 "BLKMOV" kopierbar.
STRUCT Mit dem Datentyp STRUCT kann man eine Gruppierung von beliebig kombinierten Datentypen bzw. Komponenten definieren, z. B. ein Feld aus Strukturen oder eine Struktur aus Strukturen und Feldern. Messwerte: STRUCT
  Temperatur: INT;
  Druck: REAL;
END_STRUCT;

Alle Komponenten mit einfachem Datentyp sind einzeln mit AWL-Anweisungen ansprechbar, z.B:

  T Messwerte. Druck

STRUCT-Variablen können mit der Systemfunktion SFC 20 "BLKMOV" kopiert werden.

FB, SFB Mit FB oder SFB wird die Struktur des zugeordneten Instanzdatenbausteins bestimmt. Die Bestimmung der Struktur ermöglicht die Übergabe von Instanzdaten für mehrere FB-Aufrufe innerhalb eines Instanzdatenbausteins.
UDT User Defined Data Typ =Anwenderdefinierter Datentyp:

Durch die Verwendung von UDTs ist es möglich große Datenmengen zu strukturieren. Dies verein-facht das Eingeben von Datentypen bei der Er-zeugung von Datenbausteinen und bei der Deklaration von Variablen. In Step7 können elementare und zusammengesetzte Datentypen verknüpft werden. Dadurch ent-stehen UDTs, anwenderdefinierte Datentypen, die einen eigenen Namen haben und dadurch mehrfach verwendbar sind.

Ein UDT entsteht durch Deklaration über
Bausteine->Einfügen->Datentyp.

Sein Name ist UDTn (n = Nummer) oder ein symbolischer Name und ist global in allen Bausteinen gültig und bekannt. Der Datentyp UDT entspricht dem Aufbau der Datenstruktur STRUCT. Daher können UDT-Komponenten ebenso angesprochen werden wie die STRUCT-Komponenten, z.B.:

L Analogwert.Alarme.Messwert_zu_hoch