Unterstützte Datentypen (in ST)

Sie können folgende Datentypen in Ihrer Anwendung verwenden:

Anwenderdefinierte Datentypen

Ein →anwenderdefinierter Datentyp ist ein →Datentyp, den Sie selbst deklariert haben. Informieren Sie sich unter:

Elementare Datentypen

logi.CAD 3 unterstützt folgende elementare Datentypen:

Datentyp (= →Schlüsselwort)

Beschreibung

I: Standard-→Initialisierungswert
U: Untergrenze
O: Obergrenze

BOOL

boolesche

I: 0 oder FALSE

U: 1 (entsprechend Schlüsselwort TRUE)

O: wie Standard-Initialisierungswert (I)

SINT

kurze ganze Zahl (short integer)

I: 0

U: -128 (1)

O: 127 (1)

INT

ganze Zahl (→Integer)

I: 0

U: -32_768 (1) (2)

O: 32_767 (1)

DINT

doppelte ganze Zahl (double integer)

I: 0

U: -2_147_483_648 (1) (2)

O: 2_147_483_647 (1)

LINT

lange ganze Zahl (long integer)

I: 0

U: -9_223_372_036_854_775_808 (1) (2)

O: 9_223_372_036_854_775_807 (1)

USINT

vorzeichenlose kurze ganze Zahl (unsigned short integer)

I: 0

U: wie Standard-Initialisierungswert (I) (1)

O: 255 (1)

UINT

vorzeichenlose ganze Zahl (→Unsigned Integer)

I: 0

U: wie Standard-Initialisierungswert (I) (1)

O: 65_535 (1) (2)

UDINT

vorzeichenlose doppelte ganze Zahl (unsigned double integer)

I: 0

U: wie Standard-Initialisierungswert (I) (1)

O: 4_294_967_295 (1) (2)

ULINT

vorzeichenlose lange ganze Zahl (unsigned long integer)

I: 0

U: wie Standard-Initialisierungswert (I) (1)

O: 18_446_744_073_709_551_615 (1) (2)

REAL

reelle Zahl (3)

I: 0.0

U: -3.402_823_466e+38 (1) (2) (4)

O: 3.402_823_466e+38 (1) (4)

Werte im Bereich von -1.4e-45 bis +1.4e-45 können von logi.CAD 3 nicht verarbeitet werden (Ausnahme: 0.0 wird verarbeitet). Solche Werte ergeben einen →Unterlauf.

LREAL

→lange reelle Zahl (3)

I: 0.0

U: -1.797_693_134_862_315_7e+308 (1) (2) (4)

O: 1.797_693_134_862_315_7e+308 (1) (4)

Werte im Bereich von -4.9e-324 bis +4.9e-324 können von logi.CAD 3 nicht verarbeitet werden (Ausnahme: 0.0 wird verarbeitet). Solche Werte ergeben einen →Unterlauf.

TIME

Zeitdauer

I: T#0s

U: T#-89_468_321d19h42m34s400ms (2) (entspricht -7730063005354.4s)

O: T#89_468_321d19h42m34s400ms (6) (entspricht 7730063005354.4s)

DATE

(nur) Datum

I: DATE#1970-01-01 (7)

U: wie Standard-Initialisierungswert (I)

O: DATE#246_925-12-11 (6) (7)

TIME_OF_DAY oder TOD

(nur) Uhrzeit

I: TOD#00:00:00 (5)

U: wie Standard-Initialisierungswert (I)

O: TOD#23:59:59.999_000_000 (2) (5) (6)

DATE_AND_TIME oder DT

Datum und Uhrzeit

I: DT#1970-01-01-00:00:00.000_000_000 (2) (5) (7)

U: wie Standard-Initialisierungswert (I)

O: DT#246_925-12-11-19:42:34.400 (5) (6) (7)

STRING

Einzel-Byte-→Zeichenfolge mit variabler Länge

I: '' (leer)

keine Unter-/Obergrenze, da beliebige Zeichenfolge möglich ist

CHAR

Einzel-Byte-Zeichen

I: '$00' (entsprechend dem Dezimalwert 0 im ANSI-C-Zeichensatz) (8)

U: wie Standard-Initialisierungswert (I)

O: '$FF' (entsprechend dem ÿ -Zeichen bzw. dem Dezimalwert 255 im ANSI-C-Zeichensatz ) (8)


BYTE

→Bitfolge der Länge 8

I: 16#00

U: wie Standard-Initialisierungswert (I) (1)

O: 16#FF (1)

WORD

Bitfolge der Länge 16

I: 16#0000

U: wie Standard-Initialisierungswert (I) (1)

O: 16#FFFF (1)

DWORD

Bitfolge der Länge 32

I: 16#0000_0000 (2)

U: wie Standard-Initialisierungswert (I) (1)

O: 16#FFFF_FFFF (1)

LWORD

Bitfolge der Länge 64

I: 16#0000_0000_0000_0000 (2)

U: wie Standard-Initialisierungswert (I) (1)

O: 16#FFFF_FFFF_FFFF_FFFF (1)

Hinweise:

(1) Bei diesem Datentyp ist es möglich, die Untergrenze (U) oder Obergrenze (O) mit Hilfe der Begriffe MIN oder MAX zuzuweisen – siehe FAQ-Artikel: "Wie wird der Minimalwert oder Maximalwert eines Datentyps zugewiesen?"

(2) Das einzelne Unterstrich-Zeichen _ ist zur besseren Lesbarkeit als Trennzeichen für Werte eingefügt, _ ist für die Werte nicht signifikant. Werte mit _ werden von logi.CAD 3 korrekt interpretiert.

