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:
- "Deklaration eines Datentyps in ST", wie Sie Datentypen deklarieren können.
- "C-Code und/oder C++-Code in die Anwendung integrieren (Deprecated)", wie Sie Datentypen in →C oder →C++ erstellen und in ST verwenden können.
Elementare Datentypen
logi.CAD 3 unterstützt folgende elementare Datentypen:
Datentyp (= →Schlüsselwort) | Beschreibung | I: Standard-→Initialisierungswert |
---|---|---|
| boolesche | I: U: O: wie Standard-Initialisierungswert (I) |
SINT | kurze ganze Zahl (short integer) | |
INT | ganze Zahl (→Integer) | |
DINT | doppelte ganze Zahl (double integer) | |
LINT | lange ganze Zahl (long integer) | |
USINT | vorzeichenlose kurze ganze Zahl (unsigned short integer) | |
UINT | vorzeichenlose ganze Zahl (→Unsigned Integer) | |
UDINT | vorzeichenlose doppelte ganze Zahl (unsigned double integer) | |
ULINT | vorzeichenlose lange ganze Zahl (unsigned long integer) | |
REAL | reelle Zahl (3) | |
LREAL | ||
TIME | Zeitdauer | |
DATE | (nur) Datum | |
TIME_OF_DAY oder TOD | (nur) Uhrzeit | |
DATE_AND_TIME oder DT | Datum und Uhrzeit | |
STRING | Einzel-Byte-→Zeichenfolge mit variabler Länge | I: keine Unter-/Obergrenze, da beliebige Zeichenfolge möglich ist |
CHAR | Einzel-Byte-Zeichen | |
BYTE | →Bitfolge der Länge 8 | |
WORD | Bitfolge der Länge 16 | |
DWORD | Bitfolge der Länge 32 | |
LWORD | Bitfolge der Länge 64 |
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 |
LREAL | 53-Bit-Mantisse |
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".