(3) Ungenauigkeiten bei Gleitkommazahlen (betrifft die Datentypen REAL und LREAL):

Aufgrund der internen Darstellung von Gleitkommazahlen können sich Ungenauigkeiten bei der Verarbeitung von REAL- und LREAL-Werten ergeben. Diese Ungenauigkeiten können bewirken, dass Operationen mit solchen Werten zu einem nicht erwarteten Ergebnis führen. Dies betrifft auch Systembausteine, die REAL- und/oder LREAL-Werte verarbeiten.

(4) REAL-Werte werden intern als "Float-Wert" und LREAL-Werte als "Double-Werte" verwaltet.

Das IEEE-Float-Format sieht für die Darstellung folgende Bestimmungen vor:

REAL

24-Bit-Mantisse
Durch die 24-Bit-Mantisse für REAL-Werte sind 6 Stellen des Werts signifikant. Da sich die 7. Stelle in den meisten Fällen ebenfalls noch – jedoch nicht immer – auf den Rundungswert auswirkt, werden 6 Stellen in jedem Fall als signifikant vorgegeben.

LREAL

53-Bit-Mantisse
Durch die 53-Bit-Mantisse für LREAL-Werte sind 15 Stellen signifikant.

Bei Verwendung eines →Controllino oder →Arduino Nano als SPS vermeiden Sie die Verwendung von Bausteinen/Variablen, die LREAL-Werte verarbeiten/liefern. Details: siehe "Zielsystem-spezifische Eigenschaften und Einschränkungen".(5) Werte für TIME_OF_DAY und DATE_AND_TIME sind Zeitangaben in der koordinierten Weltzeit (UTC = Coordinated Universal Time) – unabhängig von dem Zielsystem, das Sie verwenden. Eine Liste über die Zeitzonen pro Land (= Abweichung von UTC) finden Sie z.B. unter http://en.wikipedia.org/wiki/List_of_time_zones_by_country (Stand: 29. Juli 2012). Die Sommerzeit ist in der Liste nicht berücksichtigt. Beispiel: UTC+1 = Ortszeit Berlin (Deutschland), Paris (Frankreich), Rom (Italien) oder Wien (Österreich). Bei einer UTC-Zeit von 13:52 ergibt sich also eine Ortszeit 14:52 (Winterzeit) für z.B. Berlin, Paris, Rom oder Wien.

(6) Der Wertbereich und die Auflösung für TIME, DATE, TIME_OF_DAY und DATE_AND_TIME ist abhängig von der eingesetzten →SPS. Daher ist der angegebene Wert für die Obergrenze ein Annäherungswert. Die tatsächliche Obergrenze für Ihre Anwendung kann jedoch von diesem Wert abweichen. Siehe "Zielsystem-spezifische Eigenschaften und Einschränkungen").

(7) Die Untergrenze für DATE bzw. DATE_AND_TIME ist für Literale gültig. Aufgrund von Berechnungen oder Konvertierungen kann logi.CAD 3 Werte bis zu DATE#0001-01-01 bzw. DT#0001-01-01-00:00:00.000_000_000 verarbeiten und darstellen. Werte < DATE#0001-01-01 bzw. DT#0001-01-01-00:00:00.000_000_000 werden in Sekunden im Format OVF(Zahl) angezeigt, und zwar relativ zu DATE#1970-01-01 bzw. DT#1970-01-01-00:00:00.000_000_000.

(8) Kombinationen von 3 Zeichen, beginnend mit dem Dollar-Zeichen ($) und gefolgt von 2 Hexadezimal-Ziffern, werden in logi.CAD 3 als entsprechendes Zeichen des ANSI-C-Zeichensatzes interpretiert.

Auf diese Weise können Sie Sonderzeichen, wie z.B. Umlaute, für Einzel-Byte-Zeichenfolgen eingeben. Derzeit werden solche Sonderzeichen in logi.CAD 3 (z.B. in der Sicht Variablenwerte) jedoch so ausgegeben, wie sie eingegeben wurden.
Hier eine Auswahl an Sonderzeichen (eine Liste von Sonderzeichen und der entsprechenden Hexadezimal-Ziffernfinden Sie unter https://www.ascii-code.com/):

Dezimalwert

Hexadezimal-Ziffer

Einzugeben

Sonderzeichen

128

80

$80

163

A3

$A3

£

169

A9

$A9

©

174

AE

$AE

®

177

B1

$B1

±

178

B2

$B2

² (hochgestellte Ziffer "2")

179

B3

$B3

³ (hochgestellte Ziffer "3")

188

BC

$BC

¼

189

BD

$BD

½

190

BE

$BE

¾

196

C4

$C4

Ä

214

D6

$D6

Ö

220

DC

$DC

Ü

223

DF

$DF

ß

228

E4

$E4

ä

246

F6

$F6

ö

252

FC

$FC

ü

Falls die Zeichenkombination '$00' einem einzelnen Zeichen einer STRING-Variable zugewiesen wird, endet die Zeichenfolge der STRING-Variable an dieser Position. Solche Zeichenfolge werden auch in der Sicht Variablenwerte bei $00 beendet.
In Zuweisungen wird jedoch die vollständige Zeichenfolge übernommen. So ist es möglich, dass die Sicht Variablenwerte einzelne Zeichen hinter $00 darstellt, falls Sie auf zugewiesenen Zeichen hinter $00 zugreifen.

Systemdatentypen

Siehe "Systemdatentypen für die Anwendung".